Modificato costruttore dei documenti

dio


git-svn-id: svn://10.65.10.50/trunk@3366 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1996-08-09 14:08:58 +00:00
parent db174ab6f9
commit 86cb5ce06d
2 changed files with 54 additions and 16 deletions

View File

@ -106,10 +106,10 @@ TDocumento::TDocumento()
{
}
TDocumento::TDocumento(const char* codnum, int anno, char provv, long numdoc)
TDocumento::TDocumento(char provv, int anno, const char* codnum, long numdoc)
: _head(LF_DOC), _rows(LF_RIGHEDOC, "NRIGA")
{
read(codnum, anno, provv, numdoc);
read(provv, anno, codnum, numdoc);
}
int TDocumento::read(const TRectype& rec)
@ -118,22 +118,24 @@ int TDocumento::read(const TRectype& rec)
TLocalisamfile doc(LF_DOC);
int err = _head.read(doc);
TRectype* key = new TRectype(LF_RIGHEDOC);
key->put("CODNUM", doc.get("CODNUM"));
key->put("ANNO", doc.get("ANNO"));
key->put("PROVV", doc.get("PROVV"));
key->put("NUMDOC", doc.get("NUMDOC"));
if (err == NOERR)
{
TRectype* key = new TRectype(LF_RIGHEDOC);
key->put("CODNUM", doc.get("CODNUM"));
key->put("ANNO", doc.get("ANNO"));
key->put("PROVV", doc.get("PROVV"));
key->put("NUMDOC", doc.get("NUMDOC"));
err = _rows.read(key);
}
else
_head = rec;
{
_head = rec;
_rows.set_key(key);
}
return err;
}
int TDocumento::read(const char* codnum, int anno, char provv, long numdoc)
int TDocumento::read(char provv, int anno, const char* codnum, long numdoc)
{
CHECK(codnum && *codnum && anno > 0 && (provv == 'D' || provv == 'P') && numdoc > 0,
"Codice documento non valido");
@ -182,6 +184,25 @@ const TTipo_documento& TDocumento::tipo() const
return *o;
}
///////////////////////////////////////////////////////////
// Lista di documenti
///////////////////////////////////////////////////////////
int TLista_documenti::leggi(char tipo, long clifo,
const TDate& dd, const TDate& ad)
{
_documenti.destroy();
TString filter(256);
filter << '(' << CLI_TIPOCF << '=' << tipo << ")&&("
<< CLI_CODCF << '=' << clifo << ")";
if (dd.ok() && dd > botime)
filter << "&&(ANSI(DATADOC)>=" << dd.string(ANSI) << ')';
if (ad.ok() && ad < eotime)
filter << "&&(ANSI(DATADOC)<=" << ad.string(ANSI) << ')';
return 0;
}
///////////////////////////////////////////////////////////
// Cliente/Fornitore per vendite

View File

@ -29,10 +29,11 @@ public:
pagamento, banca_appoggio, listino, agente,
spedizione, porto, causale_trasporto, vettori };
const TString & tipodoc() const { return _rec.get("CODTAB");}
const TString & profile_name() const { return _rec.get("S4");}
const TString & mask_name() const { return _rec.get("S4");}
const TString& codice() const { return _rec.get("CODTAB");}
bool uguale(TCondizione_uguaglianza u) const { return _rec.get("S2")[(int)u]; }
TTipo_documento(const char* tipodoc = NULL);
@ -58,8 +59,9 @@ public:
bool destroy_row(int n) { return _rows.destroy_row(n); }
void destroy_rows() { _rows.destroy_rows(); }
int read(const char * codnum, int anno, char provv, long numdoc);
int read(const TRectype & rec);
int read(char provv, int anno, const char* codnum, long numdoc);
int read(const TRectype& rec);
int write(bool re = FALSE) const;
int rewrite() const { return write(TRUE); }
int remove() const;
@ -73,10 +75,25 @@ public:
long numero() const { return _head.get_long("NDOC"); }
TDocumento ();
TDocumento(const char * codnum, int anno, char provv, long numdoc);
TDocumento(char provv, int anno, const char* codnum, long numdoc);
virtual ~TDocumento() { }
};
class TLista_documenti : public TObject
{
TArray _documenti;
public:
int leggi(char tipo, long clifo, const TDate& dd, const TDate& ad);
const TDocumento& operator[] (int n) const { return (const TDocumento&)_documenti[n]; }
TDocumento& operator[] (int n) { return (TDocumento&)_documenti[n]; }
int items() const { return _documenti.items(); }
TLista_documenti() { }
virtual ~TLista_documenti() { }
};
class TLista_clifo : public TObject
{
class TClifo : public TObject