Sostituite le tabelle Agenti e Provvigioni con i rispettivi archivi. !!! Devono essere sostituite sui menu e si devono controllare di conseguenza i moduli statistiche di vendita e magazzino !!! Modificato il meccanismo di ricerca delle percentuali di provvigione. Bisogna testare tutte le combinazioni basandosi sulle possibilita' offerte dal nuovo archivio agenti. Per quanto riguarda il valore della provvigione alla percentuale di base viene aggiunta la percentuale reperita con la sequenza alternativa definita sull'archivio agenti. Aggiunto il metodo agente sui documenti. Aggiunto sui tipi documento il flag attivo per le provvigioni di ovvio significato e lo stato a partire dal quale si debbono memorizzare le provvigioni. Aggiunta la funzione TOTPROVV(ndec = AUTO_DECIMALS) per i documenti. Restituisce il valore totale delle provvigioni tenedo conto anche del campo provvigioni definito per l'agente. !!! Deve essere utilizzato solo per avere il valore della provvigione da utilizzare in un calcolo e non per visualizzare o calcolare la provvigione stessa. Aggiunta definizione del campo provvigione della riga (PROVV=....) nei profili riga dei documenti per definire la provvigione della riga quando non e' il default (importo scontato * percentuale di provvigione della riga). Aggiunto il metodo provvigioni alle righe. Aggiunta definizione del campo provvigione del documento (TOTPROVV=....) nei profili documento per definire la provvigione totale quando non e' il default (somma delle provvigioni della riga). Il campo che viene definito come totale delle provvigioni non puo' contenere la funzione TOTPROVV. Aggiunto il metodo provvigione del documento. git-svn-id: svn://10.65.10.50/trunk@5478 c028cbd2-c16b-5b4b-a496-9718f37d4682
80 lines
2.7 KiB
C++
Executable File
80 lines
2.7 KiB
C++
Executable File
#ifndef __SCONTI_H
|
|
#define __SCONTI_H
|
|
|
|
#ifndef __REAL_H
|
|
#include <real.h>
|
|
#endif
|
|
|
|
#ifndef __TCLIFOR_H
|
|
#include "clifor.h"
|
|
#endif
|
|
|
|
#ifndef __VELIB_H
|
|
#include "velib.h"
|
|
#endif
|
|
|
|
#ifndef __CONFIG_H
|
|
#include <config.h>
|
|
#endif
|
|
|
|
class TCond_vendita : public TObject
|
|
{
|
|
TString80 _sconto;
|
|
TString16 _codiva;
|
|
bool _ivarid;
|
|
real _prezzo;
|
|
real _provv;
|
|
real _molt_sconto;
|
|
TCli_for * _clifo;
|
|
TLocalisamfile _condv;
|
|
TLocalisamfile _rcondv;
|
|
TLocalisamfile * _anamag;
|
|
TLocalisamfile _sconti;
|
|
TLocalisamfile * _umart;
|
|
TConfig * _config_ditta;
|
|
TDocumento_mask * _testa;
|
|
TMask * _riga;
|
|
bool _load_mask;
|
|
|
|
bool cerca(int tiporicerca);
|
|
|
|
real normalize_valuta(const real & val, const char * val_rif = "");
|
|
|
|
protected:
|
|
void set_prezzo(const real & prezzo, const char * val_rif = "");
|
|
void set_provv(const real & provv);
|
|
void set_iva(const TString & codiva);
|
|
void update_omaggi(bool full);
|
|
|
|
TConfig & config_ditta() const { CHECK(_config_ditta, "Configurazione ditta non inizializzata"); return * _config_ditta; }
|
|
TDocumento_mask & testa() const { CHECK(_testa, "Maschera testata non inizializzata"); return * _testa; }
|
|
TMask & riga() const { CHECK(_testa, "Maschera testata non inizializzata"); return * _riga; }
|
|
TLocalisamfile & anamag() const { CHECK(_anamag, "Anagrafica di magazzino non inizializzata") ; return *_anamag; }
|
|
TLocalisamfile & umart() const { CHECK(_umart, "Anagrafica di unita' di misura magazzino non inizializzata") ; return *_umart; }
|
|
|
|
public:
|
|
TCli_for & clifo() const { CHECK(_clifo, "Cliente/fornitore non inizializzato"); return * _clifo; }
|
|
bool set_sconto( const char * exp, bool signal = FALSE );
|
|
const TString& get_sconto() const { return _sconto; }
|
|
real sconto_val() const { return _molt_sconto;}
|
|
real get_prezzo() const { return _prezzo; }
|
|
real get_provv() const { return _provv; }
|
|
real get_percprovv(char tipoprovv, const TString & codpr, TLocalisamfile & age) const;
|
|
const TString & get_iva() const { return _codiva; }
|
|
|
|
void set_clifo( TCli_for * clifo) { _clifo = clifo; }
|
|
void set_config( TConfig * ditta) { _config_ditta = ditta; }
|
|
void set_testa( TDocumento_mask * testa ){ _testa = testa; }
|
|
void set_riga( TMask * riga ){ _riga = riga; }
|
|
void set_anamag(TLocalisamfile & anamag) { _anamag = &anamag; }
|
|
void set_umart(TLocalisamfile & umart) { _umart = &umart; }
|
|
void ricerca(bool load_um_only = FALSE, bool load_scagl_only = FALSE);
|
|
bool gestum() const { return _condv.get_bool("GESTUM"); }
|
|
|
|
TCond_vendita(TCli_for * clifo = NULL, TConfig * _ditta = NULL, TDocumento_mask * testa = NULL, TMask * riga = NULL,
|
|
TLocalisamfile * anamag = NULL, TLocalisamfile * umart = NULL);
|
|
~TCond_vendita() {}
|
|
};
|
|
|
|
#endif
|