Patch level : 12.0 no-patch
Files correlati : ve2.exe ve2400.uml Commento : Aggiunta gestione conai negli articoli Implemented #56
This commit is contained in:
parent
a1cce55c95
commit
1be4579e67
@ -9,8 +9,9 @@
|
||||
#include <modaut.h>
|
||||
#include <progind.h>
|
||||
#include <tabutil.h>
|
||||
#include "conart.h"
|
||||
|
||||
const char * get_token(TSheet_field & s, int r, int dlg)
|
||||
const char * get_token(TSheet_field & s, int r, int dlg)
|
||||
{
|
||||
TString & tmp = get_tmp_string(50);
|
||||
TToken_string & row = s.row(r);
|
||||
@ -141,7 +142,9 @@ protected:
|
||||
virtual void on_firm_change();
|
||||
bool search_on_file(const char * key, int file, int nkey, const char * field);
|
||||
virtual bool protected_record(TRectype&);
|
||||
|
||||
|
||||
void fill_conai(const TString& codart, TSheet_field& fld_con) const;
|
||||
int write_conai(const TMask& m) const;
|
||||
virtual int read(TMask& m);
|
||||
void load_um(TMask& m);
|
||||
virtual bool remove();
|
||||
@ -1987,8 +1990,79 @@ bool TAnagrafica_magazzino::protected_record(TRectype& rec)
|
||||
return TRUE;
|
||||
else
|
||||
return search_on_file(art, LF_RMOVMAG, 2, "CODART");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void TAnagrafica_magazzino::fill_conai(const TString& codart, TSheet_field& fld_con) const
|
||||
{
|
||||
// Distruggo e nascondo lo sheet
|
||||
fld_con.destroy();
|
||||
fld_con.hide();
|
||||
|
||||
TArticolo_conai ac(codart);
|
||||
auto mcon = ac.get_map();
|
||||
for(auto i = mcon.begin(); i != mcon.end(); ++i)
|
||||
{
|
||||
const TString cat = i->first;
|
||||
for(auto j = i->second.begin(); j != i->second.end(); ++j)
|
||||
{
|
||||
TToken_string& row = fld_con.row(-1);
|
||||
row.add(cat);
|
||||
row.add(j->first);
|
||||
row.add(j->second);
|
||||
}
|
||||
}
|
||||
|
||||
// Lo rimostro
|
||||
fld_con.show();
|
||||
}
|
||||
|
||||
int TAnagrafica_magazzino::write_conai(const TMask& m) const
|
||||
{
|
||||
int ok = NOERR;
|
||||
// Prima di tutto svuoto i campi del conai sull'articolo
|
||||
TLocalisamfile anamag(LF_ANAMAG);
|
||||
anamag.put(ANAMAG_CODART, m.get(F_CODART));
|
||||
if(anamag.read() == NOERR)
|
||||
{
|
||||
anamag.put(ANAMAG_CONAISC, "");
|
||||
anamag.put(ANAMAG_CONACC, "");
|
||||
anamag.put(ANAMAG_CONALL, "");
|
||||
anamag.put(ANAMAG_CONCAR, "");
|
||||
anamag.put(ANAMAG_CONLEG, "");
|
||||
anamag.put(ANAMAG_CONPLA, "");
|
||||
anamag.put(ANAMAG_CONVET, "");
|
||||
ok |= anamag.rewrite();
|
||||
}
|
||||
|
||||
// Adesso svuoto i record presenti in CONART
|
||||
TLocalisamfile conart(LF_CONART);
|
||||
TRelation rel_conart(LF_CONART);
|
||||
TRectype filter_conart(LF_CONART);
|
||||
filter_conart.put(ANAMAG_CODART, m.get(F_CODART));
|
||||
|
||||
TCursor cur_conart(&rel_conart, "", 1, &filter_conart, &filter_conart);
|
||||
while(cur_conart.items() > 0)
|
||||
{
|
||||
ok |= conart.remove(cur_conart.curr());
|
||||
}
|
||||
|
||||
// Infine salvo i nuovi dati in conart
|
||||
|
||||
TSheet_field& sheet_conai = m.sfield(F_SHEETCON);
|
||||
FOR_EACH_SHEET_ROW(sheet_conai, num_riga, row)
|
||||
{
|
||||
conart.zero();
|
||||
conart.put(CONART_CODART, m.get(F_CODART));
|
||||
conart.put(CONART_NRIGA, num_riga +1);
|
||||
conart.put(CONART_CATEGORIA, row->get(cid2index(FS_CAT_CONAI)));
|
||||
conart.put(CONART_SOTTOCAT, row->get(cid2index(FS_SCAT_CONAI)));
|
||||
conart.put(CONART_PESO, row->get(cid2index(FS_PES_CONAI)));
|
||||
ok |= conart.write();
|
||||
}
|
||||
|
||||
return ok;
|
||||
}
|
||||
|
||||
bool TAnagrafica_magazzino::user_create()
|
||||
{
|
||||
open_files(LF_TAB, LF_TABCOM, LF_ANAMAG, LF_MAG, LF_STOMAG,
|
||||
@ -2042,6 +2116,10 @@ int TAnagrafica_magazzino::read(TMask& m)
|
||||
|
||||
fld_giac.sort(cmp_rows);
|
||||
((TMask_anamag&) m).giacs() = fld_giac.rows_array();
|
||||
|
||||
// Lettura sheet CONAI
|
||||
TSheet_field &fld_con = m.sfield(F_SHEETCON);
|
||||
fill_conai(m.get(F_CODART), fld_con);
|
||||
return err;
|
||||
}
|
||||
|
||||
@ -2073,7 +2151,7 @@ bool TAnagrafica_magazzino::remove()
|
||||
TSheet_field& f = m.sfield(F_SHEETUM); // prende lo sheet delle unità di misura
|
||||
TLocalisamfile distinte(LF_DIST);
|
||||
distinte.put("CODDIST", m.get(F_CODART));
|
||||
int err = distinte.read();// esiste la distinta ?
|
||||
const int err = distinte.read();// esiste la distinta ?
|
||||
switch(err)
|
||||
{
|
||||
case _iskeynotfound :
|
||||
@ -2096,6 +2174,8 @@ int TAnagrafica_magazzino::write(const TMask& m)
|
||||
{
|
||||
TSheet_field& f = m.sfield(F_SHEETUM); // prende lo sheet delle unità di misura
|
||||
err = f.record()->write(FALSE);
|
||||
// Salvo il conai
|
||||
err |= write_conai(m);
|
||||
}
|
||||
return err;
|
||||
}
|
||||
@ -2176,12 +2256,15 @@ int TAnagrafica_magazzino::rewrite(const TMask& m)
|
||||
fld_giac.autoload(*get_relation());
|
||||
fld_giac.sort(cmp_rows);
|
||||
}
|
||||
|
||||
int err =TRelation_application::rewrite(m);
|
||||
|
||||
if (err == NOERR)
|
||||
{
|
||||
TSheet_field& f= m.sfield(F_SHEETUM); // prende lo sheet delle unità di misura
|
||||
err|=f.record()->write(TRUE);
|
||||
TSheet_field& f = m.sfield(F_SHEETUM); // prende lo sheet delle unità di misura
|
||||
err |= f.record()->write(TRUE);
|
||||
// Salvo il conai
|
||||
err |= write_conai(m);
|
||||
}
|
||||
((TMask_anamag &)m).ricalcola_giacenze();
|
||||
return err;
|
||||
|
@ -112,10 +112,11 @@
|
||||
#define F_DESCRALT 200
|
||||
|
||||
#define F_SHEETUM 201
|
||||
#define F_SHEETDESLIN 202
|
||||
#define F_SHEETCOD 203
|
||||
#define F_SHEETGIAC 204
|
||||
#define F_SHEETSTOMAG 205
|
||||
#define F_SHEETCON 202
|
||||
#define F_SHEETDESLIN 203
|
||||
#define F_SHEETCOD 204
|
||||
#define F_SHEETGIAC 205
|
||||
#define F_SHEETSTOMAG 206
|
||||
#define F_STOULTCOS1 210
|
||||
#define F_STOULTCOS2 211
|
||||
#define F_STOCOSTOSTD 212
|
||||
@ -240,6 +241,11 @@
|
||||
#define FS_PREZZO 103
|
||||
#define FS_PREZZO_LORDO 104
|
||||
|
||||
// definizioni per l'archivio del calcolo del CONAI
|
||||
#define FS_CAT_CONAI 101
|
||||
#define FS_SCAT_CONAI 102
|
||||
#define FS_PES_CONAI 103
|
||||
|
||||
// definizioni per l'archivio descrizioni in lingua estera
|
||||
#define FS_CODLIN 101
|
||||
#define FS_DESCR 102
|
||||
@ -255,7 +261,7 @@
|
||||
#define FS_TIPOCF 108
|
||||
#define FS_CODCF 109
|
||||
#define FS_RAGCF 110
|
||||
#define FS_DESCRC 111
|
||||
#define FS_DESCRC 111
|
||||
|
||||
// definizioni per l'archivio giacenze
|
||||
#include "ve2400d.h"
|
||||
|
@ -605,126 +605,13 @@ BEGIN
|
||||
FLAGS "R"
|
||||
END
|
||||
|
||||
TEXT DLG_NULL
|
||||
SPREADSHEET F_SHEETCON 78 8
|
||||
BEGIN
|
||||
PROMPT 1 14 "Sottocategorie"
|
||||
PROMPT 0 13 ""
|
||||
ITEM "Categoria@20"
|
||||
ITEM "Sottocategoria@20"
|
||||
ITEM "Peso@20"
|
||||
END
|
||||
|
||||
STRING F_SCAACC 4
|
||||
BEGIN
|
||||
PROMPT 1 15 "Acciaio "
|
||||
FIELD CONAISC[1,4]
|
||||
USE &SCC SELECT CODTAB[1,2]=="AC"
|
||||
INPUT CODTAB F_SCAACC
|
||||
DISPLAY "Categoria" CODTAB[1,2]
|
||||
DISPLAY "Sottocategoria" CODTAB[3,4]
|
||||
DISPLAY "Descrizione@50" S0
|
||||
MESSAGE EMPTY CLEAR,F_CONACC
|
||||
MESSAGE ENABLE,F_CONACC
|
||||
OUTPUT F_SCAACC CODTAB
|
||||
END
|
||||
|
||||
STRING F_SCAALL 4
|
||||
BEGIN
|
||||
PROMPT 27 15 "Alluminio "
|
||||
FIELD CONAISC[5,8]
|
||||
USE &SCC SELECT CODTAB[1,2]=="AL"
|
||||
INPUT CODTAB F_SCAALL
|
||||
COPY DISPLAY F_SCAACC
|
||||
OUTPUT F_SCAALL CODTAB
|
||||
MESSAGE EMPTY CLEAR,F_CONALL
|
||||
MESSAGE ENABLE,F_CONALL
|
||||
END
|
||||
|
||||
STRING F_SCACAR 4
|
||||
BEGIN
|
||||
PROMPT 54 15 "Carta "
|
||||
FIELD CONAISC[9,12]
|
||||
USE &SCC SELECT CODTAB[1,2]=="CA"
|
||||
INPUT CODTAB F_SCACAR
|
||||
COPY DISPLAY F_SCAACC
|
||||
OUTPUT F_SCACAR CODTAB
|
||||
MESSAGE EMPTY CLEAR,F_CONCAR
|
||||
MESSAGE ENABLE,F_CONCAR
|
||||
END
|
||||
|
||||
STRING F_SCAPLA 4
|
||||
BEGIN
|
||||
PROMPT 1 16 "Plastica "
|
||||
FIELD CONAISC[13,16]
|
||||
USE &SCC SELECT CODTAB[1,2]=="PL"
|
||||
INPUT CODTAB F_SCAPLA
|
||||
COPY DISPLAY F_SCAACC
|
||||
OUTPUT F_SCAPLA CODTAB
|
||||
MESSAGE EMPTY CLEAR,F_CONPLA
|
||||
MESSAGE ENABLE,F_CONPLA
|
||||
END
|
||||
|
||||
STRING F_SCALEG 4
|
||||
BEGIN
|
||||
PROMPT 27 16 "Legno "
|
||||
FIELD CONAISC[17,20]
|
||||
USE &SCC SELECT CODTAB[1,2]=="LE"
|
||||
INPUT CODTAB F_SCALEG
|
||||
COPY DISPLAY F_SCAACC
|
||||
OUTPUT F_SCALEG CODTAB
|
||||
MESSAGE EMPTY CLEAR,F_CONLEG
|
||||
MESSAGE ENABLE,F_CONLEG
|
||||
END
|
||||
|
||||
STRING F_SCAVET 4
|
||||
BEGIN
|
||||
PROMPT 54 16 "Vetro "
|
||||
FIELD CONAISC[21,24]
|
||||
USE &SCC SELECT CODTAB[1,2]=="VE"
|
||||
INPUT CODTAB F_SCAVET
|
||||
COPY DISPLAY F_SCAACC
|
||||
OUTPUT F_SCAVET CODTAB
|
||||
MESSAGE EMPTY CLEAR,F_CONVET
|
||||
MESSAGE ENABLE,F_CONVET
|
||||
END
|
||||
|
||||
TEXT DLG_NULL
|
||||
BEGIN
|
||||
PROMPT 1 17 "Pesi (Kg)"
|
||||
END
|
||||
|
||||
NUMBER F_CONACC 15 5
|
||||
BEGIN
|
||||
PROMPT 1 18 "Acciaio "
|
||||
FIELD CONACC
|
||||
END
|
||||
|
||||
NUMBER F_CONALL 15 5
|
||||
BEGIN
|
||||
PROMPT 27 18 "Alluminio "
|
||||
FIELD CONALL
|
||||
END
|
||||
|
||||
NUMBER F_CONCAR 15 5
|
||||
BEGIN
|
||||
PROMPT 54 18 "Carta "
|
||||
FIELD CONCAR
|
||||
END
|
||||
|
||||
NUMBER F_CONPLA 15 5
|
||||
BEGIN
|
||||
PROMPT 1 19 "Plastica "
|
||||
FIELD CONPLA
|
||||
END
|
||||
|
||||
NUMBER F_CONLEG 15 5
|
||||
BEGIN
|
||||
PROMPT 27 19 "Legno "
|
||||
FIELD CONLEG
|
||||
END
|
||||
|
||||
NUMBER F_CONVET 15 5
|
||||
BEGIN
|
||||
PROMPT 54 19 "Vetro "
|
||||
FIELD CONVET
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
|
||||
@ -1675,5 +1562,6 @@ ENDMASK
|
||||
#include "ve2400c.uml"
|
||||
#include "ve2400b.uml"
|
||||
#include "ve2400a.uml"
|
||||
#include "ve2400f.uml"
|
||||
#include "ve2400d.uml"
|
||||
#include "ve2400e.uml"
|
||||
|
@ -23,8 +23,8 @@ PAGE "Storico giacenze" -1 -1 80 23
|
||||
|
||||
STRING F_STOTIPORIGA 1
|
||||
BEGIN
|
||||
FLAGS "D"
|
||||
PROMPT 2 100 "Tipo riga"
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
|
||||
|
55
src/ve/ve2400f.uml
Normal file
55
src/ve/ve2400f.uml
Normal file
@ -0,0 +1,55 @@
|
||||
// SHEET 3 (CONAI) DI VE2400
|
||||
|
||||
PAGE "Pagina CONAI" 5 5 75 15
|
||||
|
||||
LIST FS_CAT_CONAI 12
|
||||
BEGIN
|
||||
PROMPT 3 2 "Codice categoria "
|
||||
ITEM "|"
|
||||
ITEM "AC|Acciaio"
|
||||
ITEM "AL|Alluminio"
|
||||
ITEM "CA|Carta"
|
||||
ITEM "LE|Legno"
|
||||
ITEM "PL|Plastica"
|
||||
ITEM "VE|Vetro"
|
||||
END
|
||||
|
||||
STRING FS_SCAT_CONAI 2
|
||||
BEGIN
|
||||
PROMPT 2 4 "Sottocategoria "
|
||||
USE &SCC
|
||||
INPUT CODTAB[1,2] FS_CAT_CONAI
|
||||
INPUT CODTAB[3,4] FS_SCAT_CONAI
|
||||
DISPLAY "Categoria" CODTAB[1,2]
|
||||
DISPLAY "Sottocategoria" CODTAB[3,4]
|
||||
DISPLAY "Descrizione@50" S0
|
||||
OUTPUT FS_CAT_CONAI CODTAB[1,2]
|
||||
OUTPUT FS_SCAT_CONAI CODTAB[3,4]
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
NUMBER FS_PES_CONAI 15 5
|
||||
BEGIN
|
||||
PROMPT 2 6 "Peso in Kg "
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -13 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL 10 2
|
||||
BEGIN
|
||||
PROMPT -23 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_DELREC 10 2
|
||||
BEGIN
|
||||
PROMPT -33 -1 "Elimina"
|
||||
MESSAGE EXIT,K_DEL
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
ENDMASK
|
Loading…
x
Reference in New Issue
Block a user