Merge branch 'R_10_00' of http://10.65.20.33/sirio/CAMPO/campo into R_10_00

This commit is contained in:
Simone Palacino 2020-06-30 15:05:32 +02:00
commit fa2b0bfea0
79 changed files with 2478 additions and 2380 deletions

View File

@ -68,7 +68,7 @@
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\src\include;..\src\xvaga;..\xi;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\src\include;..\src\xvaga;..\xi;..\src\xvtdb;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>NDEBUG;WIN32;_WINDOWS;XVT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
@ -122,7 +122,7 @@
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\src\include;..\src\xvaga;..\src\xvtdb;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\src\include;..\src\xvaga;..\xi;..\src\xvtdb;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;WIN32;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<BrowseInformation>false</BrowseInformation>

View File

@ -229,15 +229,8 @@
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\src\ba\prova.uml" />
<ClCompile Include="..\src\cg\cg2103.cpp" />
<ClCompile Include="..\src\cg\cglib01.cpp" />
<ClCompile Include="..\src\cg\cglib03.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\src\cg\cglib03.cpp" />
<ClCompile Include="..\src\cg\cgpagame.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
@ -270,7 +263,6 @@
<ClInclude Include="..\src\ba\ba3700.h" />
<ClInclude Include="..\src\ba\ba3800.h" />
<ClInclude Include="..\src\ba\ba3a00a.h" />
<ClInclude Include="..\src\ba\prova.h" />
</ItemGroup>
<ItemGroup>
<CustomBuildStep Include="..\lib\AgaLib.lib">

View File

@ -51,21 +51,15 @@
<ClCompile Include="..\src\ba\ba3a00.cpp">
<Filter>Sources</Filter>
</ClCompile>
<ClCompile Include="..\src\cg\cg2103.cpp">
<Filter>Sources</Filter>
</ClCompile>
<ClCompile Include="..\src\cg\cglib01.cpp">
<ClCompile Include="..\src\cg\cgpagame.cpp">
<Filter>Sources</Filter>
</ClCompile>
<ClCompile Include="..\src\cg\cglib03.cpp">
<Filter>Sources</Filter>
</ClCompile>
<ClCompile Include="..\src\cg\cgpagame.cpp">
<ClCompile Include="..\src\cg\cglib01.cpp">
<Filter>Sources</Filter>
</ClCompile>
<ClCompile Include="..\src\ba\prova.uml">
<Filter>Masks</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<MskCompiler Include="..\src\ba\ba3200a.uml">
@ -136,9 +130,6 @@
<ClInclude Include="..\src\ba\ba3a00a.h">
<Filter>Headers</Filter>
</ClInclude>
<ClInclude Include="..\src\ba\prova.h">
<Filter>Headers</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="campo.rc" />

View File

@ -122,7 +122,6 @@
<PreprocessorDefinitions>_DEBUG;WIN32;DBG;__LONGDOUBLE__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>false</MinimalRebuild>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@ -177,6 +176,8 @@
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\src\cg\cglib06.cpp" />
<ClCompile Include="..\src\cg\cgsaldac.cpp" />
</ItemGroup>
<ItemGroup>
<CustomBuildStep Include="..\lib\AgaLib.lib">

View File

@ -24,6 +24,12 @@
<ClCompile Include="..\src\cg\cglib02.cpp">
<Filter>Sources</Filter>
</ClCompile>
<ClCompile Include="..\src\cg\cglib06.cpp">
<Filter>Sources</Filter>
</ClCompile>
<ClCompile Include="..\src\cg\cgsaldac.cpp">
<Filter>Sources</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="campo.rc" />

View File

@ -68,7 +68,6 @@
<PreprocessorDefinitions>_DEBUG;WIN32;__LONGDOUBLE__;__LONGDOUBLE__;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>false</MinimalRebuild>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
@ -257,7 +256,6 @@
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\src\cg\cg2103.cpp" />
<ClCompile Include="..\src\cg\cglib01.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>

View File

@ -87,9 +87,6 @@
<ClCompile Include="..\src\cg\cglib03.cpp">
<Filter>Sources</Filter>
</ClCompile>
<ClCompile Include="..\src\cg\cg2103.cpp">
<Filter>Sources</Filter>
</ClCompile>
<ClCompile Include="..\src\cg\cg1313.cpp">
<Filter>Sources</Filter>
</ClCompile>

View File

@ -43,6 +43,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vedocext", "vedocext.vcxpro
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Cb6", "Cb6.vcxproj", "{99683594-420F-4DD9-BB41-7DC48278B931}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lilib", "lilib.vcxproj", "{B61F0AD4-0CCE-4371-8E92-85A26CAF1A7C}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fastrip", "fastrip.vcxproj", "{68251613-3B9A-4F87-9F40-827C46267ADE}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "patchdef", "patchdef.vcxproj", "{2DCB2E4A-EFB6-4561-8D87-C5ADBDB76533}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@ -173,14 +179,24 @@ Global
{99683594-420F-4DD9-BB41-7DC48278B931}.Release|Win32.ActiveCfg = Release|Win32
{99683594-420F-4DD9-BB41-7DC48278B931}.Release|Win32.Build.0 = Release|Win32
{99683594-420F-4DD9-BB41-7DC48278B931}.Release|x64.ActiveCfg = Release|Win32
{05AAA71C-10DF-420A-BE4C-1A1DF08A4AE3}.Debug|Win32.ActiveCfg = Debug|Win32
{05AAA71C-10DF-420A-BE4C-1A1DF08A4AE3}.Debug|Win32.Build.0 = Debug|Win32
{05AAA71C-10DF-420A-BE4C-1A1DF08A4AE3}.Debug|x64.ActiveCfg = Debug|x64
{05AAA71C-10DF-420A-BE4C-1A1DF08A4AE3}.Debug|x64.Build.0 = Debug|x64
{05AAA71C-10DF-420A-BE4C-1A1DF08A4AE3}.Release|Win32.ActiveCfg = Release|Win32
{05AAA71C-10DF-420A-BE4C-1A1DF08A4AE3}.Release|Win32.Build.0 = Release|Win32
{05AAA71C-10DF-420A-BE4C-1A1DF08A4AE3}.Release|x64.ActiveCfg = Release|x64
{05AAA71C-10DF-420A-BE4C-1A1DF08A4AE3}.Release|x64.Build.0 = Release|x64
{B61F0AD4-0CCE-4371-8E92-85A26CAF1A7C}.Debug|Win32.ActiveCfg = Debug|Win32
{B61F0AD4-0CCE-4371-8E92-85A26CAF1A7C}.Debug|Win32.Build.0 = Debug|Win32
{B61F0AD4-0CCE-4371-8E92-85A26CAF1A7C}.Debug|x64.ActiveCfg = Debug|Win32
{B61F0AD4-0CCE-4371-8E92-85A26CAF1A7C}.Release|Win32.ActiveCfg = Release|Win32
{B61F0AD4-0CCE-4371-8E92-85A26CAF1A7C}.Release|Win32.Build.0 = Release|Win32
{B61F0AD4-0CCE-4371-8E92-85A26CAF1A7C}.Release|x64.ActiveCfg = Release|Win32
{68251613-3B9A-4F87-9F40-827C46267ADE}.Debug|Win32.ActiveCfg = Debug|Win32
{68251613-3B9A-4F87-9F40-827C46267ADE}.Debug|Win32.Build.0 = Debug|Win32
{68251613-3B9A-4F87-9F40-827C46267ADE}.Debug|x64.ActiveCfg = Debug|Win32
{68251613-3B9A-4F87-9F40-827C46267ADE}.Release|Win32.ActiveCfg = Release|Win32
{68251613-3B9A-4F87-9F40-827C46267ADE}.Release|Win32.Build.0 = Release|Win32
{68251613-3B9A-4F87-9F40-827C46267ADE}.Release|x64.ActiveCfg = Release|Win32
{2DCB2E4A-EFB6-4561-8D87-C5ADBDB76533}.Debug|Win32.ActiveCfg = Debug|Win32
{2DCB2E4A-EFB6-4561-8D87-C5ADBDB76533}.Debug|Win32.Build.0 = Debug|Win32
{2DCB2E4A-EFB6-4561-8D87-C5ADBDB76533}.Debug|x64.ActiveCfg = Debug|Win32
{2DCB2E4A-EFB6-4561-8D87-C5ADBDB76533}.Release|Win32.ActiveCfg = Release|Win32
{2DCB2E4A-EFB6-4561-8D87-C5ADBDB76533}.Release|Win32.Build.0 = Release|Win32
{2DCB2E4A-EFB6-4561-8D87-C5ADBDB76533}.Release|x64.ActiveCfg = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -71,7 +71,6 @@
<ObjectFileName>$(IntDir)</ObjectFileName>
<ProgramDataBaseFileName>
</ProgramDataBaseFileName>
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
@ -133,7 +132,7 @@
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0410</Culture>
<AdditionalIncludeDirectories>..\wx28X\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\libraries\wx28X\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>

View File

@ -78,7 +78,7 @@
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0410</Culture>
<AdditionalIncludeDirectories>..\wx28X\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\libraries\wx28X\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
@ -124,7 +124,6 @@
<ObjectFileName>$(IntDir)</ObjectFileName>
<ProgramDataBaseFileName>
</ProgramDataBaseFileName>
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>

View File

@ -72,7 +72,6 @@
<ObjectFileName>$(IntDir)</ObjectFileName>
<ProgramDataBaseFileName>
</ProgramDataBaseFileName>
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
@ -132,7 +131,7 @@
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0410</Culture>
<AdditionalIncludeDirectories>..\wx28X\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\libraries\wx28X\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>

View File

@ -78,7 +78,7 @@
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0410</Culture>
<AdditionalIncludeDirectories>..\wx28X\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\libraries\wx28X\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
@ -123,7 +123,6 @@
<ObjectFileName>$(IntDir)</ObjectFileName>
<ProgramDataBaseFileName>
</ProgramDataBaseFileName>
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>

View File

@ -72,7 +72,6 @@
<ObjectFileName>$(IntDir)</ObjectFileName>
<ProgramDataBaseFileName>
</ProgramDataBaseFileName>
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
@ -133,7 +132,7 @@
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0410</Culture>
<AdditionalIncludeDirectories>..\wx28X\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\libraries\wx28X\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>

View File

@ -14,7 +14,7 @@
<ProjectGuid>{68251613-3B9A-4F87-9F40-827C46267ADE}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>fastrip</RootNamespace>
<WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
@ -100,7 +100,7 @@
</Xdcmake>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\src\fastrip\fastrip.c" />
<ClCompile Include="..\src\utilities\fastrip.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">

View File

@ -15,7 +15,7 @@
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\src\fastrip\fastrip.c">
<ClCompile Include="..\src\utilities\fastrip.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>

108
build/patchdef.vcxproj Normal file
View File

@ -0,0 +1,108 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{2DCB2E4A-EFB6-4561-8D87-C5ADBDB76533}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>fastrip</RootNamespace>
<WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
<IntDir>..\obj\$(SolutionName)\$(ProjectName)\</IntDir>
<OutDir>$(ProjectDir)\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<OutDir>$(ProjectDir)\</OutDir>
<IntDir>..\obj\$(SolutionName)\$(ProjectName)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProfileGuidedDatabase>$(IntDir)$(TargetName).pgd</ProfileGuidedDatabase>
<ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
</Link>
<Bscmake>
<OutputFile>$(IntDir)$(TargetName).bsc</OutputFile>
</Bscmake>
<Xdcmake>
<OutputFile>$(IntDir)$(TargetName).xml</OutputFile>
</Xdcmake>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>
</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<ProfileGuidedDatabase>$(IntDir)$(TargetName).pgd</ProfileGuidedDatabase>
<ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
</Link>
<Bscmake>
<OutputFile>$(IntDir)$(TargetName).bsc</OutputFile>
</Bscmake>
<Xdcmake>
<OutputFile>$(IntDir)$(TargetName).xml</OutputFile>
</Xdcmake>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\src\utilities\patchdef.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -115,12 +115,6 @@
</Xdcmake>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\src\cg\cg2103.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="..\src\cg\cglib01.cpp">
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions>

View File

@ -11,9 +11,6 @@
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\src\cg\cg2103.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\cg\cglib01.cpp">
<Filter>Source Files</Filter>
</ClCompile>

View File

@ -129,6 +129,9 @@
<ClInclude Include="..\src\ve\velib05.h" />
<ClInclude Include="..\src\ve\velib07.h" />
</ItemGroup>
<ItemGroup>
<None Include="ClassDiagram.cd" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="CampoRules.targets" />

View File

@ -83,4 +83,7 @@
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="ClassDiagram.cd" />
</ItemGroup>
</Project>

4
cd/test/tp0972.txt Normal file
View File

@ -0,0 +1,4 @@
tp0.exe
Modificata la gestione degli addebiti a accrediti di solo CONAI per la dichiarazione.
Bisogna utilizzare righe di spesa a quantità e prezzo con codice corrispondente al codice spesa CONAI corrispondente emettere il codice della sottocategoria nel primo campo CONAI. Il peso unitario non serve e NON viene utilizzato.

21
cd/test/tp0972a.ini Normal file
View File

@ -0,0 +1,21 @@
[Main]
Demo=0
[tp0]
File(0) = tp0.exe|X
Patch = 972
Versione = 21511200
[tp]
Data = 30-06-2020
Descrizione = Trasferimento PACK
Dischi = 1
Moduli = ve
OEM =
Patch = 972
PostProcess =
PreProcess =
Prezzo(1) =
Prezzo(2) =
Versione = 21511200

BIN
cd/test/tp0972a1.zip Normal file

Binary file not shown.

5
cd/test/ve0972.txt Normal file
View File

@ -0,0 +1,5 @@
verig01.msk
verig03.msk
verig02.msk
Aggiunti i campi CONAI alle righe di spesa a quantità e prezzo

131
cd/test/ve0972a.ini Normal file
View File

@ -0,0 +1,131 @@
[Main]
Demo=0
[ve1]
File(105) = verig01.msk|X
File(107) = verig02.msk|X
File(109) = verig03.msk|X
Patch = 0972
Versione = 21511200
[ve99]
Kill(0) = batbcld.msk|x
Kill(1) = bastspp.rep|x
Kill(2) = bastfrr.msk|x
Kill(3) = bastbnp.rep|x
Kill(4) = bastgmc.msk|x
Kill(5) = batbrfc.msk|x
Kill(6) = batbfca.msk|x
Kill(7) = bastcra.rep|x
Kill(8) = bastprs.rep|x
Kill(9) = bastgcg.rep|x
Kill(10) = bastbnp.msk|x
Kill(11) = bastrfa.rep|x
Kill(12) = bastgca.msk|x
Kill(13) = bastgcg.msk|x
Kill(14) = bastnum.rep|x
Kill(15) = basttag.msk|x
Kill(16) = bastasf.rep|x
Kill(17) = batbrfa.msk|x
Kill(18) = batbctr.msk|x
Kill(19) = efstbnp.rep|x
Kill(20) = batbgca.msk|x
Kill(21) = ve7600a.msk|x
Kill(22) = ve7300a.frm|x
Kill(23) = ve7100a.msk|x
Kill(24) = basteld.rep|x
Kill(25) = batbprs.msk|x
Kill(26) = batbfrr.msk|x
Kill(27) = batbmre.msk|x
Kill(28) = ve7701a.ini|x
Kill(29) = batbfsa.msk|x
Kill(30) = batbstd.msk|x
Kill(31) = bastfrr.rep|x
Kill(32) = batbubi.msk|x
Kill(33) = ve7200a.msk|x
Kill(34) = bastctr.msk|x
Kill(35) = batbspp.msk|x
Kill(36) = batbtri.msk|x
Kill(37) = bastabe.rep|x
Kill(38) = bastprs.msk|x
Kill(39) = bastfrd.msk|x
Kill(40) = bastcau.msk|x
Kill(41) = bastfca.rep|x
Kill(42) = ve7700a.msk|x
Kill(43) = batbbnp.msk|x
Kill(44) = bastspp.msk|x
Kill(45) = bastnum.msk|x
Kill(46) = bastrfc.rep|x
Kill(47) = basttri.rep|x
Kill(48) = baststd.msk|x
Kill(49) = batbcaa.msk|x
Kill(50) = ve7400conf.ini|x
Kill(51) = basttip.rep|x
Kill(52) = bastrfc.msk|x
Kill(53) = eftbbnp.msk|x
Kill(54) = batbgmc.msk|x
Kill(55) = bastfca.msk|x
Kill(56) = batbspt.msk|x
Kill(57) = bastabe.msk|x
Kill(58) = ve7400a.msk|x
Kill(59) = bastcra.msk|x
Kill(60) = batbfrd.msk|x
Kill(61) = bastfrm.msk|x
Kill(62) = basttri.msk|x
Kill(63) = batbgsa.msk|x
Kill(64) = bastcaa.msk|x
Kill(65) = batbpro.msk|x
Kill(66) = bastimb.msk|x
Kill(67) = basttag.rep|x
Kill(68) = batbgcg.msk|x
Kill(69) = baststd.rep|x
Kill(70) = batbtag.msk|x
Kill(71) = bastfrm.rep|x
Kill(72) = bastcau.rep|x
Kill(73) = bastums.msk|x
Kill(74) = ve7200a.frm|x
Kill(75) = bastcaa.rep|x
Kill(76) = bastgca.rep|x
Kill(77) = bastubi.msk|x
Kill(78) = bastasf.msk|x
Kill(79) = bastctr.rep|x
Kill(80) = bastums.rep|x
Kill(81) = batbprv.msk|x
Kill(82) = ve7500a.msk|x
Kill(83) = batbfid.msk|x
Kill(84) = batbums.msk|x
Kill(85) = bastfrd.rep|x
Kill(86) = basteld.msk|x
Kill(87) = batbnum.msk|x
Kill(88) = batbtip.msk|x
Kill(89) = batbcau.msk|x
Kill(90) = ve7300a.msk|x
Kill(91) = batbcra.msk|x
Kill(92) = bastrfa.msk|x
Kill(93) = bastimb.rep|x
Kill(94) = ve7.exe|x
Kill(95) = bastgmc.rep|x
Kill(96) = efstbnp.msk|x
Kill(97) = batbfrm.msk|x
Kill(98) = batbacr.msk|x
Kill(99) = batbimb.msk|x
Kill(100) = ve7400a.ini|x
Kill(101) = bastubi.rep|x
Kill(102) = batbeld.msk|x
Kill(103) = batbasf.msk|x
Kill(104) = basttip.msk|x
Kill(105) = batbabe.msk|x
[ve]
Data = 30-06-2020
Descrizione = Vendite
Dischi = 1
Moduli = ba,cg9,pr9,mg9,sv9,in9,ef9
OEM =
Patch = 0972
PostProcess = bainst -0 VE
PreProcess =
Prezzo(1) =
Prezzo(2) =
Versione = 21511200

BIN
cd/test/ve0972a1.zip Normal file

Binary file not shown.

View File

@ -3,7 +3,7 @@
#include <recarray.h>
#include <tabapp.h>
#include "../cg/cglib03.h"
#include "../cg/cglib.h"
#include "../cg/cgtbcam.h"
#include "../cg/cgtbdel.h"

View File

@ -4,6 +4,7 @@
#include <modaut.h>
#include <tree.h>
#include <treectrl.h>
#include <utility.h>
#include <urldefid.h>
#include <mov.h>
@ -14,7 +15,7 @@
#include "calib01.h"
#include "calib02.h"
#include "calibmsk.h"
#include "../cg/cg2103.h"
#include "../cg/cglib.h"
#include "cdc.h"
#include "commesse.h"
@ -35,7 +36,7 @@ class TConfig_anal : public TConfig
int _level;
public:
virtual const TString& get(const char* var, const char* section = NULL, int index = -1, const char* def = "");
virtual const TString& get(const char* var, const char* section = nullptr, int index = -1, const char* def = "");
TConfig_anal();
};
@ -46,7 +47,7 @@ TConfig_anal::TConfig_anal() : TConfig(CONFIG_DITTA, "ca"), _level(0)
if (a.active(CIAUT)) _level |= 2;
// Controllo se è veramente configurato il primo livello a CMS o CDC
if (_level > 1 && TConfig::get("Level", NULL, 1).blank())
if (_level > 1 && TConfig::get("Level", nullptr, 1).blank())
_level = 0;
}
@ -88,11 +89,10 @@ const TString& TConfig_anal::get(const char* varname, const char* section, int i
TConfig& ca_config(bool force_reload)
{
static TConfig_anal* cfg = NULL;
if (cfg == NULL || force_reload)
static TConfig_anal* cfg = nullptr;
if (cfg == nullptr || force_reload)
{
if (cfg != NULL)
delete cfg;
SAFE_DELETE(cfg);
cfg = new TConfig_anal;
}
return *cfg;
@ -275,12 +275,12 @@ TMultilevel_code_info::TMultilevel_code_info(int logicnum) : _logicnum(logicnum)
int from = 1, to = 1;
for (int level = 1; ; level++)
{
const TString& prompt = cfg.get(desvar, NULL, level);
const TString& prompt = cfg.get(desvar, nullptr, level);
if (prompt.blank())
break;
_prompt.add(prompt);
const TString& picture = cfg.get(keyvar, NULL, level);
const TString& picture = cfg.get(keyvar, nullptr, level);
_picture.add(picture);
const int keylen = picture.len();
@ -297,11 +297,14 @@ TMultilevel_code_info::TMultilevel_code_info(int logicnum) : _logicnum(logicnum)
const TMultilevel_code_info& ca_multilevel_code_info(int logicnum)
{
static TArray* cache = NULL;
if (cache == NULL)
static TArray* cache = nullptr;
if (cache == nullptr)
cache = new TArray;
TMultilevel_code_info* info = (TMultilevel_code_info*)cache->objptr(logicnum);
if (info == NULL)
if (info == nullptr)
{
info = new TMultilevel_code_info(logicnum);
cache->add(info, logicnum);
@ -321,7 +324,8 @@ const TMultilevel_code_info* ca_multilevel_code_info_by_index(int level)
if (_logicnum[0] < 0)
{
TConfig& cfg = ca_config();
const TString& lev1 = cfg.get("Level", NULL, 1);
const TString& lev1 = cfg.get("Level", nullptr, 1);
if (lev1.full())
{
const TMultilevel_code_info& fasi = ca_multilevel_code_info(LF_FASI);
@ -330,7 +334,7 @@ const TMultilevel_code_info* ca_multilevel_code_info_by_index(int level)
if (fasi.parent() == _logicnum[k])
_logicnum[++k] = LF_FASI;
const TString& lev2 = cfg.get("Level", NULL, 2);
const TString& lev2 = cfg.get("Level", nullptr, 2);
if (lev2.full())
{
_logicnum[++k] = _logicnum[0] == LF_COMMESSE ? LF_CDC : LF_COMMESSE;
@ -344,7 +348,7 @@ const TMultilevel_code_info* ca_multilevel_code_info_by_index(int level)
logic = _logicnum[level];
}
return logic > 0 ? &ca_multilevel_code_info(logic) : NULL;
return logic > 0 ? &ca_multilevel_code_info(logic) : nullptr;
}
bool ca_test_multilevel_field(TEdit_field& fld, int level)
@ -420,7 +424,7 @@ const char* ca_dollar2fieldname(int logic, const char* dollar)
default : return FASI_CODFASE;
}
}
return NULL;
return nullptr;
}
void ca_append_and(TString& query, const TString& clause)
@ -452,7 +456,8 @@ static const TString& ca_get_user_permissions(const TString& utente, const int l
if (ini_permessi.set_paragraph(utente))
{
const char* fieldname = NULL;
const char* fieldname = nullptr;
switch (logic)
{
case LF_COMMESSE: fieldname = "Cms"; break;
@ -460,7 +465,7 @@ static const TString& ca_get_user_permissions(const TString& utente, const int l
case LF_FASI: fieldname = "Fas"; break;
default: break;
}
if (fieldname != NULL)
if (fieldname != nullptr)
{
const TString& expr = ini_permessi.get(fieldname);
ca_append_and(select, expr);
@ -473,7 +478,7 @@ static const TString& ca_get_user_permissions(const TString& utente, const int l
TToken_string row(80, SAFE_PIPE_CHR);
for (int r = 0;; r++)
{
row = ini_permessi.get("Prog", NULL, r);
row = ini_permessi.get("Prog", nullptr, r);
if (row.blank())
break;
if (key == row.get(0))
@ -524,7 +529,8 @@ const TString& ca_create_user_select_clause(int logic)
{
static TArray clauses;
TString* clause = (TString*)clauses.objptr(logic);
if (clause == NULL)
if (clause == nullptr)
{
clause = new TString;
switch (logic)
@ -579,7 +585,7 @@ bool ca_filter_record(const TRectype& rec)
bool ca_filter_function(const TRelation* rel)
{
return rel != NULL && ca_filter_record(rel->curr());
return rel != nullptr && ca_filter_record(rel->curr());
}
@ -837,13 +843,14 @@ int ca_create_fields(TMask& msk, int page, int logicnum, int x, int y,
prompt.left_just(maxdeslen);
const char* flags = picture[0] == '0' || picture[0] == '9' ? "BUZ" : "BU";
TEdit_field* kfld = NULL;
TEdit_field* kfld = nullptr;
if (mci.is_numeric_picture(i)) // Numeric
kfld = &msk.add_number(kid, page, prompt, tab0, y+i, picture.len(), flags);
else
kfld = &msk.add_string(kid, page, prompt, tab0, y+i, picture.len(), flags);
ca_create_browse1(*kfld, i, logicnum, key_id, desc_in_sh && (i == mci.levels() - 1) ? key_id + mci.levels() - i : des_id);
if ((mode & 0x1) != 0 && fieldname == NULL)
if ((mode & 0x1) != 0 && fieldname == nullptr)
kfld->set_key(1);
// Ho specificato un nome di campo speciale
@ -872,7 +879,7 @@ int ca_create_fields(TMask& msk, int page, int logicnum, int x, int y,
const short did = desc_in_sh && (i == mci.levels() - 1) ? key_id+mci.levels() : des_id+i;
TEdit_field& dfld = msk.add_string(did, page, "", tab1, y+i, 50, "B", 72+tab0-tab1);
ca_create_browse2(dfld, i, logicnum, key_id);
if ((mode & 0x2) != 0 && fieldname == NULL)
if ((mode & 0x2) != 0 && fieldname == nullptr)
dfld.set_key(2);
else
dfld.set_field("");
@ -964,14 +971,14 @@ int ca_create_fields_compact(TMask& msk, int page, int logicnum, int x, int y,
const char* flags = picture[0] == '0' || picture[0] == '9' ? "BUZG" : "BUG";
TEdit_field* kfld = NULL;
TEdit_field* kfld = nullptr;
if (mci.is_numeric_picture(i)) // Numeric
kfld = &msk.add_number(kid, page, prompt, tab0 + offset, y + row_offset, picture.len(), flags);
else
kfld = &msk.add_string(kid, page, prompt, tab0 + offset, y + row_offset, picture.len(), flags);
ca_create_browse1(*kfld, i, logicnum, key_id, des_id);
if ((mode & 0x1) != 0 && fieldname == NULL)
if ((mode & 0x1) != 0 && fieldname == nullptr)
kfld->set_key(1);
// Ho specificato un nome di campo speciale
@ -995,7 +1002,7 @@ int ca_create_fields_compact(TMask& msk, int page, int logicnum, int x, int y,
}
// Copio il checktype nel campo fantasma per colorare correttamente la colonna
if (msk.get_sheet() != NULL && kfld->required())
if (msk.get_sheet() != nullptr && kfld->required())
msk.efield(kid-100).check_type(kfld->check_type());
}
@ -1010,7 +1017,7 @@ int ca_create_fields_compact(TMask& msk, int page, int logicnum, int x, int y,
TEdit_field& dfld = (i < mci.levels() - 1) && (i != par_items -1) ? msk.add_string(did, page, "", 50, 50, 50, "B")
: msk.add_string(did, page, "", tab1, y + row_offset, 50, "B", 72+tab0-tab1);
ca_create_browse2(dfld, i, logicnum, key_id);
if ((mode & 0x2) != 0 && fieldname == NULL)
if ((mode & 0x2) != 0 && fieldname == nullptr)
dfld.set_key(2);
else
dfld.set_field("");
@ -1034,7 +1041,7 @@ int ca_create_fields_ext(TMask& m, int page, int x, int y, short first_id,
for (int i = 0; i < 2; i++)
{
const TString& level = ini.get("Level", NULL, i+1); // Legge il livello 1 o 2
const TString& level = ini.get("Level", nullptr, i+1); // Legge il livello 1 o 2
if (level == "CDC" && cdc_fld && *cdc_fld) // Crea centro di costo
{
@ -1117,7 +1124,7 @@ int ca_create_fields_ext(TMask& m, int page, int x, int y, short first_id,
numero_campi += nfields;
}
if (m.get_sheet() != NULL) //Se è una maschera di riga, sistemo le colonne delle sheet
if (m.get_sheet() != nullptr) //Se è una maschera di riga, sistemo le colonne delle sheet
{
TSheet_field& s = *m.get_sheet();
for (short id = first_id + 116; id >= first_id + 100; id--)
@ -1472,8 +1479,9 @@ bool TSimple_anal_msk::on_field_event(TOperable_field& o, TField_event e, long j
const TTree_field& fld = (const TTree_field&)o;
const TTree& tree = *fld.tree();
TToken_string curr; tree.curr_id(curr);
TEdit_field* last = NULL;
for (int i = 0; ; i++)
TEdit_field* last = nullptr;
for (int i = 0; ; i++)
{
const short id = get_field_id(i);
if (id <= 0)
@ -1488,7 +1496,7 @@ bool TSimple_anal_msk::on_field_event(TOperable_field& o, TField_event e, long j
if (tok && *tok)
last = &e;
}
if (last != NULL)
if (last != nullptr)
{
if (last->check())
stop_run(K_AUTO_ENTER);
@ -1658,7 +1666,8 @@ const TToken_string& TSimple_anal_msk::get_key_value(const TRectype& rec, int c)
const TToken_string& TSimple_anal_msk::get_key_value(int c) const
{
TToken_string& val = get_tmp_string();
for (TEditable_field* f = get_key_field(c, true); f != NULL; f = get_key_field(c, false))
for (TEditable_field* f = get_key_field(c, true); f != nullptr; f = get_key_field(c, false))
{
val.add(f->get());
}
@ -1780,8 +1789,9 @@ void TAnal_tree::node2id(const TObject* node, TString& id) const
bool TAnal_tree::goto_root()
{
bool ok = false;
//gestione speciale per le fasi con babbo
if (_father_curs != NULL)
if (_father_curs != nullptr)
{
if (_father_curs->items() > 0)
{
@ -2013,7 +2023,7 @@ TImage* TAnal_tree::image(bool selected) const
return get_res_image(bmp_id);
}
TAnal_tree::TAnal_tree(int logicnum) : _curs(NULL), _father_curs(NULL), _is_father(false)
TAnal_tree::TAnal_tree(int logicnum) : _curs(nullptr), _father_curs(nullptr), _is_father(false)
{
TString select;
_curs = new TCursor(new TRelation(logicnum), ca_create_user_select_clause(logicnum));
@ -2170,10 +2180,8 @@ bool TAnal_app::remove()
bool TAnal_app::user_destroy()
{
if (_msk != NULL)
delete _msk;
if (_rel != NULL)
delete _rel;
SAFE_DELETE(_msk);
SAFE_DELETE(_rel);
return true;
}
@ -2219,7 +2227,7 @@ const char * TAnal_mov::row_code(int row) const
for (int i = 0; i < 2; i++)
{
const TString& level = cfg.get("Level", NULL, i+1); // Legge il livello 1 o 2
const TString& level = cfg.get("Level", nullptr, i+1); // Legge il livello 1 o 2
if (level == "CDC") // Crea centro di costo
{
@ -2344,7 +2352,7 @@ void TAnal_mov::saldo_set_reset(const TRectype& row, bool reset)
TImporto curr_imp(imp_row.sezione(), texaco.get());
key.add(es, 1); //sistema l'anno di esercizio nella chiave
TImporto* imp = (TImporto*)_saldi.objptr(key);
if (imp == NULL)
if (imp == nullptr)
{
imp = new TImporto;
_saldi.add(key, imp);
@ -2356,7 +2364,8 @@ void TAnal_mov::saldo_set_reset(const TRectype& row, bool reset)
if (ca_ori_present(row))
{
TImporto* impind = (TImporto*)_saldind.objptr(key);
if (impind == NULL)
if (impind == nullptr)
{
impind = new TImporto;
_saldind.add(key, impind);
@ -2371,7 +2380,8 @@ void TAnal_mov::saldo_set_reset(const TRectype& row, bool reset)
else //saldo in un solo anno (caso standard)
{
TImporto* imp = (TImporto*)_saldi.objptr(key);
if (imp == NULL)
if (imp == nullptr)
{
imp = new TImporto;
_saldi.add(key, imp);
@ -2383,7 +2393,8 @@ void TAnal_mov::saldo_set_reset(const TRectype& row, bool reset)
if (ca_ori_present(row))
{
TImporto* impind = (TImporto*)_saldind.objptr(key);
if (impind == NULL)
if (impind == nullptr)
{
impind = new TImporto;
_saldind.add(key, impind);
@ -2483,8 +2494,9 @@ bool TAnal_mov::save_saldi(const int annoes)
if (err == NOERR)
{
const char* fld_sez = NULL;
const char* fld_val = NULL;
const char* fld_sez = nullptr;
const char* fld_val = nullptr;
switch (tipo)
{
case 'P': fld_sez = SALDANA_SEZIONEP; fld_val = SALDANA_SALDOP; break;
@ -2500,7 +2512,7 @@ bool TAnal_mov::save_saldi(const int annoes)
const TImporto * ind = (const TImporto*) _saldind.objptr(key);
if (ind != NULL)
if (ind != nullptr)
{
const TImporto& impind = *(const TImporto*)ind;
switch (tipo)
@ -2671,7 +2683,8 @@ int TAnal_mov::save_rmov_comp() const
{
const TRectype* rmov_old = (TRectype*)itm;
const TRectype* rmov_new = (TRectype*)new_rows.objptr(key);
if (rmov_new == NULL)
if (rmov_new == nullptr)
rmov_old->remove(file);
}
}
@ -3296,10 +3309,12 @@ bool ca_extract_sheet_field(const TSheet_field& sheet, const int row, const int
FOR_EACH_MASK_FIELD(mask_sheet, i, f) //giro sui campi della maschera di riga
{
const TFieldref* fr = f->field(); //campo corrente della maschera
if (fr != NULL && f->is_edit()) //deve essere un campo di tipo edit
if (fr != nullptr && f->is_edit()) //deve essere un campo di tipo edit
{
TEdit_field& e = *(TEdit_field*)f; //visto che è di tipo edit può creare l'edit_field per farne la browse
if (e.browse() != NULL)
if (e.browse() != nullptr)
{
const TCursor& cur = *e.browse()->cursor();
const int ln = cur.file().num(); //Allah! dal campo ricava il cursore sul file di numero ln

View File

@ -13,8 +13,8 @@
#include <relapp.h>
#endif
#ifndef __CGLIB03_H
class TBill;
#ifndef __CGLIB_H
#include "../cg/cglib.h"
#endif
class TRecordset ;

View File

@ -4,6 +4,7 @@
#include <rdoc.h>
#include <pconti.h>
#include <utility.h>
#include "movana.h"
#include "pconana.h"
@ -263,7 +264,7 @@ bool TPconana_recordset::valid_record(const TRelation& rel) const
return true;
}
static const TPconana_recordset* _current_recset = NULL;
static const TPconana_recordset* _current_recset = nullptr;
bool TPconana_recordset::pianoconti_filter(const TRelation* rel)
{ return _current_recset->valid_record(*rel); }
@ -365,12 +366,13 @@ size_t TAnal_report::get_usr_words(TString_array& words) const
"CA_FORMAT_CONTO",
"CA_FORMAT_CMSCDC",
"CA_FORMAT_CONTO_DESCR",
NULL
nullptr
};
((TAnal_report*)this)->_first_msg = words.items(); // Calcola il primo numero disponibile
size_t i;
for (i = 0; name[i] != NULL; i++)
for (i = 0; name[i] != nullptr; i++)
words.add(name[i]);
return words.items();
@ -1125,13 +1127,11 @@ TSaldi_cache::TSaldi_cache() : TCache(3881) // Numero primo
const TSaldanal& ca_saldo(const TAnal_bill& bill, const TDate& dal, const TDate& al, word tipi)
{
static TSaldi_cache* cache = NULL;
if (tipi == 0 && cache != NULL)
{
delete cache;
cache = NULL;
}
if (cache == NULL)
static TSaldi_cache* cache = nullptr;
if (tipi == 0)
SAFE_DELETE(cache);
if (cache == nullptr)
cache = new TSaldi_cache;
return cache->saldo(bill, dal, al, tipi);
}
@ -1168,7 +1168,8 @@ int TAnal_report_mask::create_sheet_fields(short sheet_id, int lf, int& y, short
}
}
const char* fieldname = NULL;
const char* fieldname = nullptr;
switch(logic)
{
case LF_CDC : fieldname = RMOVANA_CODCCOSTO; break;
@ -1207,7 +1208,8 @@ void TAnal_report_mask::create_sheet(short sheet_id)
for (int i = 0; i < 2; i++)
{
const TString& level = ini.get("Level", NULL, i+1); // Legge il livello 1 o 2
const TString& level = ini.get("Level", nullptr, i+1); // Legge il livello 1 o 2
if (level == "CDC") // Crea centro di costo
{
if (fasinfo.parent() == LF_CDC)
@ -1255,7 +1257,8 @@ int TAnal_report_mask::get_row_bill(TSheet_field& sf, int r, TAnal_bill& bill)
for (int level = 0; level <= 2; level++)
{
const TMultilevel_code_info* info = ca_multilevel_code_info_by_index(level);
if (info == NULL)
if (info == nullptr)
break;
TString20 code;
for (int i = 0; i < info->levels(); i++)
@ -1280,7 +1283,8 @@ int TAnal_report_mask::set_row_bill(TSheet_field& sf, int r, const TAnal_bill& b
for (int level = 0; level <= 2; level++)
{
const TMultilevel_code_info* info = ca_multilevel_code_info_by_index(level);
if (info == NULL)
if (info == nullptr)
break;
TToken_string code;
switch (info->logic())

View File

@ -9,8 +9,8 @@
#include <report.h>
#endif
#ifndef __CGLIB01_H
#include "../cg/cglib01.h"
#ifndef __CGLIB_H
#include "../cg/cglib.h"
#endif
///////////////////////////////////////////////////////////

View File

@ -13,7 +13,7 @@
#include <modaut.h>
#include "cgsaldac.h"
#include "cglib03.h"
#include "cglib.h"
#include "cg1300m.h"
#include <clifo.h>

View File

@ -5,7 +5,7 @@
#include "cg1300.h"
#include "cg1313.h"
#include "cg2103.h"
#include "cglib.h"
#include <mov.h>

View File

@ -15,7 +15,7 @@
#include <recset.h>
#include "cg1314.h"
#include "cg1300n.h"
#include "cglib01.h"
#include "cglib.h"
bool TAgg_tcontoCF::create()
{

File diff suppressed because it is too large Load Diff

View File

@ -7,15 +7,13 @@
#define F_BILANCIO 105
#define F_ANNO 106
#define F_STAMPA 107
#define F_STAMPA1 108
#define F_DATALIM 109
#define F_TOTALI 110
#define F_CODICI 111
#define F_SALDO 112
#define F_VERIFICA 113
#define F_STAMPAV 114
#define F_DATADA 115
#define F_DATAA 116
#define F_DATAINI 115
#define F_SITUAZIONE 118
#define F_STAMPAC 119
#define F_ORDINAMENTO 120
@ -38,8 +36,9 @@
#define F_PROVVB 142
#define F_PROVVC 143
#ifdef CONT_SEP
#define F_CONTSEP 144
#define F_CONTSEP 144
#endif
#define F_COMPCR 145
#endif // __CG1500_H

View File

@ -50,157 +50,106 @@ BEGIN
CHECKTYPE NORMAL
WARNING "L'esercizio non esiste"
ADD RUN cg0 -5 esc
MESSAGE EMPTY CLEAR,4@
MESSAGE ENABLE,4@
END
RADIOBUTTON F_BILANCIO 37
BEGIN
PROMPT 2 5 "@bTipo bilancio"
PROMPT 1 5 "@bTipo bilancio"
HELP "Indicare il tipo di bilancio da stampare"
ITEM "1|Bilancio a sezioni contrapposte"
//MESSAGE HIDE,F_STAMPA1|RESET,F_STAMPA1|HIDE,F_VERIFICA|RESET,F_VERIFICA
//MESSAGE HIDE,F_STAMPAV|RESET,F_STAMPAV|HIDE,F_DATADA|RESET,F_DATADA
//MESSAGE HIDE,F_DATAA|RESET,F_DATAA|HIDE,F_SITUAZIONE|RESET,F_SITUAZIONE
//MESSAGE HIDE,F_ORDINAMENTO|RESET,F_ORDINAMENTO|HIDE,F_STAMPAC|RESET,F_STAMPAC
MESSAGE SHOW,1@
MESSAGE HIDE,2@|RESET,2@
MESSAGE HIDE,96|HIDE,97|HIDE,98|HIDE,99
MESSAGE CLEAR,F_MODULO
//MESSAGE SHOW,F_STAMPA|K_SPACE,F_STAMPA
MESSAGE CLEAR,F_QUADRATURA
ITEM "2|Bilancio di verifica"
//MESSAGE HIDE,F_STAMPA|RESET,F_STAMPA
//MESSAGE HIDE,F_DATALIM|RESET,F_DATALIM|HIDE,F_TOTALI|RESET,F_TOTALI
//MESSAGE HIDE,F_CODICI|RESET,F_CODICI|HIDE,F_SALDO|RESET,F_SALDO
//MESSAGE HIDE,F_STAMPAV|RESET,F_STAMPAV
MESSAGE HIDE,1@|RESET,1@
MESSAGE SHOW,2@
//MESSAGE SHOW,F_VERIFICA|K_SPACE,F_VERIFICA|SHOW,F_STAMPA1|K_SPACE,F_STAMPA1
MESSAGE ENABLE,F_MODULO
MESSAGE SHOW,96|SHOW,97|SHOW,98|SHOW,99
END
RADIOBUTTON F_STAMPA 28
BEGIN
PROMPT 41 5 "@bTipo stampa"
HELP "Indicare il tipo di stampa"
GROUP 1
ITEM "1|Per date limite"
MESSAGE SHOW,F_DATALIM|SHOW,F_TOTALI|SHOW,F_CODICI|SHOW,F_SALDO
MESSAGE SHOW,F_DATALIM
MESSAGE ENABLE,F_COMPCR
#ifdef CONT_SEP
MESSAGE SHOW,F_CONTSEP
#endif
ITEM "2|All'ultima immissione"
MESSAGE HIDE,F_DATALIM|RESET,F_DATALIM
MESSAGE SHOW,F_TOTALI|SHOW,F_CODICI|SHOW,F_SALDO
MESSAGE CLEAR,F_COMPCR
MESSAGE CLEAR,F_QUADRATURA
#ifdef CONT_SEP
MESSAGE HIDE,F_CONTSEP
#endif
END
RADIOBUTTON F_STAMPA1 28
DATE F_DATAINI
BEGIN
PROMPT 40 5 "@bTipo stampa"
//FLAGS "G"
HELP "Indicare il tipo di stampa"
GROUP 2
ITEM "1|Per date limite"
MESSAGE SHOW,F_VERIFICA|SHOW,F_MODULO
#ifdef CONT_SEP
MESSAGE SHOW,F_CONTSEP
#endif
ITEM "2|All'ultima immissione"
MESSAGE SHOW,F_VERIFICA|SHOW,F_MODULO
MESSAGE COPY,F_STAMPA
#ifdef CONT_SEP
MESSAGE HIDE,F_CONTSEP
#endif
PROMPT 2 9 "Data iniziale "
HELP "Data dall quale iniziare la stampa"
END
DATE F_DATALIM
BEGIN
PROMPT 2 9 "Data limite "
PROMPT 42 9 "Data limite "
HELP "Data fino alla quale si vuole la stampa"
GROUP 1
END
BOOLEAN F_TOTALI
BEGIN
PROMPT 33 9 "Non stampare totali per gruppo "
PROMPT 33 10 "Non stampare totali per gruppo "
HELP "Indicare se non si devono stampare i totali dei gruppi"
GROUP 1
END
BOOLEAN F_COMPCR
BEGIN
PROMPT 66 10 "Bilancio per competenza costi/ricavi "
HELP "Bilancio per competenza costi/ricavi"
FLAGS "D"
END
BOOLEAN F_CODICI
BEGIN
PROMPT 2 10 "Non stampare codici conti "
PROMPT 2 11 "Non stampare codici conti "
HELP "Indicare se non si devono stampare i codici dei conti"
GROUP 1
END
BOOLEAN F_SALDO
BEGIN
PROMPT 33 10 "Non stampare movimenti con saldo a zero "
PROMPT 33 11 "Non stampare movimenti con saldo a zero "
HELP "Indicare se non si devono stampare i movimenti con saldo nullo"
GROUP 1
END
TEXT 96
BEGIN
PROMPT 2 9 "Dalla data competenza "
END
TEXT 97
BEGIN
PROMPT 38 9 "Alla data competenza "
END
TEXT 98
BEGIN
PROMPT 2 10 "Dalla data operazione "
END
TEXT 99
BEGIN
PROMPT 38 10 "Alla data operazione "
END
DATE F_DATADA
BEGIN
PROMPT 24 10 ""
HELP "Data dall quale iniziare la stampa"
GROUP 2
END
DATE F_DATAA
BEGIN
PROMPT 60 10 ""
GROUP 2
END
BOOLEAN F_NORMALI
BEGIN
PROMPT 2 11 "Movimenti : Normali"
PROMPT 2 12 "Movimenti : Normali"
END
BOOLEAN F_PROVVM
BEGIN
PROMPT 29 11 "Provvisori : Manuali"
PROMPT 29 12 "Provvisori : Manuali"
END
BOOLEAN F_PROVVB
BEGIN
PROMPT 52 11 "Comp. costi/ricavi"
PROMPT 52 12 "Comp. costi/ricavi"
END
BOOLEAN F_PROVVC
BEGIN
PROMPT 73 11 "Cespiti"
PROMPT 73 12 "Cespiti"
END
LIST F_MODULO 1 12
BEGIN
PROMPT 2 12 "Larghezza modulo di stampa "
PROMPT 2 13 "Larghezza modulo di stampa "
HELP "Indicare il numero di caratteri del foglio (larghezza)"
ITEM "1|132 colonne"
@ -209,13 +158,13 @@ END
BOOLEAN F_QUADRATURA
BEGIN
PROMPT 2 13 "Quadratura con Libro Giornale"
PROMPT 2 14 "Quadratura con Libro Giornale"
END
#ifdef CONT_SEP
STRING F_CONTSEP 6
BEGIN
PROMPT 2 14 "Contabilità separata "
PROMPT 2 15 "Contabilità separata "
USE &NPENT
INPUT CODTAB F_CONTSEP
DISPLAY "Codice@6" CODTAB
@ -234,13 +183,9 @@ RADIOBUTTON F_VERIFICA 27
BEGIN
PROMPT 2 1 "@bStampa bilancio di verifica "
HELP "Tipo di bilancio di verifica"
GROUP 2
ITEM "1|Bilancio"
MESSAGE SHOW,4@|HIDE,5@|HIDE,6@
ITEM "2|Saldi di mastro"
MESSAGE SHOW,4@|HIDE,5@|HIDE,6@
ITEM "3|Situazione C/F"
MESSAGE HIDE,4@|SHOW,5@|SHOW,6@
ITEM "1|Bilancio" MESSAGE SHOW,4@|HIDE,6@
ITEM "2|Saldi di mastro" MESSAGE SHOW,4@|HIDE,6@
ITEM "3|Situazione C/F" MESSAGE HIDE,4@|SHOW,6@
END
RADIOBUTTON F_STAMPAC 36
@ -248,7 +193,8 @@ BEGIN
PROMPT 34 1 "@bTipo stampa"
ITEM "1|Conti movimentati"
ITEM "2|Conti con saldo diverso da zero"
GROUP 4
GROUP 6
FLAGS "H"
END
RADIOBUTTON F_STAMPAV 36
@ -257,8 +203,7 @@ BEGIN
ITEM "1|Conti movimentati"
ITEM "2|Conti con saldo diverso da zero"
ITEM "3|Tutti i conti"
FLAGS "H"
GROUP 6
GROUP 4
END
BOOLEAN F_SEPARATOR

File diff suppressed because it is too large Load Diff

View File

@ -9,7 +9,6 @@
#define F_DATASTAMPA 103
#define F_TIPOBIL 104
#define F_TIPOSTAMPA 105
#define F_TIPOSTAMPA1 106
#define F_DATALIM 107
#define F_DATABILRAF 108
#define F_STAMPAINT 109
@ -18,7 +17,6 @@
#define F_COMPETENZA 112
#define F_STAMPAMODULO 113
#define F_DATAINI 114
#define F_DATAFINE 115
#define F_ANNOESE 116
#define F_ANNORAFFR 117
#define F_NORMALI 118
@ -28,6 +26,7 @@
#define F_PROVVM 122
#define F_PROVVB 123
#define F_PROVVC 124
#define F_COMPCR 125
#endif // __CG1600_H

View File

@ -54,6 +54,8 @@ BEGIN
OUTPUT F_ANNOESE CODTAB
FLAGS "RZ"
CHECKTYPE NORMAL
MESSAGE EMPTY DISABLE,F_COMPCR
MESSAGE ENABLE,F_COMPCR
ADD RUN cg0 -5 esc
END
@ -75,10 +77,9 @@ BEGIN
PROMPT 4 6 "Tipo bilancio "
HELP "Indicare il tipo di bilancio da stampare"
ITEM "1|Bilancio scalare"
MESSAGE HIDE,F_TIPOSTAMPA1|RESET,F_TIPOSTAMPA1|SHOW,F_TIPOSTAMPA|K_SPACE,F_TIPOSTAMPA
MESSAGE SHOW,F_ANNORAFFR|SHOW,F_DATABILRAF|HIDE,F_SEPARATOR
MESSAGE SHOW,F_ANNORAFFR|SHOW,F_DATABILRAF|HIDE,F_SEPARATOR
MESSAGE CLEAR,F_QUADRATURA
ITEM "2|Bilancio di verifica"
MESSAGE HIDE,F_TIPOSTAMPA|RESET,F_TIPOSTAMPA|SHOW,F_TIPOSTAMPA1|K_SPACE,F_TIPOSTAMPA1
MESSAGE HIDE,F_ANNORAFFR|HIDE,F_DATABILRAF|SHOW,F_SEPARATOR
END
@ -87,79 +88,38 @@ BEGIN
PROMPT 4 7 "Tipo stampa "
HELP "Indicare il tipo di stampa che si vuole avere"
ITEM "1|Per data limite"
MESSAGE HIDE,F_STAMPAMODULO|HIDE,F_DATAINI|HIDE,F_DATAFINE
MESSAGE RESET,F_STAMPAMODULO|RESET,F_DATAINI|RESET,F_DATAFINE
MESSAGE SHOW,F_DATALIM|SHOW,F_STAMPAINT|SHOW,F_STAMPAMOV
MESSAGE ENABLE,F_COMPCR
ITEM "2|All'ultima immissione"
MESSAGE HIDE,F_DATALIM|HIDE,F_STAMPAMODULO|HIDE,F_DATAINI|HIDE,F_DATAFINE
MESSAGE RESET,F_STAMPAMODULO|RESET,F_DATAINI|RESET,F_DATALIM|RESET,F_DATAFINE|
MESSAGE HIDE,F_DATALIM|RESET,F_DATALIM
MESSAGE SHOW,F_STAMPAINT|SHOW,F_STAMPACOD|SHOW,F_STAMPAMOV
END
LIST F_TIPOSTAMPA1 23
BEGIN
PROMPT 4 7 "Tipo stampa "
ITEM "1|Per data limite"
MESSAGE HIDE,F_DATALIM
MESSAGE RESET,F_DATALIM
MESSAGE SHOW,F_STAMPAINT|SHOW,F_STAMPACOD|SHOW,F_STAMPAMOV
MESSAGE SHOW,F_DATAINI|SHOW,F_DATAFINE|SHOW,F_STAMPAMODULO
ITEM "2|All'ultima immissione"
MESSAGE HIDE,F_DATALIM|HIDE,F_DATAINI|HIDE,F_DATAFINE
MESSAGE RESET,F_DATAINI|RESET,F_DATALIM|RESET,F_DATAFINE
MESSAGE SHOW,F_STAMPAINT|SHOW,F_STAMPACOD|SHOW,F_STAMPAMOV|SHOW,F_STAMPAMODULO
MESSAGE COPY,F_TIPOSTAMPA
END
TEXT 96
BEGIN
PROMPT 4 9 "Dalla data competenza "
END
TEXT 97
BEGIN
PROMPT 40 9 "Alla data competenza "
END
TEXT 98
BEGIN
PROMPT 4 9 "Dalla data operazione "
END
TEXT 99
BEGIN
PROMPT 40 9 "Alla data operazione "
END
DATE F_DATALIM
BEGIN
PROMPT 4 9 "Data limite "
HELP "Data fin alla quale si vuole la stampa"
FLAGS "G"
// VALIDATE NOT_EMPTY_FUNC
END
DATE F_DATABILRAF
BEGIN
PROMPT 36 9 "Data bil. da raffrontare "
HELP "Data d'esercizio da raffrontare con data limite"
FLAGS "G"
// VALIDATE NOT_EMPTY_FUNC
MESSAGE CLEAR,F_COMPCR
END
DATE F_DATAINI
BEGIN
PROMPT 26 9 ""
HELP "Data di inizio calcolo"
FLAGS "G"
// VALIDATE NOT_EMPTY_FUNC
PROMPT 4 8 "Data iniziale "
HELP "Data dalla quale si vuole iniziare la stampa"
END
DATE F_DATAFINE
DATE F_DATALIM
BEGIN
PROMPT 62 9 ""
HELP "Data di fine calcolo"
FLAGS "G"
// VALIDATE NOT_EMPTY_FUNC
PROMPT 41 8 "Data limite "
HELP "Data fin alla quale si vuole la stampa"
END
DATE F_DATABILRAF
BEGIN
PROMPT 28 9 "Data bil. da raffrontare "
HELP "Data d'esercizio da raffrontare con data limite"
END
BOOLEAN F_COMPCR
BEGIN
PROMPT 4 10 "Bilancio per competenza costi/ricavi "
HELP "Bilancio per competenza costi/ricavi"
FLAGS "D"
GROUP 4
END
BOOLEAN F_STAMPAINT
@ -172,49 +132,49 @@ END
BOOLEAN F_STAMPACOD
BEGIN
PROMPT 41 11 "Non stampare cod. conti"
PROMPT 4 12 "Non stampare cod. conti"
HELP "Indicare se non stampare i codici dei conti"
END
BOOLEAN F_STAMPAMOV
BEGIN
PROMPT 4 12 "Non stampare mov. con saldo a 0"
PROMPT 4 13 "Non stampare mov. con saldo a 0"
HELP "Indicare se non stampare i movimenti con saldo nullo"
END
BOOLEAN F_NORMALI
BEGIN
PROMPT 4 13 "Movimenti : Normali"
PROMPT 4 14 "Movimenti : Normali"
END
BOOLEAN F_PROVVM
BEGIN
PROMPT 30 13 "Provvisori : Manuali"
PROMPT 30 14 "Provvisori : Manuali"
END
BOOLEAN F_PROVVB
BEGIN
PROMPT 53 13 "Comp. costi/ricavi"
PROMPT 53 14 "Comp. costi/ricavi"
END
BOOLEAN F_PROVVC
BEGIN
PROMPT 75 13 "Cespiti"
PROMPT 75 14 "Cespiti"
END
BOOLEAN F_STAMPAMODULO
BEGIN
PROMPT 4 14 "Stampa su modulo 198"
PROMPT 4 15 "Stampa su modulo 198"
END
BOOLEAN F_QUADRATURA
BEGIN
PROMPT 4 15 "Quadratura con Libro Giornale"
PROMPT 4 16 "Quadratura con Libro Giornale"
END
BOOLEAN F_SEPARATOR
BEGIN
PROMPT 4 16 "Non stampare il separatre delle migliaia"
PROMPT 4 17 "Non stampare il separatre delle migliaia"
END
ENDPAGE

View File

@ -1,5 +1,4 @@
#include "cg2101.h"
#include "cg2103.h"
#include "cgsaldac.h"
#include <diction.h>

View File

@ -1,12 +1,8 @@
#ifndef __CG2101_H
#define __CG2101_H
#ifndef __CG2103_H
#include "cg2103.h"
#endif
#ifndef __CGLIB03_H
#include "cglib03.h"
#ifndef __CGLIB_H
#include "cglib.h"
#endif
#ifndef __RECARRAY_H

View File

@ -17,12 +17,8 @@
#include "cgsaldac.h"
#endif
#ifndef __CGLIB02_H
#include "cglib02.h"
#endif
#ifndef __CG2101_H
#include "cg2101.h"
#ifndef __CGLIB_H
#include "cglib.h"
#endif
#ifndef __CG2101_H

View File

@ -1,4 +1,4 @@
#include "cg2103.h"
#include "cglib.h"
#include <config.h>
#include <diction.h>

View File

@ -2,8 +2,8 @@
#define __CG2103_H
// Registri ed esercizi
#ifndef __CGLIB01_H
#include "cglib01.h"
#ifndef __CGLIB_H
#include "cglib.h"
#endif
class TCausale : public TArray

View File

@ -13,9 +13,10 @@
#include "../ca/calib02.h"
#include "cg2200.h"
#include "cg2101.h"
#include "cglib01.h"
#include "cglib02.h"
//#include "cg2101.h"
//#include "cglib01.h"
//#include "cglib02.h"
#include "cglib.h"
class TProvvisori_msk : public TAutomask
{

View File

@ -2,7 +2,7 @@
#include "applicat.h"
#include "automask.h"
#include "cg2300a.h"
#include "cg2103.h"
#include "cglib.h"
#include "lffiles.h"
#include "isam.h"
#include "mov.h"

View File

@ -1,13 +1,13 @@
// Esercizi contabili e registri IVA
#include "cglib01.h"
#include "cglib.h"
#include <config.h>
#include <diction.h>
#include <mask.h>
#include <tabutil.h>
#include <recarray.h>
#include <recset.h>
#include <relation.h>
#include <tabutil.h>
#include <clifo.h>
#include <comuni.h>
@ -18,7 +18,457 @@
#include <rmoviva.h>
#include <rmov.h>
#include "comuni.h"
#include <comuni.h>
///////////////////////////////////////////////////////////
// Causale
///////////////////////////////////////////////////////////
TCausale::TCausale(const char* cod, int year)
: TArray(12), _rec(LF_CAUSALI),
_iva(iva_errata), _corrisp(false),
_sezione_clifo(' '), _provvisorio(' '),
_sezione_ritsoc(' '), _sezione_ritfis(' '), _sezione_revcharge(' '),
_regolarizzazione(false)
{
if (cod && *cod)
read(cod, year);
if (soloiva())
{
TCursor c(new TRelation(LF_CAUSALI));
int items = c.items();
for (c = 0L; c.pos() < items && !_regolarizzazione; ++c)
_regolarizzazione = c.curr().get(CAU_CODCAUREG) == codice();
}
}
bool TCausale::reread()
{
const TString4 cod = codice();
if (cod.full())
{
const int year = _reg.year();
if (year > 0)
return read(cod, year);
}
return false;
}
// Legge le righe della causale attualmente selezionata sulla maschera
bool TCausale::read(const char* cod, int year)
{
_rec.zero(); // Delete header
destroy(); // Delete all rows
_iva = iva_errata; // Delete misc info
_sezione_clifo = _sezione_ritsoc = _provvisorio = ' ';
_corrisp = false;
if (cod && *cod > ' ')
{
_rec = cache().get(LF_CAUSALI, cod);
if (_rec.empty())
return false;
_provvisorio = _rec.get_char(CAU_PROVV);
TLocalisamfile rcaus(LF_RCAUSALI);
rcaus.put(CAU_CODCAUS, cod);
rcaus.put(CAU_NRIGA, 0);
int err;
for (err = rcaus.read(_isgteq); // Find first line
err == NOERR && rcaus.get(CAU_CODCAUS) == cod;
err = rcaus.next()) // Read next line
{
const int riga = rcaus.get_int(CAU_NRIGA);
add(rcaus.curr(), riga);
}
const TString4 codreg(_rec.get(CAU_REG));
const bool ok = _reg.read(codreg, year); // Read register
if (!ok && codreg.not_empty())
return error_box(FR("Non esiste il registro '%s' del %d"),
(const char*)codreg, year);
calcIVA();
}
else
{
_iva = nessuna_iva; // Clear IVA data
_corrisp = false;
_reg.read("", year);
}
return true;
}
TBill& TCausale::bill(int num, TBill& conto) const
{
const TRectype* rec = row(num);
if (rec != nullptr)
conto.set(rec->get_int(RCA_GRUPPO), rec->get_int(RCA_CONTO),
rec->get_long(RCA_SOTTOCONTO), rec->get_char(RCA_TIPOCF));
return conto;
}
const char* TCausale::cod_desc_agg(int num) const
{
const TRectype* rec = row(num);
if (rec)
return rec->get(RCA_CODDESC);
return ""; // ho problemi con ? :
}
const char* TCausale::desc_agg(int num) const
{
const char* cod = cod_desc_agg(num);
if (cod && *cod)
return cache().get("%DPN", cod, "S0");
return ""; // ho problemi con ? :
}
const char* TCausale::descrizione() const
{
return _rec.get(CAU_DESCR);
}
const char* TCausale::codice() const
{
return _rec.get(CAU_CODCAUS);
}
bool TCausale::data_doc() const
{
return _rec.get_bool(CAU_DATADOC);
}
bool TCausale::num_doc() const
{
return _rec.get_bool(CAU_NUMDOC);
}
bool TCausale::apertura() const
{
return _rec.get_char(CAU_MOVAP) == 'A';
}
bool TCausale::chiusura() const
{
return _rec.get_char(CAU_MOVAP) == 'C';
}
bool TCausale::sezionale() const
{
return _rec.get_bool(CAU_MOVSEZ);
}
bool TCausale::valuta() const
{
return _rec.get_bool(CAU_MOVVAL);
}
bool TCausale::intra() const
{
return _rec.get_bool(CAU_INTRACOM);
}
bool TCausale::valintra() const
{
return _rec.get_bool(CAU_VALINTRA);
}
bool TCausale::soloiva() const
{
return _rec.get_bool(CAU_SOLOIVA);
}
int TCausale::regime_speciale() const
{
return _rec.get_int(CAU_REGSPIVA);
}
bool TCausale::regolarizzazione() const
{
return _regolarizzazione;
}
bool TCausale::ril_fat_em_ric() const
{
return _rec.get_bool(CAU_RILFTEMRI);
}
bool TCausale::datareg_prec() const
{
return _rec.get_bool(CAU_DATAREGPR);
}
bool TCausale::reverse_charge() const
{
const int rsi = regime_speciale();
return (rsi >= 13 && rsi <= 18) || rsi == 50 || rsi == 51; // Reverse charge!
}
bool TCausale::reverse_charge_pubb() const
{
const int rsi = regime_speciale();
return (rsi >= 13 && rsi <= 19) || rsi == 50 || rsi == 51; // Reverse charge!
}
bool TCausale::esclusione_allegati() const
{
return _rec.get_bool(CAU_ALLEG);
}
const TString& TCausale::causale_collegata() const
{
return _rec.get(CAU_CODCAUSIM);
}
const TString& TCausale::causale_reg_iva() const
{
return _rec.get(CAU_CODCAUREG);
}
const TString& TCausale::tipo_doc() const
{
return _rec.get(CAU_TIPODOC);
}
tipo_movimento TCausale::tipomov() const
{
return tipo_movimento(_rec.get_int(CAU_TIPOMOV));
}
const TString& TCausale::tipodoc() const
{
return _rec.get(CAU_TIPODOC);
}
bool TCausale::saldaconto(const TDate& datareg) const
{
bool yes = tipomov() > 0;
if (yes && datareg.ok())
{
static TDate _data_sal = ini_get_string(CONFIG_DITTA, "cg", "DatSal");
yes = datareg >= _data_sal;
}
return yes;
}
int TCausale::link_m770() const
{
return _rec.get_int(CAU_M770);
}
char TCausale::link_cespiti() const
{
return _rec.get_char(CAU_COLLCESP);
}
bool TCausale::link_analitica() const
{
return _rec.get_bool(CAU_MOVIND);
}
bool TCausale::link_industriale() const
{
return _rec.exist(CAU_MOVCGIND) && _rec.get_bool(CAU_MOVCGIND);
}
bool TCausale::ok() const
{
return iva() != iva_errata;
}
char TCausale::sezione(int riga, bool low_level) const
{
const TRectype* rec = row(riga);
char sez = rec ? toupper(rec->get_char(RCA_SEZIONE)) : ' ';
if (sez <= ' ' && !low_level) // Guess section on tipocf
{
const TRectype* uno = row(1);
char tipocf = uno ? toupper(uno->get_char(RCA_TIPOCF)) : ' ';
if (tipocf <= ' ')
tipocf = (iva() == iva_vendite) ? 'C' : 'F'; // Guess tipocf on IVA
sez = (tipocf == 'C') ? 'D' : 'A';
}
return sez;
}
char TCausale::sezione_clifo() const
{
if (_sezione_clifo <= ' ')
(char&)_sezione_clifo = sezione(1);
return _sezione_clifo;
}
char TCausale::sezione_ritsoc() const
{
if (_sezione_ritsoc <= ' ')
{
const tipo_movimento tm = tipomov();
(char&)_sezione_ritsoc = sezione(tm <= tm_nota_credito ? RIGA_RITENUTE_SOCIALI : RIGA_PAG_RITSOC, true);
if (_sezione_ritsoc < 'A')
(char&)_sezione_ritsoc = (tm <= tm_nota_credito ? sezione_clifo() : (sezione_clifo() == 'D' ? 'A' : 'D'));
}
return _sezione_ritsoc;
}
char TCausale::sezione_ritfis() const
{
if (_sezione_ritfis == ' ')
{
const tipo_movimento tm = tipomov();
(char&)_sezione_ritfis = sezione(tm <= tm_nota_credito ? RIGA_RITENUTE_FISCALI : RIGA_PAG_RITFIS, true); // Fatture o Pagamenti
if (_sezione_ritfis < 'A')
(char&)_sezione_ritfis = (tm <= tm_nota_credito ? sezione_clifo() : (sezione_clifo() == 'D' ? 'A' : 'D'));
}
return _sezione_ritfis;
}
char TCausale::sezione_revcharge() const
{
if (_sezione_revcharge <= ' ')
{
(char&)_sezione_revcharge = sezione(RIGA_REVERSE_CHARGE);
if (_sezione_revcharge < 'A')
(char&)_sezione_revcharge = sezione_clifo();
}
return _sezione_revcharge;
}
bool TCausale::fattura_in_ritardo() const
{
return _rec.get_bool(CAU_RITFATT);
}
void TCausale::calcIVA()
{
TipoIVA i = nessuna_iva; // Tipo IVA di default
bool c = false; // Corrispettivi di default
const TString& td = tipo_doc();
if (td.full())
{
const TRectype& tpd = cache().get("%TPD", td);
if (!tpd.empty())
{
i = (TipoIVA)tpd.get_int("I0"); // IVA acquisti, vendite, generica
const TipoIVA ri = _reg.iva();
if (i == iva_generica)
i = ri;
if (i != ri)
{
error_box(FR("Tipo documento '%s' incompatibile con tipo registro"), (const char*)td);
i = iva_errata;
}
c = tpd.get_bool("B0"); // B0 flag corrispettivi
}
else
error_box(FR("Tipo documento sconosciuto: '%s'"), (const char*)td);
}
_iva = i;
_corrisp = c;
}
const TString& TCausale::compatible(const TCausale& c) const
{
const char* err = nullptr;
if (sezionale() != c.sezionale())
err = TR("il segnale di sezionale");
if (intra() != c.intra())
err = TR("la gestione dei movimenti intra");
if (valuta() != c.valuta())
err = TR("la gestione valuta");
if (valintra() != c.valintra())
err = TR("la gestione valuta intracomunitaria");
if (corrispettivi() != c.corrispettivi())
err = TR("la gestione dei corrispettivi");
if (iva() != c.iva())
err = TR("il tipo di IVA");
if (tipomov() != c.tipomov())
err = TR("il tipo di movimento");
if (err != nullptr)
{
TString& msg = get_tmp_string();
msg.format(FR("Causale incompatibile per %s"), err);
return msg;
}
return EMPTY_STRING;
}
bool TCausale::IVA2bill(const TCodiceIVA& iva, TBill& c) const
{
const TString& tipo = iva.tipo();
if (tipo.not_empty())
{
if (tipo == "ES") bill(5, c); else
if (tipo == "NI") bill(6, c); else
if (tipo == "NS") bill(7, c);
}
if (!c.ok())
bill(2, c);
const int spric = c.tipo_cr();
if (spric == 2 || spric == 3)
{
const TString& td = tipo_doc();
if (td == "FV" || td == "NC")
c.tipo_cr(4);
}
return c.ok();
}
///////////////////////////////////////////////////////////
// TCache_causali
///////////////////////////////////////////////////////////
class TCache_causale : public TCache
{
protected:
virtual TObject* key2obj(const char* key);
public:
const TCausale & caus(const char* key, const int anno = 0);
TCache_causale() : TCache() { }
virtual ~TCache_causale() { }
};
TObject* TCache_causale::key2obj(const char* key)
{
TToken_string k(key);
TString4 cod;
k.get(0, cod);
cod.trim();
int year; k.get(1, year);
return new TCausale(cod, year);
}
const TCausale & TCache_causale::caus(const char* key, const int anno)
{
TToken_string k(key);
k.add(anno);
return (const TCausale &)*objptr(k);
}
const TCausale & cached_causale(const char * codcaus, int year)
{
HIDDEN TCache_causale __cache_causale;
return __cache_causale.caus(codcaus, year);
}
///////////////////////////////////////////////////////////
// Gestione Tabella esercizi

View File

@ -16,6 +16,7 @@ protected: // TSortable
virtual int compare(const TSortable& s) const;
public:
bool ok() const { return _codice != 0; }
int codice() const { return _codice; }
const TDate& inizio() const { return _inizio; }
const TDate& fine() const { return _fine; }
@ -58,6 +59,7 @@ public:
int last() const;
int last_mag() const;
bool exist(int codice) const;
bool exist(const TDate & data) const { return exist(date2esc(data)); }
bool code2range(int codice, TDate& dal, TDate& al) const;
TEsercizi_contabili();
@ -65,6 +67,8 @@ public:
};
TEsercizi_contabili& esercizi();
inline const TEsercizio & esercizio(const TDate & data) { return esercizi().esercizio(data); }
inline const TEsercizio& esercizio(int codice) { return esercizi().esercizio(codice); };
enum TipoIVA
{

View File

@ -5,15 +5,13 @@
//
/////////////////////////////////////////////////////////////////////////////
#include "cglib01.h"
#include "cglib02.h"
#include "cglib.h"
#include <diction.h>
#include <progind.h>
#include <relation.h>
#include <causali.h>
#include <mov.h>
#include <pconti.h>
#include <rmov.h>
#include <saldi.h>
@ -26,12 +24,28 @@
// Cerca l'esercizio precedente di EseCorr
// Se EseCorr e' già il primo ritorna 0
//
HIDDEN int EsePre(const int EseCorr)
{
TEsercizi_contabili esc;
return esc.pred(EseCorr);
}
HIDDEN const char * date_field_name(TTipo_data tipo) { return __date_field_name[tipo]; }
const TDate get_date_mov(const TRectype & mov, TTipo_data tipo_data)
{
TDate data = mov.get_date(date_field_name(tipo_data));
if (tipo_data == CostiRicavi && !data.ok())
data = mov.get_date(date_field_name(Competenza));
#ifdef DBG
else
int i = 1;
#endif
return data;
}
// aep e' l'esercizio precedente
TSaldi_list::TSaldi_list(int gr, int co, int aec, int aep_par)
{
@ -183,24 +197,10 @@ real TSaldo::calcola_saldo_iniziale(int g,int c,long s,int indbil, int provv)
return _saldo_iniziale;
}
bool TSaldo::leggi_mov(long nr)
{
const TRectype& mov = cache().get(LF_MOV, nr);
const bool ok = !mov.empty();
if (ok)
{
_codcaus = mov.get(MOV_CODCAUS);
_datareg = mov.get(MOV_DATAREG);
_provv = mov.get(MOV_PROVVIS); // _provv.trim();
_datacomp = mov.get(MOV_DATACOMP);
}
else
NFCHECK("Testata assente: %ld", nr);
return ok;
}
//per bilancio scalare (ovvero a sezioni contrapposte) per data limite
bool TSaldo::data_limite_bilancio(int bilancio, int g, int c, long s, const TDate& data_inf,
bool TSaldo::data_limite_bilancio(TTipo_data tipo_data, int g, int c, long s, const TDate& data_inf,
const TDate& data_sup, int indbil, int provv, const char* filter)
{
_saldo_iniziale = ZERO;
@ -225,55 +225,44 @@ bool TSaldo::data_limite_bilancio(int bilancio, int g, int c, long s, const TDat
if ((provv & 0x1) && (filter == nullptr || *filter == '\0'))
_saldo = calcola_saldo_iniziale(g,c,s,indbil,provv);
for (cur = 0L; cur.pos() < items; ++cur)
{
const long num_reg = rmov.get_long(RMV_NUMREG);
if (!leggi_mov(num_reg)) // Leggo la testata
continue; // Evita righe orfane!
for (cur = 0L; cur.pos() < items; ++cur)
{
const long numreg = rmov.get_long(RMV_NUMREG);
const TRectype& mov = cache().get(LF_MOV, numreg);
const TDate data = get_date_mov(mov, tipo_data);
TDate data_mov;
if (bilancio == DataLimite)
data_mov = _datacomp;
else
{
if (_annoes == 0)
data_mov = _datareg;
else
data_mov = _datacomp;
}
if (data_mov < data_inf || data_mov > data_sup)
continue;
// "Se la causale del movimento e' di chiusura,
// o di apertura il movimento non va considerato"
if (_codcaus.full())
{
const TString& movap = _causali_apertura.decode(_codcaus);
if (movap == "C")
continue;
}
if (((provv & 0x1) && _provv.blank()) ||
((provv & 0x2) && ((_provv == "P") || (_provv == "N"))) ||
((provv & 0x4) && (_provv == "B")) || ((provv & 0x8) && (_provv == "C")))
if (data.ok() && data >= data_inf && data <= data_sup)
{
const char sezione = rmov.get_char(RMV_SEZIONE);
const real importo = rmov.get_real(RMV_IMPORTO);
const TString8 codcaus = mov.get(MOV_CODCAUS);
// I mov. di puro riferimento (= con importo = 0) vanno scartati
if (importo != ZERO)
// "Se la causale del movimento e' di chiusura,
// o di apertura il movimento non va considerato"
if (codcaus.full())
{
_movimentato = true;
if (sezione == 'D')
_saldo += importo;
else
_saldo -= importo;
const TString& movap = _causali_apertura.decode(codcaus);
if (movap == "C")
continue;
}
const TString4 tipoprovv = mov.get(MOV_PROVVIS);
if (check_mov(provv, tipoprovv))
{
const char sezione = rmov.get_char(RMV_SEZIONE);
const real importo = rmov.get_real(RMV_IMPORTO);
// I mov. di puro riferimento (= con importo = 0) vanno scartati
if (importo != ZERO)
{
_movimentato = true;
if (sezione == 'D')
_saldo += importo;
else
_saldo -= importo;
}
}
}
}
}
#ifdef DBG
xvtil_statbar_refresh();
#endif
@ -465,7 +454,7 @@ bool TSaldo::ultima_immissione_bilancio(int annoes,int g,int c,long s,int indbil
return _movimentato;
}
const real& TSaldo::saldo_periodo(int g, int c, long s, const TDate& dal, const TDate& al,
const real& TSaldo::saldo_periodo(TTipo_data tipo_data, int g, int c, long s, const TDate& dal, const TDate& al,
int indbil, int provv)
{
@ -522,27 +511,29 @@ const real& TSaldo::saldo_periodo(int g, int c, long s, const TDate& dal, const
for (cur = 0L; cur.pos() < items; ++cur)
{
p.addstatus(1L);
const long num_reg = rmov.get_long(RMV_NUMREG);
const real importo = rmov.get_real(RMV_IMPORTO);
if (!importo.is_zero())
p.addstatus(1L);
const real importo = rmov.get_real(RMV_IMPORTO);
if (importo != ZERO)
{
const char sezione = rmov.get_char(RMV_SEZIONE);
// "Se la causale del movimento e' di chiusura,
// o di apertura il movimento non va considerato"
leggi_mov(num_reg);
const TString& movap = _causali_apertura.decode(_codcaus);
const long numreg = rmov.get_long(RMV_NUMREG);
const TRectype& mov = cache().get(LF_MOV, numreg);
const TDate data = get_date_mov(mov, tipo_data);
const TString8 codcaus = mov.get(MOV_CODCAUS);
const TString4 tipoprovv = mov.get(MOV_PROVVIS);
const TString& movap = _causali_apertura.decode(codcaus);
if (!((provv & 0x1) || _provv.empty()) && movap.blank()) // ????
if (!((provv & 0x1) || tipoprovv.empty()) && movap.blank()) // ????
{
if (_datacomp >= dal && _datacomp <= al)
const char sezione = rmov.get_char(RMV_SEZIONE);
if (data.ok() && data >= dal && data <= al)
{
_movimentato = true;
const int m = _datacomp.month() - 1;
const int m = data.month() - 1;
if (sezione == 'D')
_movimentato = true;
if (sezione == 'D')
{
_prg_dare += importo;
_prg_dare_mese[m] += importo;
@ -554,7 +545,7 @@ const real& TSaldo::saldo_periodo(int g, int c, long s, const TDate& dal, const
}
}
else
if (_datacomp >= inizio && _datacomp < dal)
if (data >= inizio && data < dal)
{
if (sezione == 'D')
_saldo_iniziale += importo;
@ -616,7 +607,7 @@ bool TSaldo::prg_saldo(int annoes, TConto& conto, real& prgdare, real& prgavere,
return ok;
}
bool TSaldo::saldo_cont_sep(int g, int c, long s, const int codes, TDate al,
bool TSaldo::saldo_cont_sep(TTipo_data tipo_data, int g, int c, long s, const int codes, TDate al,
int indbil, const char * cont_sep, int provv, bool chiusura, bool first)
{
@ -679,17 +670,14 @@ bool TSaldo::saldo_cont_sep(int g, int c, long s, const int codes, TDate al,
{
if (( cont_sep != nullptr && *cont_sep == '\0') || mov.get(MOV_CONTSEP) == cont_sep)
{
_codcaus = mov.get(MOV_CODCAUS);
_datareg = mov.get(MOV_DATAREG);
_provv = mov.get(MOV_PROVVIS);
_datacomp = mov.get(MOV_DATACOMP);
const TString& movap = _causali_apertura.decode(_codcaus);
const TString8 codcaus = mov.get(MOV_CODCAUS);
const TString4 tipoprovv = mov.get(MOV_PROVVIS);
const TDate data = get_date_mov(mov, tipo_data);
const TString& movap = _causali_apertura.decode(codcaus);
if (((provv & 0x1) && _provv.empty()) ||
((provv & 0x2) && (_provv == "P" || _provv == "N")) ||
(provv & 0x4) && (_provv == "B") || (provv & 0x8) && (_provv == "C"))
if (check_mov(provv, tipoprovv))
{
if (_datacomp >= inizio && _datacomp <= al)
if (data.ok() && data >= inizio && data <= al)
{
if (movap.blank())
{

View File

@ -9,8 +9,25 @@
#ifndef __CGLIB01_H
#include "../cg/cglib01.h"
#endif
#endif
#ifndef __MOV_H
#include <mov.h>
#endif
#define PROVV "P"
#define PROVV_NON_CANC "N"
#define PROVV_BIL "B"
#define PROVV_CESP "C"
static const char * __date_field_name[] = { MOV_DATAREG, MOV_DATACOMP, MOV_DATACOMPCR };
inline bool check_mov(const int tipomovprovv, const TString & provvis)
{
return ((tipomovprovv & 0x1) && provvis.blank()) ||
((tipomovprovv & 0x2) && ((provvis == PROVV) || (provvis == PROVV_NON_CANC))) ||
((tipomovprovv & 0x4) && (provvis == PROVV_BIL)) ||
((tipomovprovv & 0x8) && (provvis == PROVV_CESP));
}
#ifndef __CG2103_H
class TCausale;
#endif
@ -71,8 +88,11 @@ public:
TRectype* saldi() const;
};
enum tipobil { DataLimite=1, UltimaImmissione };
enum tipobil { DataLimite = 1, UltimaImmissione };
enum tiposal { normale, apertura, chiusura };
enum TTipo_data { Registrazione, Competenza, CostiRicavi};
const TDate get_date_mov(const TRectype & mov, TTipo_data tipo_data);
class TSaldo : public TObject
{
@ -90,10 +110,6 @@ class TSaldo : public TObject
int _annoes;
int _indbil;
TDate _inizioEs, _fineEs;
TString4 _codcaus;
TDate _datareg;
TDate _datacomp;
TString _provv;
bool _prec;
bool _movimentato;
@ -129,9 +145,9 @@ public:
bool ultima_immissione_bilancio(int annoes, int g,int c,long s,int indbil,int provv = 0x1,bool saldo_chiusura = true);
bool ultima_immissione_verifica(int annoes, int g,int c,long s,int indbil,int provv = 0x1);
bool data_limite_bilancio(int annoes,int g,int c,long s,const TDate& data_inf,const TDate& data_suo,int indbil, int provv = 0x1, const char* filter = nullptr);
const real& saldo_periodo(int g, int c, long s, const TDate& dal, const TDate& al, int indbil, int provv = 0x1);
bool saldo_cont_sep(int g, int c, long s, const int codes, TDate al, int indbil, const char * cont_sep, int provv = 0x1, bool chiusura = false, bool first = true);
bool data_limite_bilancio(TTipo_data tipo_data, int g, int c, long s, const TDate& data_inf, const TDate& data_suo, int indbil, int provv = 0x1, const char* filter = nullptr);
const real& saldo_periodo(TTipo_data tipo_data, int g, int c, long s, const TDate& dal, const TDate& al, int indbil, int provv = 0x1);
bool saldo_cont_sep(TTipo_data tipo_data, int g, int c, long s, const int codes, TDate al, int indbil, const char * cont_sep, int provv = 0x1, bool chiusura = false, bool first = true);
bool ricerca_progr_prec(int, int, int, long);
real saldofin_esprec(int,int,int,long,bool saldo_chiusura = FALSE, int provv = 0x1);

View File

@ -1,5 +1,4 @@
#include "cg2103.h"
#include "cglib03.h"
#include "cglib.h"
#include <diction.h>
#include <dongle.h>
@ -108,7 +107,6 @@ int analizza_IVA(const real& imptot, const real& ivatot, const real perc_ind,
iva_ind = ZERO;
}
}
return flag;
}
@ -458,6 +456,13 @@ bool TDociva_array::add_riga(const char* _descrdociva, const real& _importo,cons
return found;
}
/**
* \brief
* \param tipodoc
* \param descrdoc
* \param totdoc
* \return
*/
bool TTipodoc_array::add_riga(const char* tipodoc, const char* descrdoc, const real& totdoc)
{
bool found = false;

View File

@ -3,8 +3,8 @@
#ifndef __CGLIB03_H
#define __CGLIB03_H
#ifndef __CG2103_H
#include "cg2103.h"
#ifndef __CGLIB_H
#include "cglib.h"
#endif
#ifndef __TABUTIL_H

View File

@ -1,5 +1,5 @@
#define _CRT_SECURE_NO_WARNINGS
#include "cglib04.h"
#include "cglib.h"
#include "cgsaldac.h"
#include <codeb.h> // RED ALERT!

View File

@ -1,5 +1,4 @@
#include "cglib.h"
#include "cg2101.h"
#include "cgsaldac.h"
@ -375,6 +374,23 @@ real TMovimento_contabile::imposta(const char * codiva) const
// Aggiustamento movimenti rovinati o convertiti male
///////////////////////////////////////////////////////////
class TConti_array : private TAssoc_array
{
public: // TObject
virtual bool ok() const { return items() != 0; }
public:
bool add(const TBill& conto, const real& importo);
real importo(const TBill& conto);
bool remove(const TBill& conto);
bool add_iva(bool det, const real& importo);
real importo_iva(bool det);
bool remove_iva(bool det);
TConti_array() {}
virtual ~TConti_array() {}
};
bool TConti_array::add(const TBill& conto, const real& importo)
{

View File

@ -4,7 +4,7 @@
#include <relation.h>
#include "cgsaldac.h"
#include "cg2103.h"
#include "cglib.h"
#include <doc.h>
#include <mov.h>
@ -462,9 +462,9 @@ char TRiga_scadenze::calcola_abbuono(int p, TImporto& abbuono, bool update)
if (sign != 0)
{
if (sign > 0)
ap = abbuono.sezione() == 'D' ? 'A' : 'P';
ap = abbuono.sezione() == 'D' ? cgrowtype_abbattivo : cgrowtype_abbpassivo;
else
ap = abbuono.sezione() == 'D' ? 'P' : 'A';
ap = abbuono.sezione() == 'D' ? cgrowtype_abbpassivo : cgrowtype_abbattivo;
}
}
else

View File

@ -5,8 +5,8 @@
#include <recarray.h>
#endif
#ifndef __CGLIB01_H
#include "../cg/cglib01.h"
#ifndef __CGLIB_H
#include "cglib.h"
#endif
#ifndef __PARTITE_H

View File

@ -1,7 +1,6 @@
#include "f1lib.h"
#include "config.h"
#include "cg2103.h"
#include "cg2102.h"
#include "cglib.h"
#include "execp.h"
#include "cfven.h"
#include "reputils.h"

View File

@ -6,7 +6,7 @@
#include "fe0100a.h"
#include "felib.h"
#include "../cg/cg2103.h"
#include "cglib.h"
#include <alleg.h>
#include <anafis.h>

View File

@ -10,7 +10,7 @@
#include <reputils.h>
#include <vector>
#include <memory>
#include "cg2103.h"
#include "cglib.h"
#include <map>
#define SQL_FLD "sql/"

View File

@ -48,5 +48,6 @@
#define MAG_LOTTORIOR "LOTTORIOR" // lotto minimo
#define MAG_LOTTOIRIOR "LOTTOIRIOR" // lotto incrementale di riordino
#define MAG_GIORNIRIOR "GIORNIRIOR"
#define MAG_UBICAZ "UBICAZ"
#endif

View File

@ -1927,8 +1927,8 @@ TArticolo_conai::TArticolo_conai(const TString& codart)
TString msg; msg.format("Errore nome campo: Articolo %s - Sottocategoria %s", (const char *)_codart, (const char *)con);
message_box(msg);
#endif
}
#endif
}
}
}

View File

@ -98,13 +98,13 @@ protected:
void elabora(const TMask& mask) const;
bool scrivi_csv(const TRectype& prima_riga, TDichiarazione_CONAI_csv_recordset& csv,
const TCONAI_class conai_specie, const TString & sottoclass,
const TString& conai_codart, TLog_report &log) const;
const TString& conai_codsp, TLog_report &log) const;
void scrivi_csv_doc_con_riga_generata(const TDocumento& doc, const int n_riga_generata,
TDichiarazione_CONAI_csv_recordset& csv, const TCONAI_class conai_specie,
const TString & sottoclass, TLog_report &log) const;
void scrivi_csv_doc_speciale(const TDocumento& doc, TDichiarazione_CONAI_csv_recordset& csv,
const TCONAI_class conai_specie, const TString & sottoclass,
const TString& conai_codart) const;
const TString & sottoclass, const TString& conai_codsp, TLog_report &log) const;
void scrivi_csv_doc_rettifiche(const TDocumento& doc, TDichiarazione_CONAI_csv_recordset& csv,
const TCONAI_class conai_specie, const TString & sottoclass,
const TString& conai_codsp) const;
public:
virtual bool create();
@ -150,7 +150,7 @@ real TDichiarazione_CONAI::clifo_conai(const TCli_for& clifo, const TCONAI_class
void TDichiarazione_CONAI::scrivi_csv_doc_con_riga_generata(const TDocumento& doc, const int n_riga_generata,
TDichiarazione_CONAI_csv_recordset& csv,
const TCONAI_class conai_specie, const TString & sottoclass,
TLog_report &log) const
const TString& conai_codsp, TLog_report &log) const
{
//prende dalla riga i dati che gli servono per fare vari calcoli
const TRiga_documento& riga_generata = doc[n_riga_generata];
@ -181,14 +181,20 @@ void TDichiarazione_CONAI::scrivi_csv_doc_con_riga_generata(const TDocumento& do
FOR_EACH_PHYSICAL_RDOC(doc, j, rdoc)
{
//quantita' totale conai (A + B) sul report
for (int k = 1; k <= FR_CMAX; k++)
{
const TString4 sottocat = rdoc->get(conai_sottocat_name(k));
if (sottocat == sottoclass)
{
const real n = rdoc->calc_conai_qta(k);
real n;
if (rdoc->is_merce())
n = rdoc->calc_conai_qta(k);
else
if (rdoc->is_spese() && !rdoc->is_generata() && rdoc->get(RDOC_CODART) == conai_codsp)
n = rdoc->get_real(RDOC_QTA);
if (!n.is_zero())
{
real * q = (real *)qta_AB_conai.objptr(j);
@ -287,6 +293,7 @@ void TDichiarazione_CONAI::scrivi_csv_doc_con_riga_generata(const TDocumento& do
csv.set(12, qta_esente_conai);
//valore totale contributo (BxC) sul report
const real totale_contrib_conai = qta_assoggettata_conai * prezzo;
csv.set(14, TVariant(totale_contrib_conai));
@ -309,9 +316,9 @@ void TDichiarazione_CONAI::scrivi_csv_doc_con_riga_generata(const TDocumento& do
//riempie recordset con le righe CONAI del documento che NON ha una riga generata CONAI; trattasi di documenti..
//..farlocchi costruiti ad arte per correggere le vaccate dei rompiscatolifici
void TDichiarazione_CONAI::scrivi_csv_doc_speciale(const TDocumento& doc, TDichiarazione_CONAI_csv_recordset& csv,
const TCONAI_class conai_specie, const TString & sottoclass,
const TString& conai_codart) const
void TDichiarazione_CONAI::scrivi_csv_doc_rettifiche(const TDocumento& doc, TDichiarazione_CONAI_csv_recordset& csv,
const TCONAI_class conai_specie, const TString & sottoclass,
const TString& conai_codsp) const
{
//scopre se il doc e' una NAC
const bool is_nac = doc.is_nota_credito();
@ -333,83 +340,101 @@ void TDichiarazione_CONAI::scrivi_csv_doc_speciale(const TDocumento& doc, TDichi
for (int j = 1; j <= FR_CMAX; j++)
{
TString4 sottocat = rdoc->get(conai_sottocat_name(j));
const real peso = rdoc->get_real(conai_peso_name(j));
if (sottocat == sottoclass && (peso != ZERO))
if (sottocat == sottoclass)
{
//puo' capitare che la sottocategoria sia stata troncata alla categoria
if (sottocat.len() == 2)
sottocat << "99";
real peso;
real prezzo;
const TRectype& spp = cache().get("SPP", conai_codsp);
if (rdoc->is_merce())
{
prezzo = spp.get_real("R10");
//creazione di un nuovo record da esportare
csv.new_rec("");
peso = rdoc->get_real(conai_peso_name(j));
}
else
if (rdoc->is_spese() && !rdoc->is_generata() && rdoc->get(RDOC_CODART) == conai_codsp)
{
peso = rdoc->get_real(RDOC_QTA);
prezzo = rdoc->get_real(RDOC_PREZZO); //va preso dalla riga stessa
}
if (sottocat == sottoclass && (peso != ZERO))
{
//puo' capitare che la sottocategoria sia stata troncata alla categoria
if (sottocat.len() == 2)
sottocat << "99";
//riempie i campi del record del csv
//codnum-anno-ndoc-datadoc-codcli-cofi-nriga-codagg1-sottocat-prezzo-um-conai(AB)-conai(B)-conai(A)
//parte chiave della riga
csv.set(0, rdoc->get(RDOC_CODNUM));
csv.set(1, TVariant(rdoc->get(RDOC_ANNO)));
csv.set(2, TVariant(rdoc->get(RDOC_NDOC)));
csv.set(3, TVariant(datadoc));
csv.set(4, TVariant(clifo.codice()));
csv.set(5, TVariant(clifo_paiv));
csv.set(6, TVariant(rdoc->get(RDOC_CODART)));
csv.set(7, TVariant(rdoc->get(RDOC_NRIGA)));
//creazione di un nuovo record da esportare
csv.new_rec("");
//codici conai
csv.set(8, TVariant(sottocat.left(2))); //codice materiale conai (es. carta, legno...)
csv.set(9, TVariant(sottocat)); //sottocodice materiale (es. carta imballo, busta...)
//riempie i campi del record del csv
//codnum-anno-ndoc-datadoc-codcli-cofi-nriga-codagg1-sottocat-prezzo-um-conai(AB)-conai(B)-conai(A)
//parte chiave della riga
csv.set(0, rdoc->get(RDOC_CODNUM));
csv.set(1, TVariant(rdoc->get(RDOC_ANNO)));
csv.set(2, TVariant(rdoc->get(RDOC_NDOC)));
csv.set(3, TVariant(datadoc));
csv.set(4, TVariant(clifo.codice()));
csv.set(5, TVariant(clifo_paiv));
csv.set(6, TVariant(rdoc->get(RDOC_CODART)));
csv.set(7, TVariant(rdoc->get(RDOC_NRIGA)));
const TRectype& spp = cache().get("SPP", conai_codart);
//prezzo
const real prezzo = spp.get("R10"); // rdoc.get_real(RDOC_PREZZO); //va preso dalla riga stessa
csv.set(10, TVariant(prezzo));
//codici conai
csv.set(8, TVariant(sottocat.left(2))); //codice materiale conai (es. carta, legno...)
csv.set(9, TVariant(sottocat)); //sottocodice materiale (es. carta imballo, busta...)
//um conai
const TString4 umqta = spp.get("S7"); //unita' di misura dalla tabella SPP
csv.set(11, TVariant(umqta));
//prezzo
csv.set(10, TVariant(prezzo));
//quantita' totale conai (A + B) sul report (le NAC hanno segno rovesciato)
real qta_tot_conai = rdoc->get_real(RDOC_QTA);
//um conai
const TString4 umqta = spp.get("S7"); //unita' di misura dalla tabella SPP
csv.set(11, TVariant(umqta));
qta_tot_conai *= rdoc->get_real(conai_peso_name(j));
if (is_nac)
qta_tot_conai = -qta_tot_conai;
csv.set(15, TVariant(qta_tot_conai));
//quantita' totale conai (A + B) sul report (le NAC hanno segno rovesciato)
real qta_tot_conai = rdoc->get_real(RDOC_QTA);
const real qta_unitaria_conai = rdoc->get_real(conai_peso_name(j));
//percentuale di esenzione conai al 100%?
const real rdoc_perc_conai = rdoc->get_real(conai_esenzione_name(conai_specie, LF_RIGHEDOC)); // ex QTAGG2
if (qta_unitaria_conai != ZERO)
qta_tot_conai *= qta_unitaria_conai;
if (is_nac)
qta_tot_conai = -qta_tot_conai;
csv.set(15, TVariant(qta_tot_conai));
//quantita' assoggettata (B) sul report (le NAC hanno segno rovesciato, ma avendolo gia' gia' rovesciato..
//..in precedenza non deve fare nulla!)
real qta_assoggettata_conai = qta_tot_conai;
//percentuale di esenzione conai al 100%?
const real rdoc_perc_conai = rdoc->get_real(conai_esenzione_name(conai_specie, LF_RIGHEDOC)); // ex QTAGG2
//segnalazione Sirio 1767: nelle righe fatte a mano, se la % di esenzione sul cliente è 100% -> la qta_assoggettata_conai..
//..viene azzerata; questo perchè la rdoc_perc_conai può non essere modificabile a mano (ponendola = 100) se il verig non..
//..è personalizzato
if (rdoc_perc_conai >= CENTO || cfven_perc_conai >= CENTO) // Guy: Mi pare strano gestire solo il caso 100%
qta_assoggettata_conai = ZERO;
//quantita' assoggettata (B) sul report (le NAC hanno segno rovesciato, ma avendolo gia' gia' rovesciato..
//..in precedenza non deve fare nulla!)
real qta_assoggettata_conai = qta_tot_conai;
csv.set(13, TVariant(qta_assoggettata_conai));
//segnalazione Sirio 1767: nelle righe fatte a mano, se la % di esenzione sul cliente è 100% -> la qta_assoggettata_conai..
//..viene azzerata; questo perchè la rdoc_perc_conai può non essere modificabile a mano (ponendola = 100) se il verig non..
//..è personalizzato
if (rdoc_perc_conai >= CENTO || cfven_perc_conai >= CENTO) // Guy: Mi pare strano gestire solo il caso 100%
qta_assoggettata_conai = ZERO;
//quantita' esente conai (A) sul report
const real qta_esente_conai = qta_tot_conai - qta_assoggettata_conai; //deve essere sempre ZERO!
csv.set(12, TVariant(qta_esente_conai));
csv.set(13, TVariant(qta_assoggettata_conai));
//valore totale contributo (BxC) sul report
const real totale_contrib_conai = qta_assoggettata_conai * prezzo;
csv.set(14, TVariant(totale_contrib_conai));
//quantita' esente conai (A) sul report
const real qta_esente_conai = qta_tot_conai - qta_assoggettata_conai; //deve essere sempre ZERO!
csv.set(12, TVariant(qta_esente_conai));
//percentuale di esenzione conai
csv.set(16, TVariant(rdoc_perc_conai));
//valore totale contributo (BxC) sul report
const real totale_contrib_conai = qta_assoggettata_conai * prezzo;
csv.set(14, TVariant(totale_contrib_conai));
//percentuale di esenzione conai in cfven
csv.set(17, TVariant(cfven_perc_conai));
TString descr = cache().get("&VESCC", sottocat, "S2");
//percentuale di esenzione conai
csv.set(16, TVariant(rdoc_perc_conai));
if (descr.blank())
descr = cache().get("&VESCC", sottocat, "S0");
csv.set(18, descr);
//percentuale di esenzione conai in cfven
csv.set(17, TVariant(cfven_perc_conai));
TString descr = cache().get("&VESCC", sottocat, "S2");
if (descr.blank())
descr = cache().get("&VESCC", sottocat, "S0");
csv.set(18, descr);
}
}
}
}
@ -420,26 +445,27 @@ void TDichiarazione_CONAI::scrivi_csv_doc_speciale(const TDocumento& doc, TDichi
//..il metodo adatto
bool TDichiarazione_CONAI::scrivi_csv(const TRectype& prima_riga, TDichiarazione_CONAI_csv_recordset& csv,
const TCONAI_class conai_specie, const TString & sottoclass,
const TString& conai_codart, TLog_report &log) const
const TString& conai_codsp, TLog_report &log) const
{
//crea la testata delle righedoc per poter fare vari calcoli (e intanto il tempo se ne va...)
const int anno = prima_riga.get_int(RDOC_ANNO);
const TString4 codnum = prima_riga.get(RDOC_CODNUM);
const long numdoc = prima_riga.get_long(RDOC_NDOC);
//documento della prima riga e quindi anche di tutte le altre righe conai
#ifdef DBG
//check di debug
if (numdoc == 1451)
const int cazzone = 1;
if (numdoc == 5L)
int i = 1;
#endif
//documento della prima riga e quindi anche di tutte le altre righe conai
TDocumento doc('D', anno, codnum, numdoc);
//controlli sul cliente
const TCli_for& clifo = doc.clifor();
const bool addconai = clifo.vendite().get_bool(CFV_ADDCONAI);
#ifdef DBG
//check di debug
if (numdoc == 1451)
const int cazzone = 1;
#endif
//se il cliente non c'entra con il conai e' inutile perdere tempo!
if (!addconai)
return false;
@ -449,13 +475,13 @@ bool TDichiarazione_CONAI::scrivi_csv(const TRectype& prima_riga, TDichiarazione
int n_riga_generata = 0;
bool has_conai_row = false;
FOR_EACH_PHYSICAL_RDOC_BACK(doc, j, rdoc)
{
if (rdoc->is_generata() && rdoc->get(RDOC_GENTIPO) == "C")
has_conai_row = true;
//c'è la riga generata con codart di tipo conai (sia automatica che manuale)?
if (rdoc->get(RDOC_CODART) == conai_codart && (rdoc->is_spese() || rdoc->is_generata()))
//c'è la riga generata con codsp di tipo conai (sia automatica che manuale)?
if (rdoc->get(RDOC_CODART) == conai_codsp && (rdoc->is_spese() && rdoc->is_generata()))
{
n_riga_generata = j;
break;
@ -482,7 +508,7 @@ bool TDichiarazione_CONAI::scrivi_csv(const TRectype& prima_riga, TDichiarazione
FOR_EACH_PHYSICAL_RDOC_BACK(doc, j, rdoc)
{
//c'è la riga generata con codart di tipo conai (sia automatica che manuale)?
if (rdoc->get(RDOC_CODART) == conai_codart && (rdoc->is_spese() || rdoc->is_generata()))
if (rdoc->get(RDOC_CODART) == conai_codsp && (rdoc->is_spese() || rdoc->is_generata()))
{
n_riga_generata = j;
break;
@ -490,11 +516,24 @@ bool TDichiarazione_CONAI::scrivi_csv(const TRectype& prima_riga, TDichiarazione
}
}
}
if (n_riga_generata > 0)
scrivi_csv_doc_con_riga_generata(doc, n_riga_generata, csv, conai_specie, sottoclass, log);
else
scrivi_csv_doc_speciale(doc, csv, conai_specie, sottoclass, conai_codart);
if (n_riga_generata > 0)
scrivi_csv_doc_con_riga_generata(doc, n_riga_generata, csv, conai_specie, sottoclass, conai_codsp, log);
else
{
bool has_rettifica = false;
FOR_EACH_PHYSICAL_RDOC(doc, j, rdoc)
{
//c'è la riga generata con codart di tipo conai (sia automatica che manuale)?
if (rdoc->get(RDOC_CODART) == conai_codsp && !rdoc->is_generata())
{
has_rettifica = true;
break;
}
}
if (has_rettifica)
scrivi_csv_doc_rettifiche(doc, csv, conai_specie, sottoclass, conai_codsp);
}
return true;
}
@ -728,7 +767,7 @@ void TDichiarazione_CONAI::elabora(const TMask& mask) const
for (bool ok_scc = scc.move_first(); ok_scc; ok_scc = scc.move_next())
{
TString sottoclass(scc.get("CODTAB").as_string());
TString codart(scc.get("S1").as_string());
TString codsp(scc.get("S1").as_string());
TString msg(str);
msg << " - Sottocategoria " << sottoclass << ')';
@ -746,7 +785,7 @@ void TDichiarazione_CONAI::elabora(const TMask& mask) const
const long ndoc = rdoc.get(RDOC_NDOC).as_int();
if (ndoc != last_ndoc)
{
scrivi_csv(rdoc.cursor()->curr(), *csv, conai_specie, sottoclass, codart, log);
scrivi_csv(rdoc.cursor()->curr(), *csv, conai_specie, sottoclass, codsp, log);
last_ndoc = ndoc;
}
} //for(bool ok = rdoc.move_first(..

View File

@ -1,73 +0,0 @@
#define _CRT_SECURE_NO_WARNINGS
#include <ctype.h>
#include <stdio.h>
void strip(FILE * i, FILE * o)
{
char lin[513];
while (fgets(lin, 512, i) != NULL)
{
char instring = '\0';
char wasspace = 0;
char* c = lin;
for(; isspace(*c); c++); // salta spazi iniziali
for (; *c; c++)
{
if (*c == '/' && *(c+1) == '/')
{
fputc('\n', o);
break;
}
if (*c == '#')
{
fputc(*c, o);
while (isspace(*(++c)));
}
if (*c == '"' || *c == '\'')
{
if (instring == *c)
instring = '\0';
else
{
if (instring == '\0')
instring = *c;
}
}
if (isspace(*c))
{
if (!instring)
{
if (wasspace && *c != '\n')
continue;
wasspace = 1;
}
}
else
wasspace = 0;
fputc(*c, o);
}
}
}
int main(int argc, char ** argv)
{
// cerr << "Strip 1.2 - White spaces filter by Guy 2012" << endl;
FILE* i = argc > 1 ? fopen(argv[1], "r") : stdin;
FILE* o = argc > 2 ? fopen(argv[2], "w") : stdout;
if (i && o)
strip(i, o);
if (o)
fclose(o);
if (i)
fclose(i);
return 0;
}

77
src/utilities/fastrip.cpp Normal file
View File

@ -0,0 +1,77 @@
#define _CRT_SECURE_NO_WARNINGS
#include <ctype.h>
#include <stdio.h>
#include <iostream>
#include <fstream>
using namespace std;
void strip(istream & i, ostream & o)
{
unsigned char lin[2048];
unsigned char* c;
while (i.good())
{
bool instring = false;
bool wasspace = false;
bool full = false;
i.getline((char *)lin, 2048);
for (c = lin; isspace(*c); c++); // salta spazi iniziali
for (; *c; c++)
{
full = true;
if (*c == '/' && *(c+1) == '/')
{
o << '\n';
break;
}
if (*c == '#')
{
o << *c;
while (isspace(*(++c)));
// c--;
}
else
if (*c == '"' || *c == '\'')
instring = !instring;
if (isspace(*c))
{
if (!instring)
{
if (wasspace && *c != '\n')
continue;
wasspace = true;
}
}
else
wasspace = false;
o << *c;
}
if (full)
o << '\n';
}
}
int main(int argc, char ** argv)
{
// cerr << "Strip 1.2 - White spaces filter by Guy 2012" << endl;
if (argc == 1)
strip(cin, cout);
else
{
ifstream fin(argv[1]);
if (argc == 2)
strip(fin, cout);
else
{
ofstream fout(argv[2]);
strip(fin, fout);
}
}
return 0;
}

View File

@ -1,51 +1,65 @@
#include <ctype.h>
#include <string.h>
#include <fstream.h>
#include <iostream>
#include <fstream>
using namespace std;
void patch(istream& i, ostream& o)
void patch(istream & i, ostream & o)
{
char lin[513];
unsigned char lin[2048];
unsigned char * c;
while (i.good())
{
i.getline(lin, 512);
for(char* c = lin; isspace(*c); c++); // salta spazi iniziali
char instring = '\0';
char wasspace = 0;
for (char* cur = lin; *c; c++)
char instring = '\0';
bool full = false;
i.getline((char *) lin, 2048);
for(c = lin; isspace(*c); c++); // salta spazi iniziali
for (c ; *c; c++)
{
if (*c == '!')
full = true;
if (*c == '!' && *(c + 1) == '!')
{
if (*(c + 1) == '!')
{
c++;
*c = '#';
}
}
if (*c == '#')
{
*cur++ = *c;
while isspace(*(++c));
}
if (*c == ';')
*cur++ = '\n';
else
*cur++ = *c;
}
*cur = '\0';
o << '#';
c++;
if (*lin) o << lin << endl;
}
else
if (*c == '#')
{
o << *c;
while (isspace(*(++c)));
c--;
}
else
if (*c == ';')
o << '\n';
else
o << *c;
}
if (full)
o << '\n';
}
}
int main()
int main(int argc, char ** argv)
{
patch(cin, cout);
if (argc == 1)
patch(cin, cout);
else
{
ifstream fin(argv[1]);
if (argc == 2)
patch(fin, cout);
else
{
ofstream fout(argv[2]);
patch(fin, fout);
}
}
return 0;
}


View File

@ -24,13 +24,13 @@ class TViswin;
#ifndef __CLIFOR_H
#include "../ve/clifor.h"
#endif
#ifndef __VERIG_H
#include "../ve/verig.h"
#endif
#ifndef __CGLIB01_H
#include "../cg/cglib01.h"
#ifndef __CGLIB_H
#include "../cg/cglib.h"
#endif

View File

@ -177,17 +177,7 @@ TRiga_documento::TRiga_documento(const TRiga_documento & row)
set_memo_fld("RG1");
copy(row);
}
/* Maialata inguardabile: guai a chi la riporta!
TRiga_documento::TRiga_documento(const TRiga_documento& rec, TDocumento* doc,
const char * tipo)
: TAuto_variable_rectype(rec), _doc(doc)
{
set_memo_fld("RG1");
if (tipo)
set_tipo(tipo);
}*/
const TTipo_riga_documento& TRiga_documento::tipo(const char * tiporiga)
{
CHECK(tiporiga && *tiporiga, "Tipo riga documento nullo");

View File

@ -5,7 +5,8 @@
#include <tabutil.h>
#include <utility.h>
#include "../cg/cg2103.h"
#include "velib.h"
#include "../db/dblib.h"
#include "../pr/prlib.h"
#include "../li/letint.h"
@ -17,7 +18,7 @@
#include <causali.h>
#include "veini.h"
#include "velib.h"
#include "sconti.h"
#include "vepriv.h"
#include "veuml.h"
@ -251,7 +252,7 @@ void TDocumento::init()
_codcf = new TRecfield(*this, DOC_CODCF);
_cod_occas = new TRecfield(*this, DOC_OCFPI);
_sconto = _esenzione = _valfisc = NULL;
_sconto = _esenzione = _valfisc = nullptr;
_stato_originale = ' ';
_dirty_deny = false;
@ -301,13 +302,13 @@ TDocumento::TDocumento(const TRectype& rec)
TDocumento::~TDocumento()
{
delete _tipocf;
delete _codcf;
delete _cod_occas;
safe_delete(_tipocf);
safe_delete(_codcf);
safe_delete(_cod_occas);
if (_sconto != NULL) delete _sconto;
if (_esenzione != NULL) delete _esenzione;
if (_valfisc != NULL) delete _valfisc;
safe_delete(_sconto);
safe_delete(_esenzione);
safe_delete(_valfisc);
}
const TString& TDocumento::codiva_spese() const
@ -3123,7 +3124,6 @@ void TDocumento::update_conai()
const TString4 cod_iva_cli = codesiva();
TConai conai;
FOR_EACH_ASSOC_OBJECT(_conaiqta, o, key, item)
{
const TString8 cod_sottocat = key;

View File

@ -1,7 +1,6 @@
#include "velib04.h"
#include "../ca/calib01.h"
#include "../cg/cg2103.h"
#include "../cg/cglib02.h"
#include "../cg/cglib.h"
#include "../cg/cgsaldac.h"
#include "../in/inlib01.h"

View File

@ -7,7 +7,7 @@
#include "../ca/rmovana.h"
#include "../ca/rrip.h"
#include "../cg/cg2101.h"
#include "../cg/cg2103.h"
#include "../cg/cglib.h"
#include "../mg/anamag.h"
///////////////////////////////////////////////////////////

View File

@ -3,7 +3,7 @@
#include <diction.h>
#include <utility.h>
#include "../cg/cglib03.h"
#include "../cg/cglib.h"
#include <causali.h>

View File

@ -21,8 +21,7 @@
#include "velib07.h"
#include "ve0100n.h"
#include "../cg/cg2103.h"
#include "../cg/cglib03.h"
#include "../cg/cglib.h"
#include "../db/dblib.h"
#include "../mg/mglib.h"
#include "../db/dblib.h"
@ -3080,9 +3079,10 @@ bool codcms_handler(TMask_field& f, KEY key)
} //if (main_app().has_module(CTAUT) && (...
//aggiornamento automatico del campo codice contabilita' separata nel caso di commessa che ce lo abbia
if (main_app().has_module(NPAUT) && (key == K_TAB && f.focusdirty()))
if (main_app().has_module(NPAUT) && f.running_check(key))
{
const TString& contsep = cache().get(LF_COMMESSE, codcms, COMMESSE_CONTSEP);
mask.set(F_CONTSEP, contsep);
}
}

View File

@ -1,7 +1,7 @@
#include "velib07.h"
#include "../cg/cgsaldac.h"
#include "../cg/cglib02.h"
#include "../cg/cglib.h"
#include "../db/dblib.h"
#include <pconti.h>
@ -817,7 +817,7 @@ static real calcola_saldo_contabile(const char tipocf, const long codcf, const T
const int indbil = row->get_int(2);
TSaldo saldo;
real saldo_periodo = saldo.saldo_periodo(gruppo, conto, codcf, datainies, datacalc, indbil, false);
real saldo_periodo = saldo.saldo_periodo(Competenza, gruppo, conto, codcf, datainies, datacalc, indbil, false);
saldone += saldo_periodo;
}

View File

@ -1,5 +1,4 @@
#include "veuml.h"
#ifdef FULL_SCREEN
TOOLBAR "" 0 0 0 2
BUTTON DLG_OK 10 2
@ -25,14 +24,13 @@ BEGIN
END
ENDPAGE
#endif
#ifndef MASK_WIDTH
#define MASK_WIDTH 76
#define MASK_WIDTH 0
#endif
#ifndef MASK_HEIGHT
#define MASK_HEIGHT 21
#define MASK_HEIGHT 0
#endif
#ifndef MASK_TITLE1
@ -158,7 +156,6 @@ END
ENDIF
ENDIF
IF(defined(FLD_CODART) || defined(FLD_CODALT))
IFDEF(FLD_CODART)
@ -1537,10 +1534,10 @@ ENDIF
#include USR_PAGE_1
#endif
#ifdef PAGE_2
ENDPAGE
#ifdef PAGE_2
PAGE "Pag.2" -1 -1 MASK_WIDTH MASK_HEIGHT
IFDEF(FLD_CODMAGC)
@ -2476,6 +2473,7 @@ ELSEIF
FIELD CODAGG2
ENDIF
END
ENDIF
IFDEF(FLD_RIDPREZZO)
CURRENCY FR_RIDPREZZO 18
@ -2504,11 +2502,11 @@ ENDIF
#include USR_PAGE_2
#endif
#endif
ENDPAGE
#ifdef IS_MERCE
#endif
#ifdef HAS_CONAI
PAGE "Conai" -1 -1 MASK_WIDTH MASK_HEIGHT
@ -2688,46 +2686,10 @@ BEGIN
FIELD PCON(10)
END
ENDIF
ENDPAGE
#endif
#ifndef FULL_SCREEN
ENDPAGE
TOOLBAR "" 0 0 0 2
BUTTON DLG_OK 10 2
BEGIN
PROMPT -14 -1 ""
END
BUTTON DLG_CANCEL 10 2
BEGIN
PROMPT -24 -1 ""
END
#ifndef PAGE_1
BUTTON DLG_DELREC 10 2
BEGIN
PROMPT -34 -1 "Elimina"
MESSAGE EXIT,K_DEL
END
BUTTON DLG_USER 10 2
BEGIN
PROMPT -44 -1 "~Collega"
PICTURE BMP_LINK
END
#define PAGE_1
#endif
#endif
PAGE "Contabilità analitica - Commesse" -1 -1 MASK_WIDTH MASK_HEIGHT
GROUPBOX DLG_NULL 78 14
@ -2811,4 +2773,6 @@ END
ENDIF // Campi analitici
ENDPAGE
ENDMASK

View File

@ -2,7 +2,7 @@
#define FULL_SCREEN
#define PAGE_2
#define IS_MERCE
#define HAS_CONAI
DEFINE_FIELD(CODMAG)
DEFINE_FIELD(DESMAG)

View File

@ -3,8 +3,6 @@
#define FULL_SCREEN
#define MASK_TITLE1 "Spese di tipo (Valore)"
#define PAGE_2
DEFINE_FIELD(CODSPV)
DEFINE_FIELD(DESCRSPV)

View File

@ -3,7 +3,7 @@
#define FULL_SCREEN
#define MASK_TITLE1 "Spese di tipo (Quantita'/Prezzo)"
#define PAGE_2
#define HAS_CONAI
DEFINE_FIELD(CODSPQ)
DEFINE_FIELD(DESCRSPQ)

View File

@ -9,7 +9,6 @@ DEFINE_FIELD(DESCRSPP)
DEFINE_FIELD(PERCSP)
DEFINE_FIELD(CODIVA)
DEFINE_FIELD(DESIVA)
#define PAGE_2
#include "verig.uml"