From 1093d0f3b005cef84e37d4045e2b69dd6246494e Mon Sep 17 00:00:00 2001 From: luca Date: Mon, 18 Apr 2011 10:09:25 +0000 Subject: [PATCH] Patch level : Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/branches/R_10_00@21965 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ha/ha3800.cpp | 39 ++++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/ha/ha3800.cpp b/ha/ha3800.cpp index 41090bcb5..da5259a76 100755 --- a/ha/ha3800.cpp +++ b/ha/ha3800.cpp @@ -147,14 +147,21 @@ void TInserimento_storico::elabora(const TMask& mask) const long doc_ndoc = rdoc_recset.get(RDOC_NDOC).as_int(); const TString& codart = rdoc_recset.get(RDOC_CODART).as_string(); const TString& matricola = rdoc_recset.get(RDOC_LIVELLO).as_string(); - TString80 codtab; - codtab.format("%-15s%-15s", (const char*)codart, (const char*)matricola); - TModule_table tab_att("&ATT"); - const int err = tab_att.read(); - //se l'attrezzatura (intesa come codart+matricola) non esiste -> la deve aggiungere - if (err != NOERR) - tab_att.put("CODTAB", codtab); + TString80 str_s0; + str_s0.format("%-5s%-15s", (const char*)codart, (const char*)matricola); + TString80 codtab; + TModule_table tab_att("&ATT"); + tab_att.setkey(2); + tab_att.put("S0", str_s0); + const int err = tab_att.read(); + //se l'attrezzatura (intesa come codart+matricola) non esiste -> la deve aggiungere (sara' sicuramente la prima.. + //..per quanto riguarda il progressivo) + if (err != NOERR) + { + codtab.format("%-5s%07d", (const char*)codart, 1); + tab_att.put("CODTAB", codtab); + } //comunque deve scrivere il cliente e la data perchè è un'apertura quindi la macchina è assegnata.. //..al cliente con questo documento const long doc_clifo = rdoc_recset.get("33.CODCF").as_int(); @@ -178,6 +185,7 @@ void TInserimento_storico::elabora(const TMask& mask) query_his << "\nFROM CODTAB=#CODTAB"; query_his << "\nTO CODTAB=#CODTAB"; TISAM_recordset recset_his(query_his); + codtab = tab_att.get("CODTAB"); //il codtab va preso se per caso la macchina non fosse nuova (pressoche' impossibile, ma insomma..) recset_his.set_var("#CODTAB", codtab); const long recset_his_items = recset_his.items(); @@ -209,7 +217,7 @@ void TInserimento_storico::elabora(const TMask& mask) curr_ndoc = recset_his.get("S5[9,15]").as_int(); if (curr_ndoc == doc_ndoc) { - n_line_to_update = recset_his.get("CODTAB[31,35]").as_int(); + n_line_to_update = recset_his.get("CODTAB[21,25]").as_int(); break; } } @@ -221,14 +229,13 @@ void TInserimento_storico::elabora(const TMask& mask) //adesso ha il numero di riga da aggiornare TString80 new_codtab; - new_codtab.format("%30s%05d", (const char*) codtab, n_line_to_update); + new_codtab.format("%20s%05d", (const char*)codtab, n_line_to_update); tab_his.put("CODTAB", new_codtab); //ed aggiunge tutti i campi const TString& descr = rdoc_recset.get(RDOC_DESCR).as_string(); tab_his.put("S0", descr); - //tab_his.put("S2", articolo_collegato); - const TString& codmag = rdoc_recset.get(RDOC_CODMAG).as_string(); - tab_his.put("S3", codmag); + //tab_his.put("S3", articolo_collegato); + TString16 str_key_doc; str_key_doc.format("%4d%4s%7d", doc_anno, (const char*)doc_codnum, doc_ndoc); if (bopen) @@ -236,7 +243,10 @@ void TInserimento_storico::elabora(const TMask& mask) else tab_his.put("S5", str_key_doc); tab_his.put("S6", rdoc_recset.get(RDOC_UMQTA).as_string()); - tab_his.put("S7", "C"); + const TString& codmag = rdoc_recset.get(RDOC_CODMAG).as_string(); + TString4 s7; //s7[1,1]=tipo s7[2,4]=codmag + s7 << "C" << codmag; + tab_his.put("S7", s7); tab_his.put("I0", doc_clifo); tab_his.put("D0", doc_datadoc); const real qta = rdoc_recset.get(RDOC_QTA).as_real(); @@ -244,6 +254,9 @@ void TInserimento_storico::elabora(const TMask& mask) const real prezzo = rdoc_recset.get(RDOC_PREZZO).as_real(); const real importo = qta * prezzo; tab_his.put("R1", importo); + //se è il documento di chiusura fa segnalato + if (!bopen) + tab_his.put("B0", true); const int written = tab_his.write_rewrite(); //segna sul log la riga aggiunta alla tabella storico &HIS