+
+#include "ba7500a.h"
+
+class TDropConstrain_mask : public TAutomask
+{
+protected:
+ virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
+ //void fill();
+public:
+ // @cmember Costruttore (crea la maschera leggendo la descrizione dal file .msk)
+ TDropConstrain_mask(const char* filename, int num = 0) : TAutomask(filename, num) {};
+ // @cmember Costruttore (crea una maschera vuota con i parametri dati)
+ TDropConstrain_mask(const char* title, int pages, int cols, int rows, int xpos = -1, int ypos = -1) : TAutomask(title, pages, cols, rows, xpos, ypos) {};
+ ~TDropConstrain_mask() {};
+ //TString saveRec();
+};
+
+
+
+bool TDropConstrain_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
+{
+ o.dlg();
+ switch (o.dlg())
+ {
+ default:
+ break;
+ }
+ return true;
+}
+
+class TDropConstrain_app : public TSkeleton_application
+{
+protected:
+ bool _annullata;
+public:
+ virtual void main_loop();
+ bool open_psw_mask();
+
+};
+
+bool TDropConstrain_app::open_psw_mask()
+{
+ bool ok;
+ TDropConstrain_mask m(TR("Scelta studio"), 1, 60, 3);
+ m.add_button_tool(DLG_OK, "Conferma", TOOL_OK);
+ m.add_button_tool(DLG_QUIT, "Esci", TOOL_QUIT);
+
+ m.add_string(F_PASSWORD, 0, "Password", 1, 1, 25, "*", 25);
+ _annullata = false;
+
+ //DEVO CAPIRE COME FARE FUNZIONARE LA ON FIELD EVENT
+ if (m.run() == K_ENTER)
+ {
+ TString psw = m.get(F_PASSWORD);
+ if (psw == "sirioFATT99")
+ ok = true;
+ else
+ ok = false;
+ }
+ else
+ {
+ if (m.on_key(DLG_CANCEL))
+ _annullata = true;
+ }
+
+ return ok;
+}
+
+// Main
+void TDropConstrain_app::main_loop()
+{
+
+ bool ok;
+ TString html;
+ html << ""
+ << "Questo programma serve a ripristinare i valori di alcuni campi delle tabelle PAF
"
+ << "A seguito di alcuni allineamenti fatti sulle tabelle d'appoggio per la fatturazione elettronica"
+ << " sono stati introdotti dei valori predefiniti per alcuni campi data che precedentemente venivano ignorati.
"
+ << "Questo programma serve a rimuovere quei valori predefiniti ed esclude quelle date dal XML generato in fase di fatturazione.
"
+ << "Rispondendo \"OK\" vi verrā richiesto di inserire la password di SUPERADMIN.\nNel caso non foste in possesso di tale password si prega di rivolgersi all'assistenza.
"
+ << "";
+
+ message_box(html);
+ ok = open_psw_mask();
+ if (_annullata)
+ warning_box(TR("Operazione annullata!"));
+ else
+ {
+ if (ok)
+ {
+ TFilename script("sql/gest/remConst.sql");
+ ifstream f(script);
+ if (f.is_open())
+ {
+ string query;
+ while (!f.eof())
+ {
+ static string r;
+ getline(f, r);
+ if (r[0] == '-' && r[1] == '-')
+ continue;
+ query += r + '\n';
+ }
+ if (!fp_db().sq_set_exec(query, false))
+ {
+ ok &= false;
+ error_box("Impossibile eseguire/salvare la query:\n%s\n%s", query.c_str(), fp_db().sq_get_text_error(false));
+ }
+ if (ok)
+ ok &= fp_db().sq_commit();
+
+ query.erase();
+ if (ok)
+ message_box(TR("Ripristino dei vecchi vincoli avvenuto correttamente!"));
+ else
+ error_box(TR("OPS! Qualcosa č andato storto. Si prega di contattare l'assistenza"));
+ }
+ }
+ else
+ {
+ error_box(TR("Attenzione: la password inserita non č corretta.\nQualora non foste a conoscenza della password contattare l'assistenza"));
+ }
+ }
+}
+
+
+int ba7600(int argc, char* argv[])
+{
+ TDropConstrain_app app;
+ app.run(argc, argv, "Ripristino vincoli e valori predefiniti PAF");
+ return 0;
+}
\ No newline at end of file
diff --git a/src/ba/ba7600.h b/src/ba/ba7600.h
new file mode 100644
index 000000000..f9193b5d3
--- /dev/null
+++ b/src/ba/ba7600.h
@@ -0,0 +1 @@
+#define F_PASSWORD 100
diff --git a/src/ba/bamenu.men b/src/ba/bamenu.men
index 040efc133..b55f209cf 100755
--- a/src/ba/bamenu.men
+++ b/src/ba/bamenu.men
@@ -136,8 +136,9 @@ Item_03 = "Aggiornamento profili documento personalizzati", "bacnv 23", ""
Item_04 = "Conversione documenti CONAI", "bacnv 24", ""
Item_05 = "Gestione attivazione licenze", "ba2 -7", ""
Item_06 = "Aggiornamento Nazioni ISO 2017" "ba7 -4", ""
-Item_07 = "Aggiornamento righe documento", "bacnv 27", ""
-Item_08 = "Aggiornamento movimenti reverse charge", "bacnv 28", ""
+Item_07 = "Rimozione date predefinite dalla fatturazione" "ba7 -5", ""
+Item_08 = "Aggiornamento righe documento", "bacnv 27", ""
+Item_09 = "Aggiornamento movimenti reverse charge", "bacnv 28", ""
[MENU_PREFERITI]
Caption = "Preferiti"
diff --git a/src/fp/sql/remConst.sql b/src/fp/sql/remConst.sql
new file mode 100644
index 000000000..b374f40f0
--- /dev/null
+++ b/src/fp/sql/remConst.sql
@@ -0,0 +1,78 @@
+-- PAA --
+
+ALTER TABLE PAA0200F DROP CONSTRAINT IF EXISTS PAA0200_NEWDF_DTISCR
+ALTER TABLE PAA0700F DROP CONSTRAINT IF EXISTS PAA0700_NEWDF_DATA
+ALTER TABLE PAA1000F DROP CONSTRAINT IF EXISTS PAA1000_NEWDF_DATADOC
+ALTER TABLE PAA1100F DROP CONSTRAINT IF EXISTS PAA1100_NEWDF_DATADOCU
+ALTER TABLE PAA1200F DROP CONSTRAINT IF EXISTS PAA1200_NEWDF_DATADOCO
+ALTER TABLE PAA1300F DROP CONSTRAINT IF EXISTS PAA1300_NEWDF_DATADOC
+ALTER TABLE PAA1400F DROP CONSTRAINT IF EXISTS PAA1400_NEWDF_DATADOC
+ALTER TABLE PAA1600F DROP CONSTRAINT IF EXISTS PAA1600_NEWDF_DATADDT
+ALTER TABLE PAA1800F DROP CONSTRAINT IF EXISTS PAA1800_NEWDF_DTINIZ
+ALTER TABLE PAA1800F DROP CONSTRAINT IF EXISTS PAA1800_NEWDF_DTFIN
+ALTER TABLE PAA2100F DROP CONSTRAINT IF EXISTS PAA2100_NEWDF_RIFDATA
+ALTER TABLE PAA2300F DROP CONSTRAINT IF EXISTS PAA2300_NEWDF_DATA
+ALTER TABLE PAA2500F DROP CONSTRAINT IF EXISTS PAA2500_NEWDF_DATARIF
+ALTER TABLE PAA2500F DROP CONSTRAINT IF EXISTS PAA2500_NEWDF_DATASCAD
+ALTER TABLE PAA2500F DROP CONSTRAINT IF EXISTS PAA2500_NEWDF_DLTIM
+ALTER TABLE PAA2500F DROP CONSTRAINT IF EXISTS PAA2500_NEWDF_DATADEC
+ALTER TABLE PAA2800F DROP CONSTRAINT IF EXISTS PAA2800_NEWDF_DATAUNI
+ALTER TABLE PAA2900F DROP CONSTRAINT IF EXISTS PAA2900_NEWDF_DATAFATT
+
+ALTER TABLE PAA0200F ALTER COLUMN P2_DTISCRIZEALBO DATE NULL;
+ALTER TABLE PAA0700F ALTER COLUMN P7_DATA DATE NULL;
+ALTER TABLE PAA1000F ALTER COLUMN P0_DATADOC DATE NULL;
+ALTER TABLE PAA1100F ALTER COLUMN PA_DATADOCU DATE NULL;
+ALTER TABLE PAA1200F ALTER COLUMN PB_DATADOCO DATE NULL;
+ALTER TABLE PAA1300F ALTER COLUMN PC_DATADOC DATE NULL;
+ALTER TABLE PAA1400F ALTER COLUMN PD_DATADOC DATE NULL;
+ALTER TABLE PAA1600F ALTER COLUMN PF_DATADDT DATE NULL;
+ALTER TABLE PAA1800F ALTER COLUMN PI_DTINIZIOPER DATE NULL;
+ALTER TABLE PAA1800F ALTER COLUMN PI_DTFINEPER DATE NULL;
+ALTER TABLE PAA2100F ALTER COLUMN PK_RIFDATA DATE NULL;
+ALTER TABLE PAA2300F ALTER COLUMN PM_DATA DATE NULL;
+ALTER TABLE PAA2500F ALTER COLUMN PO_DATARIFTERM DATE NULL;
+ALTER TABLE PAA2500F ALTER COLUMN PO_DATASCADENZA DATE NULL;
+ALTER TABLE PAA2500F ALTER COLUMN PO_DTLIMANTIC DATE NULL;
+ALTER TABLE PAA2500F ALTER COLUMN PO_DATADECORRP DATE NULL;
+ALTER TABLE PAA2800F ALTER COLUMN PR_DATAUNIZIO DATE NULL;
+ALTER TABLE PAA2900F ALTER COLUMN PS_DATAFATTPRINC DATE NOT NULL;
+
+-- PAF --
+ALTER TABLE PAF0200F DROP CONSTRAINT IF EXISTS PAF0200_NEWDF_DTISCR
+ALTER TABLE PAF0700F DROP CONSTRAINT IF EXISTS PAF0700_NEWDF_DATA
+ALTER TABLE PAF1000F DROP CONSTRAINT IF EXISTS PAF1000_NEWDF_DATADOC
+ALTER TABLE PAF1100F DROP CONSTRAINT IF EXISTS PAF1100_NEWDF_DATADOCU
+ALTER TABLE PAF1200F DROP CONSTRAINT IF EXISTS PAF1200_NEWDF_DATADOCO
+ALTER TABLE PAF1300F DROP CONSTRAINT IF EXISTS PAF1300_NEWDF_DATADOC
+ALTER TABLE PAF1400F DROP CONSTRAINT IF EXISTS PAF1400_NEWDF_DATADOC
+ALTER TABLE PAF1600F DROP CONSTRAINT IF EXISTS PAF1600_NEWDF_DATADDT
+ALTER TABLE PAF1800F DROP CONSTRAINT IF EXISTS PAF1800_NEWDF_DTINIZ
+ALTER TABLE PAF1800F DROP CONSTRAINT IF EXISTS PAF1800_NEWDF_DTFIN
+ALTER TABLE PAF2100F DROP CONSTRAINT IF EXISTS PAF2100_NEWDF_RIFDATA
+ALTER TABLE PAF2300F DROP CONSTRAINT IF EXISTS PAF2300_NEWDF_DATA
+ALTER TABLE PAF2500F DROP CONSTRAINT IF EXISTS PAF2500_NEWDF_DATARIF
+ALTER TABLE PAF2500F DROP CONSTRAINT IF EXISTS PAF2500_NEWDF_DATASCAD
+ALTER TABLE PAF2500F DROP CONSTRAINT IF EXISTS PAF2500_NEWDF_DLTIM
+ALTER TABLE PAF2500F DROP CONSTRAINT IF EXISTS PAF2500_NEWDF_DATADEC
+ALTER TABLE PAF2800F DROP CONSTRAINT IF EXISTS PAF2800_NEWDF_DATAUNI
+ALTER TABLE PAF2900F DROP CONSTRAINT IF EXISTS PAF2900_NEWDF_DATAFATT
+
+ALTER TABLE PAF0200F ALTER COLUMN P2_DTISCRIZEALBO DATE NULL;
+ALTER TABLE PAF0700F ALTER COLUMN P7_DATA DATE NULL;
+ALTER TABLE PAF1000F ALTER COLUMN P0_DATADOC DATE NULL;
+ALTER TABLE PAF1100F ALTER COLUMN PA_DATADOCU DATE NULL;
+ALTER TABLE PAF1200F ALTER COLUMN PB_DATADOCO DATE NULL;
+ALTER TABLE PAF1300F ALTER COLUMN PC_DATADOC DATE NULL;
+ALTER TABLE PAF1400F ALTER COLUMN PD_DATADOC DATE NULL;
+ALTER TABLE PAF1600F ALTER COLUMN PF_DATADDT DATE NULL;
+ALTER TABLE PAF1800F ALTER COLUMN PI_DTINIZIOPER DATE NULL;
+ALTER TABLE PAF1800F ALTER COLUMN PI_DTFINEPER DATE NULL;
+ALTER TABLE PAF2100F ALTER COLUMN PK_RIFDATA DATE NULL;
+ALTER TABLE PAF2300F ALTER COLUMN PM_DATA DATE NULL;
+ALTER TABLE PAF2500F ALTER COLUMN PO_DATARIFTERM DATE NULL;
+ALTER TABLE PAF2500F ALTER COLUMN PO_DATASCADENZA DATE NULL;
+ALTER TABLE PAF2500F ALTER COLUMN PO_DTLIMANTIC DATE NULL;
+ALTER TABLE PAF2500F ALTER COLUMN PO_DATADECORRP DATE NULL;
+ALTER TABLE PAF2800F ALTER COLUMN PR_DATAUNIZIO DATE NULL;
+ALTER TABLE PAF2900F ALTER COLUMN PS_DATAFATTPRINC DATE NOT NULL;