- Uso dei nuovi oggetti gestione codice a Livelli in libreria
- unità di misura unica per sheet giac stomag - correzione sheet UM: prima riga sempre f.c. =1 disabled - controllo consistenza campi di giacenza git-svn-id: svn://10.65.10.50/trunk@4908 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
5a65ba992e
commit
2fa904a2c6
217
ve/ve2400.cpp
217
ve/ve2400.cpp
@ -13,12 +13,10 @@
|
||||
class TMask_anamag: public TMask {
|
||||
TRelation * _rel; // relazione principale
|
||||
|
||||
TMag_livelli * livelli_giac;// oggetto handler per i livelli di giacenza
|
||||
TMag_livelli * livelli_art;// oggetto handler per i livelli di anagraficca
|
||||
TMetachar * metac;
|
||||
TCodgiac_livelli * livelli_giac;// oggetto handler per i livelli di giacenza
|
||||
TCodart_livelli * livelli_art;// oggetto handler per i livelli di anagraficca
|
||||
int last_annogiac;
|
||||
int last_annosto;
|
||||
TString16 um_principale;
|
||||
|
||||
static bool handle_codice(TMask_field &, KEY); // handler del campo codice articolo
|
||||
static bool handle_livart(TMask_field &, KEY); // handler dei campi codice articolo (livelli)
|
||||
@ -28,6 +26,7 @@ class TMask_anamag: public TMask {
|
||||
static bool notify_sheet_um(TSheet_field & s, int r, KEY k); // notify dello sheet delle unità di misura
|
||||
static bool handle_sheet_deslin(TMask_field &, KEY); // handler dello sheet delle descrizioni in lingua
|
||||
static bool handle_sheet_cod(TMask_field &, KEY); // handler dello sheet dei codici alternativi
|
||||
static bool notify_sheet_giac(TSheet_field & s, int r, KEY k); // notify delle giacenze
|
||||
static bool handle_sheetgiac(TMask_field &, KEY); // handler dello sheet giacenze
|
||||
static bool notify_sheet_sto(TSheet_field & s, int r, KEY k); // notify dello storico
|
||||
static bool handle_sheetstomag(TMask_field &, KEY); // handler dello sheet storico giacenze
|
||||
@ -41,12 +40,13 @@ class TMask_anamag: public TMask {
|
||||
|
||||
void clear_info_sto();
|
||||
bool info_sto_dirty();
|
||||
void converti_storico(TString newum);
|
||||
void ricalcola_giacenze(TString newum,real fc);
|
||||
int add_totali_storico(TString &codmag);
|
||||
bool remove_totali_storico(TString & codmag);
|
||||
void update_totali_storico(TString & codmag);
|
||||
bool check_totali_storico();
|
||||
public:
|
||||
TString16 um_principale;
|
||||
TEsercizi_contabili esercizi_contabili;
|
||||
|
||||
TMask_anamag(TRelation * rel,bool mg_autorized);
|
||||
@ -58,40 +58,39 @@ public:
|
||||
TMask_anamag::TMask_anamag(TRelation * rel,bool mg_autorized) : TMask("ve2400")
|
||||
{
|
||||
_rel=rel;
|
||||
// imposta il riconoscimento dei caratteri del formato dell'ultima parte dell'articolo
|
||||
TString80 format("");
|
||||
TTable _tabfca("FCA");
|
||||
if (_tabfca.last()==NOERR) {
|
||||
format = _tabfca.get("S1");
|
||||
}
|
||||
metac = new TMetachar(format);
|
||||
// imposta il puntatore al gestore livelli giacenze
|
||||
livelli_giac= new TMag_livelli("FCG");
|
||||
livelli_art= new TMag_livelli("FCA");
|
||||
livelli_giac= new TCodgiac_livelli();
|
||||
livelli_art= new TCodart_livelli();
|
||||
// imposta il valore dell'anno per le giacenze
|
||||
last_annogiac=-1;
|
||||
last_annosto=-1;
|
||||
|
||||
// maschera
|
||||
set_handler(F_ANNO, handle_anno);
|
||||
set_handler(F_STOANNO, handle_stoanno);
|
||||
// sheet unità di misura
|
||||
set_handler(F_SHEETUM, handle_sheet_um);
|
||||
((TSheet_field &)field(F_SHEETUM)).set_notify(notify_sheet_um);
|
||||
TSheet_field &f= (TSheet_field &)field(F_SHEETUM);
|
||||
f.set_notify(notify_sheet_um);
|
||||
TMask &fm= f.sheet_mask();
|
||||
fm.set_handler(FS_CODUM, handle_sheet_um_um);
|
||||
fm.set_handler(FS_PREZZO, handle_sheet_um_price);
|
||||
fm.set_handler(FS_PREZZO_LORDO, handle_sheet_um_price);
|
||||
// sheet descrizioni in lingua
|
||||
set_handler(F_SHEETDESLIN, handle_sheet_deslin);
|
||||
// sheet codici corrispondenti
|
||||
set_handler(F_SHEETCOD, handle_sheet_cod);
|
||||
// sheet giacenze
|
||||
set_handler(F_SHEETGIAC, handle_sheetgiac);
|
||||
((TSheet_field &)field(F_SHEETGIAC)).set_notify(notify_sheet_giac);
|
||||
((TSheet_field &)field(F_SHEETGIAC)).set_userget(sheetgiac_get);
|
||||
((TSheet_field &)field(F_SHEETGIAC)).set_userput(sheetgiac_put);
|
||||
// sheet storico
|
||||
set_handler(F_SHEETSTOMAG, handle_sheetstomag);
|
||||
((TSheet_field &)field(F_SHEETSTOMAG)).set_notify(notify_sheet_sto);
|
||||
((TSheet_field &)field(F_SHEETSTOMAG)).set_userget(sheetsto_get);
|
||||
((TSheet_field &)field(F_SHEETSTOMAG)).set_userput(sheetsto_put);
|
||||
|
||||
|
||||
TSheet_field &f= (TSheet_field &)field(F_SHEETUM);
|
||||
TMask &fm= f.sheet_mask();
|
||||
fm.set_handler(FS_CODUM, handle_sheet_um_um);
|
||||
fm.set_handler(FS_PREZZO, handle_sheet_um_price);
|
||||
fm.set_handler(FS_PREZZO_LORDO, handle_sheet_um_price);
|
||||
|
||||
// ***************************************************
|
||||
// ABILITAZIONI PARAMETRICHE
|
||||
@ -107,14 +106,7 @@ TMask_anamag::TMask_anamag(TRelation * rel,bool mg_autorized) : TMask("ve2400")
|
||||
// disabilita le colonne quando non sono utilizzati i livelli di giacenza
|
||||
for (int i=0; i<4; i++)
|
||||
{
|
||||
if (mgconfig.get_bool("GESLIVGIAC") && livelli_giac->enabled(1+i)) {
|
||||
fld_giac.sheet_mask().field(F_LIV1+i).show();
|
||||
fld_giac.set_column_header(fld_giac.cid2index(F_LIV1+i),livelli_giac->name(1+i));
|
||||
fld_giac.sheet_mask().field(F_LIV1+i).set_prompt(livelli_giac->name(1+i));
|
||||
} else {
|
||||
fld_giac.sheet_mask().field(F_LIV1+i).hide();
|
||||
fld_giac.delete_column(fld_giac.cid2index(F_LIV1+i));
|
||||
}
|
||||
livelli_giac->set_sheetcolumn(fld_giac,F_LIV1+i,i+1);
|
||||
}
|
||||
// disabilita la colonna numero distinte
|
||||
if (FALSE) {
|
||||
@ -160,9 +152,9 @@ TMask_anamag::TMask_anamag(TRelation * rel,bool mg_autorized) : TMask("ve2400")
|
||||
set_handler(F_CODART, handle_codice);
|
||||
for (int i=0; i<9; i++)
|
||||
field(F_LIVART1+i).hide();
|
||||
} else
|
||||
if (!livelli_art->enabled(2))
|
||||
// .. nasconde il pulsante dei livelli
|
||||
field(F_GCA).hide();
|
||||
} else
|
||||
field(F_GCA).hide();
|
||||
}
|
||||
}
|
||||
@ -183,8 +175,9 @@ void TMask_anamag::sheetsto_put(TSheet_field &sheet_sto, int item)
|
||||
|
||||
void TMask_anamag::sheetsto_get(TSheet_field &sheet_sto, int item)
|
||||
{
|
||||
if (item>1) return;
|
||||
TMask_anamag & m=(TMask_anamag &) sheet_sto.mask();
|
||||
|
||||
if (item>1) return;
|
||||
TRectype & first_rec=sheet_sto.record()->row(1,TRUE);
|
||||
m.set(F_STOULTCOS1, first_rec.get_real(STOMAG_ULTCOS1));
|
||||
m.set(F_STOULTCOS2, first_rec.get_real(STOMAG_ULTCOS2 ));
|
||||
@ -252,8 +245,8 @@ bool TMask_anamag::handle_codice(TMask_field &fld, KEY k)
|
||||
fld.error_box("Il codice articolo non può essere vuoto");
|
||||
return(FALSE);
|
||||
}
|
||||
if (!mask.metac->recognized(codepart)) {
|
||||
fld.error_box("Il codice articolo non corrisponde al formato previsto \n('%s' ?? '%s')",(const char *)codepart,(const char *)mask.metac->language());
|
||||
if (!mask.livelli_art->fit_to_format(codepart)) {
|
||||
fld.error_box("Il codice articolo non corrisponde al formato previsto \n('%s' ?? '%s')",(const char *)codepart,(const char *)mask.livelli_art->code_format());
|
||||
return(FALSE);
|
||||
}
|
||||
}
|
||||
@ -362,30 +355,49 @@ bool TMask_anamag::handle_sheet_um(TMask_field &fld, KEY k)
|
||||
TAssoc_array v; // istanzia l'hash table per il controllo di univocità
|
||||
for (int i= 0; i<items; i++)
|
||||
{
|
||||
const TString16 um(f.cell(i,0));
|
||||
|
||||
if (um.empty())
|
||||
//return error_box("Le unita' di misura non possono essere vuote");
|
||||
const TString16 um(f.cell(i,f.cid2index(FS_CODUM)));
|
||||
if (um.blank())
|
||||
;
|
||||
//?!?!?! return error_box("Le unita' di misura non possono essere vuote");
|
||||
// aggiunge all'hash table l'elemento della riga corrente e controlla che non esista già
|
||||
if (v.add(um))
|
||||
return error_box("Le unità di misura devono essere diverse tra loro"); // aggiunge all'hash table l'elemento 0 (primo) della riga corrente e controlla che non esista già
|
||||
return error_box("Le unità di misura devono essere diverse tra loro");
|
||||
}
|
||||
if (!m.um_principale.blank() && m.um_principale!=f.cell(0,f.cid2index(FS_CODUM))) {
|
||||
for (int i= 0; i<f.items(); i++)
|
||||
{
|
||||
if (m.um_principale==f.cell(i,f.cid2index(FS_CODUM)))
|
||||
break;
|
||||
}
|
||||
if (i>=f.items()) {
|
||||
return error_box("L'unità di misura %s deve essere presente in tabella",(const char *)m.um_principale);
|
||||
} else {
|
||||
m.um_principale=f.cell(0,f.cid2index(FS_CODUM));
|
||||
}
|
||||
m.ricalcola_giacenze(f.cell(0,f.cid2index(FS_CODUM)),f.cell(i,f.cid2index(FS_FCUM)));
|
||||
}
|
||||
}
|
||||
} else if (k==K_TAB) {
|
||||
if (m.um_principale!=f.cell(0,0)) {
|
||||
m.converti_storico(f.cell(0,0));
|
||||
m.um_principale=f.cell(0,0);
|
||||
}
|
||||
} else if (k==K_SPACE) {
|
||||
m.um_principale=f.cell(0,0);
|
||||
m.um_principale=f.cell(0,f.cid2index(FS_CODUM));
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool TMask_anamag::notify_sheet_um(TSheet_field &s, int r, KEY k)
|
||||
bool TMask_anamag::notify_sheet_um(TSheet_field &fld_um, int r, KEY k)
|
||||
{
|
||||
if (k == K_TAB)
|
||||
s.sheet_mask().enable(DLG_DELREC, r > 0);
|
||||
if (k == K_TAB) {
|
||||
fld_um.sheet_mask().enable(DLG_DELREC, r > 0);
|
||||
if (r == 0) {
|
||||
if (fld_um.items() == 0)
|
||||
((TToken_string &)fld_um.row(0)) = "|1"; // aggiunge una riga allo sheet
|
||||
else
|
||||
((TToken_string &)fld_um.row(0)).add("1",fld_um.cid2index(FS_FCUM)); // forza la prima unita' di misura a 1
|
||||
fld_um.disable_cell(0, fld_um.cid2index(FS_FCUM)); // mette in sola lettura il secondo campo della prima riga (il fattore di conversione della prima U.M. è fisso a 1)
|
||||
fld_um.force_update(0);
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -405,7 +417,7 @@ bool TMask_anamag::handle_sheet_deslin(TMask_field &fld, KEY k)
|
||||
{
|
||||
const TString16 codlin(f.cell(i,0));
|
||||
|
||||
if (codlin.empty())
|
||||
if (codlin.blank())
|
||||
return error_box("I codici lingua non possono essere vuoti");
|
||||
if (v.add(codlin))
|
||||
return error_box("I codici lingua devono essere diversi tra loro"); // aggiunge all'hash table l'elemento 0 (primo) della riga corrente e controlla che non esista già
|
||||
@ -432,7 +444,7 @@ bool TMask_anamag::handle_sheet_cod(TMask_field &fld, KEY k)
|
||||
{
|
||||
const TString80 codart(f.cell(i,0));
|
||||
|
||||
if (codart.empty())
|
||||
if (codart.blank())
|
||||
return error_box("I codici alternativi non possono essere vuoti");
|
||||
if (v.add(codart))
|
||||
return error_box("I codici alternativi devono essere diversi tra loro e dal codice dell'articolo"); // aggiunge all'hash table l'elemento 0 (primo) della riga corrente e controlla che non esista già
|
||||
@ -463,12 +475,13 @@ bool TMask_anamag::handle_sheetgiac(TMask_field &fld, KEY k)
|
||||
codgiac << f.cell(i,F_LIV3-FIRST_FIELD);
|
||||
codgiac << f.cell(i,F_LIV4-FIRST_FIELD);
|
||||
|
||||
if (codgiac.empty())
|
||||
if (codgiac.blank())
|
||||
return error_box("I codici delle giacenze non possono essere vuoti");
|
||||
// aggiunge all'hash table l'elemento 0 (primo) della riga corrente e controlla che non esista già
|
||||
if (v.add(codgiac))
|
||||
return error_box("Esistono due righe con lo stesso codice di giacenza");
|
||||
// ordina le righe per livello+codmag
|
||||
if (!notify_sheet_giac(f, i, K_ENTER))
|
||||
return FALSE;
|
||||
}
|
||||
// ordina le righe per livello+codmag
|
||||
// f.rows_array().sort();
|
||||
@ -511,18 +524,16 @@ int TMask_anamag::add_totali_storico(TString & codmag)
|
||||
s.insert(r,FALSE);
|
||||
s.row(r ).add(SIMBOLO_TOTALI,s.cid2index(F_STOTIPORIGA));
|
||||
s.row(r ).add(codmag,s.cid2index(F_STOCODMAG));
|
||||
s.row(r ).add("----",s.cid2index(F_STOANNOES));
|
||||
s.row(r ).add(um_principale,s.cid2index(F_STOUM));
|
||||
s.row(r ).add("Totale",s.cid2index(F_STOANNOES));
|
||||
s.disable_cell(r,-1);
|
||||
|
||||
s.insert(r+1,FALSE);
|
||||
s.row(r+1).add(SIMBOLO_TOTALI,s.cid2index(F_STOTIPORIGA));
|
||||
s.row(r+1).add(codmag,s.cid2index(F_STOCODMAG));
|
||||
s.row(r+1).add("",s.cid2index(F_STOANNOES));
|
||||
s.row(r+1).add(um_principale,s.cid2index(F_STOUM));
|
||||
s.row(r+1).add("Rim.in",s.cid2index(F_STOANNOES));
|
||||
s.row(r+1).add(totq.string(),s.cid2index(F_STOQUANT));
|
||||
s.row(r+1).add(totval.string(),s.cid2index(F_STOVAL));
|
||||
s.disable_cell(r+1,-1);
|
||||
s.force_update(r+1);
|
||||
}
|
||||
update_totali_storico(codmag);
|
||||
return r;
|
||||
@ -589,14 +600,46 @@ bool TMask_anamag::check_totali_storico()
|
||||
for (; r< s.items() && *s.cell(r,s.cid2index(F_STOTIPORIGA))!=SIMBOLO_TOTALI; r++) ;
|
||||
real totq1(s.cell(r,s.cid2index(F_STOQUANT))),totq2(s.cell(r+1,s.cid2index(F_STOQUANT)));
|
||||
if (totq1!=totq2)
|
||||
return yesno_box("La somma delle composizioni dello storico non corrisponde alla rimanenza\n Proseguo ugualmente ?");
|
||||
if (!yesno_box("La somma delle composizioni dello storico \nper il magazzino %s non corrisponde \nalla rimanenza dell'esercizio successivo\n Proseguo ugualmente ?",
|
||||
(const char *)s.cell(r,s.cid2index(F_STOCODMAG))))
|
||||
return FALSE;
|
||||
real totval1(s.cell(r,s.cid2index(F_STOVAL))),totval2(s.cell(r+1,s.cid2index(F_STOVAL)));
|
||||
if (totval1!=totval2)
|
||||
return yesno_box("La somma del valore delle composizioni dello storico non corrisponde al valore della rimanenza\n Proseguo ugualmente ?");
|
||||
return yesno_box("La somma del valore delle composizioni dello storico \n per il magazzino %s non corrisponde \nal valore della rimanenza dell'esercizio successivo\n Proseguo ugualmente ?",
|
||||
(const char *)s.cell(r,s.cid2index(F_STOCODMAG)));
|
||||
r++;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
bool TMask_anamag::notify_sheet_giac(TSheet_field &f, int i, KEY k)
|
||||
{
|
||||
switch (k)
|
||||
{
|
||||
case (K_ENTER): // fine modifica
|
||||
real ck(f.cell(i,f.cid2index(F_RIM)));
|
||||
ck+=f.cell(i,f.cid2index(F_ACQ));
|
||||
ck+=f.cell(i,f.cid2index(F_ENTR));
|
||||
ck-=f.cell(i,f.cid2index(F_VEN));
|
||||
ck-=f.cell(i,f.cid2index(F_USC));
|
||||
ck-=f.cell(i,f.cid2index(F_ACL));
|
||||
ck+=f.cell(i,f.cid2index(F_INCL));
|
||||
ck-=f.cell(i,f.cid2index(F_INPRODF));
|
||||
ck+=f.cell(i,f.cid2index(F_INPRODC));
|
||||
ck-=f.cell(i,f.cid2index(F_SCARTI));
|
||||
|
||||
ck-=f.cell(i,f.cid2index(F_GIAC));
|
||||
if (!ck.is_zero())
|
||||
{
|
||||
f.error_box("La giacenza deve essere pari a RIM+(ACQ+ENTR)-(VEN+USC)-(ACL-INCL)-(PRODF-PRODC) - SCARTI)");
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
bool TMask_anamag::notify_sheet_sto(TSheet_field &s, int r, KEY k)
|
||||
{
|
||||
static TString16 oldcodmag,newcodmag,oldanno,newanno;
|
||||
@ -652,7 +695,6 @@ bool TMask_anamag::notify_sheet_sto(TSheet_field &s, int r, KEY k)
|
||||
}
|
||||
m.add_totali_storico(newcodmag);
|
||||
TSheet_field & s_um=(TSheet_field & )s.mask().field(F_SHEETUM);
|
||||
s.row(r).add(m.um_principale,s.cid2index(F_STOUM));
|
||||
s.force_update();
|
||||
}
|
||||
break;
|
||||
@ -680,11 +722,15 @@ bool TMask_anamag::handle_sheetstomag(TMask_field &fld, KEY k)
|
||||
{
|
||||
if (*f.cell(i,f.cid2index(F_STOTIPORIGA))!=SIMBOLO_TOTALI)
|
||||
{
|
||||
TString codmg(f.cell(i,f.cid2index(F_STOCODMAG)));
|
||||
TString codeser(f.cell(i,f.cid2index(F_STOANNOES)));
|
||||
if (codeser.empty())
|
||||
if (codmg.blank())
|
||||
return error_box("Il codice del magazzino non può essere vuoto");
|
||||
if (codeser.blank())
|
||||
return error_box("I codici degli esercizi non possono essere vuoti");
|
||||
// aggiunge all'hash table l'elemento 0 (primo) della riga corrente e controlla che non esista già
|
||||
if (v.add(codeser))
|
||||
codmg.overwrite(codeser,3);
|
||||
if (v.add(codmg))
|
||||
return error_box("La composizione delle rimanenze deve far riferimento a esercizi tutti diversi tra loro");
|
||||
TLocalisamfile stor_aux(LF_STOMAG);
|
||||
|
||||
@ -715,6 +761,7 @@ bool TMask_anamag::handle_sheetstomag(TMask_field &fld, KEY k)
|
||||
TString16 codmag(f.cell(i,f.cid2index(F_STOCODMAG)));
|
||||
i=m.add_totali_storico(codmag)+2;
|
||||
}
|
||||
f.force_update();
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
@ -726,7 +773,7 @@ bool TMask_anamag::handle_sheet_um_um(TMask_field &fld, KEY k)
|
||||
TMask &m = fld.mask(); // prende la maschera d'origine del campo (maschera dello sheet)
|
||||
const TString16 curr_um(fld.get()); // prende il contenuto del campo corrente (unità di misura corrente)
|
||||
|
||||
if (curr_um.not_empty()) // se il codice dell'unità di misura è vuoto non viene fatto alcun calcolo
|
||||
if (!curr_um.blank()) // se il codice dell'unità di misura è vuoto non viene fatto alcun calcolo
|
||||
{
|
||||
TSheet_field *f= m.get_sheet(); // prende lo sheet d'origine della maschera del campo
|
||||
|
||||
@ -762,20 +809,29 @@ bool TMask_anamag::handle_sheet_um_um(TMask_field &fld, KEY k)
|
||||
t.put("CODTAB", first_um);
|
||||
if (t.read() == NOERR)
|
||||
{
|
||||
TString16 first_um_rif(t.get("S7")); // prende l'unità di misura di riferimento dell'unità di misura di rapporto
|
||||
const real first_um_rif_fc(t.get_real("R10")); // prende il suo fattore di conversione
|
||||
if (first_um_rif == rif_um)
|
||||
TString16 rif_first_um(t.get("S7")); // prende l'unità di misura di riferimento dell'unità di misura di rapporto
|
||||
const real rif_fc_first_um(t.get_real("R10")); // prende il suo fattore di conversione
|
||||
|
||||
if (rif_first_um == rif_um)
|
||||
{
|
||||
x /= first_um_rif_fc; // calcola il rapporto tra i fattori di conversione
|
||||
x /= rif_fc_first_um; // calcola il rapporto tra i fattori di conversione
|
||||
x.round(5); // arrotonda il risultato a 5 decimali
|
||||
} else {
|
||||
if (rif_first_um == curr_um) {
|
||||
x= 1/rif_fc_first_um;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (x == ZERO)
|
||||
x = 1.00;
|
||||
m.set(FS_FCUM, x); // il risultato viene scritto nel campo del fattore di conversione
|
||||
}
|
||||
} else {
|
||||
// prima unità di misura
|
||||
f->mask().set(F_UMPRINCIPALE,curr_um);
|
||||
f->mask().set(F_UMPRINCIPALE2,curr_um);
|
||||
}
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
@ -847,9 +903,11 @@ void TMask_anamag::sheetgiac_put(TSheet_field &fld_righe, int item)
|
||||
}
|
||||
}
|
||||
|
||||
void TMask_anamag:: converti_storico(TString newum)
|
||||
// aggiorna il valore delle giacenze del fattore indicato
|
||||
void TMask_anamag:: ricalcola_giacenze(TString newum, real fc)
|
||||
{
|
||||
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@ -859,9 +917,6 @@ class TAnagrafica_magazzino : public TRelation_application {
|
||||
|
||||
TMask_anamag *_msk; // maschera principale
|
||||
TRelation *_rel; // relazione principale di un solo file (anagrafiche di magazzino)
|
||||
//TRecord_array *_linee_rec_um; // record array di accoppiamento delle unità di misura
|
||||
//TRecord_array *_linee_rec_deslin; // record array di accoppiamento delle descrizioni in lingua con il primo sheet
|
||||
//TRecord_array *_linee_rec_cod; // record array di accoppiamento delle codici corrispondenti con il secondo sheet
|
||||
|
||||
virtual bool user_create();
|
||||
virtual bool user_destroy();
|
||||
@ -888,9 +943,6 @@ bool TAnagrafica_magazzino::user_create()
|
||||
// crea l'oggetto per i parametri di livello giacenza
|
||||
// apre la maschera e dispone gli sheet
|
||||
_rel= new TRelation(LF_ANAMAG);
|
||||
//_linee_rec_um= new TRecord_array(LF_UMART, "NRIGA");
|
||||
//_linee_rec_deslin= new TRecord_array(LF_DESLIN, "NRIGA");
|
||||
//_linee_rec_cod= new TRecord_array(LF_CODCORR, "NRIGA");
|
||||
|
||||
_msk= new TMask_anamag(_rel,has_module(MGAUT));
|
||||
|
||||
@ -899,9 +951,6 @@ bool TAnagrafica_magazzino::user_create()
|
||||
|
||||
bool TAnagrafica_magazzino::user_destroy()
|
||||
{
|
||||
//delete _linee_rec_cod;
|
||||
//delete _linee_rec_deslin;
|
||||
//delete _linee_rec_um;
|
||||
|
||||
delete _rel;
|
||||
delete _msk;
|
||||
@ -925,10 +974,14 @@ int TAnagrafica_magazzino::read(TMask& m)
|
||||
if (fld_um.items() == 0)
|
||||
((TToken_string &)fld_um.row(0)) = "|1"; // aggiunge una riga allo sheet
|
||||
else
|
||||
((TToken_string &)fld_um.row(0)).add("1",1); // forza la prima unita' di misura a 1
|
||||
fld_um.disable_cell(0, 1); // mette in sola lettura il secondo campo della prima riga (il fattore di conversione della prima U.M. è fisso a 1)
|
||||
((TToken_string &)fld_um.row(0)).add("1",fld_um.cid2index(FS_FCUM)); // forza la prima unita' di misura a 1
|
||||
fld_um.disable_cell(0, fld_um.cid2index(FS_FCUM)); // mette in sola lettura il secondo campo della prima riga (il fattore di conversione della prima U.M. è fisso a 1)
|
||||
fld_um.force_update(0); // aggiorna lo stato della riga 0
|
||||
|
||||
TString16 um_principale;
|
||||
//((TMask_anamag&)m).um_principale=fld_um.cell(0, fld_um.cid2index(FS_CODUM));
|
||||
um_principale=fld_um.cell(0, fld_um.cid2index(FS_CODUM));
|
||||
m.set(F_UMPRINCIPALE,um_principale);
|
||||
m.set(F_UMPRINCIPALE2,um_principale);
|
||||
} // no errors in TRelation_application::read(m);
|
||||
return err;
|
||||
}
|
||||
|
83
ve/ve2400.h
83
ve/ve2400.h
@ -65,29 +65,33 @@
|
||||
#define F_INDBILA 176
|
||||
#define F_INDBILV 177
|
||||
|
||||
#define H_ANNO 180
|
||||
#define F_ANNO 181
|
||||
#define F_ANNORIF 182
|
||||
#define H_ANNO 180
|
||||
#define F_ANNO 181
|
||||
#define F_ANNORIF 182
|
||||
|
||||
#define F_STOANNO 183
|
||||
#define F_STOANNORIF 184
|
||||
#define F_STOANNO 183
|
||||
#define F_STOANNORIF 184
|
||||
#define F_UMPRINCIPALE 185
|
||||
#define F_UMPRINCIPALE2 186
|
||||
|
||||
#define F_GCA 185
|
||||
#define F_LIVART1 190
|
||||
#define F_LIVART2 191
|
||||
#define F_LIVART3 192
|
||||
#define F_LIVART4 193
|
||||
#define F_LIVART5 194
|
||||
#define F_LIVART6 195
|
||||
#define F_LIVART7 196
|
||||
#define F_LIVART8 197
|
||||
#define F_LIVART9 198
|
||||
#define F_GCA 189
|
||||
#define F_LIVART1 190
|
||||
#define F_LIVART2 191
|
||||
#define F_LIVART3 192
|
||||
#define F_LIVART4 193
|
||||
#define F_LIVART5 194
|
||||
#define F_LIVART6 195
|
||||
#define F_LIVART7 196
|
||||
#define F_LIVART8 197
|
||||
#define F_LIVART9 198
|
||||
#define F_ARTALT 199
|
||||
#define F_DESCRALT 200
|
||||
|
||||
#define F_SHEETUM 200
|
||||
#define F_SHEETDESLIN 201
|
||||
#define F_SHEETCOD 202
|
||||
#define F_SHEETGIAC 203
|
||||
#define F_SHEETSTOMAG 204
|
||||
#define F_SHEETUM 201
|
||||
#define F_SHEETDESLIN 202
|
||||
#define F_SHEETCOD 203
|
||||
#define F_SHEETGIAC 204
|
||||
#define F_SHEETSTOMAG 205
|
||||
|
||||
#define F_STOULTCOS1 210
|
||||
#define F_STOULTCOS2 211
|
||||
@ -97,8 +101,29 @@
|
||||
#define F_STOCODLIST 215
|
||||
#define F_STOPREZZOLIST 216
|
||||
|
||||
#define F_STOTOTALE_RIM 217
|
||||
#define F_STOTOTALE_VAL 218
|
||||
#define F_STOTOTALE_RIM 217
|
||||
#define F_STOTOTALE_VAL 218
|
||||
|
||||
#define F_CODARTPAGE2 250
|
||||
#define F_DESCRPAGE2 251
|
||||
#define F_CODARTPAGE3 252
|
||||
#define F_DESCRPAGE3 253
|
||||
#define F_CODARTPAGE4 254
|
||||
#define F_DESCRPAGE4 255
|
||||
#define F_CODARTPAGE5 256
|
||||
#define F_DESCRPAGE5 257
|
||||
#define F_CODARTPAGE6 258
|
||||
#define F_DESCRPAGE6 259
|
||||
|
||||
|
||||
#define G_CODART 1
|
||||
#define G_DESART 2
|
||||
#define G_GRMERC 3
|
||||
#define G_CATACQ 4
|
||||
#define G_CONACQ 5
|
||||
#define G_CATVEN 6
|
||||
#define G_CONVEN 7
|
||||
#define G_RAGGFISC 8
|
||||
|
||||
// definizioni per l'archivio di misura articoli
|
||||
#define FS_CODUM 101
|
||||
@ -118,12 +143,12 @@
|
||||
#include "ve2400d.h"
|
||||
|
||||
// definizioni per l'archivio storico giacenze
|
||||
#define F_STOTIPORIGA 101
|
||||
#define F_STOCODMAG 102
|
||||
#define F_STOANNOES 103
|
||||
#define F_STOUM 104
|
||||
#define F_STOQUANT 105
|
||||
#define F_STOVAL 106
|
||||
#define F_STOCODART 120
|
||||
#define F_STOTIPORIGA 101
|
||||
#define F_STOCODMAG 102
|
||||
#define F_STOANNOES 103
|
||||
#define F_NOMETOT 203
|
||||
#define F_STOQUANT 104
|
||||
#define F_STOVAL 105
|
||||
#define F_STOCODART 120
|
||||
|
||||
#define SIMBOLO_TOTALI '>'
|
||||
|
Loading…
x
Reference in New Issue
Block a user