From fe7c5f30dfedd2e8320ed17ef4e3fb1bb2edd842 Mon Sep 17 00:00:00 2001 From: mtollari Date: Tue, 29 Aug 2017 12:31:55 +0000 Subject: [PATCH] =?UTF-8?q?Patch=20level=20=20=20=20=20=20=20=20=20:=2012.?= =?UTF-8?q?0=20436=20Files=20correlati=20=20=20=20=20:=20tf=20Commento=20?= =?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20:=20-=20Aggiunta=20nuovo=20pro?= =?UTF-8?q?gramma=20cambio=20stato=20TF0100:=20-=20Tolta=20detraibilit?= =?UTF-8?q?=C3=A0=20-=20Tolti=20campi=20inutili=20dalla=20maschera=20-=20S?= =?UTF-8?q?postata=20funzione=20checkRecord=20in=20tfutility=20-=20Aggiunt?= =?UTF-8?q?i=20(disabilitati)=20a=20men=C3=B9=20i=20nuovi=20programmi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: svn://10.65.10.50/branches/R_10_00@24053 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- src/tf/tf0.cpp | 6 +++--- src/tf/tf0.h | 1 + src/tf/tf0100.cpp | 6 +++++- src/tf/tf0100a.uml | 5 ----- src/tf/tf0100b.h | 2 -- src/tf/tf0102.cpp | 23 ----------------------- src/tf/tfmenu.men | 10 ++++++---- src/tf/tfutility.cpp | 29 +++++++++++++++++++++++++++++ src/tf/tfutility.h | 8 ++++++-- 9 files changed, 50 insertions(+), 40 deletions(-) diff --git a/src/tf/tf0.cpp b/src/tf/tf0.cpp index e21cc1644..4a8da5955 100644 --- a/src/tf/tf0.cpp +++ b/src/tf/tf0.cpp @@ -8,10 +8,10 @@ int main(int argc, char** argv) switch (r) { - case 1 : rt = tf0200(argc, argv); break; // Comunicazione Liquidazioni Periodiche IVA - case 3: rt = tf0400(argc, argv); break; // Controllo Spesometro - case 4: rt = tf0500(argc, argv); break; // Invio IVA + //case 2 : rt = tf0300(argc, argv); break; // Cambio stato invio + case 3 : rt = tf0400(argc, argv); break; // Controllo Spesometro + case 4 : rt = tf0500(argc, argv); break; // Invio IVA default: rt = tf0100(argc, argv); break; // Spesometro } return rt; diff --git a/src/tf/tf0.h b/src/tf/tf0.h index 5aeb56428..cd2563bf0 100644 --- a/src/tf/tf0.h +++ b/src/tf/tf0.h @@ -3,6 +3,7 @@ int tf0100(int argc, char* argv[]); int tf0200(int argc, char* argv[]); +int tf0300(int argc, char* argv[]); int tf0400(int argc, char* argv[]); int tf0500(int argc, char* argv[]); diff --git a/src/tf/tf0100.cpp b/src/tf/tf0100.cpp index 285c60e0d..aaa3fa423 100644 --- a/src/tf/tf0100.cpp +++ b/src/tf/tf0100.cpp @@ -1325,17 +1325,21 @@ bool TTrFa_app::tff2200(TToken_string* strarr, int nriga) TRectype thisMov = cache().get(LF_MOV, strarr->get(_numero)); tff2200f.set("PL_ESIGIVA", is_split_payment(thisMov) ? "S" : is_IVA_diff(thisMov) || is_IVAxCassa(thisMov) ? "D" : "I"); tff2200f.set("PL_NATURA", strarr->get(_natura)); + + /* Tutto disabilitato! ************************************* + real det(strarr->get(_detraibile)); // Nella conversione la vigola viene persa e 100,00 diventa 10.000 quindi divido det /= CENTO; if(det > ZERO) { - tff2200f.set("PL_DETRAIBILE", det); + tff2200f.set("PL_DETRAIBILE", CENTO - det); } else if(false) // Sempre disabilitato! { tff2200f.set("PL_DEDUCIBILE", "SI"); } + */ tff2200f.set("PL_GESTIONE", "D"); return tff2200f.insert(); diff --git a/src/tf/tf0100a.uml b/src/tf/tf0100a.uml index 90fefb454..a1900826e 100644 --- a/src/tf/tf0100a.uml +++ b/src/tf/tf0100a.uml @@ -342,7 +342,6 @@ BEGIN ITEM "N5|N5 - IVA in regime del margine" ITEM "N6|N6 - IVA in reverse charge" ITEM "N7|N7 - IVA assolta in altro stato U3" - FIELD S12 END STRING A_ALIQUOTA 4 @@ -375,26 +374,22 @@ END NUMBER A_IMPONIBILE 12 2 BEGIN PROMPT 42 8 "Imponibile" - FIELD IMPORTO CHEKTYPE REQUIRED END NUMBER A_IMPOSTA 12 2 BEGIN PROMPT 42 9 "Imposta " - FIELD IMPOSTA END BOOLEAN A_REVERSE BEGIN PROMPT 1 9 "Reverse charge" - FIELD REVERSE END BOOLEAN A_AUTOFATT BEGIN PROMPT 25 9 "Autofattura" - FIELD AUTOFATT FLAGS "D" END diff --git a/src/tf/tf0100b.h b/src/tf/tf0100b.h index 6b37a176c..bdc0cc67a 100644 --- a/src/tf/tf0100b.h +++ b/src/tf/tf0100b.h @@ -44,7 +44,6 @@ enum filter_fatt disabled // Disabilitate }; -#define MOV_CUSTOM 10000000 #define SHEET_GAP 101 #define DTE_PROVV "DTE0000001" #define DTR_PROVV "DTR0000001" @@ -172,7 +171,6 @@ class TTrFa_cursors : TObject TRectype _next(return_code& code, TString& tipocf, TString& codcf, TString& ocfpi); // Si sposta avanti di un elemento TRectype _nextCust(return_code& code, TString& tipocf, TString& codcf, TString& ocfpi); // Si sposta avanti di un elemento tra quelli custom - bool checkRecord(TISAM_recordset* rec); public: //TTrFa_cursors(); ~TTrFa_cursors(); diff --git a/src/tf/tf0102.cpp b/src/tf/tf0102.cpp index 6ad1fa471..0ab381edf 100644 --- a/src/tf/tf0102.cpp +++ b/src/tf/tf0102.cpp @@ -152,29 +152,6 @@ TRectype TTrFa_cursors::_nextCust(return_code& code, TString& tipocf, TString& c return c_trasfatt->cursor()->curr(); } -/* Utilizzo questa funzione per filtrare al meglio i record, tutti i casi che devo omettere verranno rilevati e ritorneranno false - * Nota bene: viene sfruttato un puntatore di TISA_Recordset per non creare nuovi oggetti e velocizzare la chiamata - * a questo punto il programma non ha ancora creato un record di $trasfatt con i dati che mi interessano - */ -bool TTrFa_cursors::checkRecord(TISAM_recordset* rec) -{ - - TString keyClifo; keyClifo << rec->get("23.TIPO").as_string() << "|" << rec->get("23.CODCF").as_string(); - // Salto le schede carburanti - if(cache().get(LF_CLIFO, keyClifo, "ALLEG") == "C") - return false; - - // Clienti - if(rec->get("23.TIPO").as_string() == "C") - { - // Tolgo tutti i movimenti di sola IVA e in reverse charge o di tipo 3 (Acquisto di beni e servizi di soggetti non residenti) - TCausale caus(rec->get("23.CODCAUS").as_string()); - if(caus.soloiva() && (caus.reverse_charge() || caus.regime_speciale() == 3)) - return false; - } - - return true; -} int TTrFa_cursors::updateFilters(const char tipocf, const long codcf, TDate dal, TDate al, int cod) { diff --git a/src/tf/tfmenu.men b/src/tf/tfmenu.men index ac5ba6d8b..097c9136a 100644 --- a/src/tf/tfmenu.men +++ b/src/tf/tfmenu.men @@ -3,7 +3,9 @@ Caption = "Trasferimento Fatture" Picture = Module = tf Flags = "" -Item_01 = "Trasferimento Fatture", "tf0 -0", "" -Item_02 = "Controllo Spesometro", "tf0 -3", "" -Item_03 = "Liquidazione IVA Periodica", "tf0 -1", "" -Item_04 = "Invio Liquidazione IVA Periodica", "tf0 -4", "" +Item_01 = "Trasferimento Fatture", "tf0 -0", ""+ +//Item_02 = "Cambio stato Spesometro", "tf0 -2", "" +//Item_03 = "Controllo Spesometro", "tf0 -3", "" +Item_04 = "Report Spesometro", "ba8 -4 totiva_aliq.rep", "" +Item_05 = "Liquidazione IVA Periodica", "tf0 -1", "" +Item_06 = "Invio Liquidazione IVA Periodica", "tf0 -4", "" diff --git a/src/tf/tfutility.cpp b/src/tf/tfutility.cpp index eb2d6cd06..e288c607a 100644 --- a/src/tf/tfutility.cpp +++ b/src/tf/tfutility.cpp @@ -75,4 +75,33 @@ TString getRFSO(TString codrfso) { TString key; key << codrfso[0] << "|" << codrfso.mid(1); return cache().get(LF_ANAG, key, "RAGSOC"); +} + +/* Utilizzo questa funzione per filtrare al meglio i record, tutti i casi che devo omettere verranno rilevati e ritorneranno false + * Nota bene: viene sfruttato un puntatore di TISA_Recordset per non creare nuovi oggetti e velocizzare la chiamata + * a questo punto il programma non ha ancora creato un record di $trasfatt con i dati che mi interessano + */ +bool checkRecord(TISAM_recordset* rec) +{ + + TString keyClifo; keyClifo << rec->get("23.TIPO").as_string() << "|" << rec->get("23.CODCF").as_string(); + TRectype rclifo = cache().get(LF_CLIFO, keyClifo); + // Salto le schede carburanti + if(rclifo.get("ALLEG") == "C") + return false; + + // Clienti + if(rec->get("23.TIPO").as_string() == "C") + { + // Tolgo tutti i movimenti di sola IVA e in reverse charge o di tipo 3 (Acquisto di beni e servizi di soggetti non residenti) + TCausale caus(rec->get("23.CODCAUS").as_string()); + if(caus.soloiva() && (caus.reverse_charge() || caus.regime_speciale() == 3)) + return false; + } else if(rclifo.get("PAIV")[0] != '0' && rclifo.get("PAIV")[0] != '1' && rclifo.get("COFI")[0] >= '8') + // Salto tutti i fornitori con cod cf che inizia per 8 o 9 e con p.iva non valida + { + return false; + } + + return true; } \ No newline at end of file diff --git a/src/tf/tfutility.h b/src/tf/tfutility.h index 8ba112d49..a1a348477 100644 --- a/src/tf/tfutility.h +++ b/src/tf/tfutility.h @@ -1,7 +1,9 @@ #include #include -// Funzioni comode per pił programmi +// Funzioni/Costanti comode per pił programmi + +#define MOV_CUSTOM 10000000 // Ritorna il record custom TRectype getTrasFatt(TString reg, TString codiva); @@ -18,4 +20,6 @@ TString findDetraib(TString tipodet); // Ritorna "X" se ha il reverse charge TString revCharge(TString numreg); // Ritorna la ragione sociale del RFSO -TString getRFSO(TString codrfso); \ No newline at end of file +TString getRFSO(TString codrfso); +// Controllo che sia un record che mi interessa +bool checkRecord(TISAM_recordset* rec); \ No newline at end of file