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);
public:
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
}
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:
if (e == fe_button && jolly == 0)
{
@ -704,7 +727,7 @@ 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;
TSheet_field& sf = mask.sfield(F_ARTICLES);
long minforn = 999999L;
long maxforn = 0L;
TAssoc_array orders;
if (sf.items() > 0)
@ -1064,11 +1084,14 @@ void TCreazione_ordini::generate_orders()
const TString4 codiva(forven.get(CFV_ASSFIS));
const TString commessa = row->get(sf.cid2index(F_CDC));
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)
{
d = new TDocumento('D', datadoc.year(), codnum, 0L);
d = new TDocumento('D', datadoc.year(), codnum, ndoc);
d->put(DOC_TIPODOC, tipodoc);
d->put(DOC_TIPOCF, "F");
d->put(DOC_CODCF, codforn);
@ -1105,11 +1128,7 @@ void TCreazione_ordini::generate_orders()
const TString& causmag = tipo.caus_mov();
d->put(DOC_CAUSMAG, causmag);
orders.add(codforn, d);
if (cod < minforn)
minforn = cod;
if (cod > maxforn)
maxforn = cod;
orders.add(key, d);
}
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);
TString cmdline;
int cnt = 0;
TString8 key;
TString_array keys;
long mindoc = 0, maxdoc = 0;
for (long cod = minforn; cod <= maxforn; cod++)
{
key.format("%ld", cod);
TDocumento* d = (TDocumento*)orders.objptr(key);
if (d != NULL)
orders.get_keys(keys);
keys.sort();
for (TString * key = (TString *) keys.first_item(); key != NULL; key = (TString *) keys.succ_item())
{
if (!pi.addstatus(1))
break;
TDocumento * d = (TDocumento *) orders.objptr(*key);
if (d->write() == NOERR)
{
if (cmdline.blank())
@ -1195,13 +1214,14 @@ void TCreazione_ordini::generate_orders()
maxdoc = ndoc;
}
}
}
if (yesno_box(TR("Sono stati generati %d documenti:\nSi desidera stamparli ora?"), cnt))
{
const TString& codnum = mask.get(F_CODNUM);
const TDate datadoc(TODAY);
const int anno = datadoc.year();
cmdline << " " << codnum << ' ' << anno << " D " << mindoc << ' ' << maxdoc;
TExternal_app prg(cmdline);
prg.run(true, true, false);
}

View File

@ -31,6 +31,12 @@
#define DLG_DELDOC 179
#define F_DATADOC 180
#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_ASTATO 202
@ -45,26 +51,27 @@
#define F_DATACONS 105
#define F_FORNITORE 106
#define F_RAGSOC 107
#define F_CDC 108
#define F_FSC 109
#define F_CODAGG1 110
#define F_CODAGG2 111
#define F_LEADTIME 112
#define F_LOTTOMIN 113
#define F_DESCRAGG 114
#define F_GIACENZA 115
#define F_PPCONF 116
#define F_DISPON 117
#define F_USER1 118
#define F_USER2 119
#define F_USER3 120
#define F_USER4 121
#define F_USER5 122
#define F_USER6 123
#define F_USER7 124
#define F_USER8 125
#define F_USER9 126
#define F_USER10 127
#define F_NUMDOC 108
#define F_CDC 109
#define F_FSC 110
#define F_CODAGG1 111
#define F_CODAGG2 112
#define F_LEADTIME 113
#define F_LOTTOMIN 114
#define F_DESCRAGG 115
#define F_GIACENZA 116
#define F_PPCONF 117
#define F_DISPON 118
#define F_USER1 119
#define F_USER2 120
#define F_USER3 121
#define F_USER4 122
#define F_USER5 123
#define F_USER6 124
#define F_USER7 125
#define F_USER8 126
#define F_USER9 127
#define F_USER10 128
#define S_DATADOC 101
#define S_NUMDOC 102

View File

@ -52,9 +52,39 @@ BEGIN
FLAGS "A"
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
BEGIN
PROMPT 1 1 "Articoli"
PROMPT 1 2 "Articoli"
ITEM "Codice\nArticolo@20"
ITEM "Descrizione@50"
ITEM "UM"
@ -62,6 +92,7 @@ BEGIN
ITEM "Data\nConsegna@10"
ITEM "Codice\nFornitore"
ITEM "Ragione sociale@50"
ITEM "Numero\nOrdine"
ITEM "Commessa@20"
ITEM "Fase@10"
ITEM "Codice\nAggiuntivo 1@20"
@ -307,7 +338,7 @@ ENDPAGE
PAGE "Parametri" 0 0 0 -3
GROUPBOX DLG_NULL 78 4
GROUPBOX DLG_NULL 78 6
BEGIN
PROMPT 1 1 "@bTipologia documento ordine"
END
@ -362,15 +393,62 @@ BEGIN
CHECKTYPE SEARCH
END
GROUPBOX DLG_NULL 78 6
STRING F_CODNUMB 4
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
STRING F_MAG 3
BEGIN
PROMPT 2 7 "Magazzino "
PROMPT 2 9 "Magazzino "
FLAGS "UG"
USE MAG SELECT CODTAB[4,5]==""
INPUT CODTAB F_MAG
@ -383,7 +461,7 @@ END
STRING F_DESMAG 50
BEGIN
PROMPT 24 7 ""
PROMPT 24 9 ""
USE MAG KEY 2 SELECT CODTAB[4,5]==""
INPUT S0 F_DESMAG
DISPLAY "Denominazione magazzino@50" S0
@ -395,7 +473,7 @@ END
STRING F_DEP 2
BEGIN
PROMPT 2 8 "Deposito "
PROMPT 2 10 "Deposito "
FLAGS "U"
USE MAG SELECT (CODTAB[1,3]==#F_MAG)&&(CODTAB[4,5]!="")
INPUT CODTAB[1,3] F_MAG
@ -410,7 +488,7 @@ END
STRING F_DESDEP 50
BEGIN
PROMPT 24 8 ""
PROMPT 24 10 ""
USE MAG KEY 2 SELECT (CODTAB[1,3]==#F_MAG)&&(CODTAB[4,5]!="")
INPUT S0 F_DESDEP
COPY DISPLAY F_DESMAG
@ -420,7 +498,7 @@ END
STRING F_MAGC 3
BEGIN
PROMPT 2 9 "Magazzino "
PROMPT 2 11 "Magazzino "
FLAGS "UG"
USE MAG SELECT CODTAB[4,5]==""
INPUT CODTAB F_MAGC
@ -433,7 +511,7 @@ END
STRING F_DESMAGC 50
BEGIN
PROMPT 24 9 ""
PROMPT 24 11 ""
USE MAG KEY 2 SELECT CODTAB[4,5]==""
INPUT S0 F_DESMAGC
DISPLAY "Denominazione magazzino@50" S0
@ -445,7 +523,7 @@ END
STRING F_DEPC 2
BEGIN
PROMPT 2 10 "Deposito "
PROMPT 2 12 "Deposito "
FLAGS "U"
USE MAG SELECT (CODTAB[1,3]==#F_MAG)&&(CODTAB[4,5]!="")
INPUT CODTAB[1,3] F_MAGC
@ -460,7 +538,7 @@ END
STRING F_DESDEPC 50
BEGIN
PROMPT 24 10 ""
PROMPT 24 12 ""
USE MAG KEY 2 SELECT (CODTAB[1,3]==#F_MAG)&&(CODTAB[4,5]!="")
INPUT S0 F_DESDEPC
COPY DISPLAY F_DESMAG
@ -470,12 +548,12 @@ END
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 14 "@bValorizzazione"
PROMPT 1 16 "@bValorizzazione"
END
LIST F_PREZZO 15
BEGIN
PROMPT 2 15 "Prezzo "
PROMPT 2 17 "Prezzo "
ITEM "U|Ultimo Costo"
ITEM "S|Costo Standard"
FIELD OR14_TPR
@ -567,9 +645,26 @@ BEGIN
ADD RUN CG0 -1
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
BEGIN
PROMPT 2 8 "CDC/Commessa "
PROMPT 2 10 "CDC/Commessa "
FLAGS "UZ"
USE CMS
INPUT CODTAB F_CDC
@ -581,7 +676,7 @@ END
STRING F_FSC 10
BEGIN
PROMPT 42 8 "Fase "
PROMPT 42 10 "Fase "
FLAGS "UZ"
USE FSC
INPUT CODTAB F_FSC
@ -593,29 +688,29 @@ END
STRING F_CODAGG1 20
BEGIN
PROMPT 2 9 "Codice agg. 1 "
PROMPT 2 11 "Codice agg. 1 "
END
STRING F_CODAGG2 20
BEGIN
PROMPT 42 9 "Codice agg. 2 "
PROMPT 42 11 "Codice agg. 2 "
END
NUMBER F_LEADTIME 5
BEGIN
PROMPT 2 11 "Lead time "
PROMPT 2 13 "Lead time "
FLAGS "D"
END
NUMBER F_LOTTOMIN 10 3
BEGIN
PROMPT 42 11 "Lotto "
PROMPT 42 13 "Lotto "
FLAGS "D"
END
MEMO F_DESCRAGG 50 4
BEGIN
PROMPT 2 12 "Descr.aggiuntiva"
PROMPT 2 14 "Descr.aggiuntiva"
FLAGS "D"
END