correzioni su gestione preventivi per articolo/distinta

git-svn-id: svn://10.65.10.50/branches/R_10_00@22995 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2014-09-22 13:55:57 +00:00
parent 97663e1f33
commit d7420fdb0c
3 changed files with 222 additions and 130 deletions

View File

@ -1,6 +1,7 @@
#include <automask.h>
#include <colors.h>
#include <controls.h>
#include <dongle.h>
#include <execp.h>
#include <printer.h>
#include <relapp.h>
@ -399,7 +400,7 @@ class TPreventivo_emsk : public TPreventivo_msk
TString _idfase, _iddist;
int _edit_dist, _edit_dett, _edit_misu;
int _curr_dist, _curr_dett, _curr_misu;
bool _locked;
bool _locked, _has_db;
private:
bool on_fasi_button(TOperable_field& btn, TField_event e, long jolly);
@ -802,7 +803,7 @@ bool TPreventivo_emsk::on_dist_event(TOperable_field& o, TField_event e, long jo
{
switch (o.dlg())
{
case S_CODART:
case D_CODDIS:
if (e == fe_modify && !o.empty())
{
const TString& codart = o.get();
@ -812,15 +813,19 @@ bool TPreventivo_emsk::on_dist_event(TOperable_field& o, TField_event e, long jo
TPreventivo_tree& t = tree();
while (t.dett(_iddist, 0))
t.kill_node();
TString80 codart, desc;
const int last = rdist.last_row();
int n = 0;
for (int r = rdist.first_row(); r > 0 && r <= last; r = rdist.succ_row(r))
{
const TRectype& rd = rdist.row(r);
TRectype* rec = t.dett(_iddist, n++, true);
rec->put(RDOC_CODART, rd.get(RDIST_CODCOMP));
rec->put(RDOC_DESCR, rd.get(RDIST_DESCR));
codart = rd.get(RDIST_CODCOMP);
rec->put(RDOC_CODART, codart);
desc = rd.get(RDIST_DESCR);
if (desc.empty())
desc = cache().get(LF_ANAMAG, codart, ANAMAG_DESCR);
rec->put(RDOC_DESCR, desc);
rec->put(RDOC_UMQTA, rd.get(RDIST_UM));
rec->put(RDOC_QTA, rd.get(RDIST_EXPR));
}
@ -838,7 +843,7 @@ bool TPreventivo_emsk::on_dist_event(TOperable_field& o, TField_event e, long jo
o.mask().set(103, um);
}
break;
case 105:
case D_PREZZO:
if (e == fe_modify && !o.empty())
{
const TString& ric = get(F_RICARICO);
@ -1245,7 +1250,7 @@ bool TPreventivo_emsk::on_field_event(TOperable_field& o, TField_event e, long j
}
break;
default:
if (jolly > 0 && o.dlg() >= 101 && o.dlg() < 200) // Sheet mask events
if (jolly > 0 && o.dlg() >= 101 && o.dlg() < 300) // Sheet mask events
{
if (e == fe_modify)
{
@ -1270,7 +1275,7 @@ void TPreventivo_emsk::set_sheet_color(short id, COLOR col)
s.set_back_and_fore_color(rgb, NORMAL_COLOR, -1);
}
TPreventivo_emsk::TPreventivo_emsk() : TPreventivo_msk("pe1400b"), _tree(NULL), _locked(false)
TPreventivo_emsk::TPreventivo_emsk() : TPreventivo_msk("pe1400b"), _tree(NULL), _locked(false), _has_db(false)
{
TMask_field& cdc0 = field(F_CDC0);
RCT rct0; cdc0.get_rect(rct0);
@ -1283,6 +1288,26 @@ TPreventivo_emsk::TPreventivo_emsk() : TPreventivo_msk("pe1400b"), _tree(NULL),
set_sheet_color(F_DISTINTE, COLOR_YELLOW);
set_sheet_color(F_ARTICOLI, COLOR_GREEN);
set_sheet_color(F_MISURE, COLOR_GRAY);
_has_db = dongle().active(DBAUT);
if (_has_db)
{
TISAM_recordset dist("USE DIST");
_has_db = dist.items() >= 5;
}
if (!_has_db)
{
TMask& dist = sfield(F_DISTINTE).sheet_mask();
TList_field& tipoa = dist.lfield(D_TIPOA);
TToken_string cod = tipoa.get_codes();
TToken_string val = tipoa.get_values();
if (cod.items() == 2)
{
cod.destroy(0);
val.destroy(0);
tipoa.replace_items(cod, val);
}
}
}

View File

@ -1,51 +1,53 @@
#define F_PROVV 201
#define F_ANNO 202
#define F_CODNUM 203
#define F_DESNUM 204
#define F_TIPODOC 205
#define F_DESTIPO 206
#define F_NPREV 207
#define F_NREV 208
#define F_NDOC 209
#define F_STATO 210
#define F_DATADOC 211
#define F_PROVV 301
#define F_ANNO 302
#define F_CODNUM 303
#define F_DESNUM 304
#define F_TIPODOC 305
#define F_DESTIPO 306
#define F_NPREV 307
#define F_NREV 308
#define F_NDOC 309
#define F_STATO 310
#define F_DATADOC 311
#define F_CODAGE 318
#define F_DESAGE 319
#define F_CLIFO 220
#define F_RAGSOC 221
#define F_RICALT 222
#define F_STATOPAIV 223
#define F_PAIV 224
#define F_COFI 225
#define F_NOTE 226
#define F_CODPAG 227
#define F_DESPAG 228
#define F_CODLIS 229
#define F_DESLIS 230
#define F_RICARICO 234
#define F_TIPOCOSTO 235
#define F_NUMDOCRIF 236
#define F_DATADOCRIF 237
#define F_OGGETTI 238
#define F_CLIFO 320
#define F_RAGSOC 321
#define F_RICALT 322
#define F_STATOPAIV 323
#define F_PAIV 324
#define F_COFI 325
#define F_NOTE 326
#define F_CODPAG 327
#define F_DESPAG 328
#define F_CODLIS 329
#define F_DESLIS 330
#define F_RICARICO 334
#define F_TIPOCOSTO 335
#define F_NUMDOCRIF 336
#define F_DATADOCRIF 337
#define F_OGGETTI 338
#define F_FASENEW 240
#define F_FASEDIT 241
#define F_FASEDEL 242
#define F_FASEUP 244
#define F_FASEDN 245
#define F_FASELT 246
#define F_FASERT 247
#define F_FASEMAX 248
#define F_FASEART 249
#define F_FASENEW 340
#define F_FASEDIT 341
#define F_FASEDEL 342
#define F_FASEUP 344
#define F_FASEDN 345
#define F_FASELT 346
#define F_FASERT 347
#define F_FASEMAX 348
#define F_FASEART 349
#define F_CDC0 250
#define F_CDC0 350
#define F_CLIPOT 320
#define F_RAGPOT 321
#define F_CLIPOT 420
#define F_RAGPOT 421
#define F_FASI 400
#define F_DISTINTE 401
#define F_ARTICOLI 402
#define F_MISURE 403
#define F_FASI 500
#define F_DISTINTE 501
#define F_ARTICOLI 502
#define F_MISURE 503
#define S_CODART 101
#define S_DESCR 102
@ -54,5 +56,23 @@
#define S_PREZZO 106
#define S_CODIVA 107
#define D_TIPOA 101
#define D_CODDIS 102
#define D_DESDIS 103
#define D_CODART 202
#define D_DESART 203
#define D_UM 104
#define D_QTA 105
#define D_COSTO 106
#define D_PREZZO 107
#define D_CODIVA 108
#define D_DATAINI 109
#define D_DATAFIN 110
#define D_IDRIGA 111
#define D_LEGAME 112
#define D_TIPOL 113
#define D_RICAVI 114
#define D_COSTI 115
#define RPRV_COSTO "QTAGG5"
#define RPRV_LEVEL "PRIORITY"

View File

@ -77,7 +77,7 @@ BEGIN
PROMPT 1 0 "@bPreventivo"
END
LIST 201 1 12
LIST F_PROVV 1 12
BEGIN
PROMPT 69 69 ""
ITEM "D|Definitivi"
@ -87,7 +87,7 @@ LIST 201 1 12
KEY 1
END
NUMBER 202 4
NUMBER F_ANNO 4
BEGIN
PROMPT 2 1 "Anno "
FLAGS "D"
@ -96,25 +96,25 @@ BEGIN
KEY 1
END
STRING 203 4
STRING F_CODNUM 4
BEGIN
PROMPT 2 2 "Numerazione "
USE %NUM
FLAGS "DGU"
INPUT CODTAB 203
OUTPUT 204 S0
INPUT CODTAB F_CODNUM
OUTPUT F_DESNUM S0
CHECKTYPE REQUIRED
FIELD CODNUM
KEY 1
END
STRING 204 50
STRING F_DESNUM 50
BEGIN
PROMPT 24 2 ""
FLAGS "D"
END
NUMBER 209 7
NUMBER F_NDOC 7
BEGIN
PROMPT 24 1 "Numero documento "
FLAGS "DG"
@ -123,49 +123,49 @@ BEGIN
KEY 1
END
STRING 210 1
STRING F_STATO 1
BEGIN
PROMPT 53 1 "Stato "
USE %STD
INPUT CODTAB 210
INPUT CODTAB F_STATO
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT 210 CODTAB
OUTPUT F_STATO CODTAB
CHECKTYPE NORMAL
FIELD STATO
FLAGS "DG"
END
STRING 205 4
STRING F_TIPODOC 4
BEGIN
PROMPT 2 3 "Tipo "
FLAGS "H"
FIELD TIPODOC
USE %TIP
INPUT CODTAB 205
OUTPUT 206 S0
INPUT CODTAB F_TIPODOC
OUTPUT F_DESTIPO S0
CHEKCTYPE NORMAL
END
STRING 206 50
STRING F_DESTIPO 50
BEGIN
PROMPT 24 3 ""
FLAGS "H"
END
NUMBER 207 7
NUMBER F_NPREV 7
BEGIN
PROMPT 2 3 "Preventivo "
FLAGS "D"
END
NUMBER 208 2
NUMBER F_NREV 2
BEGIN
PROMPT 24 3 "Revisione "
FLAGS "DZ"
END
DATE 211
DATE F_DATADOC
BEGIN
PROMPT 46 3 "Data "
FLAGS "A"
@ -173,19 +173,19 @@ BEGIN
CHECKTYPE REQUIRED
END
STRING 236 7
STRING F_NUMDOCRIF 7
BEGIN
PROMPT 2 4 "Documento di riferimento "
FIELD NUMDOCRIF
END
DATE 237
DATE F_DATADOCRIF
BEGIN
PROMPT 36 4 "del "
FIELD DATADOCRIF
END
GOLEM 238 10 2
GOLEM F_OGGETTI 10 2
BEGIN
PROMPT 64 3 ""
FIELD COLL_GOLEM
@ -337,77 +337,78 @@ BEGIN
PROMPT 1 13 "@bDati Commerciali"
END
ZOOM 226 62
ZOOM F_NOTE 62
BEGIN
PROMPT 2 14 "Oggetto "
FIELD NOTE
END
STRING 227 4
STRING F_CODPAG 4
BEGIN
PROMPT 2 15 "Pagamento "
USE %CPG
INPUT CODTAB 227
INPUT CODTAB F_CODPAG
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT 227 CODTAB
OUTPUT 228 S0
OUTPUT F_CODPAG CODTAB
OUTPUT F_DESPAG S0
CHECKTYPE NORMAL
FIELD CODPAG
END
STRING 228 50
END
STRING F_DESPAG 50
BEGIN
PROMPT 24 15 ""
USE %CPG KEY 2
INPUT S0 228
INPUT S0 F_DESPAG
DISPLAY "Descrizione@50" S0
DISPLAY "Codice" CODTAB
CO OUTPUT 227
COPY OUTPUT F_CODPAG
CHECKTYPE NORMAL
END
STRING 229 4
STRING F_CODLIS 4
BEGIN
PROMPT 2 16 "Listino "
FLAGS "U"
USE 52
INPUT TIPO "L"
INPUT CATVEN ""
INPUT COD 229
INPUT COD F_CODLIS
DISPLAY "Codice" COD
DISPLAY "Descrizione@50" DESCR
DISPLAY "Inizio@10" VALIN
DISPLAY "Fine@10" VALFIN
OUTPUT 229 COD
OUTPUT 230 DESCR
OUTPUT F_CODLIS COD
OUTPUT F_DESLIS DESCR
ADD RUN ve2 -1 L
CHECKTYPE NORMAL
FIELD CODLIST
END
STRING 230 50
STRING F_DESLIS 50
BEGIN
PROMPT 24 16 ""
USE 52 KEY 2
INPUT TIPO "L"
INPUT CATVEN ""
INPUT DESCR 230
INPUT DESCR F_DESLIS
DISPLAY "Descrizione@50" DESCR
DISPLAY "Codice" COD
DISPLAY "Inizio@10" VALIN
DISPLAY "Fine@10" VALFIN
CO OUTPUT 229
COPY OUTPUT F_CODLIS
CHECKTYPE NORMAL
ADD RU ve2 -1 L
END
STRING 234 25
STRING F_RICARICO 25
BEGIN
PROMPT 2 17 "Ricarico "
FIELD SCONTOPERC
END
LIST 235 1 25
LIST F_TIPOCOSTO 1 25
BEGIN
PROMPT 43 17 "Costo "
ITEM "0|"
@ -419,33 +420,32 @@ BEGIN
FIELD CODNOTE
END
STRING 128 5
STRING F_CODAGE 5
BEGIN
PROMPT 2 18 "Responsabile"
FLAGS "UZ"
CHECKTYPE NORMAL
FIELD CODAG
USE 122
INPUT CODAGE 128
INPUT CODAGE F_CODAGE
DISPLAY "Codice" CODAGE
DISPLAY "Descrizione@50" RAGSOC
OUTPUT 128 CODAGE
OUTPUT 353 RAGSOC
DISPLAY "Denominazione@50" RAGSOC
OUTPUT F_CODAGE CODAGE
OUTPUT F_DESAGE RAGSOC
CHECKTYPE NORMAL
ADD RU pr0 -4
END
STRING 353 50
STRING F_DESAGE 50
BEGIN
PROMPT 24 18 ""
FLAGS ""
CHECKTYPE NORMAL
USE 122 KEY 2
INPUT RAGSOC 353
DISPLAY "Descrizione@50" RAGSOC
INPUT RAGSOC F_DESAGE
DISPLAY "Denominazione@50" RAGSOC
DISPLAY "Codice" CODAGE
OUTPUT 128 CODAGE
OUTPUT 353 RAGSOC
COPY OUTPUT F_CODAGE
ADD RUN pr0 -4
END
@ -533,6 +533,7 @@ END
SPREADSHEET F_DISTINTE 0 11
BEGIN
PROMPT 65 0 ""
IT "Tipo\nVoce@4"
IT "Voce Elenco Prezzi@20"
IT "Descrizione@50"
IT "U.M."
@ -577,105 +578,150 @@ ENDMASK
PAGE "Distinta" -1 -1 65 9
STRING 101 20
LIST D_TIPOA 1 8
BEGIN
PROMPT 1 1 "Distinta "
PROMPT 1 1 ""
ITEM " |Distinta"
MESSAGE HIDE,D_CODART|HIDE,D_DESART|SHOW,D_CODDIS|SHOW,D_DESDIS
ITEM "A|Articolo"
MESSAGE HIDE,D_CODDIS|HIDE,D_DESDIS|SHOW,D_CODART|SHOW,D_DESART
FIELD STATORIGA
END
STRING D_CODDIS 20
BEGIN
PROMPT 14 1 ""
USE LF_DIST
INPUT CODDIST 101
INPUT CODDIST D_CODDIS
DISPLAY "Codice@20" CODDIST
DISPLAY "Descrizione@50" DESCR
DISPLAY "U.M." UM
DISPLAY "Prezzo@14V" PREZZO
OUTPUT 101 CODDIST
OUTPUT 102 DESCR
OUTPUT 103 UM
OUTPUT D_CODDIS CODDIST
OUTPUT D_DESDIS DESCR
OUTPUT D_UM UM
CHEKTYPE SEARCH
ADD RUN db0 -4
FIELD CODART
END
ZOOM 102 50
ZOOM D_DESDIS 50
BEGIN
PROMPT 1 2 "Descriz. "
USE LF_DIST KEY 2
INPUT DESCR 105
INPUT DESCR D_DESDIS
DISPLAY "Descrizione@50" DESCR
DISPLAY "Codice@20" CODDIST
DISPLAY "U.M." UM
DISPLAY "Prezzo@14V" PREZZO
COPY OUTPUT 101
COPY OUTPUT D_CODDIS
CHEKTYPE SEARCH
ADD RUN db0 -4
FIELD DESCR
END
STRING 103 2
STRING D_CODART 20
BEGIN
PROMPT 14 1 ""
USE LF_ANAMAG
JOIN LF_UMART INTO CODART==CODART NRIGA=1
INPUT CODART D_CODART
DISPLAY "Codice@20" CODART
DISPLAY "Descrizione@50" DESCR
DISPLAY "U.M." LF_UMART->UM
DISPLAY "Prezzo@14V" LF_UMART->PREZZO
OUTPUT D_CODART CODART
OUTPUT D_DESART DESCR
OUTPUT D_UM LF_UMART->UM
CHEKTYPE SEARCH
ADD RUN ve2 -3
FIELD CODART
END
ZOOM D_DESART 50
BEGIN
PROMPT 1 2 "Descriz. "
USE LF_ANAMAG KEY 2
JOIN LF_UMART INTO CODART==CODART NRIGA=1
INPUT DESCR D_DESART
DISPLAY "Descrizione@50" DESCR
DISPLAY "Codice@20" CODDIST
DISPLAY "U.M." LF_UMART->UM
DISPLAY "Prezzo@14V" LF_UMART->PREZZO
COPY OUTPUT D_CODART
CHEKTYPE SEARCH
ADD RUN ve2 -3
FIELD DESCR
END
STRING D_UM 2
BEGIN
PROMPT 1 3 "U.M. "
USE %UMS
INPUT CODTAB 103
INPUT CODTAB D_UM
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT 103 CODTAB
OUTPUT D_UM CODTAB
CHECKTYPE NORMAL
FIELD UMQTA
END
NUMBER 104 9 2
NUMBER D_QTA 9 2
BEGIN
PROMPT 13 3 "Quantità "
FIELD QTA
END
CURRENCY 105 16
CURRENCY D_COSTO 16
BEGIN
PROMPT 35 3 "Costo "
FIELD QTAGG5
END
CURRENCY 106 16
CURRENCY D_PREZZO 16
BEGIN
PROMPT 35 4 "Prezzo "
FIELD PREZZO
END
STRING 107 4
STRING D_CODIVA 4
BEGIN
PROMPT 1 4 "IVA "
USE %IVA
INPUT CODTAB 107
INPUT CODTAB D_CODIVA
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT 107 CODTAB
OUTPUT D_CODIVA CODTAB
CHECKTYPE NORMAL
FIELD CODIVA
END
DATE 108
DATE D_DATAINI
BEGIN
PROMPT 1 5 "Inizio attività "
FIELD DATAINIATT
END
DATE 109
DATE D_DATAFIN
BEGIN
PROMPT 35 5 "Fine attività "
FIELD DATAFINATT
END
NUMBER 110 6
NUMBER D_IDRIGA 6
BEGIN
PROMPT 1 6 "ID "
FIELD IDRIGA
FLAGS "D"
END
NUMBER 111 6
NUMBER D_LEGAME 6
BEGIN
PROMPT 15 6 "Legame "
FIELD IDRIGACOLL
END
LIST 112 1 15
LIST D_TIPOL 1 15
BEGIN
PROMPT 35 6 "Tipo legame "
ITEM "0|Nessuno"
@ -686,20 +732,20 @@ BEGIN
FIELD TIPOCOLL
END
NUMBER 113 16 2
NUMBER D_RICAVI 16 2
BEGIN
PROMPT 1 7 "Tot. Ricavi"
FLAGS "DG"
VALIDATE 14 1 #104*#106
DRIVENBY 104 106
VALIDATE 14 1 #D_QTA*#D_PREZZO
DRIVENBY D_QTA D_PREZZO
END
NUMBER 114 16 2
NUMBER D_COSTI 16 2
BEGIN
PROMPT 35 7 "Tot. Costi"
FLAGS "DG"
VALIDATE 14 1 #104*#105
DRIVENBY 104 105
VALIDATE 14 1 #D_QTA*#D_COSTO
DRIVENBY D_QTA D_COSTO
EN
@ -725,7 +771,7 @@ END
ENDPAGE
ENDMASK
PAGE "Riga" -1 -1 65 5
PAGE "Riga" -1 -1 65 6
STRING 101 20
BEGIN
@ -753,6 +799,7 @@ BEGIN
DISPLAY "Codice@20" CODART
DISPLAY "U.M." LF_UMART->UM
COPY OUTPUT 101
CHECKTYPE SEARCH
FIELD DESCR
ADD RUN ve2 -3
END
@ -791,7 +838,7 @@ END
STRING 107 4
BEGIN
PROMPT 45 4 "IVA "
PROMPT 45 5 "IVA "
USE %IVA
INPUT CODTAB 107
DISPLAY "Codice" CODTAB