diff --git a/ha/hacnv100a.ini b/ha/hacnv100a.ini index b2e37efd5..52d0948c4 100755 --- a/ha/hacnv100a.ini +++ b/ha/hacnv100a.ini @@ -348,7 +348,7 @@ UM = NSCAGL = QLIM = PREZZO = Prezzo -SCONTO = Sconto1 +SCONTO = _SCONTO ADDIVA = CODIVA = PERCPROVV = @@ -405,7 +405,7 @@ UM = NSCAGL = QLIM = PREZZO = Prezzo -SCONTO = Sconto1 +SCONTO = _SCONTO ADDIVA = CODIVA = PERCPROVV = @@ -456,8 +456,8 @@ CODRIGA = IdProdotto UM = NSCAGL = QLIM = -PREZZO = Prezzo -SCONTO = Sconto1 +PREZZO = _ROUND,Prezzo +SCONTO = _SCONTO ADDIVA = CODIVA = PERCPROVV = diff --git a/ha/hacnv200.cpp b/ha/hacnv200.cpp index 0cb31d088..8799155ef 100755 --- a/ha/hacnv200.cpp +++ b/ha/hacnv200.cpp @@ -128,7 +128,11 @@ bool THardy_movimenti::trasferisci() "FROM dbo.MovContabiliT " "WHERE Esercizio="; query << _anno; - query << " ORDER BY DataMovimento "; + query << " AND DataMovimento>= '"; + query << _dadata.string(); + query << "' AND DataMovimento<= '"; + query << _adata.string(); + query << "' ORDER BY DataMovimento "; TRecordset& recset = create_recordset(query); TConfig& ini = config(); diff --git a/ha/hacnvlib.cpp b/ha/hacnvlib.cpp index c46fd8906..a934d01d0 100755 --- a/ha/hacnvlib.cpp +++ b/ha/hacnvlib.cpp @@ -265,6 +265,11 @@ const TString& THardy_transfer::get_real_str(const char* campo) const return var.as_string(); } +real THardy_transfer::get_real(const char* field) const +{ + return recordset().get(field).as_real(); +} + long THardy_transfer::get_long(const char* field) const { return recordset().get(field).as_int(); @@ -362,6 +367,37 @@ void THardy_transfer::aggiorna_record(TRectype& rec, const TString_array& lista_ { if (campo_orig[0] == '_') { + if (campo_orig.starts_with("_SCONTO")) // è uno sconto (ca..o!) + { + valore.cut(0); + real sconto; + TString8 field; + for (int i = 1; i < 6; i++) + { + field.format("Sconto%1d",i); + sconto = get_real(field); + sconto.round(2); + if (sconto != ZERO) + { + valore << sconto.string(); + valore << "+"; + } + } + if (valore.len()>0) + valore = valore.left(valore.len()-1); + } else + if (campo_orig.starts_with("_REAL")) // è un real + { + const TString80 campo = campo_orig.after(','); + valore = get_real_str(campo); + } else + if (campo_orig.starts_with("_ROUND")) // arrotondo a due decimali + { + const TString80 campo = campo_orig.after(','); + real contenuto = get_real(campo); + contenuto.round(2); + valore = contenuto.string(); + } else if (campo_orig.starts_with("_FISSO")) // valore fisso indicato in configurazione { valore = campo_orig.after(','); @@ -385,8 +421,7 @@ void THardy_transfer::aggiorna_record(TRectype& rec, const TString_array& lista_ const TString16 codtab = get_str(elabora.get()); const TString16 campotab = elabora.get(); valore = cache().get(tab, codtab, campotab); - } - else + } else if (campo_orig.starts_with("_TRADUCI")) { const TString80 campo = campo_orig.after(','); diff --git a/ha/hacnvlib.h b/ha/hacnvlib.h index d4cd083e5..ab0870515 100755 --- a/ha/hacnvlib.h +++ b/ha/hacnvlib.h @@ -81,6 +81,7 @@ public: TRecordset& recordset(); const TString& get_str(const char* campo) const; // Get string from current recordset + real get_real(const char* campo) const; // Get real from current recordset const TString& get_real_str(const char* campo) const; // Get eventually empty string from numeric field long get_long(const char* campo) const;