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:
parent
388880bbba
commit
da36c82ed8
@ -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
|
||||
|
@ -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)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user