Errori aga105, aga107, aga111, aga116
git-svn-id: svn://10.65.10.50/trunk@5013 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
112ec86be9
commit
a44a144cea
273
ve/clifor.cpp
273
ve/clifor.cpp
@ -137,277 +137,4 @@ TCli_for::~TCli_for()
|
||||
delete _ven_tipo;
|
||||
delete _ven_codice;
|
||||
}
|
||||
|
||||
/* void TCli_for_vendite::update_mask( TMask& m, TMask & occas_mask, bool onload )
|
||||
{
|
||||
const TString16 codval(m.get(F_CODVAL));
|
||||
const TString16 datacambio(m.get(F_DATACAMBIO1));
|
||||
|
||||
// Setta i campi che appartengono al file LF_CLIFO
|
||||
const bool occas = occasionale();
|
||||
|
||||
m.show(F_OCCASEDIT, occas);
|
||||
// In forse per l'Occasionale, sicuri per il Normale
|
||||
m.show(F_COFI, !occas);
|
||||
m.show(F_STATOPAIVA, !occas);
|
||||
m.show(F_PAIVA, !occas);
|
||||
m.set(F_RAGSOC, get(CLI_RAGSOC));
|
||||
m.enable(F_RAGSOC, !occas);
|
||||
|
||||
const TRectype & ven_rec = vendite();
|
||||
|
||||
if(!onload)
|
||||
{
|
||||
short pos = m.id2pos(F_CODVAL);
|
||||
const TString & codval = get(CLI_CODVAL);
|
||||
|
||||
if (pos >= 0 && m.fld(pos).active())
|
||||
m.fld(pos).set(codval);
|
||||
pos = m.id2pos(F_CODVAL1);
|
||||
if (pos >= 0 && m.fld(pos).active())
|
||||
m.fld(pos).set(codval);
|
||||
pos = m.id2pos(F_CODLIN);
|
||||
if (pos >= 0 && m.fld(pos).active())
|
||||
m.fld(pos).set(get(CLI_CODLIN));
|
||||
m.set(F_CODPAG, get(CLI_CODPAG));
|
||||
m.set(F_CODABIA, get(CLI_CODABI));
|
||||
m.set(F_CODCABA, get(CLI_CODCAB));
|
||||
// Setta i campi che appartengono al file LF_CFVEN
|
||||
m.set(F_CODABIP, ven_rec.get(CFV_CODABIPR));
|
||||
m.set(F_CODCABP, ven_rec.get(CFV_CODCABPR));
|
||||
m.set(F_RAGGR, ven_rec.get(CFV_RAGGDOC));
|
||||
m.set(F_CODINDSP, ven_rec.get(CFV_CODINDSP));
|
||||
m.set(F_CODAG, ven_rec.get(CFV_CODAG));
|
||||
m.set(F_CODSPMEZZO, ven_rec.get(CFV_CODSPMEZZO));
|
||||
m.set(F_CODPORTO, ven_rec.get(CFV_CODPORTO));
|
||||
m.set(F_CODNOTESP1, ven_rec.get(CFV_CODNOTESP1));
|
||||
m.set(F_CODNOTESP2, ven_rec.get(CFV_CODNOTESP2));
|
||||
m.set(F_CODNOTE, ven_rec.get(CFV_CODNOTE));
|
||||
m.set(F_CODVETT1, ven_rec.get(CFV_CODVETT1));
|
||||
m.set(F_CODVETT2, ven_rec.get(CFV_CODVETT2));
|
||||
m.set(F_CODVETT3, ven_rec.get(CFV_CODVETT3));
|
||||
m.set(F_SPESEINC, ven_rec.get(CFV_PERCSPINC));
|
||||
m.set(F_ADDBOLLI, ven_rec.get(CFV_ADDBOLLI));
|
||||
m.set(F_CATVEN, ven_rec.get(CFV_CATVEN));
|
||||
pos = m.id2pos(F_CODLIST);
|
||||
const TString & codlist = ven_rec.get(CFV_CODLIST);
|
||||
if (pos >= 0 && m.fld(pos).active())
|
||||
m.fld(pos).set(codlist);
|
||||
pos = m.id2pos(F_CODLIST1);
|
||||
if (pos >= 0 && m.fld(pos).active())
|
||||
m.fld(pos).set(codlist);
|
||||
if (m.id2pos(F_CODAG) >= 0 && m.field(F_CODAG).active())
|
||||
m.set(F_CODAG, ven_rec.get(CFV_CODAG));
|
||||
m.set(F_CODZON, ven_rec.get(CFV_CODZONA));
|
||||
m.set(F_RAGGR, ven_rec.get(CFV_RAGGDOC));
|
||||
}
|
||||
if (occas)
|
||||
{
|
||||
m.reset(F_COFI);
|
||||
m.reset(F_PAIVA);
|
||||
m.reset(F_LOCALITACF);
|
||||
m.set( F_OCFPI, occas_mask.get(O_CODICE));
|
||||
m.set( F_RAGSOC, occas_mask.get(O_RAGSOC));
|
||||
m.set( F_INDCF, occas_mask.get(O_INDIRIZZO));
|
||||
m.set( F_CIVCF, occas_mask.get(O_NUMERO));
|
||||
m.set( F_CAPCF, occas_mask.get(O_CAP));
|
||||
m.set( F_COMCF, occas_mask.get(O_COMUNE));
|
||||
m.set( F_STATOCF, occas_mask.get(O_STATO));
|
||||
}
|
||||
else
|
||||
{
|
||||
occas_mask.reset();
|
||||
m.set(F_COFI, get(CLI_COFI));
|
||||
m.set(F_INDCF, get(CLI_INDCF));
|
||||
m.set(F_CIVCF, get(CLI_CIVCF));
|
||||
m.set(F_STATOPAIVA, get(CLI_STATOPAIV));
|
||||
m.set(F_PAIVA, get(CLI_PAIV));
|
||||
m.set(F_LOCALITACF, get(CLI_LOCCF));
|
||||
m.set(F_CAPCF, get(CLI_CAPCF));
|
||||
m.set(F_COMCF, get(CLI_COMCF));
|
||||
m.set(F_STATOCF, get(CLI_STATOCF));
|
||||
}
|
||||
const TString16 newcodval(m.get(F_CODVAL));
|
||||
const TString16 newdatacambio(m.get(F_DATACAMBIO1));
|
||||
|
||||
short pos = m.id2pos(F_CAMBIO);
|
||||
if ((pos >= 0) && (newcodval.empty() || newdatacambio.empty()))
|
||||
m.fld(F_CAMBIO).reset();
|
||||
pos = m.id2pos(F_CODVAL);
|
||||
if (pos >= 0 && m.fld(pos).active())
|
||||
m.fld(pos).check();
|
||||
pos = m.id2pos(F_CODVAL1);
|
||||
if (pos >= 0 && m.fld(pos).active())
|
||||
m.fld(pos).check();
|
||||
pos = m.id2pos(F_DATACAMBIO1);
|
||||
if (pos >= 0 && m.field(pos).active() &&
|
||||
(codval != newcodval || datacambio != newdatacambio))
|
||||
m.fld(pos).check();
|
||||
m.check_field(F_COMCF);
|
||||
m.check_field(F_STATOCF);
|
||||
m.check_field( F_CODPAG );
|
||||
pos = m.id2pos(F_CODLIN);
|
||||
if (pos >= 0 && m.fld(pos).active())
|
||||
m.fld(pos).check();
|
||||
m.check_field( F_CODCABA );
|
||||
pos = m.id2pos(F_CODLIST);
|
||||
if (pos >= 0 && m.fld(pos).active())
|
||||
m.fld(pos).check();
|
||||
pos = m.id2pos(F_CODLIST1);
|
||||
if (pos >= 0 && m.fld(pos).active())
|
||||
m.fld(pos).check();
|
||||
m.check_field( F_CODCABP );
|
||||
m.check_field( F_CODINDSP );
|
||||
pos = m.id2pos(F_CODAG);
|
||||
if (pos >= 0 && m.fld(pos).active())
|
||||
m.fld(pos).check();
|
||||
m.check_field( F_CODSPMEZZO );
|
||||
m.check_field( F_CODPORTO );
|
||||
m.check_field( F_CODNOTESP1 );
|
||||
m.check_field( F_CODNOTESP2 );
|
||||
m.check_field( F_CODNOTE );
|
||||
m.check_field( F_CODVETT1 );
|
||||
m.check_field( F_CODVETT2 );
|
||||
m.check_field( F_CODVETT3 );
|
||||
m.check_field( F_CATVEN );
|
||||
m.check_field( F_CODZON );
|
||||
const bool gescontr = app().config_ditta().get_bool("GES", "ve", 2);
|
||||
const bool contr_enabled = ven_rec.get_bool(CFV_GESTCONTR);
|
||||
|
||||
m.enable(F_CODCONT1, contr_enabled && gescontr);
|
||||
m.enable(F_CODCONT, contr_enabled && gescontr);
|
||||
|
||||
if (!onload)
|
||||
{
|
||||
imposta_indirizzo_spedizione(m, occas_mask);
|
||||
imposta_sconto_testa(m);
|
||||
imposta_spese(m);
|
||||
}
|
||||
}
|
||||
|
||||
void TCli_for::edita_occasionale( )
|
||||
{
|
||||
CHECK( occasionale( ), "Impossibile editare come occasionale un cliente non occasionale!" );
|
||||
_occas_mask.run( );
|
||||
};
|
||||
|
||||
bool TCli_for::occas_code_handler(TMask_field& f, KEY key)
|
||||
{
|
||||
if (key == K_TAB)
|
||||
{
|
||||
const char* code = f.get();
|
||||
if (*code)
|
||||
{
|
||||
TRelation occas(LF_OCCAS);
|
||||
occas.lfile().put("CFPI", code);
|
||||
if (occas.read(_isequal) == NOERR)
|
||||
{
|
||||
f.mask().autoload(occas);
|
||||
f.mask().send_key(K_TAB, O_COMUNE); // Forza decodifica comuni
|
||||
f.mask().send_key(K_TAB, O_COMUNENAS);
|
||||
}
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void TCli_for_vendite::imposta_indirizzo_spedizione(TMask& m, TMask & occas_mask)
|
||||
{
|
||||
const bool occas = occasionale();
|
||||
|
||||
m.enable( F_CODINDSP , !occas);
|
||||
if (occas)
|
||||
{
|
||||
m.reset( F_CODINDSP);
|
||||
m.set( F_RAGSOCSP, occas_mask.get(O_RAGSOC));
|
||||
m.set( F_INDSP, occas_mask.get(O_INDIRIZZO));
|
||||
m.set( F_CIVSP, occas_mask.get(O_NUMERO));
|
||||
// Sugli occasionali non c'è la località
|
||||
m.reset( F_LOCALITASP);
|
||||
m.set( F_CAPSP, occas_mask.get(O_CAP));
|
||||
m.set( F_COMSP, occas_mask.get(O_COMUNE));
|
||||
m.check_field(F_COMSP);
|
||||
m.set( F_STATOSP, occas_mask.get(O_STATO));
|
||||
m.check_field(F_STATOSP);
|
||||
}
|
||||
}
|
||||
|
||||
void TCli_for_vendite::imposta_sconto_testa( TMask& m )
|
||||
{
|
||||
TConfig & ditta = app().config_ditta();
|
||||
|
||||
const char tipogestione = ditta.get("GESSCO", "ve")[ 0 ];
|
||||
switch( tipogestione )
|
||||
{
|
||||
case 'N': // Sconti non gestiti: pussa via!
|
||||
break;
|
||||
case 'P': // Percentuale su anagrafica cliente
|
||||
m.set( F_SCONTOPERC, get(CLI_SCONTO));
|
||||
break;
|
||||
case 'T': // Gestione tabella sconti
|
||||
{
|
||||
const TString16 codsconto(vendite().get(CFV_CODSCC));
|
||||
|
||||
if (codsconto.not_empty())
|
||||
{
|
||||
TTable sconti("%SCC");
|
||||
sconti.setkey(1);
|
||||
sconti.zero();
|
||||
sconti.put("CODTAB", codsconto);
|
||||
if (sconti.read( ) == NOERR)
|
||||
m.set(F_SCONTOPERC, sconti.get("S1"));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'A': // Gestione archivio sconti
|
||||
{
|
||||
TString16 cod;
|
||||
const TRectype & ven_rec = vendite();
|
||||
TLocalisamfile sconti(LF_SCONTI );
|
||||
|
||||
sconti.setkey(1);
|
||||
sconti.zero();
|
||||
sconti.put("TIPO", "I");
|
||||
if(ditta.get_bool("SCOKEY", "ve", 1))
|
||||
sconti.put("CODCAT", ven_rec.get(CFV_CATVEN));
|
||||
if(ditta.get_bool("SCOKEY", "ve", 2))
|
||||
cod = ven_rec.get(CFV_CODSCC);
|
||||
else
|
||||
cod = " ";
|
||||
if( ditta.get_bool("SCOKEY", "ve", 3))
|
||||
cod << ven_rec.get(CFV_CODZONA);
|
||||
else
|
||||
cod << " ";
|
||||
if( ditta.get_bool("SCOKEY", "ve", 4))
|
||||
cod << get(CLI_CODPAG);
|
||||
sconti.put("CODART", cod);
|
||||
if(sconti.read() == NOERR)
|
||||
m.set(F_SCONTOPERC, sconti.get( "SCONTO"));
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
void TCli_for_vendite::imposta_spese( TMask& m )
|
||||
{
|
||||
TSheet_field & sh = (TSheet_field &) m.field(F_SHEET);
|
||||
TDocumento & doc = app().doc();
|
||||
|
||||
TString16 name("CODSP0");
|
||||
TString_array spese;
|
||||
for (int i = 1; i <= 4; i++)
|
||||
{
|
||||
name.rtrim(1); name << i;
|
||||
const TString16 s(get(name));
|
||||
|
||||
if (s.not_empty())
|
||||
spese.add(s);
|
||||
}
|
||||
m.autosave(*app().get_relation());
|
||||
doc.update_spese_aut(spese, FALSE, &sh);
|
||||
sh.force_update();
|
||||
}
|
||||
*/
|
||||
|
@ -525,7 +525,7 @@ void TCond_vendita::ricerca(bool load_um_only, bool load_scagl_only)
|
||||
}
|
||||
}
|
||||
}
|
||||
if (found_condv)
|
||||
if (found_condv && _testa->is_running())
|
||||
update_omaggi(load_scagl_only);
|
||||
}
|
||||
|
||||
|
@ -666,7 +666,22 @@ int TDocumento::write_rewrite(TBaseisamfile & f, bool re) const
|
||||
|
||||
if (nuovo && re) // quindi ...
|
||||
re = FALSE; // ... non fare la rewrite
|
||||
|
||||
|
||||
if (tipo().spese_aut() && !get_bool("SPESEUPD"))
|
||||
{
|
||||
TString16 name("CODSP0");
|
||||
TString_array spese;
|
||||
TRectype & ven_rec = clifor().vendite();
|
||||
for (int i = 1; i <= 4; i++)
|
||||
{
|
||||
name.rtrim(1); name << i;
|
||||
const TString16 s(ven_rec.get(name));
|
||||
|
||||
if (s.not_empty())
|
||||
spese.add(s);
|
||||
}
|
||||
((TDocumento *)this)->update_spese_aut(spese);
|
||||
}
|
||||
int err = NOERR;
|
||||
const TString80 occ_code(occas().get(OCC_CFPI));
|
||||
|
||||
@ -1114,11 +1129,13 @@ void TDocumento::put_str(const char* fieldname, const char* val)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (strcmp(fieldname, "CODCF") == 0)
|
||||
put("SPESEUPD", TRectype::get("CODCF") == v);
|
||||
TAuto_variable_rectype::put_str(fieldname, v);
|
||||
dirty_fields();
|
||||
if (strcmp(fieldname, "SCONTOPERC") == 0)
|
||||
set_riga_sconto();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void TDocumento::zero(const char * fieldname)
|
||||
@ -1196,7 +1213,13 @@ TRectype & TDocumento::operator =(const char * r)
|
||||
void TDocumento::update_spese_aut(TString_array & spese_aut, bool preserve_old, TSheet_field * sh)
|
||||
|
||||
{
|
||||
const bool interactive = sh != NULL;
|
||||
const bool updated = get_bool("SPESEUPD");
|
||||
|
||||
if (updated)
|
||||
return;
|
||||
|
||||
const bool interactive = sh != NULL;
|
||||
|
||||
if (tipo().spese_aut())
|
||||
{
|
||||
const int nrows = _rows.rows();
|
||||
@ -1271,5 +1294,6 @@ void TDocumento::update_spese_aut(TString_array & spese_aut, bool preserve_old,
|
||||
}
|
||||
}
|
||||
}
|
||||
put("SPESEUPD", TRUE);
|
||||
}
|
||||
|
||||
|
@ -309,7 +309,8 @@ void TDocumento_mask::spese2mask(TCli_for & c)
|
||||
if (s.not_empty())
|
||||
spese.add(s);
|
||||
}
|
||||
autosave(get_relation());
|
||||
autosave(get_relation());
|
||||
doc().put("SPESEUPD", FALSE);
|
||||
doc().update_spese_aut(spese, FALSE, &sh);
|
||||
sh.force_update();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user