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 <modaut.h>
|
||||||
#include <progind.h>
|
#include <progind.h>
|
||||||
#include <tabutil.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);
|
TString & tmp = get_tmp_string(50);
|
||||||
TToken_string & row = s.row(r);
|
TToken_string & row = s.row(r);
|
||||||
@ -142,6 +143,8 @@ protected:
|
|||||||
bool search_on_file(const char * key, int file, int nkey, const char * field);
|
bool search_on_file(const char * key, int file, int nkey, const char * field);
|
||||||
virtual bool protected_record(TRectype&);
|
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);
|
virtual int read(TMask& m);
|
||||||
void load_um(TMask& m);
|
void load_um(TMask& m);
|
||||||
virtual bool remove();
|
virtual bool remove();
|
||||||
@ -1989,6 +1992,77 @@ bool TAnagrafica_magazzino::protected_record(TRectype& rec)
|
|||||||
return search_on_file(art, LF_RMOVMAG, 2, "CODART");
|
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()
|
bool TAnagrafica_magazzino::user_create()
|
||||||
{
|
{
|
||||||
open_files(LF_TAB, LF_TABCOM, LF_ANAMAG, LF_MAG, LF_STOMAG,
|
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);
|
fld_giac.sort(cmp_rows);
|
||||||
((TMask_anamag&) m).giacs() = fld_giac.rows_array();
|
((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;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2073,7 +2151,7 @@ bool TAnagrafica_magazzino::remove()
|
|||||||
TSheet_field& f = m.sfield(F_SHEETUM); // prende lo sheet delle unità di misura
|
TSheet_field& f = m.sfield(F_SHEETUM); // prende lo sheet delle unità di misura
|
||||||
TLocalisamfile distinte(LF_DIST);
|
TLocalisamfile distinte(LF_DIST);
|
||||||
distinte.put("CODDIST", m.get(F_CODART));
|
distinte.put("CODDIST", m.get(F_CODART));
|
||||||
int err = distinte.read();// esiste la distinta ?
|
const int err = distinte.read();// esiste la distinta ?
|
||||||
switch(err)
|
switch(err)
|
||||||
{
|
{
|
||||||
case _iskeynotfound :
|
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
|
TSheet_field& f = m.sfield(F_SHEETUM); // prende lo sheet delle unità di misura
|
||||||
err = f.record()->write(FALSE);
|
err = f.record()->write(FALSE);
|
||||||
|
// Salvo il conai
|
||||||
|
err |= write_conai(m);
|
||||||
}
|
}
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
@ -2176,12 +2256,15 @@ int TAnagrafica_magazzino::rewrite(const TMask& m)
|
|||||||
fld_giac.autoload(*get_relation());
|
fld_giac.autoload(*get_relation());
|
||||||
fld_giac.sort(cmp_rows);
|
fld_giac.sort(cmp_rows);
|
||||||
}
|
}
|
||||||
|
|
||||||
int err =TRelation_application::rewrite(m);
|
int err =TRelation_application::rewrite(m);
|
||||||
|
|
||||||
if (err == NOERR)
|
if (err == NOERR)
|
||||||
{
|
{
|
||||||
TSheet_field& f= m.sfield(F_SHEETUM); // prende lo sheet delle unità di misura
|
TSheet_field& f = m.sfield(F_SHEETUM); // prende lo sheet delle unità di misura
|
||||||
err|=f.record()->write(TRUE);
|
err |= f.record()->write(TRUE);
|
||||||
|
// Salvo il conai
|
||||||
|
err |= write_conai(m);
|
||||||
}
|
}
|
||||||
((TMask_anamag &)m).ricalcola_giacenze();
|
((TMask_anamag &)m).ricalcola_giacenze();
|
||||||
return err;
|
return err;
|
||||||
|
@ -112,10 +112,11 @@
|
|||||||
#define F_DESCRALT 200
|
#define F_DESCRALT 200
|
||||||
|
|
||||||
#define F_SHEETUM 201
|
#define F_SHEETUM 201
|
||||||
#define F_SHEETDESLIN 202
|
#define F_SHEETCON 202
|
||||||
#define F_SHEETCOD 203
|
#define F_SHEETDESLIN 203
|
||||||
#define F_SHEETGIAC 204
|
#define F_SHEETCOD 204
|
||||||
#define F_SHEETSTOMAG 205
|
#define F_SHEETGIAC 205
|
||||||
|
#define F_SHEETSTOMAG 206
|
||||||
#define F_STOULTCOS1 210
|
#define F_STOULTCOS1 210
|
||||||
#define F_STOULTCOS2 211
|
#define F_STOULTCOS2 211
|
||||||
#define F_STOCOSTOSTD 212
|
#define F_STOCOSTOSTD 212
|
||||||
@ -240,6 +241,11 @@
|
|||||||
#define FS_PREZZO 103
|
#define FS_PREZZO 103
|
||||||
#define FS_PREZZO_LORDO 104
|
#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
|
// definizioni per l'archivio descrizioni in lingua estera
|
||||||
#define FS_CODLIN 101
|
#define FS_CODLIN 101
|
||||||
#define FS_DESCR 102
|
#define FS_DESCR 102
|
||||||
@ -255,7 +261,7 @@
|
|||||||
#define FS_TIPOCF 108
|
#define FS_TIPOCF 108
|
||||||
#define FS_CODCF 109
|
#define FS_CODCF 109
|
||||||
#define FS_RAGCF 110
|
#define FS_RAGCF 110
|
||||||
#define FS_DESCRC 111
|
#define FS_DESCRC 111
|
||||||
|
|
||||||
// definizioni per l'archivio giacenze
|
// definizioni per l'archivio giacenze
|
||||||
#include "ve2400d.h"
|
#include "ve2400d.h"
|
||||||
|
@ -605,126 +605,13 @@ BEGIN
|
|||||||
FLAGS "R"
|
FLAGS "R"
|
||||||
END
|
END
|
||||||
|
|
||||||
TEXT DLG_NULL
|
SPREADSHEET F_SHEETCON 78 8
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 14 "Sottocategorie"
|
PROMPT 0 13 ""
|
||||||
|
ITEM "Categoria@20"
|
||||||
|
ITEM "Sottocategoria@20"
|
||||||
|
ITEM "Peso@20"
|
||||||
END
|
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
|
ENDPAGE
|
||||||
|
|
||||||
|
|
||||||
@ -1675,5 +1562,6 @@ ENDMASK
|
|||||||
#include "ve2400c.uml"
|
#include "ve2400c.uml"
|
||||||
#include "ve2400b.uml"
|
#include "ve2400b.uml"
|
||||||
#include "ve2400a.uml"
|
#include "ve2400a.uml"
|
||||||
|
#include "ve2400f.uml"
|
||||||
#include "ve2400d.uml"
|
#include "ve2400d.uml"
|
||||||
#include "ve2400e.uml"
|
#include "ve2400e.uml"
|
||||||
|
@ -23,8 +23,8 @@ PAGE "Storico giacenze" -1 -1 80 23
|
|||||||
|
|
||||||
STRING F_STOTIPORIGA 1
|
STRING F_STOTIPORIGA 1
|
||||||
BEGIN
|
BEGIN
|
||||||
FLAGS "D"
|
|
||||||
PROMPT 2 100 "Tipo riga"
|
PROMPT 2 100 "Tipo riga"
|
||||||
|
FLAGS "D"
|
||||||
END
|
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