diff --git a/src/cg/cg4301.cpp b/src/cg/cg4301.cpp index 2b7aa4123..843890408 100755 --- a/src/cg/cg4301.cpp +++ b/src/cg/cg4301.cpp @@ -1178,7 +1178,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt) const TString& iva_vpn = _iva->get("S10"); if (iva_vpn.full()) { - const real imponibile_orig = _rmoviva->get(RMI_IMPONIBILE); + const real impZonibile_orig = _rmoviva->get(RMI_IMPONIBILE); cessioni_cd1_1s += imponibile_orig; cessioni_cd1_1 += imponibile_orig; } @@ -3872,6 +3872,7 @@ void TLiquidazione_app::write_liq(int month, const char* codatts) real credito_utilizzabile = ZERO; const bool utilizza_credito_autorizzato = lia.get_bool("B6"); + real credito_autorizzato_F24; if (month < 13) // va bene anche se differita sommando deltam (che e' 0 normalmente) { @@ -3900,14 +3901,12 @@ void TLiquidazione_app::write_liq(int month, const char* codatts) credito_utilizzabile += credito_autorizzato(month + deltam); credito_utilizzabile -= cred_util_F24; + credito_autorizzato_F24 = lim.get_real("R20"); if (utilizza_credito_autorizzato) - { - const real cred_aut_F24 = lim.get_real("R20"); - - credito_utilizzabile += cred_aut_F24; - } - - + credito_utilizzabile += credito_autorizzato_F24; +// risultato += credito_autorizzato_F24; +// res_debt += credito_autorizzato_F24; + if (credito_utilizzabile < ZERO) credito_utilizzabile = ZERO; if (risul > ZERO) @@ -4249,7 +4248,7 @@ void TLiquidazione_app::write_liq(int month, const char* codatts) round_imposta(fdiffinc_iva_acq); res_cred = iva_acq + versamenti + vers_int + cred_prec - cred_trasf + acc_dec + credito_utilizzato_iva + crediti_speciali + fdiffinc_iva_acq; - res_debt = iva_vend + rimborsi + debt_precd + imposta_non_versata + fdiffinc_iva; + res_debt = iva_vend + rimborsi + debt_precd + imposta_non_versata + fdiffinc_iva + credito_autorizzato_F24; /* Obsolescenza pura nel 2014 if (atoi(_year) < 1998) // Non vale piu' dal 1998 in poi; iva_acq e' gia' ok e cosi' res_cred. diff --git a/src/cg/cg4304.cpp b/src/cg/cg4304.cpp index fcdca2867..c1e4349ec 100755 --- a/src/cg/cg4304.cpp +++ b/src/cg/cg4304.cpp @@ -2689,6 +2689,8 @@ void TLiquidazione_app::set_grand_2000(_DescrItem& d, int &rw) if (credito_utilizzabile < ZERO) credito_utilizzabile = ZERO; + set_row(rw++, FR("@11g@bPROSPETTO COMPENSAZIONI@r")); + rw++; set_row(rw++,FR("@11gCredito compensabile da liquidazione precedente@58g%r"), &credito_utilizzabile); if (credito_autorizzato_F24 > ZERO) { @@ -2707,12 +2709,11 @@ void TLiquidazione_app::set_grand_2000(_DescrItem& d, int &rw) const real credito_utilizzato_annuale_F24 = TLiquidazione_app::credito_utilizzato_F24(13); const real credito_autorizzato_annuale_F24 = credito_autorizzato(13); + set_row(rw++, FR("@11g@bPROSPETTO COMPENSAZIONI@r")); + rw++; set_row(rw++,FR("@11gCredito compensabile da liquidazione precedente@58g%r"), &credito_utilizzabile); - if (credito_autorizzato_annuale_F24 > ZERO) - { - credito_utilizzabile += credito_autorizzato_annuale_F24; - set_row(rw++,FR("@11gCredito IVA autorizzato in F24@58g%r"), &credito_autorizzato_annuale_F24); - } + credito_utilizzabile += credito_autorizzato_annuale_F24; + set_row(rw++,FR("@11gCredito IVA autorizzato in F24@58g%r"), &credito_autorizzato_annuale_F24); set_row(rw++, FR("@11gCredito IVA compensabile detratto@75g%r"), &credito_utilizzato_annuale_IVA); credito_utilizzabile -= credito_utilizzato_annuale_IVA; set_row(rw++, FR("@11gCredito IVA compensabile detratto in F24@75g%r"), &credito_utilizzato_annuale_F24); diff --git a/src/cg/cg7400a.h b/src/cg/cg7400a.h index a05939fa2..3f737dae5 100644 --- a/src/cg/cg7400a.h +++ b/src/cg/cg7400a.h @@ -1,5 +1,15 @@ -#define F_YEAR 101 -#define F_CODDITTA 102 -#define F_RAGSOC 103 -#define F_REPORT 104 -#define F_DESREPORT 105 \ No newline at end of file +#define F_YEAR 201 +#define F_DITTE 202 +#define F_REPORTS 203 + +#define DLG_ALLFIRMS 251 +#define DLG_ALLREPORTS 252 + +#define S_CHKDITTA 101 +#define S_CODDITTA 102 +#define S_RAGSOC 103 + +#define S_CHKREPORT 101 +#define S_CODEREPORT 102 +#define S_DESCREPORT 103 +#define S_NAMEREPORT 104 diff --git a/src/cg/cg7400a.pdf b/src/cg/cg7400a.pdf index b52ef7b49..f5c6c2a46 100644 Binary files a/src/cg/cg7400a.pdf and b/src/cg/cg7400a.pdf differ diff --git a/src/cg/cg7400a.uml b/src/cg/cg7400a.uml index 7e2a09b44..617f677b1 100644 --- a/src/cg/cg7400a.uml +++ b/src/cg/cg7400a.uml @@ -16,27 +16,25 @@ PAGE "Quadro VC" 0 0 0 0 NUMBER F_YEAR 4 BEGIN - PROMPT 3 3 "Anno " + PROMPT 3 2 "Anno " FLAGS "A" END -NUMBER F_CODDITTA 5 +SPREADSHEET F_DITTE 66 8 BEGIN - PROMPT 3 6 "Ditta " - FLAGS "B" - FIELD #CODDITTA + PROMPT 7 4 " " + ITEM "" + ITEM "Codice" + ITEM "Ragione Sociale@50" END -STRING F_RAGSOC 50 +SPREADSHEET F_REPORTS 83 10 BEGIN - PROMPT 20 6 "" - FLAGS "B" -END - -STRING F_REPORT 2 -BEGIN - PROMPT 3 9 "Report " - FLAGS "B" + PROMPT 1 14 "" + ITEM "" + ITEM "Codice" + ITEM "Descrizione@60" + ITEM "Nome@6" END STRING F_DESREPORT 70 @@ -48,3 +46,76 @@ END ENDPAGE ENDMASK + +PAGE "Ditte" -1 -1 78 6 + +BOOLEAN S_CHKDITTA +BEGIN + PROMPT 3 2 "Selezionata" +END + +NUMBER S_CODDITTA + PROMPT 3 4 "Ditta " +END + +STRING S_RAGSOC 50 +BEGIN + PROMPT 20 4 "" +END + +ENDPAGE + +TOOLBAR "topbar" 0 0 0 2 + +BUTTON DLG_OK 2 2 +BEGIN + PROMPT 1 1 "" +END + +BUTTON DLG_CANCEL 10 2 +BEGIN + PROMPT 2 1 "" +END + +ENDPAGE +PAGE "Reports" -1 -1 78 6 + +BOOLEAN S_CHKREPORT +BEGIN + PROMPT 3 2 "Selezionata" +END + +STRING S_CODEREPORT 2 +BEGIN + PROMPT 3 4 "Codice " + +END + +STRING S_NAMEREPORT 7 +BEGIN + PROMPT 3 6 "Report " +END + +STRING S_DESCREPORT 60 +BEGIN + PROMPT 20 6 "" + FLAGS "D" +END + +ENDPAGE + +TOOLBAR "topbar" 0 0 0 2 + +BUTTON DLG_OK 2 2 +BEGIN + PROMPT 1 1 "" +END + +BUTTON DLG_CANCEL 10 2 +BEGIN + PROMPT 2 1 "" +END + +ENDPAGE + +ENDMASK \ No newline at end of file diff --git a/src/cg/cg7401.cpp b/src/cg/cg7401.cpp index 00c9511be..6ee5c85f0 100644 --- a/src/cg/cg7401.cpp +++ b/src/cg/cg7401.cpp @@ -10,11 +10,8 @@ #include "cg7400a.h" -TQuadro_IVA_selfirm_mask::TQuadro_IVA_selfirm_mask(const char * maskname) - : TAutomask(maskname), - _ditte(-1, -1, -4, -4, TR("Selezione Ditte"), HR("@1|Codice|Ragione Sociale@50")), - _reports(-1, -1, -4, -4, TR("Selezione Reports"), HR("@1|Codice|Report@7|Nome@70")), - _last_row_ditte(0), _last_row_reports(0) +TQuadro_IVA_mask::TQuadro_IVA_mask(const char * maskname) + : TAutomask(maskname), _last_row_ditte(0), _last_row_reports(0) { const TDate oggi(TODAY); @@ -23,224 +20,163 @@ TQuadro_IVA_selfirm_mask::TQuadro_IVA_selfirm_mask(const char * maskname) build_report_sheet(); } -long TQuadro_IVA_selfirm_mask::get_ditta() +long TQuadro_IVA_mask::get_ditta() { - for (int i =_last_row_ditte + 1; i <_ditte.items(); i++) + TSheet_field & sf = sfield(F_DITTE); + + for (int i =_last_row_ditte + 1; i add(good && empty(F_CODDITTA)? "X" : ""); - d->add(codditta); - d->add(cache().get(LF_NDITTE, codditta, NDT_RAGSOC)); - const long pos = _ditte.add(d); + row.add(good ? "X" : ""); + row.add(codditta); + row.add(cache().get(LF_NDITTE, codditta, NDT_RAGSOC)); - if (good) - { - if (empty(F_CODDITTA)) - { - set(F_CODDITTA, d->get(1)); - set(F_RAGSOC, d->get(2)); - } - } - else - _ditte.disable_row(pos); + if (!good) + sf.disable_row(pos); } + sf.force_update(); } -void TQuadro_IVA_selfirm_mask::build_report_sheet() +void TQuadro_IVA_mask::build_report_sheet() { TToken_string d(80); const char quadro = source_file()[3]; + TSheet_field & sf = sfield(F_REPORTS); - _reports.destroy(); - + sf.destroy(); switch (quadro) { case '4': - _reports.add("|1|cg7400b|Prova"); + { + TToken_string & row = sf.row(sf.items()); row.add("|1|Prova|cg7400b"); + } break; case '5' : - _reports.add("|1|cg7500b|Stampa esportazioni"); - _reports.add("|2|cg7500c|Stampa cessioni Intracomunitarie"); - _reports.add("|3|cg7500d|Stampa cessioni verso San Marino"); - _reports.add("|4|cg7500e|Stampa operazioni assimilate"); - _reports.add("|5|cg7500f|Stampa operazioni non imp. in seguito a dich. d'intenti"); - _reports.add("|6|cg7500g|Stampa altre operazioni non imponibili"); - _reports.add("|7|cg7500h|Stampa esenti art. 10"); - _reports.add("|8|cg7500i|Stampa operazioni non sogg. ai sensi art.7 da uno a septies"); - _reports.add("|9|cg7500l|Stampa operazioni reverse charge"); - _reports.add("|10|cg7500m|Stampa operazioni terremotati"); - _reports.add("|11|cg7500n|Stampa operazioni effettuate con PA ai sensi art.17"); + { + TToken_string & row1 = sf.row(sf.items()); row1.add("|1|Stampa esportazioni|cg7500b"); + TToken_string & row2 = sf.row(sf.items()); row2.add("|2|Stampa cessioni Intracomunitarie|cg7500c"); + TToken_string & row3 = sf.row(sf.items()); row3.add("|3|Stampa cessioni verso San Marino|cg7500d"); + TToken_string & row4 = sf.row(sf.items()); row4.add("|4|Stampa operazioni assimilate|cg7500e"); + TToken_string & row5 = sf.row(sf.items()); row5.add("|5|Stampa operazioni non imp. in seguito a dich. d'intenti|cg7500f"); + TToken_string & row6 = sf.row(sf.items()); row6.add("|6|Stampa altre operazioni non imponibili|cg7500g"); + TToken_string & row7 = sf.row(sf.items()); row7.add("|7|Stampa esenti art. 10|cg7500h"); + TToken_string & row8 = sf.row(sf.items()); row8.add("|8|Stampa operazioni non sogg. ai sensi art.7 da uno a septies|cg7500i"); + TToken_string & row9 = sf.row(sf.items()); row9.add("|9|Stampa operazioni reverse charge|cg7500l"); + TToken_string & row10 = sf.row(sf.items()); row10.add("|10|Stampa operazioni terremotati|cg7500m"); + TToken_string & row11 = sf.row(sf.items()); row11.add("|11|Stampa operazioni effettuate con PA ai sensi art.17|cg7500n"); + } break; default : break; } + __stop.load("STOP"); + const int items = sf.items(); + + for (int i = 0; i < items; i++) + { + TToken_string & row = sf.row(i); + TProgram_report *rep = new TProgram_report; + TFilename repname(row.get(sf.cid2index(S_NAMEREPORT))); + + repname.ext("rep"); + if (repname.exist() || repname.custom_path()) + rep->load(repname); + _reports.add(rep); + } } -bool TQuadro_IVA_selfirm_mask::select_button() -{ - if (_ditte.run() == K_ENTER) - { - TToken_string& row = _ditte.row(_ditte.selected()); - set(F_CODDITTA, row.get(1)); - set(F_RAGSOC, row.get(2)); - return true; - } - return false; -} - -bool TQuadro_IVA_selfirm_mask::select_report() -{ - if (_reports.run() == K_ENTER) - { - TToken_string& row = _reports.row(_ditte.selected()); - set(F_REPORT, row.get(1)); - set(F_DESREPORT, row.get(3)); - return true; - } - return false; -} - -bool TQuadro_IVA_selfirm_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) +bool TQuadro_IVA_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) { switch (o.dlg()) { - case F_CODDITTA: - if (e == fe_button) - return select_button(); - - if (e == fe_modify) - { - bool found = false; - TString16 ditta = o.get(); - - for (int i = 0; i < _ditte.items(); i++) - { - TToken_string& row = _ditte.row(i); - - if (ditta == row.get(1)) - { - row.add("X",0); - _ditte.check(i); - if (_ditte.row_enabled(i)) - { - set(F_CODDITTA, row.get(1)); - set(F_RAGSOC, row.get(2)); - found = true; - } - else - { - warning_box(FR("Non sono definiti i parametri liquidazione per la ditta %ld"), - atol(ditta)); - o.reset(); - } - break; - } - } - if (!found) - o.reset(); - return found; - } - break; - case F_RAGSOC: - if (e == fe_button) - return select_button(); - if (e == fe_modify) - { - bool found = false; - TString8 ditta = o.get(); - for (int i = 0; i < _ditte.items(); i++) - { - TToken_string& row = _ditte.row(i); - TString ts(row.get(1)); - if (ts.find(ditta) != -1) - { - if (_ditte.row_enabled(i)) - { - set(F_CODDITTA, row.get(0)); - set(F_RAGSOC, row.get(1)); - found = true; - break; - } - } - } - if (!found) o.reset(); - return found; - } - break; case F_YEAR: if (e == fe_modify) { _year = atoi(o.get()); build_ditte_sheet(); - set(F_CODDITTA, ""); - set(F_RAGSOC, ""); } break; - case F_REPORT: - if (e == fe_button) - return select_report(); - if (e == fe_modify) - { - bool found = false; - const int codice = atoi(o.get()) - 1; + case DLG_ALLFIRMS: + if (e == fe_button) + { + TSheet_field & sf = sfield(F_DITTE); + bool check = false; + int rows = sf.items(); - if (codice >= 0 && codice < _reports.items()) - { - TToken_string& row = _reports.row(codice); - - row.add("X",0); - _reports.check(codice); - set(F_REPORT, row.get(1)); - set(F_DESREPORT, row.get(3)); - found = true; - } - else - o.reset(); - return found; + for (int i = 0; !check && i < rows; i++) + check |= (sf.row(i).get(sf.cid2index(S_CHKDITTA))[0] == 'X') ; + + for (int i = 0; i < rows; i++) + sf.row(i).add(check ? " " : "X", sf.cid2index(S_CHKDITTA)); + sf.force_update(); } - return true; break; - default: - break; + case DLG_ALLREPORTS: + if (e == fe_button) + { + TSheet_field & sf = sfield(F_REPORTS); + bool check = false; + int rows = sf.items(); + + for (int i = 0; !check && i < rows; i++) + check |= (sf.row(i).get(sf.cid2index(S_CHKREPORT))[0] == 'X'); + + for (int i = 0; i < rows; i++) + sf.row(i).add(check ? " " : "X", sf.cid2index(S_CHKREPORT)); + sf.force_update(); + } + break; + default: + break; } return true; } @@ -326,22 +262,25 @@ void TQuadro_IVA_app::print() book.add(rep); } - TFilename repname; _mask->restart_reports(); - while ((repname = _mask->get_report()).full()) + TProgram_report * rep = _mask->get_report(); + TFilename repname = rep->filename(); + + repname.ext(""); + while (repname != "STOP") { - repname.ext("rep"); - if (repname.exist() || repname.custom_path()) + if (rep->filename().full()) { - TProgram_report rep; - - rep.load(repname); - TRecordset * set = rep.recordset(); + TISAM_recordset * set = (TISAM_recordset *) rep->recordset(); set->set_var("#ANNO", year); - book.add(rep); + book.add(*rep); + set->unfreeze(); } + rep = _mask->get_report(); + repname = rep->filename(); + repname.ext(""); } } book.print_or_preview(); @@ -352,7 +291,7 @@ void TQuadro_IVA_app::main_loop() const long oldditta = get_firm(); KEY k; - _mask = new TQuadro_IVA_selfirm_mask(_name); + _mask = new TQuadro_IVA_mask(_name); while ((k = _mask->run()) != K_QUIT) print(); diff --git a/src/cg/cg7401.h b/src/cg/cg7401.h index 8f8bc5f63..49124dcc0 100644 --- a/src/cg/cg7401.h +++ b/src/cg/cg7401.h @@ -5,17 +5,14 @@ #include #include -class TQuadro_IVA_selfirm_mask : public TAutomask +class TQuadro_IVA_mask : public TAutomask { - TArray_sheet _ditte; - TArray_sheet _reports; int _year; long _last_row_ditte; long _last_row_reports; + TArray _reports; protected: - bool select_button(); - bool select_report(); void build_ditte_sheet(); void build_report_sheet(); @@ -24,11 +21,12 @@ public: void restart_ditte() { _last_row_ditte = -1;} void restart_reports() { _last_row_reports = -1;} long get_ditta(); - const char * get_report(); + TProgram_report * get_report(); + TProgram_report & get_report(const int code) const { return (TProgram_report &) _reports[code];} virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); - TQuadro_IVA_selfirm_mask(const char * mask_name); - ~TQuadro_IVA_selfirm_mask() {} + TQuadro_IVA_mask(const char * mask_name); + ~TQuadro_IVA_mask() {} }; class TQuadro_IVA_recordset : public TISAM_recordset @@ -56,7 +54,7 @@ public: class TQuadro_IVA_app : public TSkeleton_application { - TQuadro_IVA_selfirm_mask * _mask; + TQuadro_IVA_mask * _mask; TFilename _name; const TString20 _print_title; @@ -68,6 +66,7 @@ protected: public: virtual TQuadro_IVA_recordset * app_recordset(const char* use, const int year) pure; virtual bool firm_change_enabled() const { return false; } + TQuadro_IVA_mask * mask() const { return _mask; } TQuadro_IVA_app(const char * print_title, const char * name) : _print_title(print_title), _name(name) {} diff --git a/src/cg/cg7500.cpp b/src/cg/cg7500.cpp index e36be46a8..eaf200a25 100644 --- a/src/cg/cg7500.cpp +++ b/src/cg/cg7500.cpp @@ -7,19 +7,52 @@ #include "cgpim.h" #include "cg7500a.h" +#include "rmoviva.h" + +#define REP_EXPORT 1 +#define REP_INTRA 2 +#define REP_SANMARINO 3 +#define REP_OPASSIMIL 4 +#define REP_DICHINT 5 +#define REP_ALTREOP 6 +#define REP_ART10 7 +#define REP_ART7 8 +#define REP_REVCHARGE 9 +#define REP_TERREM 10 +#define REP_PAART17 11 enum tipo_sospensione { nessuna, normale, vol_affari, liquidazione }; class TQuadro_VE_recordset : public TQuadro_IVA_recordset { + TQuadro_IVA_mask * _mask; + protected: - virtual void load(const long year); + const real TQuadro_VE_recordset::evaluate_recordset(const int code, const int year); + virtual void load(const long year); public: - TQuadro_VE_recordset(const char* use, const int year) : TQuadro_IVA_recordset(use, year) {load(year);} + TQuadro_VE_recordset(TQuadro_IVA_mask * mask, const char* use, const int year) : TQuadro_IVA_recordset(use, year), _mask(mask) {load(year);} virtual ~TQuadro_VE_recordset() {} }; +const real TQuadro_VE_recordset::evaluate_recordset(const int code, const int year) +{ + real val; + TProgram_report & rep = _mask->get_report(code - 1); + TISAM_recordset * set = (TISAM_recordset *) rep.recordset(); + + set->set_var("#ANNO", format("%d", year)); + + if (set->items() > 0) + for (set->move_first(); !set->eof(); set->move_next()) + val += set->get(RMI_IMPONIBILE).as_real(); + + set->freeze(); + return val; +} + + void TQuadro_VE_recordset::load(const long year) { TAssoc_array imponibile_agricolo; @@ -108,26 +141,6 @@ void TQuadro_VE_recordset::load(const long year) field = (TString *) imposta.objptr(aliquota); add_value(field, iva); } - - const int tipo_plafond = ivar.get_int("S3"); - const bool plafond = tipo_plafond > 0; - - if (plafond) - { - switch (tipo_plafond) - { - case 1: - case 2: - add_value(TString8("V30.2"), imp); - break; - case 3: - add_value(TString8("V30.5"), imp); - break; - default: - // San Marino ??? VE30.4 - break; - } - } } break; case acq_simp: @@ -172,30 +185,57 @@ void TQuadro_VE_recordset::load(const long year) }; - const bool non_imponibile = ivar.get("S1") == "NI"; - const TString tipo_iva11_ven = ivar.get("S2"); + const TString4 tipo_aliquota = ivar.get("S1"); + const TString4 tipo_iva11_ven = ivar.get("S2"); + const bool non_imponibile = (tipo_aliquota == "NI"); + const bool esente = (tipo_aliquota == "ES"); + const bool reverse = (tipo_aliquota >= "31" && tipo_aliquota >= "38"); + const bool terremotati = tipo_aliquota >= "25"; if (non_imponibile) { - if (false) - { - /// add_value("VE31.1", imp); non imponibile dich intenti ??? - } + if (tipo_iva11_ven == "21") + add_value("VE31.1", imp); else - add_value(TString8("VE32.1"), imp); + if (tipo_iva11_ven == "22") + add_value(TString8("VE32.1"), imp); } - if (tipo_iva11_ven.starts_with("B")) - add_value(TString8("VE33.1"), imp); - // VE34.1 non imp art 7 7 sexties lo abbiamo ?? - // VE35.2 9 reverse charge causale -> movimenti ?? - // VE36.1 terremotati lo abbiamo ?? - // VE37.1 2 iva sospensione - // VE38.1 art 17 ter pubblica amministrazione movimenti ?? - // VE39 iva sospensione incassata - } + if (esente) + { + if ((tipo_iva11_ven == "B1") || + (tipo_iva11_ven == "B2") || + (tipo_iva11_ven == "B3") || + (tipo_iva11_ven == "B4") || + (tipo_iva11_ven == "B5")) + add_value(TString8("VE33.1"), imp); + else + if ((tipo_iva11_ven == "B6")) + add_value(TString8("VE34.1"), imp); + } + + if (reverse) + { + const int tipo_reverse = atoi(tipo_iva11_ven); + + switch (tipo_reverse) + { + case 31 : add_value(TString8("VE35.2"), imp); break; + case 32 : add_value(TString8("VE35.3"), imp); break; + case 33 : add_value(TString8("VE35.4"), imp); break; + case 34 : add_value(TString8("VE35.5"), imp); break; + case 35 : add_value(TString8("VE35.6"), imp); break; + case 36 : add_value(TString8("VE35.7"), imp); break; + case 37 : add_value(TString8("VE35.8"), imp); break; + case 38 : add_value(TString8("VE35.9"), imp); break; + default : break; + } + } + if (terremotati) + add_value(TString8("VE36.1"), imp); + } } } - } +} query = "USE LIM\n FROM CODTAB=="; @@ -210,14 +250,35 @@ void TQuadro_VE_recordset::load(const long year) } - if (!good) - warning_box(FR("Risultati liquidazione non presenti o da ricalcolare per l'anno %d."), year); + real val = evaluate_recordset(REP_EXPORT, year); + + good |= val > ZERO; + add_value(TString8("VE30.2"), val); + val = evaluate_recordset(REP_INTRA, year); + good |= val > ZERO; + add_value(TString8("VE30.3"), val); + val = evaluate_recordset(REP_SANMARINO, year); + good |= val > ZERO; + add_value(TString8("VE30.4"), val); + val = evaluate_recordset(REP_OPASSIMIL, year); + good |= val > ZERO; + add_value(TString8("VE30.5"), val); + +// VE37.1 2 iva sospensione + + val = evaluate_recordset(REP_PAART17, year); // liquidazione + good |= val > ZERO; + add_value(TString8("VE38.1"), val); + +// VE39.1 iva sospensione incassata +// if (!good) +// warning_box(FR("Risultati liquidazione non presenti o da ricalcolare per l'anno %d."), year); } class TQuadro_VE_app : public TQuadro_IVA_app { public: - virtual TQuadro_IVA_recordset * app_recordset(const char* use, const int year) { return new TQuadro_VE_recordset(use, year); } + virtual TQuadro_IVA_recordset * app_recordset(const char* use, const int year) { return new TQuadro_VE_recordset(mask(), use, year); } TQuadro_VE_app() : TQuadro_IVA_app("Stampa Quadro VE", "cg7500a") {} virtual ~TQuadro_VE_app() {} diff --git a/src/cg/cg7500a.h b/src/cg/cg7500a.h index d23f2501f..2bf35fe90 100644 --- a/src/cg/cg7500a.h +++ b/src/cg/cg7500a.h @@ -1,6 +1,12 @@ -#define F_YEAR 101 -#define F_CODDITTA 102 -#define F_RAGSOC 103 -#define F_REPORT 104 -#define F_DESREPORT 105 +#define F_YEAR 201 +#define F_DITTE 202 +#define F_REPORTS 203 +#define S_CHKDITTA 101 +#define S_CODDITTA 102 +#define S_RAGSOC 103 + +#define S_CHKREPORT 101 +#define S_CODEREPORT 102 +#define S_DESCREPORT 103 +#define S_NAMEREPORT 104 diff --git a/src/cg/cg7500a.pdf b/src/cg/cg7500a.pdf index 2363815b7..fb4efc92c 100644 Binary files a/src/cg/cg7500a.pdf and b/src/cg/cg7500a.pdf differ diff --git a/src/cg/cg7500a.uml b/src/cg/cg7500a.uml index 57bad4ae5..d99249552 100644 --- a/src/cg/cg7500a.uml +++ b/src/cg/cg7500a.uml @@ -1,7 +1,19 @@ -#include "cg7500a.h" +#include "cg7400a.h" TOOLBAR "Toolbar" 0 0 0 2 +BUTTON DLG_ALLFIRMS 2 2 +BEGIN + PROMPT 2 1 "Tutte le ditte" + PICTURE TOOL_CHECK +END + +BUTTON DLG_ALLREPORTS 2 2 +BEGIN + PROMPT 2 1 "Tutte le stampe" + PICTURE TOOL_SETPRINT +END + #include ENDPAGE @@ -10,33 +22,105 @@ PAGE "Quadro VE" 0 0 0 0 NUMBER F_YEAR 4 BEGIN - PROMPT 3 3 "Anno " + PROMPT 3 2 "Anno " FLAGS "A" END -NUMBER F_CODDITTA 5 +SPREADSHEET F_DITTE 66 8 BEGIN - PROMPT 3 6 "Ditta " - FLAGS "B" - FIELD #CODDITTA + PROMPT 7 4 " " + ITEM "" + ITEM "Codice" + ITEM "Ragione Sociale@50" END -STRING F_RAGSOC 50 +SPREADSHEET F_REPORTS 83 10 BEGIN - PROMPT 20 6 "" - FLAGS "B" -END - -STRING F_REPORT 2 -BEGIN - PROMPT 3 9 "Report " - FLAGS "B" -END - -STRING F_DESREPORT 70 -BEGIN - PROMPT 8 11 "" - FLAGS "D" + PROMPT 1 14 "" + ITEM "" + ITEM "Codice" + ITEM "Descrizione@60" + ITEM "Nome@6" +END + +ENDPAGE + +ENDMASK + +PAGE "Ditte" -1 -1 78 6 + +BOOLEAN S_CHKDITTA +BEGIN + PROMPT 3 2 "Selezionata" +END + +NUMBER S_CODDITTA 5 +BEGIN + PROMPT 3 4 "Ditta " + FLAGS "D" +END + +STRING S_RAGSOC 50 +BEGIN + PROMPT 20 4 "" + FLAGS "D" +END + +ENDPAGE + +TOOLBAR "topbar" 0 0 0 2 + +BUTTON DLG_OK 2 2 +BEGIN + PROMPT 1 1 "" +END + +BUTTON DLG_CANCEL 10 2 +BEGIN + PROMPT 2 1 "" +END + +ENDPAGE + +ENDMASK + +PAGE "Reports" -1 -1 78 6 + +BOOLEAN S_CHKREPORT +BEGIN + PROMPT 3 2 "Selezionata" +END + +STRING S_CODEREPORT 2 +BEGIN + PROMPT 3 4 "Codice " + FLAGS "D" +END + +STRING S_NAMEREPORT 7 +BEGIN + PROMPT 3 6 "Report " + FLAGS "D" +END + +STRING S_DESCREPORT 60 +BEGIN + PROMPT 20 6 "" + FLAGS "D" +END + +ENDPAGE + +TOOLBAR "topbar" 0 0 0 2 + +BUTTON DLG_OK 2 2 +BEGIN + PROMPT 1 1 "" +END + +BUTTON DLG_CANCEL 10 2 +BEGIN + PROMPT 2 1 "" END ENDPAGE diff --git a/src/cg/cg7500b.rep b/src/cg/cg7500b.rep index a3b9ede52..ab2f7e407 100644 --- a/src/cg/cg7500b.rep +++ b/src/cg/cg7500b.rep @@ -1,9 +1,9 @@ - + Dichiarazione IVA Quadro VE - Esportazioni
- + "Pag. " +#PAGE @@ -16,12 +16,9 @@ - - - - + + +
MESSAGE RESET,F1 @@ -29,10 +26,10 @@ #SYSTEM.RAGSOC - + "Data di Stampa: " +#SYSTEM.DATE - + "ELENCO FATTURE ESPORTAZIONE - " +#ANNO
@@ -82,9 +79,9 @@
- - - + + +
@@ -108,16 +105,16 @@ #B1.35 - + #B1.40 - + #B1.105 -
diff --git a/src/cg/cg7500c.rep b/src/cg/cg7500c.rep index 3f23e49d4..26be7a68c 100644 --- a/src/cg/cg7500c.rep +++ b/src/cg/cg7500c.rep @@ -1,9 +1,9 @@ - + Dichiarazione IVA Quadro VE intracomunitarie
- + "Pag. " +#PAGE @@ -16,12 +16,9 @@ - - - - + + +
MESSAGE RESET,F1 @@ -29,10 +26,10 @@ #SYSTEM.RAGSOC - + "Data di Stampa: " +#SYSTEM.DATE - + "ELENCO FATTURE CESSIONI INTRACOMUNITARIE - " +#ANNO
@@ -44,7 +41,7 @@
-
+
- - - + + +
@@ -114,16 +111,16 @@ #B1.35 - + #B1.40 - + #B1.105 -
diff --git a/src/cg/cg7500d.rep b/src/cg/cg7500d.rep index 83bd81a2c..5d86fbf99 100644 --- a/src/cg/cg7500d.rep +++ b/src/cg/cg7500d.rep @@ -1,9 +1,9 @@ - + Dichiarazione IVA Quadro VE - San Marino
- + "Pag. " +#PAGE @@ -16,12 +16,9 @@ - - - - + + +
MESSAGE RESET,F1 @@ -29,10 +26,10 @@ #SYSTEM.RAGSOC - + "Data di Stampa: " +#SYSTEM.DATE - + "ELENCO FATTURE CESSIONI VERSO SAN MARINO - " +#ANNO
@@ -88,9 +85,9 @@
- - - + + +
@@ -114,16 +111,16 @@ #B1.35 - + #B1.40 - + #B1.105 -
diff --git a/src/cg/cg7500e.rep b/src/cg/cg7500e.rep index a8f700971..443c833cb 100644 --- a/src/cg/cg7500e.rep +++ b/src/cg/cg7500e.rep @@ -1,9 +1,9 @@ - + Dichiarazione IVA Quadro VE - Assimilate
- + "Pag. " +#PAGE @@ -16,12 +16,9 @@ - - - - + + +
MESSAGE RESET,F1 @@ -29,10 +26,10 @@ #SYSTEM.RAGSOC - + "Data di Stampa: " +#SYSTEM.DATE - + "ELENCO FATTURE OPERAZIONI ASSIMILATE - " +#ANNO
@@ -88,9 +85,9 @@
- - - + + +
@@ -114,16 +111,16 @@ #B1.35 - + #B1.40 - + #B1.105 -
diff --git a/src/cg/cg7500f.rep b/src/cg/cg7500f.rep index 1bc020102..4717be90a 100644 --- a/src/cg/cg7500f.rep +++ b/src/cg/cg7500f.rep @@ -1,9 +1,9 @@ - + Dichiarazione IVA Quadro VE - Intento
- + "Pag. " +#PAGE @@ -16,12 +16,9 @@ - - - - + + +
MESSAGE RESET,F1 @@ -29,10 +26,10 @@ #SYSTEM.RAGSOC - + "Data di Stampa: " +#SYSTEM.DATE - + "ELENCO OPERAZIONI NON IMPONIBILI A SEGUITO DI DICHIARAZIONI DI INTENTO - " +#ANNO
@@ -88,9 +85,9 @@
- - - + + +
@@ -114,16 +111,16 @@ #B1.35 - + #B1.40 - + #B1.105 -
diff --git a/src/cg/cg7500g.rep b/src/cg/cg7500g.rep index fcf0ae3fe..9e43f26c2 100644 --- a/src/cg/cg7500g.rep +++ b/src/cg/cg7500g.rep @@ -1,9 +1,9 @@ - + Dichiarazione IVA Quadro VE - Altri NI
- + "Pag. " +#PAGE @@ -16,12 +16,9 @@ - - - - + + +
MESSAGE RESET,F1 @@ -29,10 +26,10 @@ #SYSTEM.RAGSOC - + "Data di Stampa: " +#SYSTEM.DATE - + "ELENCO ALTRE OPERAZIONI NON IMPONIBILI - " +#ANNO
@@ -88,9 +85,9 @@
- - - + + +
@@ -114,16 +111,16 @@ #B1.35 - + #B1.40 - + #B1.105 -
diff --git a/src/cg/cg7500h.rep b/src/cg/cg7500h.rep index 9c6ff072c..b8efa7aaa 100644 --- a/src/cg/cg7500h.rep +++ b/src/cg/cg7500h.rep @@ -1,9 +1,9 @@ - + Dichiarazione IVA Quadro VE - Esenti Art. 10
- + "Pag. " +#PAGE @@ -16,12 +16,9 @@ - - - - + + +
MESSAGE RESET,F1 @@ -29,10 +26,10 @@ #SYSTEM.RAGSOC - + "Data di Stampa: " +#SYSTEM.DATE - + "ELENCO OPERAZIONI ESENTI (art. 10) - " +#ANNO
@@ -88,9 +85,9 @@
- - - + + +
@@ -114,20 +111,20 @@ #B1.35 - + #B1.40 - + #B1.105 -
- USE RMOVIVA SELECT (23.ANNOIVA=#ANNO)(23.TIPO="C")(201@.S1="ES")(201@.S2="B2") + USE RMOVIVA SELECT (23.ANNOIVA=#ANNO)(23.TIPO="C")(201@.S1="ES")((201@.S2="B2")||(201@.S2="B5")) JOIN MOV INTO NUMREG==NUMREG JOIN 20 TO MOV INTO TIPOCF==TIPO CODCF==CODCF JOIN %IVA ALIAS 201 INTO CODTAB==CODIVA diff --git a/src/cg/cg7500i.rep b/src/cg/cg7500i.rep index e0f971e1c..8a823fed8 100644 --- a/src/cg/cg7500i.rep +++ b/src/cg/cg7500i.rep @@ -1,9 +1,9 @@ - + Dichiarazione IVA Quadro VE - NS ART. 7 A 7-sep
- + "Pag. " +#PAGE @@ -16,12 +16,9 @@ - - - - + + +
MESSAGE RESET,F1 @@ -29,10 +26,10 @@ #SYSTEM.RAGSOC - + "Data di Stampa: " +#SYSTEM.DATE - + "ELENCO OPERAZIONI NON SOGGETTE ALL'IMPOSTA AI SENSI DEGLI ARTICOLI DA 7 A 7 -septies" +#ANNO
@@ -88,9 +85,9 @@
- - - + + +
@@ -114,20 +111,20 @@ #B1.35 - + #B1.40 - + #B1.105 -
- USE RMOVIVA SELECT (23.ANNOIVA=#ANNO)(23.TIPO="C")(201@.S1="ES")(201@.S2="B2") + USE RMOVIVA SELECT (23.ANNOIVA=#ANNO)(23.TIPO="C")(201@.S1="ES")(201@.S2="B6") JOIN MOV INTO NUMREG==NUMREG JOIN 20 TO MOV INTO TIPOCF==TIPO CODCF==CODCF JOIN %IVA ALIAS 201 INTO CODTAB==CODIVA diff --git a/src/cg/cg7500l.rep b/src/cg/cg7500l.rep index 9e0a95d47..2373bfc11 100644 --- a/src/cg/cg7500l.rep +++ b/src/cg/cg7500l.rep @@ -1,9 +1,9 @@ - + Dichiarazione IVA Quadro VE - Rev.Charge
- + "Pag. " +#PAGE @@ -19,7 +19,7 @@ - +
MESSAGE RESET,F1 @@ -27,10 +27,10 @@ #SYSTEM.RAGSOC - + "Data di Stampa: " +#SYSTEM.DATE - + "ELENCO OPERAZIONI CON APPLICAZIONE DEL REVERSE CHARGE - " +#ANNO
@@ -94,7 +94,7 @@
- + @@ -142,7 +142,7 @@ #B1.105 - + #B1.115
  • diff --git a/src/cg/cg7500m.rep b/src/cg/cg7500m.rep new file mode 100644 index 000000000..a42bb61aa --- /dev/null +++ b/src/cg/cg7500m.rep @@ -0,0 +1,141 @@ + + + Dichiarazione IVA Quadro VE - Terremotati + +
    + + "Pag. " +#PAGE + + +
    +
    + MESSAGE RESET,F1 + + + #SYSTEM.RAGSOC + + + "Data di Stampa: " +#SYSTEM.DATE + + + "ELENCO Operazioni non soggette all\imposta effettuate nei confronti dei terremotati - " +#ANNO + +
    + +
    + +
    +
    + + + +
    +
    + + #B1.5 + + + + #B1.15 + + + + #B1.25 + + + #B1.30 + + + #B1.35 + + + #B1.40 + + + #B1.105 + + + MESSAGE ADD,F1.100 + + + #B1.115 + +
    + USE RMOVIVA SELECT (23.ANNOIVA=#ANNO)(23.TIPO="C")(201@.S2="25") +JOIN MOV INTO NUMREG==NUMREG +JOIN 20 TO MOV INTO TIPOCF==TIPO CODCF==CODCF +JOIN %IVA ALIAS 201 INTO CODTAB==CODIVA +JOIN %STA TO CLIFO ALIAS 202 INTO CODTAB==STATOCF +JOIN 26 TO MOV INTO CODCAUS==CODCAUS + \ No newline at end of file diff --git a/src/cg/cg7500n.rep b/src/cg/cg7500n.rep new file mode 100644 index 000000000..a81e578cd --- /dev/null +++ b/src/cg/cg7500n.rep @@ -0,0 +1,114 @@ + + + fatture in split + +
    + + + "Ditta: " +#SYSTEM.RAGSOC + + + "Data di Stampa: " +#SYSTEM.DATE+" - Pag. "+#PAGE + + + + "Lista Fatture emesse in Split Payment nel periodo: " +#ANNO + + + + + + + + + + + + +
    +
    + + MESSAGE RESET,F1 +
    +
    + RMOVIVA.CODIVA + + MESSAGE RESET,F2 + + + RMOVIVA.CODIVA + + + MESSAGE TABLEREAD,%IVA,#10,S0 + +
    +
    +
    + + + RMOVIVA.NUMREG + + + MOV.DATAREG + + + MOV.CODCAUS + + + MOV.REG + + + MOV.CODCF + + + + CLIFO.RAGSOC + + + RMOVIVA.CODIVA + + + RMOVIVA.IMPONIBILE + MESSAGE ADD,F2.100 + + + RMOVIVA.IMPOSTA + MESSAGE ADD,F2.200 + + + MOV.SPLITPAY + + + CLIFO.SPLITPAY + +
    +
    +
    + + + + +
    +
    + + + + #H2.10 + + + #H2.20 + + + MESSAGE ADD,F1.100 + + + MESSAGE ADD,F1.200 + +
    + USE RMOVIVA SELECT ((MOV.SPLITPAY="S")||((MOV.SPLITPAY="")(20.SPLITPAY="X")))(MOV.ANNOIVA=#ANNO) +BY RMOVIVA.CODIVA 23.DATAREG +JOIN MOV INTO NUMREG==NUMREG +JOIN CLIFO TO MOV INTO TIPOCF==TIPO CODCF==CODCF + \ No newline at end of file