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; TImporta_fat_msk* _msk;
TDecodifica_codici* _codici; TDecodifica_codici* _codici;
TArray _conti;
TArray _importi;
protected: protected:
bool search_gr_sp_ca(const int gruppo, const char* specie, const int categoria); bool search_gr_sp_ca(const int gruppo, const char* specie, const int categoria);
@ -341,6 +343,7 @@ protected:
const TString80 riclassifica_pconti(); const TString80 riclassifica_pconti();
TConfig* genera_testata(TImporta_fat_rec& recset, TFilename& tmpdir); 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_righe_iva(TImporta_fat_rec& recset, TConfig& conf, int nriga, const TString& codcau);
void genera_rate(TImporta_fat_rec& recset, TConfig& conf, int nriga); 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_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_ANNOIVA, datadoc.year());
conf->set(MOV_REG, _codici->decodifica_regiva(recset.get("C.REGIVA").as_int())); 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_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()); 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_TIPO, 'C');
conf->set(MOV_CODCF, recset.get("C.CODCF").as_int()); conf->set(MOV_CODCF, recset.get("C.CODCF").as_int());
conf->set(MOV_TOTDOC, genera_real(recset.get("C.IMPORTO"), segno)); 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()); 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; 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 //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) 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 char sezione = recset.get("I.SEZIONE").as_string()[0];
const TCausale cau(codcau); const TCausale cau(codcau);
const int segno = segno_riga(sezione, cau); 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()); // 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);
TString paragraph; TGeneric_distrib dv(recset.get("I.IMPOSTA").as_real() * segno / CENTO, 2);
paragraph.format("%d,%d", LF_RMOVIVA, ++nriga);
conf.set_paragraph(paragraph);
conf.set(RMI_ANNOES, datadoc.year()); FOR_EACH_ARRAY_ITEM(_importi, r, obj)
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)); real * slice = (real *) obj;
conf.set(RMI_IMPOSTA, genera_real(recset.get("I.IMPOSTA"), segno)); dm.add(*slice);
conf.set(RMI_GRUPPO, conto.gruppo()); dv.add(*slice);
conf.set(RMI_CONTO, conto.conto()); }
conf.set(RMI_SOTTOCONTO, conto.sottoconto());
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 //GENERA_RATE: genero le righe su SCAD
void TImporta_fat_app::genera_rate(TImporta_fat_rec& recset, TConfig& conf, int nriga) void TImporta_fat_app::genera_rate(TImporta_fat_rec& recset, TConfig& conf, int nriga)
{ {
TString paragraph; TString paragraph;
paragraph.format("%d,%d", LF_RMOVIVA, ++nriga); paragraph.format("%d,%d", LF_SCADENZE, ++nriga);
conf.set_paragraph(paragraph); conf.set_paragraph(paragraph);
const TDate datadoc = recset.get("R.DATADOC").as_date(); 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; configfile = genera_testata(recset, tmpdir); nrigai = nrigar = 0;
} }
break; break;
case 'G':
leggi_righe_cg(recset, codcau);
break;
case 'I': case 'I':
genera_righe_iva(recset, *configfile, nrigai, codcau); genera_righe_iva(recset, *configfile, nrigai, codcau);
break; break;