diff --git a/lv/ANALISI DELLA FATTURAZIONE LAVANDERIE.doc b/lv/ANALISI DELLA FATTURAZIONE LAVANDERIE.doc new file mode 100755 index 000000000..c0478c162 Binary files /dev/null and b/lv/ANALISI DELLA FATTURAZIONE LAVANDERIE.doc differ diff --git a/lv/f168.dir b/lv/f168.dir index 615756319..fedc7e928 100755 --- a/lv/f168.dir +++ b/lv/f168.dir @@ -1,3 +1,3 @@ 168 0 -$lvcondv|||170|0|Tabella testate di contratto||| +$lvcondv|||205|0|Tabella testate di contratto||| diff --git a/lv/f168.trr b/lv/f168.trr index 640035899..a4e6e0d07 100755 --- a/lv/f168.trr +++ b/lv/f168.trr @@ -1,5 +1,5 @@ 168 -44 +45 CODCONT|3|6|0|Codice Contratto STATUS|1|2|0|Stato del contratto, chiuso, confermato, da confermare PROPOSTA|8|1|0|Proposta di contratto @@ -9,7 +9,7 @@ DATASC|5|8|0|Data di scadenza del contratto CODINDSP|2|3|0|Codice indirizzo di spedizione DTSTAGIN|5|8|0|Data di inizio stagionalità DTSTAGSC|5|8|0|Data di scadenza stagionalità -FATTSOSP|8|1|0|Fatturazione sospesa o escluso da fatturazione +FATTSOSP|8|1|0|Escluso da fatturazione STRCONS|8|1|0|Stampa riepilogo consegne TIPOLIS|2|1|0|Tipo listino STPRZBOL|8|1|0|Visualizza i prezzi in bolla @@ -42,7 +42,8 @@ NUMUT|2|5|0|Numero utente NUMETI|2|5|0|Numero etichette RITAUDTTMP|8|1|0|Ritiro automatico dotazione temporanea DTFIXDDT|5|8|0|Data fissa per creazione DDT da sporco -ELART|8|1|0|Elenco articoli +PREZROT|4|18|3|Prezzo rotti +IMPCANFIS|4|18|3|Importo per canone fisso COMMENTI|11|10|0|Commenti e note 1 CODCF+CODCONT| diff --git a/lv/lv0300a.uml b/lv/lv0300a.uml index 15ccc99ab..e106496d0 100755 --- a/lv/lv0300a.uml +++ b/lv/lv0300a.uml @@ -552,10 +552,25 @@ BEGIN FIELD Perarr END -NUMBER F_VALFIX 10 +STRING F_CODARTFIX 20 BEGIN - PROMPT 2 16 "Codice per forfait a valore fisso " - FIELD Valfix + PROMPT 2 16 "Codice articolo per forfait a valore fisso " + FIELD Codartfix + KEY 1 + FLAG "UG" + USE LF_ANAMAG + INPUT CODART F_CODARTFIX + DISPLAY "Codice@20" CODART + DISPLAY "Descrizione@50" DESCR + OUTPUT F_CODARTFIX CODART +END + +LISTBOX F_TIPOPR 1 8 +BEGIN + PROMPT 2 17 "Tipo di prezzo" + ITEM "0|Prezzo da contratto" + ITEM "1|Prezzo da bolla" + FIELD Tipopr END GROUPBOX DLG_NULL 78 4 diff --git a/lv/lv2500.cpp b/lv/lv2500.cpp index 0d6e1043b..1fbcf6da2 100755 --- a/lv/lv2500.cpp +++ b/lv/lv2500.cpp @@ -1,4 +1,5 @@ #include +#include #include "lvlib.h" #include "lv2500a.h" @@ -51,7 +52,28 @@ bool TFatturazione_lavanderie::da_raggruppare(const TRiga_documento & rin) const TRectype & rcont = contr.row(codart); const int tipoforf = rcont.get_int(LVRCONDV_TIPOFORF); - return tipoforf > 1; + // return tipoforf > 1; // Test originale + if (tipoforf > 1) + return true; + + // Da qui in poi e' sottinteso tipoforf == 1 + if (ini_get_int(CONFIG_DITTA, "lv", "TipoPr") == 1) + return false; + + // Test GUY + const TString8 causale = rin.get(RDOC_CODAGG1); + const TRectype& cau = cache().get("&CAU", causale); + if (cau.get_bool("B1")) + { + const TCausale_magazzino& con = cached_causale_magazzino(cau.get("S2")); + if (con.sgn(s_dottm)) // Causale di incremento sotazione temporanea + return true; + } + + if (cau.get_bool("B4")) // Causale di rotto + return true; + + return false; } @@ -152,23 +174,36 @@ void TFatturazione_lavanderie::add_rows(TRiga_documento & rout, TRiga_documento { const TString8 causale = rin.get(RDOC_CODAGG1); const TRectype& cau = cache().get("&CAU", causale); - //movimento o meno la dotazione temporanea/odierna a seconda di cosa prevede la causale - - if (cau.get_bool("B0")) + const TCausale_magazzino& rit = cached_causale_magazzino(cau.get("S1")); + const TCausale_magazzino& con = cached_causale_magazzino(cau.get("S2")); //movimento o meno la dotazione temporanea/odierna a seconda di cosa prevede la causale + + const long clifo = rin.doc().get_long(DOC_CODCF); + const int indsped = rin.doc().get_int(DOC_CODINDSP); + TLaundry_contract contr(clifo, indsped, _data_elab); + + if (cau.get_bool("B4") && contr.get_int(LVCONDV_ADDCAPROT)) // Guardo se è una causale di rotto e se è abilitato nella testata del contratto la fatturazione dei rotti { - const TCausale_magazzino& rit = cached_causale_magazzino(cau.get("S1")); - const real qta = rit.sgn(s_consmese) * rin.get_real(RDOC_QTA); - - rout.add(RDOC_QTA, qta); - + const real qta = rit.sgn(s_consmese) * rin.get_real(RDOC_QTA); + rout.put(RDOC_PREZZO,contr.get_int(LVCONDV_PREZROT)); + rout.add(RDOC_QTA, qta); } - if (cau.get_bool("B1")) + else { - const TCausale_magazzino& con = cached_causale_magazzino(cau.get("S2")); - const real qta = con.sgn(s_consmese) * rin.get_real(RDOC_QTA); + if (cau.get_bool("B0")) + { + const real qta = rit.sgn(s_consmese) * rin.get_real(RDOC_QTA); + rout.add(RDOC_QTA, qta); - rout.add(RDOC_QTA, qta); + } + if (cau.get_bool("B1")) + { + const real qta = con.sgn(s_consmese) * rin.get_real(RDOC_QTA); + rout.add(RDOC_QTA, qta); + } } + + + } void TFatturazione_lavanderie::create_row(TDocumento& doc_out, const TRiga_documento & rin) @@ -235,7 +270,7 @@ void TFatturazione_lav_app::main_loop() while (msk.run()!=K_QUIT) { TString query; - query << "USE DOC KEY 3 SELECT (TIPOCF==\"C\")&&(BETWEEN(DATADOC,#DADATA,#ADATA))\n" + query << "USE DOC KEY 3 SELECT (TIPOCF==\"C\")&&(BETWEEN(DATADOC,#DADATA,#ADATA))&&(STATO=2)&&(TIPODOC==\"B01\")\n" << "BY TIPOCF CODCF DATADOC\n" << "FROM " << "DATADOC=#DADATA PROVV=D ANNO=#ANNO\n" << "TO " << " DATADOC=#ADATA PROVV=D ANNO=#ANNO\n"; diff --git a/lv/lv2500a.h b/lv/lv2500a.h index 7c040d363..2dcd48a90 100755 --- a/lv/lv2500a.h +++ b/lv/lv2500a.h @@ -4,7 +4,8 @@ #define F_COD_ELAB 104 #define F_DESC_ELAB 105 #define F_PERFAT 106 - +#define F_CODCATC 107 +#define F_CODZONA 108 diff --git a/lv/lv2500a.uml b/lv/lv2500a.uml index 2f0c18dac..5f3e7a02f 100755 --- a/lv/lv2500a.uml +++ b/lv/lv2500a.uml @@ -10,13 +10,13 @@ PAGE "Fatturazione" -1 -1 40 5 DATE F_DADATA BEGIN PROMPT 2 1 "Fattura dal " - CHECKTYPE REQUIRED + FLAGS "H" END DATE F_ADATA BEGIN PROMPT 45 1 "al " - CHECKTYPE REQUIRED + FLAGS "H" END DATE F_DATAFAT @@ -26,9 +26,37 @@ BEGIN CHECKTYPE REQUIRED END +STRING F_CODCATC 2 +BEGIN + PROMPT 43 3 "Codice Categoria economica " + FIELD LF_CFVEN->CODCATC + USE CCO + INPUT CODTAB F_CODCATC + DISPLAY "Codice contabile" CODTAB + DISPLAY "Descrizione@30" S0 + OUTPUT F_CODCATC CODTAB + HELP "Codice categoria contabile del C/F" + CHECKTYPE NORMAL +END + +STRING F_CODZONA 2 +BEGIN + PROMPT 2 4 "Codice Zona " + FIELD LF_CFVEN->CODZONA + GROUP 7 + USE ZON + INPUT CODTAB F_CODZONA + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT F_CODZONA CODTAB + HELP "Codice della zona dell'agente" + CHECKTYPE NORMAL +END + + STRING F_COD_ELAB 8 BEGIN - PROMPT 2 3 "Codice " + PROMPT 2 5 "Codice " FLAG "U" USE %ELD SELECT I0==2 INPUT CODTAB F_COD_ELAB @@ -42,7 +70,7 @@ END STRING F_DESC_ELAB 50 BEGIN - PROMPT 2 4 "Descrizione " + PROMPT 2 6 "Descrizione " USE %ELD KEY 2 SELECT I0==2 INPUT S0 F_DESC_ELAB DISPLAY "Descrizione@50" S0 @@ -54,7 +82,7 @@ END RADIOBUTTON F_PERFAT 1 70 BEGIN - PROMPT 2 5 "@bPeriodicità di fatturazione " + PROMPT 2 7 "@bPeriodicità di fatturazione " ITEM "0|Giornaliera" ITEM "1|Settimanale" ITEM "2|Quindicinale" diff --git a/lv/lvcondv.h b/lv/lvcondv.h index 820efee3e..08c6fea2e 100755 --- a/lv/lvcondv.h +++ b/lv/lvcondv.h @@ -44,6 +44,9 @@ #define LVCONDV_NUMETI "MUNETI" #define LVCONDV_RITAUDTTMP "RITAUDTTMP" #define LVCONDV_DTFIXDDT "DTFIXDDT" +#define LVCONDV_PREZROT "PREZROT" +#define LVCONDV_IMCANFIS "IMCANFIS" #define LVCONDV_COMMENTI "COMMENTI" + #endif \ No newline at end of file