× Linguagem de Programação ADVPL

Perguntas DATA VENCIMENTO NFS-E

Mais
11 anos 9 meses atrás #10831 por mariotchak
Pessoal Boa Tarde,

Estou precisando incluir a data de vencimento de um título na descrição da NFS-e, alguem tem algo sobre isso?

Encontrei um PE SF2460I e o fonte abaixo, porém não esta funcionando corretamente.

#Include "Protheus.ch"

User Function SF2460I()

Local cNota := SF2->F2_DOC
Local cSerie := SF2->F2_SERIE

Private xVenc, xMensagem, xPedido
Private oDescr := ""
Private infVenc := ""


/*
/ Trecho 2 - Montagem da descrição dos serviços /
/ Utilizado somente em faturamento de serviços /
/
*/


//Posiciona na NF e pega numero do pedido
dbselectarea("SD2")
dbsetorder(3)
dbseek(xfilial("SD2")+SF2->F2_DOC+SF2->F2_SERIE)

xPedido := alltrim(SD2->D2_PEDIDO)
SD2->(dbCloseArea())

//Posiciona no Pedido e pega campos de mensagem
dbSelectArea("SC5")
dbSetOrder(1)
dbSeek(xFilial("SC5")+ xPedido)
xMensagem := alltrim(SC5->C5_MENNOTA)
SC5->(dbCloseArea())

/*
//posiciona nos itens do pedido e pega descrição do produto ->somente do primeiro item, pois para serviços todos os itens sao iguais..
dbSelectArea("SC6")
dbSeek(xFilial("SC6")+ xPedido)
xDescr := alltrim(SC6->C6_DESCRI)
SC6->(dbCloseArea())
*/

//Posiciona nos titulos a receber e pega vencimento/parcela e valor
dbSelectArea("SE1")
SE1->(dbGoTop())

if dbSeek(xFilial("SE1")+ cSerie + cNota)

Do while SE1->(!EOF()) .AND. ((SE1->E1_PREFIXO) == cSerie) .AND. ((SE1->E1_NUM) == cNota)
xVenc := transform((SE1->E1_VENCTO),"@E") //+ SE1->E1_PARCELA + " - " + alltrim(transform((SE1->E1_VALOR),"@E 999,999,999.99")) + " / "
infVenc := infVenc + xVenc
SE1->(dbSkip())
endDo

endIf
SE1->(dbCloseArea())


// Monta descrição da nota
oDescr := xMensagem + " | " + "Vencimento(s): " + infVenc


//Grava Informação no campo C5_MENNOTA localizado no cabeçalho do pedido de vendas
dbSelectArea("SC5")
dbSeek(xFilial("SC5")+ xPedido)
recLock("SC5",.F.)
Replace SC5->C5_MENNOTA With oDescr
msUnLock()
SC5->(dbCloseArea())

Return

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 9 meses atrás #10833 por lalberto
Respondido por lalberto no tópico DATA VENCIMENTO NFS-E
Veja se funciona agora, só uma dica, não utilize este comando

SD2->(dbCloseArea()) ele só deverá ser utilizado em arquivos temporários, não em arquivos padrões do sistema ok.

#Include "Protheus.ch"

User Function SF2460I()

Local cNota := SF2->F2_DOC
Local cSerie := SF2->F2_SERIE

Private xVenc, xMensagem, xPedido
Private oDescr := ""
Private infVenc := ""


/*
/ Trecho 2 - Montagem da descrição dos serviços /
/ Utilizado somente em faturamento de serviços /
/
*/


//Posiciona na NF e pega numero do pedido
dbselectarea("SD2")
dbsetorder(3)
dbseek(xfilial("SD2")+SF2->F2_DOC+SF2->F2_SERIE)

xPedido := alltrim(SD2->D2_PEDIDO)

//Posiciona no Pedido e pega campos de mensagem
dbSelectArea("SC5")
dbSetOrder(1)
dbSeek(xFilial("SC5")+ xPedido)
xMensagem := alltrim(SC5->C5_MENNOTA)

//Posiciona nos titulos a receber e pega vencimento/parcela e valor
dbSelectArea("SE1")
dbSetOrder(1)
if dbSeek(xFilial("SE1")+ cSerie + cNota)
Do while SE1->(!EOF()) .AND. ((SE1->E1_PREFIXO) == cSerie) .AND. ((SE1->E1_NUM) == cNota)
xVenc := DtoC(SE1->E1_VENCTO) + ' / '

infVenc := infVenc + xVenc
SE1->(dbSkip())
endDo
endIf
// Monta descrição da nota
oDescr := xMensagem + " | " + "Vencimento(s): " + infVenc

If RecLock("SC5",.F.)
SC5->C5_MENNOTA := oDescr
msUnLock()
Endif
Return

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
11 anos 9 meses atrás #10840 por mariotchak
Respondido por mariotchak no tópico DATA VENCIMENTO NFS-E
Ficou muito bom......... Obrigado..........

Por favor Acessar ou Registrar para participar da conversa.

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