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:
parent
8542bcfa8f
commit
6c6d0ab634
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user