Exemplos | //---------------------------------------------------------------------------------------------------------- // *** OBSERVAÇÃO: ESTE É APENAS UM EXEMPLO. Deve ser ajustado conforme a necessidade. //---------------------------------------------------------------------------------------------------------- // Este exemplo é baseado em uma venda com itens de "Retira" e itens de "Entrega" na mesma venda. // Neste caso somente se quer gerar o Contas a Receber apenas com o valor do "orçamento filho" // que contém os itens de "Retira", que são itens que o cliente comprou e levou na hora. // Para os itens de "Entrega" não gera o Contas a Receber. //----------------------------------------------------------------------------------------------------------
#INCLUDE "PROTHEUS.CH"
User Function LJGRFIN() Local aRet := {} Local aSL4 := {} Local aNewSL4 := {} Local cTmpAlias := GetNextAlias() Local aAuxSL4 := {} Local cL1Filial := "" Local cL1Num := "" Local aAreaSL4 := {}
If SL1->L1_TIPO == "P" //P=Pedido (Verifica se o orcamento PAI tem venda de Pedido (Entrega)
//Guarda a area anterior onde o registro estava posicionado aAreaSL4 := SL4->(GetArea())
aSL4 := aClone( PARAMIXB[1] )
cL1Filial := SL1->L1_FILIAL cL1Num := SL1->L1_NUM
//Busca o orcamento Filho com itens Fiscais (Retira na hora), o qual deve gerar o financeiro BeginSQL Alias cTmpAlias SELECT L1_NUM FROM %table:SL1% WHERE L1_FILIAL = %XFilial:SL1% AND L1_ORCRES = %exp:cL1Num% AND L1_PEDRES = ' ' AND %notDel% EndSQL
If (cTmpAlias)->( !Eof() )
DbSelectArea("SL4") SL4->(dbSetOrder(1)) //L4_FILIAL+L4_NUM If SL4->(dbSeek(xFilial("SL4")+(cTmpAlias)->L1_NUM))
While SL4->( !EoF() ) .And. SL4->L4_FILIAL+ SL4->L4_NUM == xFilial("SL4")+(cTmpAlias)->L1_NUM
Aadd( aAuxSL4, SL4->L4_DATA ) //01-Data de vencimento Aadd( aAuxSL4, SL4->L4_VALOR ) //02-Valor da parcela Aadd( aAuxSL4, SL4->L4_FORMA ) //03-Forma de recebimento Aadd( aAuxSL4, SL4->L4_ADMINIS ) //04-Codigo e nome da Administradora Aadd( aAuxSL4, SL4->L4_NUMCART ) //05-Numero do cartao/cheque Aadd( aAuxSL4, SL4->L4_AGENCIA ) //06-Agencia do cheque Aadd( aAuxSL4, SL4->L4_CONTA ) //07-Numero da conta do cheque Aadd( aAuxSL4, SL4->L4_RG ) //08-RG do portador do cheque Aadd( aAuxSL4, SL4->L4_TELEFON ) //09-Telefone do portador do cheque Aadd( aAuxSL4, SL4->L4_TERCEIR ) //10-Indica se o cheque eh de terceiros Aadd( aAuxSL4, 1 ) //11-Moeda Aadd( aAuxSL4, SL4->L4_PARCTEF ) //12-Tipo de parcelamento Aadd( aAuxSL4, SL4->L4_ACRSFIN ) //13-Acrescimo Financeiro Aadd( aAuxSL4, SL4->L4_NOMECLI ) //14-Nome Emitente quando cheque de terceiro Aadd( aAuxSL4, SL4->L4_FORMAID ) //15-ID do Cartao de Credito ou Debito Aadd( aAuxSL4, SL4->L4_NSUTEF ) //16-NSU da trasacao TEF Aadd( aAuxSL4, SL4->L4_DOCTEF ) //17-Num. Documento TEF Aadd( aAuxSL4, SL4->(Recno()) ) //18-Numero Registro SL4 Aadd( aAuxSL4, SL4->L4_DESCMN ) //19 - Desconto MultNegociacao Aadd( aAuxSL4, SL4->L4_CONHTL ) //20 - Conta Hotel (Integração com Hotel) Aadd( aAuxSL4, SL4->L4_AUTORIZ ) //21 - Codigo Autorizacao TEF Aadd( aAuxSL4, SL4->L4_COMP ) //22 - Compensação Aadd( aAuxSL4, SL4->L4_IDCNAB ) //23 - IDCNAB Aadd( aNewSL4, aAuxSL4 ) aAuxSL4 := {}
SL4->( DbSkip() ) End
EndIf
EndIf
(cTmpAlias)->( DbCloseArea() )
//Reposiciona o registro RestArea(aAreaSL4)
Else aNewSL4 := aClone( PARAMIXB[1] ) //Devolve o array de pagamento sem alteracoes EndIf
aRet := aNewSL4
Return aRet
|
---|