diff --git a/lv/lv0400c.rep b/lv/lv0400c.rep index 26102fee1..bfd57149d 100755 --- a/lv/lv0400c.rep +++ b/lv/lv0400c.rep @@ -2,9 +2,9 @@ Stampa Contratto per Cliente -
-
-
+
+
+
CODCONT @@ -21,7 +21,7 @@ - 500@.RAGSOC + CLIFO.RAGSOC @@ -31,10 +31,10 @@ 168.DATAIN - 500@.INDCF + CLIFO.INDCF - 500@.CIVCF + CLIFO.CIVCF @@ -43,14 +43,14 @@ 168.DATASC - 500@.CAPCF + CLIFO.CAPCF - 500@.LOCALITACF + CLIFO.LOCALITACF - 500@.COFI + CLIFO.COFI @@ -177,9 +177,9 @@
-
-
-
+
+
+
@@ -196,7 +196,7 @@
-
+
USE 169 JOIN 47 TO 169 ALIAS 600 INTO CODART==CODART FROM CODCF=#PARENT.CODCF CODCONT=#PARENT.CODCONT @@ -219,15 +219,14 @@ TO CODCF=#PARENT.CODCF CODCONT=#PARENT.CODCONT - 169.DOTOD - MESSAGE _ISAMREAD,166,ANNOES=#F_ANNO!TIPOCF='C'!CODCF=168.CODCF!INDSPED=168.CODINDSPED!CODART=#600!NRIGA=1,DOTOD + #DOTOD 169.CODART
-
+
@@ -237,7 +236,7 @@ TO CODCF=#PARENT.CODCF CODCONT=#PARENT.CODCONT
-
+
@@ -249,7 +248,7 @@ TO CODCF=#PARENT.CODCF CODCONT=#PARENT.CODCONT
-
+
USE 164 JOIN ITI TO 164 ALIAS 700 INTO CODTAB==CODITI FROM CODCF=#PARENT.CODCF CODCONT=#PARENT.CODCONT @@ -290,12 +289,12 @@ TO CODCF=#PARENT.CODCF CODCONT=#PARENT.CODCONT
-
+
-
+
@@ -312,7 +311,7 @@ TO CODCF=#PARENT.CODCF CODCONT=#PARENT.CODCONT
-
+
USE 165 JOIN TSP TO 165 ALIAS 800 INTO CODTAB==TPSOSP FROM CODCF=#PARENT.CODCF CODCONT=#PARENT.CODCONT @@ -334,12 +333,12 @@ TO CODCF=#PARENT.CODCF CODCONT=#PARENT.CODCONT
-
-
-
-
- USE 168 -JOIN 20 TO 168 ALIAS 500 INTO TIPOCF=="C" CODCF==CODCF +
+
+
+
+ USE LVCONDV +JOIN CLIFO INTO TIPOCF=="C" CODCF==CODCF JOIN 16 TO 168 ALIAS 200 INTO TIPOCF=="C" CODCF==CODCF CODIND==CODINDSP JOIN %CPG TO 20 ALIAS 201 INTO CODTAB==CODPAG JOIN %BAN TO 20 ALIAS 204 INTO CODTAB==CODABI+CODCAB diff --git a/lv/lvlib.cpp b/lv/lvlib.cpp index d8dae47af..457213c07 100755 --- a/lv/lvlib.cpp +++ b/lv/lvlib.cpp @@ -1709,9 +1709,72 @@ TGiac_per_cli::TGiac_per_cli() _year = 0; _indsped = 0; } + + ////////////////////////// + //// TLV_REPORT //// + ////////////////////////// + +/*void TLV_report::msg_lv_dot(const TString& name, TVariant& var) +{ + TReport_field& cf = *curr_field(); + + TRecordset& recset = *recordset(); + const long codcf = recset.get("CODCF").as_int(); + const long codcont = recset.get("CODCONT").as_int(); + //const TLaundry_contract cont(codcf, codcont); + //const TRectype& rdoc = riga_doc(); + //const TDocumento& h = doc(); + //instanzio un TArticolo_lavanderie per poter recuperare i dati di interesse + TArticolo_lavanderie& artrec = cached_article_laundry("N0001", 'C', codcf, 0); //per adesso 0, poi lo modifico + + //setto datasc a oggi e fisso l'anno esercizio + TEsercizi_contabili& esc = esercizi(); + const int last_esc = esc.last(); + + //estraggo il record corrispondente su LF_CLIFOGIAC + const TRecmag_lavanderie& reclav = artrec.find_rec(last_esc); + const TVariant x = reclav.get("DOTOD"); + cf.set(x); +}*/ + +/*size_t TLV_report::get_usr_words(TString_array& words) const +{ + TReport::get_usr_words(words); + + const char* const name[] = { "LV_NEXTCONS", "LV_DOT", NULL }; + + ((TLV_report*)this)->_first_lv_msg = words.items(); // Calcola il primo numero disponibile + for (size_t i = 0; name[i] != NULL; i++) + words.add(name[i]); + + return words.items(); +}*/ + +/*bool TLV_report::execute_usr_word(unsigned int opcode, TVariant_stack& stack) +{ + if (opcode < _first_lv_msg) + return TReport::execute_usr_word(opcode, stack); + opcode -= _first_lv_msg; + switch (opcode) + { + //case 0 : + //msg_lv_nextcons(stack); break; + case 1 : + case 2 : + case 3 : + msg_lv_dot(stack); break; + default: + break; + } + + while (!stack.pop().is_null()); // Svuota eventuali parametri variabili inutilizzati + + return true; +}*/ + bool TLV_report::get_usr_val(const TString& name, TVariant& var) const { - if (name == "#NEXTCONS") + if(name == "#NEXTCONS") { TRecordset& recset = *recordset(); const long clifo = recset.get("CODCF").as_int(); @@ -1724,8 +1787,32 @@ bool TLV_report::get_usr_val(const TString& name, TVariant& var) const TDate next_dtcons = dtcons; next_dtcons += 7; var = next_dtcons; - return true; - } + return true; + } + } + + if(name.starts_with("#DOTOD")) + { + TReport_field& cf = *curr_field(); + TRecordset* row_recset = cf.section().recordset(); + + TRecordset& recset = *recordset(); + const long codcf = recset.get("CODCF").as_int(); + const long codcont = recset.get("CODCONT").as_int(); + const TString80 codart = row_recset != NULL ? row_recset->get("CODART").as_string() : recset.get("CODART").as_string(); + + //instanzio un TArticolo_lavanderie per poter recuperare i dati di interesse + TArticolo_lavanderie& artrec = cached_article_laundry(codart, 'C', codcf, 0); //per adesso 0, poi lo modifico + + //setto datasc a oggi e fisso l'anno esercizio + TEsercizi_contabili& esc = esercizi(); + const int last_esc = esc.last(); + + //estraggo il record corrispondente su LF_CLIFOGIAC + const TRecmag_lavanderie& reclav = artrec.find_rec(last_esc); + const TVariant x = reclav.get("DOTOD"); + cf.set(x); + return true; } return TDocument_report::get_usr_val(name, var); } diff --git a/lv/lvlib.h b/lv/lvlib.h index 1c947a4c0..787040a9f 100755 --- a/lv/lvlib.h +++ b/lv/lvlib.h @@ -393,7 +393,14 @@ public: class TLV_report : public TDocument_report { + //size_t _first_lv_msg; + protected: + //bool msg_lv_nexcons(TVariant& var); + //void msg_lv_dot(const TString& name, TVariant& var); + + //virtual size_t get_usr_words(TString_array& words) const; + //virtual bool execute_usr_word(unsigned int opcode, TVariant_stack& stack); virtual bool get_usr_val(const TString& name, TVariant& var) const; public: