User Function LJTelaRec( aRet, cMV_LJRECEB, cRecCart, cRecCPF, cRecCont, lOcioso, aTitulo )
Local _nVlTotRec := 0
Local _nTamPref := TamSX3("E1_PREFIXO")[1]
Local _nTamNum := TamSX3("E1_NUM")[1]
Local _nTamParc := TamSX3("E1_PARCELA")[1]
Local _nTamTipo := TamSX3("E1_TIPO")[1]
Local _cPrefixo := ""
Local _cNumero := ""
Local _cParcela := ""
Local _cTipo := ""
/*//---------------------------------------------------------------------------------------
// Aqui fica a tratativa no desenvolvimento da tela customizada de recebimento de títulos. */
//---------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------
//Exemplo de recebimento de 2 títulos, sendo 1 titulo no valor de 30,00 com desconto de 2,00 e o outro titulo no valor de 50,00 com desconto de 10,00.
//---------------------------------------------------------------------------------------
_nVlTotRec := 68 //Valor Total Recebido (já considerando o desconto)
/* aRet é parâmetro de referência e será utilizado para a baixa do título. Deverá ser alimentada na seguinte estrutura: */
aRet := { <valor do título>,;
{;
{;
/* Primeiro título */
TIT_SELE,; // _nVlTotRec,; //01-Valor Total Recebido
{} ; //02-Array com a relação de Titulos a serem Baixados
}
DbSelectArea("SE1")
SE1->(DbSetOrder(1)) //E1_FILIAL+E1_PREFIXO+E1_NUM+E1_PARCELA+E1_TIPO
//------------------------------------------
// Dados do 1º. Titulo que se deseja receber
//------------------------------------------
_cPrefixo := "001"
_cNumero := "000001"
_cParcela := "1"
_cTipo := "FI"
//Posiciona no 1º. Título para alimentar o array com os dados da SE1
If SE1->( DbSeek( xFilial("SE1") + PadR(_cPrefixo,_nTamPref) + PadR(_cNumero,_nTamNum) + PadR(_cParcela,_nTamParc) + PadR(_cTipo,_nTamTipo) ) )
aAdd( aRet[2], {;
.T.,; //|TIT_SELE | Lógico | | 01-Posicao lógica (.T. marca o título para baixa, .F. não marca o título para baixa)
TIT_PREF,; SE1->E1_PREFIXO,; //|TIT_PREF | Caractere | E1_PREFIXO | 02-Prefixo do titulo, carácter.
TITSE1->E1_NUMENUM,; //|TIT_NUME | Caractere | E1_NUM | 03-Titulo, carácter.
Número do Titulo
TITSE1->E1_PARCPARCELA,; //|TIT_PARC | Caractere | E1_PARCELA | 04-Parcela, carácter.
TITSE1->E1_VREAVENCREA,; //|TIT_VREA | Data | E1_VENCREA | 05-Vencimento real, data.
TITSE1->E1_VALOVALOR,; //|TIT_VALO | Numérico | | 06-Valor, do numérico.Título
TIT_MULT,; //07-Multa, numérico.
0,; //|TIT_MULT | Numérico | E1_MULTA | 07-Multa
0,; //|TIT_JURO,; | Numérico | E1_JUROS | //08-Juros
2, numérico.
; //|TIT_DESC,; | Numérico | | //09-Valor de Desconto
28, numérico.
; //|TIT_RECE,; | Numérico | | //10-Recebimento,Valor numérico.recebido
TIT SE1->E1_TIPO,; //|TIT_TIPO | Caractere | E1_TIPO | 11-Tipo
" ", carácter.
; //|TIT_CONT,; //12-Contrato, carácter. | Caractere | E1_NUMCRD | 12-Número do Contrato CRD
TIT_CLIE,; SE1->E1_CLIENTE,; //|TIT_CLIE | Caractere | E1_CLIENTE | 13-Cliente, carácter.
TITSE1->E1_LOJA,; //|TIT_LOJA | Caractere | E1_LOJA | 14-Loja, carácter.
TITSE1->E1_FILIFILIAL,; //|TIT_FILI | Caractere | E1_FILIAL | 15-Filial
SE1->(Recno()), carácter.
; //|TIT_RECN,; //16-Recno - número da posição | Numérico | SE1->(Recno())| 16-Recno do registro da tabela SE1
0, numérico.
; //|TIT_ACRS,; // | Numérico | E1_SDACRES | 17-Acrescimo financeiro
.F., numérico.
; //|TIT_CACR,; //18-Posicao logica, lógico.
| Lógico | .F. | 18-Posicao lógica - Posicao reservada de uso interno
TIT_ABAT0,; //|TIT_ABAT | Numérico | 0 | 19-Abatimentos, numérico.
Valor de Abatimentos
TITSE1->E1_VENCVENCTO,; //|TIT_VENC | Data | E1_VENCTO | 20-Vencimento original, data.
TIT_LOCKSE1->(E1_CLIENTE+E1_FILIAL+E1_PREFIXO+E1_NUM+E1_PARCELA),; //|TIT_LOCK | Caractere | SE1->E1_CLIENTE+SE1->E1_FILIAL+SE1->E1_PREFIXO+SE1->E1_NUM+SE1->E1_PARCELA | 21-Cod. de uso do Registro, carácter. para controle de LOCK
TIT_MOED,; //22-Codigo 1,; //|TIT_MOED | Numérico | E1_MOEDA | 22-Código da moeda do titulo, numérico.
título
NIL,; //|TIT_INTE,; // | Numérico | Nil | 23-Interes (Juros) - Posicao reservada de uso interno
ctod(" / / "), numérico.
; //|TIT_DTBX | Data | E1_BAIXA | 24-Data da baixa
SE1->E1_SALDO,; //|TIT_SALD | Numérico | E1_SALDO | 25-Saldo do título
0; //|TIT_VLIQ | Numérico | E1_VALLIQ | 26-Valor Liquido
} )
EndIf
//------------------------------------------
// Dados do 2º. Titulo que se deseja //24-Dt. da baixa, data.
TIT_SALD,; //25-Saldo do titulo, numérico.
TIT_VLIQ; //26-Valor Liquido, numérico.
};
{;
/* Segundo título */
};
{;
/* Terceiro título */
};
...
};
}
Return .F. receber
//------------------------------------------
_cPrefixo := "001"
_cNumero := "000002"
_cParcela := "1"
_cTipo := "FI"
//Posiciona no 2º. título para alimentar o array com os dados da SE1
If SE1->( DbSeek( xFilial("SE1") + PadR(_cPrefixo,_nTamPref) + PadR(_cNumero,_nTamNum) + PadR(_cParcela,_nTamParc) + PadR(_cTipo,_nTamTipo) ) )
aAdd( aRet[2], {;
.T.,; //|TIT_SELE | Lógico | | 01-Posicao lógica (.T. marca o título para baixa, .F. não marca o título para baixa)
SE1->E1_PREFIXO,; //|TIT_PREF | Caractere | E1_PREFIXO | 02-Prefixo do titulo
SE1->E1_NUM,; //|TIT_NUME | Caractere | E1_NUM | 03-Número do Titulo
SE1->E1_PARCELA,; //|TIT_PARC | Caractere | E1_PARCELA | 04-Parcela
SE1->E1_VENCREA,; //|TIT_VREA | Data | E1_VENCREA | 05-Vencimento real
SE1->E1_VALOR,; //|TIT_VALO | Numérico | | 06-Valor do Título
0,; //|TIT_MULT | Numérico | E1_MULTA | 07-Multa
0,; //|TIT_JURO | Numérico | E1_JUROS | 08-Juros
10,; //|TIT_DESC | Numérico | | 09-Valor de Desconto
40,; //|TIT_RECE | Numérico | | 10-Valor recebido
SE1->E1_TIPO,; //|TIT_TIPO | Caractere | E1_TIPO | 11-Tipo
" ",; //|TIT_CONT | Caractere | E1_NUMCRD | 12-Número do Contrato CRD
SE1->E1_CLIENTE,; //|TIT_CLIE | Caractere | E1_CLIENTE | 13-Cliente
SE1->E1_LOJA,; //|TIT_LOJA | Caractere | E1_LOJA | 14-Loja
SE1->E1_FILIAL,; //|TIT_FILI | Caractere | E1_FILIAL | 15-Filial
SE1->(Recno()),; //|TIT_RECN | Numérico | SE1->(Recno())| 16-Recno do registro da tabela SE1
0,; //|TIT_ACRS | Numérico | E1_SDACRES | 17-Acrescimo financeiro
.F.,; //|TIT_CACR | Lógico | .F. | 18-Posicao lógica - Posicao reservada de uso interno
0,; //|TIT_ABAT | Numérico | 0 | 19-Valor de Abatimentos
SE1->E1_VENCTO,; //|TIT_VENC | Data | E1_VENCTO | 20-Vencimento original
SE1->(E1_CLIENTE+E1_FILIAL+E1_PREFIXO+E1_NUM+E1_PARCELA),; //|TIT_LOCK | Caractere | SE1->E1_CLIENTE+SE1->E1_FILIAL+SE1->E1_PREFIXO+SE1->E1_NUM+SE1->E1_PARCELA | 21-Cod. de uso do Registro para controle de LOCK
1,; //|TIT_MOED | Numérico | E1_MOEDA | 22-Código da moeda do título
NIL,; //|TIT_INTE | Numérico | Nil | 23-Interes (Juros) - Posicao reservada de uso interno
ctod(" / / "),; //|TIT_DTBX | Data | E1_BAIXA | 24-Data da baixa
SE1->E1_SALDO,; //|TIT_SALD | Numérico | E1_SALDO | 25-Saldo do título
0; //|TIT_VLIQ | Numérico | E1_VALLIQ | 26-Valor Liquido
} )
EndIf
aTitulo := aRet[2] //Atualiza o Array aTitulo
Return .F. |