b41f83ac9d
Aggiunto flag stampa tutti i movimenti alla stampa solleciti e aggiornato programma programma git-svn-id: svn://10.65.10.50/trunk@2610 c028cbd2-c16b-5b4b-a496-9718f37d4682
205 lines
6.6 KiB
C++
Executable File
205 lines
6.6 KiB
C++
Executable File
|
|
#ifndef __SC2401_H
|
|
#define __SC2401_H
|
|
|
|
#include <printer.h>
|
|
#include <form.h>
|
|
|
|
#include "../cg/saldacon.h"
|
|
#include "sc2102.h"
|
|
#include "sc2400a.h"
|
|
#include "sc21pec.h"
|
|
|
|
#include <clifo.h>
|
|
#include <causali.h>
|
|
#include <pagsca.h>
|
|
#include <scadenze.h>
|
|
|
|
#ifndef __SCSELECT_H
|
|
#include "scselect.h"
|
|
#endif
|
|
|
|
class TESSL_mask: public TSelection_mask
|
|
|
|
{
|
|
TRelation _ditta;
|
|
TString _tmp;
|
|
protected:
|
|
virtual void on_firm_change();
|
|
virtual void start_run();
|
|
|
|
public:
|
|
const char *get_prof_base() const;
|
|
const TString &get_prof_code() const;
|
|
const char *get_prof_name() const;
|
|
const TString &get_prof_lang() const;
|
|
|
|
TESSL_mask(const char *name);
|
|
virtual ~TESSL_mask();
|
|
};
|
|
|
|
class TESSL_form;
|
|
///////////////////////////////////////////////////////////
|
|
// TESSL_row
|
|
///////////////////////////////////////////////////////////
|
|
|
|
class TESSL_row : public TSortable
|
|
|
|
{
|
|
TDate _data; // Data scadenza o pagamento
|
|
int _riga; // Riga della fattura
|
|
int _rata; // Numero rata o progrssivo
|
|
|
|
TString _causale; // Codice causale
|
|
TString _descrizione; // Sua descrizione
|
|
|
|
TDate _data_doc; // Data del documento
|
|
TString _num_doc; // Numero documento
|
|
long _num_prot; // Protocollo IVA
|
|
long _num_reg; // Numero registrazione
|
|
TImporto _importo; // Importo in valuta
|
|
real _importo_lire; // Importo in lire
|
|
real _scaduto; // Importo scaduto
|
|
real _esposto; // Importo esposto
|
|
bool _salvo_buon_fine; // Importo esposto salvo buon fine
|
|
real _totale; // Totale documento
|
|
TValuta _valuta; // Codice valuta, data cambio e cambio
|
|
|
|
protected: // TSortable
|
|
virtual int compare(const TSortable& s) const;
|
|
void set_imp(TForm_item& fi, const real& imp, bool valuta) const;
|
|
|
|
TESSL_form& form() const;
|
|
|
|
public:
|
|
int riga() const { return _riga; }
|
|
int rata() const { return _rata; }
|
|
|
|
void reset_uguali();
|
|
void descrizione(const char* s) { _descrizione = s; }
|
|
void importo(const TImporto& i) { _importo = i; }
|
|
void scaduto(const real& s) { _scaduto = s; }
|
|
void esposto(const real& e) { _esposto = e; }
|
|
void importo_in_lire(const real& il) { _importo_lire = il; }
|
|
void salvo_buon_fine(bool sbf) { _salvo_buon_fine = sbf; }
|
|
|
|
const TString& causale() const { return _causale; }
|
|
const TString& descrizione() const { return _descrizione; }
|
|
long num_reg() const { return _num_reg; }
|
|
const TValuta& valuta() const { return _valuta; }
|
|
const TImporto& importo() const { return _importo; }
|
|
real importo_in_lire() const { return _importo_lire; }
|
|
real scaduto() const { return _scaduto; }
|
|
real esposto() const { return _esposto; }
|
|
const TDate& data() const { return _data; }
|
|
bool in_valuta() const { return _valuta.in_valuta(); }
|
|
|
|
void print_on(TPrint_section& body);
|
|
|
|
TESSL_row(const TRiga_partite& row, const TDate& data, const TImporto& imp, int rata);
|
|
TESSL_row(const char* desc, const TImporto& imp, const TValuta& val);
|
|
virtual ~TESSL_row() {}
|
|
};
|
|
|
|
///////////////////////////////////////////////////////////
|
|
// TESSL_form: form speciale per estratti conto
|
|
///////////////////////////////////////////////////////////
|
|
|
|
class TESSL_form : public TForm
|
|
{
|
|
friend class TESSL_row;
|
|
|
|
static TESSL_form* _form;
|
|
|
|
enum { MAXTOT = 16 };
|
|
|
|
TCursor* _cursore;
|
|
TTotalizer _totali;
|
|
TDecoder _causali; // Decodificatore dei codici causale
|
|
TDecoder _valute; // Decodificatore dei codici valuta
|
|
TDecoder _movimenti; // Decodificatore delle descrizioni dei movimenti
|
|
|
|
|
|
TString _lingua;
|
|
TDate _dlo, _dls, _dir;
|
|
int _giorni_rischio;
|
|
bool _in_valuta;
|
|
bool _stampa_esp;
|
|
int _fincatura; // 0 = nessuna, 1 = testo, 2 = grafica
|
|
word _num_rip; // numero di righe usate per i riporti
|
|
word _total_rows; // numero di righe usate per i totali
|
|
word _maxtot; // numero massimo di totali
|
|
char _who;
|
|
|
|
protected:
|
|
void init_header(const TMask& m);
|
|
word ordina_totali_per_valuta(THash_object* tot[MAXTOT]);
|
|
int find_magic(TString& s, TString& magic1, TString& magic2) const;
|
|
void change_magic_body(const TESSL_row& o, TString& s);
|
|
void change_magic_footer(const THash_object& o, TString& s);
|
|
void modify_picture(TForm_item& fi, TString_array& op, const bool in_valuta);
|
|
void print_total(int riga, const THash_object& o);
|
|
|
|
void stampa_testata(TPrinter& p);
|
|
void stampa_pedata(TPrinter& p);
|
|
void stampa_riporti(TPrinter& p);
|
|
|
|
static void header_handler(TPrinter& p);
|
|
static void footer_handler(TPrinter& p);
|
|
|
|
public:
|
|
TTotalizer& totali() { return _totali; }
|
|
TDecoder& causali() { return _causali; }
|
|
TDecoder& valute() { return _valute; }
|
|
TDecoder& movimenti() { return _movimenti; }
|
|
|
|
const TDate& data_limite_operazione() const { return _dlo; }
|
|
const TDate& data_limite_scaduto() const { return _dls; }
|
|
int giorni_rischio() const { return _giorni_rischio; }
|
|
const TDate& data_inizio_rischio() const { return _dir; }
|
|
|
|
const TString& lingua() const { return _lingua; }
|
|
bool in_valuta() const { return _in_valuta; }
|
|
const TString& describe(short id, char sez = 'H', pagetype pt = last_page) const;
|
|
const char sezione_normale() const { return _who == 'C' ? 'D' : 'A' ; }
|
|
|
|
void azzera_totali();
|
|
void ultima_pagina();
|
|
virtual bool print_game(const TPartita& game);
|
|
|
|
TESSL_form(const TESSL_mask& m, bool gesval, short id_datalim = 0 , short id_datascad = 0, short id_giorni_rischio = 0);
|
|
virtual ~TESSL_form();
|
|
};
|
|
|
|
///////////////////////////////////////////////////////////
|
|
// TESSL_array
|
|
///////////////////////////////////////////////////////////
|
|
|
|
class TESSL_array : public TArray
|
|
{
|
|
TArray _scaduto; // Array di importi scaduti
|
|
|
|
const TESSL_form* _form;
|
|
|
|
protected:
|
|
TESSL_row& new_row(const TRiga_partite& row, const TDate& data, const TImporto& imp, int rata = 0);
|
|
void add_row(const TRiga_partite& row);
|
|
|
|
const TESSL_form& form() const { return *_form; }
|
|
real calcola_scaduto(const TRiga_scadenze& rata, bool valuta);
|
|
|
|
|
|
TImporto* importo_riga_scaduto_ptr(int n) const { return (TImporto*)_scaduto.objptr(n); }
|
|
TImporto& importo_riga_scaduto(int n);
|
|
|
|
TImporto importo(const TPartita& game, const TRectype& pag, bool valuta) const;
|
|
|
|
public:
|
|
TESSL_row& row(int r) const { return (TESSL_row&)operator[](r); }
|
|
|
|
TESSL_array(const TPartita& game, const TESSL_form* f);
|
|
virtual ~TESSL_array() {}
|
|
};
|
|
|
|
#endif // __SC2401_H
|