diff --git a/build/Ba7.vcxproj b/build/Ba7.vcxproj index 2eb6c98e4..7ec1fab6a 100644 --- a/build/Ba7.vcxproj +++ b/build/Ba7.vcxproj @@ -64,7 +64,7 @@ Disabled - ..\src\include;..\src\xvaga;%(AdditionalIncludeDirectories) + ..\src\include;..\src\xvaga;..\src\fp;%(AdditionalIncludeDirectories) _DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions) false MultiThreadedDebug @@ -189,17 +189,20 @@ + + + @@ -220,6 +223,26 @@ {2d38a763-3d74-4338-9362-b891784ec90e} + + {7b80f974-ce2e-4bd9-855a-44ff139ff288} + + + {c575788b-0be4-4f68-b9c9-3c204ec04e07} + + + {b61f0ad4-0cce-4371-8e92-85a26caf1a7c} + + + {a1ce9743-a597-4f92-b55a-345a366c9e55} + + + {0042619a-6b7c-4d3d-9cd9-9bdd8d200c15} + + + + + true + diff --git a/build/Ba7.vcxproj.filters b/build/Ba7.vcxproj.filters index b4ab3c100..549ab7524 100644 --- a/build/Ba7.vcxproj.filters +++ b/build/Ba7.vcxproj.filters @@ -13,6 +13,9 @@ {5b346b0c-3597-4d0d-ae89-405a583536c8} h + + {257a2e63-88d8-4fdc-a260-c03be89db4ad} + @@ -33,6 +36,9 @@ Sources + + Sources + @@ -44,6 +50,9 @@ Masks + + Masks + @@ -58,8 +67,16 @@ Headers + + Headers + + + + Sql + + \ No newline at end of file diff --git a/build/ba.sln b/build/ba.sln index c5433913a..302b21aa8 100644 --- a/build/ba.sln +++ b/build/ba.sln @@ -51,6 +51,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "patchdef", "patchdef.vcxpro EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cglib", "cglib.vcxproj", "{7B80F974-CE2E-4BD9-855A-44FF139FF288}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fplib", "fplib.vcxproj", "{C575788B-0BE4-4F68-B9C9-3C204EC04E07}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -205,6 +207,12 @@ Global {7B80F974-CE2E-4BD9-855A-44FF139FF288}.Release|Win32.ActiveCfg = Release|Win32 {7B80F974-CE2E-4BD9-855A-44FF139FF288}.Release|Win32.Build.0 = Release|Win32 {7B80F974-CE2E-4BD9-855A-44FF139FF288}.Release|x64.ActiveCfg = Release|Win32 + {C575788B-0BE4-4F68-B9C9-3C204EC04E07}.Debug|Win32.ActiveCfg = Debug|Win32 + {C575788B-0BE4-4F68-B9C9-3C204EC04E07}.Debug|Win32.Build.0 = Debug|Win32 + {C575788B-0BE4-4F68-B9C9-3C204EC04E07}.Debug|x64.ActiveCfg = Debug|Win32 + {C575788B-0BE4-4F68-B9C9-3C204EC04E07}.Release|Win32.ActiveCfg = Release|Win32 + {C575788B-0BE4-4F68-B9C9-3C204EC04E07}.Release|Win32.Build.0 = Release|Win32 + {C575788B-0BE4-4F68-B9C9-3C204EC04E07}.Release|x64.ActiveCfg = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/ba/ba7.cpp b/src/ba/ba7.cpp index f20a94702..8662c2442 100755 --- a/src/ba/ba7.cpp +++ b/src/ba/ba7.cpp @@ -10,7 +10,8 @@ int main(int argc, char** argv) case 1: ba7200(argc, argv); break; //copia area dati in lire case 2: ba7300(argc, argv); break; //invio intero file via postino case 3: ba7400(argc, argv); break; //convertitore ini per Galileo - case 4: ba7500(argc, argv); break; // Aggiornamento tabella stati + case 4: ba7500(argc, argv); break; //Aggiornamento tabella stati + case 5: ba7600(argc, argv); break; //Aggiornamento valori predefiniti PAF default: ba7100(argc, argv); break; //postino } diff --git a/src/ba/ba7.h b/src/ba/ba7.h index 06b3e3295..fb28400fd 100755 --- a/src/ba/ba7.h +++ b/src/ba/ba7.h @@ -6,5 +6,6 @@ int ba7200(int argc, char* argv[]); int ba7300(int argc, char* argv[]); int ba7400(int argc, char* argv[]); int ba7500(int argc, char* argv[]); +int ba7600(int argc, char* argv[]); #endif diff --git a/src/ba/ba7600.cpp b/src/ba/ba7600.cpp new file mode 100644 index 000000000..4f59a7312 --- /dev/null +++ b/src/ba/ba7600.cpp @@ -0,0 +1,146 @@ +#include +#include +#include +#include +#include +#include +#include +#include "ba7600.h" +#include "fplib.h" + + +// File +#include +#include + +#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;