Merge branch 'Archiviazione_Integrazioni' into 'R12.00.1244'
Merge in master dell'archiviazione integrazioni See merge request sirio/CAMPO/campo!7
This commit is contained in:
		
						commit
						6cdf5b5acb
					
				@ -209,6 +209,7 @@
 | 
			
		||||
    <ClCompile Include="..\src\f9\f90400.cpp" />
 | 
			
		||||
    <ClCompile Include="..\src\f9\f90200.cpp" />
 | 
			
		||||
    <ClCompile Include="..\src\f9\f90500.cpp" />
 | 
			
		||||
    <ClCompile Include="..\src\f9\f90600.cpp" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <ClInclude Include="..\src\f9\f90.h" />
 | 
			
		||||
@ -222,6 +223,11 @@
 | 
			
		||||
    <ClInclude Include="..\src\f9\f901tab.h" />
 | 
			
		||||
    <ClInclude Include="..\src\f9\f90200a.h" />
 | 
			
		||||
    <ClInclude Include="..\src\f9\f90500.h" />
 | 
			
		||||
    <ClInclude Include="..\src\f9\f90600.h" />
 | 
			
		||||
    <ClInclude Include="..\src\f9\f90600a.h" />
 | 
			
		||||
    <ClInclude Include="..\src\f9\f90600b.h" />
 | 
			
		||||
    <ClInclude Include="..\src\f9\f90600c.h" />
 | 
			
		||||
    <ClInclude Include="..\src\f9\f90600d.h" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <MskCompiler Include="..\src\f9\f90100a.uml" />
 | 
			
		||||
@ -232,6 +238,9 @@
 | 
			
		||||
    <MskCompiler Include="..\src\f9\f90300a.uml" />
 | 
			
		||||
    <MskCompiler Include="..\src\f9\f90300b.uml" />
 | 
			
		||||
    <MskCompiler Include="..\src\f9\f90500a.uml" />
 | 
			
		||||
    <MskCompiler Include="..\src\f9\f90600a.uml" />
 | 
			
		||||
    <MskCompiler Include="..\src\f9\f90600b.uml" />
 | 
			
		||||
    <MskCompiler Include="..\src\f9\f90600d.uml" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <SqlCompiler Include="..\src\f9\sql\f90100.sql">
 | 
			
		||||
@ -247,14 +256,6 @@
 | 
			
		||||
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
 | 
			
		||||
    </SqlCompiler>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <DirCompiler Include="..\src\f9\f181.dir" />
 | 
			
		||||
    <DirCompiler Include="..\src\f9\f183.dir" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <TrrCompiler Include="..\src\f9\f181.trr" />
 | 
			
		||||
    <TrrCompiler Include="..\src\f9\f183.trr" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <MenCompiler Include="..\src\fp\fpmenu.men" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
 | 
			
		||||
@ -19,9 +19,6 @@
 | 
			
		||||
    <Filter Include="SQL">
 | 
			
		||||
      <UniqueIdentifier>{28870b23-e896-4312-855b-049305092f1d}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
    <Filter Include="Recdesc">
 | 
			
		||||
      <UniqueIdentifier>{95c95f84-ca93-4c2f-b1cf-e94922dfa7ef}</UniqueIdentifier>
 | 
			
		||||
    </Filter>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <ClInclude Include="..\src\f9\f90.h">
 | 
			
		||||
@ -57,6 +54,21 @@
 | 
			
		||||
    <ClInclude Include="..\src\f9\f90500.h">
 | 
			
		||||
      <Filter>Headers</Filter>
 | 
			
		||||
    </ClInclude>
 | 
			
		||||
    <ClInclude Include="..\src\f9\f90600.h">
 | 
			
		||||
      <Filter>Headers</Filter>
 | 
			
		||||
    </ClInclude>
 | 
			
		||||
    <ClInclude Include="..\src\f9\f90600a.h">
 | 
			
		||||
      <Filter>Headers</Filter>
 | 
			
		||||
    </ClInclude>
 | 
			
		||||
    <ClInclude Include="..\src\f9\f90600b.h">
 | 
			
		||||
      <Filter>Headers</Filter>
 | 
			
		||||
    </ClInclude>
 | 
			
		||||
    <ClInclude Include="..\src\f9\f90600d.h">
 | 
			
		||||
      <Filter>Headers</Filter>
 | 
			
		||||
    </ClInclude>
 | 
			
		||||
    <ClInclude Include="..\src\f9\f90600c.h">
 | 
			
		||||
      <Filter>Headers</Filter>
 | 
			
		||||
    </ClInclude>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <ClCompile Include="..\src\f9\f90.cpp">
 | 
			
		||||
@ -80,6 +92,9 @@
 | 
			
		||||
    <ClCompile Include="..\src\f9\f90500.cpp">
 | 
			
		||||
      <Filter>Sources</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
    <ClCompile Include="..\src\f9\f90600.cpp">
 | 
			
		||||
      <Filter>Sources</Filter>
 | 
			
		||||
    </ClCompile>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <MskCompiler Include="..\src\f9\f90100a.uml">
 | 
			
		||||
@ -106,6 +121,15 @@
 | 
			
		||||
    <MskCompiler Include="..\src\f9\f90500a.uml">
 | 
			
		||||
      <Filter>Masks</Filter>
 | 
			
		||||
    </MskCompiler>
 | 
			
		||||
    <MskCompiler Include="..\src\f9\f90600a.uml">
 | 
			
		||||
      <Filter>Masks</Filter>
 | 
			
		||||
    </MskCompiler>
 | 
			
		||||
    <MskCompiler Include="..\src\f9\f90600b.uml">
 | 
			
		||||
      <Filter>Masks</Filter>
 | 
			
		||||
    </MskCompiler>
 | 
			
		||||
    <MskCompiler Include="..\src\f9\f90600d.uml">
 | 
			
		||||
      <Filter>Masks</Filter>
 | 
			
		||||
    </MskCompiler>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <SqlCompiler Include="..\src\f9\sql\f90100.sql">
 | 
			
		||||
@ -118,22 +142,6 @@
 | 
			
		||||
      <Filter>SQL</Filter>
 | 
			
		||||
    </SqlCompiler>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <DirCompiler Include="..\src\f9\f181.dir">
 | 
			
		||||
      <Filter>Recdesc</Filter>
 | 
			
		||||
    </DirCompiler>
 | 
			
		||||
    <DirCompiler Include="..\src\f9\f183.dir">
 | 
			
		||||
      <Filter>Recdesc</Filter>
 | 
			
		||||
    </DirCompiler>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <TrrCompiler Include="..\src\f9\f181.trr">
 | 
			
		||||
      <Filter>Recdesc</Filter>
 | 
			
		||||
    </TrrCompiler>
 | 
			
		||||
    <TrrCompiler Include="..\src\f9\f183.trr">
 | 
			
		||||
      <Filter>Recdesc</Filter>
 | 
			
		||||
    </TrrCompiler>
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <MenCompiler Include="..\src\fp\fpmenu.men">
 | 
			
		||||
      <Filter>Menu</Filter>
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								cd/test/ba1254.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								cd/test/ba1254.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,4 @@
 | 
			
		||||
recdesc\f23.trr
 | 
			
		||||
recdesc\f23.dir
 | 
			
		||||
 | 
			
		||||
aggiornata la tabella MOV con un campo nuovo per la gestione dell'archiviazione integrazioni
 | 
			
		||||
							
								
								
									
										32
									
								
								cd/test/ba1254a.ini
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								cd/test/ba1254a.ini
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,32 @@
 | 
			
		||||
[Main]
 | 
			
		||||
Demo=0
 | 
			
		||||
 | 
			
		||||
[ba0]
 | 
			
		||||
File(286) = recdesc\f23.dir|X
 | 
			
		||||
File(287) = recdesc\f23.trr|X
 | 
			
		||||
Patch = 1254
 | 
			
		||||
Versione = 21511200
 | 
			
		||||
 | 
			
		||||
[ba99]
 | 
			
		||||
Kill(0) = wxmsw240.dll|x
 | 
			
		||||
Kill(1) = batbsce.txt|x
 | 
			
		||||
Kill(2) = bastfsc.rep|x
 | 
			
		||||
Kill(3) = bastfsc.msk|x
 | 
			
		||||
Kill(4) = bastcms.msk|x
 | 
			
		||||
Kill(5) = bastcms.rep|x
 | 
			
		||||
Kill(6) = bastuue.rep|x
 | 
			
		||||
Kill(7) = bastuue.msk|x
 | 
			
		||||
 | 
			
		||||
[ba]
 | 
			
		||||
Data = 29-03-2023
 | 
			
		||||
Descrizione = Base
 | 
			
		||||
Dischi = 1
 | 
			
		||||
Moduli = sy
 | 
			
		||||
OEM = 
 | 
			
		||||
Patch = 1254
 | 
			
		||||
PostProcess = bainst -0 BA
 | 
			
		||||
PreProcess = 
 | 
			
		||||
Prezzo(1) = 
 | 
			
		||||
Prezzo(2) = 
 | 
			
		||||
Versione = 21511200
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								cd/test/ba1254a1.zip
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								cd/test/ba1254a1.zip
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										7
									
								
								cd/test/f91254.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								cd/test/f91254.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,7 @@
 | 
			
		||||
f90600a.msk
 | 
			
		||||
f90600b.msk
 | 
			
		||||
f90600d.msk
 | 
			
		||||
f90.exe
 | 
			
		||||
fpmenu.men
 | 
			
		||||
 | 
			
		||||
Primo rilascio dell'archiviazione integrazioni
 | 
			
		||||
							
								
								
									
										23
									
								
								cd/test/f91254a.ini
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								cd/test/f91254a.ini
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,23 @@
 | 
			
		||||
[Main]
 | 
			
		||||
Demo=0
 | 
			
		||||
 | 
			
		||||
[f90]
 | 
			
		||||
File(0) = f90.exe|X
 | 
			
		||||
File(10) = fpmenu.men|X
 | 
			
		||||
File(14) = f90600a.msk|X
 | 
			
		||||
File(15) = f90600b.msk|X
 | 
			
		||||
File(16) = f90600d.msk|X
 | 
			
		||||
Patch = 1254
 | 
			
		||||
Versione = 21511200
 | 
			
		||||
 | 
			
		||||
[f9]
 | 
			
		||||
Data = 29-03-2023
 | 
			
		||||
Descrizione = Archiviazione Sostitutiva
 | 
			
		||||
Dischi = 1
 | 
			
		||||
Moduli = fp
 | 
			
		||||
OEM = 
 | 
			
		||||
Patch = 1254
 | 
			
		||||
PostProcess = 
 | 
			
		||||
PreProcess = 
 | 
			
		||||
Versione = 21511200
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								cd/test/f91254a1.zip
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								cd/test/f91254a1.zip
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							@ -1,3 +1,3 @@
 | 
			
		||||
23
 | 
			
		||||
0
 | 
			
		||||
$mov|0|0|634|0|Movimenti di prima nota|||
 | 
			
		||||
$mov|0|0|714|0|Movimenti di prima nota|||
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
23
 | 
			
		||||
67
 | 
			
		||||
68
 | 
			
		||||
ANNOES|9|4|0|Codice esercizio
 | 
			
		||||
NUMREG|3|7|0|Numero di operazione
 | 
			
		||||
DATAREG|5|8|0|Data operazione
 | 
			
		||||
@ -67,6 +67,7 @@ IDDOCSDI|1|20|0|Identificativo documento SDI
 | 
			
		||||
DATADOCSDI|5|8|0|Data documento SDI
 | 
			
		||||
COLL_GOLEM|11|10|0|Documenti generici
 | 
			
		||||
CARTACEI|11|10|0|Documenti cartacei
 | 
			
		||||
KEYPAF|1|80|0|Chiavi del PAFW300 [KEYPRGINVIO;KEYHEADERFATT;KEYBODYFATT]
 | 
			
		||||
4
 | 
			
		||||
NUMREG| 
 | 
			
		||||
DATAREG+NUMREG|X
 | 
			
		||||
 | 
			
		||||
@ -218,6 +218,8 @@ bool TFppro::associa_mov(const long numreg)
 | 
			
		||||
	return ok;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
const TString & TFppro::get_tipoprot()
 | 
			
		||||
{
 | 
			
		||||
	TString query;
 | 
			
		||||
 | 
			
		||||
@ -85,6 +85,7 @@ public:
 | 
			
		||||
  TFppro(TToken_string& keys) : TFppro() { set_keys(keys); }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class TProtocollo : TObject
 | 
			
		||||
{
 | 
			
		||||
  TString _tipoprot;
 | 
			
		||||
 | 
			
		||||
@ -14,6 +14,7 @@ int main(int argc, char** argv)
 | 
			
		||||
		case 2: rt = f90300(argc, argv); break; // Gestione documenti cartacei
 | 
			
		||||
		case 3: rt = f90400(argc, argv); break; // Test classi
 | 
			
		||||
		case 4: rt = f90500(argc, argv); break; // Ripristino archiviazioni
 | 
			
		||||
		case 5: rt = f90600(argc, argv); break; // Archiviazione Integrazioni
 | 
			
		||||
  }
 | 
			
		||||
  return rt;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -6,5 +6,6 @@ int f90200(int argc, char* argv[]);
 | 
			
		||||
int f90300(int argc, char* argv[]);
 | 
			
		||||
int f90400(int argc, char* argv[]);
 | 
			
		||||
int f90500(int argc, char* argv[]);
 | 
			
		||||
int f90600(int argc, char* argv[]);
 | 
			
		||||
 | 
			
		||||
#endif // _F90_H_
 | 
			
		||||
 | 
			
		||||
@ -1255,8 +1255,6 @@ TApri_estr_msk::TApri_estr_msk() : TAutomask("f90100d.msk"), _provv(true), _tipo
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
////////////////////////////////////////////////////////
 | 
			
		||||
// TF9_app
 | 
			
		||||
////////////////////////////////////////////////////////
 | 
			
		||||
 | 
			
		||||
@ -4,6 +4,7 @@
 | 
			
		||||
#define B_SHOWESTR    203
 | 
			
		||||
#define B_SHOWESCL    204
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define F_SEL         101
 | 
			
		||||
#define F_ARCH_B      102
 | 
			
		||||
#define F_IDESTR      103
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1187
									
								
								src/f9/f90600.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1187
									
								
								src/f9/f90600.cpp
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										188
									
								
								src/f9/f90600.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										188
									
								
								src/f9/f90600.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,188 @@
 | 
			
		||||
#ifndef _F90600_H_
 | 
			
		||||
#define _F90600_H_
 | 
			
		||||
 | 
			
		||||
#include "mask.h"
 | 
			
		||||
#include "execp.h"
 | 
			
		||||
#include "f90600a.h"
 | 
			
		||||
#include "mov.h"
 | 
			
		||||
#include "automask.h"
 | 
			
		||||
#include "applicat.h"
 | 
			
		||||
 | 
			
		||||
#include "f9lib.h"
 | 
			
		||||
 | 
			
		||||
class TConfigIntf9_mask : public TAutomask
 | 
			
		||||
{
 | 
			
		||||
protected:
 | 
			
		||||
	bool				on_key(const KEY key);
 | 
			
		||||
	bool        on_field_event(TOperable_field& o, TField_event e, long jolly);
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
	// @cmember Costruttore (crea la maschera leggendo la descrizione dal file .msk)
 | 
			
		||||
	TConfigIntf9_mask(const char* filename, int num = 0) : TAutomask(filename, num) {};
 | 
			
		||||
	// @cmember Costruttore (crea una maschera vuota con i parametri dati)
 | 
			
		||||
	TConfigIntf9_mask(const char* title, int pages, int cols, int rows, int xpos = -1, int ypos = -1) : TAutomask(title, pages, cols, rows, xpos, ypos) {};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class TApri_pacchetto_msk : public TAutomask
 | 
			
		||||
{
 | 
			
		||||
	TString _idestr;
 | 
			
		||||
	TDate   _dataestr;
 | 
			
		||||
	bool    _provv;
 | 
			
		||||
	char    _tipodoc;
 | 
			
		||||
	TString _statoestr;
 | 
			
		||||
	TDate   _datadal;
 | 
			
		||||
	TDate   _dataal;
 | 
			
		||||
 | 
			
		||||
	bool on_field_event(TOperable_field& o, TField_event e, long jolly) override;
 | 
			
		||||
 | 
			
		||||
	//bool inall_handler() const;
 | 
			
		||||
	//bool inescludi_handler() const;
 | 
			
		||||
	//bool inselect_handler() const;
 | 
			
		||||
	//void conferma_esclusi() const;
 | 
			
		||||
public:
 | 
			
		||||
	void fill_estr() const;
 | 
			
		||||
	void fill_res() const;
 | 
			
		||||
	void set_from_estrazione(TToken_string& row_estrazione);
 | 
			
		||||
 | 
			
		||||
	TApri_pacchetto_msk();
 | 
			
		||||
	~TApri_pacchetto_msk() {}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class TArchInt_mask : public TAutomask
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
	TApri_pacchetto_msk   _inclusi_msk;
 | 
			
		||||
 | 
			
		||||
	bool        on_field_event(TOperable_field& o, TField_event e, long jolly) override;
 | 
			
		||||
	
 | 
			
		||||
	void        load_sheet_causali(const TString& tipo_sel);
 | 
			
		||||
 | 
			
		||||
	void        open_apri_estr_win();
 | 
			
		||||
	void        fill() const;
 | 
			
		||||
	void				delete_pack(bool all = false);
 | 
			
		||||
	void        delete_estr_fld(const TString& idestr);
 | 
			
		||||
	void        controllo_errori();
 | 
			
		||||
	void				open_win_estr();
 | 
			
		||||
	void				open_win_conf();
 | 
			
		||||
	bool				save_conf(TMask& config_mask);
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
 | 
			
		||||
	TArchInt_mask();
 | 
			
		||||
	~TArchInt_mask() {}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class Tf9IntEstrai_mask : public TMask
 | 
			
		||||
{
 | 
			
		||||
	TEstrazione * _estrazione;  // Oggetto estrazione in corso di elaborazione
 | 
			
		||||
 | 
			
		||||
	void enable_fields(bool en = true);
 | 
			
		||||
 | 
			
		||||
	TDate   get_dataini()       const { return get_date(ES_DATAINI); }
 | 
			
		||||
	TDate   get_dataend()       const { return get_date(ES_DATAEND); }
 | 
			
		||||
	char    get_tipodoc()       const { return get(ES_TIPODOC)[0]; }
 | 
			
		||||
	TipoIVA get_tipoiva()       const { return get_tipodoc() == 'A' ? iva_acquisti : iva_vendite; }
 | 
			
		||||
	TString get_descr()         const { return get(ES_DESCR); }
 | 
			
		||||
	bool    is_provviso()       const { return get(ES_FLAGPROV)[0] == 'P'; }
 | 
			
		||||
 | 
			
		||||
	/* Prepara l'estrazione caricando tutti i movimenti dato un periodo (data registrazione),
 | 
			
		||||
	 * e avvia la procedura di estrazione.
 | 
			
		||||
	 * [See TEstrazione::estrai()].
 | 
			
		||||
	 */
 | 
			
		||||
	int  estrai();
 | 
			
		||||
	/** Segna su DRD che l'estrazione e' in errore diag. gestionale. */
 | 
			
		||||
	//void segna_in_errore() const;
 | 
			
		||||
	bool causale_in_lista(const TString& cod_cau, TToken_string cau_list);
 | 
			
		||||
	TToken_string select_causali(const TString& tipo_sdi, const char reg);
 | 
			
		||||
 | 
			
		||||
	static bool estrai_handler(TMask_field& f, KEY key);
 | 
			
		||||
 | 
			
		||||
	//static bool enable_handler(TMask_field& f, KEY key);
 | 
			
		||||
	//static bool dataini_handler(TMask_field& f, KEY key);
 | 
			
		||||
	//static bool dataend_handler(TMask_field& f, KEY key);
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
	Tf9IntEstrai_mask();
 | 
			
		||||
	~Tf9IntEstrai_mask() { safe_delete(_estrazione); };
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class TControlloIntegrazioni_mask : public TAutomask
 | 
			
		||||
{
 | 
			
		||||
	TArray                _controllo_mov; // Usare import_error_list().
 | 
			
		||||
	char                  _ordin;
 | 
			
		||||
	char                  _verso;
 | 
			
		||||
	int                   _selected_mov;
 | 
			
		||||
	bool                  _sel_esclusi;
 | 
			
		||||
	bool                  _is_escluso;
 | 
			
		||||
	TString               _cod_soc;
 | 
			
		||||
	TString               _id_estr;
 | 
			
		||||
	char                  _tipo_doc_err{};
 | 
			
		||||
	TDate                 _datada;
 | 
			
		||||
	TDate                 _dataa;
 | 
			
		||||
 | 
			
		||||
	//Filter variables
 | 
			
		||||
	TDate						_flt_da_data;
 | 
			
		||||
	TDate						_flt_a_data;
 | 
			
		||||
	TString4				_flt_tipodoc;
 | 
			
		||||
	TString16				_flt_numdoc;
 | 
			
		||||
	real						_flt_tot_doc_da;
 | 
			
		||||
	real						_flt_tot_doc_a;
 | 
			
		||||
	TString16				_flt_codforn;
 | 
			
		||||
	TString				  _flt_ragsoc;
 | 
			
		||||
	TString16				_flt_piva;
 | 
			
		||||
 | 
			
		||||
	void associa();
 | 
			
		||||
	bool associa_int_ven(const long numreg, TToken_string key_paf);
 | 
			
		||||
	//void conferma_esclusi() const;
 | 
			
		||||
 | 
			
		||||
	TArray& import_error_list();
 | 
			
		||||
	void    fill_sheets();
 | 
			
		||||
	void    fill_pafw300_sheet(bool filter = false);
 | 
			
		||||
	TMask&  get_win_filter();
 | 
			
		||||
	void    open_win_filter();
 | 
			
		||||
 | 
			
		||||
	TToken_string* selected_mov();
 | 
			
		||||
	TToken_string* selected_fat() const;
 | 
			
		||||
 | 
			
		||||
	/** Gestisce la selezione multipla negli sheet di controllo movimenti */
 | 
			
		||||
	//void selfatt(TOperable_field& o, long jolly) const;
 | 
			
		||||
 | 
			
		||||
	bool on_field_event(TOperable_field& o, TField_event e, long jolly) override;
 | 
			
		||||
public:
 | 
			
		||||
	TControlloIntegrazioni_mask(const char* codsoc, const char* id_estr, bool esclusi = false);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class TArchiviazioneIntegrazioni : public TSkeleton_application
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
	TArchInt_mask							* _msk;
 | 
			
		||||
	Tf9IntEstrai_mask    * _estr_msk;
 | 
			
		||||
 | 
			
		||||
	TArray								_esclusi;       // Vettore con i movimenti esclusi
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
	virtual bool create();
 | 
			
		||||
	virtual bool destroy();
 | 
			
		||||
	virtual void main_loop();
 | 
			
		||||
 | 
			
		||||
	TArray & esclusi() { return _esclusi; }
 | 
			
		||||
	static const char*  traduci_stato(const TString& cod);
 | 
			
		||||
 | 
			
		||||
	void run_estr_msk() { _estr_msk->run(); }
 | 
			
		||||
 | 
			
		||||
	TArchiviazioneIntegrazioni() {}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
inline TArchiviazioneIntegrazioni& f9Int_app()
 | 
			
		||||
{
 | 
			
		||||
	static TArchiviazioneIntegrazioni* app = nullptr;
 | 
			
		||||
	if (app == nullptr)
 | 
			
		||||
		app = (TArchiviazioneIntegrazioni*)&main_app();
 | 
			
		||||
	return *app;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#endif //_F90600_H_
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										69
									
								
								src/f9/f90600a.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								src/f9/f90600a.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,69 @@
 | 
			
		||||
// Sheet Pacchetti gia' elaborati
 | 
			
		||||
#define S_ELAB        201
 | 
			
		||||
#define F_TEXT        202
 | 
			
		||||
#define B_SHOWESTR    203
 | 
			
		||||
#define B_SHOWESCL    204
 | 
			
		||||
 | 
			
		||||
#define F_SEL         101
 | 
			
		||||
#define F_ARCH_B      102
 | 
			
		||||
#define F_IDESTR      103
 | 
			
		||||
#define F_DATAESTR    104
 | 
			
		||||
#define F_PROV_B      105
 | 
			
		||||
#define F_TIPODOC     106
 | 
			
		||||
#define F_DATADAL     107
 | 
			
		||||
#define F_DATAAL      108
 | 
			
		||||
#define F_USER        109
 | 
			
		||||
#define F_STATESTR    110
 | 
			
		||||
#define F_DESCR_E     111
 | 
			
		||||
 | 
			
		||||
// Campi del vettore _movs per promemoria
 | 
			
		||||
// F_SEL          101
 | 
			
		||||
// F_NUMREG       102
 | 
			
		||||
// F_DATAREG      103
 | 
			
		||||
// F_DATADOC      104
 | 
			
		||||
// F_CODCAUS      105
 | 
			
		||||
// F_MESELIQ      106
 | 
			
		||||
// F_NUMDOC       107
 | 
			
		||||
// F_IMPTOTDOC    108
 | 
			
		||||
// F_FORN         109
 | 
			
		||||
// F_RAGSOC       110
 | 
			
		||||
// F_PROTIVA      111
 | 
			
		||||
// F_DESCR        112
 | 
			
		||||
// F_ESCLUDI      113
 | 
			
		||||
// F_ESCLUSO      114
 | 
			
		||||
// F_DESCRERR     115
 | 
			
		||||
 | 
			
		||||
// Campi maschera finestra runtime estrazione
 | 
			
		||||
#define ES_DATAINI    501
 | 
			
		||||
#define ES_DATAEND    502
 | 
			
		||||
#define ES_FLAGPROV   503
 | 
			
		||||
#define ES_TIPODOC    504
 | 
			
		||||
#define ES_DATEGROUP  505
 | 
			
		||||
#define ES_FLAGGROUP  506
 | 
			
		||||
#define ES_TIPOGROUP  507
 | 
			
		||||
#define ES_DESCGROUP  508
 | 
			
		||||
#define ES_DESCR      509
 | 
			
		||||
#define ES_DOCSDI      510
 | 
			
		||||
 | 
			
		||||
// Campi maschera configurazione
 | 
			
		||||
#define CF_CODGROUP   501
 | 
			
		||||
#define CF_CODSOC     502
 | 
			
		||||
#define CF_ADDRGROUP  503
 | 
			
		||||
#define CF_ADDRDOC    504
 | 
			
		||||
#define CF_ADDRDOCLOC 505
 | 
			
		||||
#define CF_ESTRGROUP  506
 | 
			
		||||
#define CF_CARTEXP    507
 | 
			
		||||
#define CF_LVLGROUP   508
 | 
			
		||||
#define CF_LVLOLD			509
 | 
			
		||||
#define CF_LVLNEW			510
 | 
			
		||||
#define CF_TABLEVEL	  511
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Campi maschera descrizione estrazione
 | 
			
		||||
#define DES_TEXT      501
 | 
			
		||||
#define DES_GROUP     502
 | 
			
		||||
 | 
			
		||||
// Campi maschera esclusi
 | 
			
		||||
#define ESC_BESTR     501
 | 
			
		||||
#define ESC_BEXIT     502
 | 
			
		||||
#define ESC_SSHEE     503
 | 
			
		||||
							
								
								
									
										155
									
								
								src/f9/f90600a.uml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										155
									
								
								src/f9/f90600a.uml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,155 @@
 | 
			
		||||
#include "f90600a.h"
 | 
			
		||||
 | 
			
		||||
TOOLBAR "topbar" 0 0 0 2
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_ELABORA 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 2 "Estrazione"
 | 
			
		||||
  PICTURE TOOL_ELABORA
 | 
			
		||||
	FLAGS ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_DELREC 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 1 "~Elimina"
 | 
			
		||||
	PICTURE TOOL_DELREC
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_CONFIG 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 3 "Configurazione"
 | 
			
		||||
  PICTURE TOOL_CONFIG
 | 
			
		||||
	FLAGS ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_FINDREC 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 4 "Controllo Estr."
 | 
			
		||||
  PICTURE TOOL_PERMISSIONS
 | 
			
		||||
	FLAGS ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON B_SHOWESTR 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 5 "Apri Estr."
 | 
			
		||||
  PICTURE BMP_EXPORT
 | 
			
		||||
	FLAGS ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_RECALC
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 6 "Ricarica"
 | 
			
		||||
  PICTURE TOOL_CONVERT
 | 
			
		||||
  FLAS ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_NULL 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 7 ""
 | 
			
		||||
  PICTURE 0
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON B_SHOWESCL 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 8 "Mostra esclusi"
 | 
			
		||||
	PICTURE TOOL_PERMISSIONS
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
#include <helpbar.h>
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
PAGE "Monitor Estrazioni" 0 2 0 0
 | 
			
		||||
 | 
			
		||||
TEXT F_TEXT
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 0 0 "@BElenco Pacchetti"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
SPREADSHEET S_ELAB -1 -1
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 0 1 "Elenco pacchetti elaborati"
 | 
			
		||||
  ITEM ""
 | 
			
		||||
	ITEM "Archiviato@8"
 | 
			
		||||
	ITEM "ID Estrazione@14"
 | 
			
		||||
	ITEM "Data@8"
 | 
			
		||||
	ITEM "Provv.@4"
 | 
			
		||||
	ITEM "Tipo@8"
 | 
			
		||||
	ITEM "dal@8"
 | 
			
		||||
	ITEM "al@8"
 | 
			
		||||
	ITEM "Utente@8"
 | 
			
		||||
	ITEM "Stato estrazione@22"
 | 
			
		||||
	ITEM "Descrizione@50"
 | 
			
		||||
END
 | 
			
		||||
ENDPAGE
 | 
			
		||||
ENDMASK
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
PAGE "Pacchetti" -1 -1 78 13
 | 
			
		||||
 | 
			
		||||
BOOLEAN F_SEL
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 1 ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BOOLEAN F_ARCH_B
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 1 ""
 | 
			
		||||
	FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_IDESTR 18
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 1 ""
 | 
			
		||||
	FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BOOLEAN F_PROV_B
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 1 ""
 | 
			
		||||
	FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_DESCR_E 50
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 1 ""
 | 
			
		||||
	FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_TIPODOC 13
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 1 ""
 | 
			
		||||
	FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
DATE F_DATADAL
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 1 ""
 | 
			
		||||
	FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
DATE F_DATAAL
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 1 ""
 | 
			
		||||
	FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_USER 20
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 1 ""
 | 
			
		||||
	FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_DATAESTR 19
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 1 ""
 | 
			
		||||
	FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_STATESTR 38
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 1 ""
 | 
			
		||||
	FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
ENDPAGE
 | 
			
		||||
ENDMASK
 | 
			
		||||
							
								
								
									
										61
									
								
								src/f9/f90600b.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								src/f9/f90600b.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,61 @@
 | 
			
		||||
// Maschera controllo errori in comune con monitor e esclusi
 | 
			
		||||
// Sheet Pacchetti gia' elaborati
 | 
			
		||||
#define B_ASSOC       202
 | 
			
		||||
#define B_SELESCL     203
 | 
			
		||||
#define B_ESCL        204
 | 
			
		||||
#define B_ALLESCL     205
 | 
			
		||||
#define B_FILTER_CONF	208
 | 
			
		||||
#define B_FILTER_ON		209
 | 
			
		||||
#define B_FILTER_OFF	210
 | 
			
		||||
 | 
			
		||||
// Sheet movimenti da controllare
 | 
			
		||||
#define S_CONTROLLO   206
 | 
			
		||||
#define S_FPPRO       207
 | 
			
		||||
 | 
			
		||||
// Cambi maschera ordinamento sheet FPPRO
 | 
			
		||||
#define F_ORDER       301
 | 
			
		||||
#define F_VERSO       302
 | 
			
		||||
 | 
			
		||||
//Filtro FPPRO
 | 
			
		||||
#define F_FLTDATAGRP  310
 | 
			
		||||
#define F_FLTDATADA   311
 | 
			
		||||
#define F_FLTDATAA    312
 | 
			
		||||
#define F_FLTDOCGRP   313
 | 
			
		||||
#define F_FLTTIPODOC  314
 | 
			
		||||
#define F_FLTNUMDOC   315
 | 
			
		||||
#define F_FLTTOTDOCDA 316
 | 
			
		||||
#define F_FLTTOTDOCA  317
 | 
			
		||||
#define F_FLTFORNGRP  318
 | 
			
		||||
#define F_FLTCODFORN  319
 | 
			
		||||
#define F_FLTRAGSOC   320
 | 
			
		||||
#define F_FLTPIVA     321
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define F_CSEL        101
 | 
			
		||||
#define F_CNUMREG     102
 | 
			
		||||
#define F_CDATAREG    103
 | 
			
		||||
#define F_CDATADOC    104
 | 
			
		||||
#define F_CCODCAUS    105
 | 
			
		||||
#define F_CMESELIQ    106
 | 
			
		||||
#define F_CNUMDOC     107
 | 
			
		||||
#define F_CIMPTOTDOC  108
 | 
			
		||||
#define F_CFORN       109
 | 
			
		||||
#define F_CRAGSOC     110
 | 
			
		||||
#define F_CPROTIVA    111
 | 
			
		||||
#define F_CDESCR      112
 | 
			
		||||
#define F_CESCLUDI    113
 | 
			
		||||
#define F_CESCLUSO    114
 | 
			
		||||
#define F_CDESCRERR   115
 | 
			
		||||
 | 
			
		||||
// Sheet fatture FPPRO da associare
 | 
			
		||||
#define F_FSEL        101
 | 
			
		||||
#define F_FTIPODOC    102
 | 
			
		||||
#define F_FDATA       103
 | 
			
		||||
#define F_FNUMDOC     104
 | 
			
		||||
#define F_FIMPTOTDOC  105
 | 
			
		||||
#define F_FFORNITORE  106
 | 
			
		||||
#define F_FRAGSOC     107
 | 
			
		||||
#define F_FSTATOPIVA  108
 | 
			
		||||
#define F_FPIVA       109
 | 
			
		||||
#define F_FPROKEYS    110
 | 
			
		||||
							
								
								
									
										316
									
								
								src/f9/f90600b.uml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										316
									
								
								src/f9/f90600b.uml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,316 @@
 | 
			
		||||
#include "f90600b.h"
 | 
			
		||||
 | 
			
		||||
TOOLBAR "topbar" 0 0 0 2
 | 
			
		||||
 | 
			
		||||
BUTTON B_ASSOC 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 6 "Associa mov."
 | 
			
		||||
  PICTURE TOOL_SAVEREC
 | 
			
		||||
	FLAGS ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_NULL 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT -1 1 ""
 | 
			
		||||
  PICTURE 0
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON B_SELESCL 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 8 "Sel. esclusi"
 | 
			
		||||
  PICTURE TOOL_MULTISEL
 | 
			
		||||
	FLAGS ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON B_ESCL 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 7 "Conf. esclusi"
 | 
			
		||||
  PICTURE TOOL_WARNING
 | 
			
		||||
	FLAGS ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON B_ALLESCL 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 7 "Sel. tutti"
 | 
			
		||||
  PICTURE TOOL_MULTISEL
 | 
			
		||||
	FLAGS ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_NULL 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT -1 1 ""
 | 
			
		||||
  PICTURE 0
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON B_FILTER_CONF 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 5 "Impostaz. Filtro"
 | 
			
		||||
  PICTURE TOOL_ELABORA
 | 
			
		||||
	FLAGS ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON B_FILTER_ON 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 5 "Filtro ON"
 | 
			
		||||
  PICTURE TOOL_CHECK
 | 
			
		||||
	FLAGS ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON B_FILTER_OFF 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 5 "Filtro OFF"
 | 
			
		||||
  PICTURE TOOL_CHECK
 | 
			
		||||
	FLAGS ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
#include <helpbar.h>
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
PAGE "Elenco di controllo" -1 -1 78 13
 | 
			
		||||
 | 
			
		||||
TEXT DLG_NULL
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 0 0 "Movimenti da controllare"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
SPREADSHEET S_CONTROLLO -1 10
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 0 1 "Movimenti da controllare"
 | 
			
		||||
	ITEM " "
 | 
			
		||||
	ITEM "Numero\nReg.@8"
 | 
			
		||||
	ITEM "Data\nReg.@8"
 | 
			
		||||
	ITEM "Data\nDoc.@8"
 | 
			
		||||
	ITEM "Codice\nCaus.@8"
 | 
			
		||||
	ITEM "Mese\nliquidazione@8"
 | 
			
		||||
	ITEM "Numero\nDocumento@8"
 | 
			
		||||
	ITEM "Totale\nDocumento@8"
 | 
			
		||||
	ITEM "Cliente/\nFornitore@8"
 | 
			
		||||
	ITEM "Ragione\nSociale@8"
 | 
			
		||||
	ITEM "Cod. regis./\nprot.IVA@8"	
 | 
			
		||||
	ITEM "Descrizione@8"
 | 
			
		||||
	ITEM "ESCLUDI@5"
 | 
			
		||||
	ITEM "ESCLUSO@6"
 | 
			
		||||
	ITEM "Descrizione\nErrore"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
TEXT DLG_NULL
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 0 12 "Fatture el. in ingresso"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
SPREADSHEET S_FPPRO -1 -1
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 0 13 "Movimenti da controllare"
 | 
			
		||||
	ITEM " "
 | 
			
		||||
	ITEM "Tipo Doc."
 | 
			
		||||
	ITEM "Data@8"
 | 
			
		||||
	ITEM "Num. Doc.@12"
 | 
			
		||||
	ITEM "Tot. Doc.@9"
 | 
			
		||||
	ITEM "Cliente@20"
 | 
			
		||||
	ITEM "Fornitore@20"
 | 
			
		||||
	ITEM "Stato P.IVA"
 | 
			
		||||
	ITEM "P.IVA@8"
 | 
			
		||||
	ITEM "Chiavi PAF@60"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
ENDPAGE	
 | 
			
		||||
ENDMASK
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
PAGE "Controllo" -1 -1 78 13
 | 
			
		||||
 | 
			
		||||
BOOLEAN F_CSEL
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 1 ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMERIC F_CNUMREG 7
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 1 ""
 | 
			
		||||
	FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
DATA F_CDATAREG
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 1 ""
 | 
			
		||||
	FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
DATA F_CDATADOC
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 1 ""
 | 
			
		||||
	FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_CCODCAUS 3
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 1 ""
 | 
			
		||||
	FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMERIC F_CMESELIQ 2
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 1 ""
 | 
			
		||||
	FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_CNUMDOC 50
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 1 ""
 | 
			
		||||
	FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMERIC F_CIMPTOTDOC 15 2
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 1 ""
 | 
			
		||||
	FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMERIC F_CFORN 6
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 1 ""
 | 
			
		||||
	FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_CRAGSOC 80
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 1 ""
 | 
			
		||||
	FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_CPROTIVA 10
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 1 ""
 | 
			
		||||
	FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_CDESCR 50
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 1 ""
 | 
			
		||||
	FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BOOLEAN F_CESCLUDI
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 1 "Escludi"
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_CESCLUSO 2
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 1 "ESCLUSO"
 | 
			
		||||
	FLAG "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_CDESCRERR 110
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 1 "DESCRIZIONE ERRORE"
 | 
			
		||||
	FLAG "D"
 | 
			
		||||
END
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
TOOLBAR "topbar" 0 0 0 2
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_USER 2 2 
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 1 "Collega"
 | 
			
		||||
  PICTURE TOOL_LINK
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_NULL 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT -1 0 ""
 | 
			
		||||
  PICTURE 0
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_QUIT 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 3 1 "Fine"
 | 
			
		||||
  MESSAGE EXIT,K_QUIT
 | 
			
		||||
  PICTURE TOOL_QUIT
 | 
			
		||||
END
 | 
			
		||||
ENPAGE
 | 
			
		||||
ENDMASK
 | 
			
		||||
 | 
			
		||||
PAGE "Passive" -1 -1 78 13
 | 
			
		||||
 | 
			
		||||
BOOLEAN F_FSEL
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 1 ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_FTIPODOC 4
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 1 " "
 | 
			
		||||
	FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
DATA F_FDATA
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 1 " "
 | 
			
		||||
	FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_FNUMDOC 20
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 1 " "
 | 
			
		||||
	FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMERIC F_FIMPTOTDOC 15 2
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 1 " "
 | 
			
		||||
	FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_FFORNITORE 80
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 1 " "
 | 
			
		||||
	FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_FRAGSOC 80
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 1 " "
 | 
			
		||||
	FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_FSTATOPIVA 2
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 1 " "
 | 
			
		||||
	FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_FPIVA 15
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 1 " "
 | 
			
		||||
	FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_FPROKEYS 80
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 1 " "
 | 
			
		||||
	FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
TOOLBAR "topbar" 0 0 0 2
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_NULL 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT -1 0 ""
 | 
			
		||||
  PICTURE 0
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_QUIT 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 3 1 "Fine"
 | 
			
		||||
  MESSAGE EXIT,K_QUIT
 | 
			
		||||
  PICTURE TOOL_QUIT
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
ENPAGE
 | 
			
		||||
ENDMASK
 | 
			
		||||
							
								
								
									
										17
									
								
								src/f9/f90600c.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								src/f9/f90600c.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,17 @@
 | 
			
		||||
#define S_ESCL				201
 | 
			
		||||
#define F_ETEXT				202
 | 
			
		||||
#define B_ESTRAI      203
 | 
			
		||||
 | 
			
		||||
// Elenco movimenti esclusi
 | 
			
		||||
#define FE_SEL				  101
 | 
			
		||||
#define FE_NUMREG			102
 | 
			
		||||
#define FE_DATAREG		  103
 | 
			
		||||
#define FE_DATADOC		  104
 | 
			
		||||
#define FE_CODCAUS		  105
 | 
			
		||||
#define FE_MESELIQ		  106
 | 
			
		||||
#define FE_NUMDOC			107
 | 
			
		||||
#define FE_IMPTOTDOC   108
 | 
			
		||||
#define FE_FORN        109
 | 
			
		||||
#define FE_RAGSOC      110
 | 
			
		||||
#define FE_PROTIVA		  111
 | 
			
		||||
#define FE_DESCR			  112
 | 
			
		||||
							
								
								
									
										48
									
								
								src/f9/f90600d.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								src/f9/f90600d.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,48 @@
 | 
			
		||||
#define S_INCL        201
 | 
			
		||||
#define F_ETEXT       202
 | 
			
		||||
#define B_ISELESCL    203
 | 
			
		||||
#define B_IESCL       204
 | 
			
		||||
#define B_IALLESCL    205
 | 
			
		||||
#define F_IIDESTR     206
 | 
			
		||||
#define F_IDATA       207
 | 
			
		||||
#define F_IPROV       208
 | 
			
		||||
#define F_ITIPOD      209
 | 
			
		||||
#define F_ISTATOESTR  210
 | 
			
		||||
#define F_IDAL        211
 | 
			
		||||
#define F_IAL         212
 | 
			
		||||
 | 
			
		||||
#define S_RES         301
 | 
			
		||||
 | 
			
		||||
// Elenco movimenti inclusi
 | 
			
		||||
#define FI_SEL         101
 | 
			
		||||
#define FI_NUMREG      102
 | 
			
		||||
#define FI_DATAREG     103
 | 
			
		||||
#define FI_DATADOC     104
 | 
			
		||||
#define FI_CODCAUS     105
 | 
			
		||||
#define FI_TIPOMOV     106
 | 
			
		||||
#define FI_MESELIQ     107
 | 
			
		||||
#define FI_NUMDOC      108
 | 
			
		||||
#define FI_IMPTOTDOC   109
 | 
			
		||||
#define FI_FORN        110
 | 
			
		||||
#define FI_RAGSOC      111
 | 
			
		||||
#define FI_PROTIVA     112
 | 
			
		||||
#define FI_DESCR       113
 | 
			
		||||
#define FI_IESCLUDI    114
 | 
			
		||||
#define FI_IESCLUSO    115
 | 
			
		||||
 | 
			
		||||
// Elenco risultato movimenti (S_RES)
 | 
			
		||||
#define F_RSEL        101
 | 
			
		||||
#define F_RNUMREG     102
 | 
			
		||||
#define F_RDATAREG    103
 | 
			
		||||
#define F_RDATADOC    104
 | 
			
		||||
#define F_RTIPODOCSDI	105
 | 
			
		||||
#define F_RCODCAUS    106
 | 
			
		||||
#define F_RTIPOMOV    107
 | 
			
		||||
#define F_RMESELIQ    108
 | 
			
		||||
#define F_RNUMDOC     109
 | 
			
		||||
#define F_RIMPTOTDOC  110
 | 
			
		||||
#define F_RFORN       111
 | 
			
		||||
#define F_RRAGSOC     112
 | 
			
		||||
#define F_RPROTIVA    113
 | 
			
		||||
#define F_RDESCR      114
 | 
			
		||||
#define F_RDESCRERR   115
 | 
			
		||||
							
								
								
									
										399
									
								
								src/f9/f90600d.uml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										399
									
								
								src/f9/f90600d.uml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,399 @@
 | 
			
		||||
#include "f90600d.h"
 | 
			
		||||
 | 
			
		||||
TOOLBAR "topbar" 0 0 0 2
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_INFO 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 1 "Info"
 | 
			
		||||
  MESSAGE EXIT,K_F2
 | 
			
		||||
  PICTURE TOOL_INFO
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_HELP 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 1 "Help"
 | 
			
		||||
  MESSAGE EXIT,K_F1
 | 
			
		||||
  PICTURE TOOL_HELP
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_NULL 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT -1 0 ""
 | 
			
		||||
  PICTURE 0
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON B_ISELESCL 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 8 "Sel. esclusi"
 | 
			
		||||
  PICTURE TOOL_MULTISEL
 | 
			
		||||
	FLAGS ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON B_IESCL 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 7 "Conf. esclusi"
 | 
			
		||||
  PICTURE TOOL_WARNING
 | 
			
		||||
	FLAGS ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON B_IALLESCL 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 7 "Sel. tutti"
 | 
			
		||||
  PICTURE TOOL_MULTISEL
 | 
			
		||||
	FLAGS ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_NULL 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT -1 0 ""
 | 
			
		||||
  PICTURE 0
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_QUIT 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 3 1 "Fine"
 | 
			
		||||
  MESSAGE EXIT,K_QUIT
 | 
			
		||||
  PICTURE TOOL_QUIT
 | 
			
		||||
END
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
PAGE "Movimenti" 0 2 0 0
 | 
			
		||||
 | 
			
		||||
STRING F_IIDESTR 18
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 0 0 "Id estrazione"
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
DATA F_IDATA
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 45 0 "Data estrazione "
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BOOLEAN F_IPROV
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 0 1 "Provvisorio"
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_ITIPOD 9
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 15 1 "Tipo Documenti"
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_ISTATOESTR 38
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 45 1 "Stato estrazione"
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
DATA F_IDAL
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 0 2 "Dal"
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
DATA F_IAL
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 15 2 "Al"
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
TEXT F_ETEXT
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 0 3 "@BMovimenti estratti nel pacchetto:"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
SPREADSHEET S_INCL -1 -1
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 0 4 "Movimenti estratti"
 | 
			
		||||
  ITEM " "
 | 
			
		||||
  ITEM "Numero\nReg.@8"
 | 
			
		||||
  ITEM "Data\nReg.@8"
 | 
			
		||||
  ITEM "Data\nDoc.@8"
 | 
			
		||||
  ITEM "Codice\nCaus.@8"
 | 
			
		||||
  ITEM "Tipo Doc.@5"
 | 
			
		||||
  ITEM "Mese\nliquidazione@8"
 | 
			
		||||
  ITEM "Numero\nDocumento@8"
 | 
			
		||||
  ITEM "Totale\nDocumento@8"
 | 
			
		||||
  ITEM "Cliente/\nFornitore@8"
 | 
			
		||||
  ITEM "Ragione\nSociale@8"
 | 
			
		||||
  ITEM "Cod. regis./\nprot.IVA@8"
 | 
			
		||||
  ITEM "Descrizione@8"
 | 
			
		||||
  ITEM "ESCLUDI@5"
 | 
			
		||||
	ITEM "ESCLUSO@6"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
PAGE "Risultato estrazione" 0 0 0 0
 | 
			
		||||
 | 
			
		||||
SPREADSHEET S_RES -1 -1
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 0 0 "Movimenti"
 | 
			
		||||
  ITEM "Estratto"
 | 
			
		||||
  ITEM "Numero\nReg.@8"
 | 
			
		||||
  ITEM "Data\nReg.@8"
 | 
			
		||||
  ITEM "Data\nDoc.@8"
 | 
			
		||||
  ITEM "Tipo Doc\nSDI@9"
 | 
			
		||||
  ITEM "Codice\nCaus.@8"
 | 
			
		||||
  ITEM "Tipo Mov.@5"
 | 
			
		||||
  ITEM "Mese\nliquidazione@8"
 | 
			
		||||
  ITEM "Numero\nDocumento@8"
 | 
			
		||||
  ITEM "Totale\nDocumento@8"
 | 
			
		||||
  ITEM "Cliente/\nFornitore@8"
 | 
			
		||||
  ITEM "Ragione\nSociale@8"
 | 
			
		||||
  ITEM "Cod. regis./\nprot.IVA@8"
 | 
			
		||||
  ITEM "Descrizione@8"
 | 
			
		||||
  ITEM "Descrizione Estrazione@30"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
ENDPAGE
 | 
			
		||||
ENDMASK
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
PAGE "Mov Inclusi" -1 -1 78 13
 | 
			
		||||
 | 
			
		||||
BOOLEAN FI_SEL
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 1 ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMERIC FI_NUMREG 7
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 2 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
DATA FI_DATAREG
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 3 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
DATA FI_DATADOC
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 4 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING FI_CODCAUS 3
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 5 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING FI_TIPOMOV 3
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 6 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMERIC FI_MESELIQ 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 7 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING FI_NUMDOC 50
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 8 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMERIC FI_IMPTOTDOC 15 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 9 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMERIC FI_FORN 6
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 10 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING FI_RAGSOC 80
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 11 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING FI_PROTIVA 10
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 12 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING FI_DESCR 50
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 13 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
LIST FI_IESCLUDI 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 1 "Escludi"
 | 
			
		||||
  ITEM "|"
 | 
			
		||||
  ITEM "S|SI"
 | 
			
		||||
  ITEM "N|NO"
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BOOLEAN FI_IESCLUSO
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 1 1 "ESCLUSO"
 | 
			
		||||
	FLAG "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
TOOLBAR "topbar" 0 0 0 2
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_USER 2 2 
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 1 "Collega"
 | 
			
		||||
  PICTURE TOOL_LINK
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_NULL 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT -1 0 ""
 | 
			
		||||
  PICTURE 0
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_QUIT 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 3 1 "Fine"
 | 
			
		||||
  MESSAGE EXIT,K_QUIT
 | 
			
		||||
  PICTURE TOOL_QUIT
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
ENPAGE
 | 
			
		||||
ENDMASK
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
PAGE "Risultato estratti" -1 -1 78 13
 | 
			
		||||
 | 
			
		||||
BOOLEAN F_RSEL
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 1 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMERIC F_RNUMREG 7
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 2 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
DATA F_RDATAREG
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 3 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
DATA F_RDATADOC
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 4 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_RTIPODOCSDI 4
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 5 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_RCODCAUS 3
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 6 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_RTIPOMOV 3
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 7 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMERIC F_RMESELIQ 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 8 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_RNUMDOC 50
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 9 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMERIC F_RIMPTOTDOC 15 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 10 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMERIC F_RFORN 6
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 11 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_RRAGSOC 80
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 12 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_RPROTIVA 10
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 13 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_RDESCR 50
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 14 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_RDESCRERR 92
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 15 ""
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
TOOLBAR "topbar" 0 0 0 2
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_USER 2 2 
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 1 "Collega"
 | 
			
		||||
  PICTURE TOOL_LINK
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_NULL 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT -1 0 ""
 | 
			
		||||
  PICTURE 0
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_QUIT 2 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 3 1 "Fine"
 | 
			
		||||
  MESSAGE EXIT,K_QUIT
 | 
			
		||||
  PICTURE TOOL_QUIT
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
ENPAGE
 | 
			
		||||
ENDMASK
 | 
			
		||||
@ -66,6 +66,9 @@ struct statistics
 | 
			
		||||
  size_t fv_err;
 | 
			
		||||
  size_t fv_estr;
 | 
			
		||||
  size_t fv_nocatdoc;
 | 
			
		||||
	size_t int_match;
 | 
			
		||||
	size_t int_nomatch;
 | 
			
		||||
	size_t int_err;
 | 
			
		||||
};
 | 
			
		||||
extern statistics _stats;
 | 
			
		||||
 | 
			
		||||
@ -115,6 +118,15 @@ enum state_fppro
 | 
			
		||||
  err_read_db   = 999   // Errore lettura da fppro
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
enum state_estr_int
 | 
			
		||||
{
 | 
			
		||||
	int_with_err = -1,   // Movimento associato male con FPPRO
 | 
			
		||||
	guessed_int = 100,
 | 
			
		||||
	no_guessed_int = 0,
 | 
			
		||||
	err_read_db_int = 999,   // Errore lettura da fppro
 | 
			
		||||
	wrong_keys = -2
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class TF9_config
 | 
			
		||||
{
 | 
			
		||||
  // todo: controllare che siano sqlsafe
 | 
			
		||||
@ -308,7 +320,8 @@ enum err_mov
 | 
			
		||||
	mov_no_filecart,    // Il documento cartaceo non ha associato un file, o questo non e' stato trovato.
 | 
			
		||||
	mov_annesso_nexist, // Un annesso obbligatorio e' mancante.
 | 
			
		||||
	mov_nocat_butok,    // Non è stata trovata nessuna categoria documentale per il seguente documento. Verra usato il TIPODOCSDI presente nel FPPRO 
 | 
			
		||||
	mov_no_sdi					// Nessuno tipo doc SDI abbinato 
 | 
			
		||||
	mov_no_sdi,					// Nessuno tipo doc SDI abbinato 
 | 
			
		||||
	mov_nomatch_keys	  // La chiave del documento salavta in MOV non si matcha con nessun documento elettronico
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class TMovimento_estr : public TObject // aggiungere metodi per TArray
 | 
			
		||||
@ -326,6 +339,7 @@ class TMovimento_estr : public TObject // aggiungere metodi per TArray
 | 
			
		||||
	TString				_reg_protiva;
 | 
			
		||||
	TString				_descr;
 | 
			
		||||
	state_fppro		_state;
 | 
			
		||||
	state_estr_int _state_int;
 | 
			
		||||
	TString				_descr_err;          // Messaggio di errore visibile dal controllo estrazione.
 | 
			
		||||
	bool					_estratto;
 | 
			
		||||
	err_mov				_descr_estr; // Messaggio di informazioni visibile dal 'Apri Estr.'
 | 
			
		||||
@ -371,6 +385,7 @@ public:
 | 
			
		||||
	void set_err(const char * descr = "", err_mov descr_estr = mov_no_error);
 | 
			
		||||
	void reset_err() { set_err(); }
 | 
			
		||||
	void set_state(state_fppro state) { _state = state; }
 | 
			
		||||
	void set_state_int(state_estr_int state) { _state_int = state; }
 | 
			
		||||
	void set_descr_estr(err_mov descr_estr) { _descr_estr = descr_estr; }
 | 
			
		||||
	void set_numdoc(const char * numdoc) { _numdoc = numdoc; }
 | 
			
		||||
	void set_estratto(bool estratto) { _estratto = estratto; }
 | 
			
		||||
@ -424,12 +439,16 @@ class TEstrazione : public TObject
 | 
			
		||||
   * \return \a not_fa se il movimento passato non è una fattura.
 | 
			
		||||
   */
 | 
			
		||||
  static state_fppro  check_fppro(int numreg);
 | 
			
		||||
	state_estr_int			guess_int(int numreg);
 | 
			
		||||
	bool								checkPAF(TLocalisamfile& mov);
 | 
			
		||||
	bool								checkPAA(TLocalisamfile& mov);
 | 
			
		||||
	const bool          check_keys(TToken_string keys);
 | 
			
		||||
  bool                check_periodo_def() const;
 | 
			
		||||
  void                copy_file_to_webapp_fld(TMovimento_estr& movimento) const;
 | 
			
		||||
  void         fill_id(const TRectype& clifo, TString& statopaiv, TString& idfisc, TString& paiv, TString& codfis);
 | 
			
		||||
  TipoIVA      get_tipoiva() const { return _head.tipo_doc == 'A' ? iva_acquisti : iva_vendite; }
 | 
			
		||||
  bool         is_doc_xml(const TRectype& mov);
 | 
			
		||||
  bool         load_docs(TMovimento_estr& movimento) {	return movimento.load_docs();	}
 | 
			
		||||
  void								fill_id(const TRectype& clifo, TString& statopaiv, TString& idfisc, TString& paiv, TString& codfis);
 | 
			
		||||
  TipoIVA							get_tipoiva() const { return _head.tipo_doc == 'A' ? iva_acquisti : iva_vendite; }
 | 
			
		||||
  bool								is_doc_xml(const TRectype& mov);
 | 
			
		||||
  bool								load_docs(TMovimento_estr& movimento) {	return movimento.load_docs();	}
 | 
			
		||||
  // Se il movimento e' di vendita e ha i riferimenti al documento generatore provo a stamparlo con ve, e lo inserisco tra i cartacei F9.
 | 
			
		||||
  // bool         stampa_documento(const TMovimento_estr& movimento, TFilename& file);
 | 
			
		||||
  bool         grab_pdf_from_spotlite(const TMovimento_estr& movimento, TFilename& file) const;
 | 
			
		||||
@ -448,7 +467,7 @@ private:
 | 
			
		||||
  /** Controlla ultimo id estrazione della giornata e in base al tipo di estrazione,
 | 
			
		||||
   * genera il progressivo seguente. Chiamata da \a estrai() e \a estrai_single().
 | 
			
		||||
   * \return Nuovo id estrazione. */
 | 
			
		||||
  TString     next_estr_today(char tipo) const;
 | 
			
		||||
  TString     next_estr_today(char tipo, const bool estr_int = false) const;
 | 
			
		||||
  static bool pura_iva(const TRectype& mov);
 | 
			
		||||
  void        write_errorsql_log(const TString& query);
 | 
			
		||||
 | 
			
		||||
@ -465,6 +484,8 @@ public:
 | 
			
		||||
   * \return D_GEST_ERR (02) se la diagnostica ha riportato degli errori.
 | 
			
		||||
   */
 | 
			
		||||
  const char* diagnostica_mov();
 | 
			
		||||
	/** DIAGNOSTICA GESTIONALE SPECIALIZZATA PER TD16/TD17/TD18....*/
 | 
			
		||||
	const char* diagnostica_mov_integrazione();
 | 
			
		||||
  /** Estrazione per pacchetti "normali" (non da esclusi).
 | 
			
		||||
   * Viene chiamata dall'handler estrai_handler: bottone estrai nella maschera estrazione.
 | 
			
		||||
   *
 | 
			
		||||
@ -479,6 +500,10 @@ public:
 | 
			
		||||
   * \return true Scrittura sul db senza errori.
 | 
			
		||||
   * \return false Errore scrittura db. */
 | 
			
		||||
  bool estrazione_iva(bool escluso = false);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	result_estr TEstrazione::estrai_integrazioni();
 | 
			
		||||
	bool estrazione_iva_int(bool escluso = false);
 | 
			
		||||
  bool exist_prov() const;  /**< Controllo che esista per questo stesso periodo una estrazione provvisoria. */
 | 
			
		||||
  /** Controllo se esiste un periodo antecedente a questa estrazione che non e' mai stato estratto definitivamente. */
 | 
			
		||||
  bool gap_periodo() const;
 | 
			
		||||
 | 
			
		||||
@ -15,7 +15,7 @@
 | 
			
		||||
 | 
			
		||||
#define MODE_SHEETS 0xC
 | 
			
		||||
 | 
			
		||||
statistics _stats = { 0, 0, 0, 0, 0, 0, 0, 0, 0 };
 | 
			
		||||
statistics _stats = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
 | 
			
		||||
 | 
			
		||||
const TString & get_numdoc_exp_fp(const int numreg)
 | 
			
		||||
{
 | 
			
		||||
@ -451,6 +451,129 @@ state_fppro TEstrazione::check_fppro(int numreg)
 | 
			
		||||
  return not_fa;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
state_estr_int TEstrazione::guess_int(int numreg)
 | 
			
		||||
{
 | 
			
		||||
	TLocalisamfile mov(LF_MOV);
 | 
			
		||||
	mov.put(MOV_NUMREG, numreg);
 | 
			
		||||
	if (mov.read() == NOERR)
 | 
			
		||||
	{
 | 
			
		||||
		
 | 
			
		||||
		if (get_tipoiva() == iva_vendite)
 | 
			
		||||
		{
 | 
			
		||||
			if (checkPAF(mov))
 | 
			
		||||
				return guessed_int;
 | 
			
		||||
			return no_guessed_int;
 | 
			
		||||
		}
 | 
			
		||||
		else if(get_tipoiva() == iva_acquisti)
 | 
			
		||||
		{
 | 
			
		||||
			if (checkPAA(mov))
 | 
			
		||||
				return guessed_int;
 | 
			
		||||
			return no_guessed_int;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return int_with_err;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
bool TEstrazione::checkPAF(TLocalisamfile& mov)
 | 
			
		||||
{
 | 
			
		||||
	// Prendo il fornitore del mov per controllare la p.iva
 | 
			
		||||
	long codcf = mov.get_long(MOV_CODCF);
 | 
			
		||||
	TCli_for forn = cached_clifor('C', mov.get_long(MOV_CODCF));
 | 
			
		||||
 | 
			
		||||
	const TString4 statopiva(forn.get(CLI_STATOPAIV));
 | 
			
		||||
 | 
			
		||||
	const real tot = mov.get_real(MOV_TOTDOC) + mov.get_real(MOV_RITFIS) + mov.get_real(MOV_RITSOC);
 | 
			
		||||
	TString numdoc = mov.get(MOV_NUMDOCEXT);
 | 
			
		||||
 | 
			
		||||
	if (numdoc.blank())
 | 
			
		||||
		numdoc = mov.get(MOV_NUMDOC);
 | 
			
		||||
	// Controllo datadoc - numdoc - totdoc - p.iva
 | 
			
		||||
 | 
			
		||||
	TString query;
 | 
			
		||||
	
 | 
			
		||||
	query << "SELECT PQ_KEYPRGINVIO AS KEYPRGINVIO, PQ_KEYHEADERFATT AS KEYHEADERFATT, PQ_KEYBODYFATT AS KEYBODYFATT, P7_DATA AS DATA,\n" <<
 | 
			
		||||
		"P7_NUMERO AS NUMDOC, PQ_IMPTOTDOC AS IMPTOTDOC, P2_FISCIVAPAESE AS STATOPIVA, P2_FISCIVACOD AS PIVA FROM PAF2700F\n" <<
 | 
			
		||||
		"JOIN PAF0700F ON PQ_KEYPRGINVIO = P7_KEYPRGINVIO AND PQ_KEYHEADERFATT = P7_KEYHEADERFATT AND PQ_KEYBODYFATT = P7_KEYBODYFATT\n" <<
 | 
			
		||||
		"JOIN PAF0200F ON PQ_KEYPRGINVIO = P2_KEYPRGINVIO AND PQ_KEYHEADERFATT = P2_KEYHEADERFATT AND PQ_KEYBODYFATT = P2_KEYBODYFATT\n" <<
 | 
			
		||||
		"WHERE P7_DATA = '" << mov.get_date(MOV_DATADOC).date2ansi() << "' AND \n" <<
 | 
			
		||||
		"(P7_NUMERO = '" << numdoc << "' OR P7_NUMERO LIKE '%" << numdoc << "%') \n";
 | 
			
		||||
	if (statopiva.full())
 | 
			
		||||
		query << " AND \n" << "P2_FISCIVAPAESE = '" << statopiva << "'";
 | 
			
		||||
	query << " AND \n" << "P2_FISCIVACOD = '" << forn.get(CLI_PAIV) << "'";
 | 
			
		||||
	if (forn.gruppo_IVA())
 | 
			
		||||
		query << " AND \n" "P2_COCAZZO = '" << forn.get(CLI_COFI) << "'"; // cazzo;
 | 
			
		||||
	if (tot < 0)
 | 
			
		||||
		query << " AND \n" "(PQ_IMPTOTDOC = " << tot << " OR PQ_IMPTOTDOC = " << abs(tot) << ")";
 | 
			
		||||
	else
 | 
			
		||||
		query << " AND \n" "PQ_IMPTOTDOC = " << tot;
 | 
			
		||||
	
 | 
			
		||||
	bool ok = fp_db().sq_set_exec(query);
 | 
			
		||||
	
 | 
			
		||||
	if (ok && (fp_db().sq_items() == 1))
 | 
			
		||||
	{
 | 
			
		||||
		TToken_string keys;
 | 
			
		||||
		keys.separator(';');
 | 
			
		||||
		keys = (fp_db().sq_get("KEYPRGINVIO"));
 | 
			
		||||
		keys.add(fp_db().sq_get("KEYHEADERFATT"));
 | 
			
		||||
		keys.add(fp_db().sq_get("KEYBODYFATT"));
 | 
			
		||||
 | 
			
		||||
		mov.put(MOV_KEYPAF, keys);
 | 
			
		||||
		mov.rewrite();
 | 
			
		||||
 | 
			
		||||
		return true;
 | 
			
		||||
	}
 | 
			
		||||
	return false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TEstrazione::checkPAA(TLocalisamfile& mov)
 | 
			
		||||
{
 | 
			
		||||
	// Prendo il fornitore del mov per controllare la p.iva
 | 
			
		||||
	long codcf = mov.get_long(MOV_CODCF);
 | 
			
		||||
	TCli_for forn = cached_clifor('F', mov.get_long(MOV_CODCF));
 | 
			
		||||
 | 
			
		||||
	const TString4 statopiva(forn.get(CLI_STATOPAIV));
 | 
			
		||||
 | 
			
		||||
	const real tot = mov.get_real(MOV_TOTDOC) + mov.get_real(MOV_RITFIS) + mov.get_real(MOV_RITSOC) + mov.get_real(MOV_REVCHARGE);
 | 
			
		||||
	TString numdoc = mov.get(MOV_IDDOCSDI);
 | 
			
		||||
 | 
			
		||||
	TString query;
 | 
			
		||||
 | 
			
		||||
	query << "SELECT PQ_KEYPRGINVIO AS KEYPRGINVIO, PQ_KEYHEADERFATT AS KEYHEADERFATT, PQ_KEYBODYFATT AS KEYBODYFATT, P7_DATA AS DATA,\n" <<
 | 
			
		||||
		"P7_NUMERO AS NUMDOC, PQ_IMPTOTDOC AS IMPTOTDOC, P2_FISCIVAPAESE AS STATOPIVA, P2_FISCIVACOD AS PIVA FROM PAA2700F\n" <<
 | 
			
		||||
		"JOIN PAA0700F ON PQ_KEYPRGINVIO = P7_KEYPRGINVIO AND PQ_KEYHEADERFATT = P7_KEYHEADERFATT AND PQ_KEYBODYFATT = P7_KEYBODYFATT\n" <<
 | 
			
		||||
		"JOIN PAA0200F ON PQ_KEYPRGINVIO = P2_KEYPRGINVIO AND PQ_KEYHEADERFATT = P2_KEYHEADERFATT AND PQ_KEYBODYFATT = P2_KEYBODYFATT\n" <<
 | 
			
		||||
		"WHERE P7_DATA = '" << mov.get_date(MOV_DATADOC).date2ansi() << "' AND \n" <<
 | 
			
		||||
		"(P7_NUMERO = '" << numdoc << "' OR P7_NUMERO LIKE '%" << numdoc << "%') \n";
 | 
			
		||||
	if (statopiva.full())
 | 
			
		||||
		query << " AND \n" << "P2_FISCIVAPAESE = '" << statopiva << "'";
 | 
			
		||||
	query << " AND \n" << "P2_FISCIVACOD = '" << forn.get(CLI_PAIV) << "'";
 | 
			
		||||
	if (forn.gruppo_IVA())
 | 
			
		||||
		query << " AND \n" "P2_COCAZZO = '" << forn.get(CLI_COFI) << "'";
 | 
			
		||||
	if (tot < 0)
 | 
			
		||||
		query << " AND \n" "(PQ_IMPTOTDOC = " << tot << " OR PQ_IMPTOTDOC = " << abs(tot) << ")";
 | 
			
		||||
	else
 | 
			
		||||
		query << " AND \n" "PQ_IMPTOTDOC = " << tot;
 | 
			
		||||
 | 
			
		||||
	bool ok = fp_db().sq_set_exec(query);
 | 
			
		||||
 | 
			
		||||
	if (ok && (fp_db().sq_items() == 1))
 | 
			
		||||
	{
 | 
			
		||||
		//CAPIRE COSA FARE QUI DENTRO
 | 
			
		||||
		TToken_string keys;
 | 
			
		||||
		keys.separator(';');
 | 
			
		||||
		keys = (fp_db().sq_get("KEYPRGINVIO"));
 | 
			
		||||
		keys.add(fp_db().sq_get("KEYHEADERFATT"));
 | 
			
		||||
		keys.add(fp_db().sq_get("KEYBODYFATT"));
 | 
			
		||||
 | 
			
		||||
		mov.put(MOV_KEYFPPRO, keys);
 | 
			
		||||
		mov.rewrite();
 | 
			
		||||
 | 
			
		||||
		return true;
 | 
			
		||||
	}
 | 
			
		||||
	return false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TEstrazione::check_periodo_def() const
 | 
			
		||||
{
 | 
			
		||||
  TString query;
 | 
			
		||||
@ -793,15 +916,19 @@ bool TEstrazione::export_error_list()
 | 
			
		||||
  return ok;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
TString TEstrazione::next_estr_today(char tipo) const
 | 
			
		||||
TString TEstrazione::next_estr_today(char tipo, const bool estr_int) const
 | 
			
		||||
{
 | 
			
		||||
  char estr[] = { 0,0,0,0,0,0,0,0,0 };
 | 
			
		||||
  TString query;
 | 
			
		||||
  query << "SELECT TOP 1 SUBSTRING(" DRD_ID_EST ", 11, 8) AS IDESTR\n"
 | 
			
		||||
    "FROM " F9_DRD "\n"
 | 
			
		||||
    "WHERE " DRD_CODSOC " = '" << _head.cod_soc << "' AND\n"
 | 
			
		||||
    DRD_ID_EST " LIKE '" << today.date2ansi() << "%'\n"
 | 
			
		||||
    "ORDER BY IDESTR DESC";
 | 
			
		||||
	query << "SELECT TOP 1 SUBSTRING(" DRD_ID_EST ", 11, 8) AS IDESTR\n"
 | 
			
		||||
		"FROM " F9_DRD "\n"
 | 
			
		||||
		"WHERE " DRD_CODSOC " = '" << _head.cod_soc << "' AND\n";
 | 
			
		||||
	if (estr_int)
 | 
			
		||||
		query << DRD_ID_EST " LIKE 'R" << today.date2ansi() << "%'\n";
 | 
			
		||||
	else
 | 
			
		||||
		query << DRD_ID_EST " LIKE '" << today.date2ansi() << "%'\n";
 | 
			
		||||
	 
 | 
			
		||||
	query << "ORDER BY IDESTR DESC";
 | 
			
		||||
  fp_db().sq_set_exec(query);
 | 
			
		||||
 | 
			
		||||
  const int last_estr = fp_db().sq_items() > 0 ? real(fp_db().sq_get("IDESTR")).integer() : -1;
 | 
			
		||||
@ -1046,9 +1173,6 @@ const char* TEstrazione::diagnostica_mov()
 | 
			
		||||
 | 
			
		||||
					if (mov_i.estratto())
 | 
			
		||||
					{
 | 
			
		||||
						if (mov_i.numreg() == 41400) {
 | 
			
		||||
							int here = 0;
 | 
			
		||||
						}
 | 
			
		||||
						if (mov_i.cartaceo())
 | 
			
		||||
						{
 | 
			
		||||
							TFilename   file;
 | 
			
		||||
@ -1083,6 +1207,126 @@ const char* TEstrazione::diagnostica_mov()
 | 
			
		||||
  return _head.stato_estr;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const char* TEstrazione::diagnostica_mov_integrazione()
 | 
			
		||||
{
 | 
			
		||||
	bool ok = true;
 | 
			
		||||
	const TipoIVA tipo = get_tipoiva();
 | 
			
		||||
	_stats.total = _movs.size();
 | 
			
		||||
 | 
			
		||||
	TProgress_monitor bar(_movs.items(), "Controllo stato movimenti");
 | 
			
		||||
	FOR_EACH_ARRAY_ITEM(_movs, r, obj)
 | 
			
		||||
		{
 | 
			
		||||
			if (bar.add_status())
 | 
			
		||||
			{
 | 
			
		||||
				TMovimento_estr & mov_i = (TMovimento_estr &)*obj;
 | 
			
		||||
 | 
			
		||||
				// Se gia' escluso passo avanti
 | 
			
		||||
 | 
			
		||||
				if (!mov_i.estratto() && mov_i.descr_estr() == mov_escluso)
 | 
			
		||||
					continue;
 | 
			
		||||
 | 
			
		||||
				const long numreg = mov_i.numreg();
 | 
			
		||||
				const TRectype & mov = cache().get(LF_MOV, numreg);
 | 
			
		||||
				TToken_string keys; 
 | 
			
		||||
				
 | 
			
		||||
				if(tipo == iva_vendite)
 | 
			
		||||
					keys = (mov.get(MOV_KEYPAF));
 | 
			
		||||
				else if (tipo == iva_acquisti)
 | 
			
		||||
					keys = (mov.get(MOV_KEYFPPRO));
 | 
			
		||||
 | 
			
		||||
				keys.separator(';');
 | 
			
		||||
				int i = keys.items();
 | 
			
		||||
				
 | 
			
		||||
				if (keys.full() && (keys.items() == 3))
 | 
			
		||||
				{
 | 
			
		||||
					if (check_keys(keys)) 
 | 
			
		||||
					{
 | 
			
		||||
						ok &= true;
 | 
			
		||||
						mov_i.set_estratto(true);
 | 
			
		||||
						mov_i.set_state_int(guessed_int);
 | 
			
		||||
						++_stats.int_match;
 | 
			
		||||
						continue;
 | 
			
		||||
					} 
 | 
			
		||||
					else
 | 
			
		||||
					{
 | 
			
		||||
						ok &= false;
 | 
			
		||||
						mov_i.set_state_int(int_with_err);
 | 
			
		||||
						mov_i.reset_err();
 | 
			
		||||
						mov_i.set_err("Chiavi del documento ERRATE", mov_nomatch_keys);
 | 
			
		||||
						++_stats.int_nomatch;
 | 
			
		||||
						continue;
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				if (mov_i.no_err() && mov_i.estratto())
 | 
			
		||||
				{
 | 
			
		||||
 | 
			
		||||
					const long numreg = mov_i.numreg();
 | 
			
		||||
					const TRectype & mov = cache().get(LF_MOV, numreg);
 | 
			
		||||
 | 
			
		||||
					mov_i.set_cartaceo(!is_doc_xml(mov));
 | 
			
		||||
 | 
			
		||||
					const state_estr_int res = guess_int(numreg);
 | 
			
		||||
 | 
			
		||||
					switch (res)
 | 
			
		||||
					{
 | 
			
		||||
					case guessed_int:
 | 
			
		||||
						ok &= true;
 | 
			
		||||
						mov_i.set_estratto(true);
 | 
			
		||||
						++_stats.int_match;
 | 
			
		||||
						break;
 | 
			
		||||
					case no_guessed_int:
 | 
			
		||||
						ok &= false;
 | 
			
		||||
						mov_i.reset_err();
 | 
			
		||||
						mov_i.set_err("Non è stato possibile trovare il documento elettronico da abbinare", mov_notfound_elet);
 | 
			
		||||
						++_stats.int_nomatch;
 | 
			
		||||
						break;
 | 
			
		||||
					case int_with_err:
 | 
			
		||||
						ok &= false;
 | 
			
		||||
						mov_i.set_estratto(false);
 | 
			
		||||
						++_stats.int_err;
 | 
			
		||||
						break;
 | 
			
		||||
					default: break;
 | 
			
		||||
					}
 | 
			
		||||
 | 
			
		||||
					if (mov_i.state() == null_state)
 | 
			
		||||
						mov_i.set_state_int(res);
 | 
			
		||||
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	_head.stato_estr = ok ? D_GEST_OK : D_GEST_ERR;
 | 
			
		||||
	return _head.stato_estr;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const bool TEstrazione::check_keys(TToken_string keys) 
 | 
			
		||||
{
 | 
			
		||||
	bool res;
 | 
			
		||||
	TString query;
 | 
			
		||||
 | 
			
		||||
	if (get_tipoiva() == iva_vendite) 
 | 
			
		||||
	{
 | 
			
		||||
		query << "SELECT COUNT(PW_KEYBODYFATT) AS CONTA FROM PAFW300F WHERE PW_KEYPRGINVIO = '" << keys.get(0)
 | 
			
		||||
			<< "' AND PW_KEYHEADERFATT = '" << keys.get(1) << "' AND PW_KEYBODYFATT = '" << keys.get(2) << "'";
 | 
			
		||||
	}
 | 
			
		||||
	else 	if (get_tipoiva() == iva_acquisti) 
 | 
			
		||||
	{
 | 
			
		||||
		query << "SELECT COUNT(PZ_KEYBODYFATT) AS CONTA FROM FPPRO00F WHERE PZ_KEYPRGINVIO = '" << keys.get(0)
 | 
			
		||||
			<< "' AND PZ_KEYHEADERFATT = '" << keys.get(1) << "' AND PZ_KEYBODYFATT = '" << keys.get(2) << "'";
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	fp_db().sq_set_exec(query);
 | 
			
		||||
	TString query_res = fp_db().sq_get("CONTA");
 | 
			
		||||
 | 
			
		||||
	if (query_res == "1")
 | 
			
		||||
		res = true;
 | 
			
		||||
	else
 | 
			
		||||
		res = false;
 | 
			
		||||
 | 
			
		||||
	return res;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
result_estr TEstrazione::estrai()
 | 
			
		||||
{
 | 
			
		||||
  // Se non c'e' nessun movimento non sto nemmeno a scrivere il record di estrazione.
 | 
			
		||||
@ -1357,6 +1601,267 @@ bool TEstrazione::estrazione_iva(bool escluso)
 | 
			
		||||
  return stato;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
result_estr TEstrazione::estrai_integrazioni()
 | 
			
		||||
{
 | 
			
		||||
	// Se non c'e' nessun movimento non sto nemmeno a scrivere il record di estrazione.
 | 
			
		||||
	// Se estrazione definitiva controllo che il periodo non si sovrapponga alle altre estrazioni def.
 | 
			
		||||
	// Do' errore ed esco subito.
 | 
			
		||||
	result_estr res = estr_ok;
 | 
			
		||||
	if (_movs.empty())
 | 
			
		||||
	{
 | 
			
		||||
		warning_box("Non esistono movimenti estraibili per il periodo selezionato.");
 | 
			
		||||
		return estr_stop;
 | 
			
		||||
	}
 | 
			
		||||
	if (!_escluso && !_head.flag_prov)
 | 
			
		||||
	{
 | 
			
		||||
		 // Avviso nel caso in cui si stia facendo un'estrazione definitiva di un periodo di cui non si e' mai fatta
 | 
			
		||||
		 // una prova provvisoria.
 | 
			
		||||
		if (!exist_prov())
 | 
			
		||||
		{
 | 
			
		||||
			if (!noyes_box("Attenzione, non e' mai stata fatta alcuna\nestrazione provvisoria per questo periodo.\nContinuare comunque?"))
 | 
			
		||||
				return estr_stop;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	// Non so come usare questi 18 caratteri...
 | 
			
		||||
	// Uso dati anche se gia' noti in altri campi (I know..) + un numero incrementale.
 | 
			
		||||
	_head.id_estr.cut(0) << 'R' << today.date2ansi() << (_head.flag_prov ? "P" : "D") << next_estr_today(_head.tipo_doc, true);
 | 
			
		||||
	_head.user = user();
 | 
			
		||||
	// Eseguo controllo sui movimenti e segno in testata lo stato
 | 
			
		||||
	_head.stato_estr = IN_DIAGN;  // "01" che verra' quasi subito rimpiazzato dal risultato della diagnostica.
 | 
			
		||||
	if (_escluso)
 | 
			
		||||
		set_dates();                // Se escluso imposto data inizio e fine uguali
 | 
			
		||||
 | 
			
		||||
	// Scrivo record estrazione (in stato '01': in diagnostica).
 | 
			
		||||
	const bool ok = insert_into_drd();
 | 
			
		||||
 | 
			
		||||
	if (!ok)
 | 
			
		||||
	{
 | 
			
		||||
		TString msg;
 | 
			
		||||
 | 
			
		||||
		msg << "Errore database: impossibile scrivere nuova estrazione.\n"
 | 
			
		||||
			<< fp_db().sq_get_text_error(false);
 | 
			
		||||
		error_box(msg);
 | 
			
		||||
		return estr_err_db_drd;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Faccio partire la diagnostica e mi salvo il nuovo stato.
 | 
			
		||||
	diagnostica_mov_integrazione();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	//ARRIVATO QUI
 | 
			
		||||
	insert_into_f9movestr();
 | 
			
		||||
 | 
			
		||||
	if (_head.stato_estr == D_GEST_ERR)
 | 
			
		||||
	{
 | 
			
		||||
		warning_box("Attenzione l'estrazione ha prodotto degli errori.\n"
 | 
			
		||||
			"Controllare e correggere eventuali problemi\ndal Controllo Estrazione.");
 | 
			
		||||
		// Se in errore, esporto lista errori sul db
 | 
			
		||||
		if (!export_error_list())
 | 
			
		||||
			warning_box("Errore scrittura db. Controllare log errori.");
 | 
			
		||||
		res = estr_diag_err;  // Errore diagnostica gestionale
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Se va tutto ben fino a qui, posso andare a scrivere nella
 | 
			
		||||
	// tabella IVA i movimenti. F9IVA
 | 
			
		||||
	if (res == estr_ok)
 | 
			
		||||
	{
 | 
			
		||||
		res = estrazione_iva_int() ? estr_ok : estr_err_db_iva;
 | 
			
		||||
		if (res == estr_err_db_iva)
 | 
			
		||||
			_head.stato_estr = D_GEST_ERR;
 | 
			
		||||
	}
 | 
			
		||||
	update_drd_stato_estr();
 | 
			
		||||
	return res;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TEstrazione::estrazione_iva_int(bool escluso)
 | 
			
		||||
{
 | 
			
		||||
	TString statopaiv, idfisc, paiv, codfis;
 | 
			
		||||
	bool stato = true;
 | 
			
		||||
 | 
			
		||||
	TProgress_monitor bar(_movs.items(), "Estrazione dati IVA");
 | 
			
		||||
 | 
			
		||||
	FOR_EACH_ARRAY_ITEM(_movs, r, obj)
 | 
			
		||||
	{
 | 
			
		||||
		TMovimento_estr & mov_i = (TMovimento_estr &)*obj;
 | 
			
		||||
 | 
			
		||||
		if (bar.add_status() && mov_i.estratto())
 | 
			
		||||
		{
 | 
			
		||||
			const TRectype& mov = cache().get(LF_MOV, mov_i.numreg());
 | 
			
		||||
			TToken_string key = mov.get(MOV_TIPO);
 | 
			
		||||
 | 
			
		||||
			key.add(mov.get(MOV_CODCF));
 | 
			
		||||
 | 
			
		||||
			const TRectype& cli = cache().get(LF_CLIFO, key);
 | 
			
		||||
			const char      tipodoc = _head.tipo_doc;
 | 
			
		||||
			const TCausale & caus = cached_causale(mov.get(MOV_CODCAUS), mov.get_date(MOV_DATAREG).year());
 | 
			
		||||
			const TString&  name_registro = caus.reg().name();;
 | 
			
		||||
			fill_id(cli, statopaiv, idfisc, paiv, codfis);
 | 
			
		||||
			TDate datadoc = mov.get_date(MOV_DATADOC);
 | 
			
		||||
			TDate datareg = mov.get_date(MOV_DATAREG);
 | 
			
		||||
 | 
			
		||||
			TIva_insert_prepared_stat iva_query; /////////QUIIIIIII///
 | 
			
		||||
 | 
			
		||||
			iva_query.add(IVA_CODSOC, _head.cod_soc, 10);
 | 
			
		||||
			iva_query.add(IVA_IDLAN, _head.id_estr, 18);
 | 
			
		||||
			iva_query.add(IVA_FLAG_PD, _head.flag_prov ? 'P' : 'D');
 | 
			
		||||
			iva_query.add(IVA_ANNOES, mov.get_int(MOV_ANNOES));
 | 
			
		||||
			iva_query.add(IVA_GIVA, tipodoc);
 | 
			
		||||
			iva_query.add(IVA_TIPOG, name_registro, 10);
 | 
			
		||||
 | 
			
		||||
			long numdoc = mov.get_long(MOV_NUMDOC);
 | 
			
		||||
			bool has_xml = !mov_i.err(); //si può fare un controllo migliore 
 | 
			
		||||
			iva_query.add(IVA_DOCXML, has_xml ? 'S' : 'N');
 | 
			
		||||
 | 
			
		||||
			iva_query.add(IVA_TIPOCF, mov.get_char(MOV_TIPO));
 | 
			
		||||
			iva_query.add(IVA_CODCF, mov.get_long(MOV_CODCF));
 | 
			
		||||
			iva_query.add(IVA_NUMOR, mov.get_long(MOV_NUMREG));
 | 
			
		||||
 | 
			
		||||
			iva_query.add(IVA_RAGSOC, cli.get(CLI_RAGSOC), 60);
 | 
			
		||||
			iva_query.add(IVA_IDFISC, idfisc, 30);
 | 
			
		||||
			iva_query.add(IVA_PIVA, paiv, 28);
 | 
			
		||||
			iva_query.add(IVA_CODFIS, codfis, 16);
 | 
			
		||||
			iva_query.add(IVA_CATDOC, mov_i.catdoc(categorie_doc())->catdoc(), 10);
 | 
			
		||||
 | 
			
		||||
			const TRegistro& reg = cached_registro(mov.get(MOV_REG), mov.get_int(MOV_ANNOIVA));
 | 
			
		||||
 | 
			
		||||
			if (reg.iva() == iva_vendite)
 | 
			
		||||
			{
 | 
			
		||||
 | 
			
		||||
				int anno = mov.get_int(MOV_DANNO);
 | 
			
		||||
				TString tipodocsdi;
 | 
			
		||||
 | 
			
		||||
				if (anno > 0)
 | 
			
		||||
				{
 | 
			
		||||
					const char provv = mov.get(MOV_DPROVV)[0];
 | 
			
		||||
					const TString& codnum = mov.get(MOV_DCODNUM);
 | 
			
		||||
					const long ndoc = mov.get_long(MOV_DNDOC);
 | 
			
		||||
 | 
			
		||||
					TDocumento doc(provv, anno, codnum, ndoc);
 | 
			
		||||
					iva_query.add(IVA_CAUSSOS, tipo_doc_sdi(doc), 6);
 | 
			
		||||
				}
 | 
			
		||||
				else
 | 
			
		||||
					tipodocsdi = caus.tipodocsdi();
 | 
			
		||||
				if (tipodocsdi.blank())
 | 
			
		||||
					tipodocsdi = mov_i.catdoc(categorie_doc())->caus_sost();
 | 
			
		||||
 | 
			
		||||
				if (tipodocsdi.full())
 | 
			
		||||
					iva_query.add(IVA_CAUSSOS, tipodocsdi, 6);
 | 
			
		||||
			}
 | 
			
		||||
			else
 | 
			
		||||
			{
 | 
			
		||||
				TToken_string key(mov.get((MOV_KEYFPPRO)), ';');
 | 
			
		||||
 | 
			
		||||
				if (key.full())
 | 
			
		||||
				{
 | 
			
		||||
					TFppro fppro(key);
 | 
			
		||||
					const TString& tipodoc = fppro.get_tipodoc();
 | 
			
		||||
 | 
			
		||||
					if (tipodoc.full())
 | 
			
		||||
						iva_query.add(IVA_CAUSSOS, tipodoc, 6);
 | 
			
		||||
					else
 | 
			
		||||
						iva_query.add(IVA_CAUSSOS, mov_i.catdoc(categorie_doc())->caus_sost(), 6);
 | 
			
		||||
				}
 | 
			
		||||
				else
 | 
			
		||||
					iva_query.add(IVA_CAUSSOS, mov_i.catdoc(categorie_doc())->caus_sost(), 6);
 | 
			
		||||
			}
 | 
			
		||||
			iva_query.add(IVA_NUMDOC, mov_i.numdoc(), 20);
 | 
			
		||||
			iva_query.add(IVA_DATADOC, datadoc);
 | 
			
		||||
			iva_query.add(IVA_SEZIVA, mov.get(MOV_REG), 10);
 | 
			
		||||
			iva_query.add(IVA_TIPOREG, "", 6);
 | 
			
		||||
			iva_query.add(IVA_NPROT, mov.get(MOV_PROTIVA), 20);
 | 
			
		||||
			iva_query.add(IVA_DATPROT, datareg);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
			iva_query.add(IVA_CLASDOC, mov_i.catdoc(categorie_doc())->class_sost(), 10);
 | 
			
		||||
			iva_query.add(IVA_NOMFD, mov_i.nomefiledoc().name(), 100);
 | 
			
		||||
 | 
			
		||||
			// Load annessi DA TESTARE...
 | 
			
		||||
			if (mov_i.allegati())
 | 
			
		||||
			{
 | 
			
		||||
				TString_array &     docs = mov_i.documenti_allegati();
 | 
			
		||||
				int          i = 0;
 | 
			
		||||
				const int    size = docs.items();
 | 
			
		||||
 | 
			
		||||
				iva_query.add(IVA_CLASAN1, docs.row(i).get(2), 10);
 | 
			
		||||
				iva_query.add(IVA_NOMF1, docs.row(i++).get(0), 100);
 | 
			
		||||
				// HOW DID MY LIFE COME TO THIS?...
 | 
			
		||||
				if (size > i)
 | 
			
		||||
				{
 | 
			
		||||
					iva_query.add(IVA_CLASAN2, docs.row(i).get(2), 10);
 | 
			
		||||
					iva_query.add(IVA_NOMF2, docs.row(i++).get(0), 100);
 | 
			
		||||
				}
 | 
			
		||||
				if (size > i)
 | 
			
		||||
				{
 | 
			
		||||
					iva_query.add(IVA_CLASAN3, docs.row(i).get(2), 10);
 | 
			
		||||
					iva_query.add(IVA_NOMF3, docs.row(i++).get(0), 100);
 | 
			
		||||
				}
 | 
			
		||||
				if (size > i)
 | 
			
		||||
				{
 | 
			
		||||
					iva_query.add(IVA_CLASAN4, docs.row(i).get(2), 10);
 | 
			
		||||
					iva_query.add(IVA_NOMF4, docs.row(i++).get(0), 100);
 | 
			
		||||
				}
 | 
			
		||||
				if (size > i)
 | 
			
		||||
				{
 | 
			
		||||
					iva_query.add(IVA_CLASAN5, docs.row(i).get(2), 10);
 | 
			
		||||
					iva_query.add(IVA_NOMF5, docs.row(i++).get(0), 100);
 | 
			
		||||
				}
 | 
			
		||||
				if (size > i)
 | 
			
		||||
				{
 | 
			
		||||
					iva_query.add(IVA_CLASAN6, docs.row(i).get(2), 10);
 | 
			
		||||
					iva_query.add(IVA_NOMF6, docs.row(i++).get(0), 100);
 | 
			
		||||
				}
 | 
			
		||||
				if (size > i)
 | 
			
		||||
				{
 | 
			
		||||
					iva_query.add(IVA_CLASAN7, docs.row(i).get(2), 10);
 | 
			
		||||
					iva_query.add(IVA_NOMF7, docs.row(i++).get(0), 100);
 | 
			
		||||
				}
 | 
			
		||||
				if (size > i)
 | 
			
		||||
				{
 | 
			
		||||
					iva_query.add(IVA_CLASAN8, docs.row(i).get(2), 10);
 | 
			
		||||
					iva_query.add(IVA_NOMF8, docs.row(i++), 100);
 | 
			
		||||
				}
 | 
			
		||||
				if (size > i)
 | 
			
		||||
				{
 | 
			
		||||
					iva_query.add(IVA_CLASAN9, docs.row(i).get(2), 10);
 | 
			
		||||
					iva_query.add(IVA_NOMF9, docs.row(i++).get(0), 100);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			iva_query.add(IVA_USERELA, user(), 10);
 | 
			
		||||
			iva_query.add_getdate(IVA_TIMEELA);
 | 
			
		||||
 | 
			
		||||
			/* DA VEDERE 
 | 
			
		||||
			if (_head.tipo_doc == 'A' && !mov_i.cartaceo())
 | 
			
		||||
			{
 | 
			
		||||
				TToken_string keys(mov.get(MOV_KEYFPPRO), ';');
 | 
			
		||||
				fppro_db().set_keys(keys);
 | 
			
		||||
				iva_query.add(IVA_TIPPROT, fppro_db().get_tipoprot(), 2);
 | 
			
		||||
				iva_query.add(IVA_ANNPROT, TVariant(fppro_db().get_annoprot()).as_int());
 | 
			
		||||
				iva_query.add(IVA_NUMPROT, fppro_db().get_numprot(), 10);  // Non controllo che sia in realta' un numero...
 | 
			
		||||
				iva_query.add(IVA_TIMERIC, TDate(fppro_db().get_dataoraric()));
 | 
			
		||||
			}
 | 
			
		||||
			*/
 | 
			
		||||
			
 | 
			
		||||
			TString sql;
 | 
			
		||||
 | 
			
		||||
			//DA MIGLIORARE IL LOG DI ERRORE
 | 
			
		||||
			long a = mov_i.numreg();
 | 
			
		||||
 | 
			
		||||
			bool ok = iva_query.get(sql);
 | 
			
		||||
 | 
			
		||||
			if (ok)
 | 
			
		||||
				ok = fp_db().sq_set_exec(sql);
 | 
			
		||||
			if (ok)
 | 
			
		||||
				ok = fp_db().sq_commit();
 | 
			
		||||
			if (!ok)
 | 
			
		||||
				write_errorsql_log(sql);
 | 
			
		||||
 | 
			
		||||
			stato &= ok;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return stato;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TEstrazione::exist_prov() const
 | 
			
		||||
{
 | 
			
		||||
  TString query; query << "SELECT * FROM " F9_DRD "\n" <<
 | 
			
		||||
 | 
			
		||||
@ -33,8 +33,9 @@ Picture = <cg01>
 | 
			
		||||
Module  = f9
 | 
			
		||||
Flags   = ""
 | 
			
		||||
Item_01 = "Estrazioni", "f90 -0", ""
 | 
			
		||||
Item_02 = "Categorie documentali", "f90 -1", ""
 | 
			
		||||
Item_03 = "Gestione file doc. cartacei", "f90 -2", ""
 | 
			
		||||
Item_04 = "Ripristino estrazioni", "f90 -4", ""
 | 
			
		||||
Item_02 = "Archiviazione integrazioni", "f90 -5", ""
 | 
			
		||||
Item_03 = "Categorie documentali", "f90 -1", ""
 | 
			
		||||
Item_04 = "Gestione file doc. cartacei", "f90 -2", ""
 | 
			
		||||
Item_05 = "Ripristino estrazioni", "f90 -4", ""
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -65,6 +65,7 @@
 | 
			
		||||
#define MOV_DATADOCSDI "DATADOCSDI"  
 | 
			
		||||
#define MOV_COLL_GOLEM "COLL_GOLEM" 
 | 
			
		||||
#define MOV_CARTACEI   "CARTACEI" 
 | 
			
		||||
#define MOV_KEYPAF		 "KEYPAF"
 | 
			
		||||
 | 
			
		||||
#define NUMREG_PROVVISORIO 999999L
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user