Patch level :

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :


git-svn-id: svn://10.65.10.50/trunk@19907 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
cris 2010-01-12 14:18:26 +00:00
parent 3a65000098
commit 82848382a8
2 changed files with 55 additions and 35 deletions

View File

@ -353,21 +353,24 @@ void TImporta_sc::nuovo_pagamento_o_nota(const TImporta_cogeco_recset& recset, T
{ {
const TRiga_scadenze& rata = fattura.rata(nrata); const TRiga_scadenze& rata = fattura.rata(nrata);
const real residuo = rata.residuo(false).valore(); const real residuo = rata.residuo(false).valore();
const TDate data_scad = rata.get(SCAD_DATASCAD); if (!residuo.is_zero())
int score = data_scad == datadoc ? 2 : 0; {
if (score == 0 && datadoc == data_scad+1L) const TDate data_scad = rata.get(SCAD_DATASCAD);
score++; int score = data_scad == datadoc ? 2 : 0;
if (residuo >= importo) if (score == 0 && datadoc == data_scad+1L)
{ score++;
score++; if (residuo >= importo)
if (residuo == importo) {
score++; score++;
} if (residuo == importo)
if (score > best_score) score++;
{ }
best_rata = nrata; if (score > best_score)
best_score = score; {
} best_rata = nrata;
best_score = score;
}
}
} }
if (best_rata > 0) if (best_rata > 0)
paga_rata(game, best_rata, nrigp, importo); paga_rata(game, best_rata, nrigp, importo);
@ -425,22 +428,25 @@ bool TImporta_sc::nuovo_insoluto(const TImporta_cogeco_recset& recset, TPartita&
for (int nrata = fattura.rate(); nrata > 0; nrata--) for (int nrata = fattura.rate(); nrata > 0; nrata--)
{ {
const TRiga_scadenze& scadenza = fattura.rata(nrata); const TRiga_scadenze& scadenza = fattura.rata(nrata);
const TImporto imp = scadenza.importo_pagato(false); const real imp = scadenza.importo_pagato(false).valore();
const TDate data = scadenza.get(SCAD_DATASCAD); if (!imp.is_zero())
int score = datadoc == data ? 2 : 0; {
if (score == 0 && datadoc == data+1L) const TDate data = scadenza.get(SCAD_DATASCAD);
score++; int score = datadoc == data ? 2 : 0;
if (imp.valore() >= importo) if (score == 0 && datadoc == data+1L)
{ score++;
score++; if (imp >= importo)
if (imp.valore() == importo) {
score++; score++;
} if (imp == importo)
if (score > best_score) score++;
{ }
best_rata = nrata; if (score > best_score)
best_score = score; {
} best_rata = nrata;
best_score = score;
}
}
} }
if (best_rata > 0) // Se ho trovato almeno una rata compatibile con l'insoluto... if (best_rata > 0) // Se ho trovato almeno una rata compatibile con l'insoluto...

View File

@ -151,7 +151,8 @@ void TImporta_cesp::transfer(const TFilename& file)
long ntran = 1; long ntran = 1;
TLog_report log(caption); TLog_report log(caption);
TLocalisamfile cespi(LF_CESPI); TLocalisamfile cespi(LF_CESPI);
TLocalisamfile salce(LF_SALCE);
TLocalisamfile ammce(LF_AMMCE);
for (bool ok = recset.move_to(1); ok ; ok = recset.move_next()) for (bool ok = recset.move_to(1); ok ; ok = recset.move_next())
{ {
if (!pi.addstatus(1)) if (!pi.addstatus(1))
@ -171,6 +172,7 @@ void TImporta_cesp::transfer(const TFilename& file)
if (real::is_null(codpadre)) // nuovo cespite if (real::is_null(codpadre)) // nuovo cespite
{ {
// creo record anagrafica cespi // creo record anagrafica cespi
cespi.zero();
cespi.put(CESPI_IDCESPITE, codces); cespi.put(CESPI_IDCESPITE, codces);
const int gr = recset.get(CGC_GRUPPO).as_int(); const int gr = recset.get(CGC_GRUPPO).as_int();
const TString4 sp = recset.get(CGC_SPECIE).as_string(); const TString4 sp = recset.get(CGC_SPECIE).as_string();
@ -191,7 +193,7 @@ void TImporta_cesp::transfer(const TFilename& file)
cespi.put(CESPI_TPSPEMAN, 1); cespi.put(CESPI_TPSPEMAN, 1);
// creo record salce // creo record salce
TLocalisamfile salce(LF_SALCE); salce.zero();
salce.put(SALCE_IDCESPITE, cespi.get(CESPI_IDCESPITE)); salce.put(SALCE_IDCESPITE, cespi.get(CESPI_IDCESPITE));
salce.put(SALCE_CODES, lastesc); // verificare se ultimo esercizio va bene (2010?) salce.put(SALCE_CODES, lastesc); // verificare se ultimo esercizio va bene (2010?)
salce.put(SALCE_TPSALDO, 1); // verificare se saldo iniziale (1) va bene salce.put(SALCE_TPSALDO, 1); // verificare se saldo iniziale (1) va bene
@ -199,7 +201,7 @@ void TImporta_cesp::transfer(const TFilename& file)
salce.put(SALCE_CSTO, recset.get(CGC_COSTOACQ).as_real()); salce.put(SALCE_CSTO, recset.get(CGC_COSTOACQ).as_real());
// creo record ammce // creo record ammce
TLocalisamfile ammce(LF_AMMCE); ammce.zero();
ammce.put(AMMCE_IDCESPITE, salce.get(CESPI_IDCESPITE)); ammce.put(AMMCE_IDCESPITE, salce.get(CESPI_IDCESPITE));
ammce.put(AMMCE_CODES, salce.get(SALCE_CODES)); ammce.put(AMMCE_CODES, salce.get(SALCE_CODES));
ammce.put(AMMCE_TPSALDO, salce.get(SALCE_TPSALDO)); ammce.put(AMMCE_TPSALDO, salce.get(SALCE_TPSALDO));
@ -227,7 +229,19 @@ void TImporta_cesp::transfer(const TFilename& file)
} }
else else
{ {
// chiedere cosa fare perche' non ho capito cosa devo sommare!! cespi.zero();
cespi.put(CESPI_IDCESPITE, codpadre);
int err = cespi.read();
if ( err == NOERR)
{
TString256 descr = cespi.get(CESPI_DESC);
descr << '+' << recset.get(CGC_DESCR).as_string();
descr.cut(60);
cespi.put(CESPI_DESC, descr);
cespi.write();
}
else
log_error(log, TR("Errore nel cespite padre "), recset, err);
} }
} }
if (log.recordset()->items() > 0) if (log.recordset()->items() > 0)