diff --git a/build/770.vcxproj b/build/770.vcxproj index f68783b1b..ab315e391 100644 --- a/build/770.vcxproj +++ b/build/770.vcxproj @@ -51,6 +51,9 @@ false false + + true + _DEBUG;%(PreprocessorDefinitions) @@ -90,6 +93,7 @@ MachineX86 false + 12.0 true diff --git a/build/770.vcxproj.filters b/build/770.vcxproj.filters index 16c0e95c2..182fdff88 100644 --- a/build/770.vcxproj.filters +++ b/build/770.vcxproj.filters @@ -387,6 +387,9 @@ Headers + + Headers + diff --git a/build/771mod.vcxproj b/build/771mod.vcxproj index 1e0554cc6..833accea1 100644 --- a/build/771mod.vcxproj +++ b/build/771mod.vcxproj @@ -46,7 +46,7 @@ false ..\exe\ ..\obj\$(SolutionName)\$(ProjectName)\ - false + true false false false diff --git a/build/772mod.vcxproj b/build/772mod.vcxproj index 5e12556c1..e7902016f 100644 --- a/build/772mod.vcxproj +++ b/build/772mod.vcxproj @@ -46,7 +46,7 @@ false ..\exe\ ..\obj\$(SolutionName)\$(ProjectName)\ - false + true false false false diff --git a/build/773mod.vcxproj b/build/773mod.vcxproj index 03e172d65..6b2e12df2 100644 --- a/build/773mod.vcxproj +++ b/build/773mod.vcxproj @@ -43,7 +43,7 @@ <_ProjectFileVersion>10.0.30319.1 ..\exe\ ..\obj\$(SolutionName)\$(ProjectName)\ - false + true ..\exe\ ..\obj\$(SolutionName)\$(ProjectName)\ false diff --git a/build/774.vcxproj b/build/774.vcxproj index 708143edb..16d974220 100644 --- a/build/774.vcxproj +++ b/build/774.vcxproj @@ -42,7 +42,7 @@ <_ProjectFileVersion>10.0.30319.1 ..\exe\ - false + true ..\exe\ ..\obj\$(SolutionName)\$(ProjectName)\ false diff --git a/build/775.vcxproj b/build/775.vcxproj index 9c8dd9581..30b047aa2 100644 --- a/build/775.vcxproj +++ b/build/775.vcxproj @@ -46,7 +46,7 @@ false ..\exe\ ..\obj\$(SolutionName)\$(ProjectName)\ - false + true false false false diff --git a/build/777.vcxproj b/build/777.vcxproj index 17f112f41..fef9c0510 100644 --- a/build/777.vcxproj +++ b/build/777.vcxproj @@ -43,7 +43,7 @@ <_ProjectFileVersion>10.0.30319.1 ..\exe\ ..\obj\$(SolutionName)\$(ProjectName)\ - false + true ..\exe\ ..\obj\$(SolutionName)\$(ProjectName)\ false diff --git a/cd/test/770640.txt b/cd/test/770640.txt new file mode 100644 index 000000000..105126b3a --- /dev/null +++ b/cd/test/770640.txt @@ -0,0 +1,3 @@ +777.exe + + Aggiornato il tracciato di invio del quadro ST \ No newline at end of file diff --git a/cd/test/770640a.ini b/cd/test/770640a.ini new file mode 100644 index 000000000..7e71d5700 --- /dev/null +++ b/cd/test/770640a.ini @@ -0,0 +1,28 @@ +[Main] +Demo=0 + +[777] +File(134) = 777.exe|X +File(139) = 77qst.frm|X +Patch = 640 +Versione = 21511200 + +[7799] +Kill(0) = batbcaf.msk|x +Kill(1) = batbca7.msk|x +Kill(2) = batbent.msk|x + +[77] +Data = 31-10-2018 +Descrizione = Percipienti (Mod.770) +Dischi = 1 +Edit_4 = 770 -3 +Moduli = ba +OEM = +Patch = 0640 +PostProcess = +PreProcess = +Prezzo(1) = +Prezzo(2) = +Versione = 21511200 + diff --git a/cd/test/770640a1.zip b/cd/test/770640a1.zip new file mode 100644 index 000000000..e0485d8f1 Binary files /dev/null and b/cd/test/770640a1.zip differ diff --git a/cd/test/cg0640.txt b/cd/test/cg0640.txt new file mode 100644 index 000000000..1cc598a6d --- /dev/null +++ b/cd/test/cg0640.txt @@ -0,0 +1,10 @@ +cg2.exe + +Corretti errori di calcolo totale documento nel saldaconto +Modificata segnalazione relativi alla data di comeptenza inferiore o UGUALE alla +data di chiusura. +Segnalato da CRPA. Per movimenti configurati come fatture per il saldaconto ma non +IVA +es. +causale IN6 INCASSATO CONTRIBUTO PROGETTO +cercava un campo codice cliente che sulla maschera non c'era. \ No newline at end of file diff --git a/cd/test/cg0640a.ini b/cd/test/cg0640a.ini new file mode 100644 index 000000000..e1b5f448d --- /dev/null +++ b/cd/test/cg0640a.ini @@ -0,0 +1,94 @@ +[Main] +Demo=0 + +[cg1] +Edit_23 = cg2 -0 +File(8) = cg2.exe|X +Patch = 640 +Versione = 21511200 + +[cg99] +Kill(0) = bastntb.rep|x +Kill(1) = bastvet.msk|x +Kill(2) = bastpdb.msk|x +Kill(3) = bastmsp.msk|x +Kill(4) = batbarb.msk|x +Kill(5) = bastndo.rep|x +Kill(6) = bastesc.msk|x +Kill(7) = batbvet.msk|x +Kill(8) = bastzon.msk|x +Kill(9) = bastcve.rep|x +Kill(10) = batbivd.msk|x +Kill(11) = batbtit.msk|x +Kill(12) = bastnot.msk|x +Kill(13) = bastcco.msk|x +Kill(14) = batbcco.msk|x +Kill(15) = bastscc.msk|x +Kill(16) = batbleg.msk|x +Kill(17) = batblia.msk|x +Kill(18) = bastpor.msk|x +Kill(19) = batbcam.msk|x +Kill(20) = batbind.msk|x +Kill(21) = bastcco.rep|x +Kill(22) = batbntb.msk|x +Kill(23) = bastpor.rep|x +Kill(24) = bastcve.msk|x +Kill(25) = batbesc.msk|x +Kill(26) = bastleg.msk|x +Kill(27) = bastmsp.rep|x +Kill(28) = batbcfi.msk|x +Kill(29) = bastarb.rep|x +Kill(30) = batbins.msk|x +Kill(31) = batblia.msk|x +Kill(32) = batbscc.msk|x +Kill(33) = bastivd.msk|x +Kill(34) = batbnot.msk|x +Kill(35) = bastreg.rep|x +Kill(36) = bastnot.rep|x +Kill(37) = batbpdb.msk|x +Kill(38) = cgtbcon.msk|x +Kill(39) = bastver.rep|x +Kill(40) = bastcfi.msk|x +Kill(41) = bastntb.msk|x +Kill(42) = bastpdb.rep|x +Kill(43) = bastesc.rep|x +Kill(44) = bastdpn.rep|x +Kill(45) = bastarb.msk|x +Kill(46) = bastreg.msk|x +Kill(47) = batbinl.msk|x +Kill(48) = bastivd.rep|x +Kill(49) = bastndo.msk|x +Kill(50) = batbdel.msk|x +Kill(51) = batbmsp.msk|x +Kill(52) = batbreg.msk|x +Kill(53) = bastvet.rep|x +Kill(54) = batblbu.msk|x +Kill(55) = bastcam.msk|x +Kill(56) = bastdpn.msk|x +Kill(57) = batbzon.msk|x +Kill(58) = bastscc.rep|x +Kill(59) = batbdpn.msk|x +Kill(60) = batbver.msk|x +Kill(61) = bastleg.rep|x +Kill(62) = bastzon.rep|x +Kill(63) = batbcve.msk|x +Kill(64) = bastcfi.rep|x +Kill(65) = bastver.msk|x +Kill(66) = batbndo.msk|x +Kill(67) = batbtra.msk|x +Kill(68) = bastcam.rep|x +Kill(69) = batbpor.msk|x + +[cg] +Data = 05-11-2018 +Descrizione = Contabilita' Generale +Dischi = 1 +Moduli = ba +OEM = +Patch = 640 +PostProcess = bainst -0 CG +PreProcess = +Prezzo(1) = +Prezzo(2) = +Versione = 21511200 + diff --git a/cd/test/cg0640a1.zip b/cd/test/cg0640a1.zip new file mode 100644 index 000000000..b19bfc6ed Binary files /dev/null and b/cd/test/cg0640a1.zip differ diff --git a/cd/test/sy0640.txt b/cd/test/sy0640.txt new file mode 100644 index 000000000..2f47d70e0 --- /dev/null +++ b/cd/test/sy0640.txt @@ -0,0 +1,4 @@ +xvaga.dll + + +Aggiunto parametro per non mettersi in copia conoscenza nascosta durante l'invio di una powermail \ No newline at end of file diff --git a/cd/test/sy0640a.ini b/cd/test/sy0640a.ini new file mode 100644 index 000000000..8459a0850 --- /dev/null +++ b/cd/test/sy0640a.ini @@ -0,0 +1,21 @@ +[Main] +Demo=0 + +[sy1] +File(56) = xvaga.dll|X +Patch = 0640 +Versione = 21511200 + +[sy] +Data = 30-10-2018 +Descrizione = Sistema +Dischi = 1 +Moduli = +OEM = +Patch = 640 +PostProcess = +PreProcess = +Prezzo(1) = +Prezzo(2) = +Versione = 21511200 + diff --git a/cd/test/sy0640a1.zip b/cd/test/sy0640a1.zip new file mode 100644 index 000000000..6ce369b4d Binary files /dev/null and b/cd/test/sy0640a1.zip differ diff --git a/src/cg/cg2102.cpp b/src/cg/cg2102.cpp index f6ccbc361..6e340e761 100755 --- a/src/cg/cg2102.cpp +++ b/src/cg/cg2102.cpp @@ -509,7 +509,7 @@ real TPrimanota_application::calcola_saldo() const if (pag) { const char tipo = row_type(*r); - if (strchr("ACGKP", tipo) != NULL) // Abbuoni attivi, differenze cambio, spese, ... + if (strchr("GK", tipo) != NULL) // Abbuoni attivi, differenze cambio, spese, ... // (A o P) Abbuoni e (C) Differenze cambio perchè c'erano ? non (T) totolae documento perchè pagamento saldaconto += importo; } } @@ -580,7 +580,10 @@ HIDDEN bool imptot_error(const TImporto& imptot, const TImporto& impsal, bool va msg << TR("\nSi desidera correggere il totale documento?"); ok = a.cgs().yesno_box(msg); if (ok) + { m.set(F_TOTALE, cassa.valore()); + a.calcola_saldo(); + } } return ok; } @@ -671,7 +674,8 @@ bool TPrimanota_application::cg_handler(TMask_field& f, KEY k) } } - if (errato) + + if (errato) { TString msg(128); const TCurrency euro(speso.valore()); @@ -699,7 +703,7 @@ bool TPrimanota_application::cg_handler(TMask_field& f, KEY k) return false; } } - if (strchr("ACGKPT", tipo) != NULL) + if (strchr("GKT", tipo) != NULL) // Abbuoni attivi, differenze cambio, spese, ... // (A o P) Abbuoni e (C) Differenze cambio perchè c'erano ? { saldaconto += importo; if (in_valuta) @@ -2497,13 +2501,20 @@ bool TPrimanota_application::datacomp_handler(TMask_field& f, KEY key) } const TDate chiusura = app()._esercizi[ae].chiusura(); - if (chiusura.ok() && dc <= chiusura) - { - f.error_box(FR("%s è antecedente al %s,\ndata di chiusura dell'esercizio %d"), - data, chiusura.stringa(), ae); - // Errore non bloccante - } - + if (chiusura.ok() && dc < chiusura) + { + f.error_box(FR("%s è antecedente al %s,\ndata di chiusura dell'esercizio %d"), + data, chiusura.stringa(), ae); + // Errore non bloccante + } + else + if (chiusura.ok() && dc == chiusura) + { + f.error_box(FR("%s è uguale al %s,\ndata di chiusura dell'esercizio %d"), + data, chiusura.stringa(), ae); + // Errore non bloccante + } + } else { @@ -3150,9 +3161,10 @@ const TString & TPrimanota_application::clifo() const bool TPrimanota_application::is_split_payment() const { - const TMask& m = curr_mask(); + const TMask& m = curr_mask(); char s = ' '; TMask_field* sp = m.find_by_id(F_SPLITPAY); + if (sp != NULL) { if (sp->shown()) @@ -3163,7 +3175,9 @@ bool TPrimanota_application::is_split_payment() const if (s != 'N' && s != 'S') { s = 'N'; - if (clifo() == "C" && m.get_int(F_ANNOIVA) >= 2015 && !causale().reverse_charge()) + if (iva() == nessuna_iva) + return false; + if (clifo() == "C" && m.get_int(F_ANNOIVA) >= 2015 && !causale().reverse_charge()) { const TRectype& cliente = cache().get_rec(LF_CLIFO, "C", m.get(F_CODCLIFOR)); if (cliente.get_bool(CLI_SPLITPAY)) @@ -3287,17 +3301,50 @@ bool TPrimanota_application::totdoc_handler(TMask_field& f, KEY key) if (a.is_pagamento()) a.calcola_saldo(); } - } - - if (key == K_ENTER) - { - const TCurrency totale(real(f.get())); - if (totale.get_num().is_zero()) + } + if (key == K_TAB && a.is_pagamento() && !a._as400) + { + m.show(K_RESIDUO, f.get().full()); + m.show(K_TOTALE, f.get().full()); + + } + + if (key == K_ENTER) + { + if (a.is_pagamento()&& ! a._as400) + { + TImporto importo, totdocsc,tot; + TSheet_field& cgrows = a.cgs(); + + FOR_EACH_SHEET_ROW_BACK(cgrows, i, r) + { + const char tipo = row_type(*r); + if (strchr("GK", tipo) != NULL) // Abbuoni attivi, differenze cambio, spese, ... // (A o P) Abbuoni e (C) Differenze cambio perchè c'erano ? non (T) totolae documento perchè pagamento + { + TImporto importo; + + importo = *r; + totdocsc += importo; + } + } + if (tot.valore().is_zero()) + { + totdocsc.normalize(a.causale().sezione_clifo()); + tot = totdocsc; + f.set(tot.valore().string()); + a.calcola_saldo(); + } + } + + TCurrency totale(real(f.get())); + + if (totale.get_num().is_zero()) ok = yesno_box(TR("Totale documento nullo: continuare ugualmente?")); if (ok) { const TValuta cambio(m, SK_VALUTA, SK_DATACAMBIO, SK_CAMBIO); + if (cambio.in_valuta()) { const real totval(m.get(SK_TOTDOCVAL)); diff --git a/src/cg/cg2102.h b/src/cg/cg2102.h index 22a230419..89be80413 100755 --- a/src/cg/cg2102.h +++ b/src/cg/cg2102.h @@ -34,6 +34,8 @@ #endif class TDati_mov_auto; +enum CGMaskType { _query = 0, _no_iva = 1, _iva = 2, _occas = 3}; + class TPrimanota_application : public TRelation_application { TMovimentoPN* _rel; // Relazione principale @@ -264,7 +266,6 @@ protected: void ivas_pack(); void cgs_pack(); bool ci_sono_importi(const TSheet_field& cgs) const; - real calcola_saldo() const; real calcola_imp() const; void add_cgs_tot(TMask& m); @@ -324,9 +325,12 @@ public: static bool iva_notify(TSheet_field& s, int r, KEY key); static bool cg_notify(TSheet_field& s, int r, KEY key); + TMask * mask(CGMaskType type) { return _msk[type]; } + void type2colors(char tipor, COLOR& back, COLOR& fore); void set_type_colors(char tipor, COLOR back, COLOR fore); void reset_colors(); + real calcola_saldo() const; TCausale& causale() const { return *_causale; } TPartite_array& partite() { return _partite; } // Partite editate diff --git a/src/cg/cg2105.cpp b/src/cg/cg2105.cpp index 33a91d9f1..0480c8148 100755 --- a/src/cg/cg2105.cpp +++ b/src/cg/cg2105.cpp @@ -256,8 +256,8 @@ void TPay_mask::set_pag(const TRectype& oldpag, const TRiga_scadenze& scad, const char sez_fat = fatt.sezione(); set(S_SEZIONE_SCAD, sez_fat == 'A' ? "A" : "D"); // Sezione della riga - if (assigned()) - { + if (assigned()) + { set(S_IMPORTO_SCAD, scad.get(SCAD_IMPORTO)); // Importo della rata if (in_valuta) set(S_IMPORTOVAL_SCAD, scad.get(SCAD_IMPORTOVAL)); // Importo in valuta @@ -309,6 +309,16 @@ void TPay_mask::set_pag(const TRectype& oldpag, const TRiga_scadenze& scad, _pagabile += oldimp; #endif + if (_pagabile.is_zero()) + { + hide(S_RESIDUOPAG); + hide(S_RESIDUORATA); // Se non assegnato nascondi residuo rata + } + else + { + show(S_RESIDUOPAG); + show(S_RESIDUORATA); // Se non assegnato nascondi residuo rata + } // Il flag di saldo/acconto e' attivo solo se non ci sono acconti, cioe': // pagamento non assegnato o con data documento antecedente quella della fattura @@ -333,7 +343,7 @@ void TPay_mask::set_pag(const TRectype& oldpag, const TRiga_scadenze& scad, #else set_handler(S_GRUPPO, conto_handler); set_handler(S_CONTO, conto_handler); - const bool mostra_conto = !sum.is_nota_credito() && app().curr_mask().get_real(F_TOTALE) != ZERO; + const bool mostra_conto = !sum.is_nota_credito(); // && app().curr_mask().get_real(F_TOTALE) != ZERO; show(-2, mostra_conto); // mostra/nasconde conto contropartita if (!mostra_conto) reset(-2); @@ -1032,7 +1042,9 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k) if (pag.get_char(PAGSCA_ACCSAL) == 'S') { const TImporto abb(sez, pag.get_real(PAGSCA_ABBUONI)); - if (!abb.is_zero()) + bool is_totdoc = app().mask(_no_iva)->get(F_TOTALE).full(); + + if (!abb.is_zero()) { const char tipo_abb = pag.get_char(PAGSCA_PASSATT); TToken_string& rabb = gm.add_colored_row(sheet, tipo_abb); @@ -1040,13 +1052,18 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k) if (in_valuta) { TImporto abb_lit = abb; + prima_valuta.val2eur(abb_lit); - gm.add_importo(rabb, abb_lit); - gm.add_importo(rabb, abb, prima_valuta.codice()); + if (is_totdoc) + { + gm.add_importo(rabb, abb_lit); + gm.add_importo(rabb, abb, prima_valuta.codice()); + } } else { - gm.add_importo(rabb, abb); + if (is_totdoc) + gm.add_importo(rabb, abb); rabb.add(""); } rabb.add((int)sum.tipo(), 11); @@ -1060,7 +1077,8 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k) { TToken_string& rdiff = gm.add_colored_row(sheet, 'C'); rdiff.add(TR("Differenza cambio"), 4); - gm.add_importo(rdiff, diff); + if (is_totdoc) + gm.add_importo(rdiff, diff); rdiff.add((int)sum.tipo(), 11); } } @@ -1152,6 +1170,8 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k) if (pag.get_char(PAGSCA_ACCSAL) == 'S' || !pag.get_real(PAGSCA_ABBUONI).is_zero()) { const TImporto abb(sez, pag.get_real(PAGSCA_ABBUONI)); + bool is_totdoc = app().mask(_no_iva)->get(F_TOTALE).full(); + if (!abb.is_zero()) { const char tipo_abb = pag.get_char(PAGSCA_PASSATT); @@ -1161,34 +1181,23 @@ bool TGame_mask::partite_notify(TSheet_field& partite, int r, KEY k) { TImporto abb_lit = abb; prima_valuta.val2eur(abb_lit); - gm.add_importo(rabb, abb_lit); - gm.add_importo(rabb, abb, prima_valuta.codice()); - + if (is_totdoc) + { + gm.add_importo(rabb, abb_lit); + gm.add_importo(rabb, abb, prima_valuta.codice()); + } tot_lit += abb_lit; tot_val += abb; } else { - gm.add_importo(rabb, abb); + if (is_totdoc) + gm.add_importo(rabb, abb); rabb.add(""); tot_lit += abb; } rabb.add((int)sum.tipo(), 11); } -/* Continuo a ritenre impossibile ... per ora - // Le differenze cambio possono esistere solo in valuta - if (in_valuta) - { - const TImporto diff(sez, pag.get_real(PAGSCA_DIFFCAM)); - if (!diff.is_zero()) - { - TToken_string& rdiff = gm.add_colored_row(sheet, 'C'); - rdiff.add(TR("Differenza cambio"), 4); - gm.add_importo(rdiff, diff); - rdiff.add((int)sum.tipo(), 11); - } - } -*/ } // Il pagamento era a saldo } // Fine ciclo non assegnati diff --git a/src/include/form.h b/src/include/form.h index 50f34c74f..41c9708ba 100755 --- a/src/include/form.h +++ b/src/include/form.h @@ -595,7 +595,16 @@ public: // @cmember Ritorna l'

-esimo campo da stampare TForm_item& field(int n) const { return (TForm_item&)_item[n]; } - + // @cmember Ritorna il primo campo da stampare + TForm_item* first_field() + { return (TForm_item *)_item.first_item(); } + // @cmember Ritorna il campo successivo da stampare + TForm_item* succ_field() + { return (TForm_item *)_item.succ_item(); } + // @cmember Ritorna l'ultimo campo da stampare + TForm_item* last_field() + { return (TForm_item *)_item.last_item(); } + // @cmember Cerca e ritorna l'

-esimo campo nella sezione TForm_item* exist_field(short id) const; // @cmember Cerca e ritorna la sottosezione

nella sezione diff --git a/src/m770/777100.cpp b/src/m770/777100.cpp index b0cbc5229..3a8291788 100755 --- a/src/m770/777100.cpp +++ b/src/m770/777100.cpp @@ -175,10 +175,11 @@ void TForm770::transfer_section(TPrint_section& body, int rigo, TString str; body.update(); - for (word f = 0; f < body.fields(); f++) + for (TForm_item * f = body.first_field(); f != NULL; f = body.succ_field()) { - TForm_item& fi = body.field(f); - str = fi.get(); str.trim(); + TForm_item& fi = *f; + + str = fi.get(); str.trim(); if (fi.shown() && str.not_empty()) { basecode = fi.get_special_value("TRASFER"); @@ -1027,8 +1028,8 @@ bool TTrasferimento770::split(const char* path) rec.set(6, totale['F'-'A']); // Totale F rec.set(7, totale['G'-'A']); // Totale G rec.set(8, totale['H'-'A']); // Totale H - rec.set(9, totale['I'-'A']); // Totale I - rec.set(10,totale['J'-'A']); // Totale J +// rec.set(9, totale['I'-'A']); // Totale I +// rec.set(10,totale['J'-'A']); // Totale J // Scrive record di coda outfile << rec; diff --git a/src/m770/77qst.frm b/src/m770/77qst.frm index 5b31efe3d..b44fc7395 100755 --- a/src/m770/77qst.frm +++ b/src/m770/77qst.frm @@ -32,43 +32,20 @@ BEGIN PROMPT 79 2 "" FIELD QLRITEFF SPECIAL STRINGA TRASFER "ST002002" "NP" -END - -VALUTA 3 -BEGIN - KEY "CREDITI RECUPERATI" - PROMPT 79 2 "" - FIELD QLRITCOMP - SPECIAL STRINGA TRASFER "ST002003" "NP" -END - -VALUTA 4 -BEGIN - KEY "IMPORTI A SCOMPUTO" - PROMPT 79 2 "" - SPECIAL STRINGA TRASFER "ST002004" "NP" -END - -VALUTA 5 -BEGIN - KEY "VERSAMENTI IN ECCESSO" - PROMPT 79 2 "" - FIELD QLRITVEREC - SPECIAL STRINGA TRASFER "ST002005" "NP" -END +End VALUTA 6 BEGIN KEY "CREDITI D'IMPOSTA UTILIZZATI A SCOMPUTO" PROMPT 79 2 "" - SPECIAL STRINGA TRASFER "ST002004" "NP" + SPECIAL STRINGA TRASFER "ST002006" "NP" END VALUTA 7 BEGIN KEY "IMPORTO VERSATO" PROMPT 79 2 "" - MESSAGE _NUMEXPR,#2-#3-#4-#5-#6 + MESSAGE _NUMEXPR,#2-#6 SPECIAL STRINGA TRASFER "ST002007" "NP" END @@ -100,31 +77,14 @@ BEGIN PROMPT 79 2 "" FIELD QLCT SPECIAL STRINGA TRASFER "ST002011" "AN" -END - -LISTA 100 -BEGIN - KEY "Tesoreria" - PROMPT 79 2 "" - FIELD QLLV - ITEM " | " MESSAGE " ",10 - ITEM "C| " MESSAGE " ",10 - ITEM "T|X" MESSAGE "X",10 -END - -NUMERO 12 -BEGIN - KEY "Tesoreria" - PROMPT 79 2 "" - SPECIAL STRINGA TRASFER "ST002012" "CB" -END +End NUMERO 13 BEGIN KEY "Regione" PROMPT 79 2 "" FIELD QLREGIONE -END +End STRINGA 14 BEGIN diff --git a/src/ps/ps0713200.cpp b/src/ps/ps0713200.cpp index a37e9fb12..68b08856b 100755 --- a/src/ps/ps0713200.cpp +++ b/src/ps/ps0713200.cpp @@ -84,8 +84,11 @@ void TImporta_comm_app::scan_file(const TFilename& file, TAssoc_array& righe) TString16 idlavoro = rec.get(0); idlavoro.strip("\""); //salto le righe vuote del file - if (idlavoro.empty()) - continue; + if (idlavoro.empty()) + { + rec = s.line(); + continue; + } //recupero i dati di interesse dal file; //gruppo conto e sottoconto devono avere dei valori sensati