Aggiunto invio contabilita'
git-svn-id: svn://10.65.10.50/trunk@1263 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
a45d1baf82
commit
35fc696ada
@ -14,13 +14,17 @@ int main(int argc,char** argv)
|
||||
case 2:
|
||||
cg2300(argc, argv); break;
|
||||
case 3:
|
||||
cg2400(argc, argv); break;
|
||||
cg2400(argc, argv); break;
|
||||
case 4:
|
||||
cg2500(argc, argv); break;
|
||||
case 5:
|
||||
cg2600(argc, argv); break;
|
||||
case 6:
|
||||
cg2700(argc, argv); break;
|
||||
case 7:
|
||||
cg2800(argc, argv); break;
|
||||
case 8:
|
||||
cg2900(argc, argv); break;
|
||||
default:
|
||||
cg2100(argc, argv); break;
|
||||
}
|
||||
|
2
cg/cg2.h
2
cg/cg2.h
@ -5,8 +5,10 @@ int cg2100(int argc, char** argv);
|
||||
int cg2200(int argc, char** argv);
|
||||
int cg2300(int argc, char* argv[]);
|
||||
int cg2400(int argc, char* argv[]);
|
||||
int cg2500(int argc, char* argv[]);
|
||||
int cg2600(int argc, char* argv[]);
|
||||
int cg2700(int argc, char* argv[]);
|
||||
int cg2800(int argc, char* argv[]);
|
||||
int cg2900(int argc, char* argv[]);
|
||||
|
||||
#endif // __CG2_H
|
||||
|
@ -37,3 +37,9 @@ MENUBAR MENU_BAR(7)
|
||||
|
||||
MENU MENU_BAR(7)
|
||||
SUBMENU MENU_FILE "~File"
|
||||
|
||||
MENUBAR MENU_BAR(8)
|
||||
|
||||
MENU MENU_BAR(8)
|
||||
SUBMENU MENU_FILE "~File"
|
||||
|
||||
|
663
cg/cg2500.cpp
Executable file
663
cg/cg2500.cpp
Executable file
@ -0,0 +1,663 @@
|
||||
|
||||
#include <applicat.h>
|
||||
#include <tabapp.h>
|
||||
#include <strings.h>
|
||||
#include <stdtypes.h>
|
||||
#include <tabutil.h>
|
||||
#include <utility.h>
|
||||
#include <prefix.h>
|
||||
#include <nditte.h>
|
||||
|
||||
#include "..\ba\batbind.h"
|
||||
#include "cglib04.h"
|
||||
|
||||
HIDDEN TString80 TEMP;
|
||||
|
||||
class Tabinv_application : public Tab_application
|
||||
{
|
||||
private:
|
||||
TMask* _msk;
|
||||
TString _tabname;
|
||||
TTransfer_file _tras_file;
|
||||
|
||||
TString _trasf,_control_rec;
|
||||
long _ditta_tab, _ditta_tras;
|
||||
bool _disable,_ditte_uguali,_salta_hnd;
|
||||
|
||||
public:
|
||||
bool user_create();
|
||||
virtual void init_query_mode(TMask&);
|
||||
virtual void init_modify_mode(TMask&);
|
||||
virtual void init_insert_mode(TMask&);
|
||||
virtual int write(const TMask& m);
|
||||
virtual int rewrite(const TMask& m);
|
||||
|
||||
void leggi_trasfer();
|
||||
void confronta_ditta();
|
||||
char cerca_stato(long codditta);
|
||||
void codifica_ditta(TMask& m);
|
||||
void tabella_ditta(TMask& m);
|
||||
|
||||
//void esegui_controlli(TMask& m);
|
||||
static bool controlli_hnd (TMask_field& f, KEY k);
|
||||
|
||||
static bool nascosto_handler(TMask& m, KEY k);
|
||||
static bool stato_invio (TMask_field& f, KEY k);
|
||||
|
||||
static bool ditta_handler (TMask_field& f, KEY k);
|
||||
static bool almeno_un_flag(TMask_field& f, KEY k);
|
||||
static bool clifo_comune (TMask_field& f, KEY k);
|
||||
static bool pcon_comune (TMask_field& f, KEY k);
|
||||
static bool prima_nota (TMask_field& f, KEY k);
|
||||
static bool data_invio (TMask_field& f, KEY k);
|
||||
static bool sigla_file (TMask_field& f, KEY k);
|
||||
static bool chiave_file (TMask_field& f, KEY k);
|
||||
|
||||
static bool nome_id (TMask_field& f, KEY k);
|
||||
|
||||
const char* riconverti(TString& data_PC);
|
||||
|
||||
Tabinv_application() {}
|
||||
virtual ~Tabinv_application() {}
|
||||
};
|
||||
|
||||
HIDDEN inline Tabinv_application& app() {return (Tabinv_application&) main_app();}
|
||||
|
||||
const char* Tabinv_application::riconverti (TString& data_PC)
|
||||
{
|
||||
TEMP = data_PC.mid(8,2);
|
||||
TEMP << data_PC.mid(3,2);
|
||||
TEMP << data_PC.mid(0,2);
|
||||
return TEMP;
|
||||
}
|
||||
|
||||
char Tabinv_application::cerca_stato(long ditta)
|
||||
{
|
||||
TTable ind ("%IND");
|
||||
TString dep;
|
||||
char stato = '\0';
|
||||
|
||||
dep = format("%05d", ditta);
|
||||
|
||||
ind.zero();
|
||||
ind.put("CODTAB", dep);
|
||||
if (ind.read() == NOERR)
|
||||
stato = ind.get_char("S6");
|
||||
|
||||
return stato;
|
||||
}
|
||||
|
||||
bool Tabinv_application::nascosto_handler(TMask& m, KEY k)
|
||||
{
|
||||
if (k == K_SHIFT+K_F12)
|
||||
{
|
||||
if (app()._tabname == "%IND")
|
||||
{
|
||||
app()._disable = FALSE;
|
||||
|
||||
m.enable(F_NUMULINV);
|
||||
m.enable(F_DATAULIN);
|
||||
m.enable(F_STATO);
|
||||
|
||||
if (app()._ditta_tab == app()._ditta_tras)
|
||||
{
|
||||
m.enable(F_USELAB);
|
||||
m.enable(F_CHIAVE);
|
||||
}
|
||||
}
|
||||
else
|
||||
if (app()._tabname == "%INS")
|
||||
{
|
||||
m.enable(F_DITTAINV);
|
||||
app()._salta_hnd = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool Tabinv_application::stato_invio(TMask_field& f, KEY k)
|
||||
{
|
||||
if ( (k == K_ENTER || k == K_TAB) && f.mask().mode() != MODE_QUERY )
|
||||
{
|
||||
if ( k == K_ENTER)
|
||||
{
|
||||
TString stato = f.get();
|
||||
int num = f.mask().get_int(F_NUMULINV);
|
||||
|
||||
if (num == 0 && stato != "")
|
||||
return warning_box("Numero ultimo invio NON INDICATO: impossibile indicare lo stato ultimo invio");
|
||||
}
|
||||
|
||||
if (k == K_TAB)
|
||||
{
|
||||
long codditta = f.mask().get_long(F_DITTAINV);
|
||||
|
||||
char stato = app().cerca_stato(codditta);
|
||||
|
||||
if (stato != '\0' && app()._disable)
|
||||
return warning_box("Rilevato STATO DI RIPARTENZA: prima concludere il trasferimento");
|
||||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool Tabinv_application::ditta_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
if (k == K_TAB && f.mask().mode() == MODE_QUERY)
|
||||
{
|
||||
long codditta = f.mask().get_long(F_DITTAINV);
|
||||
|
||||
if (codditta != 0)
|
||||
{
|
||||
if (!prefix().exist(codditta))
|
||||
{
|
||||
f.error_box("La ditta selezionata non e' abilitata per la contabilita' ");
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool Tabinv_application::almeno_un_flag(TMask_field& f, KEY k)
|
||||
{
|
||||
if (k == K_ENTER && f.mask().mode() != MODE_QUERY)
|
||||
{
|
||||
bool cau = f.mask().get_bool(F_CAUSALI);
|
||||
bool clifo = f.mask().get_bool(F_CLIFO);
|
||||
bool pcon = f.mask().get_bool(F_PCON);
|
||||
bool pn = f.mask().get_bool(F_MOV);
|
||||
bool iva = f.mask().get_bool(F_IVA);
|
||||
bool fat = f.mask().get_bool(F_FATT);
|
||||
|
||||
if (!cau && !clifo && !pcon && !pn && !iva && !fat)
|
||||
return warning_box("E' necessario indicare almeno una sigla file da trasferire");
|
||||
|
||||
long ditta = f.mask().get_long(F_DITTAINV);
|
||||
|
||||
app().set_firm(ditta);
|
||||
|
||||
TConfig conf (CONFIG_DITTA);
|
||||
|
||||
TString pcon_cau = conf.get("PcTcCm","cg");
|
||||
|
||||
bool causali = f.mask().get_bool(F_CAUSALI);
|
||||
|
||||
if (causali && pcon_cau != "")
|
||||
return warning_box("Tabella causali in comune: impossibile trasferirla");
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool Tabinv_application::clifo_comune(TMask_field& f, KEY k)
|
||||
{
|
||||
if (k == K_ENTER && f.mask().mode() != MODE_QUERY)
|
||||
{
|
||||
long ditta = f.mask().get_long(F_DITTAINV);
|
||||
|
||||
app().set_firm(ditta);
|
||||
|
||||
TConfig conf (CONFIG_DITTA);
|
||||
|
||||
TString ana_com = conf.get("AnCfCm","cg");
|
||||
|
||||
bool clifo = f.mask().get_bool(F_CLIFO);
|
||||
|
||||
if (clifo && ana_com != "")
|
||||
return warning_box("Anagrafica clienti / fornitori in comune: impossibile trasferirla");
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool Tabinv_application::pcon_comune(TMask_field& f, KEY k)
|
||||
{
|
||||
if (k == K_ENTER && f.mask().mode() != MODE_QUERY)
|
||||
{
|
||||
long ditta = f.mask().get_long(F_DITTAINV);
|
||||
|
||||
app().set_firm(ditta);
|
||||
|
||||
TConfig conf (CONFIG_DITTA);
|
||||
|
||||
TString pcon_cau = conf.get("PcTcCm","cg");
|
||||
|
||||
bool pcon = f.mask().get_bool(F_PCON);
|
||||
|
||||
if (pcon && pcon_cau != "")
|
||||
return warning_box("Anagrafica Piano dei conti in comune: impossibile trasferirla");
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool Tabinv_application::prima_nota(TMask_field& f, KEY k)
|
||||
{
|
||||
if (k == K_ENTER && f.mask().mode() != MODE_QUERY)
|
||||
{
|
||||
bool pn = f.mask().get_bool(F_MOV);
|
||||
|
||||
if (!pn && (f.mask().get_bool(F_IVA) || f.mask().get_bool(F_FATT)) )
|
||||
return warning_box("Se si vuole inviare l' iva e' obbligatorio inviare anche la primanota");
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool Tabinv_application::data_invio (TMask_field& f, KEY k)
|
||||
{
|
||||
if (k == K_ENTER && f.mask().mode() != MODE_QUERY)
|
||||
{
|
||||
int num = f.mask().get_int(F_NUMULINV);
|
||||
TDate data (f.get());
|
||||
|
||||
if (num != 0 && !data.ok())
|
||||
return warning_box("Se indicato il numero deve essere indicata anche la data di invio");
|
||||
|
||||
if (num == 0 && data.ok())
|
||||
return warning_box("Se non indicato il numero non puo' essere indicata la data di invio");
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool Tabinv_application::sigla_file(TMask_field& f, KEY k)
|
||||
{
|
||||
if (k == K_ENTER && f.mask().mode() != MODE_QUERY)
|
||||
{
|
||||
int num = f.mask().get_int(F_NUMULINV);
|
||||
TString sigla = f.get();
|
||||
|
||||
if (num == 0 && sigla != "")
|
||||
return warning_box("Numero ultimo invio NON INDICATO: impossibile indicare la sigla ultimo file elaborato");
|
||||
|
||||
TString stato = f.mask().get(F_STATO);
|
||||
|
||||
if (stato != "F" && sigla != "")
|
||||
return warning_box("La sigla ultimo file elaborato puo' essere indicata solo se lo stato ultimo invio e' F");
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool Tabinv_application::chiave_file(TMask_field& f, KEY k)
|
||||
{
|
||||
if (k == K_ENTER && f.mask().mode() != MODE_QUERY)
|
||||
{
|
||||
TString sigla = f.mask().get(F_USELAB);
|
||||
TString chiave = f.get();
|
||||
|
||||
if (sigla == "" && chiave != "")
|
||||
return warning_box("Sigla ultimo file elaborato NON INDICATA: impossibile indicare la chiave ultimo record elaborato");
|
||||
|
||||
TString stato = f.mask().get(F_STATO);
|
||||
|
||||
if (stato != "F" && chiave == "" && sigla != "")
|
||||
return warning_box("La chiave ultimo record elaborato deve essere indicata obbligatoriamente");
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
bool Tabinv_application::nome_id(TMask_field& f, KEY k)
|
||||
{
|
||||
if (k == K_TAB && !app()._salta_hnd)
|
||||
{
|
||||
long codditta = f.mask().get_long(F_DITTAINV);
|
||||
|
||||
if (codditta != 0)
|
||||
return warning_box("Rilevato STATO DI RIPARTENZA: prima concludere il trasferimento");
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
//void Tabinv_application::esegui_controlli(TMask& m)
|
||||
bool Tabinv_application::controlli_hnd(TMask_field& f, KEY k)
|
||||
{
|
||||
if (k == K_TAB && !f.mask().field(F_NUMULINV).enabled())
|
||||
{
|
||||
int num = f.mask().get_int(F_NUMULINV);
|
||||
TDate data (f.mask().get(F_DATAULIN));
|
||||
|
||||
if (num != 0 && !data.ok())
|
||||
return warning_box("Se indicato il numero deve essere indicata anche la data di invio");
|
||||
|
||||
if (num == 0 && data.ok())
|
||||
return warning_box("Se non indicato il numero non puo' essere indicata la data di invio");
|
||||
|
||||
TString sigla = f.mask().get(F_USELAB);
|
||||
|
||||
if (num == 0 && sigla != "")
|
||||
return warning_box("Numero ultimo invio NON INDICATO: impossibile indicare la sigla ultimo file elaborato");
|
||||
|
||||
TString stato = f.mask().get(F_STATO);
|
||||
|
||||
if (stato != "F" && sigla != "")
|
||||
return warning_box("La sigla ultimo file elaborato puo' essere indicata solo se lo stato ultimo invio e' F");
|
||||
|
||||
TString chiave = f.mask().get(F_CHIAVE);
|
||||
|
||||
if (sigla == "" && chiave != "")
|
||||
return warning_box("Sigla ultimo file elaborato NON INDICATA: impossibile indicare la chiave ultimo record elaborato");
|
||||
|
||||
if (stato != "F" && chiave == "" && sigla != "")
|
||||
return warning_box("La chiave ultimo record elaborato deve essere indicata obbligatoriamente");
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void Tabinv_application::leggi_trasfer()
|
||||
{
|
||||
_trasf = "";
|
||||
_trasf = firm2dir(0);
|
||||
_trasf << "\\trasfer";
|
||||
|
||||
_tras_file.open(_trasf);
|
||||
|
||||
if (_tras_file.exist())
|
||||
{
|
||||
if (_tras_file.read_control_rec())
|
||||
{
|
||||
_control_rec = _tras_file.record();
|
||||
_ditta_tras = atol(_control_rec.sub(25,29));
|
||||
}
|
||||
else
|
||||
_ditta_tras = 0;
|
||||
}
|
||||
else
|
||||
_ditta_tras = 0;
|
||||
}
|
||||
|
||||
void Tabinv_application::confronta_ditta()
|
||||
{
|
||||
_ditta_tab = _msk->get_long(F_DITTAINV);
|
||||
|
||||
if (_ditta_tab == _ditta_tras)
|
||||
{
|
||||
TString uselab = _tras_file.ult_file();
|
||||
TString chiave = _tras_file.key();
|
||||
|
||||
_msk->set(F_USELAB, uselab);
|
||||
_msk->set(F_CHIAVE, chiave);
|
||||
_ditte_uguali = TRUE;
|
||||
}
|
||||
else
|
||||
_ditte_uguali = FALSE;
|
||||
}
|
||||
|
||||
void Tabinv_application::codifica_ditta(TMask& m)
|
||||
{
|
||||
TLocalisamfile ditte ( LF_NDITTE);
|
||||
|
||||
long ditta = m.get_long(F_DITTAINV);
|
||||
|
||||
ditte.setkey(1);
|
||||
ditte.zero();
|
||||
ditte.put(NDT_CODDITTA, ditta);
|
||||
if (ditte.read() == NOERR)
|
||||
{
|
||||
TString ragsoc = ditte.get(NDT_RAGSOC);
|
||||
m.set(F_RAGSOC, ragsoc);
|
||||
}
|
||||
}
|
||||
|
||||
void Tabinv_application::tabella_ditta(TMask& m)
|
||||
{
|
||||
TTable ind ("%IND");
|
||||
TString dep;
|
||||
|
||||
long ditta = m.get_long(F_DITTAINV);
|
||||
|
||||
if (ditta != 0)
|
||||
{
|
||||
dep = format("%05d", ditta);
|
||||
|
||||
ind.zero();
|
||||
ind.put("CODTAB", dep);
|
||||
if (ind.read() == NOERR)
|
||||
{
|
||||
TString stato = ind.get_char("S6");
|
||||
int num = ind.get_int ("I0");
|
||||
TDate data = ind.get_date("D0");
|
||||
|
||||
m.set(F_STATO, stato);
|
||||
m.set(F_NUMULINV, num);
|
||||
m.set(F_DATAULIN, data.string());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Tabinv_application::init_query_mode(TMask& m)
|
||||
{
|
||||
leggi_trasfer();
|
||||
_disable = TRUE;
|
||||
|
||||
if (_tabname == "%INS")
|
||||
{
|
||||
m.disable(F_DITTAINV);
|
||||
long ditta = m.get_long(F_DITTAINV);
|
||||
if (ditta != 0)
|
||||
{
|
||||
codifica_ditta(m);
|
||||
tabella_ditta(m);
|
||||
confronta_ditta();
|
||||
}
|
||||
else
|
||||
{
|
||||
m.reset(F_NUMULINV);
|
||||
m.reset(F_DATAULIN);
|
||||
m.reset(F_STATO);
|
||||
m.reset(F_USELAB);
|
||||
m.reset(F_CHIAVE);
|
||||
m.reset(F_RAGSOC);
|
||||
}
|
||||
}
|
||||
|
||||
m.disable(F_NUMULINV);
|
||||
m.disable(F_DATAULIN);
|
||||
m.disable(F_STATO);
|
||||
m.disable(F_USELAB);
|
||||
m.disable(F_CHIAVE);
|
||||
}
|
||||
|
||||
void Tabinv_application::init_modify_mode(TMask& m)
|
||||
{
|
||||
if (_tabname == "%IND")
|
||||
{
|
||||
leggi_trasfer();
|
||||
confronta_ditta();
|
||||
codifica_ditta(m);
|
||||
//esegui_controlli(m);
|
||||
}
|
||||
|
||||
if (_tabname == "%INS")
|
||||
{
|
||||
m.disable(F_DITTAINV);
|
||||
long ditta = m.get_long(F_DITTAINV);
|
||||
if (ditta != 0)
|
||||
{
|
||||
codifica_ditta(m);
|
||||
tabella_ditta(m);
|
||||
confronta_ditta();
|
||||
}
|
||||
else
|
||||
{
|
||||
m.reset(F_NUMULINV);
|
||||
m.reset(F_DATAULIN);
|
||||
m.reset(F_STATO);
|
||||
m.reset(F_USELAB);
|
||||
m.reset(F_CHIAVE);
|
||||
m.reset(F_RAGSOC);
|
||||
}
|
||||
}
|
||||
|
||||
m.disable(F_NUMULINV);
|
||||
m.disable(F_DATAULIN);
|
||||
m.disable(F_STATO);
|
||||
m.disable(F_USELAB);
|
||||
m.disable(F_CHIAVE);
|
||||
}
|
||||
|
||||
void Tabinv_application::init_insert_mode(TMask& m)
|
||||
{
|
||||
if (_tabname == "%IND")
|
||||
{
|
||||
leggi_trasfer();
|
||||
confronta_ditta();
|
||||
codifica_ditta(m);
|
||||
//esegui_controlli(m);
|
||||
}
|
||||
|
||||
if (_tabname == "%INS")
|
||||
{
|
||||
m.disable(F_DITTAINV);
|
||||
long ditta = m.get_long(F_DITTAINV);
|
||||
if (ditta != 0)
|
||||
{
|
||||
codifica_ditta(m);
|
||||
tabella_ditta(m);
|
||||
confronta_ditta();
|
||||
}
|
||||
else
|
||||
{
|
||||
m.reset(F_NUMULINV);
|
||||
m.reset(F_DATAULIN);
|
||||
m.reset(F_STATO);
|
||||
m.reset(F_USELAB);
|
||||
m.reset(F_CHIAVE);
|
||||
m.reset(F_RAGSOC);
|
||||
}
|
||||
}
|
||||
|
||||
m.disable(F_NUMULINV);
|
||||
m.disable(F_DATAULIN);
|
||||
m.disable(F_STATO);
|
||||
m.disable(F_USELAB);
|
||||
m.disable(F_CHIAVE);
|
||||
}
|
||||
|
||||
int Tabinv_application::write(const TMask& m)
|
||||
{
|
||||
if (_tabname == "%IND")
|
||||
{
|
||||
TString str;
|
||||
|
||||
TString std = m.get(F_STATO);
|
||||
|
||||
TConfig conf (CONFIG_DITTA);
|
||||
conf.set("FlStInv", std);
|
||||
|
||||
int num = m.get_int(F_NUMULINV);
|
||||
TString data = m.get (F_DATAULIN);
|
||||
TString sigla = m.get (F_USELAB);
|
||||
TString chiave = m.get (F_CHIAVE);
|
||||
|
||||
if (sigla == "")
|
||||
sigla = " ";
|
||||
|
||||
if (_tras_file.read_control_rec())
|
||||
{
|
||||
if (_ditte_uguali)
|
||||
{
|
||||
_control_rec = _tras_file.record();
|
||||
str = format("%03d", num);
|
||||
_control_rec.overwrite(str,29);
|
||||
str = riconverti(data);
|
||||
_control_rec.overwrite(str,32);
|
||||
_control_rec.overwrite(sigla,240);
|
||||
str = format("%-15s", (const char*) chiave);
|
||||
_control_rec.overwrite(str,241);
|
||||
|
||||
_tras_file.write_control_rec(_control_rec,256);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return Tab_application::write(m);
|
||||
}
|
||||
|
||||
int Tabinv_application::rewrite(const TMask& m)
|
||||
{
|
||||
if (_tabname == "%IND")
|
||||
{
|
||||
TString str;
|
||||
|
||||
TString std = m.get(F_STATO);
|
||||
|
||||
TConfig conf (CONFIG_DITTA);
|
||||
conf.set("FlStInv", std);
|
||||
|
||||
int num = m.get_int(F_NUMULINV);
|
||||
TString data = m.get (F_DATAULIN);
|
||||
TString sigla = m.get (F_USELAB);
|
||||
TString chiave = m.get (F_CHIAVE);
|
||||
|
||||
if (sigla == "")
|
||||
sigla = " ";
|
||||
|
||||
if (_tras_file.read_control_rec())
|
||||
{
|
||||
if (_ditte_uguali)
|
||||
{
|
||||
_control_rec = _tras_file.record();
|
||||
str = format("%03d", num);
|
||||
_control_rec.overwrite(str,29);
|
||||
str = riconverti(data);
|
||||
_control_rec.overwrite(str,32);
|
||||
_control_rec.overwrite(sigla,240);
|
||||
str = format("%-15s", (const char*) chiave);
|
||||
_control_rec.overwrite(str,241);
|
||||
|
||||
_tras_file.write_control_rec(_control_rec,256);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return Tab_application::rewrite(m);
|
||||
}
|
||||
|
||||
bool Tabinv_application::user_create()
|
||||
{
|
||||
Tab_application::user_create();
|
||||
|
||||
_msk = get_mask();
|
||||
_tabname = get_tabname();
|
||||
|
||||
if (_tabname == "%IND")
|
||||
{
|
||||
_msk->set_handler(nascosto_handler);
|
||||
_msk->set_handler(F_STATO, stato_invio);
|
||||
_msk->set_handler(F_DITTAINV, ditta_handler);
|
||||
_msk->set_handler(F_CAUSALI, almeno_un_flag);
|
||||
_msk->set_handler(F_CLIFO, clifo_comune);
|
||||
_msk->set_handler(F_PCON, pcon_comune);
|
||||
_msk->set_handler(F_MOV, prima_nota);
|
||||
_msk->set_handler(F_DATAULIN, data_invio);
|
||||
_msk->set_handler(F_USELAB, sigla_file);
|
||||
_msk->set_handler(F_CHIAVE, chiave_file);
|
||||
_msk->set_handler(F_GHOST_FIELD, controlli_hnd);
|
||||
}
|
||||
|
||||
if (_tabname == "%INS")
|
||||
{
|
||||
_msk->set_handler(nascosto_handler);
|
||||
_msk->set_handler(F_DITTAINV, nome_id);
|
||||
_salta_hnd = FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
cg2500(int argc, char* argv[])
|
||||
{
|
||||
Tabinv_application a;
|
||||
|
||||
a.run(argc,argv, "Tabelle");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
2099
cg/cg2900.cpp
Executable file
2099
cg/cg2900.cpp
Executable file
File diff suppressed because it is too large
Load Diff
15
cg/cg2900.h
Executable file
15
cg/cg2900.h
Executable file
@ -0,0 +1,15 @@
|
||||
// Campi maschera tabella ditte per invio
|
||||
|
||||
#define F_DITTAINV 101
|
||||
#define F_NUMULINV 103
|
||||
#define F_DATAULIN 104
|
||||
#define F_STATO 105
|
||||
#define F_RAGSOC 106
|
||||
#define F_USELAB 107
|
||||
#define F_CHIAVE 108
|
||||
#define F_DATALIM 109
|
||||
|
||||
// Campi maschera cg2900b.uml
|
||||
|
||||
#define F_FLOPPY 201
|
||||
#define F_DIM 202
|
62
cg/cg2900a.uml
Executable file
62
cg/cg2900a.uml
Executable file
@ -0,0 +1,62 @@
|
||||
#include "cg2900.h"
|
||||
|
||||
PAGE "Invio contabilita'" -1 -1 76 11
|
||||
|
||||
NUMBER F_DITTAINV 5
|
||||
BEGIN
|
||||
PROMPT 2 1 "Codice ditta inviante "
|
||||
FLAGS "Z"
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_RAGSOC 50
|
||||
BEGIN
|
||||
PROMPT 2 2 "Ragione sociale "
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
NUMBER F_NUMULINV 3
|
||||
BEGIN
|
||||
PROMPT 2 4 "Numero ultimo invio "
|
||||
FLAGS "R"
|
||||
END
|
||||
|
||||
DATE F_DATAULIN
|
||||
BEGIN
|
||||
PROMPT 44 4 "Data ultimo invio "
|
||||
END
|
||||
|
||||
STRING F_STATO 1
|
||||
BEGIN
|
||||
PROMPT 2 5 "Stato ultimo invio "
|
||||
END
|
||||
|
||||
STRING F_USELAB 1
|
||||
BEGIN
|
||||
PROMPT 27 5 ""
|
||||
END
|
||||
|
||||
STRING F_CHIAVE 15
|
||||
BEGIN
|
||||
PROMPT 30 5 ""
|
||||
END
|
||||
|
||||
DATE F_DATALIM
|
||||
BEGIN
|
||||
PROMPT 2 7 "Data limite invio "
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 9 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 9 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
34
cg/cg2900b.uml
Executable file
34
cg/cg2900b.uml
Executable file
@ -0,0 +1,34 @@
|
||||
#include "cg2900.h"
|
||||
|
||||
PAGE "" -1 -1 40 7
|
||||
|
||||
LIST F_FLOPPY 1 5
|
||||
BEGIN
|
||||
PROMPT 1 1 "Disco "
|
||||
ITEM "A|A:"
|
||||
ITEM "B|B:"
|
||||
END
|
||||
|
||||
LIST F_DIM 7
|
||||
BEGIN
|
||||
PROMPT 1 3 "Dimensione dischi "
|
||||
ITEM "1|1,4 Mb"
|
||||
ITEM "2|1,2 Mb"
|
||||
ITEM "3|720 Kb"
|
||||
ITEM "4|360 Kb"
|
||||
HELP "Indicare la dimensione dei dischi che si vogliono usare"
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 9 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_QUIT 9 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
@ -53,11 +53,13 @@ void TTransfer_file::close()
|
||||
fclose(_trasfer);
|
||||
}
|
||||
|
||||
bool TTransfer_file::open(const char* path)
|
||||
bool TTransfer_file::open(const char* path, bool create)
|
||||
{
|
||||
if (_trasfer) fclose(_trasfer);
|
||||
|
||||
_trasfer = fopen (path, "r+t");
|
||||
const char* mode = create ? "a+t" : "r+t";
|
||||
|
||||
_trasfer = fopen (path, mode);
|
||||
return _trasfer != NULL;
|
||||
}
|
||||
|
||||
|
@ -80,7 +80,7 @@ private:
|
||||
public:
|
||||
|
||||
const char* path (long codditta = 0);
|
||||
bool open (const char* path);
|
||||
bool open (const char* path, bool create=FALSE);
|
||||
void close ();
|
||||
bool exist() const { return _trasfer != NULL; }
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user