- Fórum
- Protheus/Microsiga/Totvs
- Comunicação Eletrônica (SEFAZ/SPED)
- Nfe (Nota Fiscal Eletrônica)
- Ponto de Entrada PE01NFESEFAZ para NFESEFAZ
Perguntas Ponto de Entrada PE01NFESEFAZ para NFESEFAZ
- admin
- Desconectado
- Administrador
Menos
Mais
- Postagens: 297
- Obrigados Recebidos: 21
- edsonnovaes
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 5
- Obrigados Recebidos: 0
1 ano 3 meses atrás #33346
por edsonnovaes
Respondido por edsonnovaes no tópico Ponto de Entrada PE01NFESEFAZ para NFESEFAZ
Olá Luiz eu estou tentando utilizar esse ponto de entrada.
nos itens da nfe que contem segunda unidade de medida sair impresso na danfe a segunda unidade de medida somente para exportação.
mesmo que esteja segunda unidade medida no complemento dos produtos que nao for exportação mostrar na danfe somente para exportação.
e não estou conseguindo consegue me ajudar?
nos itens da nfe que contem segunda unidade de medida sair impresso na danfe a segunda unidade de medida somente para exportação.
mesmo que esteja segunda unidade medida no complemento dos produtos que nao for exportação mostrar na danfe somente para exportação.
e não estou conseguindo consegue me ajudar?
Por favor Acessar ou Registrar para participar da conversa.
- admin
- Desconectado
- Administrador
Menos
Mais
- Postagens: 297
- Obrigados Recebidos: 21
1 ano 3 meses atrás #33347
por admin
Respondido por admin no tópico Ponto de Entrada PE01NFESEFAZ para NFESEFAZ
Blz Edson, nesse ponto de entrada vc não tem acesso a segunda unidade de medida, apenas a descrição do produto e outros detalhes.
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 aNfVinc := PARAMIXB[15]
Local aDetPag := PARAMIXB[16]
Local aObsCotAux := PARAMIXB[17]
Para a segunda unidade, vc vai precisar mexer direto no fonte nfesefaz, vou pegar um exemplo aqui.
Pesquisa nesse fonte por B1_SEGUM e vai entender.
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 aNfVinc := PARAMIXB[15]
Local aDetPag := PARAMIXB[16]
Local aObsCotAux := PARAMIXB[17]
Para a segunda unidade, vc vai precisar mexer direto no fonte nfesefaz, vou pegar um exemplo aqui.
Pesquisa nesse fonte por B1_SEGUM e vai entender.
Por favor Acessar ou Registrar para participar da conversa.
- edsonnovaes
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 5
- Obrigados Recebidos: 0
1 ano 3 meses atrás #33348
por edsonnovaes
Respondido por edsonnovaes no tópico Ponto de Entrada PE01NFESEFAZ para NFESEFAZ
Eu procurei não encontrei o B1_SEGUM para tentar fazer esse tipo de personalização, nesse trecho do codigo abaixo eu conseguiria realizar a alteração necessario para não sair segunda unidade de medida para produtos dentro do pais?
cString += '<CFOP>'+ConvType(aProd[07])+'</CFOP>'
cString += '<uCom>'+ConvType(aProd[8])+'</uCom>'
cString += '<qCom>'+ConvType(aProd[09],15,4)+'</qCom>'
cString += '<vUnCom>'+ IIf(cF2Tipo == "C" .and. cTipoCompl <> '2' ,ComplPreco(cTipo,cF2Tipo,aProd),ConvType(aProd[10]/aProd[09],21,)+'</vUnCom>'
cString += '<vProd>' +ConvType(aProd[10],15,2)+'</vProd>'
cString += '<eantrib>'+ConvType(cEantrib)+'</eantrib>'
cString += '<cBarraTrib>'+ConvType(aProd[51])+'</cBarraTrib>'
cString += '<uTrib>'+ConvType(aProd[11])+'</uTrib>'
cString += '<qTrib>' + ConvType(aProd[12], 15, 4) + '</qTrib>'
cString += '<vUnTrib>'+ IIf(cF2Tipo == "C" .and. cTipoCompl <> '2' ,ComplPreco(cTipo,cF2Tipo,aProd),ConvType(aProd[10]/aProd[12],21,)+'</vUnTrib>'
cString += NfeTag('<vFrete>',ConvType(aProd[13],15,2))
cString += NfeTag('<vSeg>' ,ConvType(aProd[14],15,2))
cString += '<CFOP>'+ConvType(aProd[07])+'</CFOP>'
cString += '<uCom>'+ConvType(aProd[8])+'</uCom>'
cString += '<qCom>'+ConvType(aProd[09],15,4)+'</qCom>'
cString += '<vUnCom>'+ IIf(cF2Tipo == "C" .and. cTipoCompl <> '2' ,ComplPreco(cTipo,cF2Tipo,aProd),ConvType(aProd[10]/aProd[09],21,)+'</vUnCom>'
cString += '<vProd>' +ConvType(aProd[10],15,2)+'</vProd>'
cString += '<eantrib>'+ConvType(cEantrib)+'</eantrib>'
cString += '<cBarraTrib>'+ConvType(aProd[51])+'</cBarraTrib>'
cString += '<uTrib>'+ConvType(aProd[11])+'</uTrib>'
cString += '<qTrib>' + ConvType(aProd[12], 15, 4) + '</qTrib>'
cString += '<vUnTrib>'+ IIf(cF2Tipo == "C" .and. cTipoCompl <> '2' ,ComplPreco(cTipo,cF2Tipo,aProd),ConvType(aProd[10]/aProd[12],21,)+'</vUnTrib>'
cString += NfeTag('<vFrete>',ConvType(aProd[13],15,2))
cString += NfeTag('<vSeg>' ,ConvType(aProd[14],15,2))
Por favor Acessar ou Registrar para participar da conversa.
- admin
- Desconectado
- Administrador
Menos
Mais
- Postagens: 297
- Obrigados Recebidos: 21
1 ano 3 meses atrás #33349
por admin
Respondido por admin no tópico Ponto de Entrada PE01NFESEFAZ para NFESEFAZ
No fonte nfesefaz.prw procura a linha aonde alimenta a variavel cdescprod, antes dessa linha coloca
If (cAliasSD2)->D2_TES $ '7101' // cfop de exportacao exemplo
cUN := SB1->B1_SEGUM
Else
cUN := SB1->B1_UM
Endif
cUTrib := cUN
aadd(aProd, {Len(aProd)+1,;
cCodProd,;
IIf(Val(SB1->B1_CODBAR)==0,"",StrZero(Val(SB1->B1_CODBAR),Len(Alltrim(SB1->B1_CODBAR)),0)),;
cDescProd,;
SB1->B1_POSIPI,;//Retirada validação do parametro MV_CAPPROD, de acordo com a NT2014/004 não é mais possível informar o capítulo do NCM
SB1->B1_EX_NCM,;
cD2Cfop,;
SB1->B1_UM,;
Depois pesquisa esse trecho e troca o SB1->B1_UM por cUN
Pronto vai sair a segunda unidade.
If (cAliasSD2)->D2_TES $ '7101' // cfop de exportacao exemplo
cUN := SB1->B1_SEGUM
Else
cUN := SB1->B1_UM
Endif
cUTrib := cUN
aadd(aProd, {Len(aProd)+1,;
cCodProd,;
IIf(Val(SB1->B1_CODBAR)==0,"",StrZero(Val(SB1->B1_CODBAR),Len(Alltrim(SB1->B1_CODBAR)),0)),;
cDescProd,;
SB1->B1_POSIPI,;//Retirada validação do parametro MV_CAPPROD, de acordo com a NT2014/004 não é mais possível informar o capítulo do NCM
SB1->B1_EX_NCM,;
cD2Cfop,;
SB1->B1_UM,;
Depois pesquisa esse trecho e troca o SB1->B1_UM por cUN
Pronto vai sair a segunda unidade.
Por favor Acessar ou Registrar para participar da conversa.
- edsonnovaes
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 5
- Obrigados Recebidos: 0
1 ano 3 meses atrás #33352
por edsonnovaes
Respondido por edsonnovaes no tópico Ponto de Entrada PE01NFESEFAZ para NFESEFAZ
Eu fiz a alteração no fonte mais continua saindo com a informação da segunda unidade de medida nos itens danfe em operações dentro do pais.
estou tentando com esse ponto de entrada mais continua mesmo jeito.
#Include "TOTVS.ch"
#Include "TopConn.ch"
/*/{Protheus.doc} User Function PE01NFESEFAZ
Ponto de entrada antes da montagem dos dados da transmissão da NFE
@type Function
@author Atilio
@since 10/01/2023
@see centraldeatendimento.totvs.com/hc/pt-br/...FESEFAZ-PE01NFESEFAZ
@obs Posições do Array:
[01] = aProd
[02] = cMensCli
[03] = cMensFis
[04] = aDest
[05] = aNota
[06] = aInfoItem
[07] = aDupl
[08] = aTransp
[09] = aEntrega
[10] = aRetirada
[11] = aVeiculo
[12] = aReboque
[13] = aNfVincRur
[14] = aEspVol
[15] = aNfVinc
[16] = aDetPag
[17] = aObsCont
[18] = aProcRef
[19] = aMed
[20] = aLote
/*/
User Function PE01NFESEFAZ()
Local aArea := FWGetArea()
Local aAreaSA4 := SA4->(FWGetArea())
Local aAreaSA1 := SA1->(FWGetArea())
Local aAreaSB1 := SB1->(FWGetArea())
Local aDados := PARAMIXB
Local cMsgAux := ""
Local cTipoRedes := ""
Local cQrySC5 := ""
Local aProd := aDados[01]
Local nProdAtu := 0
//Se não for devolução e nem usa fornecedor
If ! SF2->F2_TIPO $ "B;D;"
//Posiciona no cliente
DbSelectArea("SA1")
SA1->(DbSetOrder(1))
If SA1->(MsSeek(FWxFilial("SA1") + SF2->F2_CLIENTE + SF2->F2_LOJA))
//Se o cliente for exportação
If SA1->A1_EST == "EX"
//Percorre os produtos
For nProdAtu := 1 To Len(aProd)
//Pega o código do produto na tag
cXCodProd := aProd[nProdAtu][02]
//Abre a tabela de produtos
DbSelectArea("SB1")
SB1->(DbSetOrder(1))
//Se conseguiu posicionar no produto e o tipo for Produto acabado e a segunda for KG
If SB1->(MsSeek(FWxFilial("SB1") + cXCodProd)) .And. SB1->B1_UM == "UN" .And. SB1->B1_SEGUM == "KG"
//Pega a unidade de conversão, o valor de conversão, a quantidade vendida e o tipo de conversão
cXUmPri := SB1->B1_UM
cXUmDipi := SB1->B1_SEGUM //B5_UMDIPI
nXConvDip := SB1->B1_CONV //B5_CONVDIP
nXQuantid := aProd[nProdAtu][09]
cXTipoConv := SB1->B1_TIPCONV
//Se tiver valor de conversão
If nXConvDip != 0
//Altera a unidade para a convertida
cUnTrib := cXUmPri
//Faz a conversão se for multiplicação / divisão
If cXTipoConv == "M"
nQtdTrib := nXConvDip * nXQuantid
Else
nQtdTrib := nXQuantid / nXConvDip
EndIf
//Altera as posições do produto antes de gerar o XML
aProd[nProdAtu][08] := cUnTrib //uCom
aProd[nProdAtu][09] := nQtdTrib //qCom
aProd[nProdAtu][11] := cUnTrib //uTrib
aProd[nProdAtu][12] := nQtdTrib //qTrib
EndIf
EndIf
Next
EndIf
EndIf
EndIf
FWRestArea(aAreaSB1)
FWRestArea(aAreaSA1)
FWRestArea(aAreaSA4)
FWRestArea(aArea)
Return aDados
estou tentando com esse ponto de entrada mais continua mesmo jeito.
#Include "TOTVS.ch"
#Include "TopConn.ch"
/*/{Protheus.doc} User Function PE01NFESEFAZ
Ponto de entrada antes da montagem dos dados da transmissão da NFE
@type Function
@author Atilio
@since 10/01/2023
@see centraldeatendimento.totvs.com/hc/pt-br/...FESEFAZ-PE01NFESEFAZ
@obs Posições do Array:
[01] = aProd
[02] = cMensCli
[03] = cMensFis
[04] = aDest
[05] = aNota
[06] = aInfoItem
[07] = aDupl
[08] = aTransp
[09] = aEntrega
[10] = aRetirada
[11] = aVeiculo
[12] = aReboque
[13] = aNfVincRur
[14] = aEspVol
[15] = aNfVinc
[16] = aDetPag
[17] = aObsCont
[18] = aProcRef
[19] = aMed
[20] = aLote
/*/
User Function PE01NFESEFAZ()
Local aArea := FWGetArea()
Local aAreaSA4 := SA4->(FWGetArea())
Local aAreaSA1 := SA1->(FWGetArea())
Local aAreaSB1 := SB1->(FWGetArea())
Local aDados := PARAMIXB
Local cMsgAux := ""
Local cTipoRedes := ""
Local cQrySC5 := ""
Local aProd := aDados[01]
Local nProdAtu := 0
//Se não for devolução e nem usa fornecedor
If ! SF2->F2_TIPO $ "B;D;"
//Posiciona no cliente
DbSelectArea("SA1")
SA1->(DbSetOrder(1))
If SA1->(MsSeek(FWxFilial("SA1") + SF2->F2_CLIENTE + SF2->F2_LOJA))
//Se o cliente for exportação
If SA1->A1_EST == "EX"
//Percorre os produtos
For nProdAtu := 1 To Len(aProd)
//Pega o código do produto na tag
cXCodProd := aProd[nProdAtu][02]
//Abre a tabela de produtos
DbSelectArea("SB1")
SB1->(DbSetOrder(1))
//Se conseguiu posicionar no produto e o tipo for Produto acabado e a segunda for KG
If SB1->(MsSeek(FWxFilial("SB1") + cXCodProd)) .And. SB1->B1_UM == "UN" .And. SB1->B1_SEGUM == "KG"
//Pega a unidade de conversão, o valor de conversão, a quantidade vendida e o tipo de conversão
cXUmPri := SB1->B1_UM
cXUmDipi := SB1->B1_SEGUM //B5_UMDIPI
nXConvDip := SB1->B1_CONV //B5_CONVDIP
nXQuantid := aProd[nProdAtu][09]
cXTipoConv := SB1->B1_TIPCONV
//Se tiver valor de conversão
If nXConvDip != 0
//Altera a unidade para a convertida
cUnTrib := cXUmPri
//Faz a conversão se for multiplicação / divisão
If cXTipoConv == "M"
nQtdTrib := nXConvDip * nXQuantid
Else
nQtdTrib := nXQuantid / nXConvDip
EndIf
//Altera as posições do produto antes de gerar o XML
aProd[nProdAtu][08] := cUnTrib //uCom
aProd[nProdAtu][09] := nQtdTrib //qCom
aProd[nProdAtu][11] := cUnTrib //uTrib
aProd[nProdAtu][12] := nQtdTrib //qTrib
EndIf
EndIf
Next
EndIf
EndIf
EndIf
FWRestArea(aAreaSB1)
FWRestArea(aAreaSA1)
FWRestArea(aAreaSA4)
FWRestArea(aArea)
Return aDados
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- Comunicação Eletrônica (SEFAZ/SPED)
- Nfe (Nota Fiscal Eletrônica)
- Ponto de Entrada PE01NFESEFAZ para NFESEFAZ
Tempo para a criação da página:0.105 segundos