Perguntas Ponto de Entrada PE01NFESEFAZ para NFESEFAZ

Mais
3 anos 11 meses atrás #32947 por admin
paramixb[5]

anota[3] é a f2_emissao

veja se consegue visualizar o conteudo debugando.

Por favor Acessar ou Registrar para participar da conversa.

Mais
1 ano 3 meses atrás #33346 por edsonnovaes
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?

Por favor Acessar ou Registrar para participar da conversa.

Mais
1 ano 3 meses atrás #33347 por admin
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.
Anexos:

Por favor Acessar ou Registrar para participar da conversa.

Mais
1 ano 3 meses atrás #33348 por edsonnovaes
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,8))+'</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,8))+'</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.

Mais
1 ano 3 meses atrás #33349 por admin
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.

Por favor Acessar ou Registrar para participar da conversa.

Mais
1 ano 3 meses atrás #33352 por edsonnovaes
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

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.105 segundos
Joomla templates by a4joomla