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:
parent
6d043f81d8
commit
7766f7697f
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user