diff --git a/lv/lv2600.cpp b/lv/lv2600.cpp index c82a238d4..a3e7ad98d 100755 --- a/lv/lv2600.cpp +++ b/lv/lv2600.cpp @@ -6,6 +6,8 @@ #include #include "lvlib.h" + +#include "../mg/clifogiac.h" #include "../ve/velib.h" #include "clifo.h" @@ -13,7 +15,6 @@ #include "lvcondv.h" #include "lvrcondv.h" #include "lvrconsplan.h" - #include "lv2600a.h" ///////////////////////////// @@ -732,6 +733,27 @@ bool TAcquisizione_lavanderie_app::elabora_file(const TString& file, TLog_report warning_box(str); } + TLocalisamfile magcli(LF_CLIFOGIAC); + magcli.put(CLIFOGIAC_ANNOES, datadoc.year()); + magcli.put(CLIFOGIAC_TIPOCF, 'C'); + magcli.put(CLIFOGIAC_CODCF, codcf); + magcli.put(CLIFOGIAC_INDSPED, cont.get_int(LVCONDV_CODINDSP)); + magcli.put(CLIFOGIAC_CODART, codart); + magcli.put(CLIFOGIAC_NRIGA, 1); + //leggo il record corrispondente + if(magcli.read()) + { + const real dotod = magcli.get_real(CLIFOGIAC_DOTOD); + + if(qta > dotod) + { + TString str; + str << "Attenzione! Il cliente " << codcf << " per l'articolo " << codart << " ha una dotazione di " + << dotod << " pezzi, e ne sono stati ritirati " << qta << " (" << qta - dotod << " in più)."; + warning_box(str); + } + } + TQuantita_contate* qc = articoli.quantita(codcf, codart.trim(), datadoc, true); //se la chiave è già presente nel TAssoc_array, chiedi cosa fare delle quantità @@ -893,8 +915,7 @@ void TAcquisizione_lavanderie_app::genera_documenti(TLog_report& rep, TAssoc_arr rdoc.put(RDOC_QTAGG2, qtarotti); rdoc.put(RDOC_CODIVA, anamag.get(ANAMAG_CODIVA)); - //scrivo il magazzino - + //scrivo il magazzino const TCausale_lavanderie cau(causale); TCausale_magazzino rit(cau.causale_ritiro()); TCausale_magazzino con(cau.causale_consegna()); diff --git a/lv/lv3400.cpp b/lv/lv3400.cpp index 714443560..b85cad392 100755 --- a/lv/lv3400.cpp +++ b/lv/lv3400.cpp @@ -154,16 +154,17 @@ TQuantita_riga::TQuantita_riga(bool evaso, long qtadc, long qtac, int pacchi) class TRighe_array: public TAssoc_array { public: - TQuantita_riga* quantita(TString& codart, TDate& data, bool create); + TQuantita_riga* quantita(TString& codart, TDate& data, TString& cau, bool create); }; //QUANTITA: metodo che cerca nel TAssoc_array le quantità della riga interessata in base ai parametri passati //e lo crea in automatico se il parametro create vale "true" -TQuantita_riga* TRighe_array::quantita(TString& codart, TDate& data, bool create) +TQuantita_riga* TRighe_array::quantita(TString& codart, TDate& data, TString& cau, bool create) { TToken_string key; key.add(codart); key.add(data); + key.add(cau); TQuantita_riga* qr = (TQuantita_riga*)objptr(key); @@ -278,7 +279,8 @@ bool TEvasione_ter_msk::precarica_righe() if (rdoc.qta_dacons() > 0) { - TQuantita_riga* qr = _ra.quantita(codart, oggi, true); + TString4 cau = rdoc.causale(); + TQuantita_riga* qr = _ra.quantita(codart, oggi, cau, true); qr->set_nriga(i); qr->set_evaso(rdoc.evaso()); qr->set_qta_rit(rdoc.qta_ritirata());