Files correlati : cg2.exe cg2100a.msk cg2100k.msk Ricompilazione Demo : [ ] Commento : Rimodernata maschera di selezione colori di prima nota git-svn-id: svn://10.65.10.50/trunk@18382 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			320 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			320 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
| #ifndef __CG2102_H 
 | |
| #define __CG2102_H
 | |
| 
 | |
| #ifndef __RELAPP_H
 | |
| #include <relapp.h>
 | |
| #endif
 | |
| 
 | |
| #ifndef __CGPAGAME_H
 | |
| #include "cgpagame.h"
 | |
| #endif
 | |
| 
 | |
| #ifndef __CGSALDAC_H
 | |
| #include "cgsaldac.h"
 | |
| #endif
 | |
| 
 | |
| #ifndef __CGLIB02_H
 | |
| #include "cglib02.h"
 | |
| #endif
 | |
| 
 | |
| #ifndef __CG2101_H
 | |
| #include "cg2101.h"
 | |
| #endif
 | |
| 
 | |
| #ifndef __CG2103_H
 | |
| #include "cg2103.h"
 | |
| #endif
 | |
| 
 | |
| class TDati_mov_auto;
 | |
| 
 | |
| class TPrimanota_application : public TRelation_application
 | |
| {                    
 | |
|   TMovimentoPN* _rel;         // Relazione principale
 | |
| 
 | |
|   TPagamento*   _pag;
 | |
|   
 | |
|   bool _ges_val, _ges_sal;    // Gestione valuta e saldaconto
 | |
|   bool _num_cli, _num_for;    // Riferimento partita allineato a destra
 | |
| 	bool _liqdiff;							// Liquidazione differita
 | |
|   bool _npart_is_prot;        // Riferimento partita = n. prot. IVA anziche' doc
 | |
|   
 | |
|   bool _skip_giornale_check;  // Ignora controllo data stampa libro giornale
 | |
|   bool _skip_bollato_check;   // Ignora controllo data stampa bollato
 | |
|   
 | |
|   bool _savenew;              // Registra e nuovo
 | |
|   short _firstfocus;          // Primo campo della maschera a prendere il focus
 | |
|   
 | |
|   bool _sheet_shown;          // Lo sheet e' gia' stato visualizzato una volta?
 | |
| 	bool _swap_mask;
 | |
| 
 | |
|   bool _is_saldaconto;        // saldaconto si/no (vede parametri e causale)
 | |
|   bool _scad_free;            // posso variare liberamente le rate della fattura 
 | |
|   bool _quadratura;           // Bottone quadratura automatica per ATS 
 | |
| 	TString _perc_attesa_fld;   // Percentuale del fornitore/cliente
 | |
|   
 | |
|   TSaldo_agg _saldi;          // Saldi da aggiornare
 | |
|   TPartite_array _partite;    // Partite coinvolte
 | |
| 
 | |
|   TMask* _msk[4];             // Maschere di query, cg, iva, occasionali
 | |
|   int _mode;                  // Modo maschera corrente
 | |
|   bool _as400;                // Movimento trasferito da as400?
 | |
|   bool _sal_dirty;            // Il saldaconto e' stato "toccato"?
 | |
| 
 | |
|   TipoIVA _iva;               // Tipo di IVA corrente
 | |
|   TCausale* _causale;         // Causale corrente
 | |
|   TLibro_giornale* _giornale; // Libro giornale corrente
 | |
|   long _lastreg;              // Numero ultima registrazione
 | |
|   
 | |
|   TDate _last_dreg;           // Ultima data registrazione inserita
 | |
|   TDate _last_dcom;           // Ultima data competenza inserita
 | |
|   
 | |
|   TDati_mov_auto* _automatico;// Dati per gestire incasso immediato
 | |
| 
 | |
|   TBill _conto_ricavo;        // Conto di ricavo del clifo
 | |
|   
 | |
|   TToken_string _tmp;         // Stringa temporanea da ritornare
 | |
|   TString_array _pag_rows;    // Copia dello sheet delle rate
 | |
|   
 | |
|   TEsercizi_contabili _esercizi; // Tabella degli esercizi contabili
 | |
|   
 | |
|   TAssoc_array _colori;       // Colori delle righe  
 | |
|   
 | |
|   static bool showpartite_handler(TMask_field& f, KEY k);
 | |
|   static bool speserimb_handler(TMask_field& f, KEY k);
 | |
|   static bool altrespese_handler(TMask_field& f, KEY k);
 | |
|   static bool abbatt_handler(TMask_field& f, KEY k);
 | |
|   static bool abbpass_handler(TMask_field& f, KEY k);
 | |
|   static bool ritprof_handler(TMask_field& f, KEY k);
 | |
|   static bool diffcamb_handler(TMask_field& f, KEY k);
 | |
|   static bool suspended_handler(TMask_field& f, KEY k);
 | |
|   static bool num_handler(TMask_field& f, KEY key);
 | |
|   static bool caus_query_handler(TMask_field& f, KEY key);
 | |
|   static bool caus_modify_handler(TMask_field& f, KEY key);
 | |
|   static bool datareg_handler(TMask_field& f, KEY key);
 | |
|   static bool datacomp_handler(TMask_field& f, KEY key);
 | |
|   static bool data74ter_handler(TMask_field& f, KEY key);
 | |
|   static bool datadoc_handler(TMask_field& f, KEY key);
 | |
|   static bool numdoc_handler(TMask_field& f, KEY key);
 | |
|   static bool annorif_handler(TMask_field& f, KEY key);
 | |
|   static bool numrif_handler(TMask_field& f, KEY key);
 | |
|   static bool protiva_handler(TMask_field& f, KEY key);
 | |
|   static bool clifo_handler(TMask_field& f, KEY key);
 | |
|   static bool totdoc_handler(TMask_field& f, KEY key);
 | |
|   static bool totdocval_handler(TMask_field& f, KEY key);
 | |
|   static bool ritfis_handler(TMask_field& f, KEY key);
 | |
|   static bool ritsoc_handler(TMask_field& f, KEY key);
 | |
|   static bool main_codiva_handler(TMask_field& f, KEY key);
 | |
|   static bool dataintra_handler(TMask_field& f, KEY key);
 | |
|   static bool corrlire_handler(TMask_field& f, KEY key);
 | |
|   static bool corrvaluta_handler(TMask_field& f, KEY key);
 | |
|   static bool occas_code_handler(TMask_field& f, KEY key);
 | |
|   static bool occas_cfpi_handler(TMask_field& f, KEY key);
 | |
|   static bool occas_handler(TMask_field& f, KEY key);
 | |
|   static bool solaiva_handler(TMask_field& f, KEY key);
 | |
|   static bool descr_handler(TMask_field& f, KEY k);
 | |
|   
 | |
|   static bool sheet_clifo_handler(TMask_field& f, KEY k);
 | |
|   static bool sheet_mastrino_handler(TMask_field& f, KEY k);
 | |
|   static bool iva_sottoconto_handler(TMask_field& f, KEY k);
 | |
|   static bool imponibile_handler(TMask_field& f, KEY key);
 | |
|   static bool detrazione_handler(TMask_field& f, KEY key);
 | |
|   static bool codiva_handler(TMask_field& f, KEY key);
 | |
|   static bool imposta_handler(TMask_field& f, KEY key);
 | |
|   static bool dareavere_handler(TMask_field& f, KEY k);
 | |
|   static bool fase_handler(TMask_field& f, KEY key);
 | |
|   static bool cg_tipo_handler(TMask_field& f, KEY key);
 | |
|   static bool cg_gruppo_handler(TMask_field& f, KEY key);
 | |
|   static bool cg_conto_handler(TMask_field& f, KEY key);
 | |
|   static bool cg_sottoconto_handler(TMask_field& f, KEY key);
 | |
| 
 | |
|   static bool codpag_handler(TMask_field& f, KEY key);
 | |
|   static bool valuta_handler(TMask_field& f, KEY key);
 | |
|   static bool datacambio_handler(TMask_field& f, KEY key);
 | |
|   static bool cambio_handler(TMask_field& f, KEY key);
 | |
|   static bool reset_handler(TMask_field& f, KEY key);
 | |
|   static bool nrate_handler(TMask_field& f, KEY key);
 | |
|   static bool recalc_handler(TMask_field& f, KEY key);
 | |
|   static bool codcab_handler(TMask_field& f, KEY key);
 | |
|   static bool tipopag_handler(TMask_field& f, KEY key);
 | |
|   static bool prorata_handler(TMask_field& f, KEY k);
 | |
|   static bool linkdoc_handler(TMask_field& f, KEY k);
 | |
|   static bool mastrino_handler(TMask_field& f, KEY k);
 | |
|                
 | |
|   static bool ratalit_handler(TMask_field& f, KEY key);
 | |
|   static bool rataval_handler(TMask_field& f, KEY key);
 | |
| 
 | |
|   static bool iva_notify(TSheet_field& s, int r, KEY key);
 | |
|   static bool iva_handler(TMask_field& f, KEY key);
 | |
|   static bool cg_notify(TSheet_field& s, int r, KEY key);
 | |
|   static bool cg_handler(TMask_field& f, KEY key);
 | |
|   
 | |
|   static bool pag_notify(TSheet_field& s, int r, KEY key);
 | |
|   static bool pag_sheet_handler(TMask_field& f, KEY key);
 | |
|   static bool colors_handler(TMask_field& f, KEY k);
 | |
| 
 | |
|   static bool quadratura_handler(TMask_field& f, KEY k); // Bottone quadratura per ATS
 | |
|   
 | |
|   void reset_sheet_row(TSheet_field& s, int n);
 | |
|   int crea_somma_spese(TImporto& imp);
 | |
|   void update_saldo_riga(int r);
 | |
|   void link_mastrino(const TBill& bill) const;
 | |
| 
 | |
| protected:                              // TApplication
 | |
|   virtual void on_firm_change();
 | |
|   virtual void on_config_change();
 | |
|   virtual void print();
 | |
|   virtual void ini2mask(TConfig& ini, TMask& msk, bool query);
 | |
|   virtual void mask2ini(const TMask& msk, TConfig& ini);
 | |
|   virtual bool save(bool check_dirty);
 | |
| 
 | |
|   bool get_mask_swap_file(TFilename& name) const;
 | |
|   bool force_mask_swap(const TCausale& old_caus, const TCausale& new_caus);
 | |
| 
 | |
| protected:                              // TRelation_application
 | |
|   virtual bool user_create();
 | |
|   virtual bool user_destroy();
 | |
|   virtual bool changing_mask(int mode);
 | |
|   virtual TMask* get_mask(int mode);
 | |
|   virtual TRelation* get_relation() const { return _rel; }
 | |
|   virtual void init_query_mode(TMask& m);
 | |
|   virtual void init_insert_mode(TMask& m);
 | |
|   virtual void init_modify_mode(TMask& m);
 | |
|   virtual bool save_and_new() const;
 | |
|   virtual bool get_next_key(TToken_string& key);
 | |
|   virtual int read(TMask& m);
 | |
|   virtual int write(const TMask& m);
 | |
|   virtual int rewrite(const TMask& m);
 | |
|   virtual bool remove();
 | |
|   virtual void write_enable(bool) {}
 | |
|   virtual bool protected_record(TRectype& rec);
 | |
| 
 | |
| protected:
 | |
|   void check_saldi();
 | |
|   void genera_automatico(int tipo, const char* causimm); // 0=nessuno, 1=incasso, 2=regolarizzazione
 | |
|   void gioca_cambi(int force = 0x00);
 | |
|   
 | |
|   TMask* load_mask(int n);
 | |
|   TMask& occas_mask() { return *load_mask(3); }
 | |
|   
 | |
|   void mask2rel(const TMask& m);
 | |
| 
 | |
|   TipoIVA iva() const { return _iva; }
 | |
|   char clifo() const { return iva() == iva_vendite ? 'C' : 'F'; }
 | |
|   bool gestione_valuta() const { return _ges_val; }
 | |
|   bool gestione_saldaconto() const { return _ges_sal; }
 | |
|   bool npart_is_prot()        { return _npart_is_prot; }
 | |
| 
 | |
|   bool is_saldaconto() const { return _is_saldaconto; }
 | |
|   bool is_fattura() const { return is_saldaconto() && causale().tipomov() == 1; }
 | |
|   bool is_nota_credito() const { return is_saldaconto() && causale().tipomov() == 2; }
 | |
|   bool is_pagamento() const { return is_saldaconto() && causale().tipomov() >= 3; }
 | |
|   bool activate_numrif(TMask& m, bool set_pag);
 | |
| 
 | |
|   void fill_sheet(TMask& m) const;
 | |
|   void init_mask(TMask& m);
 | |
|   
 | |
|   static TipoIVA reg2IVA(const char* registro, int anno);
 | |
|   static const real& cod2IVA(const TMask& m);
 | |
|   static real scorpora(real& imponibile, const real& percentuale);
 | |
|   static int get_importi_iva(const TToken_string& row, real& imp_det, real& iva_det, real& imp_ind, real& iva_ind);
 | |
|   static int bill2pos(const TBill& conto, char tipo);
 | |
| 
 | |
|   TipoIVA cau2IVA(const char* causale, int anno);
 | |
|   bool IVA2bill(const TCodiceIVA& iva, TBill& bill);
 | |
|   int bill2contr(const TBill& c, char sezione) const;
 | |
|   int bill_used(const TBill& conto) const;
 | |
|   TBill& ivas_bill(TBill& tc);
 | |
| 
 | |
|   void load_colors();
 | |
|   void save_colors();
 | |
|   COLOR type2color(char tipor, char tipoc);  
 | |
|   void set_type_color(char tipor, char tipoc, COLOR col);
 | |
|   void set_colors();
 | |
|   
 | |
|   bool read_caus(const char* cod, int year);
 | |
|   TLibro_giornale& giornale() { return *_giornale; }
 | |
| 
 | |
|   bool test_swap(bool ritsoc);
 | |
|   TImporto real2imp(const real& r, char tipo);
 | |
|   real totale_documento();
 | |
|   
 | |
|   void ivas_pack();
 | |
|   void cgs_pack();
 | |
|   bool ci_sono_importi() const;
 | |
|   real calcola_saldo() const;
 | |
|   real calcola_imp() const;
 | |
| 
 | |
|   void add_cgs_tot(TMask& m);
 | |
|   int set_cgs_row(int n, const TImporto& importo, TBill& conto, const char* desc, char tipo, 
 | |
|                   const char* cms = NULL, const char* fas = NULL);
 | |
|   void set_cgs_imp(int n, const TImporto& importo);
 | |
|   bool add_cgs_imp(int n, const TImporto& importo);
 | |
|   bool sub_cgs_imp(int n, const TImporto& importo);
 | |
|   void disable_cgs_cells(int n, char tipo);      
 | |
| 
 | |
|   void add_cgs_rit(bool fisc);        
 | |
|   void generazione_righe_cg(int r);
 | |
|   
 | |
|   void reset_cgs_row(int n)  { reset_sheet_row(cgs(), n); }
 | |
|   void reset_ivas_row(int n) { reset_sheet_row(ivas(), n); }
 | |
|   
 | |
|   TPagamento& pagamento() const;
 | |
| 
 | |
|   void set_pagamento(const char* c, const char* d);
 | |
|   void set_totale_pagamento(bool update);
 | |
|   void reset_pagamento();
 | |
|   void set_scadenze(TMask& m);
 | |
|   void set_banche(TMask& m);
 | |
|   bool read_scadenze(TMask& m);
 | |
|   void write_scadenze(const TMask& m);
 | |
|   void remove_scadenze(const TMask& m, const char* rif);
 | |
|   void renumber_partita(TMask& m, const char* oldp, const char* newp);
 | |
|   void recalc_scadenze(const TDate& d);
 | |
|   
 | |
|   bool test_prorata();
 | |
|   bool aggiusta_prorata();
 | |
| 
 | |
|   int cerca_conto_cf(TBill& bill) const;
 | |
|   
 | |
|   bool edit_partite(const TMask& m, int riga);
 | |
|   bool crea_partita(const TBill& bill, int anno, const TString& numero, int numrig, const TImporto& importo);
 | |
| 
 | |
|   bool notify_cgline_deletion(TPartita& partita, long nreg, int numrig);
 | |
|   bool notify_cgline_deletion(int numrig);
 | |
|   
 | |
|   bool is_percipient(long forn, char& tipper, long& codper) const;
 | |
|   long calcola_m770(int tipo_coll, real& spese, real& compenso, real& iva, real& ritfis);
 | |
|   bool link_m770();                                 
 | |
|   bool link_cesp(const TMask& msk, const char* action);
 | |
|   bool link_intra(const TMask& msk, const char* action);
 | |
|   bool link_anal(const TMask& msk, const char* action);
 | |
| 
 | |
| public:               
 | |
|   static int type2pos(char tipo);
 | |
|   static char row_type(const TToken_string& s);
 | |
| 
 | |
|   void type2colors(char tipor, COLOR& back, COLOR& fore);
 | |
|   void set_type_colors(char tipor, COLOR back, COLOR fore);
 | |
|   void reset_colors();
 | |
| 
 | |
|   TCausale& causale() const { return *_causale; }
 | |
|   TPartite_array& partite() { return _partite; }   // Partite editate
 | |
|   bool edit_pagamento(TPartita& p, int nriga, int nrata, int nrigp);
 | |
|   bool notify_edit_pagamento(TPartita& partita, TRectype& new_pag, 
 | |
|                              const TValuta& valuta, int deleting = 0);
 | |
| 
 | |
|   TSheet_field& cgs() const;
 | |
|   TSheet_field& ivas() const;
 | |
|   TSheet_field& pags() const;
 | |
|   TString_array& pag_rows() { return _pag_rows; }
 | |
|   TImporto get_cgs_imp(int n) const;
 | |
| 
 | |
|   TPrimanota_application();
 | |
|   virtual ~TPrimanota_application() { }
 | |
| };
 | |
| 
 | |
| inline TPrimanota_application& app() 
 | |
| { return (TPrimanota_application&)main_app(); }          
 | |
| 
 | |
| #endif
 |