campo-sirio/tc/tc0300.cpp
alex 17e79bc7c9 Patch level : 4.0 905
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
2008-03-11 15:50:42 +00:00

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;
}