git-svn-id: svn://10.65.10.50/trunk@3812 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 1996-10-21 15:52:20 +00:00
parent e0b4e5bfff
commit 1ad524cc85
12 changed files with 183 additions and 50 deletions

View File

@ -187,7 +187,8 @@ DESCRMAG1 = S_NASCOSTO //2900
CAUSMAG2 = S_NASCOSTO //2900 CAUSMAG2 = S_NASCOSTO //2900
DESCRMAG2 = S_NASCOSTO //2900 DESCRMAG2 = S_NASCOSTO //2900
BLANK = S_DISABILITATO //4000 BLANK = S_DISABILITATO //4000
//NOTECLI = S_NORMALE //2500 CODNOTE = S_NORMALE //2500
NOTECLI = S_NORMALE //2500
[DEFAULT] [DEFAULT]

View File

@ -1,5 +1,5 @@
33 33
67 68
CODNUM|1|4|0|Codice della numerazione CODNUM|1|4|0|Codice della numerazione
ANNO|2|4|0|Anno/Esercizio ANNO|2|4|0|Anno/Esercizio
PROVV|1|1|0|Tipo numerazione <P>rovvisorio <D>efinitivo PROVV|1|1|0|Tipo numerazione <P>rovvisorio <D>efinitivo
@ -63,6 +63,7 @@ PNETTO|4|15|2|Peso netto
NCOLLI|3|7|0|Numero di colli NCOLLI|3|7|0|Numero di colli
CAUSMAG1|1|3|0|Causale di magazzino 1 CAUSMAG1|1|3|0|Causale di magazzino 1
CAUSMAG2|1|3|0|Causale di magazzino 2 CAUSMAG2|1|3|0|Causale di magazzino 2
CODNOTE|1|2|0|Codice note cliente
NOTE|11|10|0|Note NOTE|11|10|0|Note
G1|11|10|0|Campo generale 1 G1|11|10|0|Campo generale 1
DATAAGG|5|8|0|Data ultimo aggiornamento DATAAGG|5|8|0|Data ultimo aggiornamento

View File

@ -305,11 +305,12 @@ bool TCond_vendita::cerca( int tiporicerca )
return FALSE; return FALSE;
} }
// Probabilmente dovrebbe lavorare sulla maschera, ma per ora la lasciamo cosl
void TCond_vendita::ricerca(bool load_um_only, bool load_scagl_only) void TCond_vendita::ricerca(bool load_um_only, bool load_scagl_only)
{ {
TString codart = anamag().get( "CODART" ); TString codart = anamag().get( "CODART" );
const TString codriga = riga().get( FR_CODART ); const TString codriga = riga().get( FR_CODART );
_ivarid = _clifo->get_bool(LF_CFVEN, "IVARID");
_load_mask = !load_um_only && !load_scagl_only; _load_mask = !load_um_only && !load_scagl_only;
if(anamag().bad() || codriga != codart ) if(anamag().bad() || codriga != codart )

View File

@ -43,7 +43,6 @@ protected:
void set_provv(const real & provv); void set_provv(const real & provv);
void set_iva(const TString & codiva); void set_iva(const TString & codiva);
TCliFor & clifo() const { CHECK(_clifo, "Cliente/fornitore non inizializzato"); return * _clifo; }
TConfig & config_ditta() const { CHECK(_config_ditta, "Configurazione ditta non inizializzata"); return * _config_ditta; } TConfig & config_ditta() const { CHECK(_config_ditta, "Configurazione ditta non inizializzata"); return * _config_ditta; }
TMask & testa() const { CHECK(_testa, "Maschera testata non inizializzata"); return * _testa; } TMask & testa() const { CHECK(_testa, "Maschera testata non inizializzata"); return * _testa; }
TMask & riga() const { CHECK(_testa, "Maschera testata non inizializzata"); return * _riga; } TMask & riga() const { CHECK(_testa, "Maschera testata non inizializzata"); return * _riga; }
@ -51,6 +50,7 @@ protected:
TLocalisamfile & umart() const { CHECK(_umart, "Anagrafica di unita' di misura magazzino non inizializzata") ; return *_umart; } TLocalisamfile & umart() const { CHECK(_umart, "Anagrafica di unita' di misura magazzino non inizializzata") ; return *_umart; }
public: public:
TCliFor & clifo() const { CHECK(_clifo, "Cliente/fornitore non inizializzato"); return * _clifo; }
bool set_sconto( const char * exp, bool signal = FALSE ); bool set_sconto( const char * exp, bool signal = FALSE );
const TString& get_sconto() const { return _sconto; } const TString& get_sconto() const { return _sconto; }
real sconto_val() const { return _molt_sconto;} real sconto_val() const { return _molt_sconto;}

View File

@ -140,6 +140,7 @@ void TCliForVendite::update_mask( TMask& m, bool onload )
set( m, F_CODPORTO, LF_CFVEN, "CODPORTO" ); set( m, F_CODPORTO, LF_CFVEN, "CODPORTO" );
set( m, F_CODNOTESP1, LF_CFVEN, "CODNOTESP1" ); set( m, F_CODNOTESP1, LF_CFVEN, "CODNOTESP1" );
set( m, F_CODNOTESP2, LF_CFVEN, "CODNOTESP2" ); set( m, F_CODNOTESP2, LF_CFVEN, "CODNOTESP2" );
set( m, F_CODNOTE, LF_CFVEN, "CODNOTE" );
set( m, F_CODVETT1, LF_CFVEN, "CODVETT1" ); set( m, F_CODVETT1, LF_CFVEN, "CODVETT1" );
set( m, F_CODVETT2, LF_CFVEN, "CODVETT2" ); set( m, F_CODVETT2, LF_CFVEN, "CODVETT2" );
set( m, F_CODVETT3, LF_CFVEN, "CODVETT3" ); set( m, F_CODVETT3, LF_CFVEN, "CODVETT3" );
@ -214,11 +215,18 @@ void TCliForVendite::update_mask( TMask& m, bool onload )
m.check_field( F_CODPORTO ); m.check_field( F_CODPORTO );
m.check_field( F_CODNOTESP1 ); m.check_field( F_CODNOTESP1 );
m.check_field( F_CODNOTESP2 ); m.check_field( F_CODNOTESP2 );
m.check_field( F_CODNOTE );
m.check_field( F_CODVETT1 ); m.check_field( F_CODVETT1 );
m.check_field( F_CODVETT2 ); m.check_field( F_CODVETT2 );
m.check_field( F_CODVETT3 ); m.check_field( F_CODVETT3 );
m.check_field( F_CATVEN ); m.check_field( F_CATVEN );
m.check_field( F_CODZON ); m.check_field( F_CODZON );
const bool gescontr = app().config_ditta().get_bool("GES", "ve", 2);
const bool contr_enabled = get_bool(LF_CFVEN, "GESTCONTR");
m.enable(F_CODCONT1, contr_enabled && gescontr);
m.enable(F_CODCONT, contr_enabled && gescontr);
// imposta_dati_comune( m ); // imposta_dati_comune( m );
imposta_indirizzo_spedizione( m ); imposta_indirizzo_spedizione( m );
imposta_sconto_testa( m ); imposta_sconto_testa( m );
@ -355,7 +363,7 @@ void TCliForVendite::imposta_sconto_testa( TMask& m )
void TCliForVendite::imposta_valuta( TMask& m ) void TCliForVendite::imposta_valuta( TMask& m )
{ {
TConfig ditta( CONFIG_DITTA ); TConfig & ditta = app().config_ditta();
if( ditta.get_bool( "GESVALAC", "ve" ) ) if( ditta.get_bool( "GESVALAC", "ve" ) )
{ {

View File

@ -134,6 +134,10 @@ bool TMotore_application::ss_handler( TSheet_field& ss, int r, KEY key )
TMask & emask = app().edit_mask(); TMask & emask = app().edit_mask();
TRiga_documento & riga = app()._doc->insert_row(r + 1, emask.get( F_LBTIPORIGA )); TRiga_documento & riga = app()._doc->insert_row(r + 1, emask.get( F_LBTIPORIGA ));
TString16 s(app()._clifor->get(LF_CFVEN, "CODMAG"));
s << app()._clifor->get(LF_CFVEN, "CODDEP");
riga.put("CODMAG", s);
riga.autoload(ss); riga.autoload(ss);
} }
else else
@ -392,6 +396,7 @@ TMask* TMotore_application::get_mask( int mode )
msk1->set_handler( F_CODCF, clifo_handler ); msk1->set_handler( F_CODCF, clifo_handler );
msk1->set_handler( F_CODPAG, condpag_hndl ); msk1->set_handler( F_CODPAG, condpag_hndl );
msk1->set_handler( F_DATAINSC, condpag_hndl ); msk1->set_handler( F_DATAINSC, condpag_hndl );
msk1->set_handler( F_CODNOTE, note_hndl );
// _msk1->set_handler( 99, elabora_handler ); // _msk1->set_handler( 99, elabora_handler );
int numhandler = pro( ).get_int( "NHANDLER", "HANDLERS" ); // prof int numhandler = pro( ).get_int( "NHANDLER", "HANDLERS" ); // prof
for ( i = 1; i <= numhandler; i ++ ) for ( i = 1; i <= numhandler; i ++ )
@ -452,8 +457,9 @@ TMask* TMotore_application::get_mask( int mode )
if (gescontr) if (gescontr)
{ {
msk1->show(F_CODCONT, !gescontrcli);
msk1->show(F_CODCONT1, gescontrcli); msk1->show(F_CODCONT1, gescontrcli);
msk1->show(F_CODCONT, !gescontrcli);
} }
else else
{ {
@ -640,19 +646,6 @@ bool TMotore_application::user_create( )
{ {
_config_ditta = new TConfig(CONFIG_DITTA); _config_ditta = new TConfig(CONFIG_DITTA);
// Controllo se sono cambiate le impostazioni delle vendite.
if (_config_ditta->get_bool( "CHANGED", "ve" ))
{ // Se sono cambiate, rigenero tutte le maschere
if (yesno_box( CHANGE_MESSAGE ) )
{
TExternal_app generazione( "ve0 -3 -all" );
generazione.run();
}
else
message_box("Attenzione i profili dei documenti potrebbero\n non essere aggiornati");
}
// Metto in relazione testata e righe // Metto in relazione testata e righe
_rel = new TRelation( LF_DOC ); _rel = new TRelation( LF_DOC );
open_files(LF_RIGHEDOC, LF_CONDV, LF_RCONDV, LF_ANAMAG, LF_SCONTI, LF_UMART, LF_TAB, LF_TABCOM, 0); open_files(LF_RIGHEDOC, LF_CONDV, LF_RCONDV, LF_ANAMAG, LF_SCONTI, LF_UMART, LF_TAB, LF_TABCOM, 0);

View File

@ -221,6 +221,19 @@ PROMPT 2 13 "Gestione archivio sconti unita' di misura "
FIELD GESSCOUM FIELD GESSCOUM
END END
STRING F_SCOTRIGA 4
BEGIN
PROMPT 2 14 "Tipo riga per gli sconti di testa "
FLAGS "U"
USE %TRI SELECT S7=="C"
FIELD SCOTRIGA
INPUT CODTAB F_SCOTRIGA
DISPLAY "Codice" CODTAB
DISPLAY "Descrizione@50" S0
OUTPUT F_SCOTRIGA CODTAB
CHECKTYPE REQUIRED
END
ENDPAGE ENDPAGE
ENDMASK ENDMASK

View File

@ -1213,21 +1213,30 @@ OUTPUT=F_CODVETT3 CODTAB~F_NOMEVETT3 S0
WARNING=Codice primo vettore non trovato WARNING=Codice primo vettore non trovato
HELP=Inserisci il codice del primo (o unico) vettore HELP=Inserisci il codice del primo (o unico) vettore
[NOTECLI] [CODNOTE]
GROUP=2500 GROUP=2500
X=2 X=2
Y=1 Y=1
FIELDNAME=CODNOTE
MSKID=F_CODNOTE
TYPE=T_STRINGA
PROMPT="Cod.Note "
SIZE=2
USE=%NOT
INPUT=CODTAB F_CODNOTE
DISPLAY="Codice" CODTAB~"Descrizione@50" S0
OUTPUT=F_CODNOTE CODTAB~F_NOTECLI S0
WARNING=Note clienti assenti
[NOTECLI]
GROUP=2500
X=2
Y=2
FIELDNAME=NOTE FIELDNAME=NOTE
MSKID=F_NOTECLI MSKID=F_NOTECLI
TYPE=T_MEMO TYPE=T_MEMO
PROMPT="" PROMPT=" "
SIZE=50 SIZE=50
USE=%NOT KEY 2
INPUT=S0 F_NOTECLI
DISPLAY="Descrizione@50" S0~"Codice" CODTAB
OUTPUT=F_NOTECLI S0
WARNING=
HELP=
[NCOPIE] [NCOPIE]
GROUP=1600 GROUP=1600

View File

@ -33,6 +33,7 @@
#define F_GESSCOSCA 128 #define F_GESSCOSCA 128
#define F_GESSCOUM 129 #define F_GESSCOUM 129
#define F_SCOTRIGA 130
// Campi per ve0200b.uml // Campi per ve0200b.uml
#define F_GESAGE 101 #define F_GESAGE 101

View File

@ -41,6 +41,11 @@
#include "veini.h" #include "veini.h"
#endif #endif
#ifndef __DEFMASK_H
#include <defmask.h>
#endif
#ifndef __PAGAMENT_H #ifndef __PAGAMENT_H
#include "..\cg\pagament.h" #include "..\cg\pagament.h"
#endif #endif
@ -158,6 +163,31 @@ bool condpag_hndl( TMask_field& field, KEY key )
return TRUE; return TRUE;
} }
bool note_hndl( TMask_field& f, KEY key )
{
TDocumento_mask & m = (TDocumento_mask &) f.mask();
if (key == K_TAB && (f.focusdirty() || !m.is_running()))
{
TTable & note = (TTable &) ((TEdit_field &) f).browse()->cursor()->file();
const TString16 cod(f.get());
if (cod != note.get("CODTAB"))
{
note.zero();
note.put("CODTAB", cod);
if (note.read() != NOERR)
note.zero();
}
const bool reg_disabled = note.get_bool("B0");
if (reg_disabled)
message_box("Registrazione disbilitata : %s", (const char *) note.get("S0"));
m.enable(DLG_SAVEREC, !reg_disabled);
}
return TRUE;
}
// handler delle righe // handler delle righe
HIDDEN void row_set_handler( TMask& m, const int field, const int index ) HIDDEN void row_set_handler( TMask& m, const int field, const int index )
@ -175,6 +205,19 @@ HIDDEN void row_set_handler( TMask& m, const int field, const int index )
HIDDEN TString16 curr_um; HIDDEN TString16 curr_um;
HIDDEN real curr_fc(1.0); HIDDEN real curr_fc(1.0);
HIDDEN bool iva_handler( TMask_field& f, KEY key )
{
if (key == 0 || key == K_ENTER)
{
TDocumento_mask & mask = (TDocumento_mask &) f.mask().get_sheet()->mask();
const TString16 codiva = mask.condv().clifo().get(LF_CFVEN, "ASSFIS");
if (codiva.not_empty())
f.set(codiva);
}
return TRUE;
}
HIDDEN bool codart_handler( TMask_field& f, KEY key ) HIDDEN bool codart_handler( TMask_field& f, KEY key )
{ {
// Se qualcuno cerca di modificare la maschera // Se qualcuno cerca di modificare la maschera
@ -246,6 +289,10 @@ HIDDEN bool codart_handler( TMask_field& f, KEY key )
} }
condv.ricerca(); condv.ricerca();
const int pos = row_mask.id2pos(FR_CODIVA);
if (pos >= 0)
iva_handler(row_mask.fld(pos), 0);
} }
return TRUE; return TRUE;
} }
@ -367,6 +414,9 @@ HIDDEN bool sppr_handler( TMask_field& f, KEY key )
prezzo /= mask.get_real(F_CAMBIO); prezzo /= mask.get_real(F_CAMBIO);
} }
row_mask.set(FR_PREZZO, prezzo); row_mask.set(FR_PREZZO, prezzo);
const int pos =row_mask.id2pos(FR_CODIVA);
if (pos >= 0)
iva_handler(row_mask.fld(pos), 0);
} }
} }
} }
@ -1186,6 +1236,11 @@ TVariable_mask * TTipo_riga_documento::mask()
} }
} }
} }
const int posiva = _mask->id2pos(FR_CODIVA);
if (posiva >= 0)
_mask->set_handler( FR_CODIVA, iva_handler );
return _mask; return _mask;
} }
@ -1682,7 +1737,7 @@ TAssoc_array TDocumento::_tipi;
TDocumento::TDocumento() TDocumento::TDocumento()
: TAuto_variable_rectype(LF_DOC), _rows(LF_RIGHEDOC, "NRIGA"), _nuovo(TRUE), : TAuto_variable_rectype(LF_DOC), _rows(LF_RIGHEDOC, "NRIGA"), _nuovo(TRUE),
_condv(NULL), _rel(NULL) _condv(NULL), _rel(NULL), _sconto(NULL)
{ {
set_memo_fld("G1"); set_memo_fld("G1");
} }
@ -1690,7 +1745,7 @@ TDocumento::TDocumento()
TDocumento::TDocumento(char provv, int anno, const char* codnum, long numdoc, TDocumento::TDocumento(char provv, int anno, const char* codnum, long numdoc,
TCond_vendita * condv, TRelation * rel) TCond_vendita * condv, TRelation * rel)
: TAuto_variable_rectype(LF_DOC), _rows(LF_RIGHEDOC, "NRIGA"), _nuovo(TRUE), : TAuto_variable_rectype(LF_DOC), _rows(LF_RIGHEDOC, "NRIGA"), _nuovo(TRUE),
_condv(condv), _rel(rel) _condv(condv), _rel(rel), _sconto(NULL)
{ {
set_memo_fld("G1"); set_memo_fld("G1");
if (numdoc <= 0) if (numdoc <= 0)
@ -1700,7 +1755,7 @@ TDocumento::TDocumento(char provv, int anno, const char* codnum, long numdoc,
TRiga_documento* key = new TRiga_documento(this); TRiga_documento* key = new TRiga_documento(this);
set_key(*key, provv, anno, codnum, numdoc); set_key(*key, provv, anno, codnum, numdoc);
_rows.set_key(key); _rows.set_key(key); // ok
} }
else else
read(provv, anno, codnum, numdoc); read(provv, anno, codnum, numdoc);
@ -1747,17 +1802,17 @@ TDocumento::TDocumento(const TRectype& rec, TCond_vendita * condv, TRelation * r
TRiga_documento& TDocumento::insert_row(int row, const char *tipo) TRiga_documento& TDocumento::insert_row(int row, const char *tipo)
{ {
TRiga_documento * r = new TRiga_documento((const TRiga_documento &) _rows.key(), this); TRiga_documento * r = new TRiga_documento((const TRiga_documento &) _rows.key(), this); // ok
r->set_numero(row); r->set_numero(row);
if (tipo) if (tipo)
r->set_tipo(tipo); r->set_tipo(tipo);
_rows.insert_row(r); _rows.insert_row(r); // ok
return *r; return *r;
} }
TRiga_documento& TDocumento::new_row(const char *tipo) TRiga_documento& TDocumento::new_row(const char *tipo)
{ {
TRiga_documento & r = (TRiga_documento&)_rows.row(-1, TRUE); TRiga_documento & r = (TRiga_documento&)_rows.row(-1, TRUE); // ok
if (tipo) if (tipo)
r.set_tipo(tipo); r.set_tipo(tipo);
return r; return r;
@ -1779,15 +1834,16 @@ int TDocumento::read(const TRectype& rec)
if (err == NOERR) if (err == NOERR)
{ {
_nuovo = FALSE; _nuovo = FALSE;
_rows.read(key); _rows.read(key); //ok
} }
else else
{ {
_nuovo = TRUE; _nuovo = TRUE;
head() = rec; head() = rec;
destroy_rows(); destroy_rows();
_rows.set_key(key); _rows.set_key(key); // ok
} }
set_riga_sconto();
return err; return err;
} }
@ -1810,10 +1866,42 @@ long TDocumento::renum(long numdoc)
} }
char num[16]; sprintf(num, "%ld", numdoc); char num[16]; sprintf(num, "%ld", numdoc);
renum_key("NDOC", num); // Aggiorna testata renum_key("NDOC", num); // Aggiorna testata
_rows.renum_key("NDOC", num); // Aggiorna righe _rows.renum_key("NDOC", num); // Aggiorna righe ok
return numdoc; return numdoc;
} }
void TDocumento::set_riga_sconto()
{
const TString80 sconto(get("SCONTOPERC"));
if (sconto.empty())
{
if(_sconto != NULL)
delete _sconto;
_sconto = NULL;
}
else
{
if (_sconto == NULL)
{
static TString _tipo_riga;
static long firm = -1;
long new_firm = main_app().get_firm();
if (firm != new_firm)
{
TConfig conf(CONFIG_DITTA);
_tipo_riga = conf.get("SCOTRIGA", "ve");
firm = new_firm;
}
_sconto = new TRiga_documento(this, _tipo_riga);
_sconto->put("DESCR","Sconto");
}
_sconto->put("SCONTO", sconto);
}
}
void TDocumento::dirty_fields() void TDocumento::dirty_fields()
{ {
for (TDocumento_variable_field * f = (TDocumento_variable_field *) first_variable_field(); for (TDocumento_variable_field * f = (TDocumento_variable_field *) first_variable_field();
@ -1821,7 +1909,7 @@ void TDocumento::dirty_fields()
f->set_dirty(); f->set_dirty();
for (int i = rows(); i > 0; i--) for (int i = rows(); i > 0; i--)
{ {
TRiga_documento & r = (TRiga_documento &) _rows.row(i, FALSE); TRiga_documento & r = (TRiga_documento &) row(i);
if (r.doc_dependent()) if (r.doc_dependent())
r.dirty_fields(FALSE); r.dirty_fields(FALSE);
@ -1889,6 +1977,18 @@ const bool TDocumento::in_valuta() const
return (val.not_empty() && val != "LIT"); return (val.not_empty() && val != "LIT");
} }
TRiga_documento & TDocumento::row(int index)
{
const int nrows = _rows.rows();
if (index <= nrows)
return (TRiga_documento &) _rows.row(index, FALSE);
else
{
CHECKD(index == nrows + 1 &&_sconto != NULL, "Riga documento non esistente ", index);
return *_sconto;
}
}
long TDocumento::get_next_key(char provv, int anno, const char* codnum) const long TDocumento::get_next_key(char provv, int anno, const char* codnum) const
{ {
static long n = 0; static long n = 0;
@ -2077,6 +2177,8 @@ void TDocumento::put_str(const char* fieldname, const char* val)
{ {
TAuto_variable_rectype::put_str(fieldname, val); TAuto_variable_rectype::put_str(fieldname, val);
dirty_fields(); dirty_fields();
if (strcmp(fieldname, "SCONTOPERC") == 0)
set_riga_sconto();
} }
} }

View File

@ -37,6 +37,7 @@ bool ora_hndl(TMask_field& field, KEY key);
bool codcli_hndl(TMask_field& field, KEY key); bool codcli_hndl(TMask_field& field, KEY key);
bool dummy_hndl(TMask_field& field, KEY key); bool dummy_hndl(TMask_field& field, KEY key);
bool condpag_hndl(TMask_field& field, KEY key); bool condpag_hndl(TMask_field& field, KEY key);
bool note_hndl(TMask_field& field, KEY key);
class TDocumento_variable_field : public TVariable_field class TDocumento_variable_field : public TVariable_field
{ {
@ -314,12 +315,14 @@ class TDocumento : public TAuto_variable_rectype
TRelation * _rel; TRelation * _rel;
TCond_vendita * _condv; TCond_vendita * _condv;
TPagamento _pag; TPagamento _pag;
TRiga_documento * _sconto; // Riga per lo sconto di testata
protected: protected:
TAuto_variable_rectype & row(int index) { return (TAuto_variable_rectype &) _rows.row(index, FALSE); } TRiga_documento & row(int index);
long get_next_key(char provv, int anno, const char* codnum) const; long get_next_key(char provv, int anno, const char* codnum) const;
virtual void put_str(const char* fieldname, const char* val); virtual void put_str(const char* fieldname, const char* val);
long renum(long numdoc = 0); long renum(long numdoc = 0);
void set_riga_sconto();
public: public:
void dirty_fields(); void dirty_fields();
@ -336,9 +339,9 @@ public:
virtual void zero(const char * fieldname); virtual void zero(const char * fieldname);
virtual void zero(char c = '\0'); virtual void zero(char c = '\0');
int rows() const { return _rows.rows(); } int rows() const { return _rows.rows() + ((_sconto != NULL) ? 1 : 0); }
const TRiga_documento& operator[](int index) const { return (const TRiga_documento&)_rows.row(index); } const TRiga_documento& operator[](int index) const { return (const TRiga_documento&)((TDocumento *)this)->row(index); }
TRiga_documento& operator[](int index) { return (TRiga_documento&)_rows.row(index, FALSE); } TRiga_documento& operator[](int index) { return (TRiga_documento&)row(index); }
TRiga_documento& insert_row(int row, const char *tipo = NULL); TRiga_documento& insert_row(int row, const char *tipo = NULL);
TRiga_documento& new_row(const char *tipo = NULL); TRiga_documento& new_row(const char *tipo = NULL);
@ -394,7 +397,7 @@ public:
TCond_vendita * condv = NULL, TRelation * rel = NULL); TCond_vendita * condv = NULL, TRelation * rel = NULL);
TDocumento(const TRectype& doc, TCond_vendita * condv = NULL, TDocumento(const TRectype& doc, TCond_vendita * condv = NULL,
TRelation * rel = NULL); TRelation * rel = NULL);
virtual ~TDocumento() { } virtual ~TDocumento() { if (_sconto != NULL) delete _sconto;}
}; };
class TDocumento_mask : public TVariable_mask class TDocumento_mask : public TVariable_mask

View File

@ -76,6 +76,7 @@
#define F_ATTIVAANNO 179 // GESTITO DAL MOTORE #define F_ATTIVAANNO 179 // GESTITO DAL MOTORE
#define F_OCCASEDIT 180 // GESTITO DAL MOTORE #define F_OCCASEDIT 180 // GESTITO DAL MOTORE
#define F_CATVEN 181 #define F_CATVEN 181
#define F_CODNOTE 182
#define F_CODVAL1 200 #define F_CODVAL1 200
#define F_NOMEVAL1 201 #define F_NOMEVAL1 201