#ifndef __ORLIB_H
#define __ORLIB_H
#ifndef __FORM_H
#include 
#endif
#ifndef __MGLIB_H 
#include "../mg/mglib.h"
#endif
class _TTotale_valuta : public TObject
{
  real _totord, _totres;
  int  _secnum;
public:
  real& totord() { return _totord;}
  real& totres() { return _totres;}
  int&  secnum() { return _secnum;}
  _TTotale_valuta () {};
};
// Form per la stampa ordini
class TOrdine_form : public TForm 
{ 
  int _level;
  TString16 _codmag, _livello;
  bool _detail_mag, _detail_dep,
       _giac_eff, _val_comp,
       _normale;       // Se true e' una stampa normale, ovvero stampa ordini per cli/fo/agente etc.
                      // Se FALE e' una stampa disponibilita' articoli
  TArray* _date_array; // Do not delete: e' passato dall'applicazione
  TArray  _totdisp;    // Array di elementi per la stampa disponibilita'
  TCodgiac_livelli * _codgiac;
  TArticolo_giacenza *_art_giac;
  TAssoc_array _totvaluta;
 
protected:
  virtual bool validate(TForm_item &, TToken_string &); // gestione dei messaggi estesi nei campi
  const int find_period(const TDate&);
public: 
  bool genera_intestazione_supplementare(pagetype p, short y);
  void set_options(int lev, bool mag, bool dep, bool giac_eff = false, bool val_comp = false, TArray* da = NULL) 
   { _level = lev; _detail_mag = mag; _detail_dep = dep; _giac_eff = giac_eff; _val_comp = val_comp; _date_array = da; _normale = da == NULL;}
  TOrdine_form(const char* name);
  virtual ~TOrdine_form() ;
};
#endif