From 3a6500009886ce01af34059e652e3e9c48681d0f Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 12 Jan 2010 11:23:22 +0000 Subject: [PATCH] Patch level : 10.0 577 Files correlati : lv2.exe Ricompilazione Demo : [ ] Commento : Corretta Stampa giri git-svn-id: svn://10.65.10.50/trunk@19906 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- lv/lv2300.cpp | 5 ++- lv/lvlib.cpp | 120 +++++++++++++++++++++++++++++++++++++++++++------- 2 files changed, 107 insertions(+), 18 deletions(-) diff --git a/lv/lv2300.cpp b/lv/lv2300.cpp index 2e623a85b..8fb861853 100755 --- a/lv/lv2300.cpp +++ b/lv/lv2300.cpp @@ -210,7 +210,6 @@ void TGiri_app::elabora(const TMask& mask) const giri.set_var("#TO_CODAUT",TVariant(mask.get(F_CODAUT_TO))); giri.set_var("#FROM_CODCF",TVariant(mask.get(F_CODCF_FROM))); giri.set_var("#TO_CODCF",TVariant(mask.get(F_CODCF_TO))); - giri.set_var("#F_CHECK_MNEM",TVariant(mask.get(F_CHECK_MNEM_TO))); TItinerari iti; @@ -230,7 +229,9 @@ void TGiri_app::elabora(const TMask& mask) const TGiri_report r(true); TGiri_recordset* giri_set = new TGiri_recordset(); - r.set_recordset(giri_set); + + giri_set->set_var("#F_CHECK_MNEM",TVariant(mask.get(F_CHECK_MNEM_TO))); + r.set_recordset(giri_set); FOR_EACH_ARRAY_ITEM(iti,i,obj)//scandisce itinerario e tiene //buoni solo quelli valorizzati { diff --git a/lv/lvlib.cpp b/lv/lvlib.cpp index d7c9d5221..235690a63 100755 --- a/lv/lvlib.cpp +++ b/lv/lvlib.cpp @@ -5,7 +5,9 @@ #include "../cg/cglib01.h" #include "../mg/clifogiac.h" +#include #include +#include #include #include @@ -50,6 +52,37 @@ bool lv_is_holiday(const TDate& data) return (*cal)[index] == 'X'; } +HIDDEN short __lv_02_active = 0x3; +HIDDEN TFilename __lv_backup_path; + +bool lv_is_02_active() +{ + if (__lv_02_active == 0x3) + { + __lv_02_active = main_app().has_module(L2AUT); + + if (__lv_02_active) + { + __lv_backup_path = ini_get_string(CONFIG_DITTA, "lv", "Backup"); + __lv_02_active = __lv_backup_path.full(); + if (__lv_02_active) + { + TFilename dir(__lv_backup_path); + + dir.add("com"); + dir.add("dir.gen"); + __lv_02_active = dir.exist() && dir.find(' ') < 0; + } + } + } + return (bool) __lv_02_active; +} + +const TFilename & lv_backup_path() +{ + lv_is_02_active(); // serve per inizializzare il valore + return __lv_backup_path; +} //funzione che restituisce un codice contratto valido dato cliente, indirizzo di spedizione e data long lv_find_contract(const long codcf, const long indsped, const TDate& data) { @@ -358,36 +391,46 @@ void TRecmag_lavanderie::update() else imese = esc.esercizio(anno).fine(); - query="USE MOVMAG KEY 2\n"; +/* query="USE MOVMAG KEY 2\n"; query << "SELECT (TIPOCF='C')&&(CODCF==" << codcf << ")&&(STR(CODINDSP==" << indsped << "))&&(BETWEEN(DATACOMP," << imese.date2ansi() << "," << oggi.date2ansi() << "))\n"; query << "FROM ANNOES=" << anno << "\n"; - query << "TO ANNOES=" << anno << "\n"; + query << "TO ANNOES=" << anno << "\n"; */ + query="USE MOVMAG KEY 5\n"; + query << "FROM TIPOCF='C'" + << " CODCF=" << codcf + << " CODINDSP=" << indsped + << " DATACOMP=" << imese.string() << "\n"; + query << "TO TIPOCF='C'" + << " CODCF=" << codcf + << " CODINDSP=" << indsped + << " DATACOMP=" << oggi.string() << "\n"; TISAM_recordset recmag(query); - - _consmese = ZERO; - for (bool ok=recmag.move_first(); ok; ok=recmag.move_next()) + TString8 codcausmov; + + _consmese = ZERO; + for (bool ok = recmag.move_first(); ok; ok = recmag.move_next()) { - const TDate datareg = recmag.get(MOVMAG_DATAREG).as_date(); - TString queryrmag="USE RMOVMAG\n"; + TString queryrmag("USE RMOVMAG\n"); queryrmag << " SELECT (CODART=\"" << codart << "\")&&(LIVGIAC=\"" << livello << "\")\n"; queryrmag << "FROM NUMREG=" << recmag.get(MOVMAG_NUMREG) << "\n" << "TO NUMREG=" << recmag.get(MOVMAG_NUMREG) << "\n"; + codcausmov = recmag.get(MOVMAG_CODCAUS).as_string(); TISAM_recordset recrmag(queryrmag); for (bool ok=recrmag.move_first(); ok; ok=recrmag.move_next()) { const TString& codcaus = recrmag.get(RMOVMAG_CODCAUS).as_string(); - const TCausale_magazzino & tcaus = cached_causale_magazzino(codcaus.full() ? codcaus : recmag.get(MOVMAG_CODCAUS).as_string()); + const TCausale_magazzino & tcaus = cached_causale_magazzino(codcaus.full() ? codcaus : codcausmov); int sgn_consmese = tcaus.sgn(s_consmese); - if (sgn_consmese != 0) - { - const TString4 um = recrmag.get(RMOVMAG_UM).as_string(); - const real qta = ((TArticolo &)artrec).convert_to_um(recrmag.get(RMOVMAG_QUANT).as_real(), NULL,um); + + if (sgn_consmese != 0) + { + const real qta = ((TArticolo &)artrec).convert_to_um(recrmag.get(RMOVMAG_QUANT).as_real(), NULL, recrmag.get(RMOVMAG_UM).as_string()); _consmese += real(qta * sgn_consmese); - } + } } } } @@ -775,11 +818,56 @@ TLavanderie_calendar::TLavanderie_calendar(const int year) : _year(year) /////////////////////////////////// TCausale_lavanderie::TCausale_lavanderie(const char * codice): - TRectype(cache().get("&CAU", codice)), _rit(caurit()), _cons(caucon()) + TRectype(cache().get("&CAU", codice)) { } +TCausale_lavanderie::TCausale_lavanderie(const TRectype &r): + TRectype(r) +{ + CHECK(r.num() == LF_TABMOD, "Tipo record errato sulla causale di magazzino"); +} + +/////////////////////////////////////////////////////////// +// TCache_causali_lavanderie +/////////////////////////////////////////////////////////// +class TCache_causali_lavanderie : public TRecord_cache +{ +protected: + virtual TObject* rec2obj(const TRectype& rec) const{ return new TCausale_lavanderie(rec); } + + +public: + TCausale_lavanderie & caus(const char* key); + + TCache_causali_lavanderie(); + virtual ~TCache_causali_lavanderie() { } +}; + + +TCache_causali_lavanderie::TCache_causali_lavanderie() + : TRecord_cache("LVCAU", 1) +{ + test_file_changes(); // Tieni d'occhio le modifiche sul file + set_items_limit(83); // Numero primo +} + +TCausale_lavanderie & TCache_causali_lavanderie::caus(const char* key) +{ + TString16 k; + + k << "LV||CAU|" << key; + return (TCausale_lavanderie &)query(k); +} + +TCausale_lavanderie & cached_causale_lavanderie(const char * codcaus) +{ + HIDDEN TCache_causali_lavanderie __cache_causali_lavanderie; + + return __cache_causali_lavanderie.caus(codcaus); +} + //////////////////////// //// TDOC_KEY //// @@ -1547,7 +1635,7 @@ TCursor* TLV_recordset::cursor() const bool to_create = !valid_cursor(); TCursor * c = TISAM_recordset::cursor(); - if (to_create && c != NULL) + if (to_create && c != NULL && relation()->log2ind(LF_CLIFOGIAC) >= 0) { TLocalisamfile & clifogiac = relation()->lfile(LF_CLIFOGIAC); @@ -1566,4 +1654,4 @@ bool TLV_report::set_recordset(const TString& sql) return rex != NULL; } return TReport::set_recordset(sql); -} +} \ No newline at end of file