17e79bc7c9
Files correlati : Ricompilazione Demo : [ ] Commento : Riportata la versione 3.2 patch 1092 git-svn-id: svn://10.65.10.50/trunk@16293 c028cbd2-c16b-5b4b-a496-9718f37d4682
266 lines
5.9 KiB
C++
Executable File
266 lines
5.9 KiB
C++
Executable File
#include <confapp.h>
|
|
#include <msksheet.h>
|
|
#include <progind.h>
|
|
#include <recset.h>
|
|
#include <recarray.h>
|
|
#include <relation.h>
|
|
|
|
#include "../include/attiv.h"
|
|
#include "../include/mov.h"
|
|
#include "../cg/cglib01.h"
|
|
#include "tcconf.h"
|
|
|
|
class TTS_confditta : public TConfig_application
|
|
{
|
|
char _current;
|
|
|
|
static bool check_fields(TMask_field& f, KEY k);
|
|
// @cmember:(INTERNAL) Salva i parametri dalla maschera
|
|
virtual void save_mask(bool tosave);
|
|
virtual void load_mask();
|
|
public:
|
|
// @cmember Disabilita la verifica del modulo in chiave
|
|
virtual bool check_autorization() const { return FALSE; }
|
|
|
|
virtual bool preprocess_config (TMask& mask, TConfig& config);
|
|
virtual bool postprocess_config (TMask& mask, TConfig& config);
|
|
virtual bool user_create( );
|
|
virtual bool user_destroy( );
|
|
|
|
TTS_confditta() : TConfig_application( CONFIG_DITTA ){ }
|
|
virtual ~TTS_confditta( ){ }
|
|
};
|
|
|
|
bool sh_notify(TSheet_field& s, int r, KEY k)
|
|
{
|
|
if (k == K_TAB)
|
|
{
|
|
TMask& m = s.mask();
|
|
const bool use_pcn = m.get_bool(F_USECMPCN);
|
|
const int r = s.selected();
|
|
TMask & mr = s.sheet_mask();
|
|
TToken_string & row = s.row(r);
|
|
|
|
row.add(use_pcn ? "X" : " ", 4);
|
|
s.check_row(r);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
bool TTS_confditta::check_fields(TMask_field& f, KEY k)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
void TTS_confditta::load_mask()
|
|
{
|
|
TMask* mask = get_mask();
|
|
|
|
if (mask != NULL)
|
|
{
|
|
TConfig_application::load_mask();
|
|
TConfig& config = *get_config();
|
|
TSheet_field& sa = mask->sfield(F_SHEET_ATTIV);
|
|
TAssoc_array ditte;
|
|
const bool use_pcn = config.get_bool("TSUSECMPCN");
|
|
int i = 0;
|
|
|
|
for (i = 0; config.exist("TSDATT", i); i++)
|
|
{
|
|
const TString8 att(config.get("TSDATT", NULL, i));
|
|
const TString8 ditta(config.get("TSDDITTA", NULL, i));
|
|
|
|
if (att.full())
|
|
ditte.add(att, ditta);
|
|
TToken_string& row = sa.row(i);
|
|
|
|
row.add(att);
|
|
|
|
const TString & descr = cache().get("%AIS", att, "S0");
|
|
|
|
row.add(descr);
|
|
row.add(ditta);
|
|
sa.check_row(i);
|
|
}
|
|
|
|
TString query;
|
|
const long firm = mask->get_long(F_CODDITTA);
|
|
|
|
query.format("USE %d SELECT ATTPREV!=\"X\"\nFROM CODDITTA=%ld\nTO CODDITTA=%ld\n", LF_ATTIV, firm, firm);
|
|
TISAM_recordset attrec(query);
|
|
|
|
for (bool ok = attrec.move_first(); ok; ok = attrec.move_next())
|
|
|
|
{
|
|
const TString8 codatt = attrec.get(ATT_CODATT).as_string();
|
|
if (ditte.objptr(codatt) == NULL)
|
|
{
|
|
TToken_string& row = sa.row(i);
|
|
|
|
row.add(codatt);
|
|
|
|
const TString & descr = cache().get("%AIS", codatt, "S0");
|
|
|
|
row.add(descr);
|
|
row.add("");
|
|
sa.check_row(i);
|
|
}
|
|
}
|
|
|
|
TSheet_field& si = mask->sfield(F_SHEET_IVA);
|
|
|
|
si.set_notify(sh_notify);
|
|
|
|
for (i = 0; config.exist("TSGIVA", i); i++)
|
|
{
|
|
TToken_string& row = si.row(i);
|
|
row.add(config.get("TSGIVA", NULL, i));
|
|
row.add(config.get("TSCIVA", NULL, i));
|
|
row.add(config.get("TSSIVA", NULL, i));
|
|
row.add(use_pcn ? "X" : " ", 4);
|
|
si.check_row(i);
|
|
}
|
|
|
|
TSheet_field& sr = mask->sfield(F_SHEET_RIT);
|
|
|
|
sr.set_notify(sh_notify);
|
|
|
|
for (i = 0; config.exist("TSGRIT", i); i++)
|
|
{
|
|
TToken_string& row = sr.row(i);
|
|
row.add(config.get("TSGRIT", NULL, i));
|
|
row.add(config.get("TSCRIT", NULL, i));
|
|
row.add(config.get("TSSRIT", NULL, i));
|
|
row.add(use_pcn ? "X" : " ", 4);
|
|
sr.check_row(i);
|
|
}
|
|
}
|
|
}
|
|
|
|
void TTS_confditta::save_mask(bool tosave)
|
|
{
|
|
if (tosave)
|
|
{
|
|
const TMask & m = *get_mask();
|
|
|
|
if (m.get_bool(F_RIPRISTINO))
|
|
{
|
|
const TDate from(m.get(F_ULTINVIO));
|
|
TEsercizi_contabili esc;
|
|
const TEsercizio & e = esc.esercizio(esc.date2esc(from));
|
|
const TDate to(e.fine());
|
|
|
|
TString query = "USE MOV KEY 2 SELECT INVIATO==\"X\"";
|
|
|
|
query << "\nFROM DATAREG=#DATA_DA";
|
|
query << "\nTO DATAREG=#DATA_AL";
|
|
|
|
TISAM_recordset mov(query);
|
|
|
|
mov.set_var("#DATA_DA", TVariant(from));
|
|
mov.set_var("#DATA_AL", TVariant(to));
|
|
|
|
if (mov.items() >0L)
|
|
{
|
|
TProgind pi(mov.items(), TR("Ripristino movimenti"), true, true);
|
|
TLocalisamfile cgmov(LF_MOV);
|
|
|
|
for (bool ok = mov.move_first(); ok; ok = mov.move_next())
|
|
{
|
|
if (!pi.addstatus(1))
|
|
break;
|
|
const long numreg = mov.get(MOV_NUMREG).as_int();
|
|
|
|
cgmov.put(MOV_NUMREG, numreg);
|
|
if (cgmov.read(_isequal, _lock) == NOERR)
|
|
{
|
|
cgmov.zero(MOV_INVIATO);
|
|
cgmov.rewrite();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
TConfig& config = *get_config();
|
|
int i = 0;
|
|
|
|
for (i = 0; config.exist("TSGIVA", i); i++)
|
|
{
|
|
config.remove("TSDATT", i);
|
|
config.remove("TSDITTA", i);
|
|
}
|
|
|
|
TSheet_field& sa = m.sfield(F_SHEET_ATTIV);
|
|
|
|
FOR_EACH_SHEET_ROW(sa, jd, rowd)
|
|
{
|
|
config.set("TSDATT", rowd->get(0), NULL, true, jd);
|
|
config.set("TSDDITTA", rowd->get(2), NULL, true, jd);
|
|
}
|
|
|
|
for (i = 0; config.exist("TSGIVA", i); i++)
|
|
{
|
|
config.remove("TSGIVA", i);
|
|
config.remove("TSCIVA", i);
|
|
config.remove("TSSIVA", i);
|
|
}
|
|
|
|
TSheet_field& si = m.sfield(F_SHEET_IVA);
|
|
|
|
FOR_EACH_SHEET_ROW(si, j, row)
|
|
{
|
|
config.set("TSGIVA", row->get(0), NULL, true, j);
|
|
config.set("TSCIVA", row->get(1), NULL, true, j);
|
|
config.set("TSSIVA", row->get(2), NULL, true, j);
|
|
}
|
|
|
|
for (i = 0; config.exist("TSGRIT", i); i++)
|
|
{
|
|
config.remove("TSGRIT", i);
|
|
config.remove("TSCRIT", i);
|
|
config.remove("TSSRIT", i);
|
|
}
|
|
|
|
TSheet_field& sr = m.sfield(F_SHEET_RIT);
|
|
|
|
FOR_EACH_SHEET_ROW(sr, jr, rowr)
|
|
{
|
|
config.set("TSGRIT", rowr->get(0), NULL, true, jr);
|
|
config.set("TSCRIT", rowr->get(1), NULL, true, jr);
|
|
config.set("TSSRIT", rowr->get(2), NULL, true, jr);
|
|
}
|
|
}
|
|
TConfig_application::save_mask(tosave);
|
|
}
|
|
|
|
bool TTS_confditta::preprocess_config (TMask& mask, TConfig& config)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
bool TTS_confditta::postprocess_config (TMask& mask, TConfig& config)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
|
|
bool TTS_confditta::user_create( )
|
|
{
|
|
TConfig conf(CONFIG_DITTA);
|
|
|
|
conf.set( "EdMask", "tc0300a", "tc");
|
|
return true;
|
|
}
|
|
|
|
bool TTS_confditta::user_destroy( )
|
|
{
|
|
return true;
|
|
}
|
|
|
|
int tc0300(int argc, char* argv[])
|
|
{
|
|
TTS_confditta appc;
|
|
appc.run(argc, argv, TR("Parametri ditta TeamSystem"));
|
|
return 0;
|
|
}
|