Patch level :10.0
Files correlati : Ricompilazione Demo : [ ] Commento :implementata la clifogiac. Funzionera'? git-svn-id: svn://10.65.10.50/trunk@17222 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
94f60ab34b
commit
3b202a25b5
262
mg/mg0400.cpp
262
mg/mg0400.cpp
@ -1,5 +1,4 @@
|
|||||||
#include <modaut.h>
|
#include <modaut.h>
|
||||||
#include <progind.h>
|
|
||||||
#include <relapp.h>
|
#include <relapp.h>
|
||||||
#include <reputils.h>
|
#include <reputils.h>
|
||||||
#include <tabutil.h>
|
#include <tabutil.h>
|
||||||
@ -50,37 +49,47 @@ bool TClifo_giac_mask::notify_sheet_giac(TSheet_field &f, int i, KEY k)
|
|||||||
{
|
{
|
||||||
TClifo_giac_mask & m = (TClifo_giac_mask&)f.mask();
|
TClifo_giac_mask & m = (TClifo_giac_mask&)f.mask();
|
||||||
|
|
||||||
const bool gestmag = main_app().has_module(MGAUT) && m.magazzini().gestmag();
|
|
||||||
if (gestmag)
|
|
||||||
{
|
|
||||||
switch (k)
|
switch (k)
|
||||||
{
|
{
|
||||||
case (K_ENTER): // fine modifica
|
case (K_ENTER): // fine modifica
|
||||||
{
|
{
|
||||||
real ck(f.cell(i,f.cid2index(F_RIM)));
|
//controlla che l'indsped di una nuova riga non sia gia' presente, senno' avrebbe 2 record con la stessa..
|
||||||
ck+=real(f.cell(i,f.cid2index(F_ACQ)));
|
//..chiave visto che la testata e' uguale per tutti
|
||||||
ck+=real(f.cell(i,f.cid2index(F_ENTR)));
|
const int indsped = atoi(f.cell(i, f.cid2index(F_INDSPED)));
|
||||||
ck-=real(f.cell(i,f.cid2index(F_VEN)));
|
for (int j = 0; j < f.items(); j++)
|
||||||
ck-=real(f.cell(i,f.cid2index(F_USC)));
|
{
|
||||||
ck-=real(f.cell(i,f.cid2index(F_ACL)));
|
if (i != j)
|
||||||
ck+=real(f.cell(i,f.cid2index(F_INCL)));
|
{
|
||||||
ck-=real(f.cell(i,f.cid2index(F_INPRODF)));
|
const int jndsped = atoi(f.cell(j, f.cid2index(F_INDSPED)));
|
||||||
ck+=real(f.cell(i,f.cid2index(F_INPRODC)));
|
if (indsped == jndsped)
|
||||||
ck-=real(f.cell(i,f.cid2index(F_SCARTI)));
|
return f.error_box(FR("L'indirizzo della riga %d e' lo stesso di quello della riga %d"), i+1, j+1);
|
||||||
ck-=real(f.cell(i,f.cid2index(F_GIAC)));
|
}
|
||||||
|
} //for (int j = 0...
|
||||||
|
|
||||||
if (!ck.is_zero())
|
|
||||||
{
|
real ck(f.cell(i,f.cid2index(F_RIM)));
|
||||||
f.error_box("La giacenza deve essere pari a RIM+(ACQ+ENTR)-(VEN+USC)-(ACL-INCL)-(PRODF-PRODC) - SCARTI)");
|
ck+=real(f.cell(i,f.cid2index(F_ACQ)));
|
||||||
return FALSE;
|
ck+=real(f.cell(i,f.cid2index(F_ENTR)));
|
||||||
}
|
ck-=real(f.cell(i,f.cid2index(F_VEN)));
|
||||||
|
ck-=real(f.cell(i,f.cid2index(F_USC)));
|
||||||
}
|
ck-=real(f.cell(i,f.cid2index(F_ACL)));
|
||||||
break;
|
ck+=real(f.cell(i,f.cid2index(F_INCL)));
|
||||||
|
ck-=real(f.cell(i,f.cid2index(F_INPRODF)));
|
||||||
|
ck+=real(f.cell(i,f.cid2index(F_INPRODC)));
|
||||||
|
ck-=real(f.cell(i,f.cid2index(F_SCARTI)));
|
||||||
|
ck-=real(f.cell(i,f.cid2index(F_GIAC)));
|
||||||
|
|
||||||
|
if (!ck.is_zero())
|
||||||
|
{
|
||||||
|
f.error_box("La giacenza deve essere pari a RIM+(ACQ+ENTR)-(VEN+USC)-(ACL-INCL)-(PRODF-PRODC) - SCARTI)");
|
||||||
|
return FALSE;
|
||||||
|
} //if(!ck.is_zero())...
|
||||||
|
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} //if(gestmag...
|
|
||||||
|
|
||||||
//campi presi da altri campi della maschera per..
|
//campi presi da altri campi della maschera per..
|
||||||
//..essere visualizzati nella pag. giacenze
|
//..essere visualizzati nella pag. giacenze
|
||||||
@ -107,7 +116,7 @@ bool TClifo_giac_mask::notify_sheet_giac(TSheet_field &f, int i, KEY k)
|
|||||||
|
|
||||||
bool TClifo_giac_mask::handle_sheet_giac_valgiac(TMask_field &f, KEY k)
|
bool TClifo_giac_mask::handle_sheet_giac_valgiac(TMask_field &f, KEY k)
|
||||||
{
|
{
|
||||||
if (k==K_TAB && f.dirty())
|
if (k == K_TAB && f.dirty())
|
||||||
{
|
{
|
||||||
TMask& m = f.mask();
|
TMask& m = f.mask();
|
||||||
real q=m.get_real(F_RIM)+m.get_real(F_ACQ);
|
real q=m.get_real(F_RIM)+m.get_real(F_ACQ);
|
||||||
@ -128,7 +137,7 @@ bool TClifo_giac_mask::handle_autoinsert_livgiac(TMask_field &fld, KEY k)
|
|||||||
if (k == K_TAB && fld.focusdirty() && !fld.empty())
|
if (k == K_TAB && fld.focusdirty() && !fld.empty())
|
||||||
{
|
{
|
||||||
TClifo_giac_mask & mask = (TClifo_giac_mask&)fld.mask().get_sheet()->mask();
|
TClifo_giac_mask & mask = (TClifo_giac_mask&)fld.mask().get_sheet()->mask();
|
||||||
const int levnum=fld.dlg()-F_LIV1+1;
|
const int levnum = fld.dlg() - F_LIV1 + 1;
|
||||||
return mask.livelli_giac->autoinsert(levnum, fld);
|
return mask.livelli_giac->autoinsert(levnum, fld);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@ -138,8 +147,8 @@ void TClifo_giac_mask::sheetgiac_get(TSheet_field &fld_righe, int item)
|
|||||||
{
|
{
|
||||||
TClifo_giac_mask &m = (TClifo_giac_mask&)fld_righe.mask();
|
TClifo_giac_mask &m = (TClifo_giac_mask&)fld_righe.mask();
|
||||||
// prende il record della riga corrente dal record array
|
// prende il record della riga corrente dal record array
|
||||||
TRectype &rec= fld_righe.record()->row(item, TRUE);
|
TRectype &rec = fld_righe.record()->row(item, TRUE);
|
||||||
TToken_string &row= fld_righe.row(item-1);
|
TToken_string &row = fld_righe.row(item-1);
|
||||||
// codici di livello
|
// codici di livello
|
||||||
row.add( m.livelli_giac->unpack_grpcode(rec.get("LIVELLO") ,1),fld_righe.cid2index(F_LIV1) );
|
row.add( m.livelli_giac->unpack_grpcode(rec.get("LIVELLO") ,1),fld_righe.cid2index(F_LIV1) );
|
||||||
row.add( m.livelli_giac->unpack_grpcode(rec.get("LIVELLO") ,2),fld_righe.cid2index(F_LIV2) );
|
row.add( m.livelli_giac->unpack_grpcode(rec.get("LIVELLO") ,2),fld_righe.cid2index(F_LIV2) );
|
||||||
@ -152,7 +161,7 @@ void TClifo_giac_mask::sheetgiac_get(TSheet_field &fld_righe, int item)
|
|||||||
void TClifo_giac_mask::sheetgiac_put(TSheet_field &fld_righe, int item)
|
void TClifo_giac_mask::sheetgiac_put(TSheet_field &fld_righe, int item)
|
||||||
{
|
{
|
||||||
TClifo_giac_mask &m = (TClifo_giac_mask&)fld_righe.mask();
|
TClifo_giac_mask &m = (TClifo_giac_mask&)fld_righe.mask();
|
||||||
TToken_string &row= fld_righe.row(item-1);
|
TToken_string &row= fld_righe.row(item - 1);
|
||||||
|
|
||||||
TRectype &recrighe= fld_righe.record()->row(item, TRUE);
|
TRectype &recrighe= fld_righe.record()->row(item, TRUE);
|
||||||
// codici livello
|
// codici livello
|
||||||
@ -216,10 +225,11 @@ void TClifo_giac_mask::set_parametered_fields()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// abilita la gestione delle ubicazioni (manuale/su tabella)
|
// abilita la gestione delle ubicazioni (manuale/su tabella)
|
||||||
const bool ubi = gestmag && magazzini().gestubi_man();
|
if (magazzini().gestubi_man())
|
||||||
fld_giac.sheet_mask().field(F_UBICAZ).show(!ubi);
|
{
|
||||||
fld_giac.sheet_mask().field(F_UBICAZD).show(!ubi);
|
fld_giac.sheet_mask().field(F_UBICAZ).check_type(CHECK_SEARCH);
|
||||||
fld_giac.sheet_mask().field(F_UBICAZ2).show(ubi);
|
fld_giac.sheet_mask().field(F_UBICAZD).check_type(CHECK_SEARCH);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -238,6 +248,7 @@ TClifo_giac_mask::TClifo_giac_mask(TRelation * rel) : TMask("mg0400a")
|
|||||||
set_parametered_fields();
|
set_parametered_fields();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------------------------------//
|
||||||
//--------------------------------------------
|
//--------------------------------------------
|
||||||
// APPLICAZIONE
|
// APPLICAZIONE
|
||||||
//--------------------------------------------
|
//--------------------------------------------
|
||||||
@ -251,17 +262,19 @@ protected:
|
|||||||
virtual bool user_destroy();
|
virtual bool user_destroy();
|
||||||
virtual TMask *get_mask(int) { return _msk; }
|
virtual TMask *get_mask(int) { return _msk; }
|
||||||
|
|
||||||
TISAM_recordset recset_giacenze(const char tipocf, const long codcf, const TString& codart, const int annoes);
|
TString query_giacenze(const TMask& m);
|
||||||
|
|
||||||
virtual int read(TMask& m);
|
virtual int read(TMask& m);
|
||||||
void fill_giacenze(const char tipocf, const long codcf, const TString& codart, const int annoes);
|
virtual bool find(word key = 0);
|
||||||
|
void fill_giacenze(const TMask& m);
|
||||||
|
|
||||||
virtual bool remove();
|
virtual bool remove();
|
||||||
int remove_giacenze(const char tipocf, const long codcf, const TString& codart, const int annoes);
|
int remove_giacenze(const char tipocf, const long codcf, const TString& codart, const int annoes);
|
||||||
|
|
||||||
virtual int write(const TMask& m);
|
virtual int write(const TMask& m);
|
||||||
virtual int rewrite(const TMask& m);
|
virtual int rewrite(const TMask& m);
|
||||||
int write_giacenze(TSheet_field& sheet_giac, const char tipocf, const long codcf, const TString& codart, const int annoes);
|
int find_codindsp(TSheet_field& s,const int codindsp) const;
|
||||||
|
int write_giacenze(const TMask& m);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual TRelation *get_relation() const { return _rel; }
|
virtual TRelation *get_relation() const { return _rel; }
|
||||||
@ -269,17 +282,20 @@ public:
|
|||||||
virtual ~TClifo_giac() {}
|
virtual ~TClifo_giac() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
//-------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Metodo comune per riempire un recordset
|
// Metodo comune per riempire una stringa da usare come query nei vari recset
|
||||||
//-------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
TISAM_recordset TClifo_giac::recset_giacenze(const char tipocf, const long codcf, const TString& codart, const int annoes)
|
TString TClifo_giac::query_giacenze(const TMask& m)
|
||||||
{
|
{
|
||||||
TISAM_recordset giacenze("USE CLIFOGIAC\nSELECT CODART=#CODART\nFROM TIPOCF=#TIPOCF CODCF=#CODCF ANNOES=#ANNOES\nTO TIPOCF=#TIPOCF CODCF=#CODCF ANNOES=#ANNOES");
|
const char tipocf = m.get(F_TIPOCF)[0];
|
||||||
giacenze.set_var("#CODART", TVariant(codart));
|
const long codcf = m.get_long(F_CODCF);
|
||||||
TString4 str_tipocf; str_tipocf << tipocf;
|
const TString80 codart = m.get(F_CODART);
|
||||||
giacenze.set_var("#TIPOCF", TVariant(str_tipocf));
|
const int annoes = m.get_int(F_ANNOES);
|
||||||
giacenze.set_var("#CODCF", codcf);
|
|
||||||
giacenze.set_var("#ANNOES", (long)annoes);
|
TString& giacenze = get_tmp_string();
|
||||||
|
giacenze << "USE CLIFOGIAC KEY 3\n"
|
||||||
|
<< "\nFROM ANNOES=" << annoes << " CODART=" << codart << " TIPOCF=" << tipocf << " CODCF=" << codcf
|
||||||
|
<< "\nTO ANNOES=" << annoes << " CODART=" << codart << " TIPOCF=" << tipocf << " CODCF=" << codcf ;
|
||||||
|
|
||||||
return giacenze;
|
return giacenze;
|
||||||
}
|
}
|
||||||
@ -288,14 +304,13 @@ TISAM_recordset TClifo_giac::recset_giacenze(const char tipocf, const long codcf
|
|||||||
// Metodi READ
|
// Metodi READ
|
||||||
//------------------
|
//------------------
|
||||||
//FILL_GIACENZE: metodo x riempire lo sheet della maschera con tutti i record che soddisfano la chiave incompleta
|
//FILL_GIACENZE: metodo x riempire lo sheet della maschera con tutti i record che soddisfano la chiave incompleta
|
||||||
void TClifo_giac::fill_giacenze(const char tipocf, const long codcf, const TString& codart, const int annoes)
|
void TClifo_giac::fill_giacenze(const TMask& m)
|
||||||
{
|
{
|
||||||
//e usiamo 'sti recordset che sono comodi e capibili...quasi
|
TISAM_recordset giacenze(query_giacenze(m));
|
||||||
TISAM_recordset giacenze = recset_giacenze(tipocf, codcf, codart, annoes);
|
int items = giacenze.items();
|
||||||
|
|
||||||
TProgind pi(giacenze.items(), TR("Ricerca giacenze per indirizzo di spedizione..."), true, true);
|
//riempie lo sheet con i record che soddisfano la chiave parziale applicata per avere il recordset
|
||||||
|
TSheet_field& sheet = m.sfield(F_SHEETGIAC);
|
||||||
TSheet_field& sheet = _msk->sfield(F_SHEETGIAC);
|
|
||||||
TMask& sheetmask = sheet.sheet_mask();
|
TMask& sheetmask = sheet.sheet_mask();
|
||||||
TRelation& rel = *giacenze.cursor()->relation(); //accesso alle righe
|
TRelation& rel = *giacenze.cursor()->relation(); //accesso alle righe
|
||||||
|
|
||||||
@ -304,10 +319,7 @@ void TClifo_giac::fill_giacenze(const char tipocf, const long codcf, const TStri
|
|||||||
if (giacenze.items() > 0)
|
if (giacenze.items() > 0)
|
||||||
{
|
{
|
||||||
for (bool ok = giacenze.move_first(); ok; ok = giacenze.move_next())
|
for (bool ok = giacenze.move_first(); ok; ok = giacenze.move_next())
|
||||||
{
|
{
|
||||||
if (!pi.addstatus(1))
|
|
||||||
break;
|
|
||||||
|
|
||||||
TToken_string& row = sheet.row(-1); //crea una nuova riga dello sheet
|
TToken_string& row = sheet.row(-1); //crea una nuova riga dello sheet
|
||||||
|
|
||||||
//scandisco nella maschera tutti i campi che hanno un field
|
//scandisco nella maschera tutti i campi che hanno un field
|
||||||
@ -319,41 +331,88 @@ void TClifo_giac::fill_giacenze(const char tipocf, const long codcf, const TStri
|
|||||||
}
|
}
|
||||||
sheet.check_row(sheet.items()-1); //fa fare alla maschera la decodifica dei codici e aggiorna la TToken_string
|
sheet.check_row(sheet.items()-1); //fa fare alla maschera la decodifica dei codici e aggiorna la TToken_string
|
||||||
}
|
}
|
||||||
sheet.force_update(); //forza l'update dello sheet, in modo da rendere visibili i cambiamneti fatti
|
sheet.force_update(); //forza l'update dello sheet, in modo da rendere visibili i cambiamenti fatti
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool TClifo_giac::find(word key)
|
||||||
|
{
|
||||||
|
bool ok = false;
|
||||||
|
const char tipocf = _msk->get(F_TIPOCF)[0];
|
||||||
|
const long codcf = _msk->get_long(F_CODCF);
|
||||||
|
const TString80 codart = _msk->get(F_CODART);
|
||||||
|
const int annoes = _msk->get_int(F_ANNOES);
|
||||||
|
|
||||||
|
TLocalisamfile clifogiac(LF_CLIFOGIAC);
|
||||||
|
|
||||||
|
clifogiac.put(CLIFOGIAC_ANNOES, annoes);
|
||||||
|
clifogiac.put(CLIFOGIAC_CODART, codart);
|
||||||
|
clifogiac.put(CLIFOGIAC_TIPOCF, tipocf);
|
||||||
|
clifogiac.put(CLIFOGIAC_CODCF, codcf);
|
||||||
|
|
||||||
|
clifogiac.setkey(3);
|
||||||
|
|
||||||
|
ok = clifogiac.read(_isgteq) == NOERR;
|
||||||
|
|
||||||
|
return ok;
|
||||||
|
}
|
||||||
|
|
||||||
int TClifo_giac::read(TMask& m)
|
int TClifo_giac::read(TMask& m)
|
||||||
{
|
{
|
||||||
// int err = TRelation_application::read(m);
|
fill_giacenze(m);
|
||||||
// return err;
|
|
||||||
|
|
||||||
//recupero i dati della testata
|
|
||||||
const char tipocf = m.get(F_TIPOCF)[0];
|
|
||||||
const long codcf = m.get_long(F_CODCF);
|
|
||||||
const TString80 codart = m.get(F_CODART);
|
|
||||||
const int annoes = m.get_int(F_ANNOES);
|
|
||||||
|
|
||||||
fill_giacenze(tipocf, codcf, codart, annoes);
|
|
||||||
|
|
||||||
return NOERR;
|
return NOERR;
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------
|
//------------------
|
||||||
// Metodi WRITE
|
// Metodi WRITE
|
||||||
//------------------
|
//------------------
|
||||||
//WRITE_GIACENZE:scrive i dati sul file 166 (CLIFOGIAC)
|
int TClifo_giac::find_codindsp(TSheet_field& s,const int codindsp) const
|
||||||
int TClifo_giac::write_giacenze(TSheet_field& sheet_giac, const char tipocf, const long codcf, const TString& codart,
|
|
||||||
const int annoes)
|
|
||||||
{
|
{
|
||||||
TISAM_recordset giacenze = recset_giacenze(tipocf, codcf, codart, annoes);
|
int r=-1;
|
||||||
int items = giacenze.items();
|
|
||||||
|
//per ogni riga dello sheet, legge codindsp,
|
||||||
|
//e se esiste interrompe restituendo un valore positivo,
|
||||||
|
//se no arriva fino in fondo e resituisci -1
|
||||||
|
for (r = s.items()-1; r >= 0; r--)
|
||||||
|
{
|
||||||
|
const int indsped = s.row(r).get_int(s.cid2index(F_INDSPED));
|
||||||
|
|
||||||
|
if (codindsp == indsped)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
//WRITE_GIACENZE:scrive i dati sul file 166 (CLIFOGIAC)
|
||||||
|
int TClifo_giac::write_giacenze(const TMask& m)
|
||||||
|
{
|
||||||
|
TISAM_recordset giacenze(query_giacenze(m));
|
||||||
int err = NOERR;
|
int err = NOERR;
|
||||||
|
|
||||||
TLocalisamfile& clifogiac = giacenze.cursor()->file();
|
TLocalisamfile& clifogiac = giacenze.cursor()->file();
|
||||||
|
|
||||||
//Maschera di sheet
|
//si prende lo sheet sulla maschera principale...
|
||||||
|
TSheet_field& sheet_giac = m.sfield(F_SHEETGIAC);
|
||||||
|
|
||||||
|
//per ogni riga del recordset
|
||||||
|
for (bool ok = giacenze.move_first(); ok; ok = giacenze.move_next())
|
||||||
|
{
|
||||||
|
//leggo indirizzo spedizione unico campo chiave sulla riga dello sheet
|
||||||
|
const int codindsp = giacenze.get(CLIFOGIAC_INDSPED).as_int();
|
||||||
|
|
||||||
|
//tutte le righe del TISAM_recordset che NON SONO nel TRecord_array vanno eliminate dal file
|
||||||
|
if (find_codindsp(sheet_giac, codindsp) < 0)
|
||||||
|
clifogiac.remove();
|
||||||
|
}
|
||||||
|
|
||||||
|
//prende i dati dalla maschera principale
|
||||||
|
const char tipocf = m.get(F_TIPOCF)[0];
|
||||||
|
const long codcf = m.get_long(F_CODCF);
|
||||||
|
const TString80 codart = m.get(F_CODART);
|
||||||
|
const int annoes = m.get_int(F_ANNOES);
|
||||||
|
|
||||||
|
//..e quindi la maschera di sheet
|
||||||
TMask& msk = sheet_giac.sheet_mask();
|
TMask& msk = sheet_giac.sheet_mask();
|
||||||
|
|
||||||
//per ogni riga dello sheet
|
//per ogni riga dello sheet
|
||||||
@ -390,32 +449,12 @@ int TClifo_giac::write_giacenze(TSheet_field& sheet_giac, const char tipocf, con
|
|||||||
|
|
||||||
int TClifo_giac::write(const TMask& m)
|
int TClifo_giac::write(const TMask& m)
|
||||||
{
|
{
|
||||||
//int err = TRelation_application::write(m);
|
return write_giacenze(m);
|
||||||
//return err;
|
|
||||||
|
|
||||||
const char tipocf = m.get(F_TIPOCF)[0];
|
|
||||||
const long codcf = m.get_long(F_CODCF);
|
|
||||||
const TString80 codart = m.get(F_CODART);
|
|
||||||
const int annoes = m.get_int(F_ANNOES);
|
|
||||||
|
|
||||||
TSheet_field& sheet_giac = m.sfield(F_SHEETGIAC);
|
|
||||||
|
|
||||||
return write_giacenze(sheet_giac, tipocf, codcf, codart, annoes);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int TClifo_giac::rewrite(const TMask& m)
|
int TClifo_giac::rewrite(const TMask& m)
|
||||||
{
|
{
|
||||||
//int err = TRelation_application::rewrite(m);
|
return write_giacenze(m);
|
||||||
//return err;
|
|
||||||
|
|
||||||
const char tipocf = m.get(F_TIPOCF)[0];
|
|
||||||
const long codcf = m.get_long(F_CODCF);
|
|
||||||
const TString80 codart = m.get(F_CODART);
|
|
||||||
const int annoes = m.get_int(F_ANNOES);
|
|
||||||
|
|
||||||
TSheet_field& sheet_giac = m.sfield(F_SHEETGIAC);
|
|
||||||
|
|
||||||
return write_giacenze(sheet_giac, tipocf, codcf, codart, annoes);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------
|
//------------------
|
||||||
@ -424,8 +463,11 @@ int TClifo_giac::rewrite(const TMask& m)
|
|||||||
//REMOVE_GIACENZE: elimina tutte le righe dello sheet per il clifo,l'articolo e l'anno passati
|
//REMOVE_GIACENZE: elimina tutte le righe dello sheet per il clifo,l'articolo e l'anno passati
|
||||||
int TClifo_giac::remove_giacenze(const char tipocf, const long codcf, const TString& codart, const int annoes)
|
int TClifo_giac::remove_giacenze(const char tipocf, const long codcf, const TString& codart, const int annoes)
|
||||||
{
|
{
|
||||||
TISAM_recordset giacenze = recset_giacenze(tipocf, codcf, codart, annoes);
|
TString query_giacenze;
|
||||||
int items = giacenze.items();
|
query_giacenze << "USE CLIFOGIAC KEY 3\n"
|
||||||
|
<< "\nFROM ANNOES=" << annoes << " CODART=" << codart << " TIPOCF=" << tipocf << " CODCF=" << codcf
|
||||||
|
<< "\nTO ANNOES=" << annoes << " CODART=" << codart << " TIPOCF=" << tipocf << " CODCF=" << codcf ;
|
||||||
|
TISAM_recordset giacenze(query_giacenze);
|
||||||
int err = NOERR;
|
int err = NOERR;
|
||||||
|
|
||||||
//l'accoppamento delle righe va fatto proprio sul file, quindi sotto con il localisamfile..
|
//l'accoppamento delle righe va fatto proprio sul file, quindi sotto con il localisamfile..
|
||||||
@ -440,18 +482,13 @@ int TClifo_giac::remove_giacenze(const char tipocf, const long codcf, const TStr
|
|||||||
}
|
}
|
||||||
bool TClifo_giac::remove()
|
bool TClifo_giac::remove()
|
||||||
{
|
{
|
||||||
//bool ok = TRelation_application::remove();
|
|
||||||
//return ok;
|
|
||||||
|
|
||||||
//recupero i dati della testata
|
//recupero i dati della testata
|
||||||
const char tipocf = _msk->get(F_TIPOCF)[0];
|
const TRectype rec = _rel->curr();
|
||||||
const long codcf = _msk->get_long(F_CODCF);
|
const char tipocf = rec.get_char(CLIFOGIAC_TIPOCF);
|
||||||
const TString80 codart = _msk->get(F_CODART);
|
const long codcf = rec.get_long(CLIFOGIAC_CODCF);
|
||||||
const int annoes = _msk->get_int(F_ANNOES);
|
const TString80 codart = rec.get(CLIFOGIAC_CODART);
|
||||||
|
const int annoes = rec.get_int(CLIFOGIAC_ANNOES);
|
||||||
|
|
||||||
//variabili per lavorare sugli sheet
|
|
||||||
TSheet_field& sheet_giac = _msk->sfield(F_SHEETGIAC);
|
|
||||||
|
|
||||||
return remove_giacenze(tipocf, codcf, codart, annoes) > 0;
|
return remove_giacenze(tipocf, codcf, codart, annoes) > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -461,9 +498,14 @@ bool TClifo_giac::remove()
|
|||||||
bool TClifo_giac::user_create()
|
bool TClifo_giac::user_create()
|
||||||
{
|
{
|
||||||
_rel = new TRelation(LF_CLIFOGIAC);
|
_rel = new TRelation(LF_CLIFOGIAC);
|
||||||
|
|
||||||
_msk = new TClifo_giac_mask(_rel);
|
_msk = new TClifo_giac_mask(_rel);
|
||||||
|
|
||||||
|
const bool gestmag = _msk->magazzini().gestmag();
|
||||||
|
if (!gestmag)
|
||||||
|
{
|
||||||
|
return error_box(TR("Per utilizzare questo programma e' NECESSARIO attivare la Gestione del magazzino!"));
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
64
mg/mg0400a.h
64
mg/mg0400a.h
@ -21,41 +21,39 @@
|
|||||||
#define F_LOTTORIOR 110
|
#define F_LOTTORIOR 110
|
||||||
#define F_LOTTOIRIOR 111
|
#define F_LOTTOIRIOR 111
|
||||||
#define F_GIORNIRIOR 112
|
#define F_GIORNIRIOR 112
|
||||||
#define F_GIAC 113
|
#define F_GIAC 113
|
||||||
#define F_VALGIAC 114
|
#define F_VALGIAC 114
|
||||||
#define F_RIM 115
|
#define F_RIM 115
|
||||||
#define F_VRIM 116
|
#define F_VRIM 116
|
||||||
#define F_ACQ 117
|
#define F_ACQ 117
|
||||||
#define F_VACQ 118
|
#define F_VACQ 118
|
||||||
#define F_ENTR 119
|
#define F_ENTR 119
|
||||||
#define F_VENTR 120
|
#define F_VENTR 120
|
||||||
#define F_VEN 121
|
#define F_VEN 121
|
||||||
#define F_VVEN 122
|
#define F_VVEN 122
|
||||||
#define F_USC 123
|
#define F_USC 123
|
||||||
#define F_VUSC 124
|
#define F_VUSC 124
|
||||||
#define F_ORDF 125
|
#define F_ORDF 125
|
||||||
#define F_VORDF 126
|
#define F_VORDF 126
|
||||||
#define F_ORDC 127
|
#define F_ORDC 127
|
||||||
#define F_VORDC 128
|
#define F_VORDC 128
|
||||||
#define F_SCARTI 129
|
#define F_SCARTI 129
|
||||||
#define F_VSCARTI 130
|
#define F_VSCARTI 130
|
||||||
#define F_INPRODC 131
|
#define F_INPRODC 131
|
||||||
#define F_INPRODF 132
|
#define F_INPRODF 132
|
||||||
#define F_ACL 133
|
#define F_ACL 133
|
||||||
#define F_INCL 134
|
#define F_INCL 134
|
||||||
#define F_LABELS 135
|
#define F_LABELS 135
|
||||||
#define F_NDIST 136
|
#define F_NDIST 136
|
||||||
|
|
||||||
// colonne non visibili dello Sheet
|
// colonne non visibili dello Sheet
|
||||||
#define F_UBICAZD 154
|
#define F_UBICAZD 154
|
||||||
#define F_DESL1 155
|
#define F_DESL1 155
|
||||||
#define F_DESL2 156
|
#define F_DESL2 156
|
||||||
#define F_DESL3 157
|
#define F_DESL3 157
|
||||||
#define F_DESL4 158
|
#define F_DESL4 158
|
||||||
|
|
||||||
// campi richiesti da quei rompicazzo di Xfirpo
|
// campi richiesti da quei rompicazzo di Xfirpo
|
||||||
#define F_CODARTR 159
|
#define F_CODARTR 159
|
||||||
#define F_DESCRR 160
|
#define F_DESCRR 160
|
||||||
|
|
||||||
// campi doppi
|
|
||||||
#define F_UBICAZ2 207
|
|
||||||
|
@ -107,6 +107,7 @@ BEGIN
|
|||||||
ITEM "Liv3@10"
|
ITEM "Liv3@10"
|
||||||
ITEM "Liv4@10"
|
ITEM "Liv4@10"
|
||||||
ITEM "Data rif.@10"
|
ITEM "Data rif.@10"
|
||||||
|
ITEM "Ubicazione"
|
||||||
ITEM "Livello rior.@10"
|
ITEM "Livello rior.@10"
|
||||||
ITEM "Scorta min.@10"
|
ITEM "Scorta min.@10"
|
||||||
ITEM "Lotto rior.@10"
|
ITEM "Lotto rior.@10"
|
||||||
@ -254,25 +255,18 @@ BEGIN
|
|||||||
FIELD DATARIF
|
FIELD DATARIF
|
||||||
END
|
END
|
||||||
|
|
||||||
// ubicazione introdotta da tabella ubicazioni
|
//ubicazione introdotta da tabella ubicazioni (accensione/spegnimento gestito da programma)
|
||||||
STRING F_UBICAZ 10
|
STRING F_UBICAZ 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 2 4 "Ubicazione "
|
PROMPT 2 4 "Ubicazione "
|
||||||
FIELD UBICAZ
|
|
||||||
USE UBI
|
USE UBI
|
||||||
INPUT CODTAB F_UBICAZ
|
INPUT CODTAB F_UBICAZ
|
||||||
DISPLAY "Codice" CODTAB[1,3]
|
DISPLAY "Codice" CODTAB
|
||||||
DISPLAY "Ubicazione@50 " S0
|
DISPLAY "Ubicazione@50 " S0
|
||||||
OUTPUT F_UBICAZ CODTAB
|
OUTPUT F_UBICAZ CODTAB
|
||||||
OUTPUT F_UBICAZD S0
|
OUTPUT F_UBICAZD S0
|
||||||
CHECKTYPE NORMAL
|
CHECKTYPE NORMAL
|
||||||
STR_EXPR (#F_UBICAZ[4,10]=="")
|
FLAGS "Z"
|
||||||
END
|
|
||||||
|
|
||||||
// ubicazione introdotta direttamente o da tabella
|
|
||||||
STRING F_UBICAZ2 10
|
|
||||||
BEGIN
|
|
||||||
PROMPT 2 4 "Ubicazione "
|
|
||||||
FIELD UBICAZ
|
FIELD UBICAZ
|
||||||
END
|
END
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user