diff --git a/ha/hacnv400.cpp b/ha/hacnv400.cpp index faa56cd80..f7c54e7ab 100755 --- a/ha/hacnv400.cpp +++ b/ha/hacnv400.cpp @@ -185,7 +185,6 @@ bool THardy_movmag::scrivi_testata(const TRecordset& recset, TMov_mag& mov) so = 0; conto2campo(hdtipoc, key, tipoc, gr, co, so); mov.zero(); - // posso lasciare vuoto numreg ?? mov.put(MOVMAG_ANNOES, recset.get("Esercizio").as_int()); mov.put(MOVMAG_DATAREG, recset.get("DataMovimento").as_string()); mov.put(MOVMAG_DATACOMP, recset.get("DataCompetenza").as_string()); @@ -194,6 +193,12 @@ bool THardy_movmag::scrivi_testata(const TRecordset& recset, TMov_mag& mov) mov.put(MOVMAG_CODINDSP, recset.get("IdDestinazione").as_string()); mov.put(MOVMAG_CODCF, so); mov.put(MOVMAG_NUMREGST, recset.get("ProtGiornale").as_int()); + mov.put(MOVMAG_EXNUMDOC, recset.get("Protocollo").as_string()); + TString80 descr = "Rif.Doc. "; + descr << recset.get("DataDocumento").as_string(); + descr << " "; + descr << recset.get("RifDocumento").as_string(); + mov.put(MOVMAG_DESCR, descr); return true; } // legge righe del movmag e le scrive nel TMov_mag @@ -203,7 +208,9 @@ bool THardy_movmag::scrivi_righe(TMov_mag& mov) query_righe << query_header(); query_righe << "SELECT * " "FROM dbo.MovMagazzino " - "WHERE Protocollo="; + "WHERE Esercizio="; + query_righe << _anno; + query_righe << " AND Protocollo="; query_righe << _protocollo; TODBC_recordset recset_righe(query_righe); TLocalisamfile rmov(LF_RMOVMAG); @@ -220,8 +227,15 @@ bool THardy_movmag::scrivi_righe(TMov_mag& mov) rmov.put(RMOVMAG_CODMAG, format("%02d", codmag)); rmov.put(RMOVMAG_CODART, recset_righe.get("IdProdotto").as_string()); rmov.put(RMOVMAG_QUANT, recset_righe.get("Quantita").as_string()); - rmov.put(RMOVMAG_UM, recset_righe.get("IdUmDoc").as_string()); - rmov.put(RMOVMAG_PREZZO, recset_righe.get("Prezzo").as_string()); + TString4 um = recset_righe.get("IdUmDoc").as_string(); + if (um.blank()) + { + TString80 key = recset_righe.get("IdProdotto").as_string(); + key << "|1"; + um = cache().get(LF_UMART, key, UMART_UM); + } + rmov.put(RMOVMAG_UM, um); + rmov.put(RMOVMAG_PREZZO, recset_righe.get("PrezzoMov").as_string()); const int kmovmag = recset_righe.get("KMovmag").as_int(); TString80 idlotto; get_lotto(kmovmag, idlotto);