Perguntas Ponto de Entrada PE01NFESEFAZ para NFESEFAZ

Mais
11 anos 7 meses atrás #5577 por lalberto
Segue Dica cedida pelo nosso amigo Marcio

Como o ponto de entrada PE01NFESefaz, não há mais necessidade de ficar alterando o fonte padrão nfesefaz.prw.
Segue exemplo:

/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma ³ PE01NFESEFAZ ºAutor ³M.Aflitos º Data ³ 14/09/12 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc. ³ PONTO DE ENTRADA PARA MANIPULAR OS DADOS DA NF QUE º±±
±±º ³ ANTES DE GERAR O XML º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ AP º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß

ESTE PONTO DE ENTRADA ELIMINA A NECESSIDADE DE SE ALTERAR O FONTE PADRÃO NFESEFAZ.PRW
*/
#include "protheus.ch"

#define aPROD 1 //-> aProd
#define cMENSCLI 2 //-> cMensCli
#define cMENSFIS 3 //-> cMensFis
#define aDEST 4 //-> aDest
#define aNOTA 5 //-> aNota
#define aINFOITEM 6 //-> aInfoItem
#define aDUPL 7 //-> aDupl
#define aTRANSP 8 //-> aTransp
#define aENTREGA 9 //-> aEntrega
#define aRETIRADA 10 //-> aRetirada
#define aVEICULO 11 //-> aVeiculo
#define aREBOQUE 11 //-> aReboque

// 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[11] -> aReboque



USER FUNCTION PE01NFESEFAZ()

LOCAL aNfe := PARAMIXB
Local cMsg := ""
LOCAL cMensCli:=""
Local nI := 0
LOCAL aAreaSe4 :={}
LOCAL aAreaSa2 :={}
LOCAL bAux
LOCAL lNfEntrada:=.F.
LOCAL lNfSaida:=.F.
LOCAL cCtrlPed:=.T.

LOCAL cEmailAdic:=""

lNfEntrada:=(aNfe[aNOTA,4]=="0")
lNfSaida:=(aNfe[aNOTA,4]=="1")

cMensCli:=aNfe[cMENSCLI]

IF lNfSaida
If !Empty(SF2->F2_REDESP)
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Posiciona o SA4 Para Buscar os dados do Redespacho ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
aAreaSA4 := SA4->(GetArea())
SA4->(DbSelectArea("SA4")) && Cadastro de Transportadoras
SA4->(DbSetOrder(1)) && A4_FILIAL + A4_COD
If SA4->(DbSeek(xFilial("SA4") + SF2->F2_REDESP))
cMensCli += " - REDESPACHO: " + AllTrim(SA4->A4_NOME) + " - " + AllTrim(SA4->A4_END) + ", " + AllTrim(SA4->A4_MUN) + "/" + AllTrim(SA4->A4_EST) + " TEL.: " + AllTrim(SA4->A4_TEL) + space(15) //" FRETE: " + IIf(SC5->C5_ASTPRED=="C","CIF (1)","FOB (2)") + Space(20) //estava Space(1)
EndIf
RestArea(aAreaSA4)
Else
If (aNfe[aNOTA,5] == "D") .OR. (aNfe[aNOTA,5] == "B") //nf de devolucao/remessa->fornecedor
cMensCli += " - Local Entrega: " + AllTrim(SA2->A2_END) + ", " + AllTrim(SA2->A2_MUN) + "/" + AllTrim(SA2->A2_EST) + Space(1)
Else
If !empty(SA1->A1_ENDENT) // Local de Entrega 1
cMensCli += " - Local Entrega: " + AllTrim(SA1->A1_ENDENT) + ", " + AllTrim(SA1->A1_MUNE) + "/" + AllTrim(SA1->A1_ESTE) + Space(1)
EndIf
EndIf
EndIf

//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Cond. Vendas ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
aAreaSE4 := SA1->(GetArea())
SE4->(DbSelectArea("SE4"))
SE4->(DbSetOrder())
If !Empty(SF2->F2_COND)
If SE4->(DbSeek(xFilial("SE4") + SF2->F2_COND))
cMensCli += " - Cond.Vendas: " + AllTrim(SE4->E4_DESCRI) + Space(1)
EndIf
EndIf
RestArea(aAreaSE4)
lAux := .T.
EndIf

//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ S/ Pedido, N/ Pedido e Vendedor ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
SC5->(OrdSetFocus(1))
bAux:={|msg| cMensCli+=Iif( !(msg$cMensCli),msg,""),At(msg,cMensCli)+Len(msg) } //21/10/11-M.AFLITOS-BLOCO CODIGO TRATA MAIS DE UM NRO.PEDIDO NA NF.O BLOCO DEVOLVE A POSIÇÃO
cCtrlPed:=""
FOR nItem:=1 TO Len(aNfe[aINFOITEM])
IF .NOT. (aNfe[aINFOITEM, nItem, 1] $ cCtrlPed)

cCtrlPed += aNfe[aINFOITEM, nItem, 1]+";"

IF aNfe[aINFOITEM, nItem, 1] <> SC5->C5_NUM
SC5->(DbSeek(xFilial("SC5")+aNfe[aINFOITEM, nItem, 1]))
ENDIF
If !Empty(SC5->C5_NPEDCLI) .AND. !(AllTrim(SC5->C5_NPEDCLI)$cMensCli)
cMensCli := Stuff( cMensCli,Eval(bAux,"- S/Pedido:"),0, AllTrim(SC5->C5_NPEDCLI) + " /")
EndIf
If !Empty(SC5->C5_NUM) .AND. !(AllTrim(SC5->C5_NUM)$cMensCli)
cMensCli := Stuff( cMensCli,Eval(bAux,"- N/Pedido:"),0, AllTrim(SC5->C5_NUM) + " /")
EndIf
If !Empty(SC5->C5_VEND1) .AND. !(AllTrim(SC5->C5_VEND1) $ cMensCli)
cMensCli := Stuff( cMensCli,Eval(bAux,"- Vendedor:"),0, AllTrim(SC5->C5_VEND1) + " /")
EndIf

// Mensagens Pedido
If !AllTrim(SC5->C5_DADOS01) $ cMensCli
cMensCli += AllTrim(SC5->C5_DADOS01) + Space(1)
EndIf
If !AllTrim(SC5->C5_DADOS02) $ cMensCli
cMensCli += AllTrim(SC5->C5_DADOS02) + Space(1)
EndIf

If !AllTrim(SC5->C5_DADOS03) $ cMensCli
cMensCli += AllTrim(SC5->C5_DADOS03) + Space(1)
EndIf
If !AllTrim(SC5->C5_DADOS04) $ cMensCli
cMensCli += AllTrim(SC5->C5_DADOS04) + Space(1)
EndIf

If !AllTrim(SC5->C5_DADOS05) $ cMensCli
cMensCli += AllTrim(SC5->C5_DADOS05) + Space(1)
EndIf
ENDIF
NEXT


IF "ZONA FRANCA"$ aNfe[cMENSCLI]
//TRATAR A MENSAGEM DA ZONA FRANCA
cMensZF:=aRef[cMENSCLI]
EndIF
ENDIF

IF lNfEntrada

//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Busca conteudo do campo personalizado a ser impresso nos Dados Adicion ³
//³ ais ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
If !AllTrim(SF1->F1_DADOS01) $ cMensCli
cMensCli += AllTrim(SF1->F1_DADOS01) + Space(1)
EndIf
If !AllTrim(SF1->F1_DADOS02) $ cMensCli
cMensCli += AllTrim(SF1->F1_DADOS02) + Space(1)
EndIf
If !AllTrim(SF1->F1_DADOS03) $ cMensCli
cMensCli += AllTrim(SF1->F1_DADOS03) + Space(1)
EndIf
If !AllTrim(SF1->F1_DADOS04) $ cMensCli
cMensCli += AllTrim(SF1->F1_DADOS04) + Space(1)
EndIf
ENDIF

aNfe[cMENSCLI]:=cMenscli

//TRATAR EMAIL
cEmailAdic:=Alltrim(SuperGetMV("MV_EMAILNF",.F.,""))
aNfe[aDEST,16]:=AllTrim(aNfe[aDEST,16])+";"+cEmailAdic

RETURN aNfe

Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br

Por favor Acessar ou Registrar para participar da conversa.

Mais
8 anos 10 meses atrás #28491 por colangelo1982
Olá Luiz....

Estou tentando usar esse ponto de entrada más não estou conseguindo....
Eu tenho q alterar na danfe a data entrada/saida diferente da data de emissão.
Já alterei o parametro para deixar em branco essa data, mas não estou conseguindo fazer ela aparecer na danfe...

Será q vc pode me ajudar?

Obrigado

Por favor Acessar ou Registrar para participar da conversa.

Mais
8 anos 10 meses atrás #28492 por lalberto
Carinha me explica o que vc precisa fazer, deixar em branco ? é isso ? vc mexeu aqui ?

aadd(aNota,SF2->F2_EMISSAO) ??

Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br

Por favor Acessar ou Registrar para participar da conversa.

Mais
8 anos 10 meses atrás #28493 por lalberto
o Vetor aNota[03] é a data da emissao F2_EMISSAO, senão me engano vc ñão pode mandar vazia.



//Nota Técnica 2013/005 - Data e Hora no formato UTC
If cVeramb >= "3.10"
cString += '<dhEmi>'+ConvType(aNota[03])+"T"+Iif(Len(aNota[06]) > 5,ConvType(aNota[06]),ConvType(aNota[06])+":00")+'</dhEmi>'
cString += NfeTag('<dhSaiEnt>',Iif(lDSaiEnt,"",ConvType(aNota[03])+"T"+Iif(Len(aNota[06]) > 5,ConvType(aNota[06]),ConvType(aNota[06])+":00")))
Else
cString += '<dEmi>'+ConvType(aNota[03])+'</dEmi>'
cString += NfeTag('<dSaiEnt>',Iif(lDSaiEnt, "", ConvType(aNota[03])))
If !lDSaiEnt .And. !Empty(aNota[06])
if len(aNota[06]) > 5
cString += '<hSaiEnt>'+ConvType(aNota[06])+'</hSaiEnt>'
else
cString += '<hSaiEnt>'+ConvType(aNota[06])+":00"+'</hSaiEnt>'
endif
Endif
EndIf

Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br

Por favor Acessar ou Registrar para participar da conversa.

Mais
8 anos 10 meses atrás #28494 por lalberto
Ou é só na danfe que vc deseja que saia em branco ?

Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br

Por favor Acessar ou Registrar para participar da conversa.

Mais
8 anos 10 meses atrás #28495 por lalberto
Se For apenas na danfe que deseja que saia em branco, mexe aqui neste bloco dentro do fonte DANFEii.PRW

aDest := {cEndDest,;
NoChar(oDestino:_EnderDest:_XBairro:Text,lConverte),;
IIF(Type("oDestino:_EnderDest:_Cep")=="U","",Transform(oDestino:_EnderDest:_Cep:Text,"@r 99999-999")),;
IIF(oNF:_INFNFE:_VERSAO:TEXT >= "3.10",IIF(Type("oIdent:_DHSaiEnt")=="U","",oIdent:_DHSaiEnt:Text),IIF(Type("oIdent:_DSaiEnt")=="U","",oIdent:_DSaiEnt:Text)),;
oDestino:_EnderDest:_XMun:Text,;
IIF(Type("oDestino:_EnderDest:_fone")=="U","",oDestino:_EnderDest:_fone:Text),;
oDestino:_EnderDest:_UF:Text,;
IIF(Type("oDestino:_IE")=="U","",oDestino:_IE:Text),;
""}


Deixa assim:

aDest := {cEndDest,;
NoChar(oDestino:_EnderDest:_XBairro:Text,lConverte),;
IIF(Type("oDestino:_EnderDest:_Cep")=="U","",Transform(oDestino:_EnderDest:_Cep:Text,"@r 99999-999")),;
"",;
oDestino:_EnderDest:_XMun:Text,;
IIF(Type("oDestino:_EnderDest:_fone")=="U","",oDestino:_EnderDest:_fone:Text),;
oDestino:_EnderDest:_UF:Text,;
IIF(Type("oDestino:_IE")=="U","",oDestino:_IE:Text),;
""}

Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br

Por favor Acessar ou Registrar para participar da conversa.

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