From 8aafd83092dc860e3e1c9eba73a9cd0fb2e90c96 Mon Sep 17 00:00:00 2001 From: Simone Palacino Date: Wed, 3 Jul 2019 11:10:58 +0200 Subject: [PATCH 1/2] Patch level : 12.0 848 Files correlati : cg2.exe cg2100t.msk Commento : - Modificati campi nela maschera per ricerca - Modificato il riporta dati per riportare dati il codice cliente --- src/cg/cg2100.cpp | 2 +- src/cg/cg2100t.uml | 50 ++++++++++++++++++++++++++++++++++++++++++++++ src/cg/cg2102.cpp | 30 +++++++++++++++++++--------- src/cg/cg2102.h | 5 ++++- src/cg/cg2103.cpp | 4 ++-- src/cg/cg2103.h | 2 +- 6 files changed, 79 insertions(+), 14 deletions(-) diff --git a/src/cg/cg2100.cpp b/src/cg/cg2100.cpp index a2c353069..0310aa0f3 100755 --- a/src/cg/cg2100.cpp +++ b/src/cg/cg2100.cpp @@ -1240,7 +1240,7 @@ int TPrimanota_application::read(TMask& m) TBill c; c.get(r); c.add_to(riga, 4, 0x7); // Conto 105-110 - riga.add(r.get(RMI_NAVP)); + riga.add(r.get(RMI_NAVP), cid2index(IVA_NOTAVARECF)); } calcola_imp(); // Calcola totale imponibile ed imposte diff --git a/src/cg/cg2100t.uml b/src/cg/cg2100t.uml index bf2e444c2..30814e7fe 100644 --- a/src/cg/cg2100t.uml +++ b/src/cg/cg2100t.uml @@ -34,30 +34,80 @@ PAGE "Fatture Ricevute SDI" -1 -1 77 20 NUMBER F_CODCLIFORS 6 BEGIN PROMPT 1 1 "Codice fornitore" + FIELD CODCF + GROUP 1 + USE LF_CLIFO + INPUT TIPOCF "F" + INPUT CODCF F_CODCLIFORS + DISPLAY "Codice" CODCF + DISPLAY "Ragione Sociale@50" RAGSOC + DISPLAY "Sospeso@C" SOSPESO + DISPLAY "Partita IVA@12" PAIV + DISPLAY "Codice Fiscale@16" COFI + OUTPUT F_CODCLIFORS CODCF + OUTPUT F_STATOPAIVS STATOPAIV + OUTPUT F_PIVAS PAIV + OUTPUT F_COFIS COFI + OUTPUT F_RAGSOCS RAGSOC + CHECKTYPE REQUIRED + ADD RUN cg0 -1 FLAGS "D" END STRING F_COFIS 16 BEGIN PROMPT 35 1 "Cod. Fiscale " + GROUP 1 + USE LF_CLIFO KEY 4 + INPUT TIPOCF "F" + INPUT COFI F_COFIS + DISPLAY "Codice fiscale@16" COFI + DISPLAY "Ragione Sociale@50" RAGSOC + DISPLAY "Codice" CODCF + DISPLAY "Sospeso@C" SOSPESO + DISPLAY "Partita IVA@12" PAIV + COPY OUTPUT F_CODCLIFORS + CHECKTYPE NORMAL + ADD RUN cg0 -1 FLAGS "D" END STRING F_STATOPAIVS 2 BEGIN PROMPT 1 2 "P. IVA" + USE %SCE + INPUT CODTAB F_STATOPAIVS + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_STATOPAIVS CODTAB + CHECKTYPE NORMAL FLAGS "D" END STRING F_PIVAS 12 BEGIN PROMPT 15 2 "" + GROUP 1 + USE LF_CLIFO KEY 5 + INPUT TIPOCF "F" + INPUT STATOPAIV F_STATOPAIVS + INPUT PAIV F_PIVAS + DISPLAY "Partita IVA@12" PAIV + DISPLAY "Ragione Sociale@50" RAGSOC + DISPLAY "Codice" CODCF + DISPLAY "Sospeso@C" SOSPESO + DISPLAY "Codice Fiscale@16" COFI + COPY OUTPUT F_CODCLIFORS + CHECKTYPE NORMAL + ADD RUN cg0 -1 FLAGS "D" END STRING F_RAGSOCS 50 BEGIN PROMPT 0 3 "Rag. Soc." + INPUT TIPOCF F_CLIFO SELECT + INPUT RAGSOC F_RAGSOCCF FLAGS "D" END diff --git a/src/cg/cg2102.cpp b/src/cg/cg2102.cpp index bbe903822..b70abfd92 100755 --- a/src/cg/cg2102.cpp +++ b/src/cg/cg2102.cpp @@ -3891,11 +3891,22 @@ bool TPrimanota_application::write_scad_f1(const TMask& cg_msk, const shared_ptr void TPrimanota_application::write_clifo(TMask& cg_msk, const shared_ptr& msk) { TLocalisamfile clifo(LF_CLIFO); - clifo.setkey(5); - clifo.put(CLI_TIPOCF, "F"); - clifo.put(CLI_PAIV, msk->get_piva()); - clifo.read(); - if (clifo.get(CLI_PAIV) == msk->get_piva()) + if (msk->get_codforn().empty()) + { + clifo.setkey(5); + clifo.put(CLI_TIPOCF, "F"); + clifo.put(CLI_PAIV, msk->get_piva()); + clifo.read(); + } + else + { + clifo.setkey(1); + clifo.put(CLI_TIPOCF, "F"); + clifo.put(CLI_CODCF, msk->get_codforn()); + clifo.read(); + } + + if (clifo.get(CLI_PAIV) == msk->get_piva() && (cg_msk.get(F_CODCLIFOR).empty() || cg_msk.get(F_CODCLIFOR) != msk->get_codforn())) { cg_msk.set(F_CODCLIFOR, clifo.get(CLI_CODCF)); cg_msk.set(F_RAGSOCCF, clifo.get(CLI_RAGSOC)); @@ -3929,7 +3940,7 @@ void TPrimanota_application::riporta_dati_f1(TMask& cg_msk, const shared_ptrget_numdoc()); cg_msk.set(F_NUMDOC, msk->get_numdoc().right(7)); cg_msk.set(F_DATADOC, msk->get_datadoc()); - if (!cg_msk.get(F_CODCLIFOR).full() && msk->get_numdoc().full()) + if (msk->get_numdoc().full()) write_clifo(cg_msk, msk); write_righe_iva_f1(cg_msk, msk); set_totale(cg_msk, msk); @@ -4072,7 +4083,7 @@ bool TPro_msk::riporta_handler(TMask_field& f, KEY k) //TProtocollo protocollo(TDate(row->get(2)).year(), row->get(9), row->get(10)); app()._pro_mask->set_doc(row->get(cid2index(F_NUMEROS)), row->get(cid2index(F_DATAS)), row->get(cid2index(F_IMPTOTDOCS)), row->get(cid2index(F_RITENUTE)), "", row->get(cid2index(F_KEYFPPROS)), - row->get(cid2index(F_FISCIVACODS))); + msk.get(F_CODCLIFORS), row->get(cid2index(F_FISCIVACODS))); if (f.dlg() == DLG_OK) app()._pro_mask->_riporta = true; else @@ -4192,7 +4203,7 @@ void TPro_msk::set_scadenze(const char* fpprokeys) } } -void TPro_msk::set_doc(const char* numero, const char* datadoc, const char* totdoc, const char* ritenute, const char* protfppro, const char* fpprokeys, const char* piva) +void TPro_msk::set_doc(const char* numero, const char* datadoc, const char* totdoc, const char* ritenute, const char* protfppro, const char* fpprokeys, const char* codforn, const char* piva) { _numero = numero; _datadoc = datadoc; @@ -4200,6 +4211,7 @@ void TPro_msk::set_doc(const char* numero, const char* datadoc, const char* totd _ritenute = ritenute; _protfppro.sset(protfppro); _fpprokeys = fpprokeys; + _codforn = codforn; _piva = piva; set_righeiva(fpprokeys); set_scadenze(fpprokeys); @@ -4309,7 +4321,7 @@ void TPro_msk::abilita_piva(TMask* msk) } } -TPro_msk::TPro_msk(TMask& cg_msk) : TAutomask("cg2100t"), _riporta(false) +TPro_msk::TPro_msk(TMask& cg_msk) : TAutomask("cg2100t"), _riporta(false), _codforn("") { TMask::set_handler(DLG_CONFIG, fppro_handler); TMask::set_handler(DLG_OK, riporta_handler); diff --git a/src/cg/cg2102.h b/src/cg/cg2102.h index 877060257..a5f912d78 100755 --- a/src/cg/cg2102.h +++ b/src/cg/cg2102.h @@ -415,6 +415,7 @@ private: TProtocollo _protfppro; TString _fpprokeys; TString _piva; + TString _codforn; vector _righe_iva; vector _scadenze; bool _riporta; @@ -446,7 +447,7 @@ public: void set_righeiva(const char* fpprokeys); void set_scadenze(const char* fpprokeys); - void set_doc(const char* numero, const char* datadoc, const char* totdoc, const char* ritenute, const char* protfppro, const char* fpprokeys, const char* piva); + void set_doc(const char* numero, const char* datadoc, const char* totdoc, const char* ritenute, const char* protfppro, const char* fpprokeys, const char* codforn, const char* piva); TString get_numdoc() const { return _numero; } TDate get_datadoc() const { return _datadoc; } @@ -454,6 +455,7 @@ public: real get_ritenute() { return _ritenute; } TProtocollo& get_protocollo() { return _protfppro; } TString get_fpprokeys() const { return _fpprokeys; } + TString get_codforn() const { return _codforn; } TString get_piva() const { return _piva; } const vector& get_righeiva() { return _righe_iva; } @@ -461,6 +463,7 @@ public: void add_rigaiva(const real& imponibile, const real& imposta, const real& aliquota, const TString4& natura); void add_scad(const TDate& date, const real& importo); bool should_bring_back() const { return _riporta; } + static TString& query_fppro(const TString& codforn, const TString& date); static TString& query_fppro(const TString& stato_piva, const TString& piva, const TString& date); diff --git a/src/cg/cg2103.cpp b/src/cg/cg2103.cpp index 0512f4c69..7d06f5dab 100755 --- a/src/cg/cg2103.cpp +++ b/src/cg/cg2103.cpp @@ -399,9 +399,9 @@ const TCausale & TCache_causale::caus(const char* key, const int anno) return (const TCausale &) *objptr(k); } -const TCausale & cached_causale(const char * codcaus, int anno) +const TCausale & cached_causale(const char * codcaus, int year) { HIDDEN TCache_causale __cache_causale; - return __cache_causale.caus(codcaus, anno); + return __cache_causale.caus(codcaus, year); } diff --git a/src/cg/cg2103.h b/src/cg/cg2103.h index 66ff49651..263851a98 100755 --- a/src/cg/cg2103.h +++ b/src/cg/cg2103.h @@ -82,7 +82,7 @@ public: virtual ~TCausale() {} }; -const TCausale & cached_causale(const char * codcaus, const int year); +const TCausale & cached_causale(const char * codcaus, const int year = 0); // Fatture #define RIGA_IVA_DETRAIBILE 3 From c08168c30523e2de796c365667cf98d2df69da9b Mon Sep 17 00:00:00 2001 From: Simone Palacino Date: Wed, 3 Jul 2019 11:11:12 +0200 Subject: [PATCH 2/2] Patch level : 12.0 848 Files correlati : cg2.exe cg2100t.msk Commento : - Modificati campi nela maschera per ricerca - Modificato il riporta dati per riportare dati il codice cliente --- src/f1/f1lib.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/f1/f1lib.cpp b/src/f1/f1lib.cpp index 645f09fe3..c2a3d49a8 100644 --- a/src/f1/f1lib.cpp +++ b/src/f1/f1lib.cpp @@ -312,18 +312,18 @@ void set_periodprec(bool flag) bool check_causale(const TString& cod_caus, bool acq) { - return + return cod_caus.full() && ( check_causale(cod_caus, "FA", acq) || check_causale(cod_caus, "BD", acq) || check_causale(cod_caus, "AF", acq) || check_causale(cod_caus, "FF", acq) || check_causale(cod_caus, "NC", acq) || - check_causale(cod_caus, "ND", acq); + check_causale(cod_caus, "ND", acq)); } bool check_causale(const TString& cod_caus, const TString& tipo_doc, bool acq) { - const TCausale caus(cod_caus); + const TCausale& caus = cached_causale(cod_caus); if(tipo_doc == "FA" || tipo_doc == "BD" || tipo_doc == "AF" || tipo_doc == "FF") return caus.tipo_doc() == tipo_doc;