Patch level :10.0
Files correlati : Ricompilazione Demo : [ ] Commento : aggiunta lista articoli aggiungibili git-svn-id: svn://10.65.10.50/trunk@19402 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
72d6d48f97
commit
b2a56fe7fb
@ -8,6 +8,7 @@
|
||||
#include <tabutil.h>
|
||||
|
||||
#include "../mg/anamag.h"
|
||||
#include "../mg/umart.h"
|
||||
#include "condv.h"
|
||||
#include "rcondv.h"
|
||||
|
||||
@ -35,6 +36,7 @@ protected:
|
||||
int find_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)
|
||||
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
|
||||
@ -208,7 +210,7 @@ int TAggiorna_listini_edit_mask::find_codart(TSheet_field& sf, const TString& co
|
||||
void TAggiorna_listini_edit_mask::fill_multilistini_sheet()
|
||||
{
|
||||
//popola il double-deck sheet
|
||||
//cerca tutte le righe che appartengono a pedre e figli; se una riga appartiene ad un figlio e non al padre..
|
||||
//cerca tutte le righe che appartengono a padre e figli; se una riga appartiene ad un figlio e non al padre..
|
||||
//..viene aggiunta al padre medesimo (i padri devono sapere tutto dei figli, sennò che genitori sono?)
|
||||
//se invece la riga appartiene al padre e non a uno o più figli questi ultimi saranno lasciati nella..
|
||||
//..loro ignoranza di tale riga (un padre qualche vantaggio dovrà pur averlo, no?)
|
||||
@ -247,7 +249,6 @@ void TAggiorna_listini_edit_mask::fill_multilistini_sheet()
|
||||
TString query;
|
||||
query << "USE RCONDV\n";
|
||||
query << "SELECT ANAMAG.GRMERC=#GRMERC\n";
|
||||
//giro su tutti i figli nello sheet dei figli
|
||||
query << "JOIN ANAMAG INTO CODART==CODRIGA\n";
|
||||
query << "FROM TIPO=L CATVEN=#CATVEN COD=#COD TIPORIGA=A\n";
|
||||
query << "TO TIPO=L CATVEN=#CATVEN COD=#COD TIPORIGA=A\n";
|
||||
@ -327,7 +328,7 @@ bool TAggiorna_listini_edit_mask::one_checked()
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
//checka-dechecka la colonna di spunte dello sheet
|
||||
void TAggiorna_listini_edit_mask::check_all(const bool checked)
|
||||
{
|
||||
TSheet_field& sf_listini = sfield(F_MULTILISTINI);
|
||||
@ -338,11 +339,68 @@ void TAggiorna_listini_edit_mask::check_all(const bool checked)
|
||||
sf_listini.force_update();
|
||||
}
|
||||
|
||||
//aggiunge un articolo ai listini
|
||||
void TAggiorna_listini_edit_mask::add_art()
|
||||
{
|
||||
//si possono aggiungere solo articoli con lo stesso GRMERC selezionato ma non ancora in listino padre, oppure..
|
||||
//..articoli orfani di grmerc (che però saranno sconsigliati!)
|
||||
//(per adesso solo con l'unità di misura principale;per aggiungere gli articoli con più unità di misura..
|
||||
//..si rimanda al programma principale di gestione listini ve2500!!)
|
||||
TString query;
|
||||
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";
|
||||
TISAM_recordset recset(query);
|
||||
TString8 grmerc;
|
||||
grmerc.format("%-3s%-2s", (const char*)get(F_GRMERC),(const char*)get(F_SOTGRMERC));
|
||||
recset.set_var("#GRMERC", grmerc);
|
||||
recset.set_var("#CATVEN", get(F_FATHCATVEN));
|
||||
recset.set_var("#COD", get(F_FATHCODLIS));
|
||||
|
||||
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"));
|
||||
|
||||
TProgind pi(recset_items, TR("Ricerca articoli aggiungibili..."), true, true);
|
||||
|
||||
for (bool ok = recset.move_first(); ok; ok = recset.move_next())
|
||||
{
|
||||
if (!pi.addstatus(1))
|
||||
break;
|
||||
|
||||
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("");
|
||||
const TString codart = recset.get(ANAMAG_CODART).as_string();
|
||||
row.add(codart);
|
||||
const TString& um = recset.get(UMART_UM).as_string();
|
||||
row.add(um);
|
||||
const TString& descr = recset.get(ANAMAG_DESCR).as_string();
|
||||
row.add(descr);
|
||||
|
||||
sheet.add(row);
|
||||
}
|
||||
sheet.rows_array().sort(false);
|
||||
sheet.run();
|
||||
}
|
||||
|
||||
bool TAggiorna_listini_edit_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
switch(o.dlg())
|
||||
{
|
||||
case F_LISTINI_FIGLI:
|
||||
case F_MULTILISTINI:
|
||||
if (e == se_query_add)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case F_GRMERC:
|
||||
case F_SOTGRMERC:
|
||||
//una volta selezionati grmerc/sotgrmerc riempie la colonna ricarico dello sheet
|
||||
@ -372,6 +430,14 @@ bool TAggiorna_listini_edit_mask::on_field_event(TOperable_field& o, TField_even
|
||||
check_all(!one_checked());
|
||||
}
|
||||
break;
|
||||
case DLG_ADDART:
|
||||
if (e == fe_button)
|
||||
{
|
||||
if (field(F_GRMERC).empty())
|
||||
return error_box(TR("Per aggiungere articoli è necessario selezionare un gruppo merceologico!"));
|
||||
add_art();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -566,6 +632,8 @@ TAggiorna_listini_query_mask::TAggiorna_listini_query_mask() : TAutomask("ve2700
|
||||
////////////////////////////////////////////////////////
|
||||
class TAggiorna_listini : public TSkeleton_application
|
||||
{
|
||||
protected:
|
||||
virtual bool create();
|
||||
public:
|
||||
virtual void main_loop();
|
||||
};
|
||||
@ -579,6 +647,17 @@ void TAggiorna_listini::main_loop()
|
||||
}
|
||||
}
|
||||
|
||||
bool TAggiorna_listini::create()
|
||||
{
|
||||
//controlla che solo il producer AGA possa usare questo programma
|
||||
const int oem = ini_get_int(CONFIG_OEM, "MAIN", "OEM", -1);
|
||||
if (oem != 0)
|
||||
{
|
||||
error_box(TR("Programma non autorizzato!"));
|
||||
return false;
|
||||
}
|
||||
return TSkeleton_application::create();
|
||||
}
|
||||
|
||||
int ve2700(int argc, char* argv[])
|
||||
{
|
||||
|
@ -176,19 +176,13 @@ PAGE "Riga listino figlio" -1 -1 78 22
|
||||
STRING F_CATVEN 2
|
||||
BEGIN
|
||||
PROMPT 1 1 "Cat. ven. "
|
||||
FLAGS "U"
|
||||
KEY 1
|
||||
USE CVE
|
||||
INPUT CODTAB F_CATVEN
|
||||
DISPLAY "Cat." CODTAB
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT F_CATVEN CODTAB
|
||||
FLAGS "UD"
|
||||
END
|
||||
|
||||
STRING F_CODLIS 3
|
||||
BEGIN
|
||||
PROMPT 1 2 "Listino "
|
||||
FLAGS "U"
|
||||
FLAGS "UD"
|
||||
END
|
||||
|
||||
NUMBER F_RICARICO 4
|
||||
@ -199,7 +193,7 @@ END
|
||||
STRING F_DESLIS 50
|
||||
BEGIN
|
||||
PROMPT 18 2 ""
|
||||
FLAGS ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
Loading…
x
Reference in New Issue
Block a user