Riportata la versione 98.01.01CD
git-svn-id: svn://10.65.10.50/trunk@6020 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
ae8005a3a9
commit
98c6c85507
@ -385,6 +385,7 @@ class TMenuitem : public TObject
|
||||
bool _enabled : 1;
|
||||
bool _firm : 1;
|
||||
bool _password : 1;
|
||||
bool _reloadmenu : 1;
|
||||
|
||||
protected:
|
||||
bool perform_submenu() const;
|
||||
@ -491,7 +492,7 @@ public:
|
||||
|
||||
TMenuitem::TMenuitem(TSubmenu* sm)
|
||||
: _submenu(sm),
|
||||
_enabled(TRUE), _firm(FALSE), _password(FALSE),
|
||||
_enabled(TRUE), _firm(FALSE), _password(FALSE), _reloadmenu(FALSE),
|
||||
_color(NORMAL_COLOR)
|
||||
{ }
|
||||
|
||||
@ -514,6 +515,7 @@ void TMenuitem::create(const char* t)
|
||||
case 'D': _enabled = FALSE; break;
|
||||
case 'F': _firm = TRUE; break;
|
||||
case 'P': _password = TRUE; break;
|
||||
case 'R': _reloadmenu = TRUE; break;
|
||||
default : break;
|
||||
}
|
||||
}
|
||||
@ -529,8 +531,8 @@ void TMenuitem::create(const char* t)
|
||||
if (_action.empty())
|
||||
_enabled = FALSE;
|
||||
|
||||
if (_enabled && is_program())
|
||||
_enabled = menu().has_module(_action);
|
||||
// if (_enabled && is_program())
|
||||
// _enabled = menu().has_module(_action);
|
||||
}
|
||||
|
||||
bool TMenuitem::enabled() const
|
||||
|
888
ba/install.ini
888
ba/install.ini
File diff suppressed because it is too large
Load Diff
@ -67,6 +67,9 @@ protected:
|
||||
static bool rsoc_handler(TMask_field& f, KEY k);
|
||||
|
||||
public:
|
||||
// @cmember Disabilita la verifica del modulo : essendo una anagrafica, va sempre abilitata
|
||||
virtual bool check_autorization() const
|
||||
{return FALSE;}
|
||||
virtual TRelation* get_relation() const {return (TRelation*)_rel;}
|
||||
TClifo_application(){}
|
||||
};
|
||||
|
@ -26,6 +26,9 @@ protected:
|
||||
virtual bool user_destroy();
|
||||
|
||||
public:
|
||||
// @cmember Disabilita la verifica del modulo : essendo una anagrafica, va sempre abilitata
|
||||
virtual bool check_autorization() const
|
||||
{return FALSE;}
|
||||
|
||||
static CGTab_application& app() { return (CGTab_application&)main_app(); }
|
||||
|
||||
|
@ -50,8 +50,10 @@ class TPrintclifo_app : public TPrintapp
|
||||
long _codice;
|
||||
char _tipocf,_tipoaper;
|
||||
bool _gia_iniziati_fornitori;
|
||||
|
||||
public:
|
||||
// @cmember Disabilita la verifica del modulo : essendo una anagrafica, va sempre abilitata
|
||||
virtual bool check_autorization() const
|
||||
{return FALSE;}
|
||||
|
||||
virtual bool preprocess_page(int file, int counter);
|
||||
virtual bool preprocess_print(int file, int counter);
|
||||
|
@ -16,6 +16,9 @@ protected:
|
||||
virtual void init_query_mode (TMask&);
|
||||
virtual int rewrite(const TMask& m);
|
||||
public:
|
||||
// @cmember Disabilita la verifica del modulo : essendo una anagrafica, va sempre abilitata
|
||||
virtual bool check_autorization() const
|
||||
{return FALSE;}
|
||||
TBnp_table_app() {}
|
||||
virtual ~TBnp_table_app() {}
|
||||
};
|
||||
|
@ -78,7 +78,7 @@ public:
|
||||
const char* description(int cod) const;
|
||||
// @cmember Controlla che la ditta attiva sia una ditta (e non es. dati comuni)
|
||||
bool is_firm() const
|
||||
{ return _prefix.len() == 6 && _prefix[5] == 'a';}
|
||||
{ return _prefix.len() == 6 && (toupper(_prefix[5]) == 'A');}
|
||||
// @cmember Controlla che siano attivi i dati comuni (e non una ditta)
|
||||
bool is_com() const
|
||||
{ return !is_firm();}
|
||||
|
@ -26,6 +26,9 @@ class TMask_tabmag : public TMask
|
||||
|
||||
|
||||
public:
|
||||
// @cmember Disabilita la verifica del modulo in chiave
|
||||
virtual bool check_autorization() const
|
||||
{return FALSE;}
|
||||
TMask_tabmag(const char * ,const TString16 &);
|
||||
virtual ~TMask_tabmag();
|
||||
};
|
||||
|
@ -23,6 +23,9 @@ protected:
|
||||
static bool hnd_livinizio(TMask_field &, KEY); // handler
|
||||
static bool hnd_livfine(TMask_field &, KEY); // handler
|
||||
public:
|
||||
// @cmember Disabilita la verifica del modulo in chiave
|
||||
virtual bool check_autorization() const
|
||||
{return FALSE;}
|
||||
const TCodice_livelli & liv_cod()
|
||||
{return *_cod_liv;}
|
||||
|
||||
|
@ -26,6 +26,9 @@ class TConf_magazz : public TConfig_application
|
||||
|
||||
static bool check_fields(TMask_field& f, KEY k);
|
||||
public:
|
||||
// @cmember Disabilita la verifica del modulo in chiave
|
||||
virtual bool check_autorization() const
|
||||
{return FALSE;}
|
||||
|
||||
virtual bool preprocess_config (TMask& mask, TConfig& config);
|
||||
virtual bool postprocess_config (TMask& mask, TConfig& config);
|
||||
|
@ -1,3 +1,3 @@
|
||||
124
|
||||
0
|
||||
$provv|0|0|250|36|Archivio provvigioni|||
|
||||
$provv|0|0|246|0|Archivio provvigioni|||
|
||||
|
@ -1,11 +1,10 @@
|
||||
124
|
||||
26
|
||||
25
|
||||
CODAGE|1|5|0|Codice agente
|
||||
ANNO|2|4|0|Anno del documento
|
||||
CODNUM|1|4|0|Codice numerazione del documento
|
||||
NDOC|3|7|0|Numero documento
|
||||
NRIGA|2|4|0|Numero riga di riferimento per documento
|
||||
NROW|2|4|0|Numero riga di riferito per agente
|
||||
NRATA|2|4|0|Numero rata
|
||||
GENERATA|1|1|0|Flag di generazione (< >Immessa, generata dal <D>ocumento)
|
||||
DATADOC|5|8|0|Data del documento
|
||||
@ -26,7 +25,6 @@ PROVVPAG|4|18|2|Provvigione pagata
|
||||
PAGMAT|4|18|2|Pagamento maturato
|
||||
PROVVMAT|4|18|2|Provvigione maturata
|
||||
TIPOPAGPR|2|1|0|Tipo pagamento della provvigione (?)
|
||||
3
|
||||
CODAGE+NROW|
|
||||
CODAGE+ANNO+CODNUM+NDOC+NRIGA|
|
||||
2
|
||||
CODAGE+ANNO+CODNUM+NDOC+NRIGA|
|
||||
CODAGE+DATADOC|X
|
||||
|
@ -23,6 +23,9 @@ protected:
|
||||
static bool seqalt_handler(TMask_field& f, KEY k);
|
||||
static bool codalt_handler(TMask_field& f, KEY k);
|
||||
public:
|
||||
// @cmember Disabilita la verifica del modulo in chiave
|
||||
virtual bool check_autorization() const
|
||||
{return FALSE;}
|
||||
TGestione_agenti_app() {};
|
||||
~TGestione_agenti_app() {};
|
||||
};
|
||||
|
@ -263,7 +263,8 @@ bool TGestione_provv_app::rate_sheet_notify(TSheet_field& ds, int r, KEY key)
|
||||
}
|
||||
break;
|
||||
case K_DEL: // Notifica della cancellazione di una riga
|
||||
rd.remove_rata(r); // Effettua anche il pack degli elementi
|
||||
rd.remove_rata(r);
|
||||
rd.pack_rate(); // Effettua anche il pack degli elementi (corrispondenza 1 a 1 tra sheet ed array)
|
||||
app()._dirty = TRUE;
|
||||
break;
|
||||
default:
|
||||
@ -465,7 +466,11 @@ void TGestione_provv_app::load_provvigioni(TMask* m)
|
||||
_msk->set(F_MANNO,"");
|
||||
_msk->set(F_MCODNUM,"");
|
||||
_msk->set(F_MNDOC,"");
|
||||
_prag->read(agente);
|
||||
if (_prag->read(agente) == _islocked)
|
||||
{
|
||||
message_box("Dati agente %s in uso da un altro utente.", (const char*) agente);
|
||||
return;
|
||||
}
|
||||
|
||||
KEY k;
|
||||
bool repeat;
|
||||
@ -473,6 +478,7 @@ void TGestione_provv_app::load_provvigioni(TMask* m)
|
||||
fill_sheet_doc(); // Inizializza lo sheet dei documenti
|
||||
|
||||
_dirty = FALSE;
|
||||
int err = NOERR;
|
||||
do
|
||||
{
|
||||
k = _msk->run();
|
||||
@ -488,10 +494,13 @@ void TGestione_provv_app::load_provvigioni(TMask* m)
|
||||
}
|
||||
if (to_write)
|
||||
if (check_totals()) // Controlla i totali delle provvigioni per tutti i documenti
|
||||
_prag->write();
|
||||
err = _prag->write();
|
||||
else
|
||||
repeat = TRUE;
|
||||
} while (repeat);
|
||||
if (err != NOERR)
|
||||
message_box("Errore %d tentando di scrivere i dati provvigionali dell'agente.",err, (const char*) agente);
|
||||
_prag->unlock();
|
||||
}
|
||||
|
||||
bool TGestione_provv_app::menu(MENU_TAG)
|
||||
|
@ -23,6 +23,10 @@ class TStampa_agenti : public TApplication
|
||||
protected:
|
||||
virtual bool create();
|
||||
virtual bool destroy();
|
||||
public:
|
||||
// @cmember Disabilita la verifica del modulo : essendo una anagrafica, va sempre abilitata
|
||||
virtual bool check_autorization() const
|
||||
{return FALSE;}
|
||||
};
|
||||
|
||||
bool TStampa_agenti::create()
|
||||
@ -34,7 +38,7 @@ bool TStampa_agenti::create()
|
||||
TRectype darec(LF_AGENTI),arec(LF_AGENTI);
|
||||
_mask = new TMask("pr1100");
|
||||
while (_mask->run() == K_ENTER) {
|
||||
_form = new TForm("pr1100a", "");
|
||||
_form = new TForm("pr1100a", "");
|
||||
TSorted_cursor& cur = (TSorted_cursor& )*_form->cursor();
|
||||
|
||||
TString sortexp;
|
||||
|
@ -47,7 +47,7 @@ public:
|
||||
const TRata& operator = (const TRata & r) { set(r);return *this;}
|
||||
TRata(const TRectype& rec);
|
||||
TRata(const TRata & r) { set(r);}
|
||||
TRata() { _generata = ' ';}
|
||||
TRata() { _generata = ' '; _saldata = FALSE; }
|
||||
virtual ~TRata() {}
|
||||
};
|
||||
|
||||
@ -75,10 +75,13 @@ public:
|
||||
const real cambio() const { return _cambio;}
|
||||
const real impnet() const { return _impnetdoc;}
|
||||
const int items() { return _rows.items();}
|
||||
const bool exist(const int i);
|
||||
TRata& row(int i, bool create = FALSE);
|
||||
TRata& operator[](int i){ return row(i,FALSE); }
|
||||
void add_rata(TRata* r) {_rows.add(r);}
|
||||
void remove_rata(int i = -1) {_rows.destroy(i,TRUE);}
|
||||
void remove_rata(int i = -1) {_rows.destroy(i);}
|
||||
// Pakka le rate
|
||||
void pack_rate() {_rows.pack();}
|
||||
// Ordina le rate
|
||||
void sort_rate() {_rows.sort();}
|
||||
// Controlla che la somma delle provvigioni delle singole rate sia <= della provvigione del documento
|
||||
@ -116,6 +119,7 @@ public:
|
||||
int write() { return rate2rows(0); }
|
||||
int rewrite() { return rate2rows(1); }
|
||||
int remove() { return rate2rows(2); }
|
||||
void unlock();
|
||||
// Restituisce un elenco di documenti che hanno rate per le provvigioni di questo agente
|
||||
int documenti(TString_array& kl) { return _rate.get_keys(kl); }
|
||||
// Per accedere tramite singole rate...
|
||||
|
@ -9,32 +9,45 @@ TProvvigioni_agente::TProvvigioni_agente() : TRectype(LF_AGENTI)
|
||||
{
|
||||
// _rows = new TRecord_array(LF_PROVV,PROV_NRIGA);
|
||||
_provv_rel = new TRelation(LF_PROVV);
|
||||
_provv_cur = new TCursor(_provv_rel, "", 2);
|
||||
_provv_cur = new TCursor(_provv_rel);
|
||||
}
|
||||
|
||||
TProvvigioni_agente::TProvvigioni_agente(const char* agente) : TRectype(LF_AGENTI)
|
||||
{
|
||||
//_rows = new TRecord_array(LF_PROVV,PROV_NRIGA);
|
||||
_provv_rel = new TRelation(LF_PROVV);
|
||||
_provv_cur = new TCursor(_provv_rel, "", 2);
|
||||
_provv_cur = new TCursor(_provv_rel);
|
||||
read(agente);
|
||||
}
|
||||
|
||||
TProvvigioni_agente::~TProvvigioni_agente()
|
||||
{
|
||||
// delete _rows;
|
||||
unlock();
|
||||
delete _provv_rel;
|
||||
delete _provv_cur;
|
||||
}
|
||||
|
||||
void TProvvigioni_agente::unlock()
|
||||
{
|
||||
if (_agente.not_empty())
|
||||
{
|
||||
TLocalisamfile age(LF_AGENTI);
|
||||
TRectype::put(AGE_CODAGE,_agente);
|
||||
TRectype::read(age, _isequal, _unlock); // Sblocca eventuali caricamenti precedenti
|
||||
}
|
||||
}
|
||||
|
||||
int TProvvigioni_agente::read(const char* agente, const int anno, const char* codnum, const long ndoc)
|
||||
{
|
||||
int err = NOERR;
|
||||
|
||||
|
||||
unlock();
|
||||
destroy(); // Cancella eventuali residui
|
||||
|
||||
TLocalisamfile age(LF_AGENTI);
|
||||
TRectype::put(AGE_CODAGE,agente);
|
||||
err = TRectype::read(age); // Carica i dati dell'agente
|
||||
err = TRectype::read(age, _isequal, _testandlock); // Carica i dati dell'agente
|
||||
if (err != NOERR)
|
||||
return err;
|
||||
|
||||
@ -54,6 +67,7 @@ int TProvvigioni_agente::read(const char* agente, const int anno, const char* co
|
||||
TRectype rec_to(rec_from);
|
||||
|
||||
_provv_cur->setregion(rec_from, rec_to); // Cursore da leggere contenente le provvigioni
|
||||
// Sara' bello, un giorno, poter bloccare tutti i record del cursore contemporaneamente...
|
||||
|
||||
const long items = _provv_cur->items();
|
||||
TRectype& r = _provv_cur->file().curr();
|
||||
@ -95,15 +109,11 @@ int TProvvigioni_agente::rate2rows(int action)
|
||||
{
|
||||
// Scorre gli elementi di _rate (TDoc_rate) uno ad uno
|
||||
// per settare le righe provvigionali
|
||||
// Scrive tramite chiave 1: utilizzando un solo record array (CODAGE+NROW)
|
||||
// Scrive tramite chiave 1: utilizzando un solo record array (CODAGE+ANNO+CODNUM+NDOC+NRIGA)
|
||||
int err = NOERR;
|
||||
|
||||
if (_agente.not_empty())
|
||||
{
|
||||
TRecord_array * rows = new TRecord_array(LF_PROVV,PROV_NROW);
|
||||
TRectype* k = new TRectype(LF_PROVV);
|
||||
k->put(PROV_CODAGE, _agente);
|
||||
rows->set_key(k);
|
||||
TString_array kl;
|
||||
int nrow = 1; // Numero riga per agente e per documento
|
||||
const int items = documenti(kl); // Prende l'elenco dei documenti
|
||||
@ -123,6 +133,13 @@ int TProvvigioni_agente::rate2rows(int action)
|
||||
TDate datacam(rd.datacam());
|
||||
real cambio = rd.cambio();
|
||||
// Chiave del TRecord_array
|
||||
TRecord_array * rows = new TRecord_array(LF_PROVV,PROV_NRIGA);
|
||||
TRectype* k = new TRectype(LF_PROVV);
|
||||
k->put(PROV_CODAGE, _agente);
|
||||
k->put(PROV_ANNO, anno);
|
||||
k->put(PROV_CODNUM, codnum);
|
||||
k->put(PROV_NDOC, ndoc);
|
||||
rows->set_key(k);
|
||||
const int ritems = rd.items(); // Ciclo per rate di questo documento
|
||||
for (int j = 0; j < ritems; j++)
|
||||
{
|
||||
@ -132,7 +149,7 @@ int TProvvigioni_agente::rate2rows(int action)
|
||||
record->put(PROV_ANNO,anno);
|
||||
record->put(PROV_CODNUM,codnum);
|
||||
record->put(PROV_NDOC,ndoc);
|
||||
record->put(PROV_NROW,nrow++);
|
||||
//record->put(PROV_NROW,nrow++);
|
||||
record->put(PROV_NRIGA,j+1);
|
||||
record->put(PROV_NRATA,rt.rata());
|
||||
record->put(PROV_GENERATA,rt.generata());
|
||||
@ -155,7 +172,7 @@ int TProvvigioni_agente::rate2rows(int action)
|
||||
record->put(PROV_PAGMAT,rt.pagmat());
|
||||
record->put(PROV_PROVVMAT,rt.provvmat());
|
||||
rows->add_row(record);
|
||||
}
|
||||
} // Ciclo per rata
|
||||
switch (action)
|
||||
{
|
||||
case 0: // write
|
||||
@ -170,8 +187,10 @@ int TProvvigioni_agente::rate2rows(int action)
|
||||
default: // remove
|
||||
break;
|
||||
}
|
||||
}
|
||||
delete rows;
|
||||
unlock();
|
||||
|
||||
delete rows;
|
||||
} // Ciclo per documento
|
||||
}
|
||||
return err;
|
||||
}
|
||||
@ -230,9 +249,14 @@ TRate_doc::TRate_doc(const TRectype& rec)
|
||||
set(rec); // bleah!
|
||||
}
|
||||
|
||||
const bool TRate_doc::exist(const int i)
|
||||
{
|
||||
return _rows.objptr(i) != NULL;
|
||||
}
|
||||
|
||||
TRata& TRate_doc::row(int i, bool create)
|
||||
{
|
||||
if (create && _rows.objptr(i) == NULL) // Parametro di creazione
|
||||
if (create && !exist(i) ) // Parametro di creazione
|
||||
_rows.add(new TRata(),i);
|
||||
return (TRata&) _rows[i];
|
||||
}
|
||||
|
@ -1594,6 +1594,9 @@ protected:
|
||||
virtual bool create ( );
|
||||
virtual bool destroy( );
|
||||
public:
|
||||
// @cmember Disabilita la verifica del modulo : essendo una anagrafica, va sempre abilitata
|
||||
virtual bool check_autorization() const
|
||||
{return FALSE;}
|
||||
void set_files(const bool b = TRUE) {_use_files = b;}
|
||||
void set_tablefile(const TString& t) {_tablefile = t;}
|
||||
};
|
||||
|
@ -72,6 +72,8 @@ class TTabelle_sconti: public TRelation_application {
|
||||
// static bool handle_cpg(TMask_field &, KEY); // handler delle condizioni di pagamento
|
||||
|
||||
public:
|
||||
// @cmember Disabilita la verifica del modulo : essendo una anagrafica, va sempre abilitata
|
||||
virtual bool check_autorization() const {return FALSE;}
|
||||
TTabelle_sconti() {_sca = _scoum = _catven = FALSE;}
|
||||
virtual ~TTabelle_sconti() {}
|
||||
};
|
||||
|
@ -52,6 +52,8 @@ class TCondizioni_vendita: public TRelation_application {
|
||||
virtual bool remove(); // metodo usato per cancellare il record sul file
|
||||
|
||||
public:
|
||||
// @cmember Disabilita la verifica del modulo : essendo una anagrafica, va sempre abilitata
|
||||
virtual bool check_autorization() const {return FALSE;}
|
||||
TCondizioni_vendita() {}
|
||||
virtual ~TCondizioni_vendita() {}
|
||||
};
|
||||
|
@ -1034,7 +1034,8 @@ class TAnagrafica_magazzino : public TRelation_application {
|
||||
|
||||
TMask_anamag *_msk; // maschera principale
|
||||
TRelation *_rel; // relazione principale di un solo file (anagrafiche di magazzino)
|
||||
|
||||
|
||||
protected:
|
||||
virtual bool user_create();
|
||||
virtual bool user_destroy();
|
||||
virtual TMask *get_mask(int) { return _msk; }
|
||||
@ -1048,6 +1049,8 @@ class TAnagrafica_magazzino : public TRelation_application {
|
||||
virtual int rewrite(const TMask& m);
|
||||
|
||||
public:
|
||||
// @cmember Disabilita la verifica del modulo : essendo una anagrafica, va sempre abilitata
|
||||
virtual bool check_autorization() const {return FALSE;}
|
||||
TAnagrafica_magazzino() {}
|
||||
virtual ~TAnagrafica_magazzino() {}
|
||||
};
|
||||
|
@ -98,6 +98,9 @@ protected:
|
||||
virtual bool destroy(void);
|
||||
virtual bool menu(MENU_TAG m);
|
||||
public:
|
||||
// @cmember Disabilita la verifica del modulo in chiave
|
||||
virtual bool check_autorization() const
|
||||
{return FALSE;}
|
||||
TStampa_sconti() {};
|
||||
virtual ~TStampa_sconti() {}
|
||||
};
|
||||
|
@ -28,8 +28,8 @@
|
||||
|
||||
|
||||
class TStampa_condizioni_vendita: public TPrint_application {
|
||||
TRelation *_rel; // relazione principale
|
||||
TString16 _condven; // stringa che indica il tipo di archivio
|
||||
TRelation *_rel; // relazione principale
|
||||
TString16 _condven; // stringa che indica il tipo di archivio
|
||||
bool _codlis_catven; // booleano di abilitazione della categoria di vendita nella chiave dei listini
|
||||
bool _codcon_codcf; // booleano di abilitazione del codice cliente/fornitore nella chiave dei contratti
|
||||
bool _listval; // booleano di abilitazione della stampa dei listini in valuta
|
||||
@ -46,6 +46,11 @@ protected:
|
||||
virtual void preprocess_header(void);
|
||||
virtual void preprocess_footer(void);
|
||||
//virtual void process_link(int, const char *);
|
||||
public:
|
||||
// @cmember Disabilita la verifica del modulo in chiave
|
||||
virtual bool check_autorization() const
|
||||
{return FALSE;}
|
||||
|
||||
};
|
||||
|
||||
inline TStampa_condizioni_vendita& app() {return (TStampa_condizioni_vendita&) main_app();}
|
||||
|
@ -41,6 +41,10 @@ protected:
|
||||
virtual void set_page(int, int);
|
||||
virtual void preprocess_header(void);
|
||||
virtual void process_link(int, const char *);
|
||||
public:
|
||||
// @cmember Disabilita la verifica del modulo : essendo una anagrafica, va sempre abilitata
|
||||
virtual bool check_autorization() const
|
||||
{return FALSE;}
|
||||
};
|
||||
|
||||
|
||||
|
@ -1062,6 +1062,9 @@ protected:
|
||||
virtual bool create();
|
||||
|
||||
public:
|
||||
// @cmember Disabilita la verifica del modulo in chiave
|
||||
virtual bool check_autorization() const
|
||||
{return FALSE;}
|
||||
TRicalcola_application() { }
|
||||
virtual ~TRicalcola_application() { }
|
||||
};
|
||||
|
@ -4,9 +4,9 @@ Picture = <ve00.bmp>
|
||||
Module = 0
|
||||
Flags = "F"
|
||||
Item_01 = "Archivi e tabelle di base", [ACQVEN_001]
|
||||
Item_02 = "Documenti", <veprassi.men>
|
||||
Item_02 = "Documenti di vendita", <veprassi.men>
|
||||
Item_03 = "Effetti", <efprassi.men>
|
||||
Item_04 = "Provvigioni Agenti", <prprassi.men>
|
||||
Item_04 = "Provvigioni agenti", <prprassi.men>
|
||||
Item_05 = "Ordini", <orprassi.men>
|
||||
Item_06 = "Statistiche di vendita", <svprassi.men>
|
||||
Item_07 = "Servizi", [ACQVEN_021]
|
||||
|
@ -994,7 +994,7 @@ int TDocumento::write_rewrite(TBaseisamfile & f, bool re) const
|
||||
err = occ.rewrite(o);
|
||||
}
|
||||
}
|
||||
if (_has_provv && tipo().provvigioni() && tipo().stato_provvigioni() >= stato())
|
||||
if (_has_provv && tipo().provvigioni() && tipo().stato_provvigioni() <= stato())
|
||||
myself.write_provvigioni();
|
||||
}
|
||||
if (tipo().statistiche() && _has_stat_ven)
|
||||
@ -1042,6 +1042,18 @@ int TDocumento::remove(TBaseisamfile& f) const
|
||||
if (_docs_to_agg.items() == 0)
|
||||
_st_agg.update();
|
||||
}
|
||||
if (_has_provv && tipo().provvigioni())
|
||||
{
|
||||
TString agente(get(DOC_CODAG));
|
||||
const int anno = TDocumento::anno();
|
||||
TString codnum(numerazione());
|
||||
const long ndoc = numero();
|
||||
|
||||
// Legge le provvigioni per questo documento
|
||||
_provv_agente->read(agente, anno,codnum,ndoc);
|
||||
// Le rimuove
|
||||
_provv_agente->remove();
|
||||
}
|
||||
return TMultiple_rectype::remove(f);
|
||||
}
|
||||
|
||||
@ -1055,7 +1067,10 @@ TProvvigioni_agente& TDocumento::calc_provvigioni(const bool generata)
|
||||
const long ndoc = numero();
|
||||
TDate datadoc(data());
|
||||
|
||||
_provv_agente->read(agente, anno,codnum,ndoc); // Legge le provvigioni per questo documento
|
||||
while (_provv_agente->read(agente, anno,codnum,ndoc) == _islocked) // Legge le provvigioni per questo documento
|
||||
if (!yesno_box("Dati agente %s in uso da un altro utente. Riprovo?", (const char*) agente))
|
||||
return *_provv_agente;
|
||||
|
||||
const real perc = _provv_agente->perc_fatt();
|
||||
const real tot_provv = provvigione();
|
||||
real provv_fat = (tot_provv / 100.0) * perc; // Provvigione sul fatturato (rata 0)
|
||||
@ -1105,9 +1120,9 @@ TProvvigioni_agente& TDocumento::calc_provvigioni(const bool generata)
|
||||
// data scadenza viene settata uguale alla data documento
|
||||
// la provvigione rimanente va suddivisa in rate a seconda del codice pagamento
|
||||
const int nrate = pag1.n_rate();
|
||||
for (int i = 0; i < nrate+1; i++)
|
||||
for (int i = 0; i <= nrate; i++)
|
||||
{
|
||||
TRata& rt = rd.row(i, isnew);
|
||||
TRata& rt = rd.row(i, TRUE); // Se non esiste la rata ne forza la creazione
|
||||
rt.set_rata(i);
|
||||
rt.set_datascad(i == 0 ? datadoc : pag1.data_rata(i-1));
|
||||
rt.set_tipopag(i == 0 ? 1 : pag1.tipo_rata(i-1));
|
||||
@ -1117,7 +1132,8 @@ TProvvigioni_agente& TDocumento::calc_provvigioni(const bool generata)
|
||||
rt.set_generata();
|
||||
}
|
||||
// Rimuove eventuali righe in eccesso
|
||||
for (i = nrate; i < _provv_agente->items(); i++)
|
||||
const int rd_items = rd.items(); // Rate precedenti
|
||||
for (i = nrate+1; i < rd_items; i++)
|
||||
rd.remove_rata(i);
|
||||
delete pag2;
|
||||
return *_provv_agente;
|
||||
|
@ -29,7 +29,7 @@ Item_04 = "Scarico e ripristino documenti", "ve5 -0", ""
|
||||
|
||||
[PRASSIVE_052]
|
||||
Caption = "Configurazione"
|
||||
Picture = <ve01.bmp>
|
||||
Picture = <ba04.bmp>
|
||||
Module = 0
|
||||
Flags = ""
|
||||
Item_01 = "Personalizzazione documenti", [PRASSIVE_003]
|
||||
@ -62,5 +62,4 @@ Item_05 = "Formule righe documento", "ba3 -1 %FRR", ""
|
||||
Item_06 = "Formule ricalcolo magazzino", "ba3 -1 %FRM", ""
|
||||
Item_07 = "Elaborazioni differite", "ba3 -1 %ELD", ""
|
||||
Item_08 = "Stati documento", "ba3 -1 %STD", ""
|
||||
Item_09 = "Collegamenti immediati", "disabled", ""
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user