SF1100I

Faz tratativas após incluir um Documento de Entrada

Exemplo 1- Manipular títulos (a pagar / a receber) vinculados ao Documento de Entrada:

User Function SF1100I()
	Local aArea := GetArea()
	Local aAreaF1 := SF1->(GetArea())
	Local aAreaE2 := SE2->(GetArea())
	Local aAreaE1 := SE1->(GetArea())
	Local dVenc := Date()

	//Se for Beneficiamento ou Devolucao, será Título a Receber
	If SF1->F1_TIPO $ "B;D;"
		DbSelectArea("SE1")
		SE1->(DbSetOrder(2))  //E1_FILIAL+E1_CLIENTE+E1_LOJA+E1_PREFIXO+E1_NUM+E1_PARCELA+E1_TIPO
		
		//Se conseguir posicionar, altera o vencimento... se houver mais de uma parcela, o ideal é transformar o trecho abaixo em um while com DbSkip
		If SE1->(DbSeek(FWxFilial("SE1")+SF1->F1_FORNECE+SF1->F1_LOJA+SF1->F1_SERIE+SF1->F1_DOC))
		
			RecLock("SE1",.F.)
				SE1->E1_VENCTO  := dVenc
				SE1->E1_VENCREA := DataValida(dVenc)
			SE1->(MsUnLock())
		EndIf
		
	//Senão, será Título a Pagar
	Else
		DbSelectArea("SE2")
		SE2->(DbSetOrder(6))  //E2_FILIAL + E2_FORNECE + E2_LOJA + E2_PREFIXO + E2_NUM
		
		//Se conseguir posicionar, altera o vencimento... se houver mais de uma parcela, o ideal é transformar o trecho abaixo em um while com DbSkip
		If SE2->(DbSeek(FWxFilial("SE2")+SF1->F1_FORNECE+SF1->F1_LOJA+SF1->F1_SERIE+SF1->F1_DOC))
		
			RecLock("SE2",.F.)
				SE2->E2_VENCTO  := dVenc
				SE2->E2_VENCREA := DataValida(dVenc)
			SE2->(MsUnLock())
		EndIf
	EndIf
	
	RestArea(aAreaE1)
	RestArea(aAreaE2)
	RestArea(aAreaF1)
	RestArea(aArea)
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;