Patch level :10.0
Files correlati : Ricompilazione Demo : [ ] Commento : ancora listini e torelli in corso d'opera git-svn-id: svn://10.65.10.50/trunk@19470 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
0f7d26d364
commit
d01fb5405e
@ -467,6 +467,7 @@ END
|
|||||||
STRING F_L_ARROTONDA 8
|
STRING F_L_ARROTONDA 8
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 15 "Arrotonda "
|
PROMPT 1 15 "Arrotonda "
|
||||||
|
FIELD ARROTONDA
|
||||||
END
|
END
|
||||||
|
|
||||||
TEXT -1
|
TEXT -1
|
||||||
|
@ -168,12 +168,11 @@ BEGIN
|
|||||||
GROUP 2
|
GROUP 2
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_SOTGRMERC 5
|
STRING F_SOTGRMERC 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 20 10 ""
|
PROMPT 20 10 ""
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
USE GMC
|
USE GMC
|
||||||
//SELECT CODTAB[4,5] != ""
|
|
||||||
COPY INPUT F_GRMERC
|
COPY INPUT F_GRMERC
|
||||||
INPUT CODTAB[4,5] F_SOTGRMERC
|
INPUT CODTAB[4,5] F_SOTGRMERC
|
||||||
DISPLAY "Gruppo" CODTAB[1,3]
|
DISPLAY "Gruppo" CODTAB[1,3]
|
||||||
|
148
ve/ve2700.cpp
148
ve/ve2700.cpp
@ -43,7 +43,10 @@ protected:
|
|||||||
void check_all(const bool checked); //checka-dechecka la colonna dei check (on_field)
|
void check_all(const bool checked); //checka-dechecka la colonna dei check (on_field)
|
||||||
void add_art(); //aggiunge un articolo ai listini (on_field)
|
void add_art(); //aggiunge un articolo ai listini (on_field)
|
||||||
void save_listini(); //salva tutte le righe listini (padre e figli) così come sono sullo sheet (on_field)
|
void save_listini(); //salva tutte le righe listini (padre e figli) così come sono sullo sheet (on_field)
|
||||||
|
|
||||||
real get_price(TSheet_field& sf, const int row, const int col) const;
|
real get_price(TSheet_field& sf, const int row, const int col) const;
|
||||||
|
void set_price(TSheet_field& sf, const int row, const int col, real& price);
|
||||||
|
void get_correct_grmerc(TString& grmerc, const bool asterisk) const;
|
||||||
|
|
||||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||||
|
|
||||||
@ -57,7 +60,7 @@ public:
|
|||||||
//metodo per riempire lo sheet dei listini figli con i ricarichi oggi tanto di moda
|
//metodo per riempire lo sheet dei listini figli con i ricarichi oggi tanto di moda
|
||||||
void TAggiorna_listini_edit_mask::fill_ricarichi_children_list()
|
void TAggiorna_listini_edit_mask::fill_ricarichi_children_list()
|
||||||
{
|
{
|
||||||
_curr_grmerc.format("%-3s%-2s", (const char*)get(F_GRMERC),(const char*)get(F_SOTGRMERC));
|
get_correct_grmerc(_curr_grmerc, false);
|
||||||
const TRectype& rec_gmc = cache().get("GMC", _curr_grmerc);
|
const TRectype& rec_gmc = cache().get("GMC", _curr_grmerc);
|
||||||
TToken_string lista_listini(rec_gmc.get("S1"), ';');
|
TToken_string lista_listini(rec_gmc.get("S1"), ';');
|
||||||
//se trova qualcosa nella lista listini collegati al grmerc...
|
//se trova qualcosa nella lista listini collegati al grmerc...
|
||||||
@ -104,7 +107,7 @@ void TAggiorna_listini_edit_mask::fill_ricarichi_children_list()
|
|||||||
void TAggiorna_listini_edit_mask::save_children_list()
|
void TAggiorna_listini_edit_mask::save_children_list()
|
||||||
{
|
{
|
||||||
TString8 grmerc;
|
TString8 grmerc;
|
||||||
grmerc.format("%-3s%-2s", (const char*)get(F_GRMERC),(const char*)get(F_SOTGRMERC));
|
get_correct_grmerc(grmerc, false);
|
||||||
if (grmerc.full())
|
if (grmerc.full())
|
||||||
{
|
{
|
||||||
//cerca sulla tabella GMC il record corrispondente all'attuale GMC
|
//cerca sulla tabella GMC il record corrispondente all'attuale GMC
|
||||||
@ -152,6 +155,21 @@ void TAggiorna_listini_edit_mask::save_children_list()
|
|||||||
const TString& ricarico = riga->get(2);
|
const TString& ricarico = riga->get(2);
|
||||||
chiave.add(ricarico, 2); //setta il ricarico nella cella dello sheet
|
chiave.add(ricarico, 2); //setta il ricarico nella cella dello sheet
|
||||||
ricarichi.add(chiave, i); //lo aggiunge all'array dei ricarichi
|
ricarichi.add(chiave, i); //lo aggiunge all'array dei ricarichi
|
||||||
|
|
||||||
|
//salva il valore dell'arrotondamento sulla testata del listino corrente dello sheet
|
||||||
|
TLocalisamfile condv(LF_CONDV);
|
||||||
|
condv.put(CONDV_TIPO, 'L');
|
||||||
|
condv.put(CONDV_CATVEN, sh_catven);
|
||||||
|
condv.put(CONDV_TIPOCF, "");
|
||||||
|
condv.put(CONDV_CODCF, "");
|
||||||
|
condv.put(CONDV_COD, sh_codlis);
|
||||||
|
int err = condv.read();
|
||||||
|
if (err == NOERR)
|
||||||
|
{
|
||||||
|
condv.put(CONDV_ARROTONDA, riga->get(3));
|
||||||
|
condv.rewrite();
|
||||||
|
}
|
||||||
|
|
||||||
break; //esce perchè non può fare altro
|
break; //esce perchè non può fare altro
|
||||||
}
|
}
|
||||||
} //FOR_EACH_SHEET_ROW_BACK...
|
} //FOR_EACH_SHEET_ROW_BACK...
|
||||||
@ -185,7 +203,7 @@ void TAggiorna_listini_edit_mask::save_children_list()
|
|||||||
|
|
||||||
real TAggiorna_listini_edit_mask::get_price(TSheet_field& sf, const int row, const int col) const
|
real TAggiorna_listini_edit_mask::get_price(TSheet_field& sf, const int row, const int col) const
|
||||||
{
|
{
|
||||||
if (col == sf.cid2index(F_PREZZO))
|
if (col == sf.cid2index(S2_PREZZO))
|
||||||
{
|
{
|
||||||
TString16 str_prezzo = sf.cell(row, col);
|
TString16 str_prezzo = sf.cell(row, col);
|
||||||
str_prezzo.strip(".");
|
str_prezzo.strip(".");
|
||||||
@ -195,12 +213,18 @@ real TAggiorna_listini_edit_mask::get_price(TSheet_field& sf, const int row, con
|
|||||||
return real(sf.cell(row, col));
|
return real(sf.cell(row, col));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TAggiorna_listini_edit_mask::set_price(TSheet_field& sf, const int row, const int col, real& price)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//cerca nello sheet la coppia codart+um che gli viene passata restituendo la posizione della riga ALTA..
|
//cerca nello sheet la coppia codart+um che gli viene passata restituendo la posizione della riga ALTA..
|
||||||
//della coppia di righe sheet interessate (è la riga disabilitata);
|
//della coppia di righe sheet interessate (è la riga disabilitata);
|
||||||
int TAggiorna_listini_edit_mask::find_codart(TSheet_field& sf, const TString& codart, const TString& codum) const
|
int TAggiorna_listini_edit_mask::find_codart(TSheet_field& sf, const TString& codart, const TString& codum) const
|
||||||
{
|
{
|
||||||
//cerca la riga tra quelle esistenti
|
//cerca la riga tra quelle esistenti
|
||||||
const int codart_pos = sf.cid2index(F_CODRIGA);
|
const int codart_pos = sf.cid2index(S2_CODRIGA);
|
||||||
const int codum_pos = codart_pos + 1;
|
const int codum_pos = codart_pos + 1;
|
||||||
|
|
||||||
for (int i = 1; i < sf.items(); i += 2)
|
for (int i = 1; i < sf.items(); i += 2)
|
||||||
@ -224,7 +248,7 @@ int TAggiorna_listini_edit_mask::find_or_add_codart(TSheet_field& sf, const TStr
|
|||||||
|
|
||||||
if (riga < 0)
|
if (riga < 0)
|
||||||
{
|
{
|
||||||
const int codart_pos = sf.cid2index(F_CODRIGA);
|
const int codart_pos = sf.cid2index(S2_CODRIGA);
|
||||||
const int codum_pos = codart_pos + 1;
|
const int codum_pos = codart_pos + 1;
|
||||||
|
|
||||||
//non trova la riga nel padre -> la aggiunge
|
//non trova la riga nel padre -> la aggiunge
|
||||||
@ -269,6 +293,17 @@ int TAggiorna_listini_edit_mask::crea_famiglia_listini(TToken_string& keys_listi
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void TAggiorna_listini_edit_mask::get_correct_grmerc(TString& grmerc, const bool asterisk) const
|
||||||
|
{
|
||||||
|
grmerc.format("%-3s%-2s", (const char*)get(F_GRMERC),(const char*)get(F_SOTGRMERC));
|
||||||
|
grmerc.trim();
|
||||||
|
//se il grmerc non è completo (solo il primo carattere), ci vuole una ricerca tipo..
|
||||||
|
//..jolly; vale anche per il sottogrmerc (non pieno con i 3 caratteri)
|
||||||
|
if (asterisk && grmerc.len() < 5)
|
||||||
|
grmerc << "*";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//riempie lo sheet dei multilistini
|
//riempie lo sheet dei multilistini
|
||||||
void TAggiorna_listini_edit_mask::fill_multilistini_sheet()
|
void TAggiorna_listini_edit_mask::fill_multilistini_sheet()
|
||||||
{
|
{
|
||||||
@ -285,7 +320,7 @@ void TAggiorna_listini_edit_mask::fill_multilistini_sheet()
|
|||||||
TSheet_field& sf_multilistini = sfield(F_MULTILISTINI);
|
TSheet_field& sf_multilistini = sfield(F_MULTILISTINI);
|
||||||
sf_multilistini.destroy();
|
sf_multilistini.destroy();
|
||||||
|
|
||||||
const int prezzo_pos = sf_multilistini.cid2index(F_PREZZO);
|
const int prezzo_pos = sf_multilistini.cid2index(S2_PREZZO);
|
||||||
TToken_string key;
|
TToken_string key;
|
||||||
|
|
||||||
FOR_EACH_TOKEN(keys_listini, tok)
|
FOR_EACH_TOKEN(keys_listini, tok)
|
||||||
@ -296,14 +331,15 @@ void TAggiorna_listini_edit_mask::fill_multilistini_sheet()
|
|||||||
key = tok;
|
key = tok;
|
||||||
TString query;
|
TString query;
|
||||||
query << "USE RCONDV\n";
|
query << "USE RCONDV\n";
|
||||||
query << "SELECT ANAMAG.GRMERC=#GRMERC\n";
|
query << "SELECT ANAMAG.GRMERC?=#GRMERC\n"; //occhio al '?' Serve per poter avere ricerche jolly
|
||||||
query << "JOIN ANAMAG INTO CODART==CODRIGA\n";
|
query << "JOIN ANAMAG INTO CODART==CODRIGA\n";
|
||||||
query << "FROM TIPO=L CATVEN=#CATVEN COD=#COD TIPORIGA=A\n";
|
query << "FROM TIPO=L CATVEN=#CATVEN COD=#COD TIPORIGA=A\n";
|
||||||
query << "TO TIPO=L CATVEN=#CATVEN COD=#COD TIPORIGA=A\n";
|
query << "TO TIPO=L CATVEN=#CATVEN COD=#COD TIPORIGA=A\n";
|
||||||
|
|
||||||
TISAM_recordset recset_rows(query);
|
TISAM_recordset recset_rows(query);
|
||||||
TString8 grmerc;
|
TString8 grmerc;
|
||||||
grmerc.format("%-3s%-2s", (const char*)get(F_GRMERC),(const char*)get(F_SOTGRMERC));
|
get_correct_grmerc(grmerc, true);
|
||||||
|
|
||||||
recset_rows.set_var("#GRMERC", grmerc);
|
recset_rows.set_var("#GRMERC", grmerc);
|
||||||
recset_rows.set_var("#CATVEN", key.get(0));
|
recset_rows.set_var("#CATVEN", key.get(0));
|
||||||
recset_rows.set_var("#COD", key.get(1));
|
recset_rows.set_var("#COD", key.get(1));
|
||||||
@ -339,7 +375,7 @@ void TAggiorna_listini_edit_mask::fill_multilistini_sheet()
|
|||||||
if (fath_prezzo.is_zero())
|
if (fath_prezzo.is_zero())
|
||||||
{
|
{
|
||||||
TSheet_field& listini_figli = sfield(F_LISTINI_FIGLI);
|
TSheet_field& listini_figli = sfield(F_LISTINI_FIGLI);
|
||||||
const real ricarico = listini_figli.cell(pos - 1, listini_figli.cid2index(F_RICARICO));
|
const real ricarico = listini_figli.cell(pos - 1, listini_figli.cid2index(S1_RICARICO));
|
||||||
const TPrice prezzo_base(prezzo * CENTO / (CENTO + ricarico));
|
const TPrice prezzo_base(prezzo * CENTO / (CENTO + ricarico));
|
||||||
sf_multilistini.row(riga_bassa).add(prezzo_base.string(true), prezzo_pos);
|
sf_multilistini.row(riga_bassa).add(prezzo_base.string(true), prezzo_pos);
|
||||||
}
|
}
|
||||||
@ -359,7 +395,7 @@ void TAggiorna_listini_edit_mask::update_sons_prices()
|
|||||||
//PrezzoNuovoFiglio = Ricaricofiglio * PrezzoPadre (questo vale per ogni articolo)
|
//PrezzoNuovoFiglio = Ricaricofiglio * PrezzoPadre (questo vale per ogni articolo)
|
||||||
TSheet_field& sf_figli = sfield(F_LISTINI_FIGLI);
|
TSheet_field& sf_figli = sfield(F_LISTINI_FIGLI);
|
||||||
TSheet_field& sf_listini = sfield(F_MULTILISTINI);
|
TSheet_field& sf_listini = sfield(F_MULTILISTINI);
|
||||||
const int fath_prezzo_pos = sf_listini.cid2index(F_PREZZO);
|
const int fath_prezzo_pos = sf_listini.cid2index(S2_PREZZO);
|
||||||
|
|
||||||
FOR_EACH_SHEET_ROW(sf_figli, r, riga_figlio)
|
FOR_EACH_SHEET_ROW(sf_figli, r, riga_figlio)
|
||||||
{
|
{
|
||||||
@ -412,13 +448,16 @@ void TAggiorna_listini_edit_mask::add_art()
|
|||||||
//..si rimanda al programma principale di gestione listini ve2500!!)
|
//..si rimanda al programma principale di gestione listini ve2500!!)
|
||||||
TString query;
|
TString query;
|
||||||
query << "USE ANAMAG\n";
|
query << "USE ANAMAG\n";
|
||||||
query << "SELECT ((GRMERC=#GRMERC)||(GRMERC=\"\"))&&(RCONDV.CODRIGA=\"\")\n";
|
query << "SELECT ((GRMERC?=#GRMERC)||(GRMERC=\"\"))&&(RCONDV.CODRIGA=\"\")\n";
|
||||||
query << "JOIN RCONDV INTO TIPO=\"L\" CATVEN=#CATVEN COD=#COD TIPORIGA=\"A\" CODRIGA=CODART\n";
|
query << "JOIN RCONDV INTO TIPO=\"L\" CATVEN=#CATVEN COD=#COD TIPORIGA=\"A\" CODRIGA=CODART\n";
|
||||||
query << "JOIN UMART INTO CODART=CODART\n";
|
query << "JOIN UMART INTO CODART=CODART\n";
|
||||||
TISAM_recordset recset(query);
|
TISAM_recordset recset(query);
|
||||||
TString8 grmerc;
|
TString8 grmerc, grmerc_filter;
|
||||||
grmerc.format("%-3s%-2s", (const char*)get(F_GRMERC),(const char*)get(F_SOTGRMERC));
|
|
||||||
recset.set_var("#GRMERC", grmerc);
|
get_correct_grmerc(grmerc, false);
|
||||||
|
get_correct_grmerc(grmerc_filter, true);
|
||||||
|
|
||||||
|
recset.set_var("#GRMERC", grmerc_filter);
|
||||||
recset.set_var("#CATVEN", get(F_FATHCATVEN));
|
recset.set_var("#CATVEN", get(F_FATHCATVEN));
|
||||||
recset.set_var("#COD", get(F_FATHCODLIS));
|
recset.set_var("#COD", get(F_FATHCODLIS));
|
||||||
|
|
||||||
@ -458,7 +497,7 @@ void TAggiorna_listini_edit_mask::add_art()
|
|||||||
if (sheet.run() == K_ENTER)
|
if (sheet.run() == K_ENTER)
|
||||||
{
|
{
|
||||||
TSheet_field& sf_listini = sfield(F_MULTILISTINI);
|
TSheet_field& sf_listini = sfield(F_MULTILISTINI);
|
||||||
const int prezzo_pos = sf_listini.cid2index(F_PREZZO);
|
const int prezzo_pos = sf_listini.cid2index(S2_PREZZO);
|
||||||
TString80 codart;
|
TString80 codart;
|
||||||
TString4 um;
|
TString4 um;
|
||||||
FOR_EACH_CHECKED_ROW(sheet, r, riga)
|
FOR_EACH_CHECKED_ROW(sheet, r, riga)
|
||||||
@ -476,7 +515,7 @@ void TAggiorna_listini_edit_mask::add_art()
|
|||||||
FOR_EACH_SHEET_ROW(sf_listini_figli, i, son)
|
FOR_EACH_SHEET_ROW(sf_listini_figli, i, son)
|
||||||
{
|
{
|
||||||
sf_listini.row(numriga).add(prezzo.get_num().string(), prezzo_pos + i + 1);
|
sf_listini.row(numriga).add(prezzo.get_num().string(), prezzo_pos + i + 1);
|
||||||
const real ricarico = son->get(sf_listini_figli.cid2index(F_RICARICO));
|
const real ricarico = son->get(sf_listini_figli.cid2index(S1_RICARICO));
|
||||||
const TPrice son_prezzo = prezzo.get_num() * (CENTO + ricarico) / CENTO;
|
const TPrice son_prezzo = prezzo.get_num() * (CENTO + ricarico) / CENTO;
|
||||||
sf_listini.row(numriga + 1).add(son_prezzo.get_num().string(), prezzo_pos + i + 1);
|
sf_listini.row(numriga + 1).add(son_prezzo.get_num().string(), prezzo_pos + i + 1);
|
||||||
}
|
}
|
||||||
@ -502,7 +541,7 @@ void TAggiorna_listini_edit_mask::add_art()
|
|||||||
void TAggiorna_listini_edit_mask::save_listini()
|
void TAggiorna_listini_edit_mask::save_listini()
|
||||||
{
|
{
|
||||||
TSheet_field& sf_listini = sfield(F_MULTILISTINI);
|
TSheet_field& sf_listini = sfield(F_MULTILISTINI);
|
||||||
const int prezzo_pos = sf_listini.cid2index(F_PREZZO);
|
const int prezzo_pos = sf_listini.cid2index(S2_PREZZO);
|
||||||
|
|
||||||
TToken_string keys_listini;
|
TToken_string keys_listini;
|
||||||
const int num_listini_da_agg = crea_famiglia_listini(keys_listini);
|
const int num_listini_da_agg = crea_famiglia_listini(keys_listini);
|
||||||
@ -522,14 +561,15 @@ void TAggiorna_listini_edit_mask::save_listini()
|
|||||||
|
|
||||||
TString query;
|
TString query;
|
||||||
query << "USE RCONDV\n";
|
query << "USE RCONDV\n";
|
||||||
query << "SELECT ANAMAG.GRMERC=#GRMERC\n";
|
query << "SELECT ANAMAG.GRMERC?=#GRMERC\n";
|
||||||
query << "JOIN ANAMAG INTO CODART==CODRIGA\n";
|
query << "JOIN ANAMAG INTO CODART==CODRIGA\n";
|
||||||
query << "FROM TIPO=L CATVEN=#CATVEN COD=#COD TIPORIGA=A\n";
|
query << "FROM TIPO=L CATVEN=#CATVEN COD=#COD TIPORIGA=A\n";
|
||||||
query << "TO TIPO=L CATVEN=#CATVEN COD=#COD TIPORIGA=A\n";
|
query << "TO TIPO=L CATVEN=#CATVEN COD=#COD TIPORIGA=A\n";
|
||||||
|
|
||||||
TISAM_recordset recset_rows(query);
|
TISAM_recordset recset_rows(query);
|
||||||
TString8 grmerc;
|
TString8 grmerc;
|
||||||
grmerc.format("%-3s%-2s", (const char*)get(F_GRMERC),(const char*)get(F_SOTGRMERC));
|
get_correct_grmerc(grmerc, false);
|
||||||
|
|
||||||
recset_rows.set_var("#GRMERC", grmerc);
|
recset_rows.set_var("#GRMERC", grmerc);
|
||||||
const TString4 catven = key.get(0);
|
const TString4 catven = key.get(0);
|
||||||
recset_rows.set_var("#CATVEN", catven);
|
recset_rows.set_var("#CATVEN", catven);
|
||||||
@ -556,7 +596,7 @@ void TAggiorna_listini_edit_mask::save_listini()
|
|||||||
TRectype key_rec(LF_RCONDV);
|
TRectype key_rec(LF_RCONDV);
|
||||||
|
|
||||||
//alla fine della storia registra tutto lo sheet sul file
|
//alla fine della storia registra tutto lo sheet sul file
|
||||||
FOR_EACH_SHEET_ROW(sf_listini, r, riga) if (r & 1)
|
FOR_EACH_SHEET_ROW(sf_listini, r, riga) if ((r & 1) && (riga->get_char(0) > ' ')) //è come dire riga dispari e checked (ignoranti!)
|
||||||
{
|
{
|
||||||
const real prezzo = get_price(sf_listini, r, prezzo_pos + pos);
|
const real prezzo = get_price(sf_listini, r, prezzo_pos + pos);
|
||||||
if (prezzo > ZERO)
|
if (prezzo > ZERO)
|
||||||
@ -628,8 +668,8 @@ bool TAggiorna_listini_edit_mask::on_field_event(TOperable_field& o, TField_even
|
|||||||
if (e == fe_modify)
|
if (e == fe_modify)
|
||||||
{
|
{
|
||||||
TString8 grmerc;
|
TString8 grmerc;
|
||||||
grmerc.format("%-3s%-2s", (const char*)get(F_GRMERC),(const char*)get(F_SOTGRMERC));
|
get_correct_grmerc(grmerc, false);
|
||||||
if (grmerc != _curr_grmerc)
|
if (grmerc != _curr_grmerc && grmerc.full())
|
||||||
{
|
{
|
||||||
if (_ask_save)
|
if (_ask_save)
|
||||||
{
|
{
|
||||||
@ -643,27 +683,56 @@ bool TAggiorna_listini_edit_mask::on_field_event(TOperable_field& o, TField_even
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case F_PREZZO:
|
case S2_PREZZO:
|
||||||
if (e == fe_modify)
|
if (e == fe_modify)
|
||||||
{
|
{
|
||||||
|
//se il prezzo viene messo a 0 nel listino padre, si prepara ad eliminare l'articolo..
|
||||||
|
//..come se fosse premuto DLG_USER (vedi DLG_USER qui sotto)
|
||||||
if (real::is_null(o.get()))
|
if (real::is_null(o.get()))
|
||||||
{
|
{
|
||||||
TMask& rowmask = o.mask();
|
TMask& rowmask = o.mask();
|
||||||
rowmask.field(DLG_USER).on_hit();
|
rowmask.field(DLG_USER).on_hit();
|
||||||
}
|
}
|
||||||
|
else //se invece viene cambiato il prezzo del padre ed i figli hanno tutti i prezzi nulli..
|
||||||
|
//..(articolo nuovo o resettato), sui prezzi figli viene messo il prezzo del padre
|
||||||
|
{
|
||||||
|
TMask& rowmask = o.mask(); //serve la maschera di riga! (sennò funziona solo sullo sheet)
|
||||||
|
real somma_prezzi_figli = ZERO;
|
||||||
|
for (int i = S2_LIST1; i <= S2_LIST10; i++)
|
||||||
|
somma_prezzi_figli += rowmask.get_real(i);
|
||||||
|
|
||||||
|
if (somma_prezzi_figli.is_zero())
|
||||||
|
{
|
||||||
|
TSheet_field& sf_listini = sfield(F_LISTINI_FIGLI);
|
||||||
|
const int col_ricarichi = sf_listini.cid2index(S1_RICARICO);
|
||||||
|
|
||||||
|
for (int i = S2_LIST1; i <= S2_LIST10; i++)
|
||||||
|
{
|
||||||
|
TMask_field& campo = rowmask.efield(i);
|
||||||
|
//se il campo è visibile, allora il listino figlio è tra quelli attivi e lo aggiorna
|
||||||
|
if (campo.shown())
|
||||||
|
{
|
||||||
|
const real ricarico = sf_listini.cell(i - S2_LIST1, col_ricarichi);
|
||||||
|
real prezzo_figlio = o.get();
|
||||||
|
prezzo_figlio = prezzo_figlio * (CENTO + ricarico) / CENTO;
|
||||||
|
campo.set(prezzo_figlio.string());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
_ask_save = true;
|
_ask_save = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case F_LIST1:
|
case S2_LIST1:
|
||||||
case F_LIST2:
|
case S2_LIST2:
|
||||||
case F_LIST3:
|
case S2_LIST3:
|
||||||
case F_LIST4:
|
case S2_LIST4:
|
||||||
case F_LIST5:
|
case S2_LIST5:
|
||||||
case F_LIST6:
|
case S2_LIST6:
|
||||||
case F_LIST7:
|
case S2_LIST7:
|
||||||
case F_LIST8:
|
case S2_LIST8:
|
||||||
case F_LIST9:
|
case S2_LIST9:
|
||||||
case F_LIST10:
|
case S2_LIST10:
|
||||||
if (e == fe_modify)
|
if (e == fe_modify)
|
||||||
{
|
{
|
||||||
_ask_save = true;
|
_ask_save = true;
|
||||||
@ -726,7 +795,10 @@ void TAggiorna_listini_edit_mask::fill_children_list()
|
|||||||
//disabilita se necessario la colonna della categoria di vendita (lo sheet serve comunque dopo!)
|
//disabilita se necessario la colonna della categoria di vendita (lo sheet serve comunque dopo!)
|
||||||
TSheet_field& sf_righe = sfield(F_LISTINI_FIGLI);
|
TSheet_field& sf_righe = sfield(F_LISTINI_FIGLI);
|
||||||
sf_righe.destroy();
|
sf_righe.destroy();
|
||||||
sf_righe.enable_column(F_CATVEN, ini_get_bool(CONFIG_DITTA, "ve", "GESLISCV"));
|
/*dovrebbe nascondere la colonna catven se non la si usa, ma non funziona la chiamata a XI
|
||||||
|
const bool show_catven_column = ini_get_bool(CONFIG_DITTA, "ve", "GESLISCV");
|
||||||
|
if (!show_catven_column)
|
||||||
|
sf_righe.show_column(S1_CATVEN, false);*/
|
||||||
|
|
||||||
//aggiorna sheet con i listini figli
|
//aggiorna sheet con i listini figli
|
||||||
TString query;
|
TString query;
|
||||||
@ -748,11 +820,14 @@ void TAggiorna_listini_edit_mask::fill_children_list()
|
|||||||
|
|
||||||
const TString& catven = rec.get(CONDV_CATVEN);
|
const TString& catven = rec.get(CONDV_CATVEN);
|
||||||
const TString& codlis = rec.get(CONDV_COD);
|
const TString& codlis = rec.get(CONDV_COD);
|
||||||
|
const TString& arrotonda = rec.get(CONDV_ARROTONDA);
|
||||||
const TString& deslis = rec.get(CONDV_DESCR);
|
const TString& deslis = rec.get(CONDV_DESCR);
|
||||||
row.add(catven);
|
row.add(catven);
|
||||||
row.add(codlis);
|
row.add(codlis);
|
||||||
row.add("");
|
row.add("");
|
||||||
|
row.add(arrotonda);
|
||||||
row.add(deslis);
|
row.add(deslis);
|
||||||
|
|
||||||
|
|
||||||
sf_righe.check_row(sf_righe.items()-1, 3);
|
sf_righe.check_row(sf_righe.items()-1, 3);
|
||||||
}
|
}
|
||||||
@ -953,6 +1028,11 @@ bool TAggiorna_listini::create()
|
|||||||
{
|
{
|
||||||
error_box(TR("Programma non autorizzato!"));
|
error_box(TR("Programma non autorizzato!"));
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
//se non paghi ti stronco!!!
|
||||||
|
const TDate oggi(TODAY);
|
||||||
|
if (oggi >= 20091120)
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
return TSkeleton_application::create();
|
return TSkeleton_application::create();
|
||||||
}
|
}
|
||||||
|
38
ve/ve2700.h
38
ve/ve2700.h
@ -14,25 +14,29 @@
|
|||||||
#define DLG_APPLICA 210
|
#define DLG_APPLICA 210
|
||||||
#define DLG_ADDART 211
|
#define DLG_ADDART 211
|
||||||
|
|
||||||
|
#define F_ARROTONDA 212
|
||||||
|
|
||||||
#define F_MULTILISTINI 220
|
#define F_MULTILISTINI 220
|
||||||
|
|
||||||
//primo sheet con i listini figli
|
//primo sheet con i listini figli
|
||||||
#define F_CATVEN 101
|
#define S1_CATVEN 101
|
||||||
#define F_CODLIS 102
|
#define S1_CODLIS 102
|
||||||
#define F_RICARICO 103
|
#define S1_RICARICO 103
|
||||||
#define F_DESLIS 104
|
#define S1_ARROTONDA 104
|
||||||
|
#define S1_DESLIS 105
|
||||||
|
|
||||||
|
|
||||||
//multi-terribile sheet dei multi-listini
|
//multi-terribile sheet dei multi-listini
|
||||||
#define F_CHECK 101
|
#define S2_CHECK 101
|
||||||
#define F_CODRIGA 102
|
#define S2_CODRIGA 102
|
||||||
#define F_PREZZO 103
|
#define S2_PREZZO 103
|
||||||
#define F_LIST1 104
|
#define S2_LIST1 104
|
||||||
#define F_LIST2 105
|
#define S2_LIST2 105
|
||||||
#define F_LIST3 106
|
#define S2_LIST3 106
|
||||||
#define F_LIST4 107
|
#define S2_LIST4 107
|
||||||
#define F_LIST5 108
|
#define S2_LIST5 108
|
||||||
#define F_LIST6 109
|
#define S2_LIST6 109
|
||||||
#define F_LIST7 110
|
#define S2_LIST7 110
|
||||||
#define F_LIST8 111
|
#define S2_LIST8 111
|
||||||
#define F_LIST9 112
|
#define S2_LIST9 112
|
||||||
#define F_LIST10 113
|
#define S2_LIST10 113
|
||||||
|
@ -104,6 +104,16 @@ BEGIN
|
|||||||
PROMPT 0 12 " con il gr. merc. corrente in anagrafica)"
|
PROMPT 0 12 " con il gr. merc. corrente in anagrafica)"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
TEXT DLG_NULL
|
||||||
|
BEGIN
|
||||||
|
PROMPT 0 13 "6) Per eliminare un articolo da un listino mettere a 0 il prezzo; facendo"
|
||||||
|
END
|
||||||
|
|
||||||
|
TEXT DLG_NULL
|
||||||
|
BEGIN
|
||||||
|
PROMPT 0 14 " questo nel listino padre l'articolo viene eliminato da tutti i listini"
|
||||||
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
ENDMASK
|
ENDMASK
|
||||||
|
@ -82,7 +82,7 @@ BEGIN
|
|||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_FATHDESVEN 10
|
STRING F_FATHDESVEN 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 0 ""
|
PROMPT 1 0 ""
|
||||||
FLAGS "H"
|
FLAGS "H"
|
||||||
@ -96,6 +96,7 @@ BEGIN
|
|||||||
INPUT CATVEN F_FATHCATVEN
|
INPUT CATVEN F_FATHCATVEN
|
||||||
INPUT COD F_FATHCODLIS
|
INPUT COD F_FATHCODLIS
|
||||||
OUTPUT F_FATHDESLIS DESCR
|
OUTPUT F_FATHDESLIS DESCR
|
||||||
|
OUTPUT F_ARROTONDA ARROTONDA
|
||||||
CHECKTYPE REQUIRED
|
CHECKTYPE REQUIRED
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
@ -120,7 +121,7 @@ BEGIN
|
|||||||
GROUP 2
|
GROUP 2
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_SOTGRMERC 5
|
STRING F_SOTGRMERC 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 19 1 ""
|
PROMPT 19 1 ""
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
@ -149,6 +150,12 @@ BEGIN
|
|||||||
GROUP 2
|
GROUP 2
|
||||||
END
|
END
|
||||||
|
|
||||||
|
STRING F_ARROTONDA 8
|
||||||
|
BEGIN
|
||||||
|
PROMPT 27 2 "Arrotondamento "
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
TEXT DLG_NULL
|
TEXT DLG_NULL
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 2 "@bListini figli"
|
PROMPT 1 2 "@bListini figli"
|
||||||
@ -160,6 +167,7 @@ BEGIN
|
|||||||
ITEM "Cat.Ven."
|
ITEM "Cat.Ven."
|
||||||
ITEM "Codice"
|
ITEM "Codice"
|
||||||
ITEM "Ricarico"
|
ITEM "Ricarico"
|
||||||
|
ITEM "Arrotonda"
|
||||||
ITEM "Descrizione@50"
|
ITEM "Descrizione@50"
|
||||||
END
|
END
|
||||||
|
|
||||||
@ -187,7 +195,39 @@ ENDMASK
|
|||||||
|
|
||||||
////////////////////////////////////////////
|
////////////////////////////////////////////
|
||||||
//maschera di riga sheet dei listini figli
|
//maschera di riga sheet dei listini figli
|
||||||
TOOLBAR "topbar" 0 0 0 2
|
PAGE "Riga listino figlio" -1 -1 72 5
|
||||||
|
|
||||||
|
STRING S1_CATVEN 2
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 1 "Cat. ven. "
|
||||||
|
FLAGS "UD"
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S1_CODLIS 3
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 2 "Listino "
|
||||||
|
FLAGS "UD"
|
||||||
|
END
|
||||||
|
|
||||||
|
NUMBER S1_RICARICO 4
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 3 "Ricarico "
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S1_ARROTONDA 8
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 4 "Arrotonda "
|
||||||
|
END
|
||||||
|
|
||||||
|
STRING S1_DESLIS 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 18 2 ""
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
|
ENDPAGE
|
||||||
|
|
||||||
|
TOOLBAR "" 0 0 0 2
|
||||||
|
|
||||||
BUTTON DLG_OK 10 2
|
BUTTON DLG_OK 10 2
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -206,33 +246,6 @@ END
|
|||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
PAGE "Riga listino figlio" -1 -1 78 22
|
|
||||||
|
|
||||||
STRING F_CATVEN 2
|
|
||||||
BEGIN
|
|
||||||
PROMPT 1 1 "Cat. ven. "
|
|
||||||
FLAGS "UD"
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING F_CODLIS 3
|
|
||||||
BEGIN
|
|
||||||
PROMPT 1 2 "Listino "
|
|
||||||
FLAGS "UD"
|
|
||||||
END
|
|
||||||
|
|
||||||
NUMBER F_RICARICO 4
|
|
||||||
BEGIN
|
|
||||||
PROMPT 1 3 "Ricarico "
|
|
||||||
END
|
|
||||||
|
|
||||||
STRING F_DESLIS 50
|
|
||||||
BEGIN
|
|
||||||
PROMPT 18 2 ""
|
|
||||||
FLAGS "D"
|
|
||||||
END
|
|
||||||
|
|
||||||
ENDPAGE
|
|
||||||
|
|
||||||
ENDMASK
|
ENDMASK
|
||||||
|
|
||||||
|
|
||||||
@ -240,89 +253,89 @@ ENDMASK
|
|||||||
//maschera di riga sheet aggiornamento listini
|
//maschera di riga sheet aggiornamento listini
|
||||||
PAGE "Riga aggiornamento listini" -1 -1 40 10
|
PAGE "Riga aggiornamento listini" -1 -1 40 10
|
||||||
|
|
||||||
BOOLEAN F_CHECK
|
BOOLEAN S2_CHECK
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 0 "Applica ricarico "
|
PROMPT 1 0 "Applica ricarico "
|
||||||
GROUP 1
|
GROUP 1
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_CODRIGA 50 20
|
STRING S2_CODRIGA 50 20
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 1 "Codice "
|
PROMPT 1 1 "Codice "
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_PREZZO 8
|
STRING S2_PREZZO 8
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 2 "Prezzo "
|
PROMPT 1 2 "Prezzo "
|
||||||
FLAGS "R"
|
FLAGS "R"
|
||||||
GROUP 1
|
GROUP 1
|
||||||
END
|
END
|
||||||
|
|
||||||
CURRENCY F_LIST1 8
|
CURRENCY S2_LIST1 8
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 4 "List1 "
|
PROMPT 1 4 "List1 "
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
GROUP 1
|
GROUP 1
|
||||||
END
|
END
|
||||||
|
|
||||||
CURRENCY F_LIST2 8
|
CURRENCY S2_LIST2 8
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 5 "List2 "
|
PROMPT 1 5 "List2 "
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
GROUP 1
|
GROUP 1
|
||||||
END
|
END
|
||||||
|
|
||||||
CURRENCY F_LIST3 8
|
CURRENCY S2_LIST3 8
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 6 "List3 "
|
PROMPT 1 6 "List3 "
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
GROUP 1
|
GROUP 1
|
||||||
END
|
END
|
||||||
|
|
||||||
CURRENCY F_LIST4 8
|
CURRENCY S2_LIST4 8
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 7 "List4 "
|
PROMPT 1 7 "List4 "
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
GROUP 1
|
GROUP 1
|
||||||
END
|
END
|
||||||
|
|
||||||
CURRENCY F_LIST5 8
|
CURRENCY S2_LIST5 8
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 8 "List5 "
|
PROMPT 1 8 "List5 "
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
GROUP 1
|
GROUP 1
|
||||||
END
|
END
|
||||||
|
|
||||||
CURRENCY F_LIST6 8
|
CURRENCY S2_LIST6 8
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 21 4 "List6 "
|
PROMPT 21 4 "List6 "
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
GROUP 1
|
GROUP 1
|
||||||
END
|
END
|
||||||
|
|
||||||
CURRENCY F_LIST7 8
|
CURRENCY S2_LIST7 8
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 21 5 "List7 "
|
PROMPT 21 5 "List7 "
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
GROUP 1
|
GROUP 1
|
||||||
END
|
END
|
||||||
|
|
||||||
CURRENCY F_LIST8 8
|
CURRENCY S2_LIST8 8
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 21 6 "List8 "
|
PROMPT 21 6 "List8 "
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
GROUP 1
|
GROUP 1
|
||||||
END
|
END
|
||||||
|
|
||||||
CURRENCY F_LIST9 8
|
CURRENCY S2_LIST9 8
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 21 7 "List9 "
|
PROMPT 21 7 "List9 "
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
GROUP 1
|
GROUP 1
|
||||||
END
|
END
|
||||||
|
|
||||||
CURRENCY F_LIST10 8
|
CURRENCY S2_LIST10 8
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 21 8 "List10 "
|
PROMPT 21 8 "List10 "
|
||||||
FLAGS "U"
|
FLAGS "U"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user