diff --git a/cd/test/cg1266.txt b/cd/test/cg1266.txt new file mode 100644 index 000000000..963bb3dbb --- /dev/null +++ b/cd/test/cg1266.txt @@ -0,0 +1,3 @@ +cg2.exe + +Se partendo dai mastrini si cambia un conto viene dao un errore sulla contropartita diff --git a/cd/test/cg1266a.ini b/cd/test/cg1266a.ini new file mode 100644 index 000000000..b61b8e18d --- /dev/null +++ b/cd/test/cg1266a.ini @@ -0,0 +1,98 @@ +[Main] +Demo=0 + +[cg2] +File(59) = cg2.exe|X +Patch = 1266 +Versione = 21511200 + +[cg99] +Kill(0) = bastreg.rep|x +Kill(1) = bastesc.rep|x +Kill(2) = bastarb.msk|x +Kill(3) = bastzon.rep|x +Kill(4) = bastleg.rep|x +Kill(5) = bastcfi.rep|x +Kill(6) = bastscc.rep|x +Kill(7) = bastcco.rep|x +Kill(8) = batbndo.msk|x +Kill(9) = bastvet.rep|x +Kill(10) = bastnot.rep|x +Kill(11) = bastleg.msk|x +Kill(12) = bastesc.msk|x +Kill(13) = batbind.msk|x +Kill(14) = bastmsp.rep|x +Kill(15) = batbcve.msk|x +Kill(16) = batbleg.msk|x +Kill(17) = batbtra.msk|x +Kill(18) = bastzon.msk|x +Kill(19) = batbzon.msk|x +Kill(20) = bastcco.msk|x +Kill(21) = cg2fppro.msk|x +Kill(22) = bastmsp.msk|x +Kill(23) = bastvet.msk|x +Kill(24) = bastcve.rep|x +Kill(25) = bastdpn.rep|x +Kill(26) = batbarb.msk|x +Kill(27) = bastpdb.rep|x +Kill(28) = bastpdb.msk|x +Kill(29) = bastndo.msk|x +Kill(30) = bastntb.rep|x +Kill(31) = batbinl.msk|x +Kill(32) = batbnot.msk|x +Kill(33) = bastnot.msk|x +Kill(34) = bastivd.msk|x +Kill(35) = batbins.msk|x +Kill(36) = batbpdb.msk|x +Kill(37) = batbivd.msk|x +Kill(38) = batbreg.msk|x +Kill(39) = bastver.rep|x +Kill(40) = batblia.msk|x +Kill(41) = batbmsp.msk|x +Kill(42) = bastivd.rep|x +Kill(43) = bastpor.rep|x +Kill(44) = bastver.msk|x +Kill(45) = batbntb.msk|x +Kill(46) = batbpor.msk|x +Kill(47) = batbdpn.msk|x +Kill(48) = batbver.msk|x +Kill(49) = bastarb.rep|x +Kill(50) = bastndo.rep|x +Kill(51) = bastntb.msk|x +Kill(52) = bastcam.rep|x +Kill(53) = batbvet.msk|x +Kill(54) = batbcco.msk|x +Kill(55) = batbcam.msk|x +Kill(56) = bastscc.msk|x +Kill(57) = bastcam.msk|x +Kill(58) = batbscc.msk|x +Kill(59) = bastpor.msk|x +Kill(60) = batblbu.msk|x +Kill(61) = bastreg.msk|x +Kill(62) = batbcfi.msk|x +Kill(63) = bastdpn.msk|x +Kill(64) = batbdel.msk|x +Kill(65) = batbesc.msk|x +Kill(66) = batblia.msk|x +Kill(67) = cgtbcon.msk|x +Kill(68) = bastcfi.msk|x +Kill(69) = batbtit.msk|x +Kill(70) = bastcve.msk|x + +[cg] +Data = 31-05-2023 +Descrizione = Contabilita' Generale +Dischi = 1 +Edit_19 = cg0 -0 +Edit_20 = cg0 -1 +Edit_26 = cg0 -4 +Edit_5 = cg0 -5 +Moduli = ba +OEM = +Patch = 1266 +PostProcess = bainst -0 CG +PreProcess = +Prezzo(1) = +Prezzo(2) = +Versione = 21511200 + diff --git a/cd/test/cg1266a1.zip b/cd/test/cg1266a1.zip new file mode 100644 index 000000000..7b2c9845a Binary files /dev/null and b/cd/test/cg1266a1.zip differ diff --git a/cd/test/lv1266.txt b/cd/test/lv1266.txt new file mode 100644 index 000000000..df4c64a0b --- /dev/null +++ b/cd/test/lv1266.txt @@ -0,0 +1,4 @@ +lv0.exe +lv2.exe + +La gestione passaggi per contratto ddava un errore 3261 nell'invio a touchscreen \ No newline at end of file diff --git a/cd/test/lv1266a.ini b/cd/test/lv1266a.ini new file mode 100644 index 000000000..c1d7fb880 --- /dev/null +++ b/cd/test/lv1266a.ini @@ -0,0 +1,27 @@ +[Main] +Demo=0 + +[lv0] +Edit_168 = lv0 -3 +File(0) = lv0.exe|X +Patch = 1266 +Versione = 21511200 + +[lv2] +File(121) = lv2.exe|X +Patch = 1266 +Versione = 21511200 + +[lv] +Data = 31-05-2023 +Descrizione = Gestione lavanderie +Dischi = 1 +Moduli = ve,mg +OEM = 2 +Patch = 1266 +PostProcess = bainst -0 LV +PreProcess = +Prezzo(1) = +Prezzo(2) = +Versione = 21511200 + diff --git a/cd/test/lv1266a1.zip b/cd/test/lv1266a1.zip new file mode 100644 index 000000000..5a737690f Binary files /dev/null and b/cd/test/lv1266a1.zip differ diff --git a/cd/test/lv1268.txt b/cd/test/lv1268.txt new file mode 100644 index 000000000..27b02782c --- /dev/null +++ b/cd/test/lv1268.txt @@ -0,0 +1,8 @@ +lv0.exe +lv0400f.msk +lv0400c.msk +lv2.exe + + +La stampa contratti andava in errore +Invio postino con ODBC \ No newline at end of file diff --git a/cd/test/lv1268a.ini b/cd/test/lv1268a.ini new file mode 100644 index 000000000..b6e2a6fc5 --- /dev/null +++ b/cd/test/lv1268a.ini @@ -0,0 +1,29 @@ +[Main] +Demo=0 + +[lv0] +Edit_168 = lv0 -3 +File(0) = lv0.exe|X +File(11) = lv0400c.msk|X +File(17) = lv0400f.msk|X +Patch = 1268 +Versione = 21511200 + +[lv2] +File(121) = lv2.exe|X +Patch = 1268 +Versione = 21511200 + +[lv] +Data = 12-06-2023 +Descrizione = Gestione lavanderie +Dischi = 1 +Moduli = ve,mg +OEM = 2 +Patch = 1268 +PostProcess = bainst -0 LV +PreProcess = +Prezzo(1) = +Prezzo(2) = +Versione = 21511200 + diff --git a/cd/test/lv1268a1.zip b/cd/test/lv1268a1.zip new file mode 100644 index 000000000..ff713c880 Binary files /dev/null and b/cd/test/lv1268a1.zip differ diff --git a/cd/test/sc1268.txt b/cd/test/sc1268.txt new file mode 100644 index 000000000..f95752076 --- /dev/null +++ b/cd/test/sc1268.txt @@ -0,0 +1,3 @@ +sc0.exe +sc2.exe +rifatta patch \ No newline at end of file diff --git a/cd/test/sc1268a.ini b/cd/test/sc1268a.ini new file mode 100644 index 000000000..756a73cd5 --- /dev/null +++ b/cd/test/sc1268a.ini @@ -0,0 +1,26 @@ +[Main] +Demo=0 + +[sc0] +File(1) = sc0.exe|X +Patch = 1268 +Versione = 21511200 + +[sc2] +File(17) = sc2.exe|X +Patch = 1268 +Versione = 21511200 + +[sc] +Data = 01-05-2023 +Descrizione = Saldaconto +Dischi = 1 +Moduli = ba,cg +OEM = +Patch = 1268 +PostProcess = +PreProcess = +Prezzo(1) = +Prezzo(2) = +Versione = 21511200 + diff --git a/cd/test/sc1268a1.zip b/cd/test/sc1268a1.zip new file mode 100644 index 000000000..423d94ffc Binary files /dev/null and b/cd/test/sc1268a1.zip differ diff --git a/cd/test/ve1268.txt b/cd/test/ve1268.txt new file mode 100644 index 000000000..64eb7cf42 --- /dev/null +++ b/cd/test/ve1268.txt @@ -0,0 +1,4 @@ +ve0.exe +ve6.exe + +La ricerca della cuasale sui tipi documento dell'archiviazione non funzionava diff --git a/cd/test/ve1268a.ini b/cd/test/ve1268a.ini new file mode 100644 index 000000000..d30293c29 --- /dev/null +++ b/cd/test/ve1268a.ini @@ -0,0 +1,138 @@ +[Main] +Demo=0 + +[ve0] +Edit_163 = ve0 -6 +Edit_33 = ve0 -0 +Edit_4 = ve0 -4 +Edit_5 = ve0 -4 +File(20) = ve0.exe|X +Patch = 1268 +Versione = 21511200 + +[ve6] +File(262) = ve6.exe|X +Patch = 1268 +Versione = 21511200 + +[ve99] +Kill(0) = batbcld.msk|x +Kill(1) = bastspp.rep|x +Kill(2) = bastgca.rep|x +Kill(3) = bastbnp.rep|x +Kill(4) = bastubi.msk|x +Kill(5) = batbasf.msk|x +Kill(6) = batbfrr.msk|x +Kill(7) = bastcra.rep|x +Kill(8) = ve7200a.msk|x +Kill(9) = bastgcg.rep|x +Kill(10) = baststd.rep|x +Kill(11) = bastfrd.rep|x +Kill(12) = bastgca.msk|x +Kill(13) = ve7400a.ini|x +Kill(14) = batbubi.msk|x +Kill(15) = bastubi.rep|x +Kill(16) = ve7700a.msk|x +Kill(17) = batbtri.msk|x +Kill(18) = bastasf.msk|x +Kill(19) = bastrfa.rep|x +Kill(20) = bastprs.msk|x +Kill(21) = batbstd.msk|x +Kill(22) = ve7600a.msk|x +Kill(23) = batbfid.msk|x +Kill(24) = basteld.rep|x +Kill(25) = basttag.msk|x +Kill(26) = bastctr.rep|x +Kill(27) = batbbnp.msk|x +Kill(28) = ve7500a.msk|x +Kill(29) = bastcau.rep|x +Kill(30) = bastrfa.msk|x +Kill(31) = batbprs.msk|x +Kill(32) = batbfsa.msk|x +Kill(33) = batbpro.msk|x +Kill(34) = bastums.rep|x +Kill(35) = batbctr.msk|x +Kill(36) = batbprv.msk|x +Kill(37) = bastfrr.rep|x +Kill(38) = bastprs.rep|x +Kill(39) = batbums.msk|x +Kill(40) = bastimb.rep|x +Kill(41) = bastfca.rep|x +Kill(42) = batbgsa.msk|x +Kill(43) = batbfca.msk|x +Kill(44) = bastrfc.msk|x +Kill(45) = bastabe.msk|x +Kill(46) = batbtag.msk|x +Kill(47) = batbgcg.msk|x +Kill(48) = ve7400conf.ini|x +Kill(49) = batbspp.msk|x +Kill(50) = bastspp.msk|x +Kill(51) = bastcaa.msk|x +Kill(52) = bastums.msk|x +Kill(53) = baststd.msk|x +Kill(54) = basttri.msk|x +Kill(55) = basttag.rep|x +Kill(56) = bastfrm.msk|x +Kill(57) = batbspt.msk|x +Kill(58) = batbfrd.msk|x +Kill(59) = bastnum.msk|x +Kill(60) = batbgmc.msk|x +Kill(61) = bastfrd.msk|x +Kill(62) = bastbnp.msk|x +Kill(63) = ve7400a.msk|x +Kill(64) = bastrfc.rep|x +Kill(65) = batbfrm.msk|x +Kill(66) = bastfrm.rep|x +Kill(67) = bastimb.msk|x +Kill(68) = basteld.msk|x +Kill(69) = bastfca.msk|x +Kill(70) = basttri.rep|x +Kill(71) = batbcaa.msk|x +Kill(72) = basttip.rep|x +Kill(73) = ve7100a.msk|x +Kill(74) = ve7200a.frm|x +Kill(75) = efstbnp.rep|x +Kill(76) = batbrfa.msk|x +Kill(77) = bastgcg.msk|x +Kill(78) = ve7300a.frm|x +Kill(79) = batbabe.msk|x +Kill(80) = bastasf.rep|x +Kill(81) = bastcra.msk|x +Kill(82) = ve7300a.msk|x +Kill(83) = bastabe.rep|x +Kill(84) = eftbbnp.msk|x +Kill(85) = batbgca.msk|x +Kill(86) = bastnum.rep|x +Kill(87) = batbnum.msk|x +Kill(88) = bastcau.msk|x +Kill(89) = bastctr.msk|x +Kill(90) = bastcaa.rep|x +Kill(91) = batbcra.msk|x +Kill(92) = bastgmc.msk|x +Kill(93) = batbrfc.msk|x +Kill(94) = bastfrr.msk|x +Kill(95) = bastgmc.rep|x +Kill(96) = efstbnp.msk|x +Kill(97) = batbmre.msk|x +Kill(98) = batbacr.msk|x +Kill(99) = batbimb.msk|x +Kill(100) = ve7.exe|x +Kill(101) = batbtip.msk|x +Kill(102) = batbeld.msk|x +Kill(103) = batbcau.msk|x +Kill(104) = basttip.msk|x +Kill(105) = ve7701a.ini|x + +[ve] +Data = 02-06-2023 +Descrizione = Vendite +Dischi = 1 +Moduli = ba,cg0, cg9,pr9,mg9,sv9,in9,ef9 +OEM = +Patch = 1268 +PostProcess = bainst -0 VE +PreProcess = +Prezzo(1) = +Prezzo(2) = +Versione = 21511200 + diff --git a/cd/test/ve1268a1.zip b/cd/test/ve1268a1.zip new file mode 100644 index 000000000..36841e51e Binary files /dev/null and b/cd/test/ve1268a1.zip differ diff --git a/src/cg/cg2102.cpp b/src/cg/cg2102.cpp index 2175ed996..0216fa8aa 100755 --- a/src/cg/cg2102.cpp +++ b/src/cg/cg2102.cpp @@ -664,14 +664,13 @@ bool TPrimanota_application::cg_handler(TMask_field& f, KEY k) return f.error_box(FR("Il conto della riga %d non è completo"), i+1); if (m.insert_mode() && c.sospeso()) return f.error_box(FR("Il conto della riga %d è sospeso"), i+1); - TBill co(r, 10, 0x0); + TBill co(r, 9, 0x1); if (!co.empty() && !co.ok()) { const bool ok = f.yesno_box(FR("La contropartita della riga %d non è completa:\n" "Si desidera continuare ugualmente?"), i+1); if (!ok) return false; } - if (app().is_transaction()) { // Controlla esistenza conti nelle transazioni (visto che non c'e' controllo in inserimento) diff --git a/src/include/postman.cpp b/src/include/postman.cpp index fe9bb7a76..e8c0a158a 100755 --- a/src/include/postman.cpp +++ b/src/include/postman.cpp @@ -629,11 +629,7 @@ HIDDEN void odbc_send(const TString & dsn, int num, TAuto_token_string & elab_fi TTrec wrk(curr_file_num); int nfields = wrk.fields(); const TString name = table_name(curr_file_num); - - /*TString check_statement = "SELECT TOP 1 * FROM ["; - - check_statement << name << "];";*/ - + TToken_string key(wrk.keydef(), '+'); TString check_statement = "SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = '"; check_statement << name << "';"; @@ -653,12 +649,13 @@ HIDDEN void odbc_send(const TString & dsn, int num, TAuto_token_string & elab_fi TFieldtypes t = (TFieldtypes)def.get_int(1); TString str = ini.get(field); str = str.strip("\""); + if (key.find(field) >= 0 && str.blank()) + str << rowkey.get(); TToken_string row(make_val(field, t, str), '='); values.add(row); } - TToken_string key(wrk.keydef(), '+'); int pos = key.find("|"); if (pos > 0) @@ -709,16 +706,31 @@ HIDDEN void odbc_send(const TString & dsn, int num, TAuto_token_string & elab_fi TToken_string row(make_val(fld, t, str), '='); keys.add(row); } - const TString & statement = build_statement(op, curr_file_num, name, keys, values); + + TString statement; + + if (op < db_remove) + { + statement << "SELECT * FROM [" << name << "] WHERE "; + FOR_EACH_ARRAY_ROW(keys, rk, rowk) + { + if (rk > 0) + statement << " AND"; + statement << ' ' << *rowk; + } + statement << ";"; + int err = recset.exec(statement); + if (err == 0 && op == db_update) + op = db_add; + else + if (err > 0 && op == db_add) + op = db_update; + } + statement = build_statement(op, curr_file_num, name, keys, values); + int err = recset.exec(statement); - if (op < db_remove && err <= 0) - { - const TString & statement = build_statement(op == db_add ? db_update : db_add, curr_file_num, name, keys, values); - - err = recset.exec(statement); - } - if (err <= 0) + if (err < 0) error_box(FR("Errore n. %d invio file %d"), -err, curr_file_num); else recset.exec("COMMIT;"); diff --git a/src/lv/lv0400c.uml b/src/lv/lv0400c.uml index baa941ef7..659a4a9fd 100755 --- a/src/lv/lv0400c.uml +++ b/src/lv/lv0400c.uml @@ -91,7 +91,7 @@ BEGIN FLAGS "H" END -STRING F_REPORT 20 +STRING F_REPORT 50 BEGIN PROMPT 2 -2 "Tipo di stampa " RSELECT "lv0400c" diff --git a/src/lv/lv0400f.uml b/src/lv/lv0400f.uml index b7a7ac926..d8bd12fd2 100755 --- a/src/lv/lv0400f.uml +++ b/src/lv/lv0400f.uml @@ -81,7 +81,7 @@ BEGIN FLAGS "H" END -STRING F_REPORT 20 +STRING F_REPORT 50 BEGIN PROMPT 2 -2 "Tipo di stampa " RSELECT "lv0400f" diff --git a/src/ve/velib03.cpp b/src/ve/velib03.cpp index f064dffb2..809f98dca 100755 --- a/src/ve/velib03.cpp +++ b/src/ve/velib03.cpp @@ -4037,6 +4037,8 @@ TCausale * TDocumento::get_caus_cont(int year) const if (tipodocsdi.full()) { + if (codcaus.blank()) + codcaus = tipo().causale(); const TString & tipodoc_cont = cached_causale(codcaus, year).tipodoc(); #ifdef NEW_FP