Histórico da Página
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. Os campos criados na tabelas SC5 deve ser alimentados manualmente e este valor será transportado para a tabela SF2. Para transportar os campos da SC5 para SF2 use o ponto de entrada (M461LSF2).
Exemplo de campo a ser criado
Criar os campos na tabele SC5 e tabela SF2 o campo deve ter a mesma descrição somente mudando o ultimo caractere que é numérico com a quantidade de campo que for necessário para atender a necessidade.
Campos da Tabela SC5
Campo | C5_PLIQUI1 |
---|---|
Tipo | N |
Tamanho | 11 |
Decimal | 4 |
Formato | @E 999,999.9999 |
Título | Texto do cliente |
Descrição | Texto do cliente |
Usado | Sim |
Campo | C5_PBRUTO1 |
---|---|
Tipo | N |
Tamanho | 11 |
Decimal | 4 |
Formato | @E 999,999.9999 |
Título | Texto do cliente |
Descrição | Texto do cliente |
Usado | Sim |
Campos da Tabela SF2
Campo | F2_PLIQUI1 |
---|---|
Tipo | N |
Tamanho | 11 |
Decimal | 4 |
Formato | @E 999,999.9999 |
Título | Texto do cliente |
Descrição | Texto do cliente |
Usado | Sim |
Campo | F2_PBRUTO1 |
---|---|
Tipo | N |
Tamanho | 11 |
Decimal | 4 |
Formato | @E 999,999.9999 |
Título | Texto do cliente |
Descrição | Texto do cliente |
Usado | Sim |
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
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 nPesoLiq := 0 Local nPesoBr := 0 Local x := 0 Local cScan := "1" //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) dbSelectArea("SF2") //Esta área deve ser aberta para funcionar o FieldPos If SF2->F2_DOC == aNota[2] For x:=1 to Len(aEspVol) cEspecie := Upper(FieldGet(FieldPos("F2_ESPECI"+cScan))) If nPos:= aScan(aEspVol,{|x| alltrim(x[1]) == alltrim(cEspecie)}) nPesoLiq := FieldGet(FieldPos("F2_PLIQUI"+cScan)) nPesoBr := FieldGet(FieldPos("F2_PBRUTO"+cScan)) aEspVol[nPos][3] := nPesoLiq aEspVol[nPos][4] := nPesoBr EndIf cScan:=Soma1(cScan,1) Next EndIf 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) |
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.
Campo
(X3_CAMPO)
Tipo
(X3_TIPO)
Tamanho
(X3_TAMANHO)
Decimal
(X3_DECIMAL)
Formato
(X3_PICTURE)
Título
(X3_TITULO)
Descrição
(X3_DESCRIC)
Nível
(X3_NÍVEL)
Usado
(X3_USADO) Informe Sim ou Não
Obrigatório
(X3_OBRIGAT) Informe Sim ou Não
Browse
(X3_BROWSE) Informe Sim ou Não
Opções
(X3_CBOX)
When
(X3_WHEN)
Relação
(X3_RELACAO)
Val. Sistema
(X3_VALID)
Help
Descreva o conteúdo informado para Help de Campo no ATUSX
Ponto de Entrada
Descrição:
/ |
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
Retorno:
Nome | Tipo | Descrição | Obrigatório |
aRetorno | Array | Array contendo dados para a nota | sim |
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 nPesoLiq := 0 Local nPesoBr := 0 Local x := 0 Local cScan := "1" //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) dbSelectArea("SF2") If SF2->F2_DOC == aNota[2] For x:=1 to Len(aEspVol) cEspecie := Upper(FieldGet(FieldPos("F2_ESPECI"+cScan))) If nPos:= aScan(aEspVol,{|x| alltrim(x[1]) == alltrim(cEspecie)}) nPesoLiq := FieldGet(FieldPos("F2_PLIQUI"+cScan)) nPesoBr := FieldGet(FieldPos("F2_PBRUTO"+cScan)) aEspVol[nPos][3] := nPesoLiq aEspVol[nPos][4] := nPesoBr EndIf cScan:=Soma1(cScan,1) Next EndIf /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) returnReturn(aRetorno) |