Correzione errori ricezione da sistema. Modifiche ricezione e invio, aggiunta ricezione in automatico.

git-svn-id: svn://10.65.10.50/trunk@2516 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
nik 1996-01-29 12:06:42 +00:00
parent a3f12ff8c0
commit bd2e5486f7
28 changed files with 11287 additions and 8309 deletions

View File

@ -8,7 +8,9 @@ int main(int argc,char** argv)
const int n = (argc > 1) ? atoi(&argv[1][1]) : 0; const int n = (argc > 1) ? atoi(&argv[1][1]) : 0;
switch(n) switch(n)
{ {
case 0:
cg6100(argc, argv); break;
case 2: case 2:
cg6300(argc, argv); break; cg6300(argc, argv); break;
case 3: case 3:

View File

@ -1,6 +1,7 @@
#ifndef __CG6_H #ifndef __CG6_H
#define __CG6_H #define __CG6_H
int cg6100(int argc, char* argv[]);
int cg6300(int argc, char* argv[]); int cg6300(int argc, char* argv[]);
int cg6400(int argc, char* argv[]); int cg6400(int argc, char* argv[]);
int cg6500(int argc, char* argv[]); int cg6500(int argc, char* argv[]);

View File

@ -1,45 +1,54 @@
#include <default.url> #include <default.url>
MENU TASK_MENUBAR MENU TASK_MENUBAR
SUBMENU MENU_FILE "~File" SUBMENU MENU_FILE "~File"
MENUBAR MENU_BAR(1) MENUBAR MENU_BAR(1)
MENU MENU_BAR(1) MENU MENU_BAR(1)
SUBMENU MENU_FILE "~File" SUBMENU MENU_FILE "~File"
MENUBAR MENU_BAR(2) MENUBAR MENU_BAR(2)
MENU MENU_BAR(2) MENU MENU_BAR(2)
SUBMENU MENU_FILE "~File" SUBMENU MENU_FILE "~File"
MENUBAR MENU_BAR(3) MENUBAR MENU_BAR(3)
MENU MENU_BAR(3) MENU MENU_BAR(3)
SUBMENU MENU_FILE "~File" SUBMENU MENU_FILE "~File"
MENUBAR MENU_BAR(4) MENUBAR MENU_BAR(4)
MENU MENU_BAR(4) MENU MENU_BAR(4)
SUBMENU MENU_FILE "~File" SUBMENU MENU_FILE "~File"
MENUBAR MENU_BAR(5) MENUBAR MENU_BAR(5)
MENU MENU_BAR(5) MENU MENU_BAR(5)
SUBMENU MENU_FILE "~File" SUBMENU MENU_FILE "~File"
MENUBAR MENU_BAR(6) MENUBAR MENU_BAR(6)
MENU MENU_BAR(6) MENU MENU_BAR(6)
SUBMENU MENU_FILE "~File" SUBMENU MENU_FILE "~File"
MENUBAR MENU_BAR(7) MENUBAR MENU_BAR(7)
MENU MENU_BAR(7) MENU MENU_BAR(7)
SUBMENU MENU_FILE "~File" SUBMENU MENU_FILE "~File"
MENUBAR MENU_BAR(8) MENUBAR MENU_BAR(8)
MENU MENU_BAR(8) MENU MENU_BAR(8)
SUBMENU MENU_FILE "~File" SUBMENU MENU_FILE "~File"
MENUBAR MENU_BAR(9)
MENU MENU_BAR(9)
SUBMENU MENU_FILE "~File"
MENUBAR MENU_BAR(10)
MENU MENU_BAR(10)
SUBMENU MENU_FILE "~File"

399
cg/cg6100.cpp Executable file
View File

@ -0,0 +1,399 @@
// Ricezione automatica
#include <applicat.h>
#include <mask.h>
#include <tabutil.h>
#include <utility.h>
#include <config.h>
#include <urldefid.h>
#include <prefix.h>
#include <execp.h>
#include <mailbox.h>
#include "cglib04.h"
class TRic_auto : public TApplication
{
TTransfer_file* _tras_file;
TString _control_rec, _sigle_file, _nrec_file;
TDate _dataultras;
int _nultras;
long _ditta;
char _trasfer;
char _tipo;
bool _cancella_header;
public:
virtual bool create();
virtual bool destroy();
virtual bool menu(MENU_TAG m);
bool main_loop();
void stato_trasferimento(TString& std);
bool controlli_preliminari();
bool leggi_trasfer();
bool leggi_header();
bool set_flag();
TRic_auto(const char* ditta, char trasfer, char tipo);
};
HIDDEN TRic_auto& app() { return (TRic_auto &) main_app(); }
TRic_auto::TRic_auto(const char* ditta, char trasfer, char tipo) :
_ditta(atol(ditta)), _trasfer(trasfer), _tipo(tipo)
{}
void TRic_auto::stato_trasferimento(TString& std)
{
TConfig conf (CONFIG_DITTA); // Recupero stato trasferimento
std = conf.get("FlStTra"); // dai parametri ditta
}
bool TRic_auto::main_loop()
{
TString std = "";
if (!controlli_preliminari())
return FALSE;
set_flag();
stato_trasferimento(std);
if (std == "T")
{
TString appname = "cg6 -5 T A"; // Lancio il programma di ricezione delle tabelle
// con il parametro A perche' si tratta di ricezione
TExternal_app a (appname); // in automatico
a.run();
}
stato_trasferimento(std);
if (std == "C")
{
TString appname = "cg6 -6 A "; // Lancio il programma di lista controllo movimenti
appname << _tipo;
TExternal_app a (appname);
a.run();
TMailbox m;
TMessage* msg = m.next_s("");
int subj;
if (msg != NULL)
{
subj = atoi(msg->body());
TFilename dirtemp;
dirtemp.tempdir();
dirtemp << "cg6700.mbx";
fremove(dirtemp);
if (!subj)
return FALSE;
}
}
stato_trasferimento(std);
if (std == "M")
{
TString appname = "cg6 -5 M A"; // Lancio il programma di ricezione dei movimenti
// con il parametro A perche' si tratta di ricezione
TExternal_app a (appname); // in automatico
a.run();
}
stato_trasferimento(std);
if (std == "*")
{
_cancella_header = TRUE;
_tras_file->remove_all();
TString trasf;
trasf = _tras_file->path(_ditta);
trasf << "\\trasfer";
fremove(trasf);
TConfig conf (CONFIG_DITTA); // Inizializzo stato trasferimento
conf.set("FlStTra"," "); // dei parametri ditta
message_box("Il trasferimento e' stato INTERAMENTE COMPLETATO");
}
return FALSE;
}
bool TRic_auto::controlli_preliminari()
{
TString std = "";
if (!prefix().exist(_ditta)) // Controllo esistenza
return error_box("Rilevati ERRORI GRAVI nel trasferimento"); // direttorio della ditta
set_firm(_ditta);
stato_trasferimento(std);
if (std == "")
{
if (!leggi_trasfer()) // Controllo se esiste il file trasfer
return error_box("Il file di trasferimento non e' presente nella directory %s",_tras_file->path(_ditta));
TString appname = "cg6 -3 "; // Lancio il programma che trasferisce
appname << _trasfer << " A"; // i dati dal trasfer agli archivi temporanei
TExternal_app a (appname);
a.run();
}
if (!leggi_header()) // Controllo l'esistenza del record
return error_box("Rilevati ERRORI GRAVI nel trasferimento"); // di controllo nel file header
TString ult_file = _tras_file->ult_file();
TString key = _tras_file->key();
if ( (std != "*" && std != "") || (ult_file != "" || key != "") )
return error_box("Ultimo trasferimento NON COMPLETATO: completarlo");
if (std == "*")
{
_cancella_header = TRUE;
_tras_file->remove_all();
TString trasf;
trasf = _tras_file->path(_ditta);
trasf << "\\trasfer";
fremove(trasf);
TConfig conf (CONFIG_DITTA); // Inizializzo stato trasferimento
conf.set("FlStTra"," "); // dei parametri ditta
}
return TRUE;
}
bool TRic_auto::leggi_trasfer()
{
TString80 trasf;
trasf = _tras_file->path(_ditta);
trasf << "\\trasfer";
_tras_file->open(trasf);
if (_tras_file->exist())
return TRUE;
return FALSE;
}
bool TRic_auto::leggi_header()
{
TString header;
header = _tras_file->path(_ditta);
header << HEADER;
_tras_file->open(header);
if (_tras_file->exist())
{
if (_tras_file->read_control_rec())
{
_control_rec = _tras_file->record();
TString tiporecord = _control_rec.sub(0,2);
if (tiporecord != " 1")
return FALSE;
}
else
return FALSE;
}
else
return FALSE;
_tras_file->close();
return TRUE;
}
bool TRic_auto::set_flag()
{
TString sigla;
long nrec;
int j;
int k = 0;
TString flag;
TString record;
TString ana_com,pcon_cau;
TString uselab;
bool fatto = TRUE;
TConfig conf(CONFIG_DITTA);
ana_com = conf.get("AnCfCm","cg");
pcon_cau = conf.get("PcTcCm","cg");
TString header;
header = _tras_file->path(_ditta);
header << HEADER;
_tras_file->open(header);
if (_tras_file->exist())
{
if (_tras_file->read_control_rec())
{
_nultras = _tras_file->nultras();
_dataultras = _tras_file->dataultras();
_sigle_file = _tras_file->sigle_file();
_nrec_file = _tras_file->nrec_file();
record = _tras_file->record();
}
for (j = 0; j < _sigle_file.len(); j++)
{
sigla = _sigle_file.mid(j,1);
nrec = atol(_nrec_file.mid(k,6));
if (fatto)
{
if (sigla == "W" || sigla == "P")
{
if (nrec > 0 && pcon_cau == "")
{
flag = "T";
fatto = FALSE;
}
}
else
if (sigla == "A")
{
if (nrec > 0 && ana_com == "")
{
flag = "T";
fatto = FALSE;
}
}
else
if (sigla == "Z" || sigla == "U" || sigla == "B")
{
if (nrec > 0)
{
flag = "C";
fatto = FALSE;
}
}
else
{
flag = "*";
fatto = FALSE;
}
if (flag == "T")
uselab = sigla;
else
uselab = "";
}
if (sigla == "W" || sigla == "P")
{
if (pcon_cau == "X")
{
_sigle_file.overwrite(" ",j);
_nrec_file.overwrite("000000",k);
}
}
if (sigla == "A")
{
if (ana_com == "X")
{
_sigle_file.overwrite(" ",j);
_nrec_file.overwrite("000000",k);
}
}
k += 6;
}
record.overwrite(_sigle_file,86);
record.overwrite(_nrec_file,95);
TString agg(7);
agg[0] = ' ';
agg[1] = 'D';
agg[2] = 'D';
agg[3] = 'D';
agg[4] = ' ';
agg[5] = ' ';
agg[6] = '\0';
record.overwrite(agg,234);
record.overwrite(uselab,240);
TString str;
str.spaces(60);
record.overwrite(str,241);
const int size = 1024;
if (!_tras_file->write_control_rec(record, size))
return FALSE;
_tras_file->close();
}
conf.set("FlStTra", flag);
return TRUE;
}
bool TRic_auto::create()
{
TApplication::create();
_cancella_header = FALSE;
_tras_file = new TTransfer_file(_trasfer);
dispatch_e_menu (BAR_ITEM(1));
return TRUE;
}
bool TRic_auto::destroy()
{
delete _tras_file;
if (_cancella_header)
{
TString header;
header = _tras_file->path(_ditta);
header << HEADER;
fremove(header);
}
return TApplication::destroy();
}
bool TRic_auto::menu(MENU_TAG m)
{
if (m == BAR_ITEM(1))
return main_loop();
return FALSE;
}
int cg6100 (int argc, char* argv[])
{
char p4 = '\0';
if (argc > 5)
p4 = *argv[4];
TRic_auto main_app(argv[2],*argv[3],p4);
main_app.run(argc, argv,"Ricezione automatica");
return TRUE;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,63 +1,68 @@
#include "cg6600.h" #include "cg6600.h"
PAGE "" -1 -1 70 11 PAGE "" -1 -1 78 13
NUMBER F_CODDITTA 5 NUMBER F_CODDITTA 5
BEGIN BEGIN
PROMPT 1 1 "Ditta ricevente " PROMPT 1 1 "Ditta ricevente "
USE LF_NDITTE KEY 1 USE LF_NDITTE KEY 1
INPUT CODDITTA F_CODDITTA INPUT CODDITTA F_CODDITTA
OUTPUT F_RAGSOC RAGSOC OUTPUT F_RAGSOC RAGSOC
FLAGS "RDZ" FLAGS "RDZ"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
STRING F_RAGSOC 50 STRING F_RAGSOC 50
BEGIN BEGIN
PROMPT 1 2 "Ragione sociale " PROMPT 1 2 "Ragione sociale "
FLAGS "D" FLAGS "D"
END END
NUMBER F_NULTRAS 3 NUMBER F_NULTRAS 3
BEGIN BEGIN
PROMPT 1 4 "Numero invio " PROMPT 1 4 "Numero invio "
FLAGS "D" FLAGS "D"
END END
DATE F_DATAULTRAS TEXT DLG_NULL
BEGIN BEGIN
PROMPT 1 5 "Data limite trasferimento " PROMPT 1 5 "Data del"
FLAGS "D" END
END
DATE F_DATAULTRAS
STRING F_STD 1 BEGIN
BEGIN PROMPT 1 6 "trasferimento "
PROMPT 1 6 "Stato del trasferimento " FLAGS "D"
FLAGS "DU" END
END
STRING F_STD 1
STRING F_USELAB 1 BEGIN
BEGIN PROMPT 1 7 "Stato del "
PROMPT 31 6 "" FLAGS "DU"
FLAGS "DU" END
END
STRING F_USELAB 1
STRING F_STATO 15 BEGIN
BEGIN PROMPT 22 7 ""
PROMPT 35 6 "" FLAGS "DU"
FLAGS "DU" END
END
STRING F_STATO 60
BUTTON DLG_OK 9 2 BEGIN
BEGIN PROMPT 1 8 "trasferimento "
PROMPT -12 -1 "" FLAGS "DU"
END END
BUTTON DLG_QUIT 9 2 BUTTON DLG_OK 9 2
BEGIN BEGIN
PROMPT -22 -1 "" PROMPT -12 -1 ""
END END
ENDPAGE BUTTON DLG_QUIT 9 2
BEGIN
ENDMASK PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK

View File

@ -8,7 +8,8 @@
#include <printapp.h> #include <printapp.h>
#include <progind.h> #include <progind.h>
#include <tabutil.h> #include <tabutil.h>
#include <utility.h> #include <utility.h>
#include <mailbox.h>
#include <nditte.h> #include <nditte.h>
#include <mov.h> #include <mov.h>
@ -46,18 +47,20 @@ class TRic_ListaMov : public TPrintapp
TCursor* _cur; TCursor* _cur;
TTransfer_file* _trasfer; TTransfer_file* _trasfer;
TLibro_giornale* _giornale; TLibro_giornale* _giornale;
char _ric_auto,_tipo_lista;
TString80 _pathfile, _descr_causale, _descr_conto; TString80 _pathfile, _descr_causale, _descr_conto;
TString16 _causale, _registro, _numdoc, _tipodoc, _codval; TString16 _causale, _registro, _numdoc, _tipodoc, _codval;
TString16 _codpag, _codiva, _tipo_conto; TString16 _codpag, _codiva, _tipo_conto;
TString _record; TString _record;
bool _mov_sez, _errore_grave, _esiste_conto, _is_exist; bool _mov_sez, _errore_grave, _esiste_conto, _is_exist, _risposta, _continua;
char _sdt, _sezione, _tipocf; char _sdt, _sezione, _tipocf;
int _ae, _anno, _gruppo, _conto, _tipocr, _tipod, _tiporeg; int _ae, _anno, _gruppo, _conto, _tipocr, _tipod, _tiporeg;
int _gruppoc, _contoc, _n_rec, _gruppocr, _contocr; int _gruppoc, _contoc, _gruppocr, _contocr, _annoiva;
TDate _datacomp, _datadoc, _datareg, _data74tr; TDate _datacomp, _datadoc, _datareg, _data74tr;
real _importo, _impo, _impos, _tot_dare, _tot_avere, _tot_doc; real _importo, _impo, _impos, _tot_dare, _tot_avere, _tot_doc;
long _codcf, _numero, _protiva, _sottoconto; long _codcf, _numero, _protiva, _sottoconto;
long _num_rec, _sottocontoc, _sottocontocr; long _sottocontoc, _sottocontocr;
TBit_array _err; TBit_array _err;
byte _controllo; byte _controllo;
@ -89,12 +92,16 @@ public:
TLibro_giornale& giornale() { return *_giornale; } TLibro_giornale& giornale() { return *_giornale; }
TTransfer_file& trasfer() { return *_trasfer; } TTransfer_file& trasfer() { return *_trasfer; }
TRic_ListaMov(): _err(80) {} TRic_ListaMov(char ric_auto = '\0',char tipo_lista = '\0');
virtual ~TRic_ListaMov() {} virtual ~TRic_ListaMov() {}
}; };
HIDDEN inline TRic_ListaMov& app() { return (TRic_ListaMov&)main_app();} HIDDEN inline TRic_ListaMov& app() { return (TRic_ListaMov&)main_app();}
TRic_ListaMov::TRic_ListaMov(char ric_auto,char tipo_lista):
_ric_auto(toupper(ric_auto)), _tipo_lista(toupper(tipo_lista)), _err(80)
{}
const char* TRic_ListaMov::look_sdt() const char* TRic_ListaMov::look_sdt()
{ {
TConfig conf(CONFIG_DITTA); TConfig conf(CONFIG_DITTA);
@ -189,10 +196,7 @@ bool TRic_ListaMov::DescrConto(int g, int c, long s)
bool TRic_ListaMov::user_create() bool TRic_ListaMov::user_create()
{ {
_trasfer = new TTransfer_file(); _trasfer = new TTransfer_file();
TProgind* pnd = NULL;
pnd = new TProgind (3,"Controllo archivi\nPrego attendere",
FALSE, TRUE, 30);
_tab_tra = new TTable ("%TRA"); _tab_tra = new TTable ("%TRA");
_tab_tpd = new TTable ("%TPD"); _tab_tpd = new TTable ("%TPD");
_tab_pag = new TTable ("%CPG"); _tab_pag = new TTable ("%CPG");
@ -206,15 +210,23 @@ bool TRic_ListaMov::user_create()
_rmov = new TLocalisamfile (LF_RMOV); _rmov = new TLocalisamfile (LF_RMOV);
_rmoviva = new TLocalisamfile (LF_RMOVIVA); _rmoviva = new TLocalisamfile (LF_RMOVIVA);
if (pnd) pnd->addstatus(1); if (_ric_auto != 'A')
if (!check_archivi(pnd))
{ {
delete pnd; TProgind* pnd = NULL;
return FALSE; pnd = new TProgind (3,"Controllo archivi\nPrego attendere",FALSE, TRUE, 30);
}
if (pnd) pnd->addstatus(1);
if (pnd) pnd->addstatus(1); if (!check_archivi(pnd))
{
delete pnd;
return FALSE;
}
if (pnd) pnd->addstatus(1);
delete pnd;
}
TString80 tmpmov = "%"; TString80 tmpmov = "%";
tmpmov << get_firm_dir(); tmpmov << get_firm_dir();
@ -255,7 +267,8 @@ bool TRic_ListaMov::user_create()
printer().footerlen(5); printer().footerlen(5);
delete pnd; _risposta = FALSE;
_continua = TRUE;
return TRUE; return TRUE;
} }
@ -624,7 +637,7 @@ bool TRic_ListaMov::controlla_rmov()
_descr_conto = ""; _descr_conto = "";
} }
_num_rec = rec.get_long(RMV_ANNOES); //_num_rec = rec.get_long(RMV_ANNOES);
if (sezione == 'D') if (sezione == 'D')
dare += importo; dare += importo;
@ -741,7 +754,7 @@ bool TRic_ListaMov::controlla_riva()
{ {
TRectype rec (rmoviva.curr()); TRectype rec (rmoviva.curr());
if (rec > recc) break; if (rec > recc) break;
_n_rec = rec.get_int(RMI_ANNOES); //_n_rec = rec.get_int(RMI_ANNOES);
codiva = rec.get(RMI_CODIVA); codiva = rec.get(RMI_CODIVA);
tipodet = rec.get_int(RMI_TIPODET); tipodet = rec.get_int(RMI_TIPODET);
tipocr = rec.get_int(RMI_TIPOCR); tipocr = rec.get_int(RMI_TIPOCR);
@ -925,6 +938,7 @@ bool TRic_ListaMov::preprocess_page(int file,int counter)
_protiva = cur->curr(LF_MOV).get_long(MOV_PROTIVA); _protiva = cur->curr(LF_MOV).get_long(MOV_PROTIVA);
_codval = cur->curr(LF_MOV).get(MOV_CODVALI); _codval = cur->curr(LF_MOV).get(MOV_CODVALI);
_codpag = cur->curr(LF_MOV).get(MOV_CODPAG); _codpag = cur->curr(LF_MOV).get(MOV_CODPAG);
_annoiva = _datareg.year();
_tot_dare = _tot_avere = ZERO; _tot_dare = _tot_avere = ZERO;
_tot_doc = ZERO; _tot_doc = ZERO;
@ -1086,23 +1100,46 @@ print_action TRic_ListaMov::postprocess_page(int file,int count)
void TRic_ListaMov::postclose_print() void TRic_ListaMov::postclose_print()
{ {
if (_errore_grave) if (_errore_grave)
{ {
message_box("Rilevati errori gravi durante il controllo movimenti: \n trasferimento interrotto"); if (_ric_auto == 'A')
TTransfer_file& tr = trasfer(); {
_record.overwrite(" ",240); //_record e' letto nella read_control_rec() _risposta = TRUE;
const int size = 256; _continua = yesno_box("Rilevati ERRORI GRAVI durante il controllo movimenti: \n Controllare gli errori sulla lista dei movimenti stampata per eseguire le correzioni. \n Continuare ugualmente?");
tr.write_control_rec(_record, size); TTransfer_file& tr = trasfer();
tr.read_control_rec(); if (!_continua)
_record.overwrite(" ",240); //_record e' letto nella read_control_rec()
else
{
TConfig conf (CONFIG_DITTA);
conf.set("FlStTra", "M");
_record.overwrite("Z",240);
}
const int size = 1024;
tr.write_control_rec(_record, size);
tr.read_control_rec();
}
else
{
message_box("Rilevati errori gravi durante il controllo movimenti: \n trasferimento interrotto");
TTransfer_file& tr = trasfer();
_record.overwrite(" ",240); //_record e' letto nella read_control_rec()
const int size = 1024;
tr.write_control_rec(_record, size);
tr.read_control_rec();
}
} }
else else
{ {
message_box("CONTROLLO MOVIMENTI terminato: \n proseguire con AGGIORNAMENTO movimenti"); if (_ric_auto == 'A')
_risposta = TRUE;
else
message_box("CONTROLLO MOVIMENTI terminato: \n proseguire con RICEZIONE movimenti");
TConfig conf (CONFIG_DITTA); TConfig conf (CONFIG_DITTA);
conf.set("FlStTra", "M"); conf.set("FlStTra", "M");
TTransfer_file& tr = trasfer(); TTransfer_file& tr = trasfer();
_record.overwrite("Z",240); //_record e' letto nella read_control_rec() _record.overwrite("Z",240); //_record e' letto nella read_control_rec()
const int size = 256; const int size = 1024;
tr.write_control_rec(_record, size); tr.write_control_rec(_record, size);
tr.read_control_rec(); tr.read_control_rec();
} }
@ -1113,6 +1150,7 @@ void TRic_ListaMov::aggiorna_mov()
TLocalisamfile& mov = current_cursor()->file(LF_MOV); TLocalisamfile& mov = current_cursor()->file(LF_MOV);
mov.put(MOV_DATACOMP, _datacomp); mov.put(MOV_DATACOMP, _datacomp);
mov.put(MOV_ANNOIVA, _annoiva);
mov.put(MOV_REG, _registro); mov.put(MOV_REG, _registro);
mov.put(MOV_TIPODOC, _tipodoc); mov.put(MOV_TIPODOC, _tipodoc);
mov.put(MOV_TIPO, _tipocf); mov.put(MOV_TIPO, _tipocf);
@ -1171,34 +1209,85 @@ bool TRic_ListaMov::user_destroy()
} }
bool TRic_ListaMov::set_print(int m) bool TRic_ListaMov::set_print(int m)
{ {
TMask msk ("cg6700a"); if (_ric_auto == 'A')
{
if (_risposta) // Metto questa variabile booleana per uscire, altrimenti
{ // il programma andrebbe in loop andando ancora in stampa
TString appname = "cg6 -0";
TString body = "";
TTransfer_file& tr = trasfer(); if (_continua)
body = "1";
else
body = "0";
TMessage msg (appname,"",(const char*)body);
TMailbox mb;
mb.send(msg);
return FALSE;
}
TString80 nome;
long ditta_ric = get_firm();
msk.set(F_NUMERO, tr.nultras()); TTransfer_file& tr = trasfer(); // Nella lista controllo movimenti lanciata da menu il record di
msk.set(F_DATALIMITE, tr.dataultras()); // controllo dell'header viene letto nella funzione check_archivi
msk.set(F_SDT, look_sdt()); // Nella ricezione in automatico devo leggerlo in questo punto
msk.set(F_SIGLA, tr.ult_file()); _pathfile = tr.path();
msk.set(F_CHIAVE, tr.key());
if (msk.run() != K_ENTER) return FALSE; _pathfile = _pathfile << HEADER;
_controllo = msk.get_int(F_LISTA); if (!tr.open(_pathfile))
return error_box("Al momento non presenti trasferimenti attivi sulla ditta selezionata");
if (!tr.read_control_rec())
return error_box("Rilevati errori gravi negli archivi: procedura interrotta");
else _record = tr.record();
if (_tipo_lista == 'A')
_controllo = 2;
else
_controllo = 1;
if (_sdt == '*') set_real_picture("###.###.###.###");
fremove(_pathfile);
setta_parametri(" ", "C"); printer().footerlen(5);
set_real_picture("###.###.###.###"); _errore_grave = FALSE;
_err.reset();
}
else
{
TMask msk ("cg6700a");
printer().footerlen(5); TTransfer_file& tr = trasfer();
setta_intestazione(); msk.set(F_NUMERO, tr.nultras());
msk.set(F_DATALIMITE, tr.dataultras());
msk.set(F_SDT, look_sdt());
msk.set(F_SIGLA, tr.ult_file());
msk.set(F_CHIAVE, tr.key());
_errore_grave = FALSE; if (msk.run() != K_ENTER) return FALSE;
_err.reset();
_controllo = msk.get_int(F_LISTA);
if (_sdt == '*')
fremove(_pathfile);
setta_parametri(" ", "C");
set_real_picture("###.###.###.###");
printer().footerlen(5);
setta_intestazione();
_errore_grave = FALSE;
_err.reset();
}
return TRUE; return TRUE;
} }
@ -1246,13 +1335,21 @@ void TRic_ListaMov::setta_parametri(const TString& sigla, const TString& flag)
TString rec = tr.record(); TString rec = tr.record();
rec.overwrite(sigla,240); rec.overwrite(sigla,240);
const int size = 256; const int size = 1024;
tr.write_control_rec(rec, size); tr.write_control_rec(rec, size);
} }
int cg6700 (int argc, char* argv[]) int cg6700 (int argc, char* argv[])
{ {
TRic_ListaMov a; char p1 = '\0';
char p2 = '\0';
if (argc >= 4)
p1 = *argv[2];
if (argc >= 5)
p2 = *argv[3];
TRic_ListaMov a(p1,p2);
a.run(argc, argv,"Lista controllo movimenti"); a.run(argc, argv,"Lista controllo movimenti");
return TRUE; return TRUE;
} }

View File

@ -1,77 +1,82 @@
#include "cg6700.h" #include "cg6700.h"
PAGE "" -1 -1 78 17 PAGE "" -1 -1 78 17
NUMBER F_CODDITTA 5 NUMBER F_CODDITTA 5
BEGIN BEGIN
PROMPT 2 1 "Ditta ricevente " PROMPT 2 1 "Ditta ricevente "
FLAGS "FRD" FLAGS "FRD"
USE LF_NDITTE KEY 1 USE LF_NDITTE KEY 1
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
INPUT CODDITTA F_CODDITTA INPUT CODDITTA F_CODDITTA
OUTPUT F_CODDITTA CODDITTA OUTPUT F_CODDITTA CODDITTA
OUTPUT F_RAGSOC RAGSOC OUTPUT F_RAGSOC RAGSOC
END END
STRING F_RAGSOC 50 STRING F_RAGSOC 50
BEGIN BEGIN
PROMPT 2 2 "Ragione sociale " PROMPT 2 2 "Ragione sociale "
FLAGS "D" FLAGS "D"
END END
RADIOBUTTON F_LISTA 31 RADIOBUTTON F_LISTA 31
BEGIN BEGIN
PROMPT 2 4 "Scelta controllo " PROMPT 2 4 "Scelta controllo "
HELP "Indicare il tipo di controllo" HELP "Indicare il tipo di controllo"
ITEM "1|Lista controllo movim. errati" ITEM "1|Lista controllo movim. errati"
ITEM "2|Lista controllo tutti movim." ITEM "2|Lista controllo tutti movim."
END END
NUMBER F_NUMERO 3 NUMBER F_NUMERO 3
BEGIN BEGIN
PROMPT 2 9 "Numero invio " PROMPT 2 9 "Numero invio "
FLAGS "D" FLAGS "D"
END END
DATE F_DATALIMITE TEXT DLG_NULL
BEGIN BEGIN
PROMPT 2 10 "Data limite trasferimento " PROMPT 2 10 "Data limite"
FLAGS "D" END
END
DATE F_DATALIMITE
TEXT DLG_NULL BEGIN
BEGIN PROMPT 2 11 "trasferimento "
PROMPT 2 11 "Stato ricezione " FLAGS "D"
END END
STRING F_SDT 1 STRING F_SDT 1
BEGIN BEGIN
PROMPT 31 11 "" PROMPT 2 12 "Stato della "
FLAGS "DU" FLAGS "DU"
END END
STRING F_SIGLA 1 STRING F_SIGLA 1
BEGIN BEGIN
PROMPT 34 11 "" PROMPT 21 12 ""
FLAGS "DU" FLAGS "DU"
END END
STRING F_CHIAVE 15 TEXT DLG_NULL
BEGIN BEGIN
PROMPT 37 11 "" PROMPT 2 13 "ricezione "
FLAGS "DU" END
END
STRING F_CHIAVE 60
BUTTON DLG_OK 9 2 BEGIN
BEGIN PROMPT 17 13 ""
PROMPT -12 -1 "" FLAGS "DU"
END END
BUTTON DLG_QUIT 9 2 BUTTON DLG_OK 9 2
BEGIN BEGIN
PROMPT -22 -1 "" PROMPT -12 -1 ""
END END
ENDPAGE BUTTON DLG_QUIT 9 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK ENDMASK

View File

@ -238,8 +238,10 @@ bool TVar_mov::main_loop()
{ {
setta_parametri_record(" ","C"); setta_parametri_record(" ","C");
leggi_record_controllo(); leggi_record_controllo();
TString str (_control_rec.overwrite(" ",241)); TString str;
_tras_file.write_control_rec(str,256); str.spaces(60);
_control_rec.overwrite(str,241);
_tras_file.write_control_rec(_control_rec,1024);
} }
return FALSE; return FALSE;
} }
@ -253,8 +255,10 @@ bool TVar_mov::main_loop()
{ {
setta_parametri_record(" ","C"); setta_parametri_record(" ","C");
leggi_record_controllo(); leggi_record_controllo();
TString str (_control_rec.overwrite(" ",241)); TString str;
_tras_file.write_control_rec(str,256); str.spaces(60);
_control_rec.overwrite(str,241);
_tras_file.write_control_rec(_control_rec,1024);
} }
return FALSE; return FALSE;
} }
@ -285,7 +289,7 @@ bool TVar_mov::video_PN()
mask.set_handler(F_CODPAG, codice_pagamento_hnd); mask.set_handler(F_CODPAG, codice_pagamento_hnd);
mask.set_handler(F_DATAREG, data_stampa); mask.set_handler(F_DATAREG, data_stampa);
mask.set_handler(F_DATACOMP, data_competenza_hnd); mask.set_handler(F_DATACOMP, data_competenza_hnd);
mask.set_handler(F_DATADOC, data); //mask.set_handler(F_DATADOC, data);
if (_righe) if (_righe)
{ {
@ -363,7 +367,7 @@ bool TVar_mov::video_IVA()
return FALSE; return FALSE;
mask.set_handler(F_CODCF, codice_clifo_hnd); mask.set_handler(F_CODCF, codice_clifo_hnd);
mask.set_handler(F_DATA74TER, data); //mask.set_handler(F_DATA74TER, data);
mask.set_handler(F_LOCALITA, localita_occasionali); mask.set_handler(F_LOCALITA, localita_occasionali);
mask.set_handler(F_CAPOCC, cap_occasionali); mask.set_handler(F_CAPOCC, cap_occasionali);
@ -1276,7 +1280,8 @@ void TVar_mov::registra_file_temp_mov(int ae,long nr,const TDate& dr,const TDate
_tmov->zero(); _tmov->zero();
_tmov->put(MOV_NUMREG, nr); _tmov->put(MOV_NUMREG, nr);
if (_tmov->read() == NOERR) if (_tmov->read() == NOERR)
{ {
_tmov->put(MOV_NUMREG, nr);
_tmov->put(MOV_ANNOES, ae); _tmov->put(MOV_ANNOES, ae);
_tmov->put(MOV_DATAREG, dr); _tmov->put(MOV_DATAREG, dr);
_tmov->put(MOV_DATACOMP, dc); _tmov->put(MOV_DATACOMP, dc);
@ -1287,6 +1292,8 @@ void TVar_mov::registra_file_temp_mov(int ae,long nr,const TDate& dr,const TDate
_tmov->put(MOV_UPROTIVA, upi); _tmov->put(MOV_UPROTIVA, upi);
_tmov->put(MOV_CODCAUS, cc); _tmov->put(MOV_CODCAUS, cc);
_tmov->put(MOV_CODPAG, cp); _tmov->put(MOV_CODPAG, cp);
int ai = dr.year();
_tmov->put(MOV_ANNOIVA, ai);
_tmov->rewrite(); _tmov->rewrite();
} }
@ -1548,7 +1555,7 @@ void TVar_mov::setta_parametri_record(const TString& sigla,const TString& flag)
leggi_record_controllo(); leggi_record_controllo();
_control_rec.overwrite(sigla,240); _control_rec.overwrite(sigla,240);
const int size = 256; const int size = 1024;
_tras_file.write_control_rec(_control_rec, size); _tras_file.write_control_rec(_control_rec, size);
} }

View File

@ -1,246 +1,252 @@
#include "cglib04.h" #include "cglib04.h"
#include "cg6801.h" #include "cg6801.h"
bool TDitta_ric::create() bool TDitta_ric::create()
{ {
TApplication::create(); TApplication::create();
_nditte = new TLocalisamfile (LF_PCON); _nditte = new TLocalisamfile (LF_PCON);
dispatch_e_menu (BAR_ITEM(1)); dispatch_e_menu (BAR_ITEM(1));
return TRUE; return TRUE;
} }
bool TDitta_ric::destroy() bool TDitta_ric::destroy()
{ {
delete _nditte; delete _nditte;
return TApplication::destroy(); return TApplication::destroy();
} }
bool TDitta_ric::set() bool TDitta_ric::set()
{ {
TMask msk ("cg6801a"); TMask msk ("cg6801a");
KEY tasto; KEY tasto;
_old_ditta = get_firm(); _old_ditta = get_firm();
tasto = msk.run(); tasto = msk.run();
if (tasto != K_ENTER) return FALSE; if (tasto != K_ENTER) return FALSE;
_dittaric = msk.get_int(F_CODDITTA); _dittaric = msk.get_int(F_CODDITTA);
set_firm(_dittaric); set_firm(_dittaric);
if (!esegui_controlli()) if (!esegui_controlli())
{ {
set_firm(_old_ditta); set_firm(_old_ditta);
return FALSE; return FALSE;
} }
//set_firm(_dittaric); //set_firm(_dittaric);
return FALSE; return FALSE;
} }
bool TDitta_ric::leggi_trasfer() bool TDitta_ric::leggi_trasfer()
{ {
_trasf = _tras_file.path(_dittaric); _trasf = _tras_file.path(_dittaric);
_trasf << HEADER; _trasf << HEADER;
_tras_file.open(_trasf); _tras_file.open(_trasf);
if (_tras_file.exist()) if (_tras_file.exist())
{ {
if (_tras_file.read_control_rec()) if (_tras_file.read_control_rec())
{ {
_control_rec = _tras_file.record(); _control_rec = _tras_file.record();
_uselab = _tras_file.ult_file(); _uselab = _tras_file.ult_file();
_key = _tras_file.key(); _key = _tras_file.key();
_sigle_file = _tras_file.sigle_file(); _sigle_file = _tras_file.sigle_file();
_nrec_file = _tras_file.nrec_file(); _nrec_file = _tras_file.nrec_file();
} }
else else
return error_box("Rilevati gravi errori negli archivi:procedura interrotta"); return error_box("Rilevati gravi errori negli archivi:procedura interrotta");
} }
else else
return error_box("Al momento non presenti trasferimenti attivi sulla ditta selezionata"); return error_box("Al momento non presenti trasferimenti attivi sulla ditta selezionata");
return TRUE; return TRUE;
} }
bool TDitta_ric::esegui_controlli() bool TDitta_ric::esegui_controlli()
{ {
TConfig conf(CONFIG_DITTA); TConfig conf(CONFIG_DITTA);
_std = conf.get("FlStTra"); _std = conf.get("FlStTra");
if (!prefix().exist(_dittaric)) if (!prefix().exist(_dittaric))
return error_box("Codice ditta NON PRESENTE in archivio oppure NON ATTIVATO in contabilita' generale"); return error_box("Codice ditta NON PRESENTE in archivio oppure NON ATTIVATO in contabilita' generale");
if (_std == "") if (_std == "")
{ {
if (!leggi_trasfer()) if (!leggi_trasfer())
return FALSE; return FALSE;
if (_uselab != "") if (_uselab != "")
return error_box("Ultimo trasferimento NON COMPLETATO: completarlo"); return error_box("Ultimo trasferimento NON COMPLETATO: completarlo");
if (!controlli()) if (!controlli())
return FALSE; return FALSE;
} }
TConfig cfd (CONFIG_DITTA); TConfig cfd (CONFIG_DITTA);
TString std = cfd.get("FlStTra"); TString std = cfd.get("FlStTra");
if (std == "") if (std == "")
return error_box ("Non risultano TRASFERIMENTI ATTIVI sulla ditta richiesta"); return error_box ("Non risultano TRASFERIMENTI ATTIVI sulla ditta richiesta");
return TRUE; return TRUE;
} }
bool TDitta_ric::controlli() bool TDitta_ric::controlli()
{ {
TString ana_com,pcon_cau,uselab; TString ana_com,pcon_cau,uselab;
bool fatto = FALSE; bool fatto = FALSE;
TConfig conf(CONFIG_DITTA); TConfig conf(CONFIG_DITTA);
ana_com = conf.get("AnCfCm","cg"); ana_com = conf.get("AnCfCm","cg");
pcon_cau = conf.get("PcTcCm","cg"); pcon_cau = conf.get("PcTcCm","cg");
if (ana_com == "X" || pcon_cau == "X") if (ana_com == "X" || pcon_cau == "X")
{ {
if (ana_com == "X") if (ana_com == "X")
{ {
int p = _sigle_file.find('A'); int p = _sigle_file.find('A');
if (p >= 0) if (p >= 0)
{ {
_sigle_file.overwrite(" ",p); _sigle_file.overwrite(" ",p);
_nrec_file.overwrite("000000", p * 6); _nrec_file.overwrite("000000", p * 6);
} }
} }
if (pcon_cau == "X") if (pcon_cau == "X")
{ {
int p = _sigle_file.find('W'); int p = _sigle_file.find('W');
if (p >= 0) if (p >= 0)
{ {
_sigle_file.overwrite(" ",p); _sigle_file.overwrite(" ",p);
_nrec_file.overwrite("000000", p * 6); _nrec_file.overwrite("000000", p * 6);
} }
p = _sigle_file.find('P'); p = _sigle_file.find('P');
if (p >= 0) if (p >= 0)
{ {
_sigle_file.overwrite(" ",p); _sigle_file.overwrite(" ",p);
_nrec_file.overwrite("000000", p * 6); _nrec_file.overwrite("000000", p * 6);
} }
} }
_control_rec.overwrite(_sigle_file,41); _control_rec.overwrite(_sigle_file,86);
_control_rec.overwrite(_nrec_file,50); _control_rec.overwrite(_nrec_file,95);
_tras_file.write_control_rec(_control_rec,256); _tras_file.write_control_rec(_control_rec,1024);
leggi_record_controllo(); leggi_record_controllo();
} }
setta_parametri_record("","T",FALSE); setta_parametri_record("","T",FALSE);
int k = 0; int k = 0;
for ( int j = 0; j < _sigle_file.len(); j++) for ( int j = 0; j < _sigle_file.len(); j++)
{ {
TString sigla = _sigle_file.mid(j,1); TString sigla = _sigle_file.mid(j,1);
long nrec = atol(_nrec_file.mid(k,6)); long nrec = atol(_nrec_file.mid(k,6));
if (sigla != "Z" && sigla != "U" && sigla != "B") if (sigla != "Z" && sigla != "U" && sigla != "B")
{ {
if (nrec != 0) if (nrec != 0)
{ {
uselab = sigla; uselab = sigla;
_control_rec.overwrite(uselab,240); _control_rec.overwrite(uselab,240);
_control_rec.overwrite(" ",241); TString str;
fatto = TRUE; str.spaces(60);
break; _control_rec.overwrite(str,241);
} fatto = TRUE;
} break;
k += 6; }
} }
k += 6;
if (!fatto) }
{
int p = _sigle_file.find('Z'); if (!fatto)
if (p >= 0) {
{ int p = _sigle_file.find('Z');
setta_parametri_record("","C",FALSE); if (p >= 0)
_control_rec.overwrite(" ",240); {
_control_rec.overwrite(" ",241); setta_parametri_record("","C",FALSE);
} _control_rec.overwrite(" ",240);
else TString str;
{ str.spaces(60);
setta_parametri_record("","*",FALSE); _control_rec.overwrite(str,241);
_control_rec.overwrite(" ",240); }
_control_rec.overwrite(" ",241); else
fremove(_trasf); {
setta_parametri_record(""," ",FALSE); setta_parametri_record("","*",FALSE);
} _control_rec.overwrite(" ",240);
} TString str;
str.spaces(60);
char agg_cau = _control_rec.sub(235,236)[0]; _control_rec.overwrite(str,241);
char agg_clifo = _control_rec.sub(236,237)[0]; fremove(_trasf);
char agg_pcon = _control_rec.sub(237,238)[0]; setta_parametri_record(""," ",FALSE);
}
if (agg_cau != ' ') }
agg_cau = 'D';
if (agg_clifo != ' ') char agg_cau = _control_rec.sub(235,236)[0];
agg_clifo = 'D'; char agg_clifo = _control_rec.sub(236,237)[0];
if (agg_pcon != ' ') char agg_pcon = _control_rec.sub(237,238)[0];
agg_pcon = 'D';
if (agg_cau != ' ')
TString agg(4); agg_cau = 'D';
if (agg_clifo != ' ')
agg[0] = agg_cau; agg_clifo = 'D';
agg[1] = agg_clifo; if (agg_pcon != ' ')
agg[2] = agg_pcon; agg_pcon = 'D';
agg[3] = '\0';
TString agg(4);
_control_rec.overwrite(agg,235);
agg[0] = agg_cau;
const int size = 256; agg[1] = agg_clifo;
agg[2] = agg_pcon;
if (!_tras_file.write_control_rec(_control_rec, size)) agg[3] = '\0';
return FALSE;
_control_rec.overwrite(agg,235);
return TRUE;
} const int size = 1024;
void TDitta_ric::leggi_record_controllo() if (!_tras_file.write_control_rec(_control_rec, size))
{ return FALSE;
_tras_file.read_control_rec();
_control_rec = _tras_file.record(); return TRUE;
} }
void TDitta_ric::setta_parametri_record(const TString& sigla,const TString& flag,bool uselab) void TDitta_ric::leggi_record_controllo()
{ {
TConfig conf (CONFIG_DITTA); _tras_file.read_control_rec();
_control_rec = _tras_file.record();
conf.set("FlStTra", flag); }
if (uselab) void TDitta_ric::setta_parametri_record(const TString& sigla,const TString& flag,bool uselab)
{ {
leggi_record_controllo(); TConfig conf (CONFIG_DITTA);
_control_rec.overwrite(sigla,240);
conf.set("FlStTra", flag);
const int size = 256;
if (uselab)
_tras_file.write_control_rec(_control_rec, size); {
} leggi_record_controllo();
} _control_rec.overwrite(sigla,240);
bool TDitta_ric::menu(MENU_TAG m) const int size = 1024;
{
if (m == BAR_ITEM(1)) _tras_file.write_control_rec(_control_rec, size);
return set(); }
return FALSE; }
}
bool TDitta_ric::menu(MENU_TAG m)
{
if (m == BAR_ITEM(1))
return set();
return FALSE;
}

View File

@ -130,7 +130,7 @@ bool TAnn_mov::video()
case K_QUIT : case K_QUIT :
break; break;
case K_SAVE : case K_DEL :
{ {
annulla(mask); annulla(mask);
_registra = TRUE; _registra = TRUE;
@ -367,7 +367,7 @@ void TAnn_mov::setta_parametri_record(const TString& sigla,const TString& flag)
leggi_record_controllo(); leggi_record_controllo();
_control_rec.overwrite(sigla,240); _control_rec.overwrite(sigla,240);
const int size = 256; const int size = 1024;
_tras_file.write_control_rec(_control_rec, size); _tras_file.write_control_rec(_control_rec, size);
} }

View File

@ -2,10 +2,10 @@
TOOLBAR "" 0 20 0 2 TOOLBAR "" 0 20 0 2
BUTTON DLG_SAVEREC 10 2 BUTTON DLG_DELREC 8 2
BEGIN BEGIN
PROMPT -15 -1 "~Annulla" PROMPT -15 -1 "~Elimina"
MESSAGE EXIT,K_SAVE MESSAGE EXIT,K_DEL
END END
BUTTON DLG_CANCEL 10 2 BUTTON DLG_CANCEL 10 2

View File

@ -1,319 +1,320 @@
#include "cglib04.h" #include "cglib04.h"
#include "cg6803.h" #include "cg6803.h"
HIDDEN TVis_ric& app() { return (TVis_ric &) main_app(); } HIDDEN TVis_ric& app() { return (TVis_ric &) main_app(); }
bool TVis_ric::create() bool TVis_ric::create()
{ {
TApplication::create(); TApplication::create();
_tab_tra = new TTable ("%TRA"); _tab_tra = new TTable ("%TRA");
_registra = FALSE; _registra = FALSE;
_ftrasfer = TRUE; _ftrasfer = TRUE;
dispatch_e_menu (BAR_ITEM(1)); dispatch_e_menu (BAR_ITEM(1));
return TRUE; return TRUE;
} }
bool TVis_ric::destroy() bool TVis_ric::destroy()
{ {
delete _tab_tra; delete _tab_tra;
return TApplication::destroy(); return TApplication::destroy();
} }
bool TVis_ric::baipassa(TMask& m, KEY k) bool TVis_ric::baipassa(TMask& m, KEY k)
{ {
if (k == K_SHIFT+K_F12) if (k == K_SHIFT+K_F12)
{ {
m.enable(F_NULTRAS); m.enable(F_NULTRAS);
m.enable(F_DATAULTRAS); m.enable(F_DATAULTRAS);
m.enable(F_STD); m.enable(F_STD);
m.enable(F_USELAB); m.enable(F_USELAB);
m.enable(F_STATO); m.enable(F_STATO);
m.enable(F_AGGCAUSALI); m.enable(F_AGGCAUSALI);
m.enable(F_AGGCLIFO); m.enable(F_AGGCLIFO);
m.enable(F_AGGPCON); m.enable(F_AGGPCON);
m.enable(F_AGGIVD); m.enable(F_AGGIVD);
m.enable(F_FATTEM); m.enable(F_FATTEM);
m.enable(F_FATTRIC); m.enable(F_FATTRIC);
app()._registra = TRUE; app()._registra = TRUE;
} }
return TRUE; return TRUE;
} }
bool TVis_ric::stato_hnd (TMask_field& f, KEY k) bool TVis_ric::stato_hnd (TMask_field& f, KEY k)
{ {
if (k == K_ENTER) if (k == K_ENTER)
{ {
TString std = f.get(); TString std = f.get();
TString uselab = f.mask().get(F_USELAB); TString uselab = f.mask().get(F_USELAB);
TString chiave = f.mask().get(F_STATO); TString chiave = f.mask().get(F_STATO);
if (!app()._ftrasfer) //_ftrasfer dice se esiste il file trasfer o il suo record di controllo if (!app()._ftrasfer) //_ftrasfer dice se esiste il file trasfer o il suo record di controllo
{ {
if (std != "" && std != "*") if (std != "" && std != "*")
return warning_box("Valore non valido per stato ultima ricezione"); return warning_box("Valore non valido per stato ultima ricezione");
} }
else else
{ {
if (std != "" && std != "T" && std != "C" && std != "M" && std != "*") if (std != "" && std != "T" && std != "C" && std != "M" && std != "*")
return warning_box("Valore non valido per stato ultima ricezione"); return warning_box("Valore non valido per stato ultima ricezione");
if (uselab != "" && (std == "" || std == "C" || std == "*") ) if (uselab != "" && (std == "" || std == "C" || std == "*") )
return warning_box("Valore non valido per stato ultima ricezione"); return warning_box("Valore non valido per stato ultima ricezione");
if (chiave != "" && (std == "" || std == "C" || std == "*") ) if (chiave != "" && (std == "" || std == "C" || std == "*") )
return warning_box("Valore non valido per stato ultima ricezione"); return warning_box("Valore non valido per stato ultima ricezione");
} }
} }
return TRUE; return TRUE;
} }
bool TVis_ric::uselab_hnd (TMask_field& f, KEY k) bool TVis_ric::uselab_hnd (TMask_field& f, KEY k)
{ {
if (k == K_ENTER) if (k == K_ENTER)
{ {
TString std = f.mask().get(F_STD); TString std = f.mask().get(F_STD);
TString uselab = f.get(); TString uselab = f.get();
if (std == "" && uselab != "") if (std == "" && uselab != "")
return warning_box("Lo stato ultima ricezione non e' significativo: la sigla ultimo file elaborato non puo' essere significativa"); return warning_box("Lo stato ultima ricezione non e' significativo: la sigla ultimo file elaborato non puo' essere significativa");
} }
return TRUE; return TRUE;
} }
bool TVis_ric::chiave_hnd (TMask_field& f, KEY k) bool TVis_ric::chiave_hnd (TMask_field& f, KEY k)
{ {
if (k == K_ENTER) if (k == K_ENTER)
{ {
TString std = f.mask().get(F_STD); TString std = f.mask().get(F_STD);
TString uselab = f.mask().get(F_USELAB); TString uselab = f.mask().get(F_USELAB);
TString chiave = f.get(); TString chiave = f.get();
if (std == "" && chiave != "") if (std == "" && chiave != "")
return warning_box("Lo stato ultima ricezione non e' significativo: la chiave ultimo file elaborato non puo' essere significativa"); return warning_box("Lo stato ultima ricezione non e' significativo: la chiave ultimo file elaborato non puo' essere significativa");
if (uselab == "" && chiave != "") if (uselab == "" && chiave != "")
return warning_box("La sigla ultimo file elaborato non e' significativa: la chiave ultimo file elaborato non puo' essere significativa"); return warning_box("La sigla ultimo file elaborato non e' significativa: la chiave ultimo file elaborato non puo' essere significativa");
} }
return TRUE; return TRUE;
} }
bool TVis_ric::video() bool TVis_ric::video()
{ {
if (!esegui_controlli()) if (!esegui_controlli())
return FALSE; return FALSE;
TMask msk ("cg6803a"); TMask msk ("cg6803a");
KEY tasto; KEY tasto;
ditta_ricevente(); // Cerca la ragione sociale della ditta. ditta_ricevente(); // Cerca la ragione sociale della ditta.
setta_campi_video(msk); // Setta i campi della maschera con i dati relativi setta_campi_video(msk); // Setta i campi della maschera con i dati relativi
// alla ditta e alla tabella trasferimenti. // alla ditta e alla tabella trasferimenti.
msk.set_handler(baipassa); msk.set_handler(baipassa);
msk.set_handler(F_STD, stato_hnd); msk.set_handler(F_STD, stato_hnd);
msk.set_handler(F_USELAB, uselab_hnd); msk.set_handler(F_USELAB, uselab_hnd);
msk.set_handler(F_STATO, chiave_hnd); msk.set_handler(F_STATO, chiave_hnd);
tasto = msk.run(); tasto = msk.run();
if (tasto != K_ENTER) if (tasto != K_ENTER)
return FALSE; return FALSE;
registra(msk); registra(msk);
return FALSE; return FALSE;
} }
void TVis_ric::setta_campi_video(TMask& msk) void TVis_ric::setta_campi_video(TMask& msk)
{ {
if (_ftrasfer) if (_ftrasfer)
{ {
msk.set(F_CODDITTARIC, _dittaric); msk.set(F_CODDITTARIC, _dittaric);
msk.set(F_RAGSOC, _ragsoc_dittar); msk.set(F_RAGSOC, _ragsoc_dittar);
msk.set(F_NULTRAS, _nultras); msk.set(F_NULTRAS, _nultras);
if (_nultras != 0) if (_nultras != 0)
{ {
TString data1 = _dataultras.string(); TString data1 = _dataultras.string();
msk.set(F_DATAULTRAS, data1); msk.set(F_DATAULTRAS, data1);
} }
msk.set(F_USELAB, _uselab); msk.set(F_USELAB, _uselab);
msk.set(F_STATO, _key); msk.set(F_STATO, _key);
msk.set(F_AGGCAUSALI, _agg_cau); msk.set(F_AGGCAUSALI, _agg_cau);
msk.set(F_AGGCLIFO, _agg_clifo); msk.set(F_AGGCLIFO, _agg_clifo);
msk.set(F_AGGPCON, _agg_pcon); msk.set(F_AGGPCON, _agg_pcon);
msk.set(F_AGGIVD, _agg_IVdir); msk.set(F_AGGIVD, _agg_IVdir);
msk.set(F_FATTEM, _riatt_att); msk.set(F_FATTEM, _riatt_att);
msk.set(F_FATTRIC, _riatt_pas); msk.set(F_FATTRIC, _riatt_pas);
} }
msk.set(F_STD, _std); msk.set(F_STD, _std);
msk.disable(F_CODDITTARIC); msk.disable(F_CODDITTARIC);
msk.disable(F_RAGSOC); msk.disable(F_RAGSOC);
msk.disable(F_NULTRAS); msk.disable(F_NULTRAS);
msk.disable(F_DATAULTRAS); msk.disable(F_DATAULTRAS);
msk.disable(F_STD); msk.disable(F_STD);
msk.disable(F_USELAB); msk.disable(F_USELAB);
msk.disable(F_STATO); msk.disable(F_STATO);
msk.disable(F_AGGCAUSALI); msk.disable(F_AGGCAUSALI);
msk.disable(F_AGGCLIFO); msk.disable(F_AGGCLIFO);
msk.disable(F_AGGPCON); msk.disable(F_AGGPCON);
msk.disable(F_AGGIVD); msk.disable(F_AGGIVD);
msk.disable(F_FATTEM); msk.disable(F_FATTEM);
msk.disable(F_FATTRIC); msk.disable(F_FATTRIC);
} }
void TVis_ric::registra(TMask& m) void TVis_ric::registra(TMask& m)
{ {
if (_registra) if (_registra)
{ {
TString str; TString str;
str = m.get(F_NULTRAS); str = m.get(F_NULTRAS);
TString nultras = format("%03s", (const char*) str); TString nultras = format("%03s", (const char*) str);
str = m.get(F_DATAULTRAS); str = m.get(F_DATAULTRAS);
TString datault = riconverti(str,TRUE); TString datault = riconverti(str,TRUE);
char agg_cau = m.get(F_AGGCAUSALI)[0]; char agg_cau = m.get(F_AGGCAUSALI)[0];
char agg_clf = m.get(F_AGGCLIFO)[0]; char agg_clf = m.get(F_AGGCLIFO)[0];
char agg_pco = m.get(F_AGGPCON)[0]; char agg_pco = m.get(F_AGGPCON)[0];
char agg_IV = m.get(F_AGGIVD)[0]; char agg_IV = m.get(F_AGGIVD)[0];
char riat_at = m.get(F_FATTEM)[0]; char riat_at = m.get(F_FATTEM)[0];
char riat_pa = m.get(F_FATTRIC)[0]; char riat_pa = m.get(F_FATTRIC)[0];
if (riat_at =='\0') if (riat_at =='\0')
riat_at = ' '; riat_at = ' ';
if (riat_pa == '\0') if (riat_pa == '\0')
riat_pa = ' '; riat_pa = ' ';
TString flags (7); TString flags (7);
flags[0] = agg_IV; flags[0] = agg_IV;
flags[1] = agg_cau; flags[1] = agg_cau;
flags[2] = agg_clf; flags[2] = agg_clf;
flags[3] = agg_pco; flags[3] = agg_pco;
flags[4] = riat_at; flags[4] = riat_at;
flags[5] = riat_pa; flags[5] = riat_pa;
flags[6] = '\0'; flags[6] = '\0';
TString uselab = m.get(F_USELAB); TString uselab = m.get(F_USELAB);
if (uselab == "") if (uselab == "")
uselab = " "; uselab = " ";
str = m.get(F_STATO); str = m.get(F_STATO);
TString chiave = format("%-15s", (const char*) str); TString chiave = format("%-60s", (const char*) str);
_control_rec.overwrite(nultras,30); _control_rec.overwrite(nultras,75);
_control_rec.overwrite(datault,33); _control_rec.overwrite(datault,78);
_control_rec.overwrite(flags,234); _control_rec.overwrite(flags,234);
_control_rec.overwrite(uselab,240); _control_rec.overwrite(uselab,240);
_control_rec.overwrite(chiave,241); _control_rec.overwrite(chiave,241);
//_control_rec.format("%-1024s", (const char*) _control_rec);
const int size = 256;
const int size = 1024;
_tras_file.write_control_rec(_control_rec, size);
_tras_file.write_control_rec(_control_rec, size);
TString std = m.get(F_STD);
TString std = m.get(F_STD);
setta_std(std);
} setta_std(std);
} }
}
void TVis_ric::setta_std(const TString& flag)
{ void TVis_ric::setta_std(const TString& flag)
TConfig conf (CONFIG_DITTA); {
TConfig conf (CONFIG_DITTA);
conf.set("FlStTra", flag);
} conf.set("FlStTra", flag);
}
void TVis_ric::ditta_ricevente()
{ void TVis_ric::ditta_ricevente()
TLocalisamfile nditte (LF_NDITTE); {
TLocalisamfile nditte (LF_NDITTE);
nditte.setkey(1);
nditte.zero(); nditte.setkey(1);
nditte.put(NDT_CODDITTA, _dittaric); nditte.zero();
if (nditte.read() == NOERR) nditte.put(NDT_CODDITTA, _dittaric);
_ragsoc_dittar = nditte.get(NDT_RAGSOC); if (nditte.read() == NOERR)
} _ragsoc_dittar = nditte.get(NDT_RAGSOC);
/* }
long TVis_ric::leggi_tabella_tras() /*
{ long TVis_ric::leggi_tabella_tras()
TString dep; {
long ditta = 0; TString dep;
long ditta = 0;
_tab_tra->zero();
dep = format("%10s%05d", (const char*) _nomeid, _dittainv); _tab_tra->zero();
_tab_tra->put("CODTAB", (const char*) dep); dep = format("%10s%05d", (const char*) _nomeid, _dittainv);
if (_tab_tra->read() == NOERR) _tab_tra->put("CODTAB", (const char*) dep);
ditta = _tab_tra->get_long("I0"); if (_tab_tra->read() == NOERR)
ditta = _tab_tra->get_long("I0");
return ditta;
} return ditta;
*/ }
bool TVis_ric::leggi_trasfer() */
{ bool TVis_ric::leggi_trasfer()
TString data,tmp; {
TString data,tmp;
_trasf = _tras_file.path(_dittaric);
_trasf << HEADER; _trasf = _tras_file.path(_dittaric);
_trasf << HEADER;
_tras_file.open(_trasf);
_tras_file.open(_trasf);
if (_tras_file.exist())
{ if (_tras_file.exist())
if (_tras_file.read_control_rec()) {
{ if (_tras_file.read_control_rec())
_control_rec = _tras_file.record(); {
_nomeid = _tras_file.nome_simb(); _control_rec = _tras_file.record();
_dittainv = _tras_file.ditta(); _nomeid = _tras_file.nome_simb();
_nultras = _tras_file.nultras(); _dittainv = _tras_file.ditta();
_dataultras = _tras_file.dataultras(); _nultras = _tras_file.nultras();
_uselab = _tras_file.ult_file(); _dataultras = _tras_file.dataultras();
_key = _tras_file.key(); _uselab = _tras_file.ult_file();
_agg_cau = _control_rec.sub(235,236); _key = _tras_file.key();
_agg_clifo = _control_rec.sub(236,237); _agg_cau = _control_rec.sub(235,236);
_agg_pcon = _control_rec.sub(237,238); _agg_clifo = _control_rec.sub(236,237);
_agg_IVdir = _control_rec.sub(234,235); _agg_pcon = _control_rec.sub(237,238);
_riatt_att = _control_rec.sub(238,239); _agg_IVdir = _control_rec.sub(234,235);
_riatt_pas = _control_rec.sub(239,240); _riatt_att = _control_rec.sub(238,239);
} _riatt_pas = _control_rec.sub(239,240);
else }
_ftrasfer = FALSE; else
} _ftrasfer = FALSE;
else }
_ftrasfer = FALSE; else
_ftrasfer = FALSE;
return TRUE;
} return TRUE;
}
bool TVis_ric::esegui_controlli()
{ bool TVis_ric::esegui_controlli()
TConfig conf(CONFIG_DITTA); {
TConfig conf(CONFIG_DITTA);
_std = conf.get("FlStTra");
_std = conf.get("FlStTra");
_dittaric = get_firm();
_dittaric = get_firm();
if (!prefix().exist(_dittaric))
return error_box("Rilevati GRAVI ERRORI negli archivi: procedura interrotta"); if (!prefix().exist(_dittaric))
return error_box("Rilevati GRAVI ERRORI negli archivi: procedura interrotta");
if (!leggi_trasfer())
return FALSE; if (!leggi_trasfer())
return FALSE;
return TRUE;
} return TRUE;
}
bool TVis_ric::menu(MENU_TAG m)
{ bool TVis_ric::menu(MENU_TAG m)
if (m == BAR_ITEM(1)) {
return video(); if (m == BAR_ITEM(1))
return FALSE; return video();
} return FALSE;
}

View File

@ -1,56 +1,56 @@
// Visualizzazione stato ricezione // Visualizzazione stato ricezione
#include <mask.h> #include <mask.h>
#include <applicat.h> #include <applicat.h>
#include <relation.h> #include <relation.h>
#include <tabutil.h> #include <tabutil.h>
#include <utility.h> #include <utility.h>
#include <config.h> #include <config.h>
#include <urldefid.h> #include <urldefid.h>
#include <execp.h> #include <execp.h>
#include <prefix.h> #include <prefix.h>
#include <lffiles.h> #include <lffiles.h>
#include <nditte.h> #include <nditte.h>
#include "cg6800.h" #include "cg6800.h"
//HIDDEN TString80 TP; //HIDDEN TString80 TP;
class TVis_ric : public TApplication class TVis_ric : public TApplication
{ {
TTable* _tab_tra; TTable* _tab_tra;
TTransfer_file _tras_file; TTransfer_file _tras_file;
TString _trasf,_std,_uselab,_key,_nomeid,_ragsoc_dittar; TString _trasf,_std,_uselab,_key,_nomeid,_ragsoc_dittar;
TString _agg_cau,_agg_clifo,_agg_pcon,_agg_IVdir,_riatt_att,_riatt_pas; TString _agg_cau,_agg_clifo,_agg_pcon,_agg_IVdir,_riatt_att,_riatt_pas;
long _dittaric,_dittainv; long _dittaric,_dittainv;
TString _control_rec; TString _control_rec;
TDate _dataultras; TDate _dataultras;
int _nultras; int _nultras;
bool _registra,_ftrasfer; bool _registra,_ftrasfer;
public: public:
TString _titolo; TString _titolo;
virtual bool create(); virtual bool create();
virtual bool destroy(); virtual bool destroy();
virtual bool menu(MENU_TAG m); virtual bool menu(MENU_TAG m);
bool video(); bool video();
void setta_campi_video(TMask& m); void setta_campi_video(TMask& m);
void ditta_ricevente(); void ditta_ricevente();
long leggi_tabella_tras(); long leggi_tabella_tras();
bool esegui_controlli(); bool esegui_controlli();
bool leggi_trasfer(); bool leggi_trasfer();
void registra(TMask& m); void registra(TMask& m);
void setta_std(const TString& flag); void setta_std(const TString& flag);
static bool baipassa (TMask& m, KEY k); static bool baipassa (TMask& m, KEY k);
static bool stato_hnd (TMask_field& f, KEY k); static bool stato_hnd (TMask_field& f, KEY k);
static bool uselab_hnd (TMask_field& f, KEY k); static bool uselab_hnd (TMask_field& f, KEY k);
static bool chiave_hnd (TMask_field& f, KEY k); static bool chiave_hnd (TMask_field& f, KEY k);
TVis_ric() {}; TVis_ric() {};
}; };

View File

@ -1,110 +1,115 @@
#include "cg6800.h" #include "cg6800.h"
PAGE "" -1 -1 78 20 PAGE "" -1 -1 78 20
NUMBER F_CODDITTARIC 5 NUMBER F_CODDITTARIC 5
BEGIN BEGIN
PROMPT 1 1 "Ditta ricevente " PROMPT 1 1 "Ditta ricevente "
USE LF_NDITTE KEY 1 USE LF_NDITTE KEY 1
INPUT CODDITTA F_CODDITTARIC INPUT CODDITTA F_CODDITTARIC
OUTPUT F_RAGSOC RAGSOC OUTPUT F_RAGSOC RAGSOC
FLAGS "RDZ" FLAGS "RDZ"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
STRING F_RAGSOC 50 STRING F_RAGSOC 50
BEGIN BEGIN
PROMPT 1 2 "Ragione sociale " PROMPT 1 2 "Ragione sociale "
FLAGS "D" FLAGS "D"
END END
NUMBER F_NULTRAS 3 NUMBER F_NULTRAS 3
BEGIN BEGIN
PROMPT 1 4 "Numero ultimo invio ricevuto " PROMPT 1 4 "Numero ultimo invio ricevuto "
FLAGS "G" FLAGS "G"
END END
DATE F_DATAULTRAS DATE F_DATAULTRAS
BEGIN BEGIN
PROMPT 1 6 "Data ultimo invio ricevuto " PROMPT 1 6 "Data ultimo invio ricevuto "
FLAGS "G" FLAGS "G"
END END
STRING F_STD 1 STRING F_STD 1
BEGIN BEGIN
PROMPT 1 8 "Stato del trasferimento " PROMPT 1 8 "Stato del "
FLAGS "GU" FLAGS "GU"
END END
STRING F_USELAB 1 STRING F_USELAB 1
BEGIN BEGIN
PROMPT 34 8 "" PROMPT 21 8 ""
FLAGS "GU" FLAGS "GU"
END END
STRING F_STATO 15 TEXT DLG_NULL
BEGIN BEGIN
PROMPT 38 8 "" PROMPT 1 9 "trasferimento "
FLAGS "GU" END
END
STRING F_STATO 60
LIST F_AGGCAUSALI 6 BEGIN
BEGIN PROMPT 17 9 ""
PROMPT 1 10 "Aggiornamento causali gia' presenti " FLAGS "GU"
ITEM "N|No" END
ITEM "D|Descr."
ITEM "T|Tutto" LIST F_AGGCAUSALI 6
FLAGS "G" BEGIN
END PROMPT 1 11 "Aggiornamento causali gia' presenti "
ITEM "N|No"
LIST F_AGGCLIFO 6 ITEM "D|Descr."
BEGIN ITEM "T|Tutto"
PROMPT 1 11 "Aggiornamento Clienti/Fornitori gia' presenti " FLAGS "G"
ITEM "N|No" END
ITEM "D|Descr."
ITEM "T|Tutto" LIST F_AGGCLIFO 6
FLAGS "G" BEGIN
END PROMPT 1 12 "Aggiornamento Clienti/Fornitori gia' presenti "
ITEM "N|No"
LIST F_AGGPCON 6 ITEM "D|Descr."
BEGIN ITEM "T|Tutto"
PROMPT 1 12 "Aggiornamento voci Piano dei Conti gia' presenti " FLAGS "G"
ITEM "N|No" END
ITEM "D|Descr."
ITEM "T|Tutto" LIST F_AGGPCON 6
FLAGS "G" BEGIN
END PROMPT 1 13 "Aggiornamento voci Piano dei Conti gia' presenti "
ITEM "N|No"
LIST F_AGGIVD 6 ITEM "D|Descr."
BEGIN ITEM "T|Tutto"
PROMPT 1 13 "Aggiornamento classi Piano dei Conti " FLAGS "G"
ITEM "N|No" END
ITEM "T|Tutto"
FLAGS "G" LIST F_AGGIVD 6
END BEGIN
PROMPT 1 14 "Aggiornamento classi Piano dei Conti "
BOOLEAN F_FATTEM ITEM "N|No"
BEGIN ITEM "T|Tutto"
PROMPT 1 14 "Riattribuzione num. protocollo su fatture emesse " FLAGS "G"
FLAGS "G" END
END
BOOLEAN F_FATTEM
BOOLEAN F_FATTRIC BEGIN
BEGIN PROMPT 1 15 "Riattribuzione num. protocollo su fatture emesse "
PROMPT 1 15 "Riattribuzione num. protocollo su fatture ricevute " FLAGS "G"
FLAGS "G" END
END
BOOLEAN F_FATTRIC
BUTTON DLG_OK 9 2 BEGIN
BEGIN PROMPT 1 16 "Riattribuzione num. protocollo su fatture ricevute "
PROMPT -12 -1 "" FLAGS "G"
END END
BUTTON DLG_QUIT 9 2 BUTTON DLG_OK 9 2
BEGIN BEGIN
PROMPT -22 -1 "" PROMPT -12 -1 ""
END END
ENDPAGE BUTTON DLG_QUIT 9 2
BEGIN
ENDMASK PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK

File diff suppressed because it is too large Load Diff

View File

@ -1,157 +1,167 @@
// Invio contabilita' // Invio contabilita'
#define STRICT #define STRICT
#include <windows.h> #include <windows.h>
#include <direct.h> #include <direct.h>
#include <colors.h> #include <colors.h>
#include <isam.h> #include <isam.h>
#include <math.h> #include <math.h>
#include <applicat.h> #include <applicat.h>
#include <mask.h> #include <mask.h>
#include <relation.h> #include <relation.h>
#include <tabutil.h> #include <tabutil.h>
#include <utility.h> #include <utility.h>
#include <config.h> #include <config.h>
#include <urldefid.h> #include <urldefid.h>
#include <prefix.h> #include <prefix.h>
#include <lffiles.h> #include <lffiles.h>
#include <progind.h> #include <progind.h>
#include <execp.h> #include <execp.h>
#include <mailbox.h> #include <mailbox.h>
#include <archives.h> #include <archives.h>
#include <nditte.h> #include <nditte.h>
#include <mov.h> #include <mov.h>
#include <rmov.h> #include <rmov.h>
#include <rmoviva.h> #include <rmoviva.h>
#include <causali.h> #include <causali.h>
#include <rcausali.h> #include <rcausali.h>
#include <clifo.h> #include <clifo.h>
#include <pconti.h> #include <pconti.h>
#include <comuni.h> #include <comuni.h>
#include <occas.h> #include <occas.h>
#include "cg6901.h" #include "cg6901.h"
#include "cg6903.h" #include "cg6903.h"
#include "cglib04.h" #include "cglib04.h"
class TInv_cont : public TApplication class TInv_cont : public TApplication
{ {
enum { BUFSIZE = 4096 }; enum { BUFSIZE = 4096 };
TTransfer_file _tras_file; TTransfer_file _tras_file;
TProgind* _prog; TProgind* _prog;
TLocalisamfile* _caus; TLocalisamfile* _caus;
TLocalisamfile* _rcaus; TLocalisamfile* _rcaus;
TLocalisamfile* _clifo; TLocalisamfile* _clifo;
TLocalisamfile* _pcon; TLocalisamfile* _pcon;
TLocalisamfile* _mov; TLocalisamfile* _mov;
TLocalisamfile* _rmov; TLocalisamfile* _rmov;
TLocalisamfile* _rmoviva; TLocalisamfile* _rmoviva;
TLocalisamfile* _occas; TLocalisamfile* _occas;
TIsamtempfile* _tcaus; TIsamtempfile* _tcaus;
TIsamtempfile* _trcaus; TIsamtempfile* _trcaus;
TIsamtempfile* _tclifo; TIsamtempfile* _tclifo;
TIsamtempfile* _tpcon; TIsamtempfile* _tpcon;
TIsamtempfile* _tmov; TIsamtempfile* _tmov;
TIsamtempfile* _trmov; TIsamtempfile* _trmov;
TIsamtempfile* _triva; TIsamtempfile* _triva;
TIsamtempfile* _toccas; TIsamtempfile* _toccas;
TArchive _arc; TArchive _arc;
char _scelta; char _scelta;
TString _control_rec, _header, _trasf, _std, _stato, _marker, _nome_simbolico; TString _control_rec, _header, _trasf, _std, _stato, _marker, _nome_simbolico;
TString _files, _codcaus, _numdoc, _reg, _codpag, _tipodoc, _codcausm, _sigle; TString _files, _codcaus, _numdoc, _reg, _codpag, _tipodoc, _codcausm, _sigle;
TString _ocfpi, _ragsococc, _indocc, _capocc, _localocc, _provocc, _codvali; TString _ocfpi, _ragsococc, _indocc, _capocc, _localocc, _provocc, _codvali;
bool _esiste_ditta, _esiste_record, _inviato, _flag_bollato; bool _esiste_ditta, _esiste_record, _inviato, _flag_bollato;
long _ditta, _protiva, _uprotiva, _codcf, _numrec, _tot_rec; long _ditta, _protiva, _uprotiva, _codcf, _numrec, _tot_rec;
long _dim_tot, _dim_disk; long _dim_tot, _dim_disk,_dittaAS;
long _numrec_cau,_numrec_clifo,_numrec_pcon,_numrec_pn,_numrec_iva; long _numrec_cau,_numrec_clifo,_numrec_pcon,_numrec_pn,_numrec_iva;
int _num,_annoes; int _num,_annoes;
TDate _data, _datadoc, _data74ter,_datalimsk,_dataregiva,_datareg; TDate _data, _datadoc, _data74ter,_datalimsk,_dataregiva,_datareg;
real _corrlire, _cambioi, _corrval; real _corrlire, _cambioi, _corrval;
public: public:
TString _titolo; TString _titolo;
virtual bool create(); virtual bool create();
virtual bool destroy(); virtual bool destroy();
virtual bool menu(MENU_TAG m); virtual bool menu(MENU_TAG m);
bool main_loop(); bool main_loop();
bool esiste_tabella_studio(); bool esiste_tabella_studio();
bool record_controllo(); bool record_controllo();
bool esegui_controlli(); bool esegui_controlli();
bool leggi_header(); bool leggi_header();
bool controlli(); bool controlli();
bool sub_controlli(); bool sub_controlli();
bool tabella_ditta(); bool tabella_ditta();
bool controlla_stato_invio(); bool controlla_stato_invio();
bool numero_data(); bool numero_data();
void leggi_record_controllo(); void leggi_record_controllo();
void codifica_ditta (TMask& m); void codifica_ditta (TMask& m);
void testata_mov_PN (); void testata_mov_PN ();
void testata_trasfer(long nreg, int nrig, TString& record); void testata_trasfer(long nreg, int nrig, TString& record);
void sola_iva(TString& record); void sola_iva(TString& record);
bool testata_mov_IVA(long numreg); bool testata_mov_IVA(long numreg);
void cerca_occasionale(); void cerca_occasionale();
void cerca_comune_occas(const TString& com); void cerca_comune_occas(const TString& com);
void apri_file_temp(); void apri_file_temp();
void chiudi_file_temp(); void chiudi_file_temp();
void crea_marker(TMask& m); void crea_marker(TMask& m);
void setta_parametri_record(TMask& m,const TString& flag); void setta_parametri_record(TMask& m,const TString& flag);
void setta_tabella_studio(TMask& m, bool flag_ditta = TRUE); void setta_tabella_studio(TMask& m, bool flag_ditta = TRUE);
void setta_tabella_ditta(TMask& m, const char* flag, bool comp = TRUE); void setta_tabella_ditta(TMask& m, const char* flag, bool comp = TRUE);
void crea_record_controllo(TMask& m); void crea_record_controllo(TMask& m);
bool invio_tempfile(TMask& m); bool invio_tempfile(TMask& m);
void causali2tempfile(TString& key,TMask& m); void causali2tempfile(TString& key,TMask& m);
void cancella_righe_causali(TString& codcaus); void cancella_righe_causali(TString& codcaus);
void scrivi_righe_causali(TString& codcaus, char uselab); void scrivi_righe_causali(TString& codcaus, char uselab);
void clifo2tempfile(TString& key,TMask& m); void clifo2tempfile(TString& key,TMask& m);
void pcon2tempfile(TString& key,TMask& m); void pcon2tempfile(TString& key,TMask& m);
void movPN2tempfile(TString& key,TMask& m); void movPN2tempfile(TString& key,TMask& m);
void scrivi_righePN(long numreg); void scrivi_righePN(long numreg);
void primanota_inviata(long numreg); void primanota_inviata(long numreg);
void movIVA2tempfile(TString& key,TMask& m); void movIVA2tempfile(TString& key,TMask& m);
bool occasionali(const TString& ocfpi); bool occasionali(const TString& ocfpi);
void iva_inviata(long numreg); void iva_inviata(long numreg);
bool invio_contabilita(); bool invio_contabilita();
bool invio_tab_cau(); bool invio_tab_cau();
bool invio_clifo (); bool invio_clifo ();
bool invio_pcon (); bool invio_pcon ();
bool invio_mov_PN (); bool invio_mov_PN ();
bool invio_mov_IVA(); bool invio_mov_IVA();
void aggiorna_header(TString& files); void aggiorna_header(TString& files);
void aggiorna_trasfer(TString& files); void aggiorna_trasfer(TString& files);
void negPC2negAS(TString& numero); void negPC2negAS(TString& numero);
void dec2integer(real& val, long dec); void dec2integer(real& val, long dec);
void aggiorna_marker(TString& token, int pos); void aggiorna_marker(TString& token, int pos);
void calcola_totale_record(); void calcola_totale_record();
void scrivi_telefono(TString& app); void scrivi_telefono(TString& app);
const char* cerca_provincia(const TString& comcf); const char* cerca_provincia(const TString& comcf);
static bool setta_maschera_hnd(TMask_field& f, KEY k); static bool setta_maschera_hnd(TMask_field& f, KEY k);
static bool messaggio_hnd (TMask_field& f, KEY k); static bool messaggio_hnd (TMask_field& f, KEY k);
int calcola_numero_dischi(TMask& m); int calcola_numero_dischi(TMask& m);
FILE* chiedi_disco(const char* name, int disk, char floppy, bool lettura); FILE* chiedi_disco(const char* name, int disk, char floppy, bool lettura);
bool scrivi_disco(char floppy, int disk, const char* work, FILE* i, TProgind& w); bool scrivi_disco(char floppy, int disk, const char* work, FILE* i, TProgind& w);
TInv_cont(char mov); bool invio_contabilita_PC();
}; void invio_testata_causali();
void invio_righe_causali();
HIDDEN TInv_cont& app() { return (TInv_cont &) main_app(); } void invio_clienti_fornitori();
void invio_piano_conti();
void invio_testata_movimenti();
void invio_righe_contabili();
void invio_righe_IVA();
void invio_occasionali(TString& record, TString& ocfpi);
TInv_cont(char mov);
};
HIDDEN TInv_cont& app() { return (TInv_cont &) main_app(); }

View File

@ -8,6 +8,7 @@
#define F_USELAB 107 #define F_USELAB 107
#define F_CHIAVE 108 #define F_CHIAVE 108
#define F_DATALIM 109 #define F_DATALIM 109
#define F_DITTAAS 110
// Campi maschera cg2900b.uml // Campi maschera cg2900b.uml

View File

@ -1,62 +1,74 @@
#include "cg6900a.h" #include "cg6900a.h"
PAGE "Invio contabilita'" -1 -1 76 11 PAGE "Invio contabilita'" -1 -1 78 15
NUMBER F_DITTAINV 5 NUMBER F_DITTAINV 5
BEGIN BEGIN
PROMPT 2 1 "Codice ditta inviante " PROMPT 2 1 "Codice ditta inviante "
FLAGS "Z" FLAGS "ZG"
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
STRING F_RAGSOC 50 STRING F_RAGSOC 50
BEGIN BEGIN
PROMPT 2 2 "Ragione sociale " PROMPT 2 2 "Ragione sociale "
FLAGS "D" FLAGS "D"
END END
NUMBER F_NUMULINV 3 NUMBER F_NUMULINV 3
BEGIN BEGIN
PROMPT 2 4 "Numero ultimo invio " PROMPT 2 4 "Numero ultimo invio "
FLAGS "RG" FLAGS "RG"
END END
DATE F_DATAULIN DATE F_DATAULIN
BEGIN BEGIN
PROMPT 44 4 "Data ultimo invio " PROMPT 45 4 "Data ultimo invio "
END END
STRING F_STATO 1 STRING F_STATO 1
BEGIN BEGIN
PROMPT 2 5 "Stato ultimo invio " PROMPT 2 6 "Stato ultimo "
END END
STRING F_USELAB 1 STRING F_USELAB 1
BEGIN BEGIN
PROMPT 27 5 "" PROMPT 19 6 ""
END END
STRING F_CHIAVE 15 TEXT DLG_NULL
BEGIN BEGIN
PROMPT 30 5 "" PROMPT 2 7 "invio "
END END
DATE F_DATALIM STRING F_CHIAVE 60
BEGIN BEGIN
PROMPT 2 7 "Data limite invio " PROMPT 15 7 ""
CHECKTYPE REQUIRED END
END
DATE F_DATALIM
BUTTON DLG_OK 9 2 BEGIN
BEGIN PROMPT 2 9 "Data limite invio "
PROMPT -12 -1 "" CHECKTYPE REQUIRED
END END
BUTTON DLG_QUIT 9 2 NUMBER F_DITTAAS 4
BEGIN BEGIN
PROMPT -22 -1 "" PROMPT 2 11 "Ditta da inviare a sistema "
END FLAGS "H"
CHECKTYPE REQUIRED
ENDPAGE END
ENDMASK BUTTON DLG_OK 9 2
BEGIN
PROMPT -12 -1 ""
END
BUTTON DLG_QUIT 9 2
BEGIN
PROMPT -22 -1 ""
END
ENDPAGE
ENDMASK

File diff suppressed because it is too large Load Diff

View File

@ -1,54 +1,54 @@
// Lista controllo archivi // Lista controllo archivi
#include <applicat.h> #include <applicat.h>
#include <printer.h> #include <printer.h>
#include <tabutil.h> #include <tabutil.h>
#include <utility.h> #include <utility.h>
#include <urldefid.h> #include <urldefid.h>
#include <lffiles.h> #include <lffiles.h>
#include <nditte.h> #include <nditte.h>
#include <mailbox.h> #include <mailbox.h>
#include <causali.h> #include <causali.h>
#include <rcausali.h> #include <rcausali.h>
#include <clifo.h> #include <clifo.h>
#include <pconti.h> #include <pconti.h>
#include <mov.h> #include <mov.h>
#include <rmov.h> #include <rmov.h>
#include <rmoviva.h> #include <rmoviva.h>
class TLista_archivi : public TApplication class TLista_archivi : public TApplication
{ {
TLocalisamfile* _ditte; TLocalisamfile* _ditte;
TLocalisamfile* _caus; TLocalisamfile* _caus;
TLocalisamfile* _rcaus; TLocalisamfile* _rcaus;
TLocalisamfile* _clifo; TLocalisamfile* _clifo;
TLocalisamfile* _pcon; TLocalisamfile* _pcon;
TLocalisamfile* _mov; TLocalisamfile* _mov;
TLocalisamfile* _rmov; TLocalisamfile* _rmov;
TLocalisamfile* _rmoviva; TLocalisamfile* _rmoviva;
TString _files, _ragsoc; TString _files, _ragsoc;
TDate _datalimite; TDate _datalimite;
long _ditta; long _ditta;
bool _errore_grave; bool _errore_grave;
int _risposta; int _risposta;
public: public:
TString _titolo; TString _titolo;
virtual bool create(); virtual bool create();
virtual bool destroy(); virtual bool destroy();
virtual bool menu(MENU_TAG m); virtual bool menu(MENU_TAG m);
bool set(); bool set();
bool tabella_ditta(); bool tabella_ditta();
void controlla_causali (char sigla); void controlla_causali (char sigla);
void controlla_clifo (char sigla); void controlla_clifo (char sigla);
void controlla_pcon (char sigla); void controlla_pcon (char sigla);
void controlla_PNIVA (char sigla); void controlla_PNIVA (char sigla);
void controlla_fatture (char sigla); void controlla_fatture (char sigla);
void setta_intestazione(char sigla); void setta_intestazione(char sigla);
bool controlla_valore (const TString& val,int lim); bool controlla_valore (const TString& val,int lim, int len);
TLista_archivi() {}; TLista_archivi() {};
}; };

File diff suppressed because it is too large Load Diff

1056
cg/cg6904.cpp Executable file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -23,7 +23,11 @@
#include <pconti.h> #include <pconti.h>
#include <comuni.h> #include <comuni.h>
#include <clifo.h> #include <clifo.h>
#include <rcausali.h> #include <rcausali.h>
#include <causali.h>
#include <occas.h>
#include "cg2103.h"
#define TEMP_CAUS "tcaus" #define TEMP_CAUS "tcaus"
#define TEMP_RCAUS "trcaus" #define TEMP_RCAUS "trcaus"
@ -37,7 +41,7 @@
#define SIZE 256 #define SIZE 256
static unsigned char _tabella[10] = {0x8a,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52}; static unsigned char _tabella[10] = {0x7d,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52};
HIDDEN TString80 TEMP; HIDDEN TString80 TEMP;
HIDDEN TString16 HEADER = "\\header"; HIDDEN TString16 HEADER = "\\header";
@ -46,6 +50,8 @@ const int CAMPI_RCAUS = 6;
// Tracciato del record di controllo // Tracciato del record di controllo
HIDDEN int pos[15] = {0,15,25,29,32,38,47,234,235,236,237,238,239,240,241}; HIDDEN int pos[15] = {0,15,25,29,32,38,47,234,235,236,237,238,239,240,241};
const int LEN_REC_HEAD = 1025;
/*HIDDEN*/ const char* converti (TString& data_AS400,bool anno_di_quattro); /*HIDDEN*/ const char* converti (TString& data_AS400,bool anno_di_quattro);
/*HIDDEN*/ const char* riconverti (TString& data_PC,bool anno_di_quattro); /*HIDDEN*/ const char* riconverti (TString& data_PC,bool anno_di_quattro);
@ -101,8 +107,8 @@ class TRic_recfield : public TObject
class TMappa_trc : public TAssoc_array class TMappa_trc : public TAssoc_array
{ {
public : public :
void leggi_modulo(); void leggi_modulo(const char* tracciato);
int from (const char* key); int from (const char* key);
int to (const char* key); int to (const char* key);
@ -121,11 +127,28 @@ class TTransfer_file
// TAssoc_array _fis_index; // TAssoc_array _fis_index;
TMappa_trc _trc; TMappa_trc _trc;
TString _curfile; TString _curfile;
TString256 _control_rec; // Buffer per il record di controllo TString256 _control_rec_t; // Buffer per il record di controllo del trasfer
TFixed_string* _control_rec; // Buffer per il record di controllo
// TString _control_rec; // Buffer per il record di controllo dell'header
TString256 _record; // Buffer per il record corrente TString256 _record; // Buffer per il record corrente
TProgind* _prog; TProgind* _prog;
TIsamtempfile* _tcaus;
TIsamtempfile* _trcaus;
TIsamtempfile* _tclifo;
TIsamtempfile* _tpcon;
TIsamtempfile* _tmov;
TIsamtempfile* _trmov;
TIsamtempfile* _triva;
TIsamtempfile* _toccas; TIsamtempfile* _toccas;
TIsamtempfile* _ttab; TIsamtempfile* _ttab;
TRectype* _depcaus;
TRectype* _deprcaus;
TRectype* _depclifo;
TRectype* _deppcon;
TRectype* _depmov;
TRectype* _deprmov;
TRectype* _depriva;
TRectype* _depoccas;
long _numreg, _numreg_p, _numreg_piva, _npoccas; long _numreg, _numreg_p, _numreg_piva, _npoccas;
int _annoes; int _annoes;
@ -152,7 +175,7 @@ private:
// Inizializza l'indice leggendo il record di controllo // Inizializza l'indice leggendo il record di controllo
void fill_index(TString&,TString&); void fill_index(TString&,TString&);
// Funzioni utilizzate da fcopytemp() // Funzioni utilizzate da fcopytemp() nella ricezione da Sistema
void scrivi_header(const char* dest,const char* wflag); void scrivi_header(const char* dest,const char* wflag);
void scrivi_causali(long nrec); void scrivi_causali(long nrec);
void scrivi_clifo(long nrec); void scrivi_clifo(long nrec);
@ -176,11 +199,24 @@ private:
int strip_zero(TString& importo); int strip_zero(TString& importo);
bool my_isdigit(unsigned char ch); bool my_isdigit(unsigned char ch);
int look(unsigned char carattere); int look(unsigned char carattere);
int cerca_annoes(long numreg); int cerca_annoes(long numreg, TString& tipodoc);
const char* scrivi_occasionali(const TString& record); const char* scrivi_occasionali(const TString& record);
public: // Funzioni utilizzate da fcopytemp_PC() nella ricezione da PC
void write_testata_causali(TString& record);
void write_righe_causali(TString& record);
void write_clienti_fornitori(TString& record);
void write_piano_conti(TString& record);
void write_testata_movimenti(TString& record);
void write_righe_contabili(TString& record);
void write_righe_IVA(TString& record);
int annoes_PC(TString& data);
void causale(TString& cau,TString& tipo,TString& descr);
int registro(TString& reg,int anno);
public:
void remove_all(bool file_ditta = TRUE); void remove_all(bool file_ditta = TRUE);
void canc_file_dir_temp(const char* dir); void canc_file_dir_temp(const char* dir);
void temp_dir(TString& orig,TString& dest,TString& sigle); void temp_dir(TString& orig,TString& dest,TString& sigle);
@ -192,6 +228,8 @@ private:
bool fcopytemp(const char* orig, const char* dest); bool fcopytemp(const char* orig, const char* dest);
bool ordina_trasfer(const char* orig); bool ordina_trasfer(const char* orig);
long determina_dimensione(FILE* f); long determina_dimensione(FILE* f);
bool fcopytemp_PC(const char* orig, const char* dest);
int dataes(const TDate&, int*, TDate&); int dataes(const TDate&, int*, TDate&);
@ -199,7 +237,9 @@ private:
bool open (const char* path, bool create=FALSE); bool open (const char* path, bool create=FALSE);
void close (); void close ();
bool exist() const { return _trasfer != NULL; } bool exist() const { return _trasfer != NULL; }
void setta_sistema(char scelta);
long get_pos(const char* key); long get_pos(const char* key);
// Funzioni che agiscono sul record di controllo del file trasfer. // Funzioni che agiscono sul record di controllo del file trasfer.
@ -221,7 +261,7 @@ private:
char flg_agg_IV(char sigla); // Ritorna il flag tipo aggiornamento classi piano dei conti char flg_agg_IV(char sigla); // Ritorna il flag tipo aggiornamento classi piano dei conti
const char* ult_file () const { return (const char*) _ult_file; } // Ritorna l'ultima sigla file elaborato const char* ult_file () const { return (const char*) _ult_file; } // Ritorna l'ultima sigla file elaborato
const char* key () const { return (const char*) _key; } // Ritorna la chiave ultimo record elaborato const char* key () const { return (const char*) _key; } // Ritorna la chiave ultimo record elaborato
const char* record () const { return (const char*) _control_rec; } // Ritorna il record di controllo del trasfer const char* record () const; // Ritorna il record di controllo del trasfer
// Funzioni per il posizionamento e la gestione dei record del trasfer (escluso il record di controllo) // Funzioni per il posizionamento e la gestione dei record del trasfer (escluso il record di controllo)
@ -268,7 +308,7 @@ private:
TMappa_trc& mappa() {return _trc; } TMappa_trc& mappa() {return _trc; }
TTransfer_file(); TTransfer_file(char scelta = '\0');
~TTransfer_file(); ~TTransfer_file();
}; };

195
cg/cgtrcpc.ini Executable file
View File

@ -0,0 +1,195 @@
# Istruzioni per l' uso della mappa cgtrc.ini
#
# A | B | C | D | E | F | G | H |
#
# A = Sigla di identificazione dei vari archivi all' interno del trasfer
# W1 = Testata Tabella Causali
# W2 = Righe Tabella Causali
# A1 = Clienti / Fornitori
# P1-P2-P3 = Piano dei Conti
# Z1 = Testata Movimenti
# Z2 = Righe Movimenti Contabili
# U1 = Righe Movimenti Iva
#
# B = Numero progressivo del campo all'interno dell'archivio
#
# C = Posizione iniziale del campo sul record del trasfer
#
# D = Posizione finale del campo sul record del trasfer
#
# E = Numero di identificazione degli archivi su PC
#
# F = Nome del campo degli archivi su PC
#
# G = Questo e' un campo jolly che permette di eseguire determinate operazioni all'interno del programma
# e puo' assumere i seguenti valori:
# 1 -> indica quali sono i campi che devono essere trasferiti se i flag sulla
# tabella della ricezione indica di non trasferire tutto il record.
# 2 -> se il campo in questione e' una data.
# 3 -> se il campo in questione e' un reale con dei decimali.
# 4 -> se il campo in questione deve essere trasferito sugli occasionali.
#
# H = E' un ulteriore campo jolly da accostare ai campi reali con decimali.
# Serve per indicare il numero di decimali. ES: se il campo in questione
# e' un reale con 2 decimali il flag G deve essere 3 mentre il flag H
# deve essere 2.
#
W1|1|3|5|26|CODCAUS|||
W1|2|61|110|26|DESCR|1||
W1|3|111|112|26|TIPODOC|||
W1|4|113|113|26|MOVAP|||
W1|5|114|114|26|ALLEG|||
W1|6|115|115|26|INTRACOM|||
W1|7|116|118|26|REG|||
W1|8|119|119|26|MOVVAL|||
W1|9|120|120|26|TIPOMOV|||
W1|10|121|121|26|DATADOC|||
W1|11|122|122|26|NUMDOC|||
W1|12|123|123|26|AUTOFATT|||
W1|13|124|124|26|RITFATT|||
W1|14|125|125|26|COLLCESP|||
W1|15|126|126|26|M770|||
W1|16|127|129|26|CODCAUSIM|||
W1|17|130|130|26|SOSPESO|||
W1|18|131|131|26|VALINTRA|||
W2|1|3|5|27|CODCAUS|||
W2|2|6|8|27|NRIGA|||
W2|3|61|63|27|GRUPPO|||
W2|4|64|66|27|CONTO|||
W2|5|67|72|27|SOTTOCONTO|||
W2|6|73|77|27|CODDESC|||
W2|7|78|78|27|SEZIONE|||
A1|1|3|3|20|TIPOCF|||
A1|2|4|9|20|CODCF|||
A1|3|61|110|20|RAGSOC|1||
A1|4|111|145|20|INDCF|1||
A1|5|146|155|20|CIVCF|1||
A1|6|156|190|20|LOCALITACF|1||
A1|7|191|193|20|STATOCF|1||
A1|8|194|197|20|COMCF|1||
A1|9|248|252|20|CAPCF|1||
A1|10|253|268|20|COFI|1||
A1|11|269|270|20|STATOPAIV|1||
A1|12|271|282|20|PAIV|1||
A1|13|283|283|20|TIPOPERS|||
A1|14|284|284|20|ALLEG|||
A1|15|285|290|20|CODALLEG|||
A1|16|291|293|20|GRUPPO|||
A1|17|294|296|20|CONTO|||
A1|18|297|299|20|GRUPPORIC|||
A1|19|300|302|20|CONTORIC|||
A1|20|303|308|20|SOTTOCRIC|||
A1|21|309|318|20|PTEL|1||
A1|22|319|348|20|TEL|1||
A1|23|349|358|20|PTEL2|1||
A1|24|359|388|20|TEL2|1||
A1|25|389|398|20|PTEL3|1||
A1|26|399|428|20|TEL3|1||
A1|27|429|438|20|PFAX|1||
A1|28|439|468|20|FAX|1||
A1|29|469|478|20|PTELEX|1||
A1|30|479|508|20|TELEX|1||
A1|31|509|516|20|DATANASC|2||
A1|32|517|519|20|STATONASC|||
A1|33|520|523|20|COMNASC|||
A1|34|574|580|20|CODSTAT|||
A1|35|581|585|20|CODABI|||
A1|36|586|590|20|CODCAB|||
A1|37|591|591|20|OCCAS|||
A1|38|592|594|20|CODVAL|||
A1|39|595|595|20|CODLIN|||
A1|40|596|610|20|FIDO|||
A1|41|611|614|20|CODPAG|||
A1|42|615|615|20|SOSPESO|||
P1|1|3|5|19|GRUPPO|||
P1|2|61|110|19|DESCR|1||
P2|1|3|5|19|GRUPPO|||
P2|2|6|8|19|CONTO|||
P2|3|61|110|19|DESCR|1||
P2|4|111|111|19|INDBIL|||
P2|5|112|112|19|TMCF|||
P2|6|113|113|19|STSOTTBIL|||
P2|7|114|114|19|COMPENS|||
P2|8|115|115|19|SEZIVD|||
P2|9|116|116|19|LETTIVD|||
P2|10|117|124|19|NUMRIVD|||
P2|11|125|126|19|NUMIVD|||
P2|12|127|127|19|SEZIVDOPP|||
P2|13|128|128|19|LETTIVDOPP|||
P2|14|129|136|19|NUMRIVDOPP|||
P2|15|137|138|19|NUMIVDOPP|||
P3|1|3|5|19|GRUPPO|||
P3|2|6|8|19|CONTO|||
P3|3|9|14|19|SOTTOCONTO|||
P3|4|61|110|19|DESCR|1||
P3|5|111|111|19|TIPOSPRIC|||
P3|6|112|112|19|SEZSALDI|||
P3|7|113|113|19|SOSPESO|||
P3|8|114|114|19|SEZIVD|||
P3|9|115|115|19|LETTIVD|||
P3|10|116|123|19|NUMRIVD|||
P3|11|124|125|19|NUMIVD|||
P3|12|126|126|19|SEZIVDOPP|||
P3|13|127|127|19|LETTIVDOPP|||
P3|14|128|135|19|NUMRIVDOPP|||
P3|15|136|137|19|NUMIVDOPP|||
P3|16|138|138|19|RICSER|||
Z1|1|3|9|23|NUMREG|||
Z1|2|61|68|23|DATAREG|2||
Z1|3|69|76|23|DATACOMP|2||
Z1|4|77|84|23|DATADOC|2||
Z1|5|85|92|23|DATA74TER|2||
Z1|6|93|99|23|NUMDOC|||
Z1|7|100|102|23|CODCAUS|||
Z1|8|103|152|23|DESCR|||
Z1|9|153|155|23|REG|||
Z1|10|156|160|23|PROTIVA|||
Z1|11|161|165|23|UPROTIVA|||
Z1|12|166|166|23|REGST|||
Z1|13|167|167|23|STAMPATO|||
Z1|14|168|174|23|NUMGIO|||
Z1|15|175|180|23|CODCF|||
Z1|16|182|195|23|TOTDOC|||
Z1|17|197|210|23|RITFIS|||
Z1|18|212|225|23|RITSOC|||
Z1|19|226|228|23|CODVALI|||
Z1|20|229|242|23|CAMBIOI|3|5|
Z1|21|244|257|23|CORRLIRE|||
Z1|22|259|274|23|CORRVALUTA|3|2|
Z1|23|275|290|23|OCFPI|||
Z1|24|291|340|18|RAGSOC|4||
Z1|25|341|390|18|INDIR|4||
Z1|26|391|396|18|CIV|4||
Z1|27|397|399|18|STATO|4||
Z1|28|400|403|18|COM|4||
Z1|29|454|458|18|CAP|4||
Z1|30|459|466|18|DNASC|4||
Z1|31|467|469|18|STATONASC|4||
Z1|32|470|473|18|COMNASC|4||
Z2|1|3|9|24|NUMREG|||
Z2|2|10|12|24|NUMRIG|||
Z2|3|61|61|24|SEZIONE|||
Z2|4|62|69|24|DATAREG|2||
Z2|5|70|72|24|GRUPPO|||
Z2|6|73|75|24|CONTO|||
Z2|7|76|81|24|SOTTOCONTO|||
Z2|8|82|131|24|DESCR|||
Z2|9|132|134|24|GRUPPOC|||
Z2|10|135|137|24|CONTOC|||
Z2|11|138|143|24|SOTTOCONTC|||
Z2|12|145|158|24|IMPORTO|||
Z2|13|159|159|24|ROWTYPE|||
U1|1|3|9|25|NUMREG|||
U1|2|10|12|25|NUMRIG|||
U1|3|61|64|25|CODIVA|||
U1|4|66|79|25|IMPONIBILE|||
U1|5|81|94|25|IMPOSTA|||
U1|6|95|95|25|TIPODET|||
U1|7|96|96|25|TIPOCR|||
U1|8|97|97|25|INTRA|||
U1|9|98|98|25|TIPOATT|||
U1|10|99|101|25|GRUPPO|||
U1|11|102|104|25|CONTO|||
U1|12|105|110|25|SOTTOCONTO|||
U1|13|111|113|25|RIGAIMP|||
U1|14|114|116|25|RIGAIVA|||