Files correlati : ve0.exe Ricompilazione Demo : [ ] Commento : Migliorato aggiornamento formule di testa git-svn-id: svn://10.65.10.50/branches/R_10_00@22442 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			87 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
| #ifndef __VELIB05_H
 | |
| #define __VELIB05_H
 | |
| 
 | |
| #ifndef __VELIB_H 
 | |
| #include "velib.h"
 | |
| #endif
 | |
| 
 | |
| struct dec_parm 
 | |
| {
 | |
| 	int qta_lit; 
 | |
| 	int qta_val;
 | |
| 	// add other groups here
 | |
| };
 | |
| 
 | |
| //////////////////////////////////////////////////////////////////////////////////////////////
 | |
| // classe TDocumentoEsteso: oggetto che ha come finalita' il calcolo dei riepiloghi IVA
 | |
| //////////////////////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| class TDocumentoEsteso : public TDocumento
 | |
| { 
 | |
| 	// Parametri del documento
 | |
| 	dec_parm _parm;									// Parametri per gli arrotondamenti
 | |
| 	TRiga_documento * _conai;
 | |
| 
 | |
| 	// membri per il calcolo del riepilogo IVA
 | |
| 
 | |
| 	int _sum_filter;								// Filtro corrente della riga TRiepilogo_iva in corso di stampa (-1 se non ha ancora calcolato la tabella)
 | |
| 	bool _sum_selected;							// true se ha selezionato una riga del riepilogo, funge da semaforo per leggere la prossima
 | |
| 	TString_array _order_array;			// Array di TToken_string contenenti i codici IVA soddisfacenti ad ogni tipo di filtro
 | |
| 	TAssoc_array _summary_table;		// Array associativo contenete imonibili ed imposte pronte per la stampa;
 | |
| 	TArray _summary_array;					// Array dove vengono memorizzate le imposte/imponibili per riga
 | |
| 	TRiepilogo_iva _sum_current;		// Riga corrente del riepilogo
 | |
| 
 | |
| 	// membri per il calcolo del riepilogo scadenze
 | |
| 	TString_array _scadenze_array;	// Array che contiene le scadenze ("<data>|<importo>")
 | |
| 	int _scadenze_current;					// indice per identificare l'elementi corrente sull'array (-1 se non ha ancora calcolato)
 | |
| 
 | |
| protected:
 | |
|   virtual int readat(TBaseisamfile& file, TRecnotype nrec, word lockop);
 | |
| 
 | |
| public: 
 | |
| 	// Funzioni per il riepilogo IVA
 | |
| 	const bool summary_compiled() { return _sum_filter > -1; }
 | |
| 	void compile_summary(); // Aggiorna la tabella riepilogativa		
 | |
| 	void summary_filter(byte selector);	// filtra la tabellina secondo il filtro corrente se non e' gia' stato fatto
 | |
| 	void summary_reset(bool force=FALSE); // riposiziona l'array dei codici IVA (_order_array). Se il parametro e' true forza il ricalcolo della tabella 
 | |
| 	void summary_set_next(); // seleziona il prossimo elemento del filtro
 | |
| 	const TRiepilogo_iva& sum_current() const { return _sum_current; } // ritorna la riga corrente del filtro corrente
 | |
| 	const char * summary_get(const TString& w); // ritorna l'informazione richiesta estratta dall'elemento corrente
 | |
| 	int	summary_items() { return tabella_iva().items();} // ritorna il numero di righe in totale della tabellina
 | |
| 	const TAssoc_array& summary() const { return _summary_table; }
 | |
| 	const TArray& summary_array() const { return _summary_array;}
 | |
| 	
 | |
| 	// Funzioni per il ricalcolo delle scadenze
 | |
| 	void scadenze_reset(); // riposiziona sulla prima scadenza
 | |
| 	void scadenze_recalc(); // resetta e ricalcola le scadenze
 | |
| 	void scadenze_set_next(); // seleziona il prossimo elemento dell'array delle scadenze
 | |
| 	const char * scadenze_get(const TString& w); // reperisce l'informazione richiesta dall'elemento corrente
 | |
| 	int	scadenze_items() { return _scadenze_array.items(); }	// restituisce il numero di scadenze
 | |
| 	TString_array& scadenze() { return _scadenze_array; }
 | |
| 
 | |
| 	// restituisce tot_imponibili, tot_esenti, tot_nonsoggetti a seconda del selettore:	
 | |
| 	// 1 = regime normale
 | |
| 	// 2 = da ventilare (non usato)
 | |
| 	// 4 = esenti
 | |
| 	// 8 = non imponibili
 | |
| 	// 16 = non soggetti
 | |
| 	// pertanto i non imponibili avranno selettore 1 e gli esenti selettore 4.
 | |
| 	// per avere esenti + non soggetti il selettore sara' 20 e cosi' via.
 | |
| 	real tot_imponibili(byte selector);
 | |
| 	virtual int rows() const { return TDocumento::rows() + ((_conai != NULL) ? 1 : 0); } 
 | |
| 	virtual TRiga_documento & row(int index);
 | |
| 
 | |
| 	void set_riga_conai();
 | |
| 
 | |
| 	
 | |
| 	// Funzioni per settare i parametri
 | |
| 	void set_decimals(dec_parm & parm) { _parm = parm ; }
 | |
| //	void set_condv(TCli_for * cli); // Cambia le condizioni di vendita
 | |
| 	TDocumentoEsteso (const TRectype & rec, dec_parm & parm) ;
 | |
| 	TDocumentoEsteso (const TRectype & rec) ;
 | |
| 	TDocumentoEsteso () ;
 | |
| 	virtual ~TDocumentoEsteso();
 | |
| };
 | |
| 
 | |
| #endif
 |