diff --git a/ha/ha0300.cpp b/ha/ha0300.cpp index a91d860b1..9b6e7024b 100755 --- a/ha/ha0300.cpp +++ b/ha/ha0300.cpp @@ -59,7 +59,7 @@ char TDocumenti_premio_msk::find_prezzo_articolo(const TString& codart, real& pr key_umart.add(1); const TRectype& rec_umart = cache().get(LF_UMART, key_umart); um = rec_umart.get(UMART_UM); - const real umart_prezzo = rec_umart.get_real(UMART_PREZZO); + const real umart_prezzo = rec_umart.get(UMART_PREZZO); char origine_prezzo = 'A'; //'A'nagrafica prezzo = umart_prezzo; //mal che vada sarà il prezzo di umart @@ -165,29 +165,12 @@ bool TDocumenti_premio_msk::on_field_event(TOperable_field& o, TField_event e, l real prezzo; TString4 um; //se il prezzo l'ha trovato lo mette nel relativo campo - char origine = find_prezzo_articolo(o.get(), prezzo, um); + find_prezzo_articolo(o.get(), prezzo, um); if (!prezzo.is_zero()) { TMask& row_mask = o.mask(); row_mask.set(S_PREZZO, prezzo); row_mask.set(S_UMQTA, um); - - //per i contratti di anticipo/rifatturazione DEVE esistere il prezoo dell'articolo sul listino cliente (contratto campo).. - //..perchè non potrà andare a modificare altro che tale prezzo nel programma di aggiornamento contratti premio hardy.. - //..scaduti: (ha0400) - const char tipo_contr = get(F_TIPOCONTR)[0]; - if (origine != 'C' && (tipo_contr == 'A' || tipo_contr == 'R')) - { - TString msg; - msg.format("Non esiste il prezzo per l'articolo %s nel listino cliente selezionato!", (const char*)o.get()); - return error_box(msg); - } - } - else - { - TString msg; - msg.format("Non esiste il prezzo per l'articolo %s nei listini selezionati!", (const char*)o.get()); - return error_box(msg); } } break; diff --git a/ha/ha0300a.uml b/ha/ha0300a.uml index 0576f8899..866ef1046 100755 --- a/ha/ha0300a.uml +++ b/ha/ha0300a.uml @@ -369,14 +369,14 @@ END SPREADSHEET F_RIGHE BEGIN -PROMPT 2 14 "" -ITEM "Codice Articolo@20" -ITEM "Descrizione@40" -ITEM "UM@2" -ITEM "Prezzo listino" -ITEM "Premio@10" -ITEM "Ns. carico" -ITEM "Bonus@10" + PROMPT 2 14 "" + ITEM "Codice Articolo@20" + ITEM "Descrizione@40" + ITEM "UM@2" + ITEM "Prezzo listino" + ITEM "Premio@10" + ITEM "Ns. carico" + ITEM "Bonus@10" END ENDPAGE diff --git a/ha/ha1300.cpp b/ha/ha1300.cpp index 57a4a0a58..64e19386e 100755 --- a/ha/ha1300.cpp +++ b/ha/ha1300.cpp @@ -466,6 +466,7 @@ bool TUpload2Campo::genera_incasso(TPartita& game, int nriga, int nrata, if (!game.esiste(nriga, nrata)) // Non si sa mai col saldaconto! { msg.insert(TR("Non esiste la rata")); + msg << " Creazione pagamento non assegnato."; log.log(1, msg); //return false; nriga = nrata = game.UNASSIGNED; @@ -718,8 +719,17 @@ void TUpload2Campo::elabora_SI(THardy_upload_recordset& recset, TLog_report& log //panegirico su anno partita e numero partita const TString16 str_part = recset.get("Partita").as_string(); - const int annopart = atoi(str_part.left(4)); //anno = primi 4 caratteri del campo partita - TString8 numpart = str_part.mid(5, 7); //numero partita = 7 caratteri a partire dal sesto + int annopart = atoi(str_part.left(4)); //anno = primi 4 caratteri del campo partita + TString8 numpart = str_part.mid(5, 7); //numero partita = 7 caratteri a partire dal sesto + + if (numpart.blank()) + { + annopart = datadoc.year(); + + TToken_string nd(recset.get("NumeroFattura").as_string(), '/'); + numpart.format("%ld/%d", nd.get_long(0), nd.get_int(1)); + } + if (annopart <= 0 || numpart.blank()) { TString msg;