Patch level : 12.0 310 316

Files correlati     : or1.exe or1400a.msk

Progetto 348 Cigno
------------------

Aggiunto richiamo documenti Budget
Possibilità di aggiungere righe a ordini già esistenti

git-svn-id: svn://10.65.10.50/branches/R_10_00@23477 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
bonazzi 2016-12-26 23:20:58 +00:00
parent 4daa30dd87
commit 2e23dfaee7
4 changed files with 1391 additions and 1269 deletions

View File

@ -110,7 +110,6 @@ protected:
virtual void next_page(int p); virtual void next_page(int p);
public: public:
TGenera_ordini_mask(); TGenera_ordini_mask();
~TGenera_ordini_mask(); ~TGenera_ordini_mask();
}; };
@ -589,6 +588,30 @@ bool TGenera_ordini_mask::on_field_event(TOperable_field& o, TField_event e, lon
ok = false; // Non uscire ok = false; // Non uscire
} }
break; break;
case DLG_LINK:
{
TString appname("ve0 -0 -i");
TFilename msg; msg.temp("msg", "ini");
appname << msg;
TExternal_app app(appname);
{
TConfig ini(msg, "Transaction");
ini.set("Action", "LINK");
TString para; para << LF_DOC;
ini.set_paragraph(para);
ini.set(DOC_PROVV, "D");
ini.set(DOC_ANNO, get(F_ANNOB));
ini.set(DOC_CODNUM, get(F_CODNUMB));
ini.set(DOC_NDOC, get(F_NUMDOCB));
}
app.run();
}
break;
case DLG_OK: case DLG_OK:
if (e == fe_button && jolly == 0) if (e == fe_button && jolly == 0)
{ {
@ -704,7 +727,7 @@ TGenera_ordini_mask::TGenera_ordini_mask()
TGenera_ordini_mask::~TGenera_ordini_mask() TGenera_ordini_mask::~TGenera_ordini_mask()
{ {
// serialize(true); serialize(true);
} }
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
@ -1021,9 +1044,6 @@ void TCreazione_ordini::generate_orders()
{ {
TGenera_ordini_mask& mask = *_mask; TGenera_ordini_mask& mask = *_mask;
TSheet_field& sf = mask.sfield(F_ARTICLES); TSheet_field& sf = mask.sfield(F_ARTICLES);
long minforn = 999999L;
long maxforn = 0L;
TAssoc_array orders; TAssoc_array orders;
if (sf.items() > 0) if (sf.items() > 0)
@ -1064,11 +1084,14 @@ void TCreazione_ordini::generate_orders()
const TString4 codiva(forven.get(CFV_ASSFIS)); const TString4 codiva(forven.get(CFV_ASSFIS));
const TString commessa = row->get(sf.cid2index(F_CDC)); const TString commessa = row->get(sf.cid2index(F_CDC));
const TString fase = row->get(sf.cid2index(F_FSC)); const TString fase = row->get(sf.cid2index(F_FSC));
const long ndoc = atol(row->get(sf.cid2index(F_NUMDOC)));
TDocumento* d = (TDocumento*)orders.objptr(codforn); key.format("%s|%ld", (const char *) codforn, ndoc);
TDocumento* d = (TDocumento*)orders.objptr(key);
if (d == NULL) if (d == NULL)
{ {
d = new TDocumento('D', datadoc.year(), codnum, 0L); d = new TDocumento('D', datadoc.year(), codnum, ndoc);
d->put(DOC_TIPODOC, tipodoc); d->put(DOC_TIPODOC, tipodoc);
d->put(DOC_TIPOCF, "F"); d->put(DOC_TIPOCF, "F");
d->put(DOC_CODCF, codforn); d->put(DOC_CODCF, codforn);
@ -1105,11 +1128,7 @@ void TCreazione_ordini::generate_orders()
const TString& causmag = tipo.caus_mov(); const TString& causmag = tipo.caus_mov();
d->put(DOC_CAUSMAG, causmag); d->put(DOC_CAUSMAG, causmag);
orders.add(codforn, d); orders.add(key, d);
if (cod < minforn)
minforn = cod;
if (cod > maxforn)
maxforn = cod;
} }
TRiga_documento& rdoc = d->new_row("01"); TRiga_documento& rdoc = d->new_row("01");
@ -1163,16 +1182,16 @@ void TCreazione_ordini::generate_orders()
TProgind pi(orders.items(), TR("Registrazione ordini"), true, true); TProgind pi(orders.items(), TR("Registrazione ordini"), true, true);
TString cmdline; TString cmdline;
int cnt = 0; int cnt = 0;
TString8 key; TString_array keys;
long mindoc = 0, maxdoc = 0; long mindoc = 0, maxdoc = 0;
for (long cod = minforn; cod <= maxforn; cod++)
{ orders.get_keys(keys);
key.format("%ld", cod); keys.sort();
TDocumento* d = (TDocumento*)orders.objptr(key); for (TString * key = (TString *) keys.first_item(); key != NULL; key = (TString *) keys.succ_item())
if (d != NULL)
{ {
if (!pi.addstatus(1)) if (!pi.addstatus(1))
break; break;
TDocumento * d = (TDocumento *) orders.objptr(*key);
if (d->write() == NOERR) if (d->write() == NOERR)
{ {
if (cmdline.blank()) if (cmdline.blank())
@ -1195,13 +1214,14 @@ void TCreazione_ordini::generate_orders()
maxdoc = ndoc; maxdoc = ndoc;
} }
} }
}
if (yesno_box(TR("Sono stati generati %d documenti:\nSi desidera stamparli ora?"), cnt)) if (yesno_box(TR("Sono stati generati %d documenti:\nSi desidera stamparli ora?"), cnt))
{ {
const TString& codnum = mask.get(F_CODNUM); const TString& codnum = mask.get(F_CODNUM);
const TDate datadoc(TODAY); const TDate datadoc(TODAY);
const int anno = datadoc.year(); const int anno = datadoc.year();
cmdline << " " << codnum << ' ' << anno << " D " << mindoc << ' ' << maxdoc; cmdline << " " << codnum << ' ' << anno << " D " << mindoc << ' ' << maxdoc;
TExternal_app prg(cmdline); TExternal_app prg(cmdline);
prg.run(true, true, false); prg.run(true, true, false);
} }

View File

@ -31,6 +31,12 @@
#define DLG_DELDOC 179 #define DLG_DELDOC 179
#define F_DATADOC 180 #define F_DATADOC 180
#define DLG_PRINTINV 181 #define DLG_PRINTINV 181
#define F_ANNOB 182
#define F_CODNUMB 183
#define F_DASTATOB 184
#define F_ASTATOB 185
#define F_NUMDOCB 186
#define F_DESNUMB 187
#define F_DASTATO 201 #define F_DASTATO 201
#define F_ASTATO 202 #define F_ASTATO 202
@ -45,26 +51,27 @@
#define F_DATACONS 105 #define F_DATACONS 105
#define F_FORNITORE 106 #define F_FORNITORE 106
#define F_RAGSOC 107 #define F_RAGSOC 107
#define F_CDC 108 #define F_NUMDOC 108
#define F_FSC 109 #define F_CDC 109
#define F_CODAGG1 110 #define F_FSC 110
#define F_CODAGG2 111 #define F_CODAGG1 111
#define F_LEADTIME 112 #define F_CODAGG2 112
#define F_LOTTOMIN 113 #define F_LEADTIME 113
#define F_DESCRAGG 114 #define F_LOTTOMIN 114
#define F_GIACENZA 115 #define F_DESCRAGG 115
#define F_PPCONF 116 #define F_GIACENZA 116
#define F_DISPON 117 #define F_PPCONF 117
#define F_USER1 118 #define F_DISPON 118
#define F_USER2 119 #define F_USER1 119
#define F_USER3 120 #define F_USER2 120
#define F_USER4 121 #define F_USER3 121
#define F_USER5 122 #define F_USER4 122
#define F_USER6 123 #define F_USER5 123
#define F_USER7 124 #define F_USER6 124
#define F_USER8 125 #define F_USER7 125
#define F_USER9 126 #define F_USER8 126
#define F_USER10 127 #define F_USER9 127
#define F_USER10 128
#define S_DATADOC 101 #define S_DATADOC 101
#define S_NUMDOC 102 #define S_NUMDOC 102

View File

@ -52,9 +52,39 @@ BEGIN
FLAGS "A" FLAGS "A"
END END
NUMBER F_ANNOB 4
BEGIN
PROMPT 30 0 "Anno "
FLAGS "A"
END
NUMBER F_NUMDOCB 6
BEGIN
PROMPT 45 0 "Numero budget "
FIELD NDOC
USE LF_DOC SELECT (STATO>=#F_DASTATOB)&&(STATO<=#F_ASTATOB)
JOIN 20 INTO CODCF=CODCF TIPOCF=TIPOCF
INPUT PROVV "D"
INPUT ANNO F_ANNOB SELECT
INPUT CODNUM F_CODNUMB SELECT
INPUT NDOC F_NUMDOCB
DISPLAY "Data@10" DATADOC
DISPLAY "Numero@7" NDOC
DISPLAY "Cliente/Fornitore@40" 20->RAGSOC
OUTPUT F_NUMDOCB NDOC
CHECKTYPE NORMAL
ADD RUN ve0 -0
END
BUTTON DLG_LINK 10 1
BEGIN
PROMPT 68 0 "Budget"
END
SPREADSHEET F_ARTICLES SPREADSHEET F_ARTICLES
BEGIN BEGIN
PROMPT 1 1 "Articoli" PROMPT 1 2 "Articoli"
ITEM "Codice\nArticolo@20" ITEM "Codice\nArticolo@20"
ITEM "Descrizione@50" ITEM "Descrizione@50"
ITEM "UM" ITEM "UM"
@ -62,6 +92,7 @@ BEGIN
ITEM "Data\nConsegna@10" ITEM "Data\nConsegna@10"
ITEM "Codice\nFornitore" ITEM "Codice\nFornitore"
ITEM "Ragione sociale@50" ITEM "Ragione sociale@50"
ITEM "Numero\nOrdine"
ITEM "Commessa@20" ITEM "Commessa@20"
ITEM "Fase@10" ITEM "Fase@10"
ITEM "Codice\nAggiuntivo 1@20" ITEM "Codice\nAggiuntivo 1@20"
@ -307,7 +338,7 @@ ENDPAGE
PAGE "Parametri" 0 0 0 -3 PAGE "Parametri" 0 0 0 -3
GROUPBOX DLG_NULL 78 4 GROUPBOX DLG_NULL 78 6
BEGIN BEGIN
PROMPT 1 1 "@bTipologia documento ordine" PROMPT 1 1 "@bTipologia documento ordine"
END END
@ -362,15 +393,62 @@ BEGIN
CHECKTYPE SEARCH CHECKTYPE SEARCH
END END
STRING F_CODNUMB 4
GROUPBOX DLG_NULL 78 6
BEGIN BEGIN
PROMPT 1 6 "@bMagazzino / Deposito" PROMPT 2 4 "Num. budget "
USE %NUM
INPUT CODTAB F_CODNUMB
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_CODNUMB CODTAB
OUTPUT F_DESNUMB S0
FLAG "UG"
CHECKTYPE REQUIRED
FIELD OR14_NUMB
END
STRING F_DESNUMB 50
BEGIN
PROMPT 24 4 ""
USE %NUM KEY 2
INPUT S0 F_DESNUMB
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
COPY OUTPUT F_CODNUMB
CHECKTYPE SEARCH
END
STRING F_DASTATOB 1
BEGIN
PROMPT 2 5 "Da stato "
USE %STD
INPUT CODTAB F_DASTATOB
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_DASTATOB CODTAB
CHECKTYPE REQUIRED
FIELD OR14_DASTATOB
END
STRING F_ASTATOB 1
BEGIN
PROMPT 24 5 "A stato "
COPY USE F_DASTATOB
INPUT CODTAB F_ASTATOB
COPY DISPLAY F_DASTATOB
OUTPUT F_ASTATOB CODTAB
CHECKTYPE REQUIRED
FIELD OR14_ASTATOB
END
GROUPBOX DLG_NULL 78 8
BEGIN
PROMPT 1 8 "@bMagazzino / Deposito"
END END
STRING F_MAG 3 STRING F_MAG 3
BEGIN BEGIN
PROMPT 2 7 "Magazzino " PROMPT 2 9 "Magazzino "
FLAGS "UG" FLAGS "UG"
USE MAG SELECT CODTAB[4,5]=="" USE MAG SELECT CODTAB[4,5]==""
INPUT CODTAB F_MAG INPUT CODTAB F_MAG
@ -383,7 +461,7 @@ END
STRING F_DESMAG 50 STRING F_DESMAG 50
BEGIN BEGIN
PROMPT 24 7 "" PROMPT 24 9 ""
USE MAG KEY 2 SELECT CODTAB[4,5]=="" USE MAG KEY 2 SELECT CODTAB[4,5]==""
INPUT S0 F_DESMAG INPUT S0 F_DESMAG
DISPLAY "Denominazione magazzino@50" S0 DISPLAY "Denominazione magazzino@50" S0
@ -395,7 +473,7 @@ END
STRING F_DEP 2 STRING F_DEP 2
BEGIN BEGIN
PROMPT 2 8 "Deposito " PROMPT 2 10 "Deposito "
FLAGS "U" FLAGS "U"
USE MAG SELECT (CODTAB[1,3]==#F_MAG)&&(CODTAB[4,5]!="") USE MAG SELECT (CODTAB[1,3]==#F_MAG)&&(CODTAB[4,5]!="")
INPUT CODTAB[1,3] F_MAG INPUT CODTAB[1,3] F_MAG
@ -410,7 +488,7 @@ END
STRING F_DESDEP 50 STRING F_DESDEP 50
BEGIN BEGIN
PROMPT 24 8 "" PROMPT 24 10 ""
USE MAG KEY 2 SELECT (CODTAB[1,3]==#F_MAG)&&(CODTAB[4,5]!="") USE MAG KEY 2 SELECT (CODTAB[1,3]==#F_MAG)&&(CODTAB[4,5]!="")
INPUT S0 F_DESDEP INPUT S0 F_DESDEP
COPY DISPLAY F_DESMAG COPY DISPLAY F_DESMAG
@ -420,7 +498,7 @@ END
STRING F_MAGC 3 STRING F_MAGC 3
BEGIN BEGIN
PROMPT 2 9 "Magazzino " PROMPT 2 11 "Magazzino "
FLAGS "UG" FLAGS "UG"
USE MAG SELECT CODTAB[4,5]=="" USE MAG SELECT CODTAB[4,5]==""
INPUT CODTAB F_MAGC INPUT CODTAB F_MAGC
@ -433,7 +511,7 @@ END
STRING F_DESMAGC 50 STRING F_DESMAGC 50
BEGIN BEGIN
PROMPT 24 9 "" PROMPT 24 11 ""
USE MAG KEY 2 SELECT CODTAB[4,5]=="" USE MAG KEY 2 SELECT CODTAB[4,5]==""
INPUT S0 F_DESMAGC INPUT S0 F_DESMAGC
DISPLAY "Denominazione magazzino@50" S0 DISPLAY "Denominazione magazzino@50" S0
@ -445,7 +523,7 @@ END
STRING F_DEPC 2 STRING F_DEPC 2
BEGIN BEGIN
PROMPT 2 10 "Deposito " PROMPT 2 12 "Deposito "
FLAGS "U" FLAGS "U"
USE MAG SELECT (CODTAB[1,3]==#F_MAG)&&(CODTAB[4,5]!="") USE MAG SELECT (CODTAB[1,3]==#F_MAG)&&(CODTAB[4,5]!="")
INPUT CODTAB[1,3] F_MAGC INPUT CODTAB[1,3] F_MAGC
@ -460,7 +538,7 @@ END
STRING F_DESDEPC 50 STRING F_DESDEPC 50
BEGIN BEGIN
PROMPT 24 10 "" PROMPT 24 12 ""
USE MAG KEY 2 SELECT (CODTAB[1,3]==#F_MAG)&&(CODTAB[4,5]!="") USE MAG KEY 2 SELECT (CODTAB[1,3]==#F_MAG)&&(CODTAB[4,5]!="")
INPUT S0 F_DESDEPC INPUT S0 F_DESDEPC
COPY DISPLAY F_DESMAG COPY DISPLAY F_DESMAG
@ -470,12 +548,12 @@ END
GROUPBOX DLG_NULL 78 3 GROUPBOX DLG_NULL 78 3
BEGIN BEGIN
PROMPT 1 14 "@bValorizzazione" PROMPT 1 16 "@bValorizzazione"
END END
LIST F_PREZZO 15 LIST F_PREZZO 15
BEGIN BEGIN
PROMPT 2 15 "Prezzo " PROMPT 2 17 "Prezzo "
ITEM "U|Ultimo Costo" ITEM "U|Ultimo Costo"
ITEM "S|Costo Standard" ITEM "S|Costo Standard"
FIELD OR14_TPR FIELD OR14_TPR
@ -567,9 +645,26 @@ BEGIN
ADD RUN CG0 -1 ADD RUN CG0 -1
END END
NUMBER F_NUMDOC 6
BEGIN
PROMPT 2 8 "Numero "
FIELD NDOC
USE LF_DOC SELECT CODCF==#F_FORNITORE
JOIN 20 INTO CODCF=CODCF TIPOCF=TIPOCF
INPUT PROVV "D"
INPUT ANNO -F_ANNO SELECT
INPUT CODNUM -F_CODNUM SELECT
INPUT NDOC F_NUMDOC
DISPLAY "Data@10" DATADOC
DISPLAY "Numero@7" NDOC
DISPLAY "Cliente/Fornitore@40" 20->RAGSOC
OUTPUT F_NUMDOC NDOC
CHECKTYPE NORMAL
END
STRING F_CDC 20 STRING F_CDC 20
BEGIN BEGIN
PROMPT 2 8 "CDC/Commessa " PROMPT 2 10 "CDC/Commessa "
FLAGS "UZ" FLAGS "UZ"
USE CMS USE CMS
INPUT CODTAB F_CDC INPUT CODTAB F_CDC
@ -581,7 +676,7 @@ END
STRING F_FSC 10 STRING F_FSC 10
BEGIN BEGIN
PROMPT 42 8 "Fase " PROMPT 42 10 "Fase "
FLAGS "UZ" FLAGS "UZ"
USE FSC USE FSC
INPUT CODTAB F_FSC INPUT CODTAB F_FSC
@ -593,29 +688,29 @@ END
STRING F_CODAGG1 20 STRING F_CODAGG1 20
BEGIN BEGIN
PROMPT 2 9 "Codice agg. 1 " PROMPT 2 11 "Codice agg. 1 "
END END
STRING F_CODAGG2 20 STRING F_CODAGG2 20
BEGIN BEGIN
PROMPT 42 9 "Codice agg. 2 " PROMPT 42 11 "Codice agg. 2 "
END END
NUMBER F_LEADTIME 5 NUMBER F_LEADTIME 5
BEGIN BEGIN
PROMPT 2 11 "Lead time " PROMPT 2 13 "Lead time "
FLAGS "D" FLAGS "D"
END END
NUMBER F_LOTTOMIN 10 3 NUMBER F_LOTTOMIN 10 3
BEGIN BEGIN
PROMPT 42 11 "Lotto " PROMPT 42 13 "Lotto "
FLAGS "D" FLAGS "D"
END END
MEMO F_DESCRAGG 50 4 MEMO F_DESCRAGG 50 4
BEGIN BEGIN
PROMPT 2 12 "Descr.aggiuntiva" PROMPT 2 14 "Descr.aggiuntiva"
FLAGS "D" FLAGS "D"
END END