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,6 +439,10 @@ 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);
|
||||
@ -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";
|
||||
"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