Patch level : 12.0

Files correlati     : ba7600

Commento:
Aggiunto un nuovo punto di menù per la rimozione dei vincoli di default sulle date della fatturazione elettronica.

Andando in Manutenzione -> Procedure Speciali -> Rimozione date predefinite dalla fatturazione:
viene avviato un programmino che avvisa l'utente sulla procedura che sta per venire lanciata.
Successivamente all'utente viene richiesto l'inserimento della password di sistema per la fatturazione (quella solita).
Se la password inserita corrisponde allora viene lanciato sul db uno script sql che modifica i valori di default delle date a NULL e viene rimosso il vincolo
This commit is contained in:
smen 2023-02-13 16:53:41 +01:00
parent 0e4b346f12
commit 742d76e3c8
9 changed files with 280 additions and 4 deletions

View File

@ -64,7 +64,7 @@
</Midl> </Midl>
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\src\include;..\src\xvaga;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>..\src\include;..\src\xvaga;..\src\fp;%(AdditionalIncludeDirectories) </AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>false</MinimalRebuild> <MinimalRebuild>false</MinimalRebuild>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
@ -189,17 +189,20 @@
</ClCompile> </ClCompile>
<ClCompile Include="..\src\ba\ba7400.cpp" /> <ClCompile Include="..\src\ba\ba7400.cpp" />
<ClCompile Include="..\src\ba\ba7500.cpp" /> <ClCompile Include="..\src\ba\ba7500.cpp" />
<ClCompile Include="..\src\ba\ba7600.cpp" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<MskCompiler Include="..\src\ba\ba7100a.uml" /> <MskCompiler Include="..\src\ba\ba7100a.uml" />
<MskCompiler Include="..\src\ba\ba7200a.uml" /> <MskCompiler Include="..\src\ba\ba7200a.uml" />
<MskCompiler Include="..\src\ba\ba7300a.uml" /> <MskCompiler Include="..\src\ba\ba7300a.uml" />
<MskCompiler Include="..\src\ba\ba7500a.uml" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="..\src\ba\ba7.h" /> <ClInclude Include="..\src\ba\ba7.h" />
<ClInclude Include="..\src\ba\ba7100a.h" /> <ClInclude Include="..\src\ba\ba7100a.h" />
<ClInclude Include="..\src\ba\ba7200a.h" /> <ClInclude Include="..\src\ba\ba7200a.h" />
<ClInclude Include="..\src\ba\ba7300.h" /> <ClInclude Include="..\src\ba\ba7300.h" />
<ClInclude Include="..\src\ba\ba7600.h" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<CustomBuildStep Include="..\lib\AgaLib.lib"> <CustomBuildStep Include="..\lib\AgaLib.lib">
@ -220,6 +223,26 @@
<ProjectReference Include="AgaLib.vcxproj"> <ProjectReference Include="AgaLib.vcxproj">
<Project>{2d38a763-3d74-4338-9362-b891784ec90e}</Project> <Project>{2d38a763-3d74-4338-9362-b891784ec90e}</Project>
</ProjectReference> </ProjectReference>
<ProjectReference Include="cglib.vcxproj">
<Project>{7b80f974-ce2e-4bd9-855a-44ff139ff288}</Project>
</ProjectReference>
<ProjectReference Include="fplib.vcxproj">
<Project>{c575788b-0be4-4f68-b9c9-3c204ec04e07}</Project>
</ProjectReference>
<ProjectReference Include="lilib.vcxproj">
<Project>{b61f0ad4-0cce-4371-8e92-85a26caf1a7c}</Project>
</ProjectReference>
<ProjectReference Include="vedoc.vcxproj">
<Project>{a1ce9743-a597-4f92-b55a-345a366c9e55}</Project>
</ProjectReference>
<ProjectReference Include="vedocext.vcxproj">
<Project>{0042619a-6b7c-4d3d-9cd9-9bdd8d200c15}</Project>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<SqlCompiler Include="..\src\fp\sql\remConst.sql">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
</SqlCompiler>
</ItemGroup> </ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets"> <ImportGroup Label="ExtensionTargets">

View File

@ -13,6 +13,9 @@
<UniqueIdentifier>{5b346b0c-3597-4d0d-ae89-405a583536c8}</UniqueIdentifier> <UniqueIdentifier>{5b346b0c-3597-4d0d-ae89-405a583536c8}</UniqueIdentifier>
<Extensions>h</Extensions> <Extensions>h</Extensions>
</Filter> </Filter>
<Filter Include="Sql">
<UniqueIdentifier>{257a2e63-88d8-4fdc-a260-c03be89db4ad}</UniqueIdentifier>
</Filter>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="..\src\ba\ba7.cpp"> <ClCompile Include="..\src\ba\ba7.cpp">
@ -33,6 +36,9 @@
<ClCompile Include="..\src\ba\ba7500.cpp"> <ClCompile Include="..\src\ba\ba7500.cpp">
<Filter>Sources</Filter> <Filter>Sources</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\src\ba\ba7600.cpp">
<Filter>Sources</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<MskCompiler Include="..\src\ba\ba7100a.uml"> <MskCompiler Include="..\src\ba\ba7100a.uml">
@ -44,6 +50,9 @@
<MskCompiler Include="..\src\ba\ba7300a.uml"> <MskCompiler Include="..\src\ba\ba7300a.uml">
<Filter>Masks</Filter> <Filter>Masks</Filter>
</MskCompiler> </MskCompiler>
<MskCompiler Include="..\src\ba\ba7500a.uml">
<Filter>Masks</Filter>
</MskCompiler>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="..\src\ba\ba7.h"> <ClInclude Include="..\src\ba\ba7.h">
@ -58,8 +67,16 @@
<ClInclude Include="..\src\ba\ba7300.h"> <ClInclude Include="..\src\ba\ba7300.h">
<Filter>Headers</Filter> <Filter>Headers</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\src\ba\ba7600.h">
<Filter>Headers</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ResourceCompile Include="campo.rc" /> <ResourceCompile Include="campo.rc" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<SqlCompiler Include="..\src\fp\sql\remConst.sql">
<Filter>Sql</Filter>
</SqlCompiler>
</ItemGroup>
</Project> </Project>

View File

@ -51,6 +51,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "patchdef", "patchdef.vcxpro
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cglib", "cglib.vcxproj", "{7B80F974-CE2E-4BD9-855A-44FF139FF288}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cglib", "cglib.vcxproj", "{7B80F974-CE2E-4BD9-855A-44FF139FF288}"
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fplib", "fplib.vcxproj", "{C575788B-0BE4-4F68-B9C9-3C204EC04E07}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32 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.ActiveCfg = Release|Win32
{7B80F974-CE2E-4BD9-855A-44FF139FF288}.Release|Win32.Build.0 = Release|Win32 {7B80F974-CE2E-4BD9-855A-44FF139FF288}.Release|Win32.Build.0 = Release|Win32
{7B80F974-CE2E-4BD9-855A-44FF139FF288}.Release|x64.ActiveCfg = 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 EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE

View File

@ -10,7 +10,8 @@ int main(int argc, char** argv)
case 1: ba7200(argc, argv); break; //copia area dati in lire case 1: ba7200(argc, argv); break; //copia area dati in lire
case 2: ba7300(argc, argv); break; //invio intero file via postino case 2: ba7300(argc, argv); break; //invio intero file via postino
case 3: ba7400(argc, argv); break; //convertitore ini per Galileo 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 default: ba7100(argc, argv); break; //postino
} }

View File

@ -6,5 +6,6 @@ int ba7200(int argc, char* argv[]);
int ba7300(int argc, char* argv[]); int ba7300(int argc, char* argv[]);
int ba7400(int argc, char* argv[]); int ba7400(int argc, char* argv[]);
int ba7500(int argc, char* argv[]); int ba7500(int argc, char* argv[]);
int ba7600(int argc, char* argv[]);
#endif #endif

146
src/ba/ba7600.cpp Normal file
View File

@ -0,0 +1,146 @@
#include <applicat.h>
#include <automask.h>
#include <isam.h>
#include <recarray.h>
#include <progind.h>
#include <array.h>
#include <urldefid.h>
#include "ba7600.h"
#include "fplib.h"
// File
#include <fstream>
#include <string>
#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 << "<html><body>"
<< "<p align=justify>Questo programma serve a ripristinare i valori di alcuni campi delle tabelle PAF<br />"
<< "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.<br /><br />"
<< "Questo programma serve a rimuovere quei valori predefiniti ed esclude quelle date dal XML generato in fase di fatturazione.<br /><br />"
<< "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.</p><br />"
<< "</body></html>";
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;
}

1
src/ba/ba7600.h Normal file
View File

@ -0,0 +1 @@
#define F_PASSWORD 100

View File

@ -136,8 +136,9 @@ Item_03 = "Aggiornamento profili documento personalizzati", "bacnv 23", ""
Item_04 = "Conversione documenti CONAI", "bacnv 24", "" Item_04 = "Conversione documenti CONAI", "bacnv 24", ""
Item_05 = "Gestione attivazione licenze", "ba2 -7", "" Item_05 = "Gestione attivazione licenze", "ba2 -7", ""
Item_06 = "Aggiornamento Nazioni ISO 2017" "ba7 -4", "" Item_06 = "Aggiornamento Nazioni ISO 2017" "ba7 -4", ""
Item_07 = "Aggiornamento righe documento", "bacnv 27", "" Item_07 = "Rimozione date predefinite dalla fatturazione" "ba7 -5", ""
Item_08 = "Aggiornamento movimenti reverse charge", "bacnv 28", "" Item_08 = "Aggiornamento righe documento", "bacnv 27", ""
Item_09 = "Aggiornamento movimenti reverse charge", "bacnv 28", ""
[MENU_PREFERITI] [MENU_PREFERITI]
Caption = "Preferiti" Caption = "Preferiti"

78
src/fp/sql/remConst.sql Normal file
View File

@ -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;