Corretto errore aga0084

git-svn-id: svn://10.65.10.50/trunk@5052 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 1997-08-06 15:31:15 +00:00
parent b799632efa
commit aa8a183afb
6 changed files with 306 additions and 37 deletions

View File

@ -6,13 +6,16 @@
#define F_CODDIV1 106
#define F_PREZZO 107
#define F_UM 108
#define F_GRUPPOV 109
#define F_CONTOV 110
#define F_SOTTOV 111
#define F_DESCRCONTOV 112
#define F_GRUPPOA 113
#define F_CONTOA 114
#define F_SOTTOA 115
#define F_DESCRCONTOA 116
#define F_CAMPI 117
#define F_QTA 118
#define F_NCAMPOCAL 109
#define F_NCAMPOCAL1 110
#define F_PERCENTUALE 111
#define F_GRUPPOV 112
#define F_CONTOV 113
#define F_SOTTOV 114
#define F_DESCRCONTOV 115
#define F_GRUPPOA 116
#define F_CONTOA 117
#define F_SOTTOA 118
#define F_DESCRCONTOA 119
#define F_CAMPI 120
#define F_QTA 121

View File

@ -99,21 +99,25 @@ BEGIN
PROMPT 2 10 "Campo default "
FIELD S6
ITEM "Q|Qta prezzo "
MESSAGE ENABLE,F_QTA
MESSAGE SHOW,1@|ENABLE,2@|HIDE,3@|RESET,3@
ITEM "V|Valore "
MESSAGE "1",F_QTA|DISABLE,F_QTA
MESSAGE SHOW,1@|"1",2@|DISABLE,2@|HIDE,3@|RESET,3@
ITEM "P|Percentuale "
MESSAGE SHOW,3@|HIDE,1@|RESET,1@
END
NUMBER F_PREZZO 15 3
BEGIN
PROMPT 2 12 "Prezzo "
FIELD R0
GROUP 1
END
NUMBER F_QTA 13 5
BEGIN
PROMPT 35 12 "Quantita' "
FIELD R1
GROUP 1 2
END
STRING F_UM 2
@ -127,6 +131,42 @@ BEGIN
DISPLAY "Descrizione@50" S0
OUTPUT F_UM CODTAB
CHECKTYPE NORMAL
GROUP 1
END
NUMBER F_PERCENTUALE 5 2
BEGIN
PROMPT 2 11 "Percentuale "
FIELD R2
GROUP 3
END
STRING F_NCAMPOCAL 10
BEGIN
PROMPT 2 12 "Formula Doc. "
FIELD S5
FLAG "U"
USE %FRD
INPUT CODTAB F_NCAMPOCAL
DISPLAY "Codice " CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_NCAMPOCAL CODTAB
OUTPUT F_NCAMPOCAL1 S0
CHECKTYPE NORMAL
GROUP 3
END
STRING F_NCAMPOCAL1 50
BEGIN
PROMPT 17 13 ""
USE %FRD KEY 2
INPUT S0 F_NCAMPOCAL1
DISPLAY "Descrizione@50" S0
DISPLAY "Codice " CODTAB
OUTPUT F_NCAMPOCAL CODTAB
OUTPUT F_NCAMPOCAL1 S0
CHECKTYPE NORMAL
GROUP 3
END
NUMBER F_GRUPPOV 3

View File

@ -505,14 +505,45 @@ bool sppr_handler( TMask_field& f, KEY key )
TMask & mask = row_mask.get_sheet()->mask();
TRectype & spprrec = ((TEdit_field &) row_mask.field(FR_CODART)).browse()->cursor()->file().curr();
if (spprrec.get("CODTAB") == row_mask.get(FR_CODART) && spprrec.get_char("S6") != 'P')
{
const real cambio = mask.get(F_CAMBIO);
real prezzo = row_mask.get(FR_PREZZO);
const TString16 doc_valuta(mask.get(F_CODVAL));
sppr_calc(spprrec, doc_valuta, cambio, prezzo);
row_mask.set(FR_PREZZO, prezzo);
if (spprrec.get("CODTAB") == row_mask.get(FR_CODART))
{
const char tipo = spprrec.get_char("S6");
const bool qta_val_fl = tipo == 'Q';
const bool perc_fl = tipo == 'P';
short pos = row_mask.id2pos(FR_UMQTASP);
if (pos >= 0)
row_mask.fld(pos).enable(!perc_fl);
pos = row_mask.id2pos(FR_PREZZO);
if (pos >= 0)
row_mask.fld(pos).enable(!perc_fl);
pos = row_mask.id2pos(FR_SCONTO);
if (pos >= 0)
row_mask.fld(pos).enable(!perc_fl);
pos = row_mask.id2pos(FR_QTA);
if (pos >= 0)
{
row_mask.fld(pos).show(!perc_fl);
row_mask.fld(pos).enable(qta_val_fl);
}
pos = row_mask.id2pos(FR_PERCSP);
if (pos >= 0)
{
row_mask.fld(pos).show(perc_fl);
row_mask.fld(pos).enable(perc_fl);
}
if (!perc_fl)
{
const real cambio = mask.get(F_CAMBIO);
real prezzo = row_mask.get(FR_PREZZO);
const TString16 doc_valuta(mask.get(F_CODVAL));
sppr_calc(spprrec, doc_valuta, cambio, prezzo);
row_mask.set(FR_PREZZO, prezzo);
}
const int posiva = row_mask.id2pos(FR_CODIVA);
if (posiva >= 0)
iva_handler(row_mask.fld(posiva), 0);
}

View File

@ -442,7 +442,7 @@ real TRiga_documento::importo(bool scontato, bool lordo, int ndec) const
importo = prezzo(scontato, lordo, ndec);
break;
case _percentuale:
importo = doc().get_real(field_perc) * get_real("PSPESA") / 100;
importo = doc().get_real(field_perc) * get_real(RDOC_QTA) / 100;
break;
case _scontoimp:
importo = -prezzo(FALSE, lordo, ndec);
@ -598,10 +598,10 @@ void TRiga_documento::autosave(TSheet_field & f)
put( "UMQTA", row.get( f.cid2index(FR_UMQTA )) );
TMask * m = ((TTipo_riga_documento &)tipo()).mask();
const int pos = m->id2pos(FR_QTA);
if (pos >= 0 && m->fld(pos).field()->name() == "PSPESA")
put( "PSPESA", row.get( f.cid2index(FR_QTA )) );
else
put( "QTA", row.get( f.cid2index(FR_QTA )) );
// if (pos >= 0 && m->fld(pos).field()->name() == "PSPESA")
// put( "PSPESA", row.get( f.cid2index(FR_QTA )) );
// else
put( "QTA", row.get( f.cid2index(FR_QTA )) );
put( "QTAEVASA", row.get( f.cid2index(FR_QTAEVASA )) );
put( "RIGAEVASA", row.get( f.cid2index(FR_RIGAEVASA )) );
put( "TARA", row.get( f.cid2index(FR_TARA )) );
@ -672,10 +672,10 @@ void TRiga_documento::autoload(TSheet_field & f)
row.add( get( "PREZZO" ), f.cid2index(FR_PREZZO ));
TMask * m = ((TTipo_riga_documento &)tipo()).mask();
const int pos = m->id2pos(FR_QTA);
if (pos >= 0 && m->fld(pos).field()->name() == "PSPESA")
row.add( get( "PSPESA" ), f.cid2index(FR_QTA ));
else
row.add( get( "QTA" ), f.cid2index(FR_QTA ));
// if (pos >= 0 && m->fld(pos).field()->name() == "PSPESA")
// row.add( get( "PSPESA" ), f.cid2index(FR_QTA ));
// else
row.add( get( "QTA" ), f.cid2index(FR_QTA ));
row.add( get( "QTAEVASA" ), f.cid2index(FR_QTAEVASA ));
row.add( get( "RIGAEVASA" ), f.cid2index(FR_RIGAEVASA ));
row.add( get( "TARA" ), f.cid2index(FR_TARA ));

View File

@ -6,23 +6,31 @@
#define FR_TIPORIGA 102
#define FR_CODMAG 103
#define FR_CODDEP 104
// CODART CODSPV CODSPQ CODSPP CODPRS alternativi definirne uno solo
// CODART CODSP CODSPV CODSPQ CODSPP CODPRS CODPRSV CODPRSQ CODPRSP alternativi definirne uno solo
#define FR_CODART 105
#define FR_CODSP 105
#define FR_CODSPV 105
#define FR_CODSPQ 105
#define FR_CODSPP 105
#define FR_CODPRS 105
#define FR_CODPRSV 105
#define FR_CODPRSQ 105
#define FR_CODPRSP 105
#define FR_LIV1 106
#define FR_LIV2 107
#define FR_LIV3 108
#define FR_LIV4 109
// DESCR DESCRART DESCRSPV DESCPSPQ DESCRSPP DESCRPRS alternativi definirne uno solo
// DESCR DESCRART DESCRSP DESCRSPV DESCPSPQ DESCRSPP DESCRPRS DESCRPRSV DESCRPRSQ DESCRPRSP alternativi definirne uno solo
#define FR_DESCR 110
#define FR_DESCRART 110
#define FR_DESCRSP 110
#define FR_DESCRSPV 110
#define FR_DESCRSPQ 110
#define FR_DESCRSPP 110
#define FR_DESCRPRS 110
#define FR_DESCRPRSV 110
#define FR_DESCRPRSQ 110
#define FR_DESCRPRSP 110
// UMQTA UMQTASP UMQTAPR alternativi definirne uno solo
#define FR_UMQTA 111
#define FR_UMQTASP 111
@ -30,7 +38,7 @@
#define FR_UMQTA2 211
// QTA PERCSP alternativi definirne uno solo
#define FR_QTA 112
#define FR_PERCSP 112
#define FR_PERCSP 212
// PREZZO VALORE alternativi definirne uno solo
#define FR_PREZZO 113
#define FR_VALORE 113

View File

@ -269,7 +269,36 @@ ENDIF
OUTPUT FR_LIV4 CODTAB[2,]
CHECKTYPE NORMAL
END
ENDIF
IFDEF(F_CODSP)
STRING FR_CODSP 8
BEGIN
IFDEF(X_CODSP)
PROMPT X_CODSP Y_CODSP PR_CODSP
ELSEIF
PROMPT 2 6 "Spesa "
ENDIF
USE SPP
INPUT CODTAB FR_CODSP
DISPLAY "Codice spesa" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT FR_CODSP CODTAB
OUTPUT FR_DESCRSP S0
OUTPUT FR_VALORE R0
OUTPUT FR_QTA R1
OUTPUT FR_PERCSP R2
OUTPUT FR_UMQTASP S7
OUTPUT FR_CODIVA S3
MESSAGE DIRTY,FR_CODIVA|K_TAB,FR_CODIVA
FIELD CODART
FLAGS "U"
IFDEF(CH_CODSP)
CHECKTYPE CH_CODSP
ELSEIF
CHECKTYPE REQUIRED
ENDIF
END
ENDIF
IFDEF(F_CODSPV)
@ -372,6 +401,7 @@ ENDIF
OUTPUT FR_DESCRPRS S0
OUTPUT FR_PREZZO R0
OUTPUT FR_QTA R1
OUTPUT FR_PERCSP R2
OUTPUT FR_UMQTASP S7
OUTPUT FR_CODIVA S3
MESSAGE DIRTY,FR_CODIVA|K_TAB,FR_CODIVA
@ -385,6 +415,91 @@ ENDIF
END
ENDIF
IFDEF(F_CODPRSV)
STRING FR_CODPRSV 8
BEGIN
IFDEF(X_CODPRSV)
PROMPT X_CODPRSV Y_CODPRSV PR_CODPRSV
ELSEIF
PROMPT 2 6 "Prestazione "
ENDIF
USE PRS SELECT S6=='V'
INPUT CODTAB FR_CODPRSV
DISPLAY "Codice prestazione" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT FR_CODPRSV CODTAB
OUTPUT FR_DESCRPRSV S0
OUTPUT FR_PREZZO R0
OUTPUT FR_UMQTASP S7
OUTPUT FR_CODIVA S3
MESSAGE DIRTY,FR_CODIVA|K_TAB,FR_CODIVA
FIELD CODART
FLAGS "U"
IFDEF(CH_CODPRSV)
CHECKTYPE CH_CODPRSV
ELSEIF
CHECKTYPE REQUIRED
ENDIF
END
ENDIF
IFDEF(F_CODPRSQ)
STRING FR_CODPRSQ 8
BEGIN
IFDEF(X_CODPRSQ)
PROMPT X_CODPRSQ Y_CODPRSQ PR_CODPRSQ
ELSEIF
PROMPT 2 6 "Prestazione "
ENDIF
USE PRS SELECT S6=='Q'
INPUT CODTAB FR_CODPRSQ
DISPLAY "Codice prestazione" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT FR_CODPRSQ CODTAB
OUTPUT FR_DESCRPRSQ S0
OUTPUT FR_PREZZO R0
OUTPUT FR_QTA R1
OUTPUT FR_UMQTASP S7
OUTPUT FR_CODIVA S3
MESSAGE DIRTY,FR_CODIVA|K_TAB,FR_CODIVA
FIELD CODART
FLAGS "U"
IFDEF(CH_CODPRSQ)
CHECKTYPE CH_CODPRSQ
ELSEIF
CHECKTYPE REQUIRED
ENDIF
END
ENDIF
IFDEF(F_CODPRSP)
STRING FR_CODPRSP 8
BEGIN
IFDEF(X_CODPRSP)
PROMPT X_CODPRSP Y_CODPRSP PR_CODPRSP
ELSEIF
PROMPT 2 6 "Prestazione "
ENDIF
USE PRS SELECT S6=='P'
INPUT CODTAB FR_CODPRSQ
DISPLAY "Codice prestazione" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT FR_CODPRSQ CODTAB
OUTPUT FR_DESCRPRSQ S0
OUTPUT FR_PERCSP R2
OUTPUT FR_UMQTASP S7
OUTPUT FR_CODIVA S3
MESSAGE DIRTY,FR_CODIVA|K_TAB,FR_CODIVA
FIELD CODART
FLAGS "U"
IFDEF(CH_CODPRSP)
CHECKTYPE CH_CODPRSP
ELSEIF
CHECKTYPE REQUIRED
ENDIF
END
ENDIF
IFDEF(F_DESCR)
ZOOM FR_DESCR 50
BEGIN
@ -415,6 +530,23 @@ ENDIF
END
ENDIF
IFDEF(F_DESCRSP)
ZOOM FR_DESCRSP 50
BEGIN
IFDEF(X_DESCRSP)
PROMPT X_DESCRSP Y_DESCRSP PR_DESCRSP
ELSEIF
PROMPT 2 7 "Descrizione "
ENDIF
USE SPP KEY 2
INPUT S0 FR_DESCRSP
DISPLAY "Descrizione@50" S0
DISPLAY "Codice spesa" CODTAB
COPY OUTPUT FR_CODSP
FIELD DESCR
END
ENDIF
IFDEF(F_DESCRSPV)
ZOOM FR_DESCRSPV 50
BEGIN
@ -483,6 +615,57 @@ ENDIF
END
ENDIF
IFDEF(F_DESCRPRSV)
ZOOM FR_DESCRPRSV 50
BEGIN
IFDEF(X_DESCRPRSV)
PROMPT X_DESCRPRSV Y_DESCRPRSV PR_DESCRPRSV
ELSEIF
PROMPT 2 7 "Descrizione "
ENDIF
USE PRS KEY 2 SELECT S6=='V'
INPUT S0 FR_DESCRPRSV
DISPLAY "Descrizione@50" S0
DISPLAY "Codice prestazione" CODTAB
COPY OUTPUT FR_CODPRSV
FIELD DESCR
END
ENDIF
IFDEF(F_DESCRPRSQ)
ZOOM FR_DESCRPRSQ 50
BEGIN
IFDEF(X_DESCRPRSQ)
PROMPT X_DESCRPRSQ Y_DESCRPRSQ PR_DESCRPRSQ
ELSEIF
PROMPT 2 7 "Descrizione "
ENDIF
USE PRS KEY 2 SELECT S6=='Q'
INPUT S0 FR_DESCRPRSQ
DISPLAY "Descrizione@50" S0
DISPLAY "Codice prestazione" CODTAB
COPY OUTPUT FR_CODPRSQ
FIELD DESCR
END
ENDIF
IFDEF(F_DESCRPRSP)
ZOOM FR_DESCRPRSP 50
BEGIN
IFDEF(X_DESCRPRSP)
PROMPT X_DESCRPRSP Y_DESCRPRSP PR_DESCRPRSP
ELSEIF
PROMPT 2 7 "Descrizione "
ENDIF
USE PRS KEY 2 SELECT S6=='P'
INPUT S0 FR_DESCRPRSP
DISPLAY "Descrizione@50" S0
DISPLAY "Codice prestazione" CODTAB
COPY OUTPUT FR_CODPRSP
FIELD DESCR
END
ENDIF
IFDEF(F_UMQTA)
STRING FR_UMQTA 2
BEGIN
@ -552,7 +735,7 @@ ENDIF
END
ENDIF
IFDEF(F_QTA)
IF(defined(F_QTA) || defined(F_PERCSP))
NUMBER FR_QTA 13 5
BEGIN
IFDEF(X_QTA)
@ -560,19 +743,23 @@ IFDEF(X_QTA)
ELSEIF
PROMPT 21 9 "Qta' "
ENDIF
IFDEF(F_PSPESA)
FLAGS "H"
ENDIF
FIELD QTA
END
ENDIF
IFDEF(F_PERCSP)
NUMBER FR_QTA 6 2
NUMBER FR_PERCSP 6 2
BEGIN
IFDEF(X_PERCSP)
PROMPT X_PERCSP Y_PERCSP PR_PERCSP
ELSEIF
PROMPT 2 9 "Spesa % "
PROMPT 21 9 "Spesa % "
ENDIF
FIELD PSPESA
IFDEF(F_QTA)
FLAGS "H"
ENDIF
FIELD QTA
END
ENDIF