Patch level : 2.0 564

Files correlati     : cg2.exe
Ricompilazione Demo : [ ]
Commento            :

101
Controllo non bloccante in fase di inserimento documenti su nr. doc e data
doc per evitare di inserire dei doppioni, con relativa lista di stampa
VEDI codice segnalazione 20 di conseguenza.Se non si riesce in fase di
immissione fare almeno una stampa di controllo.


git-svn-id: svn://10.65.10.50/trunk@11407 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2003-09-11 13:17:56 +00:00
parent 8542bcfa8f
commit 6c6d0ab634

View File

@ -2215,19 +2215,66 @@ bool TPrimanota_application::data74ter_handler(TMask_field& f, KEY key)
return TRUE;
}
bool TPrimanota_application::numdoc_handler(TMask_field& f, KEY key)
{
TMask& m = f.mask();
if (key == K_TAB && f.to_check(key, TRUE) && m.insert_mode() && app().is_saldaconto())
if (f.to_check(key, TRUE))
{
const TString n = f.get();
if (n.not_empty() && !app().npart_is_prot()) // Copiare numero documento nel numero partita?
{
if (m.field(F_NUMRIF).active() && m.get(F_NUMRIF).blank())
m.set(F_NUMRIF, n, TRUE);
}
TMask& m = f.mask();
if (key == K_TAB && m.insert_mode() && app().is_saldaconto())
{
if (!f.empty() && !app().npart_is_prot()) // Copiare numero documento nel numero partita?
{
if (m.field(F_NUMRIF).active() && m.get(F_NUMRIF).blank())
m.set(F_NUMRIF, f.get(), TRUE);
}
}
}
// Controllo documenti duplicati
if (key == K_ENTER && app().iva() == iva_acquisti)
{
TMask& m = f.mask();
const int annodoc = m.get_date(F_DATADOC).year();
const long fornitore = m.get_long(F_FORNITORE);
if (annodoc > 0 && fornitore > 0 && !f.empty())
{
// SELECT NUMREG,DATAREG,DATADOC,NUMDOC FROM MOV
// WHERE TIPO='F' AND CODCF=F_FORNITORE AND
// NUMDOC=F_NUMDOC AND DATAREG>=F_DATADOC AND NUMREG<>F_NUMREG
TString filter;
filter << MOV_NUMDOC << "=\"" << f.get() << '"';
if (m.edit_mode())
{
filter.insert("(");
filter << ")&&(" << MOV_NUMREG << "!=\"" << m.get(F_NUMREG) << "\")";
}
TRelation rel(LF_MOV);
TRectype& rec = rel.curr();
TRectype recfrom(rec);
recfrom.put(MOV_TIPO, "F");
recfrom.put(MOV_CODCF, fornitore);
recfrom.put(MOV_DATAREG, m.get(F_DATADOC));
TRectype recto(recfrom);
recto.put(MOV_DATAREG, TDate(31, 12, annodoc+1));
TCursor cur(&rel, filter, 3, &recfrom, &recto);
const TRecnotype items = cur.items();
cur.freeze();
for (cur = 0; cur.pos() < items; ++cur)
{
const int ad = rec.get_date(MOV_DATADOC).year();
if (ad == annodoc)
return yesno_box("Il documento %d / %s e' gia' stato inserito con la registrazione %ld\nSi desidera continuare ugualmente?",
annodoc, (const char*)f.get(), rec.get_long(MOV_NUMREG));
}
}
}
return TRUE;
}