Patch level : 10.0 patch ???
Files correlati : lb1 lv3 lvlib Ricompilazione Demo : [ ] Commento : Correzioni segnalazioni di Paolo sugli inventari git-svn-id: svn://10.65.10.50/trunk@20475 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
cf53c80c30
commit
4bfbd0884a
@ -5,6 +5,7 @@
|
|||||||
#include <reprint.h>
|
#include <reprint.h>
|
||||||
|
|
||||||
#include "lv1300a.h"
|
#include "lv1300a.h"
|
||||||
|
#include "lvlib.h"
|
||||||
#include "../ve/velib.h"
|
#include "../ve/velib.h"
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
@ -106,11 +107,77 @@ class TStampa_inv_app: public TSkeleton_application
|
|||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
virtual void main_loop();
|
virtual void main_loop();
|
||||||
void elabora(const TMask& mask, const char action) const;
|
void sistema_magazzino_pacchi(TAssoc_array& documenti);
|
||||||
|
void elabora(const TMask& mask, const char action);
|
||||||
};
|
};
|
||||||
|
|
||||||
void TStampa_inv_app::elabora(const TMask& mask, const char action) const
|
//SISTEMA_MAGAZZINO_PACCHImetodo che sistema l'elenco dei pacchi,
|
||||||
|
//eliminando quelli che effettivamente non ci sono
|
||||||
|
void TStampa_inv_app::sistema_magazzino_pacchi(TAssoc_array& documenti)
|
||||||
{
|
{
|
||||||
|
TLocalisamfile pacchi(LF_PACCHI);
|
||||||
|
TAssoc_array arpacchi;
|
||||||
|
|
||||||
|
//Scorro tutti i documenti che sto stampando; per ognuno recupero l'elenco dei pacchi
|
||||||
|
//pistolati raggruppandoli per codart
|
||||||
|
FOR_EACH_ASSOC_OBJECT(documenti, obj, key, itm)
|
||||||
|
{
|
||||||
|
TDoc_key kdoc(key);
|
||||||
|
|
||||||
|
TDoc_inventario inv(kdoc);
|
||||||
|
for (int i = 1; i <= inv.rows(); i++)
|
||||||
|
{
|
||||||
|
TDoc_inventario_row rinv(inv[i]);
|
||||||
|
const TString& codart = rinv.codart();
|
||||||
|
const TToken_string& codpacchi = rinv.cod_pacchi();
|
||||||
|
|
||||||
|
if(arpacchi.is_key(codart))
|
||||||
|
{
|
||||||
|
TToken_string& tmp = *(TToken_string*)arpacchi.objptr(codart);
|
||||||
|
tmp.add(codpacchi);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
arpacchi.add(codart, codpacchi);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//scorro l'elenco dei pacchi che mi sono appena costruito, separando i vari codioci dei pacchi
|
||||||
|
FOR_EACH_ASSOC_OBJECT(arpacchi, obj1, key1, itm1)
|
||||||
|
{
|
||||||
|
TAssoc_array pa;
|
||||||
|
TString16 codart(key1);
|
||||||
|
TToken_string& codpacchi = *(TToken_string*)arpacchi.objptr(codart);
|
||||||
|
|
||||||
|
//separo i vari codici dei pacchi
|
||||||
|
for(int i = 0; i < codpacchi.items(); i++)
|
||||||
|
{
|
||||||
|
TString16 str = codpacchi.get(i);
|
||||||
|
pa.add(str, str);
|
||||||
|
}
|
||||||
|
|
||||||
|
//cerco tutti i pacchi a magazzino di un codart
|
||||||
|
TString query;
|
||||||
|
query << "USE PACCHI KEY 3\n"
|
||||||
|
<< "SELECT (NDOC=0)&&(CODCF=0)&&(MGNUMREG>0)\n"
|
||||||
|
<< "FROM CODART=\"" << codart << "\"\n"
|
||||||
|
<< "TO CODART=\"" << codart << "\"\n";
|
||||||
|
TISAM_recordset paxcodart(query);
|
||||||
|
|
||||||
|
//elimino i pacchi che non sono stati pistolati
|
||||||
|
for(bool ok = paxcodart.move_first(); ok; ok = paxcodart.move_next())
|
||||||
|
{
|
||||||
|
TRiga_pacco rp(paxcodart.cursor()->curr());
|
||||||
|
if(!pa.is_key(rp.codpacco()))
|
||||||
|
rp.remove(pacchi);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pacchi.rewrite();
|
||||||
|
}
|
||||||
|
|
||||||
|
void TStampa_inv_app::elabora(const TMask& mask, const char action)
|
||||||
|
{
|
||||||
|
const char defono = mask.get_bool(F_STAMPADEF) ? 'D' : 'P';
|
||||||
|
TAssoc_array documenti;
|
||||||
TStampa_inv_set inventari(mask);
|
TStampa_inv_set inventari(mask);
|
||||||
|
|
||||||
TCursor* c = inventari.cursor();
|
TCursor* c = inventari.cursor();
|
||||||
@ -133,7 +200,7 @@ void TStampa_inv_app::elabora(const TMask& mask, const char action) const
|
|||||||
ofstream outf(tmp);
|
ofstream outf(tmp);
|
||||||
outf << "[Transaction]" << endl; // Transaction header
|
outf << "[Transaction]" << endl; // Transaction header
|
||||||
outf << "Action=" << action << endl; // 'S'tampa o 'A'nteprima
|
outf << "Action=" << action << endl; // 'S'tampa o 'A'nteprima
|
||||||
outf << "Mode=D" << endl; // Definitive (always?)
|
outf << "Mode=" << defono << endl; // 'D'efinitivo o 'P'rovvisorio
|
||||||
outf << "NoPrintDlg=X" << endl; // Dont' prompt the user with the print dialog
|
outf << "NoPrintDlg=X" << endl; // Dont' prompt the user with the print dialog
|
||||||
outf << endl;
|
outf << endl;
|
||||||
outf << "[33]" << endl; // Transaction body
|
outf << "[33]" << endl; // Transaction body
|
||||||
@ -142,6 +209,8 @@ void TStampa_inv_app::elabora(const TMask& mask, const char action) const
|
|||||||
{
|
{
|
||||||
outf << "Doc(" << (nx++) << ")=";
|
outf << "Doc(" << (nx++) << ")=";
|
||||||
outf << chiavedoc << row->get(1) << endl;
|
outf << chiavedoc << row->get(1) << endl;
|
||||||
|
TDoc_key kdoc(data_from.year(), cod_num, row->get_int(1));
|
||||||
|
documenti.add(kdoc, kdoc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -152,6 +221,9 @@ void TStampa_inv_app::elabora(const TMask& mask, const char action) const
|
|||||||
app.run();
|
app.run();
|
||||||
tmp.fremove();
|
tmp.fremove();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!documenti.empty() && mask.get_bool(F_STAMPADEF))
|
||||||
|
sistema_magazzino_pacchi(documenti);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,3 +9,4 @@
|
|||||||
#define F_ANDOC 208
|
#define F_ANDOC 208
|
||||||
#define F_DADATA 209
|
#define F_DADATA 209
|
||||||
#define F_ADATA 210
|
#define F_ADATA 210
|
||||||
|
#define F_STAMPADEF 211
|
@ -137,6 +137,11 @@ BEGIN
|
|||||||
WARNING "La data finale deve essere successiva a quella iniziale"
|
WARNING "La data finale deve essere successiva a quella iniziale"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
BOOLEAN F_STAMPADEF
|
||||||
|
BEGIN
|
||||||
|
PROMPT 48 10 "Stampa in definitiva"
|
||||||
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
ENDMASK
|
ENDMASK
|
||||||
|
225
lv/lv3700.cpp
225
lv/lv3700.cpp
@ -5,217 +5,6 @@
|
|||||||
#include "lvlib.h"
|
#include "lvlib.h"
|
||||||
|
|
||||||
#include "lv3700a.h"
|
#include "lv3700a.h"
|
||||||
|
|
||||||
///////////////////////////////////
|
|
||||||
//// TDOC_INVENTARIO_ROW ////
|
|
||||||
///////////////////////////////////
|
|
||||||
|
|
||||||
//Classe TDoc_inventario_row
|
|
||||||
class TDoc_inventario_row: public TObject
|
|
||||||
{
|
|
||||||
TRiga_documento& _rinv;
|
|
||||||
public:
|
|
||||||
const TString& codart() const;
|
|
||||||
const TString& desart() const;
|
|
||||||
const real qta() const;
|
|
||||||
const TString& um() const;
|
|
||||||
const int num_pacchi() const;
|
|
||||||
const TToken_string& cod_pacchi() const;
|
|
||||||
const TString& magazzino() const;
|
|
||||||
const TString& magazzinoc() const;
|
|
||||||
|
|
||||||
void set_codart(const char* codart);
|
|
||||||
void set_desart(const TString& desart);
|
|
||||||
void set_qta(const real qta);
|
|
||||||
void set_um(const char* um);
|
|
||||||
void set_num_pacchi(const int numpacchi);
|
|
||||||
void set_cod_pacchi(const char* codpacchi);
|
|
||||||
void set_magazzino(const char* mag);
|
|
||||||
void set_magazzinoc(const char* magc);
|
|
||||||
|
|
||||||
TDoc_inventario_row(TRiga_documento& rinv):_rinv(rinv){}
|
|
||||||
};
|
|
||||||
|
|
||||||
//CODART: metodo che restituisce il codice articolo della riga documento
|
|
||||||
const TString& TDoc_inventario_row::codart() const
|
|
||||||
{
|
|
||||||
return _rinv.get(RDOC_CODART);
|
|
||||||
}
|
|
||||||
|
|
||||||
//DESART: metodo che restiruisce la descrizione dell'articolo
|
|
||||||
const TString& TDoc_inventario_row::desart() const
|
|
||||||
{
|
|
||||||
TString& str = get_tmp_string();
|
|
||||||
str = _rinv.get(RDOC_DESCR);
|
|
||||||
|
|
||||||
if (_rinv.get_bool(RDOC_DESCLUNGA))
|
|
||||||
str << _rinv.get(RDOC_DESCEST);
|
|
||||||
|
|
||||||
return str;
|
|
||||||
}
|
|
||||||
|
|
||||||
//QTA: metodo che restiruisce la quantità salvata sulla riga
|
|
||||||
const real TDoc_inventario_row::qta() const
|
|
||||||
{
|
|
||||||
return _rinv.get_real(RDOC_QTA);
|
|
||||||
}
|
|
||||||
|
|
||||||
//UM: metodo che restiruisce l'unità di misura utilizzata sulla riga documento
|
|
||||||
const TString& TDoc_inventario_row::um() const
|
|
||||||
{
|
|
||||||
return _rinv.get(RDOC_UMQTA);
|
|
||||||
}
|
|
||||||
|
|
||||||
//NUM_PACCHI: metodo che resituisce il numero dei pacchi presenti per quell'articolo
|
|
||||||
const int TDoc_inventario_row::num_pacchi() const
|
|
||||||
{
|
|
||||||
return _rinv.get_int(RDOC_NCOLLI);
|
|
||||||
}
|
|
||||||
|
|
||||||
//COD_PACCHI: metodo che restiuisce l'elenco dei pacchi salvati su quella riga
|
|
||||||
const TToken_string& TDoc_inventario_row::cod_pacchi() const
|
|
||||||
{
|
|
||||||
TToken_string& tmp = get_tmp_string();
|
|
||||||
tmp = _rinv.get("CODPACCHI");
|
|
||||||
|
|
||||||
return tmp;
|
|
||||||
}
|
|
||||||
|
|
||||||
//MAGAZZINO: metodo che restituisce il codice del magazzino/deposito
|
|
||||||
const TString& TDoc_inventario_row::magazzino() const
|
|
||||||
{
|
|
||||||
return _rinv.get(RDOC_CODMAG);
|
|
||||||
}
|
|
||||||
|
|
||||||
//MAGAZZINOC: metodo che restituisce il codice del magazzino/deposito collegato
|
|
||||||
const TString& TDoc_inventario_row::magazzinoc() const
|
|
||||||
{
|
|
||||||
return _rinv.get(RDOC_CODMAGC);
|
|
||||||
}
|
|
||||||
|
|
||||||
//SET_CODART: metodo che setta il codice articolo
|
|
||||||
void TDoc_inventario_row::set_codart(const char* codart)
|
|
||||||
{
|
|
||||||
_rinv.put(RDOC_CODART, codart);
|
|
||||||
_rinv.put(RDOC_CODARTMAG, codart);
|
|
||||||
}
|
|
||||||
|
|
||||||
//SET_DESART: metodo che setta la descrizione
|
|
||||||
void TDoc_inventario_row::set_desart(const TString& desart)
|
|
||||||
{
|
|
||||||
if (desart.len() > 50)
|
|
||||||
{
|
|
||||||
_rinv.put(RDOC_DESCR, desart.left(50));
|
|
||||||
_rinv.put(RDOC_DESCLUNGA, true);
|
|
||||||
_rinv.put(RDOC_DESCEST, desart.mid(50));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
_rinv.put(RDOC_DESCR, desart);
|
|
||||||
}
|
|
||||||
|
|
||||||
//SET_QTA_RITIRATA: metodo che setta la quantità ritirata sulla riga
|
|
||||||
void TDoc_inventario_row::set_qta(const real qta)
|
|
||||||
{
|
|
||||||
_rinv.put(RDOC_QTA, qta);
|
|
||||||
}
|
|
||||||
|
|
||||||
//SET_UM: metodo che setta l'unità di misura
|
|
||||||
void TDoc_inventario_row::set_um(const char* um)
|
|
||||||
{
|
|
||||||
_rinv.put(RDOC_UMQTA, um);
|
|
||||||
}
|
|
||||||
|
|
||||||
//SET_NUM_PACCHI: metodo che setta il numero dei pacchi
|
|
||||||
void TDoc_inventario_row::set_num_pacchi(const int numpacchi)
|
|
||||||
{
|
|
||||||
_rinv.put(RDOC_NCOLLI, numpacchi);
|
|
||||||
}
|
|
||||||
|
|
||||||
//SET_COD_PACCHI: metodo che setta l'elenco dei pacchi salvati su quella riga
|
|
||||||
void TDoc_inventario_row::set_cod_pacchi(const char* codpacchi)
|
|
||||||
{
|
|
||||||
_rinv.put("CODPACCHI", codpacchi);
|
|
||||||
}
|
|
||||||
|
|
||||||
//SET_MAGAZZINO: metodo che setta il codice del magazzino/deposito
|
|
||||||
void TDoc_inventario_row::set_magazzino(const char* mag)
|
|
||||||
{
|
|
||||||
_rinv.put(RDOC_CODMAG, mag);
|
|
||||||
}
|
|
||||||
|
|
||||||
//SET_MAGAZZINOC: metodo che setta il codice del magazzino/deposito collegato
|
|
||||||
void TDoc_inventario_row::set_magazzinoc(const char* magc)
|
|
||||||
{
|
|
||||||
_rinv.put(RDOC_CODMAGC, magc);
|
|
||||||
}
|
|
||||||
|
|
||||||
///////////////////////////////
|
|
||||||
//// TDOC_INVENTARIO ////
|
|
||||||
///////////////////////////////
|
|
||||||
|
|
||||||
//Classe TDoc_inventario
|
|
||||||
class TDoc_inventario: public TDocumento
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
const TToken_string& chiave() const;
|
|
||||||
const TDate datadoc() const;
|
|
||||||
|
|
||||||
TDoc_inventario_row find_or_create_row(const char* codart);
|
|
||||||
|
|
||||||
void set_difinv(const bool difinv = true);
|
|
||||||
|
|
||||||
TDoc_inventario& operator= (const TDoc_inventario dinv){dinv;}
|
|
||||||
|
|
||||||
TDoc_inventario(TDoc_key& key): TDocumento(key.provv(), key.anno(), key.codnum(), key.ndoc()){};
|
|
||||||
TDoc_inventario(TDoc_inventario& dinv): TDocumento(dinv){};
|
|
||||||
};
|
|
||||||
|
|
||||||
//CHIAVE: metodo che restituisce la chiave del documento
|
|
||||||
const TToken_string& TDoc_inventario::chiave() const
|
|
||||||
{
|
|
||||||
TToken_string& k = get_tmp_string();
|
|
||||||
k.add(get(DOC_PROVV));
|
|
||||||
k.add(get(DOC_ANNO));
|
|
||||||
k.add(get(DOC_CODNUM));
|
|
||||||
k.add(get(DOC_NDOC));
|
|
||||||
return k;
|
|
||||||
}
|
|
||||||
|
|
||||||
//DATADOC: metodo che restiruisce la data documento
|
|
||||||
const TDate TDoc_inventario::datadoc() const
|
|
||||||
{
|
|
||||||
return get_date(DOC_DATADOC);
|
|
||||||
}
|
|
||||||
|
|
||||||
//FIND_OR_CREATE_ROW: metodo che cerca una riga con un certo codart e se non esiste la crea
|
|
||||||
TDoc_inventario_row TDoc_inventario::find_or_create_row(const char* codart)
|
|
||||||
{
|
|
||||||
//scorro tutte le righe documento; se ne trovo una con quel codart
|
|
||||||
//allora la restituisco
|
|
||||||
for(int i = 1; i <= rows(); i++)
|
|
||||||
{
|
|
||||||
TRiga_documento& row = (*(TDocumento*)this)[i];
|
|
||||||
const TString& cod = row.get(RDOC_CODART);
|
|
||||||
|
|
||||||
if(cod == codart)
|
|
||||||
{
|
|
||||||
TDoc_inventario_row rinv(row);
|
|
||||||
return rinv;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//se sono arrivato qui non ho trovato neanche una riga con quel codart;
|
|
||||||
//in queto caso ne aggiungo una
|
|
||||||
TRiga_documento& row = (*(TDocumento*)this).new_row("21");
|
|
||||||
TDoc_inventario_row rinv(row);
|
|
||||||
return rinv;
|
|
||||||
}
|
|
||||||
|
|
||||||
void TDoc_inventario::set_difinv(const bool difinv)
|
|
||||||
{
|
|
||||||
put("DIFFINV", difinv);
|
|
||||||
}
|
|
||||||
|
|
||||||
///////////////////////////////
|
///////////////////////////////
|
||||||
//// TPACCHI_CONTATI ////
|
//// TPACCHI_CONTATI ////
|
||||||
///////////////////////////////
|
///////////////////////////////
|
||||||
@ -513,6 +302,20 @@ void TInventario_ter_msk::inventario_da_terminale()
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
//leggo i dati di interesse dal pacco
|
//leggo i dati di interesse dal pacco
|
||||||
|
if(rp.is_associato())
|
||||||
|
{
|
||||||
|
warning_box(TR("Il pacco pistolato è un pacco a cliente"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
TToken_string tmp = rp.rigabolla();
|
||||||
|
if(tmp.get_long(3) > 0)
|
||||||
|
{
|
||||||
|
warning_box(TR("Il pacco pistolato è già associato a un buono"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
TString80 codart = rp.articolo();
|
TString80 codart = rp.articolo();
|
||||||
const real qtapacco = rp.quantita();
|
const real qtapacco = rp.quantita();
|
||||||
|
|
||||||
|
166
lv/lvlib.cpp
166
lv/lvlib.cpp
@ -1719,3 +1719,169 @@ bool TLV_report::set_recordset(const TString& sql)
|
|||||||
return TDocument_report::set_recordset(sql);
|
return TDocument_report::set_recordset(sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
///////////////////////////////
|
||||||
|
//// TDOC_INVENTARIO ////
|
||||||
|
///////////////////////////////
|
||||||
|
|
||||||
|
//CHIAVE: metodo che restituisce la chiave del documento
|
||||||
|
const TToken_string& TDoc_inventario::chiave() const
|
||||||
|
{
|
||||||
|
TToken_string& k = get_tmp_string();
|
||||||
|
k.add(get(DOC_PROVV));
|
||||||
|
k.add(get(DOC_ANNO));
|
||||||
|
k.add(get(DOC_CODNUM));
|
||||||
|
k.add(get(DOC_NDOC));
|
||||||
|
return k;
|
||||||
|
}
|
||||||
|
|
||||||
|
//DATADOC: metodo che restiruisce la data documento
|
||||||
|
const TDate TDoc_inventario::datadoc() const
|
||||||
|
{
|
||||||
|
return get_date(DOC_DATADOC);
|
||||||
|
}
|
||||||
|
|
||||||
|
//FIND_OR_CREATE_ROW: metodo che cerca una riga con un certo codart e se non esiste la crea
|
||||||
|
TDoc_inventario_row TDoc_inventario::find_or_create_row(const char* codart)
|
||||||
|
{
|
||||||
|
//scorro tutte le righe documento; se ne trovo una con quel codart
|
||||||
|
//allora la restituisco
|
||||||
|
for(int i = 1; i <= rows(); i++)
|
||||||
|
{
|
||||||
|
TRiga_documento& row = (*(TDocumento*)this)[i];
|
||||||
|
const TString& cod = row.get(RDOC_CODART);
|
||||||
|
|
||||||
|
if(cod == codart)
|
||||||
|
{
|
||||||
|
TDoc_inventario_row rinv(row);
|
||||||
|
return rinv;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//se sono arrivato qui non ho trovato neanche una riga con quel codart;
|
||||||
|
//in queto caso ne aggiungo una
|
||||||
|
TRiga_documento& row = (*(TDocumento*)this).new_row("21");
|
||||||
|
TDoc_inventario_row rinv(row);
|
||||||
|
return rinv;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TDoc_inventario::set_difinv(const bool difinv)
|
||||||
|
{
|
||||||
|
put("DIFFINV", difinv);
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////
|
||||||
|
//// TDOC_INVENTARIO_ROW ////
|
||||||
|
///////////////////////////////////
|
||||||
|
|
||||||
|
//CODART: metodo che restituisce il codice articolo della riga documento
|
||||||
|
const TString& TDoc_inventario_row::codart() const
|
||||||
|
{
|
||||||
|
return _rinv.get(RDOC_CODART);
|
||||||
|
}
|
||||||
|
|
||||||
|
//DESART: metodo che restiruisce la descrizione dell'articolo
|
||||||
|
const TString& TDoc_inventario_row::desart() const
|
||||||
|
{
|
||||||
|
TString& str = get_tmp_string();
|
||||||
|
str = _rinv.get(RDOC_DESCR);
|
||||||
|
|
||||||
|
if (_rinv.get_bool(RDOC_DESCLUNGA))
|
||||||
|
str << _rinv.get(RDOC_DESCEST);
|
||||||
|
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
//QTA: metodo che restiruisce la quantità salvata sulla riga
|
||||||
|
const real TDoc_inventario_row::qta() const
|
||||||
|
{
|
||||||
|
return _rinv.get_real(RDOC_QTA);
|
||||||
|
}
|
||||||
|
|
||||||
|
//UM: metodo che restiruisce l'unità di misura utilizzata sulla riga documento
|
||||||
|
const TString& TDoc_inventario_row::um() const
|
||||||
|
{
|
||||||
|
return _rinv.get(RDOC_UMQTA);
|
||||||
|
}
|
||||||
|
|
||||||
|
//NUM_PACCHI: metodo che resituisce il numero dei pacchi presenti per quell'articolo
|
||||||
|
const int TDoc_inventario_row::num_pacchi() const
|
||||||
|
{
|
||||||
|
return _rinv.get_int(RDOC_NCOLLI);
|
||||||
|
}
|
||||||
|
|
||||||
|
//COD_PACCHI: metodo che restiuisce l'elenco dei pacchi salvati su quella riga
|
||||||
|
const TToken_string& TDoc_inventario_row::cod_pacchi() const
|
||||||
|
{
|
||||||
|
TToken_string& tmp = get_tmp_string();
|
||||||
|
tmp = _rinv.get("CODPACCHI");
|
||||||
|
|
||||||
|
return tmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
//MAGAZZINO: metodo che restituisce il codice del magazzino/deposito
|
||||||
|
const TString& TDoc_inventario_row::magazzino() const
|
||||||
|
{
|
||||||
|
return _rinv.get(RDOC_CODMAG);
|
||||||
|
}
|
||||||
|
|
||||||
|
//MAGAZZINOC: metodo che restituisce il codice del magazzino/deposito collegato
|
||||||
|
const TString& TDoc_inventario_row::magazzinoc() const
|
||||||
|
{
|
||||||
|
return _rinv.get(RDOC_CODMAGC);
|
||||||
|
}
|
||||||
|
|
||||||
|
//SET_CODART: metodo che setta il codice articolo
|
||||||
|
void TDoc_inventario_row::set_codart(const char* codart)
|
||||||
|
{
|
||||||
|
_rinv.put(RDOC_CODART, codart);
|
||||||
|
_rinv.put(RDOC_CODARTMAG, codart);
|
||||||
|
}
|
||||||
|
|
||||||
|
//SET_DESART: metodo che setta la descrizione
|
||||||
|
void TDoc_inventario_row::set_desart(const TString& desart)
|
||||||
|
{
|
||||||
|
if (desart.len() > 50)
|
||||||
|
{
|
||||||
|
_rinv.put(RDOC_DESCR, desart.left(50));
|
||||||
|
_rinv.put(RDOC_DESCLUNGA, true);
|
||||||
|
_rinv.put(RDOC_DESCEST, desart.mid(50));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
_rinv.put(RDOC_DESCR, desart);
|
||||||
|
}
|
||||||
|
|
||||||
|
//SET_QTA_RITIRATA: metodo che setta la quantità ritirata sulla riga
|
||||||
|
void TDoc_inventario_row::set_qta(const real qta)
|
||||||
|
{
|
||||||
|
_rinv.put(RDOC_QTA, qta);
|
||||||
|
}
|
||||||
|
|
||||||
|
//SET_UM: metodo che setta l'unità di misura
|
||||||
|
void TDoc_inventario_row::set_um(const char* um)
|
||||||
|
{
|
||||||
|
_rinv.put(RDOC_UMQTA, um);
|
||||||
|
}
|
||||||
|
|
||||||
|
//SET_NUM_PACCHI: metodo che setta il numero dei pacchi
|
||||||
|
void TDoc_inventario_row::set_num_pacchi(const int numpacchi)
|
||||||
|
{
|
||||||
|
_rinv.put(RDOC_NCOLLI, numpacchi);
|
||||||
|
}
|
||||||
|
|
||||||
|
//SET_COD_PACCHI: metodo che setta l'elenco dei pacchi salvati su quella riga
|
||||||
|
void TDoc_inventario_row::set_cod_pacchi(const char* codpacchi)
|
||||||
|
{
|
||||||
|
_rinv.put("CODPACCHI", codpacchi);
|
||||||
|
}
|
||||||
|
|
||||||
|
//SET_MAGAZZINO: metodo che setta il codice del magazzino/deposito
|
||||||
|
void TDoc_inventario_row::set_magazzino(const char* mag)
|
||||||
|
{
|
||||||
|
_rinv.put(RDOC_CODMAG, mag);
|
||||||
|
}
|
||||||
|
|
||||||
|
//SET_MAGAZZINOC: metodo che setta il codice del magazzino/deposito collegato
|
||||||
|
void TDoc_inventario_row::set_magazzinoc(const char* magc)
|
||||||
|
{
|
||||||
|
_rinv.put(RDOC_CODMAGC, magc);
|
||||||
|
}
|
51
lv/lvlib.h
51
lv/lvlib.h
@ -403,4 +403,55 @@ public:
|
|||||||
virtual ~TLV_report() {}
|
virtual ~TLV_report() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
///////////////////////////////////
|
||||||
|
//// TDOC_INVENTARIO_ROW ////
|
||||||
|
///////////////////////////////////
|
||||||
|
|
||||||
|
//Classe TDoc_inventario_row
|
||||||
|
class TDoc_inventario_row: public TObject
|
||||||
|
{
|
||||||
|
TRiga_documento& _rinv;
|
||||||
|
public:
|
||||||
|
const TString& codart() const;
|
||||||
|
const TString& desart() const;
|
||||||
|
const real qta() const;
|
||||||
|
const TString& um() const;
|
||||||
|
const int num_pacchi() const;
|
||||||
|
const TToken_string& cod_pacchi() const;
|
||||||
|
const TString& magazzino() const;
|
||||||
|
const TString& magazzinoc() const;
|
||||||
|
|
||||||
|
void set_codart(const char* codart);
|
||||||
|
void set_desart(const TString& desart);
|
||||||
|
void set_qta(const real qta);
|
||||||
|
void set_um(const char* um);
|
||||||
|
void set_num_pacchi(const int numpacchi);
|
||||||
|
void set_cod_pacchi(const char* codpacchi);
|
||||||
|
void set_magazzino(const char* mag);
|
||||||
|
void set_magazzinoc(const char* magc);
|
||||||
|
|
||||||
|
TDoc_inventario_row(TRiga_documento& rinv):_rinv(rinv){}
|
||||||
|
};
|
||||||
|
|
||||||
|
///////////////////////////////
|
||||||
|
//// TDOC_INVENTARIO ////
|
||||||
|
///////////////////////////////
|
||||||
|
|
||||||
|
//Classe TDoc_inventario
|
||||||
|
class TDoc_inventario: public TDocumento
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
const TToken_string& chiave() const;
|
||||||
|
const TDate datadoc() const;
|
||||||
|
|
||||||
|
TDoc_inventario_row find_or_create_row(const char* codart);
|
||||||
|
|
||||||
|
void set_difinv(const bool difinv = true);
|
||||||
|
|
||||||
|
TDoc_inventario& operator= (const TDoc_inventario dinv){dinv;}
|
||||||
|
|
||||||
|
TDoc_inventario(TDoc_key& key): TDocumento(key.provv(), key.anno(), key.codnum(), key.ndoc()){};
|
||||||
|
TDoc_inventario(TDoc_inventario& dinv): TDocumento(dinv){};
|
||||||
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user