Exemplo do Ponto de Entrada M460FIM.
Exemplo do Ponto de Entrada:
//Bibliotecas
#Include "TOPCONN.CH"
/*------------------------------------------------------------------------------------------------------*
| P.E.: M460FIM |
| Desc: Gravação dos dados após gerar NF de Saída |
| Links: http://tdn.totvs.com/pages/releaseview.action?pageId=6784180 |
*------------------------------------------------------------------------------------------------------*/
User Function M460FIM()
Local cPedido := ''
Local cCampo := ''
Local aAreaSF2 := SF2->(GetArea())
Local aAreaSD2 := sd2->(GetArea())
Local aAreaSC5 := sc5->(GetArea())
Local aAreaSE1 := sE1->(GetArea())
Local aAreaSA1 := sA1->(GetArea())
//Pega o pedido
DbSelectArea("SD2")
SD2->(DbSetorder(3))
If SD2->(DbSeek(SF2->(F2_FILIAL+F2_DOC+F2_SERIE+F2_CLIENTE+F2_LOJA)))
cPedido := SD2->D2_PEDIDO
Endif
//Se tiver pedido
If !Empty(cPedido)
DbSelectArea("SC5")
SC5->(DbSetorder(1))
//Se posiciona pega o tipo de pagamento
If SC5->(DbSeek(FWxFilial('SC5')+cPedido))
cCampo := SC5->C5_X_CAMPO
Endif
Endif
//Filtra títulos dessa nota
cSql := "SELECT R_E_C_N_O_ AS REC FROM "+RetSqlName("SE1")
cSql += " WHERE E1_FILIAL = '"+xFilial("SE1")+"' AND D_E_L_E_T_<>'*' "
cSql += " AND E1_PREFIXO = '"+SF2->F2_SERIE+"' AND E1_NUM = '"+SF2->F2_DOC+"' "
cSql += " AND E1_TIPO = 'NF' "
TcQuery ChangeQuery(cSql) New Alias "_QRY"
//Enquanto tiver dados na query
While !_QRY->(eof())
DbSelectArea("SE1")
SE1->(DbGoTo(_QRY->REC))
//Se tiver dado, altera o tipo de pagamento
If !SE1->(EoF())
RecLock("SE1",.F.)
Replace E1_X_CAMPO WITH cCampo
MsUnlock()
EndIf
_QRY->(DbSkip())
Enddo
_QRY->(DbCloseArea())
RestArea(aAreaSF2)
RestArea(aAreaSD2)
RestArea(aAreaSC5)
RestArea(aAreaSE1)
RestArea(aAreaSA1)
Return
Observações:
– Caso tenha dúvidas ou problemas com os exemplos, entre em contato;
– Se tiver sugestões de rotinas, pode entrar em contato;