Patch level : 12.0 662
Files correlati : fp Commento : - Aggiornamento progetto fp per nuovo programma - Aggiunto programma per inserimento di pec e cod sdi di tutti i clienti/fornitori in una schermata - Sistemata posizione incremento progress_monitor, sistemato errore celle non colorate togliendo force_update() di troppo - Come aveva fatto notare alessandro, tolto stringa_eng() e utilizzato string() - Aggiunto in about.cpp libreria SQLAPI, cambiata scrittura versione c++ con TString. Da quando quest'ultima è stata aggiornata per VS 2017 in release i programmi si chiudono alla seconda apertura di info, questo non si presenta in debug, vediamo se si risolve qualcosa.
This commit is contained in:
		
							parent
							
								
									2c38a7d14f
								
							
						
					
					
						commit
						db84f03156
					
				
							
								
								
									
										12
									
								
								build/fp.sln
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								build/fp.sln
									
									
									
									
									
								
							@ -3,6 +3,8 @@ Microsoft Visual Studio Solution File, Format Version 12.00
 | 
				
			|||||||
# Visual Studio 15
 | 
					# Visual Studio 15
 | 
				
			||||||
VisualStudioVersion = 15.0.27130.2027
 | 
					VisualStudioVersion = 15.0.27130.2027
 | 
				
			||||||
MinimumVisualStudioVersion = 10.0.40219.1
 | 
					MinimumVisualStudioVersion = 10.0.40219.1
 | 
				
			||||||
 | 
					Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fplib", "fplib.vcxproj", "{C575788B-0BE4-4F68-B9C9-3C204EC04E07}"
 | 
				
			||||||
 | 
					EndProject
 | 
				
			||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fp0", "fp0.vcxproj", "{9C91BACF-9A70-4973-B8CC-FA3D2AF9867C}"
 | 
					Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fp0", "fp0.vcxproj", "{9C91BACF-9A70-4973-B8CC-FA3D2AF9867C}"
 | 
				
			||||||
	ProjectSection(ProjectDependencies) = postProject
 | 
						ProjectSection(ProjectDependencies) = postProject
 | 
				
			||||||
		{C575788B-0BE4-4F68-B9C9-3C204EC04E07} = {C575788B-0BE4-4F68-B9C9-3C204EC04E07}
 | 
							{C575788B-0BE4-4F68-B9C9-3C204EC04E07} = {C575788B-0BE4-4F68-B9C9-3C204EC04E07}
 | 
				
			||||||
@ -10,14 +12,16 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fp0", "fp0.vcxproj", "{9C91
 | 
				
			|||||||
EndProject
 | 
					EndProject
 | 
				
			||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AgaLib", "AgaLib.vcxproj", "{2D38A763-3D74-4338-9362-B891784EC90E}"
 | 
					Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AgaLib", "AgaLib.vcxproj", "{2D38A763-3D74-4338-9362-B891784EC90E}"
 | 
				
			||||||
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
 | 
				
			||||||
		Release|Win32 = Release|Win32
 | 
							Release|Win32 = Release|Win32
 | 
				
			||||||
	EndGlobalSection
 | 
						EndGlobalSection
 | 
				
			||||||
	GlobalSection(ProjectConfigurationPlatforms) = postSolution
 | 
						GlobalSection(ProjectConfigurationPlatforms) = postSolution
 | 
				
			||||||
 | 
							{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}.Release|Win32.ActiveCfg = Release|Win32
 | 
				
			||||||
 | 
							{C575788B-0BE4-4F68-B9C9-3C204EC04E07}.Release|Win32.Build.0 = Release|Win32
 | 
				
			||||||
		{9C91BACF-9A70-4973-B8CC-FA3D2AF9867C}.Debug|Win32.ActiveCfg = Debug|Win32
 | 
							{9C91BACF-9A70-4973-B8CC-FA3D2AF9867C}.Debug|Win32.ActiveCfg = Debug|Win32
 | 
				
			||||||
		{9C91BACF-9A70-4973-B8CC-FA3D2AF9867C}.Debug|Win32.Build.0 = Debug|Win32
 | 
							{9C91BACF-9A70-4973-B8CC-FA3D2AF9867C}.Debug|Win32.Build.0 = Debug|Win32
 | 
				
			||||||
		{9C91BACF-9A70-4973-B8CC-FA3D2AF9867C}.Release|Win32.ActiveCfg = Release|Win32
 | 
							{9C91BACF-9A70-4973-B8CC-FA3D2AF9867C}.Release|Win32.ActiveCfg = Release|Win32
 | 
				
			||||||
@ -26,10 +30,6 @@ Global
 | 
				
			|||||||
		{2D38A763-3D74-4338-9362-B891784EC90E}.Debug|Win32.Build.0 = Debug|Win32
 | 
							{2D38A763-3D74-4338-9362-B891784EC90E}.Debug|Win32.Build.0 = Debug|Win32
 | 
				
			||||||
		{2D38A763-3D74-4338-9362-B891784EC90E}.Release|Win32.ActiveCfg = Release|Win32
 | 
							{2D38A763-3D74-4338-9362-B891784EC90E}.Release|Win32.ActiveCfg = Release|Win32
 | 
				
			||||||
		{2D38A763-3D74-4338-9362-B891784EC90E}.Release|Win32.Build.0 = Release|Win32
 | 
							{2D38A763-3D74-4338-9362-B891784EC90E}.Release|Win32.Build.0 = 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}.Release|Win32.ActiveCfg = Release|Win32
 | 
					 | 
				
			||||||
		{C575788B-0BE4-4F68-B9C9-3C204EC04E07}.Release|Win32.Build.0 = Release|Win32
 | 
					 | 
				
			||||||
	EndGlobalSection
 | 
						EndGlobalSection
 | 
				
			||||||
	GlobalSection(SolutionProperties) = preSolution
 | 
						GlobalSection(SolutionProperties) = preSolution
 | 
				
			||||||
		HideSolutionNode = FALSE
 | 
							HideSolutionNode = FALSE
 | 
				
			||||||
 | 
				
			|||||||
@ -190,7 +190,7 @@
 | 
				
			|||||||
    <ClCompile Include="..\src\fp\fp0.cpp" />
 | 
					    <ClCompile Include="..\src\fp\fp0.cpp" />
 | 
				
			||||||
    <ClCompile Include="..\src\fp\fp0100.cpp" />
 | 
					    <ClCompile Include="..\src\fp\fp0100.cpp" />
 | 
				
			||||||
    <ClCompile Include="..\src\fp\fp0200.cpp">
 | 
					    <ClCompile Include="..\src\fp\fp0200.cpp">
 | 
				
			||||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
 | 
					      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
 | 
				
			||||||
    </ClCompile>
 | 
					    </ClCompile>
 | 
				
			||||||
    <ClCompile Include="..\src\fp\fp0300.cpp" />
 | 
					    <ClCompile Include="..\src\fp\fp0300.cpp" />
 | 
				
			||||||
    <ClCompile Include="..\src\tf\tfutility.cpp" />
 | 
					    <ClCompile Include="..\src\tf\tfutility.cpp" />
 | 
				
			||||||
@ -199,15 +199,12 @@
 | 
				
			|||||||
    <ClInclude Include="..\src\fp\fp0.h" />
 | 
					    <ClInclude Include="..\src\fp\fp0.h" />
 | 
				
			||||||
    <ClInclude Include="..\src\fp\fp0100a.h" />
 | 
					    <ClInclude Include="..\src\fp\fp0100a.h" />
 | 
				
			||||||
    <ClInclude Include="..\src\fp\fp0200a.h" />
 | 
					    <ClInclude Include="..\src\fp\fp0200a.h" />
 | 
				
			||||||
    <ClInclude Include="..\src\fp\fp0200b.h">
 | 
					 | 
				
			||||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="..\src\fp\fp0300a.h" />
 | 
					    <ClInclude Include="..\src\fp\fp0300a.h" />
 | 
				
			||||||
    <ClInclude Include="..\src\tf\tfutility.h" />
 | 
					    <ClInclude Include="..\src\tf\tfutility.h" />
 | 
				
			||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
  <ItemGroup>
 | 
					  <ItemGroup>
 | 
				
			||||||
    <MskCompiler Include="..\src\fp\fp0200a.uml">
 | 
					    <MskCompiler Include="..\src\fp\fp0200a.uml">
 | 
				
			||||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
 | 
					      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
 | 
				
			||||||
    </MskCompiler>
 | 
					    </MskCompiler>
 | 
				
			||||||
    <MskCompiler Include="..\src\fp\fp0300a.uml" />
 | 
					    <MskCompiler Include="..\src\fp\fp0300a.uml" />
 | 
				
			||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
@ -237,6 +234,9 @@
 | 
				
			|||||||
  <ItemGroup>
 | 
					  <ItemGroup>
 | 
				
			||||||
    <Library Include="..\lib\fplib.lib" />
 | 
					    <Library Include="..\lib\fplib.lib" />
 | 
				
			||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <MenCompiler Include="..\src\fp\fpmenu.men" />
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
 | 
					  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
 | 
				
			||||||
  <ImportGroup Label="ExtensionTargets">
 | 
					  <ImportGroup Label="ExtensionTargets">
 | 
				
			||||||
    <Import Project="CampoRules.targets" />
 | 
					    <Import Project="CampoRules.targets" />
 | 
				
			||||||
 | 
				
			|||||||
@ -19,6 +19,9 @@
 | 
				
			|||||||
    <Filter Include="Libraries">
 | 
					    <Filter Include="Libraries">
 | 
				
			||||||
      <UniqueIdentifier>{d7227be8-6583-4473-895f-595f8a48a8cb}</UniqueIdentifier>
 | 
					      <UniqueIdentifier>{d7227be8-6583-4473-895f-595f8a48a8cb}</UniqueIdentifier>
 | 
				
			||||||
    </Filter>
 | 
					    </Filter>
 | 
				
			||||||
 | 
					    <Filter Include="Menu">
 | 
				
			||||||
 | 
					      <UniqueIdentifier>{022385bd-474b-4d1f-a01c-6d799bae0328}</UniqueIdentifier>
 | 
				
			||||||
 | 
					    </Filter>
 | 
				
			||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
  <ItemGroup>
 | 
					  <ItemGroup>
 | 
				
			||||||
    <ClCompile Include="..\src\fp\fp0.cpp">
 | 
					    <ClCompile Include="..\src\fp\fp0.cpp">
 | 
				
			||||||
@ -42,7 +45,9 @@
 | 
				
			|||||||
    <ClCompile Include="..\src\fp\fp0300.cpp">
 | 
					    <ClCompile Include="..\src\fp\fp0300.cpp">
 | 
				
			||||||
      <Filter>Sources</Filter>
 | 
					      <Filter>Sources</Filter>
 | 
				
			||||||
    </ClCompile>
 | 
					    </ClCompile>
 | 
				
			||||||
    <ClCompile Include="..\src\fp\fp0200.cpp" />
 | 
					    <ClCompile Include="..\src\fp\fp0200.cpp">
 | 
				
			||||||
 | 
					      <Filter>Sources</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
  <ItemGroup>
 | 
					  <ItemGroup>
 | 
				
			||||||
    <ClInclude Include="..\src\fp\fp0.h">
 | 
					    <ClInclude Include="..\src\fp\fp0.h">
 | 
				
			||||||
@ -54,9 +59,6 @@
 | 
				
			|||||||
    <ClInclude Include="..\src\fp\fp0200a.h">
 | 
					    <ClInclude Include="..\src\fp\fp0200a.h">
 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					      <Filter>Headers</Filter>
 | 
				
			||||||
    </ClInclude>
 | 
					    </ClInclude>
 | 
				
			||||||
    <ClInclude Include="..\src\fp\fp0200b.h">
 | 
					 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="..\src\fp\fp0100a.h">
 | 
					    <ClInclude Include="..\src\fp\fp0100a.h">
 | 
				
			||||||
      <Filter>Headers</Filter>
 | 
					      <Filter>Headers</Filter>
 | 
				
			||||||
    </ClInclude>
 | 
					    </ClInclude>
 | 
				
			||||||
@ -91,4 +93,9 @@
 | 
				
			|||||||
      <Filter>Libraries</Filter>
 | 
					      <Filter>Libraries</Filter>
 | 
				
			||||||
    </Library>
 | 
					    </Library>
 | 
				
			||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <MenCompiler Include="..\src\fp\fpmenu.men">
 | 
				
			||||||
 | 
					      <Filter>Menu</Filter>
 | 
				
			||||||
 | 
					    </MenCompiler>
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
</Project>
 | 
					</Project>
 | 
				
			||||||
@ -9,7 +9,7 @@ int main(int argc, char** argv)
 | 
				
			|||||||
  switch (r)
 | 
					  switch (r)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
	case 2: rt = fp0300(argc, argv); break;   // Gestione fatture attive (PAA, Ex Fattura PA)
 | 
						case 2: rt = fp0300(argc, argv); break;   // Gestione fatture attive (PAA, Ex Fattura PA)
 | 
				
			||||||
	//case 1: rt = fp0200(argc, argv); break;	  // Gestione fatture passive (PAF)
 | 
						case 1: rt = fp0200(argc, argv); break;	  // Inserimento massivo PEC e Cod Sdi clifo
 | 
				
			||||||
	default: rt = fp0100(argc, argv); break;	// Configurazione
 | 
						default: rt = fp0100(argc, argv); break;	// Configurazione
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  return rt;
 | 
					  return rt;
 | 
				
			||||||
 | 
				
			|||||||
@ -1,6 +1,242 @@
 | 
				
			|||||||
 | 
					#include <applicat.h>
 | 
				
			||||||
 | 
					#include <automask.h>
 | 
				
			||||||
 | 
					#include <config.h>
 | 
				
			||||||
 | 
					#include "fplib01.h"
 | 
				
			||||||
 | 
					#include <progind.h>
 | 
				
			||||||
 | 
					#include <cfven.h>
 | 
				
			||||||
 | 
					#include <doc.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "../ve/velib05.h"
 | 
				
			||||||
 | 
					#include "../cg/cglib03.h"
 | 
				
			||||||
 | 
					#include "../fe/felib.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "fp0.h"
 | 
					#include "fp0.h"
 | 
				
			||||||
 | 
					#include "fp0200a.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/////////////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					// TCC_mask
 | 
				
			||||||
 | 
					/////////////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class TCC_mask : public TAutomask
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					protected:
 | 
				
			||||||
 | 
						bool on_field_event(TOperable_field& o, TField_event e, long jolly) override;
 | 
				
			||||||
 | 
						void fill();
 | 
				
			||||||
 | 
						void init();
 | 
				
			||||||
 | 
						void save_all();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
						TCC_mask() : TAutomask("fp0200a") {}
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool TCC_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						switch (o.dlg())
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
						case DLG_RECALC:
 | 
				
			||||||
 | 
							if (e == fe_button)
 | 
				
			||||||
 | 
								fill();
 | 
				
			||||||
 | 
							break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						case DLG_SAVEREC:
 | 
				
			||||||
 | 
							if (e == fe_button)
 | 
				
			||||||
 | 
								save_all();
 | 
				
			||||||
 | 
							break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						case DLG_USER:
 | 
				
			||||||
 | 
							if (e == fe_button && jolly > 0)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								TSheet_field&  clifo = sfield(F_RIGHE);
 | 
				
			||||||
 | 
								TToken_string& row = clifo.row(clifo.selected());
 | 
				
			||||||
 | 
								TRectype       rec(LF_CLIFO);
 | 
				
			||||||
 | 
								rec.put(CLI_TIPOCF, get(F_TIPOCF));
 | 
				
			||||||
 | 
								rec.put(CLI_CODCF, row.get(0));
 | 
				
			||||||
 | 
								if (rec.edit())
 | 
				
			||||||
 | 
									fill();
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						case F_TIPOCF:
 | 
				
			||||||
 | 
							if(e == fe_modify)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								set(F_DACODCF, "");
 | 
				
			||||||
 | 
								set(F_ACODCF, "");
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						case S_CODSDI:
 | 
				
			||||||
 | 
							if(e == fe_modify)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								if (o.mask().get_bool(S_ISPA))
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									if (o.mask().get(S_CODSDI).len() != 6)
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										warning_box("La lunghezza di un codice SDI di una P.A. deve essere di 6 caratteri!");
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								else
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									if (o.mask().get(S_CODSDI).len() != 7)
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										warning_box("La lunghezza di un codice SDI di un privato deve essere di 7 caratteri!");
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						default: break;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void TCC_mask::fill()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						TSheet_field&  righe = sfield(F_RIGHE);
 | 
				
			||||||
 | 
						TString_array& sht = righe.rows_array();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						TString query;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						query << "USE CLIFO \n" <<
 | 
				
			||||||
 | 
							"JOIN CFVEN TO CLIFO INTO TIPOCF==TIPOCF CODCF==CODCF \n"<<
 | 
				
			||||||
 | 
							"FROM TIPOCF=#DATIPOCF ";
 | 
				
			||||||
 | 
						if (get(F_DACODCF).full())
 | 
				
			||||||
 | 
							query << "CODCF=#DACODCF";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						query << "\nTO TIPOCF=#ATIPOCF ";
 | 
				
			||||||
 | 
						if (get(F_DACODCF).full())
 | 
				
			||||||
 | 
							query << "CODCF=#ACODCF";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						TISAM_recordset rec(query);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Valorizzo le variabili
 | 
				
			||||||
 | 
						rec.set_var("#DATIPOCF", get(F_TIPOCF));
 | 
				
			||||||
 | 
						rec.set_var("#ATIPOCF", get(F_TIPOCF));
 | 
				
			||||||
 | 
						if (get(F_DACODCF).full())
 | 
				
			||||||
 | 
							rec.set_var("#DACODCF", get(F_DACODCF));
 | 
				
			||||||
 | 
						if (get(F_DACODCF).full())
 | 
				
			||||||
 | 
							rec.set_var("#ACODCF", get(F_ACODCF));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						TProgress_monitor pi(rec.items(), "Caricamento lista C/F");
 | 
				
			||||||
 | 
						for (bool okc = rec.move_first(); okc; okc = rec.move_next())
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							if (!pi.add_status())
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							const TRectype& doc = rec.cursor()->curr();
 | 
				
			||||||
 | 
							TToken_string& row = righe.row(-1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							row.add(rec.get(CLI_CODCF).as_string());
 | 
				
			||||||
 | 
							row.add(rec.get(CLI_RAGSOC).as_string());
 | 
				
			||||||
 | 
							row.add(rec.get(CLI_ALLEG).as_int() == 7 ? "X" : "");
 | 
				
			||||||
 | 
							row.add(rec.get(CLI_PEC).as_string());
 | 
				
			||||||
 | 
							row.add(rec.get("17." CFV_PADESTIN).as_string());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						righe.force_update();
 | 
				
			||||||
 | 
						righe.show();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void TCC_mask::save_all()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						TString_array& sht = sfield(F_RIGHE).rows_array();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						TLocalisamfile clifo(LF_CLIFO), cfven(LF_CFVEN);
 | 
				
			||||||
 | 
						int ok = NOERR;
 | 
				
			||||||
 | 
						if (!sht.empty())
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							TProgress_monitor pi(sht.items(), "Salvataggio dati");
 | 
				
			||||||
 | 
							FOR_EACH_ARRAY_ROW(sht, r, riga)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								if (!pi.add_status())
 | 
				
			||||||
 | 
									break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								clifo.zero();
 | 
				
			||||||
 | 
								clifo.put(CLI_TIPOCF, get(F_TIPOCF));
 | 
				
			||||||
 | 
								clifo.put(CLI_CODCF, riga->get(xvtil_cid2index(S_CODCF)));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								const int clifo_err = clifo.read();
 | 
				
			||||||
 | 
								if (clifo_err == NOERR)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									clifo.put(CLI_PEC, riga->get(xvtil_cid2index(S_PEC)));
 | 
				
			||||||
 | 
									if (clifo.rewrite() != NOERR)
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										TString msg = "Fallito salvataggio record in CLIFO";
 | 
				
			||||||
 | 
										msg << clifo.get(CLI_TIPOCF) << " " << clifo.get(CLI_CODCF) << "\nSalvataggio abortito";
 | 
				
			||||||
 | 
										error_box(msg);
 | 
				
			||||||
 | 
										break;
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								else
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									TString msg = "Impossibile trovare in CLIFO ";
 | 
				
			||||||
 | 
									msg << clifo.get(CLI_TIPOCF) << " " << clifo.get(CLI_CODCF) << " errore " << clifo_err <<".\nSalvataggio abortito";
 | 
				
			||||||
 | 
									error_box(msg);
 | 
				
			||||||
 | 
									break;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								cfven.zero();
 | 
				
			||||||
 | 
								cfven.put(CFV_TIPOCF, get(F_TIPOCF));
 | 
				
			||||||
 | 
								cfven.put(CFV_CODCF, riga->get(xvtil_cid2index(S_CODCF)));
 | 
				
			||||||
 | 
								const int err = cfven.read();
 | 
				
			||||||
 | 
								if (err == NOERR || err == _iskeynotfound)
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									cfven.put(CFV_PADESTIN, riga->get(xvtil_cid2index(S_CODSDI)));
 | 
				
			||||||
 | 
									if (cfven.rewrite_write() != NOERR)
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										TString msg = "Fallito salvataggio record in CFVEN ";
 | 
				
			||||||
 | 
										msg << cfven.get(CFV_TIPOCF) << " " << cfven.get(CFV_CODCF) << "\nSalvataggio abortito";
 | 
				
			||||||
 | 
										error_box(msg);
 | 
				
			||||||
 | 
										break;
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								else
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									TString msg = "Impossibile trovare in CFVEN ";
 | 
				
			||||||
 | 
									msg << clifo.get(CLI_TIPOCF) << " " << clifo.get(CLI_CODCF) << " errore " << clifo_err << ".\nSalvataggio abortito";
 | 
				
			||||||
 | 
									error_box(msg);
 | 
				
			||||||
 | 
									break;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/////////////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					// TDoc2Paf
 | 
				
			||||||
 | 
					/////////////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class TCC_app : public TSkeleton_application
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
						bool create() override;
 | 
				
			||||||
 | 
						virtual void main_loop();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						TCC_app() {}
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool TCC_app::create()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						open_files(LF_CLIFO, LF_CFVEN, 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						TRectype cfven(LF_CFVEN);
 | 
				
			||||||
 | 
						if (cfven.length(CFV_PADESTIN) != 7) // Nuova lunghezza per privati
 | 
				
			||||||
 | 
							return error_box(TR("Database non convertito per fatturazione F.P."));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return TSkeleton_application::create();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void TCC_app::main_loop()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						int      ndocs = 0;
 | 
				
			||||||
 | 
						TCC_mask mask;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						while (mask.run() == K_ENTER) {}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int fp0200(int argc, char* argv[])
 | 
					int fp0200(int argc, char* argv[])
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
						TCC_app app;
 | 
				
			||||||
 | 
						app.run(argc, argv, TR("Inserimento massivo codici F.P."));
 | 
				
			||||||
  return 0;
 | 
					  return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					#define S_CODCF			101
 | 
				
			||||||
 | 
					#define S_RAGSOC		102
 | 
				
			||||||
 | 
					#define S_ISPA			103
 | 
				
			||||||
 | 
					#define S_PEC				104
 | 
				
			||||||
 | 
					#define S_CODSDI		105
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define F_TIPOCF		201
 | 
				
			||||||
 | 
					#define F_DACODCF		202
 | 
				
			||||||
 | 
					#define F_ACODCF		203
 | 
				
			||||||
 | 
					#define F_RIGHE			204
 | 
				
			||||||
@ -7,197 +7,65 @@ BEGIN
 | 
				
			|||||||
  PICTURE TOOL_CONVERT 
 | 
					  PICTURE TOOL_CONVERT 
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
BUTTON DLG_ARCHIVE 2 2
 | 
					 | 
				
			||||||
BEGIN 
 | 
					 | 
				
			||||||
  PROMPT 2 1 "Controlla"
 | 
					 | 
				
			||||||
  PICTURE TOOL_SMILE
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
BUTTON DLG_SAVEREC 2 2
 | 
					BUTTON DLG_SAVEREC 2 2
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT 3 1 "Salva"
 | 
					  PROMPT 3 1 "Salva"
 | 
				
			||||||
  PICTURE TOOL_SAVEREC
 | 
					  PICTURE TOOL_SAVEREC
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
BUTTON DLG_EDIT 10 2
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT 3 1 "E~xcel"
 | 
					 | 
				
			||||||
  PICTURE TOOL_EXCEL
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
BUTTON DLG_OK 2 2
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT 1 1 "Esporta"
 | 
					 | 
				
			||||||
  PICTURE TOOL_ELABORA
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
BUTTON DLG_EMAIL 2 2
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT 1 1 "Crea XML"
 | 
					 | 
				
			||||||
  PICTURE TOOL_EMAIL 
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include <helpbar.h>
 | 
					#include <helpbar.h>
 | 
				
			||||||
ENDPAGE
 | 
					ENDPAGE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PAGE "Impostazioni" 0 2 0 0
 | 
					PAGE "Elenco clienti/fornitori" 0 2 0 0
 | 
				
			||||||
 | 
					 | 
				
			||||||
DATE F_DATAINI
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT 1 1 "Data iniziale:"
 | 
					 | 
				
			||||||
  CHECKTYPE REQUIRED
 | 
					 | 
				
			||||||
  VALIDATE DATE_CMP_FUNC <= F_DATAFIN
 | 
					 | 
				
			||||||
  WARNING "La data iniziale non può essere maggiore della data finale"
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
DATE F_DATAFIN
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT 40 1 "Data Finale:  "
 | 
					 | 
				
			||||||
  CHECKTYPE REQUIRED
 | 
					 | 
				
			||||||
  VALIDATE DATE_CMP_FUNC >= F_DATAINI
 | 
					 | 
				
			||||||
  WARNING "La data finale non può essere minore della data iniziale"
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
RADIOBUTTON F_TIPOCF 15
 | 
					RADIOBUTTON F_TIPOCF 15
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT 1 2 "Tipo C/F"
 | 
					  PROMPT 1 0 "Tipo C/F"
 | 
				
			||||||
  ITEM "C|Cliente"
 | 
					  ITEM "C|Cliente"
 | 
				
			||||||
  ITEM "F|Fornitore"
 | 
					  ITEM "F|Fornitore"
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
NUMBER F_CODCF 6
 | 
					NUMBER F_DACODCF 6
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT 18 3 "Codice:"
 | 
					  PROMPT 20 1 "Da codice"
 | 
				
			||||||
  USE LF_CLIFO
 | 
					  USE LF_CLIFO
 | 
				
			||||||
  INPUT TIPOCF F_TIPOCF SELECT
 | 
					  INPUT TIPOCF F_TIPOCF SELECT
 | 
				
			||||||
  INPUT CODCF F_CODCF
 | 
					  INPUT CODCF F_DACODCF
 | 
				
			||||||
  DISPLAY "Codice" CODCF
 | 
					  DISPLAY "Codice" CODCF
 | 
				
			||||||
  DISPLAY "Ragione Sociale@50" RAGSOC
 | 
					  DISPLAY "Ragione Sociale@50" RAGSOC
 | 
				
			||||||
  DISPLAY "Occasionale@C" OCCAS
 | 
					  DISPLAY "Occasionale@C" OCCAS
 | 
				
			||||||
  DISPLAY "Codice Fiscale@16" COFI
 | 
					  DISPLAY "Codice Fiscale@16" COFI
 | 
				
			||||||
  DISPLAY "Partita IVA@15" PAIV
 | 
					  DISPLAY "Partita IVA@15" PAIV
 | 
				
			||||||
  OUTPUT F_CODCF CODCF
 | 
					  OUTPUT F_DACODCF CODCF
 | 
				
			||||||
  OUTPUT F_RAGSOC RAGSOC
 | 
					 | 
				
			||||||
  CHEKTYPE NORMAL
 | 
					  CHEKTYPE NORMAL
 | 
				
			||||||
  GROUP 1
 | 
					 | 
				
			||||||
  FLAGS ""
 | 
					  FLAGS ""
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
STRING F_RAGSOC 50 49
 | 
					NUMBER F_ACODCF 6
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT 18 4 "R.Soc: "
 | 
					  PROMPT 40 1 "A codice"
 | 
				
			||||||
  USE LF_CLIFO KEY 2
 | 
					  USE LF_CLIFO
 | 
				
			||||||
  INPUT TIPOCF F_TIPOCF SELECT
 | 
					  INPUT TIPOCF F_TIPOCF SELECT
 | 
				
			||||||
  INPUT RAGSOC F_RAGSOC
 | 
					  INPUT CODCF F_ACODCF
 | 
				
			||||||
  DISPLAY "Ragione Sociale@50" RAGSOC
 | 
					 | 
				
			||||||
  DISPLAY "Codice" CODCF
 | 
					  DISPLAY "Codice" CODCF
 | 
				
			||||||
 | 
					  DISPLAY "Ragione Sociale@50" RAGSOC
 | 
				
			||||||
 | 
					  DISPLAY "Occasionale@C" OCCAS
 | 
				
			||||||
  DISPLAY "Codice Fiscale@16" COFI
 | 
					  DISPLAY "Codice Fiscale@16" COFI
 | 
				
			||||||
  DISPLAY "Partita IVA@15" PAIV
 | 
					  DISPLAY "Partita IVA@15" PAIV
 | 
				
			||||||
  COPY OUTPUT F_CODCF
 | 
					  OUTPUT F_ACODCF CODCF
 | 
				
			||||||
  ADD RUN CG0 -1
 | 
					  CHEKTYPE NORMAL
 | 
				
			||||||
  GROUP 1
 | 
					 | 
				
			||||||
  FLAGS ""
 | 
					  FLAGS ""
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RADIOBUTTON F_FATTSEL 25
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT 1 6 "Fatture da visualizzare"
 | 
					 | 
				
			||||||
  ITEM "0|Da inviare"
 | 
					 | 
				
			||||||
  ITEM "1|Inviate"
 | 
					 | 
				
			||||||
  ITEM "2|Mai elaborati"
 | 
					 | 
				
			||||||
  ITEM "3|Forzate"
 | 
					 | 
				
			||||||
  ITEM "4|Errate"
 | 
					 | 
				
			||||||
  ITEM "5|Disabilitate"
 | 
					 | 
				
			||||||
  ITEM "6|Tutti"
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
GROUPBOX DLG_NULL 65 5
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT 30 6 "Tipi documento selezionati" 
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
BOOLEAN B_TIPO_AUTOFATT
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT 31 7 "Autofattura"
 | 
					 | 
				
			||||||
  FLAGS ""
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
BOOLEAN B_TIPO_FATTACQ
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT 45 7 "Fatt d'Acq"
 | 
					 | 
				
			||||||
  FLAGS ""
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
BOOLEAN B_TIPO_FATTFISC
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT 60 7 "Fatt Fisc"
 | 
					 | 
				
			||||||
  FLAGS ""
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
BOOLEAN B_TIPO_FATTVEN
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT 75 7 "Fatt Ven"
 | 
					 | 
				
			||||||
  FLAGS ""
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
BOOLEAN B_TIPO_FATTSCO
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT 31 8 "Fatt Scontr"
 | 
					 | 
				
			||||||
  FLAGS ""
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
BOOLEAN B_TIPO_NOTC
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT 45 8 "Nota Cred"
 | 
					 | 
				
			||||||
  FLAGS ""
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
BOOLEAN B_TIPO_NOTD
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT 60 8 "Nota Deb"
 | 
					 | 
				
			||||||
  FLAGS ""
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
BOOLEAN B_TIPO_BOLLADOG
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT 75 8 "Bolla Dog"
 | 
					 | 
				
			||||||
  FLAGS ""
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
BOOLEAN B_TIPO_STORDOC
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT 31 9 "Storno Doc"
 | 
					 | 
				
			||||||
  FLAGS ""
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ENDPAGE
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
PAGE "Trasferimento Fatture" 0 2 0 0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
SPREADSHEET F_RIGHE
 | 
					SPREADSHEET F_RIGHE
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT 0 0 "Righe movimenti"
 | 
					  PROMPT 1 4 ""
 | 
				
			||||||
  ITEM "Data\n Reg.@8F"
 | 
					 | 
				
			||||||
  ITEM "Tipo\nDocum.@2F"
 | 
					 | 
				
			||||||
  ITEM "Tipo\nDoc. AE.@5F"
 | 
					 | 
				
			||||||
  ITEM "Numero\nDocum.@5F"
 | 
					 | 
				
			||||||
  ITEM "Data\nDocum.@10"
 | 
					 | 
				
			||||||
  ITEM "Aliquota@4"
 | 
					 | 
				
			||||||
  ITEM "Imponibile@10"
 | 
					 | 
				
			||||||
  ITEM "Imposta@10"
 | 
					 | 
				
			||||||
  ITEM "Natura\nIVA@4"
 | 
					 | 
				
			||||||
  ITEM "% Detr.@6"
 | 
					 | 
				
			||||||
  ITEM "C/F@2"
 | 
					 | 
				
			||||||
  ITEM "Codice@6"
 | 
					  ITEM "Codice@6"
 | 
				
			||||||
  ITEM "Occas.@16"
 | 
					  ITEM "Ragione Sociale"
 | 
				
			||||||
  ITEM "Ragione Sociale@35"
 | 
					  ITEM "P.A.@4"
 | 
				
			||||||
  ITEM "RF/SO@16"
 | 
					  ITEM "PEC"
 | 
				
			||||||
  ITEM "Rag. Soc. RF/SO@35"
 | 
					  ITEM "Cod. SDI@10"
 | 
				
			||||||
  ITEM "Partita IVA@11"
 | 
					 | 
				
			||||||
  ITEM "Codice Fiscale@15"
 | 
					 | 
				
			||||||
  ITEM "Rev.\nCharge@4"
 | 
					 | 
				
			||||||
  ITEM "Auto\nfatt.@3"
 | 
					 | 
				
			||||||
  ITEM "Spedita@5"
 | 
					 | 
				
			||||||
  ITEM "Inviare@5"
 | 
					 | 
				
			||||||
  ITEM "Modificata@10"
 | 
					 | 
				
			||||||
  ITEM "N.\nRegistraz.@10"
 | 
					 | 
				
			||||||
  ITEM "Codici Errori@10"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ENDPAGE
 | 
					ENDPAGE
 | 
				
			||||||
@ -206,234 +74,32 @@ ENDMASK
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
PAGE "Riga" -1 -1 69 14
 | 
					PAGE "Riga" -1 -1 69 14
 | 
				
			||||||
 | 
					
 | 
				
			||||||
BOOLEAN A_SPEDITA
 | 
					NUMBER S_CODCF 6
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT 52 10 "Gia' spedita"
 | 
					  PROMPT 1 1 "Cod. C/F"
 | 
				
			||||||
  FIELD SPEDITA
 | 
					 | 
				
			||||||
  FLAGS "D"
 | 
					 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LIST A_INVIO 1 15
 | 
					STRING S_RAGSOC 50 50
 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT 1 10 "Da inviare"
 | 
					 | 
				
			||||||
  ITEM "X|X, Da Inviare"
 | 
					 | 
				
			||||||
  ITEM "I|I, Inviato"
 | 
					 | 
				
			||||||
  ITEM "N|N, Disabilitato"
 | 
					 | 
				
			||||||
  ITEM "F|F, Forzato"
 | 
					 | 
				
			||||||
  ITEM "E|E, Errato"
 | 
					 | 
				
			||||||
  FIELD INVIO
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
BOOLEAN A_FORZATA
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT 30 10 "Forzatura manuale"
 | 
					 | 
				
			||||||
  FIELD FORZATURA
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
NUMBER A_NUMERO 10
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT 1 0 "N.Movimento"
 | 
					 | 
				
			||||||
  FLAGS "D"
 | 
					 | 
				
			||||||
  FIELD PROGR
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
DATE A_DATAREG
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT 26 0 "Data reg."
 | 
					 | 
				
			||||||
  FIELD DATAREG
 | 
					 | 
				
			||||||
  CHEKTYPE REQUIRED
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
LIST A_TIPOCF 1 10
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT 1 1 "Tipo C/F   "
 | 
					 | 
				
			||||||
  ITEM "C|Cliente"
 | 
					 | 
				
			||||||
  ITEM "F|Fornitore"
 | 
					 | 
				
			||||||
  FIELD TIPOCF
 | 
					 | 
				
			||||||
  FLAGS "D"
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
NUMBER A_CODCF 6
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT 26 1 "Cod. C/F"
 | 
					 | 
				
			||||||
  USE LF_CLIFO
 | 
					 | 
				
			||||||
  INPUT TIPOCF A_TIPOCF SELECT
 | 
					 | 
				
			||||||
  INPUT CODCF A_CODCF
 | 
					 | 
				
			||||||
  DISPLAY "Codice" CODCF
 | 
					 | 
				
			||||||
  DISPLAY "Ragione Sociale@50" RAGSOC
 | 
					 | 
				
			||||||
  DISPLAY "Occasionale@C" OCCAS
 | 
					 | 
				
			||||||
  DISPLAY "Partita IVA" PAIV
 | 
					 | 
				
			||||||
  DISPLAY "Codice fiscale@16" COFI
 | 
					 | 
				
			||||||
  OUTPUT A_CODCF	CODCF
 | 
					 | 
				
			||||||
  OUTPUT A_RAGSOC	RAGSOC
 | 
					 | 
				
			||||||
  OUTPUT A_PAIV		PAIV
 | 
					 | 
				
			||||||
  OUTPUT A_COFI		COFI
 | 
					 | 
				
			||||||
  ADD RUN cg0 -1
 | 
					 | 
				
			||||||
  FIELD CODCF
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
STRING A_OCFPI 16
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT 44 1 "Occas."
 | 
					 | 
				
			||||||
  USE LF_OCCAS
 | 
					 | 
				
			||||||
  INPUT CFPI A_OCFPI
 | 
					 | 
				
			||||||
  DISPLAY "Codice@16" CFPI
 | 
					 | 
				
			||||||
  DISPLAY "Ragione Sociale@50" RAGSOC
 | 
					 | 
				
			||||||
  DISPLAY "Partita IVA" PAIV
 | 
					 | 
				
			||||||
  DISPLAY "Codice fiscale@16" COFI
 | 
					 | 
				
			||||||
  OUTPUT A_OCFPI CFPI
 | 
					 | 
				
			||||||
  OUTPUT A_RAGSOC	RAGSOC
 | 
					 | 
				
			||||||
  OUTPUT A_PAIV		PAIV
 | 
					 | 
				
			||||||
  OUTPUT A_COFI		COFI
 | 
					 | 
				
			||||||
  CHEKTYPE NORMAL
 | 
					 | 
				
			||||||
  GROUP 3
 | 
					 | 
				
			||||||
  ADD RUN cg0 -6
 | 
					 | 
				
			||||||
  FIELD OCFPI
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
STRING A_RAGSOC 50 47
 | 
					 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  FIELD RAGSOC
 | 
					  FIELD RAGSOC
 | 
				
			||||||
  PROMPT 1 2 "Ragione Sociale"
 | 
					  PROMPT 1 2 "Ragione Sociale"
 | 
				
			||||||
  FLAGS "D"
 | 
					  FLAGS "D"
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
STRING A_RFSO 6
 | 
					BOOLEAN S_ISPA
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  FIELD RFSO
 | 
					  PROMPT 15 1 "Pubblica Amministrazione"
 | 
				
			||||||
  PROMPT 1 4 "Codice RF/SO:  "
 | 
					 | 
				
			||||||
  HELP "Codice Rappresentante Fiscale o Stabile Organizzazione"
 | 
					 | 
				
			||||||
  FLAGS "D"
 | 
					  FLAGS "D"
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
STRING A_RAGSOCRFSO 50 47
 | 
					STRING S_PEC 50
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  FIELD RAGSOCRFSO
 | 
					  PROMPT 1 3 "PEC"
 | 
				
			||||||
  PROMPT 1 5 "Rag. Soc. RF/SO"
 | 
					 | 
				
			||||||
  HELP "Ragione Sociale RF/SO"
 | 
					 | 
				
			||||||
  FLAGS "D"
 | 
					 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
STRING A_TIPODOC 2
 | 
					STRING S_CODSDI 7
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT 23 6 "Tipo doc. "
 | 
					  PROMPT 50 3 "Codice SDI"
 | 
				
			||||||
  FIELD TIPODOC
 | 
					 | 
				
			||||||
  USE %TPD
 | 
					 | 
				
			||||||
  INPUT CODTAB A_TIPODOC
 | 
					 | 
				
			||||||
  DISPLAY "Tipo " CODTAB
 | 
					 | 
				
			||||||
  DISPLAY "Descrizione @50" S0
 | 
					 | 
				
			||||||
  OUTPUT A_TIPODOC CODTAB
 | 
					 | 
				
			||||||
  WARNING "Tipo documento errato"
 | 
					 | 
				
			||||||
  CHECKTYPE REQUIRED
 | 
					 | 
				
			||||||
  FLAGS "HUD"
 | 
					 | 
				
			||||||
  ADD NONE
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
LIST A_TIPODOCAE 6
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT 23 6 "Tipo doc. "
 | 
					 | 
				
			||||||
  ITEM "TD01|TD01"
 | 
					 | 
				
			||||||
  ITEM "TD04|TD04"
 | 
					 | 
				
			||||||
  ITEM "TD05|TD05"
 | 
					 | 
				
			||||||
  ITEM "TD07|TD07"
 | 
					 | 
				
			||||||
  ITEM "TD08|TD08"
 | 
					 | 
				
			||||||
  ITEM "TD10|TD10"
 | 
					 | 
				
			||||||
  ITEM "TD11|TD11"
 | 
					 | 
				
			||||||
  ITEM "ERR0|Errore"
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
STRING A_NUMDOC 7
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT 42 6 "Num. doc. "
 | 
					 | 
				
			||||||
  FLAGS "U"
 | 
					 | 
				
			||||||
  FIELD NUMDOC
 | 
					 | 
				
			||||||
  CHEKTYPE REQUIRED
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
DATE A_DATADOC
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT 1 6 "Data doc."
 | 
					 | 
				
			||||||
  FIELD DATADOC
 | 
					 | 
				
			||||||
  CHEKTYPE REQUIRED
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
LIST A_NATURA 1 35
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT 20 7 "Natura IVA"
 | 
					 | 
				
			||||||
  ITEM "|IVA ordinaria"
 | 
					 | 
				
			||||||
  ITEM "N1|N1 - IVA esclusa ex art 15"
 | 
					 | 
				
			||||||
  ITEM "N2|N2 - IVA non soggetta"
 | 
					 | 
				
			||||||
  ITEM "N3|N3 - IVA non imponibile"
 | 
					 | 
				
			||||||
  ITEM "N4|N4 - IVA esente"
 | 
					 | 
				
			||||||
  ITEM "N5|N5 - IVA in regime del margine"
 | 
					 | 
				
			||||||
  ITEM "N6|N6 - IVA in reverse charge"
 | 
					 | 
				
			||||||
  ITEM "N7|N7 - IVA assolta in altro stato U3"
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
STRING A_ALIQUOTA 4
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
 PROMPT 1 7 "Aliquota "
 | 
					 | 
				
			||||||
  HELP "Codice aliquota"
 | 
					 | 
				
			||||||
  FIELD CODTAB
 | 
					 | 
				
			||||||
  KEY 1
 | 
					 | 
				
			||||||
  USE %IVA
 | 
					 | 
				
			||||||
  FLAGS "U"
 | 
					 | 
				
			||||||
  INPUT CODTAB A_ALIQUOTA
 | 
					 | 
				
			||||||
  DISPLAY "Codice" CODTAB
 | 
					 | 
				
			||||||
  DISPLAY "Descrizione@50" S0
 | 
					 | 
				
			||||||
  DISPLAY "Tipo" S1
 | 
					 | 
				
			||||||
  DISPLAY "%@5" R0
 | 
					 | 
				
			||||||
  DISPLAY "Vent." S6
 | 
					 | 
				
			||||||
  DISPLAY "Sospeso" B2
 | 
					 | 
				
			||||||
  OUTPUT A_ALIQUOTA CODTAB
 | 
					 | 
				
			||||||
  CHECKTYPE REQUIRED
 | 
					 | 
				
			||||||
  VALIDATE ZEROFILL_FUNC 2
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
STRING A_DETRAIB 6
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
 PROMPT 1 8 "% Detraibilita'"
 | 
					 | 
				
			||||||
  HELP "Percentuale di detraibilita'"
 | 
					 | 
				
			||||||
  FLAGS "D"
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
NUMBER A_IMPONIBILE 12 2
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT 42 8 "Imponibile"
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
NUMBER A_IMPOSTA 12 2
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
 PROMPT 42 9 "Imposta   "
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
BOOLEAN A_REVERSE
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT 1 9 "Reverse charge"
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
BOOLEAN A_AUTOFATT
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
 PROMPT 25 9 "Autofattura"
 | 
					 | 
				
			||||||
  FLAGS "D"
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
STRING A_PAIV 12
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT 1 3 "Partita IVA    "
 | 
					 | 
				
			||||||
  FLAGS "D"
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
STRING A_COFI 16
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT 33 3 "Codice Fiscale"
 | 
					 | 
				
			||||||
  FLAGS "D"
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
STRING A_CODERR 10
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT 0 13 "Codici errori"
 | 
					 | 
				
			||||||
  //FLAGS "D"
 | 
					 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ENDPAGE
 | 
					ENDPAGE
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										308
									
								
								src/fp/fp0200b.h
									
									
									
									
									
								
							
							
						
						
									
										308
									
								
								src/fp/fp0200b.h
									
									
									
									
									
								
							@ -1,308 +0,0 @@
 | 
				
			|||||||
#include <applicat.h>
 | 
					 | 
				
			||||||
#include <automask.h>
 | 
					 | 
				
			||||||
#include <config.h>
 | 
					 | 
				
			||||||
#include <execp.h>
 | 
					 | 
				
			||||||
#include <golem.h>
 | 
					 | 
				
			||||||
#include <progind.h>
 | 
					 | 
				
			||||||
#include <reputils.h>
 | 
					 | 
				
			||||||
#include <tabutil.h>
 | 
					 | 
				
			||||||
#include <utility.h>
 | 
					 | 
				
			||||||
#include <agasys.h>
 | 
					 | 
				
			||||||
#include <printer.h>
 | 
					 | 
				
			||||||
#include <dongle.h>		// dongle()
 | 
					 | 
				
			||||||
#include <odbcrset.h>	// Oracle Recset
 | 
					 | 
				
			||||||
#include <tsdb.h>
 | 
					 | 
				
			||||||
#include <xvtdb.h>
 | 
					 | 
				
			||||||
#include <map>	// std::map
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include "../ve/velib05.h"
 | 
					 | 
				
			||||||
#include "../cg/cglib03.h"
 | 
					 | 
				
			||||||
#include "../fe/felib.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include "fp0200a.h"
 | 
					 | 
				
			||||||
#include "../tf/tfutility.h"
 | 
					 | 
				
			||||||
#include <memory>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#ifdef DISABLED
 | 
					 | 
				
			||||||
/////////////////////////////////////////////////////////////////////////////////////
 | 
					 | 
				
			||||||
// Globals
 | 
					 | 
				
			||||||
/////////////////////////////////////////////////////////////////////////////////////
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
enum return_code 
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	found,			// Trovato
 | 
					 | 
				
			||||||
	foundcust,	// Trovato in trasfatt
 | 
					 | 
				
			||||||
	foundidcust,// Trovato ma con id customizzato
 | 
					 | 
				
			||||||
	nextmov,		// Trovato ma cambiato movimento
 | 
					 | 
				
			||||||
	eof,				// EOF rmoviva
 | 
					 | 
				
			||||||
	eofcust,		// EOF trasfatt
 | 
					 | 
				
			||||||
	after				// File mov su un movimento dopo rispetto a rmoviva
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Su DB: X o ''->Da inviare, F->Forzato, I->Inviato, N->Non inviare
 | 
					 | 
				
			||||||
enum filter_fatt
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	toSend,			// "", "X", "F", "E"
 | 
					 | 
				
			||||||
	sent,				// "I"
 | 
					 | 
				
			||||||
	untouched,  // "", "X"
 | 
					 | 
				
			||||||
	forced,			// "F"
 | 
					 | 
				
			||||||
	disabled,		// "N"
 | 
					 | 
				
			||||||
	err,				// "E"
 | 
					 | 
				
			||||||
	all					// Nessun controllo
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define SHEET_GAP 101
 | 
					 | 
				
			||||||
#define DTE_PROVV "DTE0000001"
 | 
					 | 
				
			||||||
#define DTR_PROVV "DTR0000001"
 | 
					 | 
				
			||||||
#define TOLLARANZA 0.05
 | 
					 | 
				
			||||||
// Flag invio
 | 
					 | 
				
			||||||
#define FLAG_INVIO		"X"
 | 
					 | 
				
			||||||
#define FLAG_ERRORE		"E"
 | 
					 | 
				
			||||||
#define FLAG_NINVIO		"N"
 | 
					 | 
				
			||||||
#define FLAG_FORZATO	"F"
 | 
					 | 
				
			||||||
#define FLAG_INVIATO  "I"
 | 
					 | 
				
			||||||
#define SPESOMETROBASE "ModuliSirio"
 | 
					 | 
				
			||||||
#define REG_ATT 1
 | 
					 | 
				
			||||||
#define REG_PAS 2
 | 
					 | 
				
			||||||
#define CARATTERI_SPECIALI "àèéìòù°"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* Così facendo basta modificare la maschera (e le dichiarazioni di conseguenza) 
 | 
					 | 
				
			||||||
 * per avere l'inserimento nello sheet corretto */
 | 
					 | 
				
			||||||
enum spesometroFields{ 
 | 
					 | 
				
			||||||
	_spedita		= A_SPEDITA			- SHEET_GAP,
 | 
					 | 
				
			||||||
	_invio			= A_INVIO				- SHEET_GAP,
 | 
					 | 
				
			||||||
	_forzata		= A_FORZATA			- SHEET_GAP,
 | 
					 | 
				
			||||||
	_numero			= A_NUMERO			- SHEET_GAP,
 | 
					 | 
				
			||||||
	_datareg		= A_DATAREG			- SHEET_GAP,
 | 
					 | 
				
			||||||
	_tipocf			= A_TIPOCF			- SHEET_GAP,
 | 
					 | 
				
			||||||
	_codcf			= A_CODCF				- SHEET_GAP,
 | 
					 | 
				
			||||||
	_occas			= A_OCFPI				- SHEET_GAP,
 | 
					 | 
				
			||||||
	_ragsoc			= A_RAGSOC			- SHEET_GAP,
 | 
					 | 
				
			||||||
	_rfso				= A_RFSO				- SHEET_GAP,
 | 
					 | 
				
			||||||
	_ragsocrfso = A_RAGSOCRFSO	- SHEET_GAP,
 | 
					 | 
				
			||||||
	_codnum			= A_TIPODOC			- SHEET_GAP,
 | 
					 | 
				
			||||||
	_codnumAE		= A_TIPODOCAE		- SHEET_GAP,
 | 
					 | 
				
			||||||
	_numdoc			= A_NUMDOC			- SHEET_GAP,
 | 
					 | 
				
			||||||
	_datadoc		= A_DATADOC			- SHEET_GAP,
 | 
					 | 
				
			||||||
	_natura			= A_NATURA			- SHEET_GAP,
 | 
					 | 
				
			||||||
	_aliquota		= A_ALIQUOTA		- SHEET_GAP,
 | 
					 | 
				
			||||||
	_detraibile = A_DETRAIB			- SHEET_GAP,
 | 
					 | 
				
			||||||
	_imponibile = A_IMPONIBILE	- SHEET_GAP,
 | 
					 | 
				
			||||||
	_importoIVA = A_IMPOSTA			- SHEET_GAP, // Imposta è già preso
 | 
					 | 
				
			||||||
	_reverse		= A_REVERSE			- SHEET_GAP,
 | 
					 | 
				
			||||||
	_autofatt		= A_AUTOFATT		- SHEET_GAP,
 | 
					 | 
				
			||||||
	_paiv				= A_PAIV				- SHEET_GAP,
 | 
					 | 
				
			||||||
	_codfis			= A_COFI				- SHEET_GAP,
 | 
					 | 
				
			||||||
	_coderr			= A_CODERR			- SHEET_GAP
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/////////////////////////////////////////////////////////////////////////////////////
 | 
					 | 
				
			||||||
// Utilities
 | 
					 | 
				
			||||||
/////////////////////////////////////////////////////////////////////////////////////
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Da un id ritorna il tipo doc corrispondente
 | 
					 | 
				
			||||||
TString getTipoDoc(int id);
 | 
					 | 
				
			||||||
int			getTipoDoc(TString id);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Cerca una stringa all'interno di una SLIST (Potrebbe diventare una funzione di XVT.h)
 | 
					 | 
				
			||||||
static SLIST_ELT xvt_slist_find_str(SLIST list, const char* str);
 | 
					 | 
				
			||||||
// Aggiorna il file dst se più vecchio di src (Potrebbe diventare una funzione di XVT.h)
 | 
					 | 
				
			||||||
bool xvt_fsys_fupdate(const char* src, const char* dst);
 | 
					 | 
				
			||||||
// Decodifica il tipo di documento per il trasferimento fatture
 | 
					 | 
				
			||||||
const char * decodTipo(TToken_string* strarr);
 | 
					 | 
				
			||||||
// Salvo un singolo record
 | 
					 | 
				
			||||||
//bool saveRec(TToken_string row, bool esportato = false);
 | 
					 | 
				
			||||||
// Ritorno una data in formato ANSI
 | 
					 | 
				
			||||||
inline TDate toDate(const char * date) { return TDate(date).string(); }
 | 
					 | 
				
			||||||
// Salto se la riga non è abilitata
 | 
					 | 
				
			||||||
#define IF_IS_ENABLED(strarr) if(strcmp(strarr->get(_invio), FLAG_INVIO) != 0 && strcmp(strarr->get(_invio), FLAG_FORZATO) != 0 && strcmp(strarr->get(_invio), FLAG_INVIATO) != 0) continue;
 | 
					 | 
				
			||||||
// Ritorno il carattere senza accento maiuscolo
 | 
					 | 
				
			||||||
inline const char * noSpecial(char a);
 | 
					 | 
				
			||||||
// Ritorno se è ancora valida la bolla doganale senza informazioni fornitore
 | 
					 | 
				
			||||||
bool bd2017();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/////////////////////////////////////////////////////////////////////////////////////
 | 
					 | 
				
			||||||
// TFp_record
 | 
					 | 
				
			||||||
/////////////////////////////////////////////////////////////////////////////////////
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Connessione a db
 | 
					 | 
				
			||||||
SSimple_query& db()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	SSimple_query * _db = nullptr;
 | 
					 | 
				
			||||||
	if (_db == nullptr)
 | 
					 | 
				
			||||||
		_db = new SSimple_query();
 | 
					 | 
				
			||||||
	return *_db;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Contenitore di campi di un record di database MSSQL
 | 
					 | 
				
			||||||
class TFp_record : public TObject
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  TString8 _table;
 | 
					 | 
				
			||||||
  TToken_string _key;
 | 
					 | 
				
			||||||
  TAssoc_array _fields;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
protected:
 | 
					 | 
				
			||||||
  void copy(const TFp_record& rec) { _table = rec._table; _key = rec._key; _fields = rec._fields; }
 | 
					 | 
				
			||||||
  const TString& var2str(const TString& fld, const TVariant& var) const;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public:
 | 
					 | 
				
			||||||
  void reset() { _fields.destroy(); }
 | 
					 | 
				
			||||||
  void set(const char* fld, const TVariant& var);
 | 
					 | 
				
			||||||
  void set(const char* fld, long var);
 | 
					 | 
				
			||||||
  void set(const char* fld, const char* var);
 | 
					 | 
				
			||||||
  void set(const char* fld, const real& var);
 | 
					 | 
				
			||||||
  void set(const char* fld, const TString& var);
 | 
					 | 
				
			||||||
  void set(const char* fld, const TDate& var);
 | 
					 | 
				
			||||||
  void set(const char* fld, bool var);
 | 
					 | 
				
			||||||
  const TVariant& get(const char* fld) const;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  bool insert();
 | 
					 | 
				
			||||||
  bool remove();
 | 
					 | 
				
			||||||
  bool search();
 | 
					 | 
				
			||||||
  bool search(const char* k1, const char* k2 = NULL, const char* k3 = NULL);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  virtual TObject* dup() const { return new TFp_record(*this); }
 | 
					 | 
				
			||||||
  virtual bool ok() const { return _table.not_empty(); }
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  TFp_record& operator=(const TFp_record& rec) { copy(rec); return *this; }
 | 
					 | 
				
			||||||
  TFp_record(const TFp_record& rec) { copy(rec); }
 | 
					 | 
				
			||||||
  TFp_record(const char* table);
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/////////////////////////////////////////////////////////////////////////////////////
 | 
					 | 
				
			||||||
// TFp_cursors
 | 
					 | 
				
			||||||
/////////////////////////////////////////////////////////////////////////////////////
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*
 | 
					 | 
				
			||||||
 * Classe per la gestione di RMOVIVA, MOV, TFCUST
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
class TFp_cursors : TObject
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	friend class TCursor;
 | 
					 | 
				
			||||||
	TISAM_recordset* c_rmoviva;
 | 
					 | 
				
			||||||
	TISAM_recordset* c_trasfatt;
 | 
					 | 
				
			||||||
	bool _newMov;
 | 
					 | 
				
			||||||
	bool _newCust;
 | 
					 | 
				
			||||||
	// Se trovo un record custom devo saltare tutti quelli che trovo successivamente, per fare ciò utilizzo una TToken_string
 | 
					 | 
				
			||||||
	TToken_string _alqCust;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	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		 checkEnabled(TISAM_recordset* origCur);
 | 
					 | 
				
			||||||
public:
 | 
					 | 
				
			||||||
	//TFp_cursors();
 | 
					 | 
				
			||||||
	~TFp_cursors();
 | 
					 | 
				
			||||||
	long int getIvaItems()	{ return c_rmoviva->items(); }
 | 
					 | 
				
			||||||
	long int getIvaPos()		{ return c_rmoviva->cursor()->pos(); }
 | 
					 | 
				
			||||||
	TRectype getIva()				{ return c_rmoviva->cursor()->curr(); }
 | 
					 | 
				
			||||||
	int next(TAssoc_array& recimposte, bool& ok, TString& tipocf, TString& codcf, TString& ocfpi);		// Legge tutto il prossimo movimento, in importi mette per ogni codiva la somma
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	int updateFilters(const char tipocf, const long codcf, TDate dal, TDate al, int cod = toSend);
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/////////////////////////////////////////////////////////////////////////////////////
 | 
					 | 
				
			||||||
// TFp_mask
 | 
					 | 
				
			||||||
/////////////////////////////////////////////////////////////////////////////////////
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class TFp_mask : public TAutomask
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	friend class TFp_cursors;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	TMaskmode _mode;
 | 
					 | 
				
			||||||
	bool _sheet_dirty;
 | 
					 | 
				
			||||||
	bool _filter_changed;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
protected:
 | 
					 | 
				
			||||||
	virtual void next_page(int p);
 | 
					 | 
				
			||||||
	TRecnotype nuovo_progr() const;
 | 
					 | 
				
			||||||
	void changeInvio(TString tipocf, TString codcf, TString numdoc, TString invio) const;
 | 
					 | 
				
			||||||
  virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
 | 
					 | 
				
			||||||
	void openJava();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public:
 | 
					 | 
				
			||||||
	void setFilterChanged() { _filter_changed = true; }
 | 
					 | 
				
			||||||
	void load_sheet();
 | 
					 | 
				
			||||||
	TFp_mask(TString msk);
 | 
					 | 
				
			||||||
	~TFp_mask();
 | 
					 | 
				
			||||||
	// Carico i tipi documento all'inizio
 | 
					 | 
				
			||||||
	void loadConfig();
 | 
					 | 
				
			||||||
	// Salvo i tipi documento
 | 
					 | 
				
			||||||
	void saveConfig();
 | 
					 | 
				
			||||||
	// Salvo tutti i records
 | 
					 | 
				
			||||||
	bool saveAll();
 | 
					 | 
				
			||||||
	// Controllo tutti i records
 | 
					 | 
				
			||||||
	bool checkAll();
 | 
					 | 
				
			||||||
	// Testo validità record
 | 
					 | 
				
			||||||
	bool checkRec(TPrinter* stampa, TToken_string* rec);
 | 
					 | 
				
			||||||
	// Controllo che siano presenti records
 | 
					 | 
				
			||||||
	bool checkNotEmpty();
 | 
					 | 
				
			||||||
	// Controllo finale prima di inviare il tutto, se ci sono fatture 
 | 
					 | 
				
			||||||
	// con più volte lo stesso codice aliquota disabilito il precedente
 | 
					 | 
				
			||||||
	void theFinalCheckDown();
 | 
					 | 
				
			||||||
	// Mette il flag di invio = [flag] per la riga numero [nrow]
 | 
					 | 
				
			||||||
	void flagRow(int nrow, TString flag);
 | 
					 | 
				
			||||||
	// Salto se la riga ha un tipo invio non del filtro
 | 
					 | 
				
			||||||
	bool checkInvio(const TString& invio);
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Funzione inline di stampa
 | 
					 | 
				
			||||||
inline void printError(TPrinter* stampa, TString movimento, TString documento, TString msgerr);
 | 
					 | 
				
			||||||
TFp_mask& msk();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/////////////////////////////////////////////////////////////////////////////////////
 | 
					 | 
				
			||||||
// TFp_app
 | 
					 | 
				
			||||||
/////////////////////////////////////////////////////////////////////////////////////
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct clifoDoc
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	long contCliFo;
 | 
					 | 
				
			||||||
	long countDoc;
 | 
					 | 
				
			||||||
	std::map<TString, long> docID;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class TFp_app : public TSkeleton_application
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  TAnagrafica _ditta;
 | 
					 | 
				
			||||||
  TString16 _cofi;
 | 
					 | 
				
			||||||
  TFilename _dbname;
 | 
					 | 
				
			||||||
  TLog_report* _log;
 | 
					 | 
				
			||||||
  TString _logTFF;
 | 
					 | 
				
			||||||
	bool _append;
 | 
					 | 
				
			||||||
	TString myrfso;
 | 
					 | 
				
			||||||
	static long header;
 | 
					 | 
				
			||||||
	// Solitamente nei programmi di campo cerco di sfruttare le classi interne ma per mancanza di tempo sono costretto a usare l'std::vector
 | 
					 | 
				
			||||||
	std::map<TString, clifoDoc> mCliDoc;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
private:
 | 
					 | 
				
			||||||
  int parse_line(const TString& line, TString& var, TString& val) const;
 | 
					 | 
				
			||||||
  bool create_table(TScanner& TFF, const TString& table);
 | 
					 | 
				
			||||||
	TString getKey(TToken_string* strarr);
 | 
					 | 
				
			||||||
	TString getHeader(TToken_string* strarr);
 | 
					 | 
				
			||||||
	TString getBody(TToken_string* strarr, bool add = true);
 | 
					 | 
				
			||||||
	bool tff0100(TSheet_field& sheet);										// Header esportazione
 | 
					 | 
				
			||||||
	bool tff0200(TString key);														// Anagrafica ditta
 | 
					 | 
				
			||||||
	bool tff0300(TString key, TRectype r_ana);						// Rappresentante fiscale ditta
 | 
					 | 
				
			||||||
	bool tff0400(TSheet_field& sheet);										// Anagrafica clifo
 | 
					 | 
				
			||||||
	bool tff0700(TSheet_field& sheet);										// Testata documento
 | 
					 | 
				
			||||||
	bool tff2200(TToken_string* strarr, int nriga);				// Riepilogo aliquote
 | 
					 | 
				
			||||||
	bool tff3100(TToken_string* strarr, TRectype r_ana);	// Rappresentante fiscale clifo
 | 
					 | 
				
			||||||
	bool setEsportato(TSheet_field& sheet);
 | 
					 | 
				
			||||||
	bool emptyTables(TString key);												// Cancella da tutte le tabelle i record con chiave key
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
protected:
 | 
					 | 
				
			||||||
  void log(int severity, const char* msg);
 | 
					 | 
				
			||||||
  bool show_log();
 | 
					 | 
				
			||||||
	bool syncronizeDB();
 | 
					 | 
				
			||||||
	bool verifyDB(const bool create);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public:
 | 
					 | 
				
			||||||
  virtual bool create();
 | 
					 | 
				
			||||||
  virtual bool destroy();
 | 
					 | 
				
			||||||
  virtual void main_loop();
 | 
					 | 
				
			||||||
	bool send(TFp_mask* msk);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  TFp_app() : _log(NULL) {}
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
@ -12,8 +12,6 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include "fp0.h"
 | 
					#include "fp0.h"
 | 
				
			||||||
#include "fp0300a.h"
 | 
					#include "fp0300a.h"
 | 
				
			||||||
#include <memory>
 | 
					 | 
				
			||||||
#include <map>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/////////////////////////////////////////////////////////////////////////////////////
 | 
					/////////////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
// Globals
 | 
					// Globals
 | 
				
			||||||
@ -363,7 +361,6 @@ void TPA_mask::next_page(int p)
 | 
				
			|||||||
		{
 | 
							{
 | 
				
			||||||
			TSheet_field& sf = sfield(F_DOCS);
 | 
								TSheet_field& sf = sfield(F_DOCS);
 | 
				
			||||||
			fill();
 | 
								fill();
 | 
				
			||||||
			sf.force_update();
 | 
					 | 
				
			||||||
			_filter_changed = false;
 | 
								_filter_changed = false;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@ -451,6 +448,9 @@ void TDoc2Paf::main_loop()
 | 
				
			|||||||
			ndocs = 0;
 | 
								ndocs = 0;
 | 
				
			||||||
			FOR_EACH_ARRAY_ROW(sht, r, riga)
 | 
								FOR_EACH_ARRAY_ROW(sht, r, riga)
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
 | 
									if (!pi.add_status(1))
 | 
				
			||||||
 | 
										break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				if (riga->starts_with("X"))
 | 
									if (riga->starts_with("X"))
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
					const int           anno = riga->get_int(mask.sfield(F_DOCS).cid2index(S_ANNO));
 | 
										const int           anno = riga->get_int(mask.sfield(F_DOCS).cid2index(S_ANNO));
 | 
				
			||||||
@ -472,8 +472,6 @@ void TDoc2Paf::main_loop()
 | 
				
			|||||||
							ndocs++;
 | 
												ndocs++;
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				if (!pi.add_status(1))
 | 
					 | 
				
			||||||
					break;
 | 
					 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if (ndocs > 0)
 | 
							if (ndocs > 0)
 | 
				
			||||||
 | 
				
			|||||||
@ -851,7 +851,7 @@ const TString& TDoc_fp::converti_prezzo(const real& prezzo) const
 | 
				
			|||||||
	{
 | 
						{
 | 
				
			||||||
		TCurrency app(prezzo, _doc_cambio._cod_val, _doc_cambio._cambio, true);
 | 
							TCurrency app(prezzo, _doc_cambio._cod_val, _doc_cambio._cambio, true);
 | 
				
			||||||
		app.change_to_euro_val();
 | 
							app.change_to_euro_val();
 | 
				
			||||||
		ret << app.get_num().stringa_eng(0,8);
 | 
							ret << app.get_num().string(0,8);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
		ret << prezzo;
 | 
							ret << prezzo;
 | 
				
			||||||
@ -1504,7 +1504,8 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc)
 | 
				
			|||||||
					paf0700f.set("P7_TIPORITENUTA", cliente.fisica() ? "RT01" : "RT02");
 | 
										paf0700f.set("P7_TIPORITENUTA", cliente.fisica() ? "RT01" : "RT02");
 | 
				
			||||||
					paf0700f.set("P7_IMPORTORIT", converti_prezzo(doc.imponibile() * sp.perc() / CENTO));
 | 
										paf0700f.set("P7_IMPORTORIT", converti_prezzo(doc.imponibile() * sp.perc() / CENTO));
 | 
				
			||||||
					paf0700f.set("P7_ALIQUOTARIT", TCodiceIVA(sp.cod_iva()).percentuale());
 | 
										paf0700f.set("P7_ALIQUOTARIT", TCodiceIVA(sp.cod_iva()).percentuale());
 | 
				
			||||||
						paf0700f.set("P7_CAUSPAGAM", cache().get("CA7", to_tstring(sp.caus_770()), "S2"));
 | 
										static TString caus770; caus770.cut(0); caus770.format("%02d", sp.caus_770());
 | 
				
			||||||
 | 
										paf0700f.set("P7_CAUSPAGAM", cache().get("CA7", caus770, "S2"));
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				// </DatiRitenuta>
 | 
									// </DatiRitenuta>
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
				
			|||||||
@ -5,3 +5,4 @@ Module  = fp
 | 
				
			|||||||
Flags   = ""
 | 
					Flags   = ""
 | 
				
			||||||
Item_01 = "Configurazione", "fp0 -0", ""+
 | 
					Item_01 = "Configurazione", "fp0 -0", ""+
 | 
				
			||||||
Item_02 = "Invio fatture", "fp0 -2", ""
 | 
					Item_02 = "Invio fatture", "fp0 -2", ""
 | 
				
			||||||
 | 
					Item_03 = "Inserimento riferimenti C/F", "fp0 -1", ""
 | 
				
			||||||
@ -13,6 +13,7 @@
 | 
				
			|||||||
#include <treectrl.h>
 | 
					#include <treectrl.h>
 | 
				
			||||||
#include <urldefid.h>
 | 
					#include <urldefid.h>
 | 
				
			||||||
#include <utility.h>
 | 
					#include <utility.h>
 | 
				
			||||||
 | 
					#include <xvtdb.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int txt_sort(const TSortable& o1, const TSortable& o2, void* jolly)
 | 
					static int txt_sort(const TSortable& o1, const TSortable& o2, void* jolly)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@ -471,7 +472,7 @@ TInfo_mask::TInfo_mask() : TProperty_sheet(TR("Informazioni"))
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  TFilename temp; temp.tempdir();
 | 
					  TFilename temp; temp.tempdir();
 | 
				
			||||||
  TString strdb, strsql;
 | 
					  TString strdb, strsql, strsqlapi = SQLAPIV;
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    TISAM_recordset rs("");
 | 
					    TISAM_recordset rs("");
 | 
				
			||||||
    strdb = rs.driver_version();
 | 
					    strdb = rs.driver_version();
 | 
				
			||||||
@ -555,6 +556,7 @@ TInfo_mask::TInfo_mask() : TProperty_sheet(TR("Informazioni"))
 | 
				
			|||||||
  add_prop(TR("Libreria GUI"), strwx);
 | 
					  add_prop(TR("Libreria GUI"), strwx);
 | 
				
			||||||
  add_prop(TR("Libreria PDF"), printer);
 | 
					  add_prop(TR("Libreria PDF"), printer);
 | 
				
			||||||
  add_prop(TR("Libreria SQL"), strsql);
 | 
					  add_prop(TR("Libreria SQL"), strsql);
 | 
				
			||||||
 | 
						add_prop(TR("Libreria SQLAPI"), strsqlapi);
 | 
				
			||||||
	add_prop(TR("Libreria Matematica"), "GreenLeaf Library");
 | 
						add_prop(TR("Libreria Matematica"), "GreenLeaf Library");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef _MSC_VER
 | 
					#ifdef _MSC_VER
 | 
				
			||||||
@ -567,11 +569,11 @@ TInfo_mask::TInfo_mask() : TProperty_sheet(TR("Informazioni"))
 | 
				
			|||||||
	else
 | 
						else
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		// 1900 -> 14, 1910 -> 15
 | 
							// 1900 -> 14, 1910 -> 15
 | 
				
			||||||
		cver = _MSC_VER;
 | 
					 | 
				
			||||||
		cver = _MSC_VER / 100 - 5 + _MSC_VER % 100 / 10;
 | 
							cver = _MSC_VER / 100 - 5 + _MSC_VER % 100 / 10;
 | 
				
			||||||
		csub = _MSC_VER % 100 % 10; // Is that a thing?
 | 
							csub = _MSC_VER % 100 % 10; // Is that a thing?
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	add_prop(TR("Libreria C++"), format("Microsoft Visual Studio %d.%d", cver, csub));
 | 
						TString msg = "Microsoft Visual Studio"; msg << cver << "." << csub;
 | 
				
			||||||
 | 
						add_prop(TR("Libreria C++"), msg);
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  set_read_only();
 | 
					  set_read_only();
 | 
				
			||||||
 | 
				
			|||||||
@ -1285,13 +1285,6 @@ const char* real::stringa (int len, int dec, char pad) const
 | 
				
			|||||||
  return str;
 | 
					  return str;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Certified 99%
 | 
					 | 
				
			||||||
const char* real::stringa_eng(int len, int dec, char pad) const
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	char* str = const_cast<char*>(string(len, dec, pad));
 | 
					 | 
				
			||||||
	return str;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Certified 99%
 | 
					// Certified 99%
 | 
				
			||||||
const char* real::stringe(int len, int dec, char pad) const
 | 
					const char* real::stringe(int len, int dec, char pad) const
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
				
			|||||||
@ -115,9 +115,6 @@ public:
 | 
				
			|||||||
  // @cmember Trasforma un reale in stringa (chiama <mf real::string>), ma
 | 
					  // @cmember Trasforma un reale in stringa (chiama <mf real::string>), ma
 | 
				
			||||||
  //          ritorna il formato italiano
 | 
					  //          ritorna il formato italiano
 | 
				
			||||||
  const char* stringa(int len = 0, int dec = UNDEFINED, char pad = ' ') const;
 | 
					  const char* stringa(int len = 0, int dec = UNDEFINED, char pad = ' ') const;
 | 
				
			||||||
	// @cmember Trasforma un reale in stringa (chiama <mf real::string>), ma
 | 
					 | 
				
			||||||
	//          ritorna il formato inglese
 | 
					 | 
				
			||||||
	const char* stringa_eng(int len = 0, int dec = UNDEFINED, char pad = ' ') const;
 | 
					 | 
				
			||||||
  // @cmember Trasforma un reale in stringa (chiama <mf real::string>),
 | 
					  // @cmember Trasforma un reale in stringa (chiama <mf real::string>),
 | 
				
			||||||
  //ma ritorna il formato atteso da Excel
 | 
					  //ma ritorna il formato atteso da Excel
 | 
				
			||||||
  const char* stringe(int len = 0, int dec = UNDEFINED, char pad = ' ') const;
 | 
					  const char* stringe(int len = 0, int dec = UNDEFINED, char pad = ' ') const;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user