diff --git a/src/cg/cg2100.cpp b/src/cg/cg2100.cpp index f6bafdc30..285957389 100755 --- a/src/cg/cg2100.cpp +++ b/src/cg/cg2100.cpp @@ -392,7 +392,7 @@ bool TPrimanota_application::read_caus(const char* cod, int year) m->show(F_DATA74TER, av); if (!av) m->reset(F_DATA74TER); - TRegistro& r = c.reg(); + const TRegistro& r = (TRegistro &) c.reg(); const bool reg_vendite = r.iva() == iva_vendite && !r.corrispettivi(); const bool show_notevar = iva == iva_vendite || iva == iva_acquisti; const bool show_active_revcharge = iva == iva_acquisti && causale().reverse_charge_pubb(); @@ -980,7 +980,7 @@ void TPrimanota_application::init_insert_mode(TMask& m) } if (iva() != nessuna_iva) { - TRegistro& reg = causale().reg(); + TRegistro & reg = (TRegistro &) causale().reg(); const TString4 codreg = reg.name(); const int regyear = reg.year(); @@ -1181,9 +1181,10 @@ int TPrimanota_application::read(TMask& m) } _saldi.reset(); // Azzera saldi - _saldi.set_movprovv(_rel->curr().get_char(MOV_PROVVIS)); - tiposal tsal = causale().apertura() ? apertura : - (causale().chiusura() ? chiusura : normale); + _saldi.set_movprovv(_rel->curr().get_char(MOV_PROVVIS)); + + tiposal tsal = causale().tipo_saldo(); + _saldi.set_tipo_saldo(tsal); _saldi.set_anno_es(m.get_int(F_ANNOES)); _saldi.set_num_ulmov(numreg); @@ -1308,8 +1309,9 @@ void TPrimanota_application::mask2rel(const TMask& m) const int annoes = m.get_int(F_ANNOES); _saldi.set_movprovv(m.get(F_PROVVISORIO)[0]); - tiposal tsal = causale().apertura() ? apertura : - (causale().chiusura() ? chiusura : normale); + + tiposal tsal = causale().tipo_saldo(); + _saldi.set_tipo_saldo(tsal); _saldi.set_anno_es(annoes); _saldi.set_num_ulmov(numreg); @@ -1643,7 +1645,8 @@ int TPrimanota_application::write(const TMask& m) int tipauto = 0; // Tipo movimento automatico TString4 causauto; // Possibile causale per incasso immediato - causale().reg().reread(); // Aggiorna protocollo IVA + cache().discard("REG", causale().reg().codice()); + //(TRegistro &)causale().reg()).reread(); // Aggiorna protocollo IVA if (is_saldaconto()) { switch (causale().tipomov()) @@ -2274,6 +2277,7 @@ void TPrimanota_application::ini2mask(TConfig& ini, TMask& msk, bool query) { set_not_empty(msk, F_CODCAUS, ini, MOV_CODCAUS); TString16 val = ini.get(MOV_DATAREG); + if (val.blank()) { const long numreg = ini.get_long(MOV_NUMREG); diff --git a/src/cg/cg2102.cpp b/src/cg/cg2102.cpp index ecfcf24f1..9120e84e1 100755 --- a/src/cg/cg2102.cpp +++ b/src/cg/cg2102.cpp @@ -2368,7 +2368,7 @@ bool TPrimanota_application::datareg_handler(TMask_field& f, KEY key) { const int ar = dr.year(); // Anno solare registri const TCausale & caus = cached_causale(m.get(F_CODCAUS), ar); - TRegistro& reg = caus.reg(); + TRegistro& reg = (TRegistro &) caus.reg(); const TString4 codreg = reg.name(); if (codreg.full()) diff --git a/src/cg/cglib05.cpp b/src/cg/cglib05.cpp index 7b976698e..43788fca9 100644 --- a/src/cg/cglib05.cpp +++ b/src/cg/cglib05.cpp @@ -2,16 +2,6 @@ #include "causali.h" #include -enum tiporeg { - vendita = 1, - acquisto = 2, - riepilogativo = 3, - incassi = 4, - giornale = 5, - sociale = 6, - cespiti = 7 -}; - /////////////////////////////////////////////////////////// // TRiepilogoIVA_report /////////////////////////////////////////////////////////// diff --git a/src/cg/cglib07.cpp b/src/cg/cglib07.cpp index 95c8ce0cf..dd4ad84bf 100644 --- a/src/cg/cglib07.cpp +++ b/src/cg/cglib07.cpp @@ -10,6 +10,7 @@ #include "../cg/cfban.h" #include #include +#include #include #include #include @@ -605,6 +606,29 @@ const TCli_for & cached_clifor(const char tipo, long codice) return __cache_clifor.clifor(tipo, codice); } +const TCli_for & cached_clifor(int file, const TRectype & rec) +{ + char tipo = ' '; + long codice = 0L; + + switch (file) + { + case LF_MOV: + tipo = rec.get_char(MOV_TIPO); + codice = rec.get_long(MOV_CODCF); + break; + case LF_DOC: + tipo = rec.get_char(DOC_TIPOCF); + codice = rec.get_long(DOC_CODCF); + break; + default: + tipo = rec.get_char(CLI_TIPOCF); + codice = rec.get_long(CLI_CODCF); + break; + } + return cached_clifor(tipo, codice); +} + TOccasionale::TOccasionale() : TRectype(LF_OCCAS) { } diff --git a/src/cg/cgsaldac.cpp b/src/cg/cgsaldac.cpp index 5521cdc27..11cff6971 100755 --- a/src/cg/cgsaldac.cpp +++ b/src/cg/cgsaldac.cpp @@ -4,7 +4,6 @@ #include #include "cgsaldac.h" -#include "cglib.h" #include #include diff --git a/src/f9/f90200a.uml b/src/f9/f90200a.uml index b998bcad9..d4957a5cf 100644 --- a/src/f9/f90200a.uml +++ b/src/f9/f90200a.uml @@ -93,7 +93,7 @@ BEGIN ITEM "FTV|FTV - Fattura di Vendita" END -LIST F_CAUSSOS 4 33 +LIST F_CAUSSOS 4 40 BEGIN PROMPT 1 5 "Causale per sostitutiva" FLAGS "" @@ -104,7 +104,18 @@ BEGIN ITEM "TD04|TD04 Nota di credito" ITEM "TD05|TD05 Nota di debito" ITEM "TD06|TD06 Parcella" + ITEM "TD16|TD16 Integraz. fatt. rev.ch. interno" + ITEM "TD17|TD17 Integ./autof. acq. servizi estero" + ITEM "TD18|TD18 Integ. acq. beni intracomunitari" + ITEM "TD19|TD19 Integ./autof. acq. beni ex art. 17" ITEM "TD20|TD20 Autofattura" + ITEM "TD21|TD21 Autofattura per splafonamento" + ITEM "TD22|TD22 Estrazione beni da Deposito IVA" + ITEM "TD23|TD23 Estr. beni Deposito IVA vers. IVA" + ITEM "TD24|TD24 Fatt. differita art.21 c.4 lett. a" + ITEM "TD25|TD25 Fatt. differita art. 21 c.4 per.3 b" + ITEM "TD26|TD26 Cess. beni ammort./passaggi interni" + ITEM "TD27|TD27 Fatt. autoconsumo/cessioni gratuite" END STRING F_CAUSCONT 6 diff --git a/src/f9/f9lib.h b/src/f9/f9lib.h index fa70485d4..5926994fb 100644 --- a/src/f9/f9lib.h +++ b/src/f9/f9lib.h @@ -22,8 +22,6 @@ // Controlla eventuali apostrofi e li raddoppia const char* check_str(const TString& str); -const TDate today(TODAY); - struct annesso_t { TString numreg; // TString ez-pz diff --git a/src/f9/f9lib01.cpp b/src/f9/f9lib01.cpp index 5feb921ea..56967230f 100644 --- a/src/f9/f9lib01.cpp +++ b/src/f9/f9lib01.cpp @@ -565,7 +565,11 @@ TString TEstrazione::next_estr_today(char tipo) const bool TEstrazione::pura_iva(const TLocalisamfile& mov) { - return TCausale(mov.get(MOV_CODCAUS), mov.get_date(MOV_DATAREG).year()).soloiva(); + if (TCausale(mov.get(MOV_CODCAUS), mov.get_date(MOV_DATAREG).year()).soloiva()) + return true; + TMovimento_contabile* rel = new TMovimento_contabile(); + rel->put(MOV_NUMREG, mov.get(MOV_NUMREG)); + return rel->cg_rows() == 0; } void TEstrazione::write_errorsql_log(const TString& query) const @@ -1388,7 +1392,18 @@ const char* TCategorie_doc::traduci_caus_sost(const TString& caus) if (caus == "TD04") return "TD04 Nota di credito"; if (caus == "TD05") return "TD05 Nota di debito"; if (caus == "TD06") return "TD06 Parcella"; + if (caus == "TD16") return "TD16 Integraz. fatt. rev.ch. interno"; + if (caus == "TD17") return "TD17 Integ./autof. acq. servizi estero"; + if (caus == "TD18") return "TD18 Integ. acq. beni intracomunitari"; + if (caus == "TD19") return "TD19 Integ./autof. acq. beni ex art. 17"; if (caus == "TD20") return "TD20 Autofattura"; + if (caus == "TD21") return "TD21 Autofattura per splafonamento"; + if (caus == "TD22") return "TD22 Estrazione beni da Deposito IVA"; + if (caus == "TD23") return "TD23 Estr. beni Deposito IVA vers. IVA"; + if (caus == "TD24") return "TD24 Fatt. differita art.21 c.4 lett. a"; + if (caus == "TD25") return "TD25 Fatt. differita art. 21 c.4 per.3 b"; + if (caus == "TD26") return "TD26 Cess. beni ammort./passaggi interni"; + if (caus == "TD27") return "TD27 Fatt. autoconsumo/cessioni gratuite"; return ""; } diff --git a/src/gv/gvlib.cpp b/src/gv/gvlib.cpp index a6e0973de..69ee2f31c 100755 --- a/src/gv/gvlib.cpp +++ b/src/gv/gvlib.cpp @@ -3,8 +3,7 @@ #include #include -#include "../cg/cg2101.h" -#include "../cg/cglib02.h" +#include "../cg/cglib.h" /////////////////////////////////////////////////////////// diff --git a/src/ve/ve0300a.src b/src/ve/ve0300a.src index 9b6878c4f..72c3c1c6c 100755 --- a/src/ve/ve0300a.src +++ b/src/ve/ve0300a.src @@ -2002,7 +2002,7 @@ Y=1 SIZE=40 PROMPT="Tipo documento SDI " FIELDNAME=TIPO_SDI -ITEMS=|@TD01|TD01 Fattura@TD02|TD02 Acconto/Anticipo su fattura@TD03|TD03 Acconto/Anticipo su parcella@TD04|TD04 Nota di credito@TD05|TD05 Nota di debito@TD06|TD06 Parcella@TD16|TD16 Integraz. fatt. rev.ch. interno@TD17|TD17 Integ./autof. acq. servizi estero@TD18|TD18 Integ. acq. beni intracomunitari@TD19|TD19 Integ./autof. acq. beni ex art. 17@TD20|TD20 Autofattura@TD21|TD21 Autofattura per splafonamento@TD22|TD22 Estrazione beni da Deposito IVA@TD23|TD23 Estr. beni Deposito IVA vers. IVA@TD24|TD24 Fatt. differita art.21 c.4 lett. a@TD25|TD25 Fatt. differita art. 21 c.4 per.3 b@TD26|TD26 Cess. beni ammort./passaggi interni@TD27|TD27 Fatt. autoconsumo/cessioni gratuite" +ITEMS=|@TD01|TD01 Fattura@TD02|TD02 Acconto/Anticipo su fattura@TD03|TD03 Acconto/Anticipo su parcella@TD04|TD04 Nota di credito@TD05|TD05 Nota di debito@TD06|TD06 Parcella@TD16|TD16 Integraz. fatt. rev.ch. interno@TD17|TD17 Integ./autof. acq. servizi estero@TD18|TD18 Integ. acq. beni intracomunitari@TD19|TD19 Integ./autof. acq. beni ex art. 17@TD20|TD20 Autofattura@TD21|TD21 Autofattura per splafonamento@TD22|TD22 Estrazione beni da Deposito IVA@TD23|TD23 Estr. beni Deposito IVA vers. IVA@TD24|TD24 Fatt. differita art.21 c.4 lett. a@TD25|TD25 Fatt. differita art. 21 c.4 per.3 b@TD26|TD26 Cess. beni ammort./passaggi interni@TD27|TD27 Fatt. autoconsumo/cessioni gratuite [INVIO_FP] TYPE=T_CHECKBOX