- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Ponto entrada (MATA410)
×
Linguagem de Programação ADVPL
Perguntas Ponto entrada (MATA410)
- jvc
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 18
- Obrigados Recebidos: 0
10 anos 2 meses atrás #25306
por jvc
Ponto entrada (MATA410) foi criado por jvc
Bom Dia, preciso de ajuda de novo, no faturamento todas as vendas registra no SE1_TIPO=NF e tudo tem que liquidar, estava vendo o pe M460FIM, gostaria de que ele gravasse o E4_FORMA no E1_TIPO, alguem ja fez algum ponto de entrada que realize isso?
Por favor Acessar ou Registrar para participar da conversa.
- hbaldin
- Desconectado
- Membro Dourado
Menos
Mais
- Postagens: 266
- Obrigados Recebidos: 0
10 anos 2 meses atrás #25307
por hbaldin
Respondido por hbaldin no tópico Ponto entrada (MATA410)
Bom dia
Use o PE SF2460I , tdn.totvs.com/pages/releaseview.action?pageId=6784447
Eu acabei de usar ele para realizar umas alterações no financeiro .
Abraços.
Use o PE SF2460I , tdn.totvs.com/pages/releaseview.action?pageId=6784447
Eu acabei de usar ele para realizar umas alterações no financeiro .
Abraços.
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
10 anos 2 meses atrás #25326
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Respondido por lalberto no tópico Ponto entrada (MATA410)
Segue um exemplo que altera os vencimentos do titulo, mas lembro a você que no seu caso estará mexendo diretamente com o indice 1 da SE1, ou seja, o do while não vai funcionar, pois assim que alterar o primeiro registro ele vai mudar de posição no indice e assim sair do do while na primeira alteração.
#include "rwmake.ch"
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma ³ SF2460I ºAutor ³ Luiz Alberto º Data ³ 02/09/14 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc. ³ Ponto de Entrada apos a geracao da nota fiscal de saida º±±
±±º ³ º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ AP º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
// Tratamento do vencimento dos titulos para o caso de cartão de credito
// deve considerar a data da emissao pedido de venda para calcular o vencimento
// e não a data da emissao da nota fiscal.
User Function SF2460I()
Local _aArea:=GetArea()
Local _aAreaD2:=SE1->(GetArea())
Local _aAreaE1:=SD2->(GetArea())
Local _aAreaC5:=SC5->(GetArea())
Local _aDup:={}
Local _dDtBaseFI := CTOD("")
If SF2->F2_TIPO = "N"
dbSelectArea("SC5")
dbSetOrder(1)
If dbSeek(xFilial()+SD2->D2_PEDIDO) .And. SF2->F2_VALFAT > 0 .And. SC5->(FieldPos("C5_TIPREC")) > 0 .And. SC5->C5_TIPREC == '3' // Cartao de Credito
_dDtBaseFI := SC5->C5_EMISSAO
_aDup := condicao(SF2->F2_VALFAT,SF2->F2_COND,SF2->F2_VALIPI,_dDtBaseFI,SF2->F2_ICMSRET)
If Len(_aDup) > 0
DbSelectArea("SE1")
DbSetOrder(1)
_lOk := .F.
If SE1->(DbSeek(xFilial("SE1")+SF2->(F2_SERIE+F2_DOC+SubStr(GetMv("MV_1DUP"),1,TamSx3("E1_PARCELA")[1]))))
_lOk := .T.
ElseIf SE1->(DbSeek(xFilial("SE1")+SF2->(F2_SERIE+F2_DOC+Space(TamSx3("E1_PARCELA")[1]))))
_lOk := .T.
Endif
If _lOk
DbSelectArea("SE1")
_nDup := 1
While SE1->(!Eof()) .And. xFilial("SE1") = SE1->E1_FILIAL .And. SE1->(E1_PREFIXO+E1_NUM) == SF2->(F2_SERIE+F2_DOC)
If AllTrim(SE1->E1_TIPO) = 'NF'
RecLock("SE1",.F.)
SE1->E1_VENCTO := _aDup[_nDup][1]
SE1->E1_VENCORI := _aDup[_nDup][1]
SE1->E1_VENCREA := DataValida(_aDup[_nDup][1],.T.)
MsUnLock()
++_nDup
If _nDup > Len(_aDup)
Exit
Endif
Endif
DbSkip()
EndDo
Endif
Endif
Endif
Endif
RestArea(_aAreaD2)
RestArea(_aAreaE1)
RestArea(_aAreaC5)
RestArea(_aArea)
Return
#include "rwmake.ch"
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma ³ SF2460I ºAutor ³ Luiz Alberto º Data ³ 02/09/14 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc. ³ Ponto de Entrada apos a geracao da nota fiscal de saida º±±
±±º ³ º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ AP º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
// Tratamento do vencimento dos titulos para o caso de cartão de credito
// deve considerar a data da emissao pedido de venda para calcular o vencimento
// e não a data da emissao da nota fiscal.
User Function SF2460I()
Local _aArea:=GetArea()
Local _aAreaD2:=SE1->(GetArea())
Local _aAreaE1:=SD2->(GetArea())
Local _aAreaC5:=SC5->(GetArea())
Local _aDup:={}
Local _dDtBaseFI := CTOD("")
If SF2->F2_TIPO = "N"
dbSelectArea("SC5")
dbSetOrder(1)
If dbSeek(xFilial()+SD2->D2_PEDIDO) .And. SF2->F2_VALFAT > 0 .And. SC5->(FieldPos("C5_TIPREC")) > 0 .And. SC5->C5_TIPREC == '3' // Cartao de Credito
_dDtBaseFI := SC5->C5_EMISSAO
_aDup := condicao(SF2->F2_VALFAT,SF2->F2_COND,SF2->F2_VALIPI,_dDtBaseFI,SF2->F2_ICMSRET)
If Len(_aDup) > 0
DbSelectArea("SE1")
DbSetOrder(1)
_lOk := .F.
If SE1->(DbSeek(xFilial("SE1")+SF2->(F2_SERIE+F2_DOC+SubStr(GetMv("MV_1DUP"),1,TamSx3("E1_PARCELA")[1]))))
_lOk := .T.
ElseIf SE1->(DbSeek(xFilial("SE1")+SF2->(F2_SERIE+F2_DOC+Space(TamSx3("E1_PARCELA")[1]))))
_lOk := .T.
Endif
If _lOk
DbSelectArea("SE1")
_nDup := 1
While SE1->(!Eof()) .And. xFilial("SE1") = SE1->E1_FILIAL .And. SE1->(E1_PREFIXO+E1_NUM) == SF2->(F2_SERIE+F2_DOC)
If AllTrim(SE1->E1_TIPO) = 'NF'
RecLock("SE1",.F.)
SE1->E1_VENCTO := _aDup[_nDup][1]
SE1->E1_VENCORI := _aDup[_nDup][1]
SE1->E1_VENCREA := DataValida(_aDup[_nDup][1],.T.)
MsUnLock()
++_nDup
If _nDup > Len(_aDup)
Exit
Endif
Endif
DbSkip()
EndDo
Endif
Endif
Endif
Endif
RestArea(_aAreaD2)
RestArea(_aAreaE1)
RestArea(_aAreaC5)
RestArea(_aArea)
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.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Ponto entrada (MATA410)
Tempo para a criação da página:0.113 segundos