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 <tabutil.h>
|
||||||
|
|
||||||
#include "../mg/anamag.h"
|
#include "../mg/anamag.h"
|
||||||
|
#include "../mg/umart.h"
|
||||||
#include "condv.h"
|
#include "condv.h"
|
||||||
#include "rcondv.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)
|
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)
|
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 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);
|
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()
|
void TAggiorna_listini_edit_mask::fill_multilistini_sheet()
|
||||||
{
|
{
|
||||||
//popola il double-deck 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?)
|
//..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..
|
//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?)
|
//..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;
|
TString query;
|
||||||
query << "USE RCONDV\n";
|
query << "USE RCONDV\n";
|
||||||
query << "SELECT ANAMAG.GRMERC=#GRMERC\n";
|
query << "SELECT ANAMAG.GRMERC=#GRMERC\n";
|
||||||
//giro su tutti i figli nello sheet dei figli
|
|
||||||
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";
|
||||||
@ -327,7 +328,7 @@ bool TAggiorna_listini_edit_mask::one_checked()
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//checka-dechecka la colonna di spunte dello sheet
|
||||||
void TAggiorna_listini_edit_mask::check_all(const bool checked)
|
void TAggiorna_listini_edit_mask::check_all(const bool checked)
|
||||||
{
|
{
|
||||||
TSheet_field& sf_listini = sfield(F_MULTILISTINI);
|
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();
|
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)
|
bool TAggiorna_listini_edit_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||||
{
|
{
|
||||||
switch(o.dlg())
|
switch(o.dlg())
|
||||||
{
|
{
|
||||||
|
case F_LISTINI_FIGLI:
|
||||||
|
case F_MULTILISTINI:
|
||||||
|
if (e == se_query_add)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case F_GRMERC:
|
case F_GRMERC:
|
||||||
case F_SOTGRMERC:
|
case F_SOTGRMERC:
|
||||||
//una volta selezionati grmerc/sotgrmerc riempie la colonna ricarico dello sheet
|
//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());
|
check_all(!one_checked());
|
||||||
}
|
}
|
||||||
break;
|
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:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -566,6 +632,8 @@ TAggiorna_listini_query_mask::TAggiorna_listini_query_mask() : TAutomask("ve2700
|
|||||||
////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////
|
||||||
class TAggiorna_listini : public TSkeleton_application
|
class TAggiorna_listini : public TSkeleton_application
|
||||||
{
|
{
|
||||||
|
protected:
|
||||||
|
virtual bool create();
|
||||||
public:
|
public:
|
||||||
virtual void main_loop();
|
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[])
|
int ve2700(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
|
@ -176,19 +176,13 @@ PAGE "Riga listino figlio" -1 -1 78 22
|
|||||||
STRING F_CATVEN 2
|
STRING F_CATVEN 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 1 "Cat. ven. "
|
PROMPT 1 1 "Cat. ven. "
|
||||||
FLAGS "U"
|
FLAGS "UD"
|
||||||
KEY 1
|
|
||||||
USE CVE
|
|
||||||
INPUT CODTAB F_CATVEN
|
|
||||||
DISPLAY "Cat." CODTAB
|
|
||||||
DISPLAY "Descrizione@50" S0
|
|
||||||
OUTPUT F_CATVEN CODTAB
|
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_CODLIS 3
|
STRING F_CODLIS 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 2 "Listino "
|
PROMPT 1 2 "Listino "
|
||||||
FLAGS "U"
|
FLAGS "UD"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMBER F_RICARICO 4
|
NUMBER F_RICARICO 4
|
||||||
@ -199,7 +193,7 @@ END
|
|||||||
STRING F_DESLIS 50
|
STRING F_DESLIS 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 18 2 ""
|
PROMPT 18 2 ""
|
||||||
FLAGS ""
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
Loading…
x
Reference in New Issue
Block a user