Patch level : 12.0 344

Files correlati     : 
Commento            : Sistemato log e controllo sulle fatture

git-svn-id: svn://10.65.10.50/branches/R_10_00@23603 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
mtollari 2017-02-10 09:37:04 +00:00
parent 388880bbba
commit da36c82ed8
2 changed files with 48 additions and 56 deletions

View File

@ -65,12 +65,10 @@ const real TLi_manager::getPlaRes()
TDate ad(TString(year)<<"1201");
// Trovo tutti i documenti che mi interessano e sottraggo l'imponibile al plafond
din.read('D', tipocf, codcli, year, tipi, stati, iniDicInt, ad);
int i = 0;
for(; i < din.items(); i++)
din.read('D', tipocf, codcli, year, tipi, stati, iniDicInt, ad);
for(int i = 0; i < din.items(); i++)
{
int j = 1; // Le righe partono da 1?
TAssoc_array tabIva = din[i].tabella_iva(true);
TString numerazione = din[i].numerazione();
int numdoc = din[i].numero();
@ -88,15 +86,15 @@ const real TLi_manager::getPlaRes()
bool TLi_manager::testPlafond(TLista_documenti dout, TLog_report& lerr)
{
bool ok = true;
bool err = false;
real resPlafond = getPlaRes();
real testPlafond = getPlaRes();
real totFatt;
int i = 0;
// Faccio un ragionamento identico a getPlaRes, ma in input ho la lista di documenti appena elaborati
for(; i < dout.items(); i++)
for(int i = 0; i < dout.items(); i++)
{
int j = 1; // Le righe partono da 1?
TAssoc_array tabIva = dout[i].tabella_iva(true);
TString numerazione = dout[i].numerazione();
int numdoc = dout[i].numero();
@ -104,26 +102,20 @@ bool TLi_manager::testPlafond(TLista_documenti dout, TLog_report& lerr)
TRiepilogo_iva * totali = static_cast<TRiepilogo_iva *>(tabIva.get());
if(totali->cod_iva() == codiva)
{
resPlafond -= totali->imp_orig();
}
if(resPlafond < 0)
{
ok = false;
break;
resPlafond -= totali->imp_orig();
totFatt += totali->imp_orig();
}
}
if(i < dout.items())
if(resPlafond < 0)
{
TString msgerr; msgerr << "\nSforato plafond cliente N." << dout[i].codcf();
lerr.log(2, msgerr);
err = true; // Alzo il flag dell'errore
TString msgerr;
msgerr << "Sforato plafond cliente N." << dout[i].codcf() << "\nPlafond rimanente: " << resPlafond + totFatt << "\nTotale fatture generate: " << totFatt << "\nSforato di: " << resPlafond << "\n";
lerr.log(2, msgerr); // 2 <- Errore
}
for(; i < dout.items(); i++)
{
TString msgerr; msgerr << "Errore doc. tipo: " << dout[i].tipo() << " N." << dout[i].numero() << " data: " << dout[i].data();
lerr.log(2, msgerr); // 2 -> Errore
}
return ok;
return err;
}
// TIPOCF, CODCLI, ANNO

View File

@ -368,42 +368,42 @@ bool TFatturazione_bolle_app::test_dicint(const TMask& m)
{
TProgress_monitor iw(0, "Inizializzazione...\n ");
const TDate data_elab = m.get_date(F_DATA_ELAB);
const int anno = data_elab.year();
const TDate data_elab = m.get_date(F_DATA_ELAB);
const int anno = data_elab.year();
const long dc = m.get_long(F_CODICE_CLIFO_DA);
const long ac = m.get_long(F_CODICE_CLIFO_A);
const int da = m.get_int(F_CODICE_AGENTE_DA);
const int aa = m.get_int(F_CODICE_AGENTE_A);
const TString16 dz(m.get(F_CODICE_ZONA_DA));
const TString16 az(m.get(F_CODICE_ZONA_A));
const long dc = m.get_long(F_CODICE_CLIFO_DA);
const long ac = m.get_long(F_CODICE_CLIFO_A);
const int da = m.get_int(F_CODICE_AGENTE_DA);
const int aa = m.get_int(F_CODICE_AGENTE_A);
const TString16 dz(m.get(F_CODICE_ZONA_DA));
const TString16 az(m.get(F_CODICE_ZONA_A));
const TDate dd = m.get_date(F_DATA_DOCUMENTO_DA);
TString st_da = m.get(F_DATA_DOCUMENTO_A); // qui verificare
const TDate ad = st_da.not_empty() ? (TDate)(const char*)st_da : data_elab;
const TString& codnum = m.get(F_CODICE_NUMERAZIONE);
const long dn = m.get_long(F_NUMERO_DOCUMENTO_DA);
const long an = m.get_long(F_NUMERO_DOCUMENTO_A);
const TDate dd = m.get_date(F_DATA_DOCUMENTO_DA);
TString st_da = m.get(F_DATA_DOCUMENTO_A); // qui verificare
const TDate ad = st_da.not_empty() ? (TDate)(const char*)st_da : data_elab;
const TString& codnum = m.get(F_CODICE_NUMERAZIONE);
const long dn = m.get_long(F_NUMERO_DOCUMENTO_DA);
const long an = m.get_long(F_NUMERO_DOCUMENTO_A);
TElaborazione& eld = *elab(m.get(F_CODICE_ELAB));
TToken_string tipidoc(24), statidoc(10);
eld.tipi_stati_iniziali(tipidoc, statidoc);
TElaborazione& eld = *elab(m.get(F_CODICE_ELAB));
TToken_string tipidoc(24), statidoc(10);
eld.tipi_stati_iniziali(tipidoc, statidoc);
TTipo_documento t(eld.tipo_iniziale(0));
char tipocf(t.tipocf());
TLista_cf clienti(tipocf);
TTipo_documento t(eld.tipo_iniziale(0));
char tipocf(t.tipocf());
TLista_cf clienti(tipocf);
const int tot_cli = clienti.leggi_doc(eld, dd, ad, dc, ac, da, aa, dz, az);
const int tot_cli = clienti.leggi_doc(eld, dd, ad, dc, ac, da, aa, dz, az);
TString msg(80);
iw.set_max(tot_cli);
TString msg(80);
iw.set_max(tot_cli);
TLog_report lerr(TR("Errori controllo plafond"));
TLog_report lerr(TR("Errori controllo plafond\n"));
bool err = false;
for (int c = 0; c < tot_cli; c++)
{
const long codcli = clienti[c]; // Codice cliente in esame
for (int c = 0; c < tot_cli; c++)
{
const long codcli = clienti[c]; // Codice cliente in esame
TLi_manager currentCli(tipocf, codcli, dd.year()); // Inizializzo l'oggetto per la gestione del plafond
@ -420,14 +420,14 @@ bool TFatturazione_bolle_app::test_dicint(const TMask& m)
TLista_documenti dout;
if (eld.elabora(din, dout, data_elab))
{
err = currentCli.testPlafond(dout, lerr);
err |= currentCli.testPlafond(dout, lerr);
}
}
}
if (!iw.add_status())
break;
}
if (!iw.add_status())
break;
}
delete &eld;
if(err)
{