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:
parent
643681129b
commit
9abac455f4
@ -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;
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -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\""));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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();
|
||||
|
||||
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);
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
||||
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,8 +1086,15 @@ 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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user