Patch level :10.0
Files correlati : Ricompilazione Demo : [ ] Commento : prosegue la sincronizzazione listini git-svn-id: svn://10.65.10.50/trunk@19404 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
a2bd847611
commit
198208b90f
@ -984,6 +984,7 @@ bool TMotore_application::save_and_print(bool savedoc, TPrtype mode)
|
||||
maindoc.stato(sfs);
|
||||
const char str_sfs[2] = { sfs, '\0' };
|
||||
m.set(F_STATO, str_sfs, true);
|
||||
init_modify_mode(m);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
#include <applicat.h>
|
||||
#include <automask.h>
|
||||
#include <config.h>
|
||||
#include <defmask.h>
|
||||
#include <progind.h>
|
||||
#include <recarray.h>
|
||||
#include <recset.h>
|
||||
@ -22,6 +23,7 @@ class TAggiorna_listini_edit_mask : public TAutomask
|
||||
{
|
||||
TMask* _query_mask; //puntatore alla maschera di query
|
||||
TString8 _curr_grmerc; //iniziale grmerc-sotgrmerc
|
||||
bool _ges_um;
|
||||
|
||||
protected:
|
||||
//Metodi dello sheet listini figli
|
||||
@ -33,7 +35,7 @@ protected:
|
||||
void set_header_multilistini_sheet(); //compila le intestazioni delle colonne dello sheet multilistino (costruttore)
|
||||
void fill_multilistini_sheet(); //riempie lo sheet multilistino (on_field)
|
||||
void update_sons_prices(); //aggiorna i prezzi dei listini figli (on_field)
|
||||
int find_codart(TSheet_field& sf, const TString& codart, const TString& um); //cerca l'articolo nello sheet (on_field)
|
||||
int find_or_add_codart(TSheet_field& sf, const TString& codart, const TString& um); //cerca l'articolo nello sheet (on_field)
|
||||
bool one_checked(); //controlla se nella colonna dei check ce ne è almeno 1 checkato (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)
|
||||
@ -176,7 +178,7 @@ void TAggiorna_listini_edit_mask::save_children_list()
|
||||
|
||||
//metodi F_MULTILISTINI
|
||||
//restituisce la posizione della riga ALTA, quella disabilitata
|
||||
int TAggiorna_listini_edit_mask::find_codart(TSheet_field& sf, const TString& codart, const TString& codum)
|
||||
int TAggiorna_listini_edit_mask::find_or_add_codart(TSheet_field& sf, const TString& codart, const TString& codum)
|
||||
{
|
||||
//cerca la riga tra quelle esistenti
|
||||
const int codart_pos = sf.cid2index(F_CODRIGA);
|
||||
@ -187,7 +189,7 @@ int TAggiorna_listini_edit_mask::find_codart(TSheet_field& sf, const TString& co
|
||||
const char* art = sf.cell(i, codart_pos);
|
||||
TString4 um = sf.cell(i - 1, codum_pos);
|
||||
um.trim();
|
||||
if (codart == art && codum == um)
|
||||
if (codart == art && (!_ges_um || codum == um))
|
||||
return i - 1;
|
||||
}
|
||||
|
||||
@ -196,7 +198,8 @@ int TAggiorna_listini_edit_mask::find_codart(TSheet_field& sf, const TString& co
|
||||
sf.disable_cell(sf.items()-1, -1);
|
||||
const TString& descr = cache().get(LF_ANAMAG, codart, ANAMAG_DESCR);
|
||||
row_alta.add(descr, codart_pos);
|
||||
row_alta.add(codum, codum_pos);
|
||||
if (_ges_um)
|
||||
row_alta.add(codum, codum_pos);
|
||||
|
||||
TToken_string& row_bassa = sf.row(-1);
|
||||
row_bassa.add("X");
|
||||
@ -271,9 +274,9 @@ void TAggiorna_listini_edit_mask::fill_multilistini_sheet()
|
||||
const TString& codart = recset_rows.get(RCONDV_CODRIGA).as_string();
|
||||
const TString& um = recset_rows.get(RCONDV_UM).as_string();
|
||||
const real prezzo = recset_rows.get(RCONDV_PREZZO).as_real();
|
||||
//cerca se esiste o se deve aggiungerla: la find_codart restituisce il numero della riga alta..
|
||||
//cerca se esiste o se deve aggiungerla: la find_cor_add_odart restituisce il numero della riga alta..
|
||||
//..(descrizione/um) del codart in questione (che starà la riga sotto, ovvero riga_alta+1)
|
||||
const int riga_alta = find_codart(sf_multilistini, codart, um);
|
||||
const int riga_alta = find_or_add_codart(sf_multilistini, codart, um);
|
||||
|
||||
//mette il prezzo al posto giusto (padre e figlio)
|
||||
if (pos <= 0)
|
||||
@ -350,7 +353,7 @@ void TAggiorna_listini_edit_mask::add_art()
|
||||
query << "USE ANAMAG\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 UMART INTO CODART=CODART NRIGA=1\n";
|
||||
query << "JOIN UMART INTO CODART=CODART\n";
|
||||
TISAM_recordset recset(query);
|
||||
TString8 grmerc;
|
||||
grmerc.format("%-3s%-2s", (const char*)get(F_GRMERC),(const char*)get(F_SOTGRMERC));
|
||||
@ -361,7 +364,7 @@ void TAggiorna_listini_edit_mask::add_art()
|
||||
const int recset_items = recset.items();
|
||||
|
||||
//crea uno sheet volante con gli articoli aggiungibili
|
||||
TArray_sheet sheet(-1, -1, 78, 20, TR("Articoli aggiungibili"), HR("@1|Codice@20|UM|Descrizione@50"));
|
||||
TArray_sheet sheet(-1, -1, 78, 20, TR("Articoli aggiungibili"), HR("@1|Codice@20|UM|Prezzo@8R|Descrizione@50"));
|
||||
|
||||
TProgind pi(recset_items, TR("Ricerca articoli aggiungibili..."), true, true);
|
||||
|
||||
@ -373,21 +376,38 @@ void TAggiorna_listini_edit_mask::add_art()
|
||||
TToken_string row;
|
||||
//prechecka solo quelli con il corretto grmerc; gli articoli orfani no!
|
||||
const TString& grmerc = recset.get(ANAMAG_GRMERC).as_string();
|
||||
if (grmerc.full())
|
||||
row.add("X");
|
||||
else
|
||||
row.add("");
|
||||
row.add(grmerc.full() ? "X" : "");
|
||||
const TString codart = recset.get(ANAMAG_CODART).as_string();
|
||||
row.add(codart);
|
||||
const TString& um = recset.get(UMART_UM).as_string();
|
||||
const TString& um = recset.get("UMART.UM").as_string();
|
||||
row.add(um);
|
||||
const real prezzo = recset.get("UMART.PREZZO").as_real();
|
||||
row.add(prezzo.is_zero() ? "" : prezzo.string());
|
||||
const TString& descr = recset.get(ANAMAG_DESCR).as_string();
|
||||
row.add(descr);
|
||||
|
||||
sheet.add(row);
|
||||
}
|
||||
sheet.rows_array().sort(false);
|
||||
sheet.run();
|
||||
|
||||
//adesso che ha proposto lo sheet con gli articoli aggiungibili, deve aggiungere effettivamente..
|
||||
//..quelli checkati
|
||||
if (sheet.run() == K_ENTER)
|
||||
{
|
||||
TSheet_field& sf_listini = sfield(F_MULTILISTINI);
|
||||
const int prezzo_pos = sf_listini.cid2index(F_PREZZO);
|
||||
TString80 codart;
|
||||
TString4 um;
|
||||
FOR_EACH_CHECKED_ROW(sheet, r, riga)
|
||||
{
|
||||
codart = riga->get(1);
|
||||
um = riga->get(2); um.trim();
|
||||
const int numriga = find_or_add_codart(sf_listini, codart, um);
|
||||
if (numriga >= 0)
|
||||
sf_listini.row(numriga + 1).add(riga->get(3), prezzo_pos);
|
||||
}
|
||||
sf_listini.force_update();
|
||||
}
|
||||
}
|
||||
|
||||
bool TAggiorna_listini_edit_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
@ -395,10 +415,18 @@ bool TAggiorna_listini_edit_mask::on_field_event(TOperable_field& o, TField_even
|
||||
switch(o.dlg())
|
||||
{
|
||||
case F_LISTINI_FIGLI:
|
||||
if (e == se_query_add || e == se_query_del)
|
||||
return false; // Rifiuta aggiunte e cancellazioni di figli
|
||||
break;
|
||||
case F_MULTILISTINI:
|
||||
if (e == se_query_add)
|
||||
switch (e)
|
||||
{
|
||||
case se_query_add:
|
||||
send_key(K_SPACE, DLG_NEWREC); // Ridirige l'aggiunta al bottone della toolbar
|
||||
return false;
|
||||
case se_query_del:
|
||||
return false; // Rifiuta cancellazioni di articoli
|
||||
default: break;
|
||||
}
|
||||
break;
|
||||
case F_GRMERC:
|
||||
@ -430,7 +458,7 @@ bool TAggiorna_listini_edit_mask::on_field_event(TOperable_field& o, TField_even
|
||||
check_all(!one_checked());
|
||||
}
|
||||
break;
|
||||
case DLG_ADDART:
|
||||
case DLG_NEWREC:
|
||||
if (e == fe_button)
|
||||
{
|
||||
if (field(F_GRMERC).empty())
|
||||
@ -521,9 +549,17 @@ TAggiorna_listini_edit_mask::TAggiorna_listini_edit_mask(TMask* query_mask)
|
||||
{
|
||||
//aggiorna campi listino padre
|
||||
set(F_FATHCATVEN, _query_mask->get(F_FATHCATVEN));
|
||||
set(F_FATHDESVEN, _query_mask->get(F_FATHDESVEN));
|
||||
set(F_FATHCODLIS, _query_mask->get(F_FATHCODLIS));
|
||||
set(F_FATHDESLIS, _query_mask->get(F_FATHDESLIS));
|
||||
|
||||
// Determina se vengono gestiti i listini con unità di misura
|
||||
TToken_string chiave;
|
||||
chiave.add("L");
|
||||
chiave.add(get(F_FATHCATVEN));
|
||||
chiave.add("");
|
||||
chiave.add("");
|
||||
chiave.add(get(F_FATHCODLIS));
|
||||
const TRectype& rec_padre = cache().get(LF_CONDV, chiave);
|
||||
_ges_um = rec_padre.get_bool(CONDV_GESTUM);
|
||||
|
||||
//popola lo sheet dei listini figli
|
||||
fill_children_list();
|
||||
@ -599,17 +635,22 @@ bool TAggiorna_listini_query_mask::on_field_event(TOperable_field& o, TField_eve
|
||||
if (sheet.run() == K_ENTER)
|
||||
{
|
||||
//riempie la maschera di query
|
||||
TToken_string& row = sheet.row(-1);
|
||||
TToken_string& row = sheet.row(sheet.selected());
|
||||
set(F_FATHCATVEN, row.get(0), true);
|
||||
set(F_FATHCODLIS, row.get(1));
|
||||
set(F_FATHDESLIS, row.get(2));
|
||||
|
||||
//lancia la maschera di edit
|
||||
TAggiorna_listini_edit_mask edit_mask(this); //gli passa la maschera principale
|
||||
edit_mask.run();
|
||||
send_key(K_SPACE, DLG_OK);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case DLG_OK:
|
||||
if (e == fe_button && efield(F_FATHCODLIS).check())
|
||||
{
|
||||
//lancia la maschera di edit
|
||||
TAggiorna_listini_edit_mask edit_mask(this); //gli passa la maschera principale
|
||||
edit_mask.run();
|
||||
}
|
||||
return false; // NON deve uscire dal main loop!
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -641,10 +682,9 @@ public:
|
||||
|
||||
void TAggiorna_listini::main_loop()
|
||||
{
|
||||
TSheet_field::set_line_number_width(0);
|
||||
TAggiorna_listini_query_mask mask;
|
||||
while (mask.run() == K_ENTER)
|
||||
{
|
||||
}
|
||||
while (mask.run() == K_ENTER);
|
||||
}
|
||||
|
||||
bool TAggiorna_listini::create()
|
||||
|
@ -26,13 +26,38 @@ BEGIN
|
||||
PICTURE TOOL_ELABORA
|
||||
END
|
||||
|
||||
BUTTON DLG_ADDART 2 2
|
||||
BUTTON DLG_NEWREC 2 2
|
||||
BEGIN
|
||||
PROMPT 5 1 "A~ggiunge"
|
||||
PROMPT 5 1 "+Articoli"
|
||||
PICTURE TOOL_IMPORT
|
||||
END
|
||||
|
||||
#include <cancelbar.h>
|
||||
BUTTON DLG_NULL 2 2
|
||||
BEGIN
|
||||
PROMPT -1 1 ""
|
||||
PICTURE 0
|
||||
END
|
||||
|
||||
BUTTON DLG_INFO 2 2
|
||||
BEGIN
|
||||
PROMPT 1 1 "Info"
|
||||
MESSAGE EXIT,K_F2
|
||||
PICTURE TOOL_INFO
|
||||
END
|
||||
|
||||
BUTTON DLG_HELP 2 2
|
||||
BEGIN
|
||||
PROMPT 2 1 "Help"
|
||||
MESSAGE EXIT,K_F1
|
||||
PICTURE TOOL_HELP
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL 2 2
|
||||
BEGIN
|
||||
PROMPT 3 1 "Annulla"
|
||||
MESSAGE EXIT,K_ESC
|
||||
PICTURE TOOL_CANCEL
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
@ -50,6 +75,10 @@ END
|
||||
STRING F_FATHCATVEN 2
|
||||
BEGIN
|
||||
PROMPT 0 0 "@bDati listino padre "
|
||||
USE CVE
|
||||
INPUT CODTAB F_FATHCATVEN
|
||||
OUTPUT F_FATHDESVEN S0
|
||||
CHECKTYPE NORMAL
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
@ -62,6 +91,12 @@ END
|
||||
STRING F_FATHCODLIS 3
|
||||
BEGIN
|
||||
PROMPT 23 0 ""
|
||||
USE LF_CONDV
|
||||
INPUT TIPO "L"
|
||||
INPUT CATVEN F_FATHCATVEN
|
||||
INPUT COD F_FATHCODLIS
|
||||
OUTPUT F_FATHDESLIS DESCR
|
||||
CHECKTYPE REQUIRED
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
@ -119,7 +154,7 @@ BEGIN
|
||||
PROMPT 1 2 "@bListini figli"
|
||||
END
|
||||
|
||||
SPREADSHEET F_LISTINI_FIGLI 78 4
|
||||
SPREADSHEET F_LISTINI_FIGLI 78 5
|
||||
BEGIN
|
||||
PROMPT 0 3 "Listini figli"
|
||||
ITEM "Cat.Ven."
|
||||
@ -128,9 +163,9 @@ BEGIN
|
||||
ITEM "Descrizione@50"
|
||||
END
|
||||
|
||||
SPREADSHEET F_MULTILISTINI -1 -1
|
||||
SPREADSHEET F_MULTILISTINI
|
||||
BEGIN
|
||||
PROMPT 0 8 "Aggiornamento figli"
|
||||
PROMPT 0 9 "Aggiornamento figli"
|
||||
ITEM "@1"
|
||||
ITEM "Descrizione\nArticolo@30"
|
||||
ITEM "U. M. \nPrezzo base@8R"
|
||||
|
@ -803,14 +803,14 @@ class TPrice_sheet : public TArray_sheet
|
||||
protected:
|
||||
virtual bool get_ini_paragraph(const TEdit_field& f, TString& name) const;
|
||||
|
||||
virtual long handler(WINDOW win, EVENT* ep);
|
||||
virtual void handler(WINDOW win, EVENT* ep);
|
||||
TEdit_field& field() { return _fld; }
|
||||
|
||||
public:
|
||||
TPrice_sheet(TEdit_field& f);
|
||||
};
|
||||
|
||||
long TPrice_sheet::handler(WINDOW win, EVENT* ep)
|
||||
void TPrice_sheet::handler(WINDOW win, EVENT* ep)
|
||||
{
|
||||
if (ep->type == E_MOUSE_DOWN)
|
||||
{
|
||||
@ -834,7 +834,7 @@ long TPrice_sheet::handler(WINDOW win, EVENT* ep)
|
||||
xvt_menu_popup(menu->child, win, p, pa, NULL);
|
||||
xvt_res_free_menu_tree(menu);
|
||||
}
|
||||
return 0L;
|
||||
return;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@ -848,19 +848,19 @@ long TPrice_sheet::handler(WINDOW win, EVENT* ep)
|
||||
{
|
||||
case BROWSE_BAR + 1:
|
||||
save_columns_order(field());
|
||||
return 0L;
|
||||
return;
|
||||
case BROWSE_BAR + 2:
|
||||
set_columns_order(NULL);
|
||||
return 0L;
|
||||
return;
|
||||
case BROWSE_BAR + 3:
|
||||
fld(0).on_key(K_F11);
|
||||
return 0L;
|
||||
return;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return TArray_sheet::handler(win, ep);
|
||||
TArray_sheet::handler(win, ep);
|
||||
}
|
||||
|
||||
bool TPrice_sheet::get_ini_paragraph(const TEdit_field& field, TString& parag) const
|
||||
|
Loading…
x
Reference in New Issue
Block a user