Patch level :

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :


git-svn-id: svn://10.65.10.50/trunk@17848 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
rajitgill 2008-12-10 11:57:25 +00:00
parent a8984dd075
commit 503e94d37a
4 changed files with 71 additions and 3 deletions

@ -1,5 +1,6 @@
#include <automask.h>
#include <execp.h>
#include <progind.h>
#include <relapp.h>
#include "lv0400.h"
@ -136,9 +137,12 @@ protected:
virtual int read(TMask& m);
virtual int write(const TMask& m);
virtual int rewrite(const TMask& m);
virtual bool protected_record(TRectype & rec);
virtual bool remove();
virtual void init_query_mode(TMask& m);
virtual void init_insert_mode(TMask& m);
bool elimina_planning(const TDate& data, const long& codcont, const long& codcf) const;
bool kill_planning (TISAM_recordset& selrighe) const;
};
bool TContratti_app:: user_create()
@ -314,6 +318,46 @@ int TContratti_app::rewrite(const TMask& m)
if(err==NOERR) save_rows(m);
return err;
}
bool TContratti_app::protected_record(TRectype & rec)
{
TLaundry_contract cont(rec);
return !cont.can_be_deleted();
}
bool TContratti_app::elimina_planning(const TDate& data, const long& codcont, const long& codcf) const
{
//creo il recordset
TISAM_recordset selrighe("USE LVRCONSPLAN KEY 3\nSELECT DTCONS>=#DATA\nFROM CODCF=#CODCF CODCONT=#CODCONT \nTO CODCF=#CODCF CODCONT=#CODCONT");
//setto le variabili
selrighe.set_var("#DATA",data);
selrighe.set_var("#CODCF",codcf);
selrighe.set_var("#CODCONT",codcont);
//richiamo la funzione che effettivamente fa la cancellazione delle righe interessate
kill_planning(selrighe);
return true;
}
bool TContratti_app::kill_planning (TISAM_recordset& selrighe) const
{
const TRecnotype righe = selrighe.items();
if (righe > 0)
{
TProgind pi(righe, TR("Eliminazione planning in corso..."), true, true);
TLocalisamfile& rplan = selrighe.cursor()->file();
for (bool ok = selrighe.move_last(); ok; ok = selrighe.move_prev())
{
if (!pi.addstatus(1))
break;
rplan.remove();
}
}
return true;
}
bool TContratti_app::remove()
{
bool ok=TRelation_application::remove();
@ -323,11 +367,14 @@ bool TContratti_app::remove()
build_query(*_msk,query);
TISAM_recordset righeset(query);
TLocalisamfile& file=righeset.cursor()->file();
for (bool ok=righeset.move_first(); ok; ok=righeset.move_next())
{
file.remove();
}
TDate oggi(TODAY);
elimina_planning(oggi,_msk->get_long(F_CODCONT),_msk->get_long(F_CODCF));
}
return ok;
}

@ -428,7 +428,6 @@ END
ENDPAGE
PAGE "" -1 -1 80 20
GROUPBOX DLG_NULL 78 4
@ -489,7 +488,6 @@ BEGIN
CHECKTYPE REQUIRED
END
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 1 7 "@b Forfait"
@ -516,7 +514,6 @@ END
LISTBOX S_NOLCIC 1 20
BEGIN
PROMPT 45 8 "In base a "
ITEM "N|Nessuno"
ITEM "I|Dot. iniziale"
ITEM "O|Dot. odierna"
GROUP 1

@ -87,6 +87,25 @@ const TRectype& TLaundry_contract::row(const char* codart) const
bool TLaundry_contract::ok() const
{ return !empty(); }
bool TLaundry_contract::can_be_deleted() const
{
TConfig ini(CONFIG_DITTA,"lv");
const TString & codnum=ini.get("NUM_GEN");
TString query;
query << "USE DOC KEY 4 SELECT CODNUM=#CODNUM \n"
<< "FROM TIPOCOF=C CODCF=#CODCF PROVV=D \n"
<< "TO TIPOCOF=C CODCF=#CODCF PROVV=D \n";
TISAM_recordset rset(query);
rset.set_var("#CODNUM",TVariant(codnum));
rset.set_var("#CODCF",get_long(LVCONDV_CODCF));
return !rset.move_first();
}
// Legge un contratto tramite la chiave primaria cliente+codice
bool TLaundry_contract::read(const long codcf, const long codcont)
{
@ -111,6 +130,9 @@ bool TLaundry_contract::read(const long codcf, const long indsped, const TDate&
TLaundry_contract::TLaundry_contract() : TRectype(LF_LVCONDV)
{ zero(); }
TLaundry_contract::TLaundry_contract(const TRectype & rec): TRectype(rec)
{
}
// Inizializza un contratto in base alla chiave primaria
TLaundry_contract::TLaundry_contract(const long codcf, const long codcont)
: TRectype(LF_LVCONDV)

@ -22,8 +22,10 @@ public:
bool read(const long codcf, const long codcont);
bool read(const long codcf, const long indsped, const TDate& data);
bool can_be_deleted() const;
TLaundry_contract();
TLaundry_contract(const TRectype & rec);
TLaundry_contract(const long codcf, const long codcont);
TLaundry_contract(const long codcf, const long indsped, const TDate& data);
};