From ce338f0c1c5e8c6b0b1f117251280320f3e69547 Mon Sep 17 00:00:00 2001 From: mtollari Date: Wed, 30 Aug 2017 12:32:30 +0000 Subject: [PATCH] =?UTF-8?q?Patch=20level=20=20=20=20=20=20=20=20=20:=2012.?= =?UTF-8?q?0=20438=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-=20Aggiunto=20programma?= =?UTF-8?q?=20cambio=20stato=20spesometro=20-=20Abilitato=20a=20men=C3=B9?= =?UTF-8?q?=20-=20Tolto=20attrbuto=20REQUIRED=20alla=20colonna=20imponibil?= =?UTF-8?q?e=20per=20movimenti=20di=20sola=20IVA?= 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@24056 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- src/tf/tf0.cpp | 2 +- src/tf/tf0100a.uml | 1 - src/tf/tf0300.cpp | 132 +++++++++++++++++++++++++++++++++++++++++++++ src/tf/tf0300a.h | 7 +++ src/tf/tf0300a.uml | 90 +++++++++++++++++++++++++++++++ src/tf/tf0400a.uml | 2 +- src/tf/tfmenu.men | 2 +- 7 files changed, 232 insertions(+), 4 deletions(-) create mode 100644 src/tf/tf0300.cpp create mode 100644 src/tf/tf0300a.h create mode 100644 src/tf/tf0300a.uml diff --git a/src/tf/tf0.cpp b/src/tf/tf0.cpp index 4a8da5955..f43e4d64e 100644 --- a/src/tf/tf0.cpp +++ b/src/tf/tf0.cpp @@ -9,7 +9,7 @@ int main(int argc, char** argv) switch (r) { case 1 : rt = tf0200(argc, argv); break; // Comunicazione Liquidazioni Periodiche IVA - //case 2 : rt = tf0300(argc, argv); break; // Cambio stato invio + 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 diff --git a/src/tf/tf0100a.uml b/src/tf/tf0100a.uml index a1900826e..12a05b22d 100644 --- a/src/tf/tf0100a.uml +++ b/src/tf/tf0100a.uml @@ -374,7 +374,6 @@ END NUMBER A_IMPONIBILE 12 2 BEGIN PROMPT 42 8 "Imponibile" - CHEKTYPE REQUIRED END NUMBER A_IMPOSTA 12 2 diff --git a/src/tf/tf0300.cpp b/src/tf/tf0300.cpp new file mode 100644 index 000000000..cbf0a49bd --- /dev/null +++ b/src/tf/tf0300.cpp @@ -0,0 +1,132 @@ +#include "tf0300a.h" + +#include +#include +#include +#include // cache() +#include + +class TChangeStato_msk : public TAutomask +{ + virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly) { return true; } +public: + TChangeStato_msk() : TAutomask("tf0300a"){} +}; + +// Definizione per chiamare metodo send dalla maschera +class TChangeStato_app : public TSkeleton_application +{ + bool change(TChangeStato_msk& ms); +public: + virtual void main_loop(); +}; + +bool TChangeStato_app::change(TChangeStato_msk& msk) +{ + TString statoini = msk.get(A_STATOINI), statofin = msk.get(A_STATOFIN); + if(statoini == statofin) + { + return error_box("Errore! Stati Iniziale e Finale identici!"); + } + bool ok; + + // Cambio tutti i movimenti di quella data partendo prima da quelli in prima nota + TString query = "USE MOV\n"; + query << "SELECT (REG!=\"\")&&BETWEEN(DATAREG,#DADATAREG,#ADATAREG)&&(TIPO=\"" << msk.get(F_TIPOCF) << "\")"; + if(msk.get(F_CODCF) != "") + query << "&&STR((CODCF=#CODCF))"; + if(statoini == "X") + { + query << "&&((TFINVIO=\"\")||(TFINVIO=\"X\"))"; + } + else + query << "&&(TFINVIO=\"" << statoini << "\")"; + + TISAM_recordset rset(query); + TDate dadatareg = msk.get_date(F_DATAINI); + if(!dadatareg.ok()) + { + dadatareg = TDate(01, 01, 2017); + msk.set(F_DATAINI, dadatareg); + } + + TDate adatareg = msk.get_date(F_DATAFIN); + if(!adatareg.ok()) + { + adatareg = TDate(TODAY); + msk.set(F_DATAFIN, adatareg); + } + + // Setto le variabili + rset.set_var("#DADATAREG", dadatareg); + rset.set_var("#ADATAREG", adatareg); + if(msk.get(F_CODCF) != "") + rset.set_var("#CODCF", msk.get(F_CODCF)); + + int nrec = rset.items(); + + TLocalisamfile mov(LF_MOV), trasfatt(LF_TRASFATT); + + TProgress_monitor p1(nrec, "Cambio stato prima nota"); + for(bool ok = rset.move_first(); rset.items() > 0 && ok; ok = rset.move_next()) + { + if(!p1.add_status()) + return false; + + TRectype& rmov = rset.cursor()->curr(); + rmov.put("TFINVIO", statofin); + ok = rmov.rewrite(mov) == NOERR; + } + + query.cut(0) << "USE TRASFATT\n"; + query << "SELECT BETWEEN(DATAREG,#DADATAREG,#ADATAREG)&&(TIPO=\"" << msk.get(F_TIPOCF) << "\")"; + if(msk.get(F_CODCF) != "") + query << "&&STR((CODCF=#CODCF))"; + + if(statoini == "X") + { + query << "&&((TFINVIO=\"\")||(TFINVIO=\"X\"))"; + } + else + query << "&&((TFINVIO=\"" << statoini << "\")"; + + // Riciclo vah + rset = TISAM_recordset(query); + // Setto le variabili + rset.set_var("#DADATAREG", dadatareg); + rset.set_var("#ADATAREG", adatareg); + if(msk.get(F_CODCF) != "") + rset.set_var("#CODCF", msk.get(F_CODCF)); + + nrec = rset.items(); + TProgress_monitor p2(nrec, "Cambio stato record custom"); + + for(bool ok = rset.move_first(); rset.items() > 0 && ok; ok = rset.move_next()) + { + if(!p2.add_status()) + return false; + + TRectype& rtrasfatt = rset.cursor()->curr(); + rtrasfatt.put("TFINVIO", statofin); + ok = rtrasfatt.rewrite(trasfatt) == NOERR; + } + + return ok; +} + +void TChangeStato_app::main_loop() +{ + TChangeStato_msk msk; + while(msk.run() == K_ENTER) + { + change(msk); + } +} + + +int tf0300(int argc, char* argv[]) +{ + TChangeStato_app app; + app.run(argc, argv, TR("Invio dati liquidazione IVA")); + return 0; +} \ No newline at end of file diff --git a/src/tf/tf0300a.h b/src/tf/tf0300a.h new file mode 100644 index 000000000..bc67c9661 --- /dev/null +++ b/src/tf/tf0300a.h @@ -0,0 +1,7 @@ +#define F_DATAINI 101 +#define F_DATAFIN 102 +#define F_TIPOCF 103 +#define F_CODCF 104 +#define F_RAGSOC 105 +#define A_STATOINI 106 +#define A_STATOFIN 107 diff --git a/src/tf/tf0300a.uml b/src/tf/tf0300a.uml new file mode 100644 index 000000000..65b54ef4c --- /dev/null +++ b/src/tf/tf0300a.uml @@ -0,0 +1,90 @@ +#include "tf0300a.h" + +TOOLBAR "topbar" 0 0 0 2 + +#include +ENDPAGE + +PAGE "Cambio stato" 0 2 0 0 + +DATE F_DATAINI +BEGIN + PROMPT 1 0 "Data iniziale:" + VALIDATE DATE_CMP_FUNC <= F_DATAFIN + WARNING "La data iniziale non puņ essere maggiore della data finale" + CHECKTYPE REQUIRED +END + +DATE F_DATAFIN +BEGIN + PROMPT 40 0 "Data Finale: " + VALIDATE DATE_CMP_FUNC >= F_DATAINI + WARNING "La data finale non puņ essere minore della data iniziale" + CHECKTYPE REQUIRED + FLAGS "A" +END + +LIST A_STATOINI 1 15 +BEGIN + PROMPT 1 1 "Da stato " + ITEM "X|Inviare" + ITEM "E|Errore" + ITEM "N|Non Inviare" + ITEM "F|Forzato" + ITEM "I|Inviato" +END + +LIST A_STATOFIN 1 15 +BEGIN + PROMPT 40 1 "A stato " + ITEM "X|Inviare" + ITEM "E|Errore" + ITEM "N|Non Inviare" + ITEM "F|Forzato" + ITEM "I|Inviato" +END + + +RADIOBUTTON F_TIPOCF 15 +BEGIN + PROMPT 1 2 "Tipo C/F" + ITEM "C|Cliente" + ITEM "F|Fornitore" +END + +NUMBER F_CODCF 6 +BEGIN + PROMPT 20 3 "Codice:" + USE LF_CLIFO + INPUT TIPOCF F_TIPOCF SELECT + INPUT CODCF F_CODCF + DISPLAY "Codice" CODCF + DISPLAY "Ragione Sociale@50" RAGSOC + DISPLAY "Occasionale@C" OCCAS + DISPLAY "Codice Fiscale@16" COFI + DISPLAY "Partita IVA@15" PAIV + OUTPUT F_CODCF CODCF + OUTPUT F_RAGSOC RAGSOC + CHEKTYPE NORMAL + GROUP 1 + FLAGS "" +END + +STRING F_RAGSOC 50 49 +BEGIN + PROMPT 20 4 "R.Soc: " + USE LF_CLIFO KEY 2 + INPUT TIPOCF F_TIPOCF SELECT + INPUT RAGSOC F_RAGSOC + DISPLAY "Ragione Sociale@50" RAGSOC + DISPLAY "Codice" CODCF + DISPLAY "Codice Fiscale@16" COFI + DISPLAY "Partita IVA@15" PAIV + COPY OUTPUT F_CODCF + ADD RUN CG0 -1 + GROUP 1 + FLAGS "" +END + +ENDPAGE +ENDMASK \ No newline at end of file diff --git a/src/tf/tf0400a.uml b/src/tf/tf0400a.uml index 2e92c0a15..e95f647b7 100644 --- a/src/tf/tf0400a.uml +++ b/src/tf/tf0400a.uml @@ -34,7 +34,7 @@ PAGE "Controlli Spesometro" 0 2 0 0 LIST F_TIPOCONTROLLO 35 35 BEGIN PROMPT 1 0 "Controllo da effettuare" - ITEM "0|Movimenti esclusi" + ITEM "0|Movimenti ignorati" ITEM "1|Differenze Prima Nota/Spesometro" ITEM "2|Mostra tutti i movimenti modificati" FLAGS "" diff --git a/src/tf/tfmenu.men b/src/tf/tfmenu.men index 097c9136a..589ee45ab 100644 --- a/src/tf/tfmenu.men +++ b/src/tf/tfmenu.men @@ -4,7 +4,7 @@ Picture = Module = tf Flags = "" Item_01 = "Trasferimento Fatture", "tf0 -0", ""+ -//Item_02 = "Cambio stato Spesometro", "tf0 -2", "" +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", ""