<_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