Patch level : 10.0

Files correlati     : ha1
Ricompilazione Demo : [ ]
Commento            :
Evitata doppia importazione di incassi da file upload.d


git-svn-id: svn://10.65.10.50/branches/R_10_00@22544 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2012-01-11 14:35:26 +00:00
parent 8ae812afdd
commit b7b608c5c5

View File

@ -474,10 +474,10 @@ bool TUpload2Campo::genera_incasso(TPartita& game, int nriga, int nrata,
riga.put(PART_NREG, head.get(MOV_NUMREG));
riga.put(PART_NUMRIG, 1);
riga.put(PART_DATAREG, head.get(MOV_DATAREG));
riga.put(PART_DATADOC, head.get(MOV_DATADOC));
riga.put(PART_DATAPAG, head.get(MOV_DATACOMP));
riga.put(PART_CODCAUS, head.get(MOV_CODCAUS));
riga.put(PART_NUMDOC, head.get(MOV_NUMDOC));
riga.put(PART_DATADOC, head.get(MOV_DATADOC));
riga.put(PART_DESCR, head.get(MOV_DESCR));
// Creo una nuova riga di pagamento assegnado il flag di saldo
@ -744,6 +744,44 @@ void TUpload2Campo::elabora_SI(THardy_upload_recordset& recset, TLog_report& log
TString msg;
msg << " movimento di incasso. Cliente: " << codcf << " - Agente: " << codice_agente << " - Data: " << data_incasso;
//panegirico sui conti
//conto cliente
TToken_string key_clifo;
key_clifo.add('C');
key_clifo.add(codcf);
const TRectype& rec_codcf = cache().get(LF_CLIFO, key_clifo);
int gr_cli = rec_codcf.get_int(CLI_GRUPPO);
int co_cli = rec_codcf.get_int(CLI_CONTO);
TBill zio_clifo(gr_cli, co_cli, codcf ,'C');
//se il cliente non ha un suo conto, prova con il primo della causale incassi in configurazione
if (zio_clifo.conto() <= 0)
{
caus.bill(1, zio_clifo);
gr_cli = zio_clifo.gruppo();
co_cli = zio_clifo.conto();
zio_clifo.set(gr_cli, co_cli, codcf, 'C');
}
TPartita game(zio_clifo, annopart, numpart);
for (int r = game.last(); r > 0; r = game.pred(r))
{
const TRiga_partite& riga = game.riga(r);
if (riga.tipo() == tm_pagamento)
{
const TDate data_riga = riga.get_date(PART_DATAPAG);
const real imp_riga = riga.get_real(PART_IMPORTO);
if (data_riga == data_incasso && imp_riga == incasso)
{
_can_write = false;
msg.insert("Doppio");
log.log(2, msg);
return;
}
}
}
if (_can_write)
{
if (mov.write() != NOERR)
@ -765,25 +803,7 @@ void TUpload2Campo::elabora_SI(THardy_upload_recordset& recset, TLog_report& log
log.log(0, msg);
}
//righe
//panegirico sui conti
//conto cliente
TToken_string key_clifo;
key_clifo.add('C');
key_clifo.add(codcf);
const TRectype& rec_codcf = cache().get(LF_CLIFO, key_clifo);
int gr_cli = rec_codcf.get_int(CLI_GRUPPO);
int co_cli = rec_codcf.get_int(CLI_CONTO);
TBill zio_clifo(gr_cli, co_cli, codcf ,'C');
//se il cliente non ha un suo conto, prova con il primo della causale incassi in configurazione
if (zio_clifo.conto() <= 0)
{
caus.bill(1, zio_clifo);
gr_cli = zio_clifo.gruppo();
co_cli = zio_clifo.conto();
zio_clifo.set(gr_cli, co_cli, codcf, 'C');
}
//conto agente
const TRectype& rec_agente = cache().get(LF_AGENTI, codice_agente);
int gr_age = rec_agente.get_int(AGE_GRUPPO);
@ -829,7 +849,6 @@ void TUpload2Campo::elabora_SI(THardy_upload_recordset& recset, TLog_report& log
new_rmov_age.put(RMV_IMPORTO, incasso);
//crea i pagamenti aggiornando anche la partita (qui si parrà la tua nobilitate!)
TPartita game(zio_clifo, annopart, numpart);
const int nriga = game.prima_fattura();
const int nrata = 1;
//metodo magicissimo per l'aggiornamento della partita con l'incasso