cosmesi da TString80 a TCodice_articolo

git-svn-id: svn://10.65.10.50/branches/R_10_00@23043 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2015-02-24 08:37:50 +00:00
parent 643681129b
commit 9abac455f4
8 changed files with 103 additions and 70 deletions

View File

@ -184,7 +184,7 @@ void TClifo_giac_mask::set_parametered_fields()
if (_magazzini)
delete _magazzini;
_magazzini = new TMagazzini;
_magazzini = new TMagazzini;
// imposta il puntatore al gestore livelli giacenze
livelli_giac= new TCodgiac_livelli();
@ -283,7 +283,7 @@ TString TClifo_giac::query_giacenze(const TMask& m)
{
const char tipocf = m.get(F_TIPOCF)[0];
const long codcf = m.get_long(F_CODCF);
const TString80 codart = m.get(F_CODART);
const TCodice_articolo codart = m.get(F_CODART);
const int annoes = m.get_int(F_ANNOES);
TString& giacenze = get_tmp_string();
@ -335,7 +335,7 @@ bool TClifo_giac::find(word key)
bool ok = false;
const char tipocf = _msk->get(F_TIPOCF)[0];
const long codcf = _msk->get_long(F_CODCF);
const TString80 codart = _msk->get(F_CODART);
const TCodice_articolo codart = _msk->get(F_CODART);
const int annoes = _msk->get_int(F_ANNOES);
TLocalisamfile clifogiac(LF_CLIFOGIAC);
@ -403,7 +403,7 @@ int TClifo_giac::write_giacenze(const TMask& m)
//prende i dati dalla maschera principale
const char tipocf = m.get(F_TIPOCF)[0];
const long codcf = m.get_long(F_CODCF);
const TString80 codart = m.get(F_CODART);
const TCodice_articolo codart = m.get(F_CODART);
const int annoes = m.get_int(F_ANNOES);
//..e quindi la maschera di sheet
@ -474,13 +474,14 @@ int TClifo_giac::remove_giacenze(const char tipocf, const long codcf, const TStr
}
return err;
}
bool TClifo_giac::remove()
{
//recupero i dati della testata
const TRectype rec = _rel->curr();
const char tipocf = rec.get_char(CLIFOGIAC_TIPOCF);
const long codcf = rec.get_long(CLIFOGIAC_CODCF);
const TString80 codart = rec.get(CLIFOGIAC_CODART);
const TCodice_articolo codart = rec.get(CLIFOGIAC_CODART);
const int annoes = rec.get_int(CLIFOGIAC_ANNOES);
return remove_giacenze(tipocf, codcf, codart, annoes) > 0;
@ -496,9 +497,7 @@ bool TClifo_giac::user_create()
const bool gestmag = _msk->magazzini().gestmag();
if (!gestmag)
{
return error_box(TR("Per utilizzare questo programma e' NECESSARIO attivare la Gestione del magazzino!"));
}
return error_box(TR("Per utilizzare questo programma è NECESSARIO attivare la Gestione del magazzino!"));
return true;
}

View File

@ -1,6 +1,6 @@
#include <xvt.h>
// Modulo di gestione movimenti
// Modulo di gestione movimenti e saldi
#include "mg1.h"
int main(int argc, char** argv)

View File

@ -66,8 +66,8 @@ void TApp_rebuildbalances::main_loop()
while (m.run()==K_ENTER)
{
if (!rebuild_balances(m.get_int(F_ANNOES)))
warning_box(TR("A causa degli errori riscontrati i saldi di magazzino\npotrebbero non essere stati del tutto aggiornati.\n"
"Procedere ad una nuova operazione di ''Ricostruzione saldi''"));
warning_box(TR("A causa degli errori riscontrati, i saldi di magazzino potrebbero non essere aggiornati.\n"
"Si consiglia di procedere ad una nuova operazione di \"Ricostruzione saldi\""));
}
}

View File

@ -162,7 +162,7 @@ bool TForm_inventario::valorizzazione(TForm_item &cf, TTipo_valorizz t)
case valorizz_costmediopond:
{
const TString4 codmag = magrec.get(MAG_CODMAG).left(3);
const TString80 livello(magrec.get(MAG_LIVELLO));
const TString16 livello(magrec.get(MAG_LIVELLO));
const TPrice prezzo(curr_art().costo_mediopond(annoes,codmag,livello));
p = prezzo.get_num();
}
@ -170,7 +170,7 @@ bool TForm_inventario::valorizzazione(TForm_item &cf, TTipo_valorizz t)
case valorizz_costmedio:
{
const TString4 codmag = magrec.get(MAG_CODMAG).left(3);
const TString80 livello(magrec.get(MAG_LIVELLO));
const TString16 livello(magrec.get(MAG_LIVELLO));
const TPrice prezzo(curr_art().costo_medio(annoes,codmag,livello));
p = prezzo.get_num();
}
@ -178,28 +178,28 @@ bool TForm_inventario::valorizzazione(TForm_item &cf, TTipo_valorizz t)
case valorizz_LIFO:
{
const TString4 codmag = magrec.get(MAG_CODMAG).left(3);
const TString80 livello(magrec.get(MAG_LIVELLO));
const TString16 livello(magrec.get(MAG_LIVELLO));
p = curr_art().LIFO(annoes,codmag,livello, false,_valcomp);
}
break;
case valorizz_FIFO:
{
const TString4 codmag = magrec.get(MAG_CODMAG).left(3);
const TString80 livello(magrec.get(MAG_LIVELLO));
const TString16 livello(magrec.get(MAG_LIVELLO));
p = curr_art().FIFO(annoes,codmag,livello, false,_valcomp);
}
break;
case valorizz_LIFOa:
{
const TString4 codmag = magrec.get(MAG_CODMAG).left(3);
const TString80 livello(magrec.get(MAG_LIVELLO));
const TString16 livello(magrec.get(MAG_LIVELLO));
p = curr_art().LIFO_annuale(annoes,codmag,livello, false, _valcomp);
}
break;
case valorizz_FIFOa:
{
const TString4 codmag = magrec.get(MAG_CODMAG).left(3);
const TString80 livello(magrec.get(MAG_LIVELLO));
const TString16 livello(magrec.get(MAG_LIVELLO));
p = curr_art().FIFO_annuale(annoes,codmag,livello, false, _valcomp);
}
break;

View File

@ -209,7 +209,7 @@ public:
bool riporta_saldi(const char * oldes, const char* newes, const TTipo_valorizz tipo,
const char * catven ,const char * codlist, bool save_to_disk = true) { return riporta_saldi(atoi(oldes), atoi(newes), tipo, catven, codlist, save_to_disk);}
bool azzera_saldi(int codes, int codespre, bool save_to_disk = true);
bool azzera_saldi(const char* codes, bool save_to_disk = true) { return azzera_saldi(atoi(codes), save_to_disk); }
//bool azzera_saldi(const char* codes, bool save_to_disk = true);
// valorizzazioni
real ultimo_costo(int annoes) const;

View File

@ -967,7 +967,8 @@ TMagazzini::TMagazzini() :
TMagazzini::~TMagazzini()
{
if (_mgconfig) delete _mgconfig;
if (_mgconfig)
delete _mgconfig;
}
void TMagazzini::init()
@ -1009,34 +1010,30 @@ bool TMagazzini::gestmag(bool verbose) const
{
test_firm() ;
if (!_gestmag && verbose)
warning_box("La ditta corrente non gestisce il magazzino");
warning_box(TR("La ditta corrente non gestisce il magazzino"));
return _gestmag;
}
bool TMagazzini::gestdep() const
{
test_firm() ; return _gestdep;
}
bool TMagazzini::gestubi_man() const
{
test_firm() ; return _gestubi=='M';
}
bool TMagazzini::gestubi_tab() const
{
test_firm() ; return _gestubi=='T';
}
bool TMagazzini::gestmultimag() const
{
test_firm() ; return _gestmultimag;
}
const char * add_magcode(TString & str, const char * m)
bool TMagazzini::gestdep() const
{ test_firm() ; return _gestdep; }
bool TMagazzini::gestubi_man() const
{ test_firm() ; return _gestubi=='M'; }
bool TMagazzini::gestubi_tab() const
{ test_firm() ; return _gestubi=='T'; }
bool TMagazzini::gestmultimag() const
{ test_firm() ; return _gestmultimag; }
const char* add_magcode(TString& str, const char* m)
{
str = m;
str.rpad(3);
return str;
}
const char * add_depcode(TString & str, const char * d)
const char* add_depcode(TString& str, const char* d)
{
str << d;
return str.trim();
@ -1046,8 +1043,8 @@ bool riporta_ordinato()
{
static bool __riporta_ordinato = FALSE;
static long __firm = -883;
const long cur_firm = prefix().get_codditta();
if (__firm != cur_firm)
{
__firm = cur_firm;
@ -1056,12 +1053,12 @@ bool riporta_ordinato()
return __riporta_ordinato;
}
const char * get_magcode(const TString & codmagdep)
const char* get_magcode(const TString& codmagdep)
{
return codmagdep.left(3);
}
const char * get_depcode(const TString & codmagdep)
const char* get_depcode(const TString& codmagdep)
{
return codmagdep.mid(3);
}

View File

@ -646,7 +646,7 @@ bool TArticolo_giacenza::azzera_saldi(int codes, int codespre, bool save_to_disk
if (codespre > 0 && oldmag.rows() > 0)
{
const TString80 liv(mag.get(MAG_LIVELLO));
const TString16 liv(mag.get(MAG_LIVELLO));
const int row = find_mag(oldmag, mag.get(MAG_CODMAG), liv);
if (row >= 0)
{
@ -669,6 +669,9 @@ bool TArticolo_giacenza::azzera_saldi(int codes, int codespre, bool save_to_disk
return ok;
}
//bool azzera_saldi(const char* codes, bool save_to_disk = true)
//{ return azzera_saldi(atoi(codes), save_to_disk); }
bool TArticolo_giacenza::riporta_saldi(int oldes, int newes, const TTipo_valorizz tipo,
const char* catven, const char* codlis, bool save_to_disk)
{
@ -1602,11 +1605,11 @@ void TArticolo_giacenza_data::al(const TDate& data, const char* codmag, const ch
const long items = cur.items();
cur.freeze();
TProgind* pi = NULL;
if (items >= 10)
TProgress_monitor* pi = NULL;
if (items >= 16)
{
TString80 str; str << TR("Calcolo giacenza articolo ") << codice();
pi = new TProgind(items, str, false, true);
pi = new TProgress_monitor(items, str, false);
}
/*
TMov_mag* p_movmag = new TMov_mag;
@ -1618,8 +1621,6 @@ void TArticolo_giacenza_data::al(const TDate& data, const char* codmag, const ch
for (cur = 0; cur.pos() < items; ++cur)
{
if (pi && !pi->addstatus(1))
break;
const TDate datacomp = rel.curr(LF_MOVMAG).get_date(MOVMAG_DATACOMP);
const TString& codart = rmovmag.get(RMOVMAG_CODART);
if (codart == codice() && datacomp >= inizio && datacomp <= data)
@ -1646,6 +1647,9 @@ void TArticolo_giacenza_data::al(const TDate& data, const char* codmag, const ch
movmag.update_balances(rec, nrig);
}
}
if (pi && !pi->add_status())
break;
}
if (pi) delete pi;

View File

@ -882,13 +882,13 @@ struct TBalance_params
int codes;
int codesprec;
TTipo_valorizz tipov;
const char * catv;
const char * codl;
const char* catv;
const char* codl;
};
HIDDEN bool reset_giac(const TRelation& rel, void* pJolly)
{
TBalance_params & p = *((TBalance_params *)pJolly);
TBalance_params& p = *((TBalance_params *)pJolly);
TArticolo_giacenza articolo(rel.curr());
if (p.zero_giac)
articolo.azzera_saldi(p.codes, p.codesprec);
@ -897,7 +897,7 @@ HIDDEN bool reset_giac(const TRelation& rel, void* pJolly)
return true;
}
void reset_clifogiac(TRectype & rec, const TRectype & oldrec, bool closed)
void reset_clifogiac(TRectype& rec, const TRectype& oldrec, bool closed)
{
if (!oldrec.empty())
{
@ -929,18 +929,20 @@ void reset_clifogiac(TRectype & rec, const TRectype & oldrec, bool closed)
rec.zero(CLIFOGIAC_ORDC);
rec.zero(CLIFOGIAC_VALORDC);
}
if (closed)
//if (closed) // Gestione che pare insensata
{
rec.put(CLIFOGIAC_DOTOD, oldrec.get(CLIFOGIAC_DOTOD));
rec.put(CLIFOGIAC_DOTIN, oldrec.get(CLIFOGIAC_DOTIN));
rec.put(CLIFOGIAC_DOTTM, oldrec.get(CLIFOGIAC_DOTTM));
}
/*
else
{
rec.zero(CLIFOGIAC_DOTOD);
rec.zero(CLIFOGIAC_DOTIN);
rec.zero(CLIFOGIAC_DOTTM);
}
*/
}
else
{
@ -989,20 +991,43 @@ void update_clifogiac(TRectype & rec, const TRectype & oldrec)
HIDDEN bool rel_reset_clifogiac(const TRelation& rel, void* pJolly)
{
TRectype & rec = rel.curr();
TBalance_params & p = *((TBalance_params *)pJolly);
TRectype newrec(rec);
const TBalance_params& p = *((TBalance_params *)pJolly);
newrec.put(CLIFOGIAC_ANNOES, p.codes);
if (newrec.read(rel.lfile()) != NOERR)
TLocalisamfile& cg = rel.lfile();
const TRectype oldrec = cg.curr(); // DON'T USE const TRectype& ON READING FILE!
CHECK(oldrec.get_int(CLIFOGIAC_ANNOES) == p.codesprec, "Anno esercizio non valido");
TRectype& newrec = cg.curr();
newrec.put(CLIFOGIAC_ANNOES, p.codes); // cambio da vecchio a nuovo anno
if (cg.read() != NOERR) // verifica se record esiste già
{
newrec = rec;
newrec = oldrec;
newrec.put(CLIFOGIAC_ANNOES, p.codes);
}
reset_clifogiac(newrec, rec, p.closed);
return newrec.write_rewrite(rel.lfile()) == NOERR;
reset_clifogiac(newrec, oldrec, p.closed);
return cg.write_rewrite() == NOERR;
}
HIDDEN bool rel_reset_newclifogiac(const TRelation& rel, void* pJolly)
{
const TBalance_params& p = *((TBalance_params *)pJolly);
if (p.codesprec > 0) // Always!
{
TLocalisamfile& cg = rel.lfile();
TRectype newrec = cg.curr();
CHECK(newrec.get_int(CLIFOGIAC_ANNOES) == p.codes, "Anno esercizio non valido");
cg.put(CLIFOGIAC_ANNOES, p.codesprec); // cambio da nuovo a vecchio anno
if (cg.read() != NOERR) // verifica se prima non esisteva allora azzero anno nuovo
{
cg.zero();
reset_clifogiac(newrec, cg.curr(), p.closed);
newrec.rewrite(cg);
}
}
return true;
}
bool recalc_mov(const TRelation& rel, void* pJolly)
{
TMov_mag & mov_rec = (TMov_mag &) rel.lfile().curr();
@ -1016,7 +1041,6 @@ bool rebuild_balances(int codes, const TTipo_valorizz tipo_valorizz,
const char* catven, const char* codlis)
{
TSystemisamfile a(LF_MOVMAG);
if (a.open(_excllock) != NOERR)
return false;
@ -1032,7 +1056,6 @@ bool rebuild_balances(int codes, const TTipo_valorizz tipo_valorizz,
p.tipov = tipo_valorizz;
TString msg;
{
// azzera tutte giacenze (ciclo sulle giacenze)
TRelation anamag_rel(LF_ANAMAG);
@ -1045,14 +1068,17 @@ bool rebuild_balances(int codes, const TTipo_valorizz tipo_valorizz,
if (p.codesprec > 0)
{
TString16 filter;
filter << CLIFOGIAC_ANNOES << "==" << p.codesprec; // Copia giacenze da anno precedente ad anno corrente
TRelation clifogiac_rel(LF_CLIFOGIAC);
TCursor c(&clifogiac_rel, filter);
TRectype filter = clifogiac_rel.curr();
filter.put(CLIFOGIAC_ANNOES, p.codesprec); // Scandisce anno precedente
TCursor c(&clifogiac_rel, "", 1, &filter, &filter); // ANNO+CODCF+CODART+NRIGA
msg.format(FR("Ricostruzione saldi esercizio %04d: azzeramento giacenze clienti..."), codes);
c.scan(rel_reset_clifogiac, (void*)&p, msg);
msg.format(FR("Ricostruzione saldi esercizio %04d: azzeramento giacenze clienti..."), codes);
c.scan(rel_reset_clifogiac, (void*)&p, msg);
filter.put(CLIFOGIAC_ANNOES, p.codes); // Scandisce anno corrente
c.setregion(filter, filter);
msg.format(FR("Ricostruzione saldi esercizio %04d: ricalcolo dotazione iniziale..."), codes);
c.scan(rel_reset_newclifogiac, (void*)&p, msg);
}
// Compattamento giacenze dopo cancellazione
@ -1060,9 +1086,16 @@ bool rebuild_balances(int codes, const TTipo_valorizz tipo_valorizz,
//prefix().close_closeable_isamfiles(); // Altrimenti segnala -69 durante la pack
TSystemisamfile mag(LF_MAG);
mag.pack(true, true);
}
/* Mi da sempre errore di compattamento
if (p.codesprec > 0)
{
TSystemisamfile clifogiac(LF_CLIFOGIAC);
clifogiac.pack(true, true);
}
*/
}
// ricostruisce i saldi (ciclo sui movimenti)
bool ok = true;
{