Correzioni varie su lavanderie:
Aggiunto nuovo tipo di fatturazione con importo totale minimo Aggiunto flag per non riportare le note da bolla a fattura Aggiunte colonne di dotazione a buoni di ritiro Aggiunta nuova proposta causale di consegna su nuovo documento git-svn-id: svn://10.65.10.50/branches/R_10_00@22806 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									6cac0698e0
								
							
						
					
					
						commit
						82b76f399a
					
				| @ -96,6 +96,7 @@ | ||||
| 
 | ||||
| #define F_AGGHEAD          275 | ||||
| #define F_DESTHEAD         276 | ||||
| #define F_ZERONOTE         277 | ||||
| 
 | ||||
| #define F_BACKUP					 300 | ||||
| 
 | ||||
|  | ||||
| @ -179,10 +179,16 @@ END | ||||
| 
 | ||||
| BOOLEAN F_RIFTEST | ||||
| BEGIN | ||||
|   PROMPT 2 6 "Scrivi riferimenti in testata documento" | ||||
|   PROMPT 2 6 "Riportare riferimenti in testata documento" | ||||
|   FIELD RifTest | ||||
| END | ||||
| 
 | ||||
| BOOLEAN F_ZERONOTE | ||||
| BEGIN | ||||
|   PROMPT 42 6 "Non riportare note da bolle a fatture" | ||||
|   FIELD ZeroNote | ||||
| END | ||||
| 
 | ||||
| STRING F_FELAB_DIF 8 | ||||
| BEGIN | ||||
|   PROMPT 2 7 "Tipo fatt. definitiva" | ||||
|  | ||||
| @ -1,6 +1,5 @@ | ||||
| #include <automask.h> | ||||
| #include <colmask.h> | ||||
| #include <defmask.h> | ||||
| #include <execp.h> | ||||
| #include <progind.h> | ||||
| #include <relapp.h> | ||||
| @ -695,8 +694,6 @@ bool TContratti_msk::on_field_event(TOperable_field& o,TField_event e,long jolly | ||||
|           } | ||||
|         } | ||||
|          | ||||
| 
 | ||||
| 
 | ||||
|         //se ho scritto un articolo diverso da quello che esisteva prima
 | ||||
|         //e se si desidera veramente modificarlo, allora permetto la modifica
 | ||||
|         //e forzo l'updatre della riga, altrimenti riscrivo l'articolo che c'era prima
 | ||||
| @ -1106,8 +1103,8 @@ bool TContratti_app:: user_create() | ||||
|     _codart = ""; | ||||
|    | ||||
|   const TDate oggi(TODAY); | ||||
| 	if (esercizi().date2esc(oggi) == 0) | ||||
| 		return error_box("Attenzione non esiste l'esercizio corrispondente al %s", oggi.string()); | ||||
| 	if (esercizi().date2esc(oggi) <= 0) | ||||
| 		error_box("Non esiste l'esercizio corrispondente al %s", oggi.string()); | ||||
| 
 | ||||
|   _rel=new TRelation (LF_LVCONDV); | ||||
|   _msk= new TContratti_msk; | ||||
|  | ||||
| @ -429,6 +429,8 @@ BEGIN | ||||
|   MESSAGE DISABLE,F_RAGART|ENABLE,F_IMPFIX|SHOW,F_CANFIX|HIDE,F_NOLCICTE | ||||
|   ITEM "2|% sul val. conv. per cli."  | ||||
|   MESSAGE DISABLE,F_RAGART|DISABLE,F_IMPFIX|HIDE,F_CANFIX|SHOW,F_NOLCICTE | ||||
|   ITEM "3|Importo minimo"  | ||||
|   MESSAGE DISABLE,F_RAGART|ENABLE,F_IMPFIX|SHOW,F_CANFIX|HIDE,F_NOLCICTE | ||||
|   FIELD TIPOCAN | ||||
| END | ||||
| 
 | ||||
|  | ||||
| @ -102,7 +102,7 @@ TObject* TCalc_02_data::dup() const | ||||
|                                       ////////////////////////////////////////
 | ||||
| 
 | ||||
| //Classe TFatturazione_lavanderie
 | ||||
| class TFatturazione_lavanderie:public TFatturazione_bolle | ||||
| class TFatturazione_lavanderie : public TFatturazione_bolle | ||||
| { | ||||
|   TDate _data_elab; | ||||
| 	TToken_string _campi_raggruppamento; | ||||
| @ -509,6 +509,7 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do | ||||
| { | ||||
| 	const bool use_indsp = ini_get_bool(CONFIG_DITTA, "mg", "MOV_INDSPED"); | ||||
|   const bool riftest   = ini_get_bool(CONFIG_DITTA, "lv", "RifTest"); | ||||
|   const bool zero_note = ini_get_bool(CONFIG_DITTA, "lv", "ZeroNote"); | ||||
| 	 | ||||
|   //scorro tutti i documenti di output generati precedentemente
 | ||||
|   for (int id = 0; id < doc_out.items(); id++) | ||||
| @ -560,6 +561,9 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do | ||||
| 					doc.destroy_row(1, true); | ||||
| 		} | ||||
| 
 | ||||
|     if (zero_note) | ||||
|       doc.zero(DOC_NOTE); | ||||
| 
 | ||||
|     //se devo mettere i riferimenti della bolla in testata, prendo la descrizione della prima riga
 | ||||
|     //e la metto sulla testata del documento, poi cancello la prima riga del documento
 | ||||
|     if (rifbol && riftest) | ||||
| @ -740,8 +744,8 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do | ||||
| 			    const TRectype& rcont = contr.row(codart); | ||||
| 			    const TString4 tipodot = rcont.get(LVRCONDV_NOLCIC); | ||||
| 			    const TString4 artcli = rcont.get(LVRCONDV_VCARTCLI); | ||||
|  			    real dot; | ||||
| 			    const int annoes = _data_elab.year(); | ||||
|  			    real dot; | ||||
| 
 | ||||
|           //instanzio il TArticolo_lavanderia
 | ||||
|           //cerco la giacenza per articolo dell'articolo esaminato
 | ||||
| @ -809,7 +813,7 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do | ||||
| 												warning_box(TR("Manca l'unità di misura di riferimento")); | ||||
| 												break; | ||||
| 											} | ||||
| 											if(umrif != umkg) | ||||
| 											if (umrif != umkg) | ||||
| 											{ | ||||
| 												warning_box(TR("L'unità di misura di riferimento non è quella dei Kg")); | ||||
| 												break; | ||||
| @ -817,7 +821,7 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do | ||||
| 
 | ||||
| 											//leggo e controllo il fattore di conversione
 | ||||
| 											fatconv = unita.get_real("R10"); | ||||
| 											if(fatconv == ZERO) | ||||
| 											if (fatconv.is_zero()) | ||||
| 											{ | ||||
| 												warning_box(TR("Manca il fattore di conversione")); | ||||
| 												break; | ||||
| @ -938,7 +942,7 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do | ||||
|                 //IMPCONV = DOT * PREZZO(dalla riga contratto) * PERCENTUALE DI FORFAIT CLIENTE
 | ||||
|                 const real qta = rout.get_real(RDOC_QTA); | ||||
|                 const real consumo = qta * rout.get_real(RDOC_PREZZO); | ||||
|                 const real impconv = dot * rcont.get_real(LVRCONDV_VALCONV) * rcont.get_real(LVRCONDV_FORFPERCL) / 100; | ||||
|                 const real impconv = dot * rcont.get_real(LVRCONDV_VALCONV) * rcont.get_real(LVRCONDV_FORFPERCL) / CENTO; | ||||
| 
 | ||||
| 								impvconv  += impconv; | ||||
| 								consvconv += consumo; | ||||
| @ -965,7 +969,7 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do | ||||
|                     const TString80 codart = riga.get(RDOC_CODART); | ||||
|                     const TRectype & rcont = contr.row(codart); | ||||
|                     const char tipvalconvcli = rcont.get_char(LVRCONDV_VCARTCLI); | ||||
| 										char lavtype = riga.get_char("LVTYPE"); | ||||
| 										const char lavtype = riga.get_char("LVTYPE"); | ||||
|                     if (tipvalconvcli == 'C' && lavtype != 'D') | ||||
|                     { | ||||
| 											if (arts.objptr(codart) == NULL) | ||||
| @ -987,7 +991,7 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do | ||||
|                       consumotot += riga.get_real(RDOC_QTA) * riga.get_real(RDOC_PREZZO); | ||||
|                     } | ||||
|                   } | ||||
|                   //se il consumo è minore del ciclaggio, allora
 | ||||
|                   //se il consumo è minore dell'importo convenzionale, allora
 | ||||
|                   if (consumotot < impconvtot) | ||||
|                   { | ||||
|                     const bool cicl2rig=contr.get_bool(LVCONDV_CICLAGGIO); | ||||
| @ -1073,8 +1077,34 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do | ||||
| 			    } | ||||
| 				} | ||||
| 
 | ||||
|         if (tipocan == 3) | ||||
|         { | ||||
|           const real canfis = contr.get_real(LVCONDV_IMPFIX); | ||||
|           const real imponibile = doc.imponibile(); | ||||
|           if (canfis > imponibile) | ||||
|           { | ||||
|             TRiga_documento& congrow = doc.new_row("01"); | ||||
| 		        const TString80 codartcon = ini_get_string(CONFIG_DITTA, "lv", "Codartcofix"); | ||||
| 
 | ||||
| 					  congrow.put(RDOC_CODART, codartcon); | ||||
| 					  congrow.put(RDOC_CHECKED, "X"); | ||||
| 					  congrow.put(RDOC_CODARTMAG, codartcon); | ||||
|             congrow.put(RDOC_DESCR, "Conguaglio valore convenzionale"); | ||||
|             congrow.put(RDOC_QTA, UNO); | ||||
| 
 | ||||
| 					  TString4 codiva = doc.clifor().vendite().get(CFV_ASSFIS); | ||||
| 					  if (codiva.blank()) | ||||
| 	            codiva = cache().get(LF_ANAMAG, codartcon, ANAMAG_CODIVA); | ||||
| 
 | ||||
| 					  congrow.put(RDOC_CODIVA, codiva); | ||||
| 
 | ||||
| 		        congrow.put(RDOC_PREZZO, canfis - imponibile); | ||||
|           } | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|           //se il consumo è minore del ciclaggio, allora
 | ||||
| 				if (impvconv - consvconv > ZERO) | ||||
| 				  if (impvconv > consvconv) | ||||
|           { | ||||
|             const bool cicl2rig = contr.get_bool(LVCONDV_CICLAGGIO); | ||||
| 					  const int rows = doc.physical_rows(); | ||||
| @ -1116,8 +1146,9 @@ void TFatturazione_lavanderie::post_process(TLista_documenti& doc_out, TLista_do | ||||
| 						  } | ||||
|             } | ||||
|           } | ||||
| 
 | ||||
|         } | ||||
|       } | ||||
| 			 | ||||
|       if (redditivita > ZERO && fatt_02() && !ragart && tipocan != 1) | ||||
| 			{ | ||||
| 				const real totdoc = doc.totale_doc(); | ||||
| @ -2513,14 +2544,14 @@ void TFatturazione_lav_app::main_loop() | ||||
|     numdocgen += elab.write_fatt_ragg(_solototali); | ||||
| 		 | ||||
| 		TString str; | ||||
|     const char* const parolapl = _solototali ? "generate" : "elaborate"; | ||||
|     const char* const parolasi = _solototali ? "generata" : "elaborata"; | ||||
|     const char* const parolapl = _solototali ? TR("generate") : TR("elaborate"); | ||||
|     const char* const parolasi = _solototali ? TR("generata") : TR("elaborata"); | ||||
| 
 | ||||
|     switch (numdocgen) | ||||
|     { | ||||
|     case  0: str << "Non e' stata " << parolasi << " alcuna fattura"; break; | ||||
|     case  1: str << "E' stata " << parolasi << " una fattura"; break; | ||||
|     default: str << "Sono state " << parolapl << ' ' << numdocgen << " fatture"; break; | ||||
|     case  0: str << TR("Non è stata ") << parolasi << TR(" alcuna fattura"); break; | ||||
|     case  1: str << TR("E' stata ") << parolasi << TR(" una fattura"); break; | ||||
|     default: str << TR("Sono state ") << parolapl << ' ' << numdocgen << TR(" fatture"); break; | ||||
|     } | ||||
|     if (numdocgen <= 0) | ||||
|       warning_box(str); | ||||
|  | ||||
| @ -7,7 +7,6 @@ int main(int argc, char** argv) | ||||
|   const int r = (argc > 1) ? argv[1][1] - '0' : 0; | ||||
|   switch (r) | ||||
|   {  | ||||
|   case  0: lv3100(argc, argv); break; // gestione manuale bolle                lv3100
 | ||||
|   case  1: lv3200(argc, argv); break; // evasione buoni di prelievo            lv3200
 | ||||
|   case  2: lv3300(argc, argv); break; // gestione manuale buoni di prelievo    lv3300
 | ||||
|   case  3: lv3400(argc, argv); break; // evasione buoni di prelievo terminale  lv3400
 | ||||
|  | ||||
| @ -16,6 +16,24 @@ | ||||
| 
 | ||||
| #define FOR_EACH_DOC_ROW_BACK(d, r, row) const TRiga_documento* row = NULL; for (int r = d.rows(); r > 0 && (row = &d[r]) != NULL; r--) | ||||
| 
 | ||||
| HIDDEN bool doc_is_buono_ritiro(const TDocumento& doc) | ||||
| { | ||||
|   const TString4 codnum = doc.get(DOC_CODNUM); | ||||
|   const TString4 tipo = doc.get(DOC_TIPODOC); | ||||
| 
 | ||||
|   for (int i = 0; ; i++) | ||||
|   { | ||||
|     const TString& n = ini_get_string(CONFIG_DITTA, "lv", "NUM_RIT", "", i); | ||||
|     const TString& t = ini_get_string(CONFIG_DITTA, "lv", "TIPODOC_RIT", "", i); | ||||
|     if (n.blank() || t.blank()) | ||||
|       break; | ||||
|     if ((codnum.blank() || codnum == n) && tipo == t) | ||||
|       return true; | ||||
|   } | ||||
| 
 | ||||
|   return false; | ||||
| } | ||||
| 
 | ||||
|                             //////////////////////////////////////////
 | ||||
|                             ////    CLASSE TGESTIONE_BOLLE_MSK    ////
 | ||||
|                             //////////////////////////////////////////
 | ||||
| @ -411,8 +429,13 @@ bool TGestione_bolle_msk::lv_bolla_handler(TMask_field& f, KEY k) | ||||
|   default: break; | ||||
|   } | ||||
|   TGestione_bolle_msk& dmsk = (TGestione_bolle_msk&)f.mask(); | ||||
|   if(dmsk.mode() == MODE_INS) | ||||
|    | ||||
|   bool init_consegna = false; | ||||
|   if (dmsk.mode() == MODE_INS) | ||||
|   { | ||||
|     dmsk.set(F_CODAG, dmsk.proponi_autista()); | ||||
|     init_consegna = !doc_is_buono_ritiro(dmsk.doc()); | ||||
|   } | ||||
| 
 | ||||
|   if (ok && k == K_TAB && ((dmsk.insert_mode() && f.to_check(k, true)) || f.focusdirty()) && dmsk.mode() != MODE_MOD ) | ||||
|   { | ||||
| @ -489,10 +512,7 @@ bool TGestione_bolle_msk::lv_bolla_handler(TMask_field& f, KEY k) | ||||
|       //recupero i dati di interesse dalla riga del contratto e li inserisco sullo sheet
 | ||||
|       const TString80 codart = rcont.get(LVRCONDV_CODART).as_string(); | ||||
| 
 | ||||
|       TString4 causale = rcont.get(LVRCONDV_CAUSLAV).as_string(); | ||||
| 
 | ||||
|       if (causale.blank() || atoi(causale) == 0) | ||||
|         causale = ini_get_string(CONFIG_DITTA, "lv", "CAUSLAV"); | ||||
|       const TString4 causale = lv_get_causale_from_rcontr(rcont.cursor()->curr(), init_consegna); | ||||
|        | ||||
|       //instanzio una cache sulle anagrafice di magazzino
 | ||||
|       const TRectype& anamag = cache().get(LF_ANAMAG,codart); | ||||
| @ -756,10 +776,7 @@ bool TGestione_bolle_msk::lv_codart_handler(TMask_field& f, KEY k) | ||||
|       const TRectype& rcont = cont.row(codart); | ||||
| 
 | ||||
|       //cerco la causale relativa all'articolo; se non la trovo prendo quella standard
 | ||||
|       TString4 causale = rcont.get(LVRCONDV_CAUSLAV); | ||||
|       if (causale.blank() || atoi(causale) == 0 )       | ||||
|         causale = ini_get_string(CONFIG_DITTA, "lv", "CAUSLAV");               | ||||
| 
 | ||||
|       TString4 causale = lv_get_causale_from_rcontr(rcont, false); | ||||
|       if (rdoc.get("DOTOD").empty()) | ||||
|       { | ||||
|         //gestione campi dotazione odierna e dotazione temporanea
 | ||||
| @ -1015,7 +1032,7 @@ bool TGestione_bolle_msk::lv_causale_handler(TMask_field& f, KEY k) | ||||
|       TString16 tmp; | ||||
|       tmp << dotmp; | ||||
|        | ||||
|       if(msk.field(FR_TIPORIGA).get_long() != 22) | ||||
|       if(msk.get_int(FR_TIPORIGA) != 22) | ||||
|       { | ||||
|         msk.field(FR_JOLLY2).set(tmp); | ||||
|         //setto le date di inizio e fine della dotazione temporanea
 | ||||
| @ -1292,11 +1309,13 @@ TMask* TGestione_bolle_app::get_mask( int mode ) | ||||
|       TGestione_bolle_msk* m = new TGestione_bolle_msk(tipodoc); | ||||
| 
 | ||||
|       TSheet_field& sheet = m->sfield(F_SHEET); | ||||
|       if (sheet.exist_column(FR_JOLLY1)) | ||||
|       {         | ||||
|       //setto l'allineamento a destra dei campi incriminati e pure criminali 
 | ||||
|         sheet.set_column_justify(sheet.cid2index(FR_JOLLY1), true); | ||||
|         sheet.set_column_justify(sheet.cid2index(FR_JOLLY2), true); | ||||
|       // Dotazione              Odierna    Temporanea Iniziale
 | ||||
|       const short id_dot[4] = { FR_JOLLY1, FR_JOLLY2, FR_JOLLY5, 0 }; | ||||
|       for (int i = 0; id_dot[i]; i++) | ||||
|       { | ||||
|         if (sheet.exist_column(id_dot[i])) | ||||
|           sheet.set_column_justify(sheet.cid2index(id_dot[i]), true);  | ||||
|       } | ||||
|        | ||||
|       _doc_masks.add(tipodoc, m); | ||||
| @ -1338,9 +1357,7 @@ void TGestione_bolle_app::salva_conguaglio(const TDocumento_mask& mask) | ||||
| 		const TLaundry_contract cont(codcf, indsped, datadoc); | ||||
| 		const int codcont = cont.get_int(LVCONDV_CODCONT); | ||||
| 
 | ||||
|     const bool is_buono_ritiro = mask.get(F_CODNUM) == ini_get_string(CONFIG_DITTA, "lv", "NUM_RIT(0)") && | ||||
|                                  mask.get(F_TIPODOC) == ini_get_string(CONFIG_DITTA, "lv", "TIPODOC_RIT(0)"); | ||||
| 
 | ||||
|     const bool is_buono_ritiro = doc_is_buono_ritiro(d); | ||||
| 		TLocalisamfile rcondv(LF_LVRCONDV); | ||||
| 
 | ||||
| 		FOR_EACH_DOC_ROW_BACK(d, r, row) | ||||
| @ -1499,8 +1516,7 @@ void TGestione_bolle_app::init_insert_mode(TMask &m) | ||||
|   _giac.reset(d); | ||||
| 
 | ||||
|   //se sto leggendo o generando un buono di ritiro, abilito questo campo
 | ||||
|   bool enable_dataprco = mask.get(F_CODNUM) == ini_get_string(CONFIG_DITTA, "lv", "NUM_RIT(0)") && | ||||
|                          mask.get(F_TIPODOC) == ini_get_string(CONFIG_DITTA, "lv", "TIPODOC_RIT(0)"); | ||||
|   const bool enable_dataprco = doc_is_buono_ritiro(d); | ||||
|   | ||||
|   mask.field(F_LVDATAPRCO).enable(enable_dataprco); | ||||
| 
 | ||||
| @ -1513,9 +1529,9 @@ void TGestione_bolle_app::init_insert_mode(TMask &m) | ||||
| //ridefinisco il metodo init_query_mode della TMotore_application
 | ||||
| void TGestione_bolle_app::init_modify_mode(TMask& mask) | ||||
| { | ||||
|   TGestione_bolle_msk& m = (TGestione_bolle_msk&) mask; | ||||
|   //se sto leggendo o generando un buono di ritiro, abilito questo campo
 | ||||
|   bool enable_dataprco = mask.get(F_CODNUM) == ini_get_string(CONFIG_DITTA, "lv", "NUM_RIT(0)") && | ||||
|                          mask.get(F_TIPODOC) == ini_get_string(CONFIG_DITTA, "lv", "TIPODOC_RIT(0)"); | ||||
|   const bool enable_dataprco = doc_is_buono_ritiro(m.doc()); | ||||
|      | ||||
|   mask.field(F_LVDATAPRCO).enable(enable_dataprco); | ||||
|    | ||||
|  | ||||
| @ -414,7 +414,8 @@ bool TGestione_buoni_msk::set_righe_buono_handler(TMask_field& f, KEY k) | ||||
|   } | ||||
| 
 | ||||
|   TGestione_buoni_msk& dmsk = (TGestione_buoni_msk&)f.mask(); | ||||
|   if(dmsk.mode() == MODE_INS) | ||||
|   const bool ins_mode = dmsk.mode() == MODE_INS; | ||||
|   if (ins_mode) | ||||
|     dmsk.set(F_CODAG, dmsk.proponi_autista()); | ||||
| 
 | ||||
|   if (ok && k == K_TAB && ((dmsk.insert_mode() && f.to_check(k, true)) || f.focusdirty()) && dmsk.mode() != MODE_MOD) | ||||
| @ -492,10 +493,7 @@ bool TGestione_buoni_msk::set_righe_buono_handler(TMask_field& f, KEY k) | ||||
|       //recupero i dati di interesse dalla riga del contratto e li inserisco sullo sheet
 | ||||
|       const TString80 codart = rcont.get(LVRCONDV_CODART).as_string(); | ||||
| 
 | ||||
|       TString4 causale = rcont.get(LVRCONDV_CAUSLAV).as_string(); | ||||
| 
 | ||||
|       if (causale.blank() || atoi(causale) == 0) | ||||
|         causale = ini_get_string(CONFIG_DITTA, "lv", "CAUSLAV"); | ||||
|       const TString4 causale = lv_get_causale_from_rcontr(rcont.cursor()->curr(), ins_mode); | ||||
|              | ||||
|       //instanzio una cache sulle anagrafice di magazzino
 | ||||
|       const TRectype& anamag = cache().get(LF_ANAMAG,codart); | ||||
| @ -1485,7 +1483,6 @@ TGiac_per_cli& TGestione_buoni_app::giacenza() | ||||
| int lv3300( int argc, char* argv[]) | ||||
| { | ||||
|   TGestione_buoni_app a; | ||||
| 
 | ||||
|   a.run( argc, argv, TR("Buoni di Prelievo")); | ||||
|   return 0; | ||||
| } | ||||
| @ -200,11 +200,13 @@ Col(5)=FR_DESCR||28 | ||||
| Col(6)=FR_CAULAV|Caus.|5 | ||||
| Col(7)=FR_RITIRO|Ritiro|6 | ||||
| Col(8)=FR_QTA|Rotti|6 | ||||
| Col(9)=FR_TIPORIGA|Tipo|4 | ||||
| Col(10)=FR_CODMAG | ||||
| Col(11)=FR_CODDEP | ||||
| Col(12)=FR_CODMAGC | ||||
| Col(13)=FR_CODDEPC | ||||
| Col(9)=FR_JOLLY1|Dot.Od.|7 | ||||
| Col(10)=FR_JOLLY5|Dot.In.|7 | ||||
| Col(11)=FR_TIPORIGA|Tipo|4 | ||||
| Col(12)=FR_CODMAG | ||||
| Col(13)=FR_CODDEP | ||||
| Col(14)=FR_CODMAGC | ||||
| Col(15)=FR_CODDEPC | ||||
| 
 | ||||
| 
 | ||||
| [RIGHE] | ||||
|  | ||||
							
								
								
									
										19
									
								
								lv/lvlib.cpp
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								lv/lvlib.cpp
									
									
									
									
									
								
							| @ -120,6 +120,25 @@ long lv_find_contract(const long codcf, const long indsped, const TDate& data) | ||||
|   return cod; | ||||
| } | ||||
| 
 | ||||
| const TString& lv_get_causale_from_rcontr(const TRectype& rcont, bool is_consegna) | ||||
| { | ||||
|   TString4 causale = rcont.get(LVRCONDV_CAUSLAV); | ||||
| 
 | ||||
|   if (causale.blank() || atoi(causale) == 0) | ||||
|     causale = ini_get_string(CONFIG_DITTA, "lv", "CAUSLAV"); | ||||
| 
 | ||||
|   if (is_consegna) | ||||
|   { | ||||
|     const TString& causale_consegna = cache().get("&CAU", causale, "S5"); | ||||
|     if (causale_consegna.full()) | ||||
|       causale = causale_consegna; | ||||
|   } | ||||
| 
 | ||||
|   return get_tmp_string() = causale; | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ///////////////////////////////////////////////////////////
 | ||||
| // TLaundry_contract
 | ||||
| ///////////////////////////////////////////////////////////
 | ||||
|  | ||||
| @ -16,6 +16,8 @@ void lv_set_update_info(TRectype& rec); | ||||
| long lv_find_contract(const long codcf, const long indsped, const TDate& data); | ||||
| bool lv_is_holiday(const TDate& data);  | ||||
| bool lv_is_02_active();  | ||||
| const TString& lv_get_causale_from_rcontr(const TRectype& lvcontr, bool is_consegna); | ||||
| 
 | ||||
| const TFilename & lv_backup_path(); | ||||
| 
 | ||||
| class TLaundry_contract : public TRectype | ||||
|  | ||||
| @ -1,10 +1,6 @@ | ||||
| #ifndef __LVLIB2_H | ||||
| #define __LVLIB2_H | ||||
| 
 | ||||
| #ifndef __ISAM_H | ||||
| #include <isam.h> | ||||
| #endif | ||||
| 
 | ||||
| #ifndef __RECSET_H | ||||
| #include <recset.h> | ||||
| #endif | ||||
|  | ||||
| @ -195,6 +195,25 @@ BEGIN | ||||
|   FIELD PREZZO | ||||
| END | ||||
| 
 | ||||
| GR -1 78 4 | ||||
| BE | ||||
| PR 1 10 "@bDotazioni" | ||||
| EN | ||||
| 
 | ||||
| NU 155 7 | ||||
| BE | ||||
| PR 2 11 "Dotazione Odierna  " | ||||
| FI DOTOD | ||||
| FL "D" | ||||
| EN | ||||
| 
 | ||||
| NU 159 7 | ||||
| BE | ||||
| PR 2 12 "Dotazione iniziale " | ||||
| FI DOTIN | ||||
| FL "D" | ||||
| EN | ||||
| 
 | ||||
| STRING FR_CAULAV 3 | ||||
| BEGIN | ||||
|   PROMPT 2 7 "Cau.Lav. " | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user