Histórico da Página
E01NFESEFAZ
PE01NFESEFAZ_Altera dados do produto volume especie peso liquido e peso bruto.
Características do Requisito
Linha de Produto: | Microsiga Protheus® | ||||
Segmento: | Serviços | ||||
Módulo: | Faturamento | ||||
Rotina: |
|
Descrição
Ponto de entrada que permite alterada dados do produto, neste caso altera peso liquido, peso bruto, volume e especie na geração xml da nota, antes de transmitir.
Ponto de Entrada
Descrição: | PE01NFESEFAZ-Ponto de entrada que permite alterar dados de produto/volume/especie/peso liquido/peso bruto na geração do xml para transmitir a nota. | ||||||||
Localização: | BRA | ||||||||
Eventos: | alteração de array aParam para geração de dados do xml e antes da transmissão da nota | ||||||||
Programa Fonte: | NFESEFAZ.PRW | ||||||||
U_XmlNfeSef() | |||||||||
Retorno: |
|
Exemplo:
Bloco de código | ||||
---|---|---|---|---|
| ||||
#include 'protheus.ch' #include 'parmtype.ch' user function PE01NFESEFAZ() Local aProd := PARAMIXB[1] Local cMensCli := PARAMIXB[2] Local cMensFis := PARAMIXB[3] Local aDest := PARAMIXB[4] Local aNota := PARAMIXB[5] Local aInfoItem := PARAMIXB[6] Local aDupl := PARAMIXB[7] Local aTransp := PARAMIXB[8] Local aEntrega := PARAMIXB[9] Local aRetirada := PARAMIXB[10] Local aVeiculo := PARAMIXB[11] Local aReboque := PARAMIXB[12] Local aNfVincRur := PARAMIXB[13] Local aEspVol := PARAMIXB[14] Local aRetorno := {} Local aAreaSB1 := {} Local aAreaSAH := {} Local nPesoBr := 0 Local nPesoLiq := 0 Local y := 0 Local nPos := 0 Local x := 0 //O retorno deve ser exatamente nesta ordem e passando o conteúdo completo dos arrays //pois no rdmake nfesefaz é atribuido o retorno completo para as respectivas variáveis //Ordem: // aRetorno[1] -> aProd // aRetorno[2] -> cMensCli // aRetorno[3] -> cMensFis // aRetorno[4] -> aDest // aRetorno[5] -> aNota // aRetorno[6] -> aInfoItem // aRetorno[7] -> aDupl // aRetorno[8] -> aTransp // aRetorno[9] -> aEntrega // aRetorno[10] -> aRetirada // aRetorno[11] -> aVeiculo // aRetorno[12] -> aReboque // aRetorno[13] -> aNfVincRur // aRetorno[14] -> aEspVol aAreaSB1 := SB1->(GetArea())//Salvando area para não perder o posicionamento aAreaSAH := SAH->(GetArea()) dbSelectArea("SB1")//Abrindo Area SB1 Tabela de produto dbSetOrder(1) dbSelectArea("SAH")//Abrindo Area SAH Tabela de unidade de medida dbSetOrder(1) For y := 1 to len(APROD)//Loop que percorre o Array produto para alimentar o peso liquido e peso bruto If SB1->(MsSeek(xFilial("SB1")+APROD[Y][2])) nPesoBr := SB1->B1_PESBRU nPesoLiq := SB1->B1_PESO If SAH->(MsSeek(xFilial("SAH")+APROD[Y][11])) //Condição que verifica unidade de medida para calcular o peso liquido e peso bruto a partir do Volume x unidade de medida. If nPos:= aScan(aEspVol,{|x| alltrim(x[1]) == alltrim(SAH->AH_UMRES)}) aEspVol[nPos][3] := APROD[Y][9] * nPesoLiq aEspVol[nPos][4] := APROD[Y][9] * nPesoBr EndIf EndIf EndIf Next RestArea(aAreaSB1)//Devolve Area da tabela SB1 RestArea(aAreaSAH)//Devolve Area da tabela SAH //Alimenta array aRtorno que no nfesefaz será o aParam aadd(aRetorno,aProd) aadd(aRetorno,cMensCli) aadd(aRetorno,cMensFis) aadd(aRetorno,aDest) aadd(aRetorno,aNota) aadd(aRetorno,aInfoItem) aadd(aRetorno,aDupl) aadd(aRetorno,aTransp) aadd(aRetorno,aEntrega) aadd(aRetorno,aRetirada) aadd(aRetorno,aVeiculo) aadd(aRetorno,aReboque) aadd(aRetorno,aNfVincRur) aadd(aRetorno,aEspVol) return(aRetorno) |
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas