diff --git a/src/ve/velib03a.cpp b/src/ve/velib03a.cpp index 317a3efa5..a4a68c07d 100755 --- a/src/ve/velib03a.cpp +++ b/src/ve/velib03a.cpp @@ -616,6 +616,8 @@ int TExpr_documento::parse_user_func(const char * name, int nparms) const return nparms == 0 ? _nrate : -1; if (strcmp(name, "QTACONAI") == 0) return nparms >= 1 && nparms < 4 ? _qtaconai : -1; + if (strcmp(name, "PESOCONAI") == 0) + return nparms >= 1 && nparms < 4 ? _pesoconai : -1; if (strcmp(name, "VALCONAI") == 0) return nparms >= 1 && nparms < 4 ? _valconai : -1; return -1; @@ -1066,6 +1068,7 @@ void TExpr_documento::evaluate_user_func(int index, int nparms, TEval_stack & st default: TExpression::evaluate_user_func(index, nparms, stack, type); break; + case _pesoconai: case _qtaconai: { const int ndec = (nparms > 2) ? (int)stack.pop_real().integer() : 5; @@ -1086,13 +1089,12 @@ void TExpr_documento::evaluate_user_func(int index, int nparms, TEval_stack & st { const real peso = _row->get_real(conai_peso_name(i)); - val += (peso * _row->get_real(RDOC_QTA)); + val += (((index == _qtaconai) ? _row->get_real(RDOC_QTA) : UNO) * peso); } } if (tipo_calcolo < 2 && cat.full()) { real perc_esenz; - const TDate datadoc = _doc->get(DOC_DATADOC); const TRectype& cfven = _doc->clifor().vendite(); const TDate dataies = cfven.get(CFV_DATAICONAI);