Patch level : 12.0 412

Files correlati     : mr2.exe mr2100a.msk

Corretto caricamento prezzi.
Aggiunto flag ignora l'ultimo costo



git-svn-id: svn://10.65.10.50/branches/R_10_00@23900 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
bonazzi 2017-06-30 23:44:33 +00:00
parent aa27477b11
commit a250aef70a
8 changed files with 45 additions and 15 deletions

View File

@ -1269,8 +1269,10 @@ bool TMatResMask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{ {
row.get(F_QUANTITA - FIRST_FIELD, qta); row.get(F_QUANTITA - FIRST_FIELD, qta);
row.get(F_ARTICOLO - FIRST_FIELD, codart); row.get(F_ARTICOLO - FIRST_FIELD, codart);
if (codart == "01.50.40.0114")
int i = 1;
find_price(get(F_TIPOCV),get(F_CODCONDV),get(F_CATVEN_CV), find_price(get(F_TIPOCV),get(F_CODCONDV),get(F_CATVEN_CV),
"F", codfor, codart, qta, price); "F", codfor, codart, qta, price, get_bool(F_IGNORE_ULTCOS));
row.add(price.string(), F_PREZZO - FIRST_FIELD); row.add(price.string(), F_PREZZO - FIRST_FIELD);
so.force_update(so.selected()); so.force_update(so.selected());
} }
@ -3001,10 +3003,11 @@ bool TMatResPlanning::build_orders()
if (orders==0) if (orders==0)
message_box(TR("Nessun ordine da emettere")); message_box(TR("Nessun ordine da emettere"));
real price, qta;
TCodice_articolo codart; TCodice_articolo codart;
FOR_EACH_SHEET_ROW(sf,n,row) FOR_EACH_SHEET_ROW(sf,n,row)
{ {
real price, qta;
row->get(F_QUANTITA - FIRST_FIELD,qta); row->get(F_QUANTITA - FIRST_FIELD,qta);
row->get(F_ARTICOLO - FIRST_FIELD,codart); row->get(F_ARTICOLO - FIRST_FIELD,codart);
const long codforn=row->get_long(F_FORNITORE - FIRST_FIELD); const long codforn=row->get_long(F_FORNITORE - FIRST_FIELD);
@ -3019,8 +3022,10 @@ bool TMatResPlanning::build_orders()
tipoord = " "; tipoord = " ";
else else
tipoord = "F"; tipoord = "F";
if (codart == "01.50.40.0114")
int i = 1;
find_price(m.get(F_TIPOCV),m.get(F_CODCONDV),m.get(F_CATVEN_CV), find_price(m.get(F_TIPOCV),m.get(F_CODCONDV),m.get(F_CATVEN_CV),
tipoord, codforn, codart, qta, price); tipoord, codforn, codart, qta, price, m.get_bool(F_IGNORE_ULTCOS));
row->add(price.string(), F_PREZZO - FIRST_FIELD); row->add(price.string(), F_PREZZO - FIRST_FIELD);
if (!art_prod || !art_acq) if (!art_prod || !art_acq)

View File

@ -63,6 +63,7 @@
#define F_DA_ART 258 #define F_DA_ART 258
#define F_A_ART 259 #define F_A_ART 259
#define F_SPLIT_SONS 260 #define F_SPLIT_SONS 260
#define F_IGNORE_ULTCOS 261
// campi senza default sul profilo // campi senza default sul profilo
#define F_YEAR 301 #define F_YEAR 301

View File

@ -383,6 +383,11 @@ BEGIN
ITEM "F|Fornitore" ITEM "F|Fornitore"
END END
BOOLEAN F_IGNORE_ULTCOS
BEGIN
PROMPT 2 9 "Ignora gli ultimi costi"
END
BOOLEAN F_DIVIDEBYART BOOLEAN F_DIVIDEBYART
BEGIN BEGIN
PROMPT 2 10 "Suddividi gli ordini per articolo" PROMPT 2 10 "Suddividi gli ordini per articolo"

View File

@ -794,8 +794,11 @@ bool TPlanning_mask::carica_documenti()
line->qta(buck) += q.val(); line->qta(buck) += q.val();
} }
real price; real price;
if (art == "01.50.40.0114")
int i = 1;
find_price(get(F_TIPOCV),get(F_CODCONDV),get(F_CATVEN_CV), find_price(get(F_TIPOCV),get(F_CODCONDV),get(F_CATVEN_CV),
get(F_TIPOCF), clifor, art, line->qta(buck), price); get(F_TIPOCF), clifor, art, line->qta(buck), price, get_bool(F_IGNORE_ULTCOS));
line->price(buck) = price; line->price(buck) = price;
} }
} }
@ -1314,12 +1317,15 @@ void TPlanning_mask::add_or_sub_propose(char sign, bool scheduled)
} }
} }
highlight(art_row, F_BUCKET1 + b*2, prop != ZERO && art_per_buck != ZERO, special); highlight(art_row, F_BUCKET1 + b*2, prop != ZERO && art_per_buck != ZERO, special);
if (a.articolo() == "01.50.40.0114")
int i = 1;
artrow.add(art_per_buck.string(), F_BUCKET1 + b*2 - FIRST_FIELD); artrow.add(art_per_buck.string(), F_BUCKET1 + b*2 - FIRST_FIELD);
real price; real price;
if (!art_per_buck.is_zero()) if (!art_per_buck.is_zero())
find_price(get(F_TIPOCV),get(F_CODCONDV),get(F_CATVEN_CV), find_price(get(F_TIPOCV),get(F_CODCONDV),get(F_CATVEN_CV),
get(F_TIPOCF), a.codclifor(), a.articolo(), get(F_TIPOCF), a.codclifor(), a.articolo(),
art_per_buck, price); art_per_buck, price, get_bool(F_IGNORE_ULTCOS));
artrow.add(price.string(), F_BUCKET1 + b*2 + 1 - FIRST_FIELD); artrow.add(price.string(), F_BUCKET1 + b*2 + 1 - FIRST_FIELD);
} }
test_art_row(art_row,false); test_art_row(art_row,false);
@ -3517,10 +3523,14 @@ bool TPlanning_mask::on_field_event(TOperable_field& o, TField_event e, long jol
TMask_field &fprice=m.field(o.dlg()+1); TMask_field &fprice=m.field(o.dlg()+1);
real qta(o.get()); real qta(o.get());
real price(fprice.get()); real price(fprice.get());
if (m.get(F_ARTICOLO) == "01.50.40.0114")
int i = 1;
if (!qta.is_zero() && price.is_zero()) if (!qta.is_zero() && price.is_zero())
find_price(get(F_TIPOCV),get(F_CODCONDV),get(F_CATVEN_CV), find_price(get(F_TIPOCV),get(F_CODCONDV),get(F_CATVEN_CV),
m.get(F_TIPOCF_SHEET), m.get_long(F_CLIENTE), m.get(F_ARTICOLO), m.get(F_TIPOCF_SHEET), m.get_long(F_CLIENTE), m.get(F_ARTICOLO),
qta , price); qta , price, get_bool(F_IGNORE_ULTCOS));
fprice.set(price.string()); fprice.set(price.string());
if (qta != ZERO) if (qta != ZERO)
highlight(s.selected(), o.dlg(), true, false); highlight(s.selected(), o.dlg(), true, false);

View File

@ -99,6 +99,7 @@
#define F_IMP 267 #define F_IMP 267
#define F_IGNORE_PREC 268 #define F_IGNORE_PREC 268
#define F_SINGLE_DOC 269 #define F_SINGLE_DOC 269
#define F_IGNORE_ULTCOS 270
#define F_MSP_SORT_PRILIN 290 #define F_MSP_SORT_PRILIN 290

View File

@ -470,9 +470,14 @@ BEGIN
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
BOOLEAN F_IGNORE_ULTCOS
BEGIN
PROMPT 2 18 "Ignora gli ultimi costi"
END
BOOLEAN F_IGNORE_PREC BOOLEAN F_IGNORE_PREC
BEGIN BEGIN
PROMPT 2 18 "Ignora le pianificazioni precedenti alla data iniziale" PROMPT 2 19 "Ignora le pianificazioni precedenti alla data iniziale"
END END
ENDPAGE ENDPAGE

View File

@ -1421,7 +1421,7 @@ TImpianto * TLinea_prod::get_impianto() const
void find_price(const TString &tipocv, const TString &codcv, const TString &codcatven, void find_price(const TString &tipocv, const TString &codcv, const TString &codcatven,
const char *tipocf, long codcf, const char *tipocf, long codcf,
const char * codice, const real & qta, real & price) const char * codice, const real & qta, real & price, bool ignore_ultcos)
{ {
static TCondizione_vendita *_condv =NULL; static TCondizione_vendita *_condv =NULL;
@ -1450,18 +1450,21 @@ void find_price(const TString &tipocv, const TString &codcv, const TString &codc
} }
} }
_condv->put_condv(tipocv,cod,codcatven, tipocf, strcodcf); _condv->put_condv(tipocv,cod,codcatven, tipocf, strcodcf);
if (_condv->ricerca(codice, qta)) if (_condv->ricerca(codice, qta, true))
price = _condv->get_prezzo(); price = _condv->get_prezzo();
} }
break; break;
default: default:
break; break;
} }
if (!ignore_ultcos)
{
if (price == ZERO) if (price == ZERO)
price = cache().get(LF_ANAMAG,codice).get_real(ANAMAG_ULTCOS1); price = cache().get(LF_ANAMAG,codice).get_real(ANAMAG_ULTCOS1);
if (price == ZERO) if (price == ZERO)
price = cache().get(LF_ANAMAG,codice).get_real(ANAMAG_ULTCOS2); price = cache().get(LF_ANAMAG,codice).get_real(ANAMAG_ULTCOS2);
} }
}
void TProduzione::init() void TProduzione::init()
{ {

View File

@ -308,7 +308,7 @@ TImpianto * get_impianto(const char * codice);
TLinea_prod* get_linea(const char * codice); TLinea_prod* get_linea(const char * codice);
void find_price(const TString &tipocv, const TString &codcv, const TString &codcatven, void find_price(const TString &tipocv, const TString &codcv, const TString &codcatven,
const char * tipocf, long codcf, const char * codice, const real & qta, real & price); const char * tipocf, long codcf, const char * codice, const real & qta, real & price, bool ignore_ultcos = false);
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
// Utility // Utility