Patch level : 10.0 860

Files correlati     : lv4.exe
Ricompilazione Demo : [ ]
Commento            :

NUovo programma per esportazione bolle in txt (CHIMA)


git-svn-id: svn://10.65.10.50/branches/R_10_00@21343 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2010-12-21 08:09:33 +00:00
parent 6d043f81d8
commit 7766f7697f

View File

@ -327,6 +327,8 @@ class TImporta_fat_app : public TSkeleton_application
{
TImporta_fat_msk* _msk;
TDecodifica_codici* _codici;
TArray _conti;
TArray _importi;
protected:
bool search_gr_sp_ca(const int gruppo, const char* specie, const int categoria);
@ -341,6 +343,7 @@ protected:
const TString80 riclassifica_pconti();
TConfig* genera_testata(TImporta_fat_rec& recset, TFilename& tmpdir);
void leggi_righe_cg(TImporta_fat_rec& recset, const TString& codcau);
void genera_righe_iva(TImporta_fat_rec& recset, TConfig& conf, int nriga, const TString& codcau);
void genera_rate(TImporta_fat_rec& recset, TConfig& conf, int nriga);
@ -430,16 +433,32 @@ TConfig* TImporta_fat_app::genera_testata(TImporta_fat_rec& recset, TFilename& t
conf->set(MOV_CODCAUS, _msk->get_bool(F_DECCAU) ? atol(_codici->decodifica_causali(recset.get("C.CODCAU").as_int())) : recset.get("C.CODCAU").as_int());
conf->set(MOV_ANNOIVA, datadoc.year());
conf->set(MOV_REG, _codici->decodifica_regiva(recset.get("C.REGIVA").as_int()));
conf->set(MOV_PROTIVA, recset.get("C.NREGIVA").as_int());
conf->set(MOV_CODVAL, _msk->get_bool(F_DECVAL) ? _codici->decodifica_valute(recset.get("C.CODVAL").as_int()) : recset.get("C.CODVAL").as_string());
// conf->set(MOV_PROTIVA, recset.get("C.NREGIVA").as_int());
const TString & codval = _msk->get_bool(F_DECVAL) ? _codici->decodifica_valute(recset.get("C.CODVAL").as_int()) : recset.get("C.CODVAL").as_string();
if (!::is_firm_value(codval) && codval != "EURO")
conf->set(MOV_CODVAL, codval);
conf->set(MOV_TIPO, 'C');
conf->set(MOV_CODCF, recset.get("C.CODCF").as_int());
conf->set(MOV_TOTDOC, genera_real(recset.get("C.IMPORTO"), segno));
conf->set(MOV_CODPAG, _msk->get_bool(F_DECCDP) ? atol(_codici->decodifica_condpag(recset.get("C.CODPAG").as_int())) : recset.get("C.CODPAG").as_int());
_conti.destroy();
_importi.destroy();
return conf;
}
//GENERA_RIGHE_IVA: genero le righe IVA
void TImporta_fat_app::leggi_righe_cg(TImporta_fat_rec& recset, const TString& codcau)
{
const char sezione = recset.get("G.SEZIONE").as_string()[0];
const TCausale cau(codcau);
const int segno = segno_riga(sezione, cau);
const TBill& conto = _codici->decodifica_conto(recset.get("G.CODMASTRO").as_int(), recset.get("G.CODCONTO").as_int());
const real importo = genera_real(recset.get("G.IMPORTO"), segno);
_conti.add(new TBill(conto));
_importi.add(importo);
}
//GENERA_RIGHE_IVA: genero le righe IVA
void TImporta_fat_app::genera_righe_iva(TImporta_fat_rec& recset, TConfig& conf, int nriga, const TString& codcau)
{
@ -447,26 +466,43 @@ void TImporta_fat_app::genera_righe_iva(TImporta_fat_rec& recset, TConfig& conf,
const char sezione = recset.get("I.SEZIONE").as_string()[0];
const TCausale cau(codcau);
const int segno = segno_riga(sezione, cau);
const TBill& conto = _codici->decodifica_conto(recset.get("I.CODMASTRO").as_int(), recset.get("I.CODCONTO").as_int());
TString paragraph;
paragraph.format("%d,%d", LF_RMOVIVA, ++nriga);
conf.set_paragraph(paragraph);
// const TBill& conto = _codici->decodifica_conto(recset.get("I.CODMASTRO").as_int(), recset.get("I.CODCONTO").as_int());
TGeneric_distrib dm(recset.get("I.IMPONIBILE").as_real() * segno / CENTO, 2);
TGeneric_distrib dv(recset.get("I.IMPOSTA").as_real() * segno / CENTO, 2);
conf.set(RMI_ANNOES, datadoc.year());
conf.set(RMI_CODIVA, _msk->get_bool(F_DECCODIVA) ? atol(_codici->decodifica_codiva(recset.get("I.CODIVA").as_int())) : recset.get("I.CODIVA").as_int());
conf.set(RMI_IMPONIBILE, genera_real(recset.get("I.IMPONIBILE"), segno));
conf.set(RMI_IMPOSTA, genera_real(recset.get("I.IMPOSTA"), segno));
conf.set(RMI_GRUPPO, conto.gruppo());
conf.set(RMI_CONTO, conto.conto());
conf.set(RMI_SOTTOCONTO, conto.sottoconto());
FOR_EACH_ARRAY_ITEM(_importi, r, obj)
{
real * slice = (real *) obj;
dm.add(*slice);
dv.add(*slice);
}
real imp;
real iva;
FOR_EACH_ARRAY_ITEM(_conti, r1, obj1)
{
TString paragraph;
paragraph.format("%d,%d", LF_RMOVIVA, ++nriga);
conf.set_paragraph(paragraph);
conf.set(RMI_ANNOES, datadoc.year());
conf.set(RMI_CODIVA, _msk->get_bool(F_DECCODIVA) ? atol(_codici->decodifica_codiva(recset.get("I.CODIVA").as_int())) : recset.get("I.CODIVA").as_int());
conf.set(RMI_IMPONIBILE, dm.get().string(0, 2));
conf.set(RMI_IMPOSTA, dv.get().string(0, 2));
TBill * conto = (TBill *) obj1;
conf.set(RMI_GRUPPO, conto->gruppo());
conf.set(RMI_CONTO, conto->conto());
conf.set(RMI_SOTTOCONTO, conto->sottoconto());
}
}
//GENERA_RATE: genero le righe su SCAD
void TImporta_fat_app::genera_rate(TImporta_fat_rec& recset, TConfig& conf, int nriga)
{
TString paragraph;
paragraph.format("%d,%d", LF_RMOVIVA, ++nriga);
paragraph.format("%d,%d", LF_SCADENZE, ++nriga);
conf.set_paragraph(paragraph);
const TDate datadoc = recset.get("R.DATADOC").as_date();
@ -527,6 +563,9 @@ void TImporta_fat_app::transfer(const TFilename& file)
configfile = genera_testata(recset, tmpdir); nrigai = nrigar = 0;
}
break;
case 'G':
leggi_righe_cg(recset, codcau);
break;
case 'I':
genera_righe_iva(recset, *configfile, nrigai, codcau);
break;