diff --git a/ha/ha3800.cpp b/ha/ha3800.cpp index 45f46e406..392ca84a2 100755 --- a/ha/ha3800.cpp +++ b/ha/ha3800.cpp @@ -99,13 +99,17 @@ void TInserimento_storico::elabora(const TMask& mask) TLog_report log("Righe storico aggiunte"); log.kill_duplicates(); log.log(0, ""); - log.log(0, "Anno-Num.-Ndoc--Codart Matricola --Cliente"); + log.log(0, "Anno-Num.-Ndoc--Art. Progres.--Matricola --Cliente"); log.log(0, ""); //3) giro su ogni numerazione per trovare le righe che servono for (int n = 0; n < num_del_tipo; n++) { const TString4 codnum = num_doc.row(n); +#ifdef DBG + if (codnum == "B009") + int cazzone = 1; +#endif TString query; query << "USE RDOC KEY 2"; @@ -149,7 +153,7 @@ void TInserimento_storico::elabora(const TMask& mask) const TString& codart = rdoc_recset.get(RDOC_CODART).as_string(); const TString& matricola = rdoc_recset.get(RDOC_LIVELLO).as_string(); TString80 str_s0; - str_s0.format("%-5s%-15s", (const char*)codart, (const char*)matricola); + str_s0.format("%-5s%s", (const char*)codart, (const char*)matricola); TString80 codtab; TModule_table tab_att("&ATT"); @@ -162,6 +166,7 @@ void TInserimento_storico::elabora(const TMask& mask) { codtab = get_next_att_key(codart); tab_att.put("CODTAB", codtab); + tab_att.put("S0", str_s0); } //comunque deve scrivere il cliente e la data perchè è un'apertura quindi la macchina è assegnata.. //..al cliente con questo documento @@ -218,20 +223,30 @@ 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[21,25]").as_int(); + n_line_to_update = recset_his.get("CODTAB[13,17]").as_int(); break; } } } } //for (bool ok = recset_his.move... + + TString80 new_codtab; //se la riga non c'era -> va aggiunta if (n_line_to_update == 0) + { n_line_to_update = recset_his_items + 1; - //adesso ha il numero di riga da aggiornare - TString80 new_codtab; - new_codtab.format("%20s%05d", (const char*)codtab, n_line_to_update); + //adesso ha il numero di riga da aggiornare e crea il nuovo record + new_codtab.format("%-12s%05d", (const char*)codtab, n_line_to_update); + tab_his.put("CODTAB", new_codtab); + tab_his.write(); + new_codtab.cut(0); + } + + //rimette il codtab per riposizionarsi sul record corretto + new_codtab.format("%-12s%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); @@ -264,8 +279,8 @@ void TInserimento_storico::elabora(const TMask& mask) if (written == NOERR) { TString msg; - msg.format("%4d%1s%4s%1s%7d%2s%30s%2s%6d", doc_anno, "-", (const char*)doc_codnum, "-", doc_ndoc, "--", (const char*)codtab, "--", doc_clifo); - //msg << doc_anno << "-" << doc_codnum << "-" << doc_ndoc << "--" << codtab << "--" << doc_clifo; + msg.format("%4d%1s%4s%1s%7d%2s%12s%2s%-15s%2s%6d", doc_anno, "-", (const char*)doc_codnum, "-", doc_ndoc, "--", + (const char*)codtab, "--", (const char*)matricola, "--", doc_clifo); log.log(0, msg); } } //if (caus==caus_open || ..