Patch level : 01.00 1386
Files correlati : cg Bug : Patch Patch
This commit is contained in:
parent
337193adf2
commit
726e395a71
@ -261,6 +261,12 @@
|
||||
<ProjectReference Include="cglib.vcxproj">
|
||||
<Project>{7b80f974-ce2e-4bd9-855a-44ff139ff288}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="vedoc.vcxproj">
|
||||
<Project>{a1ce9743-a597-4f92-b55a-345a366c9e55}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="vedocext.vcxproj">
|
||||
<Project>{0042619a-6b7c-4d3d-9cd9-9bdd8d200c15}</Project>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<RepCompiler Include="..\src\cg\cg0800a.rep">
|
||||
|
5
cd/test/cg1386.txt
Normal file
5
cd/test/cg1386.txt
Normal file
@ -0,0 +1,5 @@
|
||||
cg0.exe
|
||||
cg0700b.msk
|
||||
cg3.exe
|
||||
cg4.exe
|
||||
cg0700a.msk
|
117
cd/test/cg1386a.ini
Normal file
117
cd/test/cg1386a.ini
Normal file
@ -0,0 +1,117 @@
|
||||
[Main]
|
||||
Demo=0
|
||||
[cg0]
|
||||
Edit_19 = cg0 -0
|
||||
Edit_20 = cg0 -1
|
||||
Edit_26 = cg0 -4
|
||||
Edit_5 = cg0 -5
|
||||
File(0) = cg0.exe|X
|
||||
File(303) = cg0700b.msk|X
|
||||
Patch = 1386
|
||||
Versione = 21511200
|
||||
|
||||
[cg1]
|
||||
File(38) = cg3.exe|X
|
||||
Patch = 1386
|
||||
Versione = 21511200
|
||||
|
||||
[cg4]
|
||||
File(123) = cg4.exe|X
|
||||
Patch = 1386
|
||||
Versione = 21511200
|
||||
|
||||
[cg9]
|
||||
File(212) = cg0700a.msk|X
|
||||
Patch = 1386
|
||||
Versione = 21511200
|
||||
|
||||
[cg99]
|
||||
Kill(0) = batbcve.msk|x
|
||||
Kill(1) = bastreg.rep|x
|
||||
Kill(2) = cg2fppro.msk|x
|
||||
Kill(3) = bastvet.rep|x
|
||||
Kill(4) = batbcco.msk|x
|
||||
Kill(5) = batbivd.msk|x
|
||||
Kill(6) = bastarb.msk|x
|
||||
Kill(7) = batbreg.msk|x
|
||||
Kill(8) = bastivd.msk|x
|
||||
Kill(9) = batbtra.msk|x
|
||||
Kill(10) = batbesc.msk|x
|
||||
Kill(11) = batbver.msk|x
|
||||
Kill(12) = bastpdb.msk|x
|
||||
Kill(13) = batbind.msk|x
|
||||
Kill(14) = batblia.msk|x
|
||||
Kill(15) = bastcfi.rep|x
|
||||
Kill(16) = batbleg.msk|x
|
||||
Kill(17) = bastleg.rep|x
|
||||
Kill(18) = batbnot.msk|x
|
||||
Kill(19) = bastvet.msk|x
|
||||
Kill(20) = bastcco.msk|x
|
||||
Kill(21) = bastcam.rep|x
|
||||
Kill(22) = bastcve.rep|x
|
||||
Kill(23) = bastntb.rep|x
|
||||
Kill(24) = batblia.msk|x
|
||||
Kill(25) = batbzon.msk|x
|
||||
Kill(26) = batblbu.msk|x
|
||||
Kill(27) = batbinl.msk|x
|
||||
Kill(28) = bastcco.rep|x
|
||||
Kill(29) = bastndo.msk|x
|
||||
Kill(30) = bastscc.msk|x
|
||||
Kill(31) = bastesc.msk|x
|
||||
Kill(32) = bastmsp.msk|x
|
||||
Kill(33) = batbcfi.msk|x
|
||||
Kill(34) = bastzon.rep|x
|
||||
Kill(35) = bastdpn.msk|x
|
||||
Kill(36) = bastdpn.rep|x
|
||||
Kill(37) = bastver.msk|x
|
||||
Kill(38) = batbpor.msk|x
|
||||
Kill(39) = bastver.rep|x
|
||||
Kill(40) = batbarb.msk|x
|
||||
Kill(41) = batbmsp.msk|x
|
||||
Kill(42) = batbdpn.msk|x
|
||||
Kill(43) = batbins.msk|x
|
||||
Kill(44) = bastcam.msk|x
|
||||
Kill(45) = bastcve.msk|x
|
||||
Kill(46) = bastpdb.rep|x
|
||||
Kill(47) = bastscc.rep|x
|
||||
Kill(48) = bastpor.msk|x
|
||||
Kill(49) = bastarb.rep|x
|
||||
Kill(50) = batbpdb.msk|x
|
||||
Kill(51) = bastntb.msk|x
|
||||
Kill(52) = batbtit.msk|x
|
||||
Kill(53) = cgtbcon.msk|x
|
||||
Kill(54) = batbndo.msk|x
|
||||
Kill(55) = bastpor.rep|x
|
||||
Kill(56) = bastndo.rep|x
|
||||
Kill(57) = bastesc.rep|x
|
||||
Kill(58) = batbntb.msk|x
|
||||
Kill(59) = batbscc.msk|x
|
||||
Kill(60) = bastzon.msk|x
|
||||
Kill(61) = bastmsp.rep|x
|
||||
Kill(62) = batbvet.msk|x
|
||||
Kill(63) = batbdel.msk|x
|
||||
Kill(64) = bastnot.rep|x
|
||||
Kill(65) = batbcam.msk|x
|
||||
Kill(66) = bastnot.msk|x
|
||||
Kill(67) = bastreg.msk|x
|
||||
Kill(68) = bastleg.msk|x
|
||||
Kill(69) = bastivd.rep|x
|
||||
Kill(70) = bastcfi.msk|x
|
||||
|
||||
[cg]
|
||||
Data = 05-03-2025
|
||||
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 = 1386
|
||||
PostProcess = bainst -0 CG
|
||||
PreProcess =
|
||||
Prezzo(1) =
|
||||
Prezzo(2) =
|
||||
Versione = 21511200
|
||||
|
BIN
cd/test/cg1386a1.zip
Normal file
BIN
cd/test/cg1386a1.zip
Normal file
Binary file not shown.
@ -18,17 +18,14 @@
|
||||
#include <cfven.h>
|
||||
#include <clifo.h>
|
||||
#include <comuni.h>
|
||||
#include <cfspra.h>
|
||||
#include <indsp.h>
|
||||
#include <mov.h>
|
||||
#include "cfban.h"
|
||||
|
||||
#define MAX_CONT_DOC 15
|
||||
|
||||
class TClifo_application : public TRelation_application
|
||||
{
|
||||
TMask * _msk;
|
||||
TClifoVI * _rel;
|
||||
TMask* _msk;
|
||||
TClifoVI* _rel;
|
||||
|
||||
bool _lbcn, _gesven, _gessal, _has_cg, _liscatven, _geslv;
|
||||
bool _savenew;
|
||||
@ -51,8 +48,7 @@ protected:
|
||||
|
||||
////////////
|
||||
static bool ban_notify(TSheet_field& ban, int r, KEY key);
|
||||
static bool indsp_notify(TSheet_field& indsp, int r, KEY key);
|
||||
static bool spese_notify(TSheet_field& spese, int r, KEY key);
|
||||
static bool indsp_notify(TSheet_field& s, int r, KEY key);
|
||||
static void indsp_sheet_rebuilder();
|
||||
static bool effetti_notify(TSheet_field& s, int r, KEY key);
|
||||
|
||||
@ -70,8 +66,6 @@ protected:
|
||||
virtual void mask2ini(const TMask& m, TConfig& ini);
|
||||
|
||||
TSheet_field& indsp_sheet() const;
|
||||
TSheet_field& contatti_sheet() const;
|
||||
TSheet_field& spese_sheet() const;
|
||||
TString_array& field_sheet(short id) const;
|
||||
void reset_sheet();
|
||||
void indsp_pack();
|
||||
@ -327,8 +321,8 @@ HIDDEN bool cofi_handler(TMask_field& f, KEY key)
|
||||
m.set(F_TIPOPERS, isdigit(s1[0]) ? "G" : "F");
|
||||
}
|
||||
else
|
||||
if (key == K_ENTER)
|
||||
return f.validate(key) && no_dup_fis(f, key);
|
||||
if (f.final_check(key))
|
||||
return f.validate(key) && no_dup_fis(f, key) && almeno_cf_o_pi(f);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@ -337,8 +331,7 @@ HIDDEN bool paiv_handler(TMask_field& f, KEY key)
|
||||
{
|
||||
const TMask& m = f.mask();
|
||||
|
||||
if (!m.query_mode())
|
||||
if (key == K_ENTER)
|
||||
if (!m.query_mode() && f.final_check(key))
|
||||
return f.validate(key) && no_dup_iva(f, key) && almeno_cf_o_pi(f);
|
||||
return true;
|
||||
}
|
||||
@ -440,7 +433,7 @@ bool TClifo_application::crea_percipienti(TMask_field& f, KEY key)
|
||||
TLocalisamfile anafis(LF_ANAGFIS);
|
||||
anafis.put(ANF_CODANAGR, percip);
|
||||
anafis.put(ANF_DATANASC, m.get(F_DATANASC));
|
||||
anafis.put(ANF_SESSO, atoi(m.get(F_COFI).smid(9, 2)) > 31 ? 'F' : 'M');
|
||||
anafis.put(ANF_SESSO, atoi(m.get(F_COFI).mid(9, 2)) > 31 ? 'F' : 'M');
|
||||
anafis.put(ANF_COMNASC, m.get(F_COMNASC));
|
||||
err = anafis.write();
|
||||
if (err != NOERR)
|
||||
@ -491,8 +484,8 @@ bool TClifo_application::percip_handler(TMask_field& f, KEY key)
|
||||
if (key == K_TAB && m.field(F_RAGSOC).empty() &&
|
||||
yesno_box(FR("Ragione sociale mancante: assumo %s"), (const char*)r))
|
||||
{
|
||||
m.set(F_RAGSOC, r.sleft(30), true);
|
||||
m.set(F_RAGSOCA, r.smid(30), true);
|
||||
m.set(F_RAGSOC, r.left(30), true);
|
||||
m.set(F_RAGSOCA, r.mid(30), true);
|
||||
}
|
||||
|
||||
if (m.get(F_INDCF).empty()) m.set(F_INDCF, anag.get(ANA_INDRES));
|
||||
@ -746,41 +739,6 @@ HIDDEN bool altnewcli_handler(TMask_field& f, KEY key)
|
||||
return true;
|
||||
}
|
||||
|
||||
HIDDEN bool newclifor_handler(TMask_field& f, KEY key)
|
||||
{
|
||||
TMask& m = f.mask();
|
||||
|
||||
if (key == K_SPACE)
|
||||
{
|
||||
long cod = 0L;
|
||||
TString tipo = m.get(F_TIPOCF) == "C" ? "F" : "C";
|
||||
TToken_string key;
|
||||
const long orig_cod = m.get_long(F_CODCF);
|
||||
|
||||
if (cod == 0L)
|
||||
{
|
||||
m.set(F_TIPOCF, tipo);
|
||||
app().get_next_key(key);
|
||||
cod = key.get_long(3);
|
||||
m.set(F_TIPOCF, m.get(F_TIPOCF) == "C" ? "F" : "C");
|
||||
m.set(F_CODASS, cod);
|
||||
if (!app().pubsave(true))
|
||||
return false;
|
||||
}
|
||||
|
||||
if (cod > 0L)
|
||||
{
|
||||
m.set(F_TIPOCF, tipo);
|
||||
m.set(F_CODCF, cod);
|
||||
m.set(H_TIPOCF, m.get(F_TIPOCF) == "C" ? "F" : "C");
|
||||
m.set(F_CODASS, orig_cod, 0x3);
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
HIDDEN bool contrlav_handler(TMask_field& f, KEY key)
|
||||
{
|
||||
if (key == K_SPACE)
|
||||
@ -848,7 +806,6 @@ void TClifo_application::init_query_mode(TMask& m)
|
||||
m.disable(DLG_CONTRLAV);
|
||||
if (m.id2pos(DLG_ALTNEWCLI) >= 0)
|
||||
m.enable(DLG_ALTNEWCLI);
|
||||
m.disable(DLG_DUPL);
|
||||
}
|
||||
|
||||
void TClifo_application::init_query_insert_mode(TMask& m)
|
||||
@ -868,7 +825,6 @@ void TClifo_application::init_insert_mode(TMask& m)
|
||||
}
|
||||
if (m.id2pos(DLG_ALTNEWCLI) >= 0)
|
||||
m.enable(DLG_ALTNEWCLI);
|
||||
m.enable(DLG_DUPL);
|
||||
}
|
||||
|
||||
void TClifo_application::init_modify_mode(TMask& m)
|
||||
@ -879,7 +835,6 @@ void TClifo_application::init_modify_mode(TMask& m)
|
||||
m.enable(DLG_CONTRLAV, _geslv && m.get(F_TIPOCF) == "C");
|
||||
if (m.id2pos(DLG_ALTNEWCLI) >= 0)
|
||||
m.disable(DLG_ALTNEWCLI);
|
||||
m.enable(DLG_DUPL);
|
||||
}
|
||||
|
||||
void TClifo_application::set_pnae(TMask& m, TToken_string& nonacc, TToken_string& nonscd)
|
||||
@ -990,23 +945,24 @@ int TClifo_application::read(TMask& m)
|
||||
|
||||
if (_gesven)
|
||||
{
|
||||
TToken_string riga(240);
|
||||
indsp_sheet().reset();
|
||||
for (i = 1; i <= _rel->indirizzi().rows(); i++)
|
||||
for (i = 0; i < _rel->indirizzi(); i++)
|
||||
{
|
||||
const TRectype& rec = _rel->indirizzi()[i];
|
||||
const int r = indsp_sheet().set_row_cell(F_RAGSOCI, rec.get(IND_RAGSOC));
|
||||
|
||||
indsp_sheet().set_row_cell(F_INDIRI, rec.get(IND_INDIR), r);
|
||||
indsp_sheet().set_row_cell(F_CIVI, rec.get(IND_CIV), r);
|
||||
indsp_sheet().set_row_cell(F_LOCALI, rec.get(IND_LOCALITA), r);
|
||||
indsp_sheet().set_row_cell(F_CAPI, rec.get(IND_CAP), r);
|
||||
indsp_sheet().set_row_cell(F_STATOI, rec.get(IND_STATO), r);
|
||||
indsp_sheet().set_row_cell(F_COMI, rec.get(IND_COM), r);
|
||||
indsp_sheet().set_row_cell(F_PTELI, rec.get(IND_PTEL), r);
|
||||
indsp_sheet().set_row_cell(F_TELI, rec.get(IND_TEL), r);
|
||||
indsp_sheet().set_row_cell(F_PFAXI, rec.get(IND_PFAX), r);
|
||||
indsp_sheet().set_row_cell(F_FAXI, rec.get(IND_FAX), r);
|
||||
indsp_sheet().set_row_cell(F_IVARIDI, rec.get(IND_IVARID), r);
|
||||
TRectype& rec=_rel->indirizzo(i);
|
||||
riga.cut(0);
|
||||
riga.add(rec.get(IND_RAGSOC));
|
||||
riga.add(rec.get(IND_INDIR));
|
||||
riga.add(rec.get(IND_CIV));
|
||||
riga.add(rec.get(IND_LOCALITA));
|
||||
riga.add(rec.get(IND_CAP));
|
||||
riga.add(rec.get(IND_STATO));
|
||||
riga.add(rec.get(IND_COM));
|
||||
riga.add(rec.get(IND_PTEL));
|
||||
riga.add(rec.get(IND_TEL));
|
||||
riga.add(rec.get(IND_PFAX));
|
||||
riga.add(rec.get(IND_FAX));
|
||||
riga.add(rec.get(IND_IVARID));
|
||||
|
||||
TString8 key;
|
||||
|
||||
@ -1015,16 +971,16 @@ int TClifo_application::read(TMask& m)
|
||||
|
||||
const TRectype& com = cache().get(LF_COMUNI, key);
|
||||
|
||||
indsp_sheet().set_row_cell(F_DENCOMI, com.get(COM_DENCOM), r);
|
||||
indsp_sheet().set_row_cell(F_INDIR2, rec.get(IND_INDIR2), r);
|
||||
indsp_sheet().set_row_cell(F_CODDEST, rec.get(IND_CODDEST), r);
|
||||
indsp_sheet().set_row_cell(F_PADESTINI, rec.get(IND_PADESTIN), r);
|
||||
indsp_sheet().set_row_cell(F_PARIFAMMI, rec.get(IND_PARIFAMM), r);
|
||||
riga.add(com.get(COM_DENCOM));
|
||||
riga.add(rec.get(IND_INDIR2));
|
||||
riga.add(rec.get(IND_PADESTIN));
|
||||
riga.add(rec.get(IND_PARIFAMM));
|
||||
riga.add(rec.get(IND_CODIND));
|
||||
|
||||
indsp_sheet().row(i)=riga;
|
||||
|
||||
// Load the sheets of CODINDDOC, CODINDSP, CODINDEFF.
|
||||
|
||||
TToken_string riga;
|
||||
|
||||
riga.cut(0);
|
||||
riga.add(rec.get(IND_CODIND));
|
||||
riga.add(rec.get(IND_RAGSOC));
|
||||
riga.add(rec.get(IND_INDIR));
|
||||
@ -1034,31 +990,20 @@ int TClifo_application::read(TMask& m)
|
||||
field_sheet(F_CODINDSP).add(riga);
|
||||
field_sheet(F_CODINDEFF).add(riga);
|
||||
}
|
||||
contatti_sheet().reset();
|
||||
for (int i = 1; i <= _rel->contatti().rows(); i++)
|
||||
{
|
||||
const TRectype& contact = _rel->contatti()[i];
|
||||
TAuto_token_string data = contact.get("DATA");
|
||||
const int r = contatti_sheet().set_row_cell(F_CONTACT, data.get(0));
|
||||
|
||||
for (int j = 0; j < MAX_CONT_DOC; j++)
|
||||
contatti_sheet().set_row_cell(F_TIPO1 + j, data.get(), r);
|
||||
contatti_sheet().check_row(r);
|
||||
}
|
||||
spese_sheet().reset();
|
||||
for (int i = 1; i <= _rel->cfspra().rows(); i++)
|
||||
{
|
||||
const TRectype& cfspra = _rel->cfspra()[i];
|
||||
const int r = spese_sheet().set_row_cell(F_CONTACT, cfspra.get(CFSPRA_TIPOSPRA));
|
||||
|
||||
spese_sheet().set_row_cell(F_CODSP, cfspra.get(CFSPRA_CODSPRA), r);
|
||||
spese_sheet().set_row_cell(F_QTADEF, cfspra.get(CFSPRA_QTADEF), r);
|
||||
spese_sheet().check_row(r);
|
||||
TSheet_field& s = m.sfield(F_SHEET_CONT);
|
||||
s.destroy();
|
||||
for (int c = 0; c < _rel->contatti(); c++)
|
||||
{
|
||||
const TRectype& contact = _rel->contatto(c);
|
||||
TToken_string& row = s.row(-1);
|
||||
row = contact.get("SECOND");
|
||||
row << "|||" << contact.get("DATA");
|
||||
s.check_row(c);
|
||||
}
|
||||
}
|
||||
|
||||
TToken_string key;
|
||||
|
||||
key.add(m.get(F_TIPOCF));
|
||||
key.add(m.get(F_CODCF));
|
||||
key.add("V");
|
||||
@ -1130,40 +1075,37 @@ void TClifo_application::ini2mask(TConfig& ini, TMask& m, bool query)
|
||||
{
|
||||
TToken_string riga(240);
|
||||
TString16 para;
|
||||
|
||||
indsp_sheet().reset();
|
||||
for (i = 0; ; i++)
|
||||
{
|
||||
para.format("%d,%d", LF_INDSP, i+1);
|
||||
if (ini.set_paragraph(para))
|
||||
{
|
||||
const int r = indsp_sheet().set_row_cell(F_RAGSOCI, ini.get(IND_RAGSOC));
|
||||
if (!ini.set_paragraph(para))
|
||||
break;
|
||||
if (i == 0)
|
||||
indsp_sheet().reset();
|
||||
|
||||
indsp_sheet().set_row_cell(F_INDIRI, ini.get(IND_INDIR), r);
|
||||
indsp_sheet().set_row_cell(F_CIVI, ini.get(IND_CIV), r);
|
||||
indsp_sheet().set_row_cell(F_LOCALI, ini.get(IND_LOCALITA), r);
|
||||
indsp_sheet().set_row_cell(F_CAPI, ini.get(IND_CAP), r);
|
||||
indsp_sheet().set_row_cell(F_STATOI, ini.get(IND_STATO), r);
|
||||
indsp_sheet().set_row_cell(F_COMI, ini.get(IND_COM), r);
|
||||
indsp_sheet().set_row_cell(F_PTELI, ini.get(IND_PTEL), r);
|
||||
indsp_sheet().set_row_cell(F_TELI, ini.get(IND_TEL), r);
|
||||
indsp_sheet().set_row_cell(F_PFAXI, ini.get(IND_PFAX), r);
|
||||
indsp_sheet().set_row_cell(F_FAXI, ini.get(IND_FAX), r);
|
||||
indsp_sheet().set_row_cell(F_IVARIDI, ini.get(IND_IVARID), r);
|
||||
riga.cut(0);
|
||||
riga.add(ini.get(IND_RAGSOC));
|
||||
riga.add(ini.get(IND_INDIR));
|
||||
riga.add(ini.get(IND_CIV));
|
||||
riga.add(ini.get(IND_LOCALITA));
|
||||
riga.add(ini.get(IND_CAP));
|
||||
riga.add(ini.get(IND_STATO));
|
||||
riga.add(ini.get(IND_COM));
|
||||
riga.add(ini.get(IND_PTEL));
|
||||
riga.add(ini.get(IND_TEL));
|
||||
riga.add(ini.get(IND_PFAX));
|
||||
riga.add(ini.get(IND_FAX));
|
||||
riga.add(ini.get(IND_IVARID));
|
||||
|
||||
TString16 key;
|
||||
|
||||
key << ini.get(IND_STATO);
|
||||
key << '|' << ini.get(IND_COM);
|
||||
|
||||
const TRectype & com = cache().get(LF_COMUNI, key);
|
||||
riga.add(com.get(COM_DENCOM));
|
||||
riga.add(ini.get(IND_INDIR2));
|
||||
riga.add(ini.get(IND_CODIND));
|
||||
|
||||
indsp_sheet().set_row_cell(F_DENCOMI, com.get(COM_DENCOM), r);
|
||||
indsp_sheet().set_row_cell(F_INDIR2, ini.get(IND_INDIR2), r);
|
||||
indsp_sheet().set_row_cell(F_CODDEST, ini.get(IND_CODDEST), r);
|
||||
indsp_sheet().set_row_cell(F_PADESTINI, ini.get(IND_PADESTIN), r);
|
||||
indsp_sheet().set_row_cell(F_PARIFAMMI, ini.get(IND_PARIFAMM), r);
|
||||
indsp_sheet().set_row_cell(F_CODIND, ini.get(IND_CODIND), r);
|
||||
indsp_sheet().row(i)=riga;
|
||||
|
||||
// Load the sheets of CODINDDOC, CODINDSP, CODINDEFF.
|
||||
riga.cut(0);
|
||||
@ -1176,42 +1118,8 @@ void TClifo_application::ini2mask(TConfig& ini, TMask& m, bool query)
|
||||
field_sheet(F_CODINDSP).add(riga);
|
||||
field_sheet(F_CODINDEFF).add(riga);
|
||||
}
|
||||
else
|
||||
break;
|
||||
}
|
||||
contatti_sheet().reset();
|
||||
for (i = 0; ; i++)
|
||||
{
|
||||
para.format("%d,%d", LF_MULTIREL, i + 1);
|
||||
if (ini.set_paragraph(para))
|
||||
{
|
||||
TAuto_token_string data = ini.get("DATA");
|
||||
const int r = contatti_sheet().set_row_cell(F_CONTACT, data.get(0));
|
||||
|
||||
for (int i = 0; i < MAX_CONT_DOC; i++)
|
||||
contatti_sheet().set_row_cell(F_TIPO1 + i, data.get(), r);
|
||||
}
|
||||
else
|
||||
break;
|
||||
}
|
||||
spese_sheet().reset();
|
||||
for (i = 0; ; i++)
|
||||
{
|
||||
para.format("%d,%d", LF_CFSPRA, i + 1);
|
||||
if (ini.set_paragraph(para))
|
||||
{
|
||||
const int r = spese_sheet().set_row_cell(F_CONTACT, ini.get(CFSPRA_TIPOSPRA));
|
||||
|
||||
spese_sheet().set_row_cell(F_CODSP, ini.get(CFSPRA_CODSPRA), r);
|
||||
spese_sheet().set_row_cell(F_QTADEF, ini.get(CFSPRA_QTADEF), r);
|
||||
}
|
||||
else
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
TString p;
|
||||
|
||||
p << LF_CFBAN << ",V";
|
||||
TSheet_field & ns_sh = m.sfield(F_BANA);
|
||||
|
||||
@ -1268,9 +1176,9 @@ int TClifo_application::write(const TMask& m)
|
||||
|
||||
bool TClifo_application::remove()
|
||||
{
|
||||
bool ok = TRelation_application::remove();
|
||||
int err = TRelation_application::remove();
|
||||
|
||||
if (ok)
|
||||
if (err == NOERR)
|
||||
{
|
||||
TRelation * r = get_relation();
|
||||
TToken_string key;
|
||||
@ -1292,7 +1200,7 @@ bool TClifo_application::remove()
|
||||
|
||||
vs_ban.remove();
|
||||
}
|
||||
return ok;
|
||||
return err == NOERR;
|
||||
}
|
||||
|
||||
void TClifo_application::mask2ini(const TMask& m, TConfig& ini)
|
||||
@ -1405,19 +1313,7 @@ TString_array& TClifo_application::field_sheet(short id) const
|
||||
|
||||
TSheet_field& TClifo_application::indsp_sheet() const
|
||||
{
|
||||
TSheet_field& o_sheet = _msk->sfield(F_SHEET_G_VEN);
|
||||
return o_sheet;
|
||||
}
|
||||
|
||||
TSheet_field& TClifo_application::contatti_sheet() const
|
||||
{
|
||||
TSheet_field& o_sheet = _msk->sfield(F_SHEET_CONT);
|
||||
return o_sheet;
|
||||
}
|
||||
|
||||
TSheet_field& TClifo_application::spese_sheet() const
|
||||
{
|
||||
TSheet_field& o_sheet = _msk->sfield(F_SHEET_SPESE);
|
||||
TSheet_field& o_sheet=_msk->sfield(F_SHEET_G_VEN);
|
||||
return o_sheet;
|
||||
}
|
||||
|
||||
@ -1477,7 +1373,7 @@ void TClifo_application::common_f(const TMask& m)
|
||||
{
|
||||
const TString& alter = m.get(F_RICALT);
|
||||
if (alter.blank() && m.mode() == MODE_INS)
|
||||
((TMask &)m).set(F_RICALT, m.get(F_RAGSOC).sleft(m.field(F_RICALT).size()));
|
||||
((TMask &)m).set(F_RICALT, m.get(F_RAGSOC).left(m.field(F_RICALT).size()));
|
||||
|
||||
TToken_string nonacceff(30, ';'), nonscadeff(30, ';');
|
||||
get_pnae(m, nonacceff, nonscadeff);
|
||||
@ -1489,119 +1385,63 @@ void TClifo_application::common_f(const TMask& m)
|
||||
{
|
||||
const char tipocf = m.get(F_TIPOCF)[0];
|
||||
const long codcf = m.get_long(F_CODCF);
|
||||
TRectype recind(LF_INDSP);
|
||||
|
||||
_rel->destroy_rows();
|
||||
indsp_pack();
|
||||
if (_rel->indirizzi().key().empty())
|
||||
TArray& rows=indsp_sheet().rows_array();
|
||||
int n_items = rows.items();
|
||||
|
||||
for (int i = 0; i < n_items; i++)
|
||||
{
|
||||
recind.put(IND_TIPOCF, tipocf);
|
||||
recind.put(IND_CODCF, codcf);
|
||||
_rel->indirizzi().set_key(&recind);
|
||||
}
|
||||
FOR_EACH_SHEET_ROW_LOOP(indsp_sheet(), r)
|
||||
{
|
||||
recind.zero();
|
||||
recind.put(IND_TIPOCF,tipocf);
|
||||
recind.put(IND_CODCF,codcf);
|
||||
recind.put(IND_CODIND, r + 1);
|
||||
recind.put(IND_RAGSOC, indsp_sheet().get_str_row_cell(r, F_RAGSOCI));
|
||||
recind.put(IND_INDIR, indsp_sheet().get_str_row_cell(r, F_INDIRI));
|
||||
recind.put(IND_CIV, indsp_sheet().get_str_row_cell(r, F_CIVI));
|
||||
recind.put(IND_LOCALITA, indsp_sheet().get_str_row_cell(r, F_LOCALI));
|
||||
recind.put(IND_CAP, indsp_sheet().get_str_row_cell(r, F_CAPI));
|
||||
recind.put(IND_STATO, indsp_sheet().get_str_row_cell(r, F_STATOI));
|
||||
recind.put(IND_COM, indsp_sheet().get_str_row_cell(r, F_COMI));
|
||||
recind.put(IND_PTEL, indsp_sheet().get_str_row_cell(r, F_PTELI));
|
||||
recind.put(IND_TEL, indsp_sheet().get_str_row_cell(r, F_TELI));
|
||||
recind.put(IND_PFAX, indsp_sheet().get_str_row_cell(r, F_PFAXI));
|
||||
recind.put(IND_FAX, indsp_sheet().get_str_row_cell(r, F_FAXI));
|
||||
recind.put(IND_IVARID, indsp_sheet().get_str_row_cell(r, F_IVARIDI));
|
||||
recind.put(IND_INDIR2, indsp_sheet().get_str_row_cell(r, F_DENCOMI));
|
||||
recind.put(IND_PADESTIN, indsp_sheet().get_str_row_cell(r, F_PADESTINI));
|
||||
recind.put(IND_CODDEST, indsp_sheet().get_str_row_cell(r, F_CODDEST));
|
||||
recind.put(IND_PARIFAMM, indsp_sheet().get_str_row_cell(r, F_PARIFAMMI));
|
||||
_rel->indirizzi().add_row(recind);
|
||||
TToken_string& row=(TToken_string&)rows[i];
|
||||
TRectype& rec=_rel->indirizzo(i);
|
||||
row.restart();
|
||||
rec.zero();
|
||||
rec.put(IND_TIPOCF,tipocf);
|
||||
rec.put(IND_CODCF,codcf);
|
||||
rec.put(IND_RAGSOC,row.get());
|
||||
rec.put(IND_INDIR,row.get());
|
||||
rec.put(IND_CIV,row.get());
|
||||
rec.put(IND_LOCALITA,row.get());
|
||||
rec.put(IND_CAP,row.get());
|
||||
rec.put(IND_STATO,row.get());
|
||||
rec.put(IND_COM,row.get());
|
||||
rec.put(IND_PTEL,row.get());
|
||||
rec.put(IND_TEL,row.get());
|
||||
rec.put(IND_PFAX,row.get());
|
||||
rec.put(IND_FAX,row.get());
|
||||
rec.put(IND_IVARID,row.get());
|
||||
row.get();
|
||||
rec.put(IND_INDIR2,row.get());
|
||||
rec.put(IND_PADESTIN, row.get());
|
||||
rec.put(IND_PARIFAMM, row.get());
|
||||
rec.put(IND_CODIND,i+1);
|
||||
}
|
||||
int err = _rel->indirizzi().write(true);
|
||||
|
||||
if (err != NOERR)
|
||||
TToken_string data;
|
||||
TString8 first, second;
|
||||
first.format("%c%06ld", m.get(F_TIPOCF)[0], m.get_long(F_CODCF));
|
||||
TSheet_field& s = m.sfield(F_SHEET_CONT);
|
||||
FOR_EACH_SHEET_ROW(s, r, row)
|
||||
{
|
||||
TRectype& rec=_rel->contatto(r);
|
||||
rec.put("COD", "BACON");
|
||||
rec.put("FIRST", first);
|
||||
second.format("%06ld", row->get_long(0));
|
||||
rec.put("SECOND", second);
|
||||
row->get(2);
|
||||
data.cut(0);
|
||||
const char* d = NULL;
|
||||
while ((d = row->get()))
|
||||
{
|
||||
error_box(FR("Errore %d nella scrittura indirizzi"), err);
|
||||
return;
|
||||
}
|
||||
|
||||
TRectype recsp(LF_CFSPRA);
|
||||
|
||||
if (_rel->cfspra().key().empty())
|
||||
{
|
||||
recsp.put(CFSPRA_TIPOCF, tipocf);
|
||||
recsp.put(CFSPRA_CODCF, codcf);
|
||||
_rel->cfspra().set_key(&recsp);
|
||||
}
|
||||
|
||||
FOR_EACH_SHEET_ROW_LOOP(spese_sheet(), rs)
|
||||
{
|
||||
recsp.zero();
|
||||
recsp.put(CFSPRA_TIPOCF, tipocf);
|
||||
recsp.put(CFSPRA_CODCF, codcf);
|
||||
recsp.put(CFSPRA_NRIGA, rs + 1);
|
||||
recsp.put(CFSPRA_TIPOSPRA, spese_sheet().get_str_row_cell(rs, F_TIPOSPRA));
|
||||
recsp.put(CFSPRA_CODSPRA, spese_sheet().get_str_row_cell(rs, F_CODSP));
|
||||
recsp.put(CFSPRA_QTADEF, spese_sheet().get_str_row_cell(rs, F_QTADEF));
|
||||
_rel->cfspra().add_row(recsp);
|
||||
}
|
||||
err = _rel->cfspra().write(true);
|
||||
if (err != NOERR)
|
||||
{
|
||||
error_box(FR("Errore %d nella scrittura spese"), err);
|
||||
return;
|
||||
if (*d > ' ')
|
||||
data.add(d);
|
||||
}
|
||||
rec.put("DATA", data);
|
||||
}
|
||||
|
||||
TRectype reccon(LF_MULTIREL);
|
||||
TString first, second;
|
||||
int len = reccon.rec_des().field("SECOND").len();
|
||||
|
||||
if (_rel->contatti().key().empty())
|
||||
{
|
||||
reccon.put("COD", "BACON");
|
||||
first.format("%s%06ld", (const char *)m.get(F_TIPOCF), m.get_long(F_CODCF));
|
||||
reccon.put("FIRST", first);
|
||||
_rel->contatti().set_key(&reccon);
|
||||
}
|
||||
FOR_EACH_SHEET_ROW_LOOP(contatti_sheet(), rc)
|
||||
{
|
||||
reccon.put("COD", "BACON");
|
||||
first.format("%s%06ld", (const char *)m.get(F_TIPOCF), m.get_long(F_CODCF));
|
||||
reccon.put("FIRST", first);
|
||||
|
||||
second.cut(0);
|
||||
second << rc + 1;
|
||||
second.right_just(len, '0');
|
||||
reccon.put("SECOND", second);
|
||||
|
||||
TToken_string data(contatti_sheet().get_str_row_cell(rc, F_CONTACT), ',');
|
||||
|
||||
for (int i = 0; i < MAX_CONT_DOC; i++)
|
||||
{
|
||||
const TString & tipo = contatti_sheet().get_str_row_cell(rc, F_TIPO1 + i);
|
||||
|
||||
if (tipo.full())
|
||||
data.add(tipo);
|
||||
}
|
||||
reccon.put("DATA", data);
|
||||
_rel->contatti().add_row(reccon);
|
||||
}
|
||||
int err = _rel->contatti().write(true);
|
||||
if (err != NOERR)
|
||||
{
|
||||
error_box(FR("Errore %d nella scrittura contatto"), err);
|
||||
return;
|
||||
}
|
||||
|
||||
TToken_string key;
|
||||
|
||||
key.add(m.get(F_TIPOCF));
|
||||
key.add(m.get(F_CODCF));
|
||||
key.add("V");
|
||||
@ -1728,22 +1568,6 @@ bool TClifo_application::indsp_notify(TSheet_field& indsp, int r, KEY key)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TClifo_application::spese_notify(TSheet_field& spese, int r, KEY key)
|
||||
{
|
||||
switch (key)
|
||||
{
|
||||
case K_CTRL + K_INS:
|
||||
// request to add the row #r
|
||||
// Set tipo to S
|
||||
spese.set_row_cell(F_TIPOSPRA, "S", r);
|
||||
spese.check_row(r);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TClifo_application::effetti_notify(TSheet_field& pnae, int r, KEY key)
|
||||
{
|
||||
if (key == K_INS)
|
||||
@ -1792,7 +1616,9 @@ bool TClifo_application::user_create() // initvar e arrmask
|
||||
//gestisce i campi salvati sulla tabella di modulo lv020 (lvclifo)
|
||||
_rel->add("&LV020" ,"CODTAB==" CLI_TIPOCF "+" CLI_CODCF, 1, LF_CLIFO, LVAUT);
|
||||
_rel->write_enable(-LVAUT); //abilita la lettura / scrittura sul record collegato
|
||||
|
||||
_msk = new TMask("cg0200a") ;
|
||||
|
||||
_msk->set_handler(F_TIPOCF, tipocf_handler);
|
||||
_msk->set_handler(F_COFI, cofi_handler);
|
||||
_msk->set_handler(F_PAIV, paiv_handler);
|
||||
@ -1808,7 +1634,6 @@ bool TClifo_application::user_create() // initvar e arrmask
|
||||
_msk->set_handler(LST_TIPO_RFSO, rfso_handler);
|
||||
_msk->set_handler(F_STATOCF, stato_handler);
|
||||
_msk->set_handler(F_PADESTIN, coddest_handler);
|
||||
_msk->set_handler(DLG_DUPL, newclifor_handler);
|
||||
|
||||
TSheet_field & ns_sh = _msk->sfield(F_BANA);
|
||||
|
||||
@ -1817,23 +1642,22 @@ bool TClifo_application::user_create() // initvar e arrmask
|
||||
TSheet_field& ind = _msk->sfield(F_SHEET_G_VEN);
|
||||
|
||||
ind.set_notify(indsp_notify);
|
||||
|
||||
TSheet_field& spese = _msk->sfield(F_SHEET_SPESE);
|
||||
|
||||
spese.set_notify(spese_notify);
|
||||
ind.sheet_mask().set_handler(F_COMI, comi_handler);
|
||||
ind.sheet_mask().set_handler(F_PADESTINI, coddest_handler);
|
||||
|
||||
TSheet_field& pnae = _msk->sfield(F_NONACCEFF);
|
||||
|
||||
pnae.set_notify(effetti_notify);
|
||||
|
||||
|
||||
_savenew = !ini_get_bool(CONFIG_STUDIO, "cg", "Cg02SN");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TClifo_application::user_destroy() // releasev e arrmask
|
||||
{
|
||||
// da errore in inserimento da controllare safe_delete(_rel);
|
||||
delete _rel;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user