Commit di guy per Enrica
git-svn-id: svn://10.65.10.50/trunk@1031 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									bf5d8d08fa
								
							
						
					
					
						commit
						429bebccbc
					
				
							
								
								
									
										515
									
								
								cg/cg0400.cpp
									
									
									
									
									
								
							
							
						
						
									
										515
									
								
								cg/cg0400.cpp
									
									
									
									
									
								
							@ -1,3 +1,6 @@
 | 
			
		||||
//
 | 
			
		||||
//Riepilogo Progressivi IVA
 | 
			
		||||
//
 | 
			
		||||
#include <applicat.h>
 | 
			
		||||
#include <date.h>
 | 
			
		||||
#include <lffiles.h>
 | 
			
		||||
@ -9,42 +12,39 @@
 | 
			
		||||
#include <nditte.h>
 | 
			
		||||
#include <anagr.h>
 | 
			
		||||
#include <comuni.h>
 | 
			
		||||
#include "classpim.h"
 | 
			
		||||
#include "cg0.h"
 | 
			
		||||
#include "cg0400.h"
 | 
			
		||||
 | 
			
		||||
struct Importi {
 | 
			
		||||
  real imponibile;
 | 
			
		||||
  real imposta;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class CG0400_application : public TPrintapp
 | 
			
		||||
{
 | 
			
		||||
  
 | 
			
		||||
  TTable* _tabpim, * _tabreg;
 | 
			
		||||
  TTable*         _tabpim, * _tabreg;
 | 
			
		||||
  TLocalisamfile* _nditte, * _attiv, * _anag, * _com;
 | 
			
		||||
  TMask* _msk;
 | 
			
		||||
  TDate _data;
 | 
			
		||||
  int _i, _sospmsk, _tipoprog, _livelloprog, _tipo_crmsk;
 | 
			
		||||
  TString _cap,_cofi,_paiva,_ragsoc,_comunefis,_provfis,_viafis,_codivamsk,_codattmsk;
 | 
			
		||||
  bool _vuoilordi;
 | 
			
		||||
  real _imponibile, _imposta, _lordo, _imponibile_v, _imposta_v, _lordo_v;
 | 
			
		||||
  real _imponibile_vs, _imposta_vs, _lordo_vs, _totimponibile_v, _totimposta_v;
 | 
			
		||||
  real _totlordo_v, _totimponibile_vs, _totimposta_vs, _totlordo_vs, _imponibile_acq;
 | 
			
		||||
  real _imposta_acq, _lordo_acq, _totimponibile_acq, _totimposta_acq, _totlordo_acq;
 | 
			
		||||
 | 
			
		||||
  TMask*          _msk;
 | 
			
		||||
  TDate           _data;
 | 
			
		||||
  int             _sospmsk, _tipoprog, _livelloprog, _tipo_crmsk, _annoiva, _i;
 | 
			
		||||
  TString         _cap,_cofi,_paiva,_ragsoc,_comunefis,_provfis,_viafis,_codivamsk,_codattmsk;
 | 
			
		||||
  //bool          _vuoilordi;
 | 
			
		||||
  Importi         _mesi[12];          
 | 
			
		||||
  
 | 
			
		||||
public:
 | 
			
		||||
  bool user_create();
 | 
			
		||||
  bool user_destroy();
 | 
			
		||||
  bool set_print(int);
 | 
			
		||||
 | 
			
		||||
  bool menu(MENU_TAG m) { return TPrintapp::menu(m); }
 | 
			
		||||
 | 
			
		||||
  virtual void preprocess_header();
 | 
			
		||||
  virtual bool user_create();
 | 
			
		||||
  virtual bool user_destroy();
 | 
			
		||||
  virtual bool set_print(int);
 | 
			
		||||
  virtual bool preprocess_page(int,int);
 | 
			
		||||
  virtual print_action postprocess_page(int,int);
 | 
			
		||||
  virtual bool preprocess_print(int,int);
 | 
			
		||||
  void    cerca_i_pim();
 | 
			
		||||
  void    azzera_mesi();
 | 
			
		||||
  void    get_dati_ditta();
 | 
			
		||||
  void    setta_intestazione();
 | 
			
		||||
  void    calcola_totali(real&,real&);
 | 
			
		||||
  int     stampa_intestazione_ditta();
 | 
			
		||||
 | 
			
		||||
  void fai_ricerca(int);
 | 
			
		||||
  void get_dati_ditta();
 | 
			
		||||
  int  stampa_intestazione_ditta();
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
  CG0400_application(){};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -73,226 +73,229 @@ bool CG0400_application::user_destroy()
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void CG0400_application::fai_ricerca(int i)
 | 
			
		||||
void CG0400_application::azzera_mesi()
 | 
			
		||||
{
 | 
			
		||||
  TString codtab,codreg,dep,codiva,codatt;
 | 
			
		||||
  int mese;
 | 
			
		||||
  long anno;
 | 
			
		||||
 | 
			
		||||
  _imponibile=0;
 | 
			
		||||
  _imponibile_v=0;
 | 
			
		||||
  _imponibile_vs=0;
 | 
			
		||||
  _imposta=0;
 | 
			
		||||
  _imposta_v=0;
 | 
			
		||||
  _imposta_vs=0;
 | 
			
		||||
  _lordo=0;
 | 
			
		||||
  _lordo_v=0;
 | 
			
		||||
  _lordo_vs=0;
 | 
			
		||||
  _imponibile_acq=0;
 | 
			
		||||
  _imposta_acq=0;
 | 
			
		||||
  _lordo_acq=0;
 | 
			
		||||
 | 
			
		||||
  _tabpim->first();
 | 
			
		||||
  while (!_tabpim->eof())   //Scorre tutti i record della tabella PIM
 | 
			
		||||
  { 
 | 
			
		||||
    _imponibile = 0;
 | 
			
		||||
    _imposta    = 0;
 | 
			
		||||
    _lordo      = 0;
 | 
			
		||||
    codtab = _tabpim->curr().get("CODTAB");
 | 
			
		||||
    mese   = atoi(codtab.mid(12,2));
 | 
			
		||||
    if (_livelloprog == 1)           //Se si tratta di una aliquota
 | 
			
		||||
    {        
 | 
			
		||||
      codiva = codtab.mid(15,3);
 | 
			
		||||
      codatt = codtab.mid(4,5);
 | 
			
		||||
    }
 | 
			
		||||
    else                  //altrimenti se si tratta di una attivita'
 | 
			
		||||
    {
 | 
			
		||||
      codatt = codtab.mid(4,5);
 | 
			
		||||
      codiva = codtab.mid(55,3);
 | 
			
		||||
    }
 | 
			
		||||
    if (((mese==i)&&(codiva==_codivamsk))||((mese==i)&&(codatt==_codattmsk)))  
 | 
			
		||||
    {
 | 
			
		||||
      codreg = codtab.mid(9,3);
 | 
			
		||||
      anno = atoi(codtab.mid(0,4));
 | 
			
		||||
      _tabreg->curr().zero();
 | 
			
		||||
      dep = format("%04d", anno);
 | 
			
		||||
      dep << format("%3s", (const char*)codreg);
 | 
			
		||||
      _tabreg->curr().put("CODTAB", (const char*)dep);
 | 
			
		||||
      _tabreg->read();
 | 
			
		||||
      if (_tabreg->bad())
 | 
			
		||||
        _tabreg->curr().zero();
 | 
			
		||||
      int tipo = atoi(_tabreg->curr().get("I0"));
 | 
			
		||||
      if ((tipo == 1) && (_tipoprog == 1))     //Se si tratta di una vendita
 | 
			
		||||
      { 
 | 
			
		||||
        int tipo_importo = (int) _tabreg->curr().get_long("I0");
 | 
			
		||||
        bool sosp = _tabreg->curr().get_bool("B0");
 | 
			
		||||
        if (tipo_importo == 1)         // 1=importo netto  2=importo lordo
 | 
			
		||||
        {  
 | 
			
		||||
          _imponibile = _tabpim->curr().get_real("R0");
 | 
			
		||||
          
 | 
			
		||||
          _imposta = _tabpim->curr().get_real("R1");
 | 
			
		||||
        }
 | 
			
		||||
        else 
 | 
			
		||||
          _lordo = _tabpim->curr().get_real("R2");    
 | 
			
		||||
        if (sosp)             //Se e' una vendita in sospensione d'imposta
 | 
			
		||||
        { 
 | 
			
		||||
          _imponibile_vs += _imponibile;
 | 
			
		||||
          _imposta_vs += _imposta;
 | 
			
		||||
          _lordo_vs += _lordo;
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
          _imponibile_v += _imponibile;
 | 
			
		||||
          _imposta_v += _imposta;
 | 
			
		||||
          _lordo_v += _lordo;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      else if ((tipo == 2) && (_tipoprog == 2))  //Se si tratta di un acquisto
 | 
			
		||||
      {
 | 
			
		||||
        int tipo_importo = atoi(codtab.mid(15,1));
 | 
			
		||||
        int tipo_cr = atoi(codtab.mid(14,1));
 | 
			
		||||
        if (_tipo_crmsk == tipo_cr)
 | 
			
		||||
        {
 | 
			
		||||
          if (tipo_importo == 1)     // 1=importo netto  2=importo lordo
 | 
			
		||||
          {
 | 
			
		||||
            _imponibile = _tabpim->curr().get_real("R0");
 | 
			
		||||
            
 | 
			
		||||
            _imposta = _tabpim->curr().get_real("R1");
 | 
			
		||||
          }
 | 
			
		||||
          else
 | 
			
		||||
            _lordo = _tabpim->curr().get_real("R2");    
 | 
			
		||||
          
 | 
			
		||||
          _imponibile_acq += _imponibile;
 | 
			
		||||
          _imposta_acq += _imposta;
 | 
			
		||||
          _lordo_acq += _lordo;
 | 
			
		||||
        }
 | 
			
		||||
      }         
 | 
			
		||||
    }
 | 
			
		||||
    _tabpim->next();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  _totimponibile_v+=_imponibile_v;
 | 
			
		||||
  _totimposta_v+=_imposta_v;
 | 
			
		||||
  _totlordo_v+=_lordo_v;
 | 
			
		||||
  _totimponibile_vs+=_imponibile_vs;
 | 
			
		||||
  _totimposta_vs+=_imposta_vs;
 | 
			
		||||
  _totlordo_vs+=_lordo_vs;
 | 
			
		||||
  _totimponibile_acq+= _imponibile_acq;
 | 
			
		||||
  _totimposta_acq+= _imposta_acq;
 | 
			
		||||
  _totlordo_acq+= _lordo_acq;
 | 
			
		||||
  for (int i=0; i<12; i++)
 | 
			
		||||
  {
 | 
			
		||||
    _mesi[i].imponibile = ZERO; 
 | 
			
		||||
    _mesi[i].imposta = ZERO;
 | 
			
		||||
  }   
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void CG0400_application::cerca_i_pim()
 | 
			
		||||
{
 | 
			
		||||
  TTable pim("PIM");
 | 
			
		||||
  for (pim.first(); !pim.eof(); pim.next())
 | 
			
		||||
  {
 | 
			
		||||
    real imponibile, imposta, impo, impos;
 | 
			
		||||
    tiporec tipo;
 | 
			
		||||
 | 
			
		||||
    TString80 codtab = pim.get("CODTAB");
 | 
			
		||||
    int anno = atoi(codtab.mid(0,4));
 | 
			
		||||
    TString16 codatt = codtab.mid(4,5); 
 | 
			
		||||
    int mese = atoi(codtab.mid(13,2)); 
 | 
			
		||||
    TString16 codiva = codtab.mid(16,4);         
 | 
			
		||||
    
 | 
			
		||||
    if (anno != _annoiva) continue; 
 | 
			
		||||
    
 | 
			
		||||
    if (_livelloprog == 1) //riepilogo per aliquota
 | 
			
		||||
      if (codiva.trim() != _codivamsk) continue;
 | 
			
		||||
    
 | 
			
		||||
    if (_livelloprog == 2) //riepilogo per attivita'
 | 
			
		||||
      if (codatt.trim() != _codattmsk) continue;
 | 
			
		||||
    
 | 
			
		||||
    impo = impos = ZERO;
 | 
			
		||||
    
 | 
			
		||||
    while (classify_pim(pim.curr(), imponibile, imposta, tipo))
 | 
			
		||||
    {
 | 
			
		||||
      switch(tipo)
 | 
			
		||||
      { 
 | 
			
		||||
      case acq_norm:
 | 
			
		||||
        if (_tipoprog == 1) break;  //vendite
 | 
			
		||||
        if (_tipo_crmsk == 1)       //nella maschera e' stato richiesto 
 | 
			
		||||
        {                           //acquisti in genere
 | 
			
		||||
          impo  += imponibile;
 | 
			
		||||
          impos += imposta;
 | 
			
		||||
        }  
 | 
			
		||||
        break;
 | 
			
		||||
      case vend_norm:
 | 
			
		||||
        if (_tipoprog == 2) break;  //acquisti
 | 
			
		||||
        if (_tipo_crmsk == 1)       //nella maschera e' stato richiesto 
 | 
			
		||||
        {                           //vendite in genere
 | 
			
		||||
          impo  += imponibile;
 | 
			
		||||
          impos += imposta;
 | 
			
		||||
        }  
 | 
			
		||||
        break;
 | 
			
		||||
      case acq_ind_op_es:
 | 
			
		||||
        if (_tipoprog == 1) break;  
 | 
			
		||||
        if (_tipo_crmsk == 2) 
 | 
			
		||||
        {
 | 
			
		||||
          impo  += imponibile;
 | 
			
		||||
          impos += imposta;
 | 
			
		||||
        }  
 | 
			
		||||
        break;
 | 
			
		||||
      case acq_ind_pass_int:
 | 
			
		||||
        if (_tipoprog == 1) break;  
 | 
			
		||||
        if (_tipo_crmsk == 3) 
 | 
			
		||||
        {
 | 
			
		||||
          impo  += imponibile;
 | 
			
		||||
          impos += imposta;
 | 
			
		||||
        }  
 | 
			
		||||
        break;     
 | 
			
		||||
      case acq_ind_art_19:
 | 
			
		||||
        if (_tipoprog == 1) break;  
 | 
			
		||||
        if (_tipo_crmsk == 4) 
 | 
			
		||||
        {
 | 
			
		||||
          impo  += imponibile;
 | 
			
		||||
          impos += imposta;
 | 
			
		||||
        }  
 | 
			
		||||
        break; 
 | 
			
		||||
      case base_ventilazione:
 | 
			
		||||
        if (_tipoprog == 1) break;  
 | 
			
		||||
        if (_tipo_crmsk == 5) 
 | 
			
		||||
        {
 | 
			
		||||
          impo  += imponibile;
 | 
			
		||||
          impos += imposta;
 | 
			
		||||
        }  
 | 
			
		||||
        break;              
 | 
			
		||||
      case bolle_doganali:
 | 
			
		||||
        if (_tipoprog == 1) break;  
 | 
			
		||||
        if (_tipo_crmsk == 6) 
 | 
			
		||||
        {
 | 
			
		||||
          impo  += imponibile;
 | 
			
		||||
          impos += imposta;
 | 
			
		||||
        }  
 | 
			
		||||
        break;
 | 
			
		||||
      case acq_beni_riv:
 | 
			
		||||
        if (_tipoprog == 1) break;  
 | 
			
		||||
        if (_tipo_crmsk == 1) 
 | 
			
		||||
        {
 | 
			
		||||
          impo  += imponibile;
 | 
			
		||||
          impos += imposta;
 | 
			
		||||
        }  
 | 
			
		||||
        break;
 | 
			
		||||
      case acq_beni_ammort:
 | 
			
		||||
        if (_tipoprog == 1) break;  
 | 
			
		||||
        if (_tipo_crmsk == 2) 
 | 
			
		||||
        {
 | 
			
		||||
          impo  += imponibile;
 | 
			
		||||
          impos += imposta;
 | 
			
		||||
        }  
 | 
			
		||||
        break;              
 | 
			
		||||
      case acq_beni_ammort_nd:
 | 
			
		||||
        if (_tipoprog == 1) break;  
 | 
			
		||||
        if (_tipo_crmsk == 3) 
 | 
			
		||||
        {
 | 
			
		||||
          impo  += imponibile;
 | 
			
		||||
          impos += imposta;
 | 
			
		||||
        }  
 | 
			
		||||
        break;      
 | 
			
		||||
      case acq_beni_leasing:
 | 
			
		||||
        if (_tipoprog == 1) break;  
 | 
			
		||||
        if (_tipo_crmsk == 4) 
 | 
			
		||||
        {
 | 
			
		||||
          impo  += imponibile;
 | 
			
		||||
          impos += imposta;
 | 
			
		||||
        }  
 | 
			
		||||
        break;              
 | 
			
		||||
      case acq_amm_ultdetr:
 | 
			
		||||
        if (_tipoprog == 1) break;  
 | 
			
		||||
        if (_tipo_crmsk == 6) 
 | 
			
		||||
        {
 | 
			
		||||
          impo  += imponibile;
 | 
			
		||||
          impos += imposta;
 | 
			
		||||
        }  
 | 
			
		||||
        break;
 | 
			
		||||
      default:
 | 
			
		||||
        break;    
 | 
			
		||||
      }
 | 
			
		||||
    } //fine while
 | 
			
		||||
    _mesi[mese].imponibile += impo;
 | 
			
		||||
    _mesi[mese].imposta    += impos; 
 | 
			
		||||
    impo = impos = ZERO;
 | 
			
		||||
  }  
 | 
			
		||||
}                  
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
bool CG0400_application::set_print(int)
 | 
			
		||||
{
 | 
			
		||||
  KEY tasto;
 | 
			
		||||
  tasto = _msk->run();
 | 
			
		||||
  if (tasto == K_ENTER)
 | 
			
		||||
  { 
 | 
			
		||||
    _sospmsk     = atoi(_msk->get(F_TIPOTAB));
 | 
			
		||||
    _vuoilordi   = (bool)(_msk->get(F_VUOILORDI) == "X");
 | 
			
		||||
    _tipoprog    = atoi(_msk->get(F_TIPO));
 | 
			
		||||
    _livelloprog = atoi(_msk->get(F_LIVELLO));
 | 
			
		||||
    if (_livelloprog == 1)           //Se si tratta di una aliquota
 | 
			
		||||
    _annoiva = _msk->get_int(F_ANNO);
 | 
			
		||||
    //_vuoilordi = _msk->get_bool(F_VUOILORDI);
 | 
			
		||||
    _tipoprog = _msk->get_int(F_TIPO);      // 1 <=> vendite; 2 <=> acquisti 
 | 
			
		||||
    if (_tipoprog == 1)
 | 
			
		||||
      _sospmsk = _msk->get_int(F_TIPOTAB);  //vendite in genere; vendite in sospensione d'imposta
 | 
			
		||||
    _livelloprog = _msk->get_int(F_LIVELLO);
 | 
			
		||||
    if (_livelloprog == 1) //si tratta di una aliquota
 | 
			
		||||
    {         
 | 
			
		||||
      _codivamsk = _msk->get(F_CODIVA);
 | 
			
		||||
      _tipo_crmsk = atoi(_msk->get(F_TIPOTABE));
 | 
			
		||||
      _codivamsk  = _msk->get(F_CODIVA);
 | 
			
		||||
      _tipo_crmsk = _msk->get_int(F_TIPOTABE);
 | 
			
		||||
    }
 | 
			
		||||
    else                  //altrimenti se si tratta di una attivita'
 | 
			
		||||
    else  //si tratta di una attivita'
 | 
			
		||||
    {
 | 
			
		||||
      _codattmsk = _msk->get(F_ATTIVITA);
 | 
			
		||||
      _tipo_crmsk = atoi(_msk->get(F_TIPOTABEL));
 | 
			
		||||
      _codattmsk  = _msk->get(F_ATTIVITA);
 | 
			
		||||
      _tipo_crmsk = _msk->get_int(F_TIPOTABEL);
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    set_real_picture("###.###.###.###");
 | 
			
		||||
    set_print_zero();
 | 
			
		||||
    
 | 
			
		||||
    setta_intestazione();
 | 
			
		||||
    
 | 
			
		||||
    azzera_mesi();
 | 
			
		||||
    cerca_i_pim();
 | 
			
		||||
    
 | 
			
		||||
    return TRUE;
 | 
			
		||||
  }
 | 
			
		||||
  return FALSE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
bool CG0400_application::preprocess_print(int file,int counter)
 | 
			
		||||
void CG0400_application::calcola_totali(real& imp, real& imps)
 | 
			
		||||
{
 | 
			
		||||
  set_real_picture("###.###.###.###");
 | 
			
		||||
  set_print_zero();
 | 
			
		||||
  _totimponibile_v   = 0;
 | 
			
		||||
  _totimposta_v      = 0;
 | 
			
		||||
  _totlordo_v        = 0;
 | 
			
		||||
  _totimponibile_vs  = 0;
 | 
			
		||||
  _totimposta_vs     = 0;
 | 
			
		||||
  _totlordo_vs       = 0;
 | 
			
		||||
  _totimponibile_acq = 0;
 | 
			
		||||
  _totimposta_acq    = 0;
 | 
			
		||||
  _totlordo_acq      = 0;
 | 
			
		||||
 | 
			
		||||
  return TRUE;
 | 
			
		||||
  for (int i=0; i<12; i++)
 | 
			
		||||
  {
 | 
			
		||||
    imp  += _mesi[i].imponibile;
 | 
			
		||||
    imps += _mesi[i].imposta;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
bool CG0400_application::preprocess_page(int file, int counter)
 | 
			
		||||
{
 | 
			
		||||
  const char* mese;
 | 
			
		||||
  reset_print();
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  if (counter)
 | 
			
		||||
    _i++;
 | 
			
		||||
  else
 | 
			
		||||
    _i = 1;
 | 
			
		||||
  
 | 
			
		||||
  fai_ricerca(_i);
 | 
			
		||||
  mese = itom(_i);
 | 
			
		||||
  const char* mese = itom(_i);
 | 
			
		||||
 | 
			
		||||
  set_row(1,"%s", mese);
 | 
			
		||||
  if (_tipoprog == 1)
 | 
			
		||||
  {
 | 
			
		||||
    if (_sospmsk == 1)
 | 
			
		||||
    {
 | 
			
		||||
      set_row(1,"@16g%r", &_imponibile_v);
 | 
			
		||||
      set_row(1,"@32g%r", &_imposta_v);
 | 
			
		||||
      if (_vuoilordi)
 | 
			
		||||
        set_row(1,"@48g%r", &_lordo_v);
 | 
			
		||||
    }
 | 
			
		||||
    else if (_sospmsk == 2)
 | 
			
		||||
    {
 | 
			
		||||
      set_row(1,"@16g%r", &_imponibile_vs);
 | 
			
		||||
      set_row(1,"@32g%r", &_imposta_vs);
 | 
			
		||||
      if (_vuoilordi)
 | 
			
		||||
        set_row(1,"@48g%r",&_lordo_vs);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  else if (_tipoprog == 2)
 | 
			
		||||
  {
 | 
			
		||||
    set_row(1,"@16g%r", &_imponibile_acq);
 | 
			
		||||
    set_row(1,"@32g%r", &_imposta_acq);
 | 
			
		||||
    if (_vuoilordi)
 | 
			
		||||
      set_row(1,"@48g%r", &_lordo_acq);
 | 
			
		||||
  }
 | 
			
		||||
  set_row(1,"@26g%r", &_mesi[_i].imponibile);
 | 
			
		||||
  set_row(1,"@56g%r", &_mesi[_i].imposta);
 | 
			
		||||
  //if (_vuoilordi)
 | 
			
		||||
  //  set_row(1,"@48g%r", &_lordo_v);
 | 
			
		||||
 | 
			
		||||
  if (_i == 12)
 | 
			
		||||
  {
 | 
			
		||||
    real tot_impo = ZERO;
 | 
			
		||||
    real tot_imposta = ZERO;
 | 
			
		||||
    
 | 
			
		||||
    calcola_totali(tot_impo, tot_imposta);
 | 
			
		||||
    
 | 
			
		||||
    TString dep = "";
 | 
			
		||||
    set_row(2,(const char*) dep);   
 | 
			
		||||
    set_row(3,"@10gTotale");
 | 
			
		||||
    if (_tipoprog == 1)
 | 
			
		||||
    {
 | 
			
		||||
      if (_sospmsk == 1)            
 | 
			
		||||
      {
 | 
			
		||||
        set_row(3,"@16g%r", &_totimponibile_v);
 | 
			
		||||
        set_row(3,"@32g%r", &_totimposta_v);
 | 
			
		||||
        if (_vuoilordi)
 | 
			
		||||
          set_row(3,"@48g%r", &_totlordo_v);
 | 
			
		||||
      }
 | 
			
		||||
      else if (_sospmsk == 2)
 | 
			
		||||
      {
 | 
			
		||||
        set_row(3,"@16g%r", &_totimponibile_vs);
 | 
			
		||||
        set_row(3,"@32g%r", &_totimposta_vs);
 | 
			
		||||
        if (_vuoilordi)
 | 
			
		||||
          set_row(3,"@48g%r", &_totlordo_vs);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    else if (_tipoprog == 2)
 | 
			
		||||
    {
 | 
			
		||||
      set_row(3,"@16g%r", &_totimponibile_acq);
 | 
			
		||||
      set_row(3,"@32g%r", &_totimposta_acq);
 | 
			
		||||
      if (_vuoilordi)
 | 
			
		||||
        set_row(3,"@48g%r", &_totlordo_acq);
 | 
			
		||||
    }
 | 
			
		||||
    set_row(3,"@8gTotale");
 | 
			
		||||
    set_row(3,"@26g%r", &tot_impo);
 | 
			
		||||
    set_row(3,"@56g%r", &tot_imposta);
 | 
			
		||||
    //  if (_vuoilordi)
 | 
			
		||||
    //     set_row(3,"@48g%r", &_totlordo_v);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -303,7 +306,7 @@ TRectype& look_com (const char * cod, TLocalisamfile *comuni)
 | 
			
		||||
  comuni->read();
 | 
			
		||||
  if (comuni->bad())
 | 
			
		||||
    comuni->zero();
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  return comuni->curr();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -333,7 +336,6 @@ void CG0400_application::get_dati_ditta()
 | 
			
		||||
  
 | 
			
		||||
  _cofi      = anag.get(ANA_COFI);
 | 
			
		||||
  _paiva     = anag.get(ANA_PAIV);
 | 
			
		||||
  //_ragsoc    = anag.get(ANA_RAGSOC);
 | 
			
		||||
  _comunefis = anag.get(ANA_COMRF);
 | 
			
		||||
 | 
			
		||||
  if (_comunefis.empty()) 
 | 
			
		||||
@ -360,49 +362,102 @@ void CG0400_application::get_dati_ditta()
 | 
			
		||||
 | 
			
		||||
int CG0400_application::stampa_intestazione_ditta()
 | 
			
		||||
{
 | 
			
		||||
  int r = 3;
 | 
			
		||||
  int r = 1;
 | 
			
		||||
  TString codice_ditta;
 | 
			
		||||
  TString riga(132);
 | 
			
		||||
 | 
			
		||||
  get_dati_ditta();
 | 
			
		||||
  codice_ditta << get_firm(); 
 | 
			
		||||
 | 
			
		||||
  set_header (r, "Ditta %s %s Via %s %s %s %s", (const char*)codice_ditta,
 | 
			
		||||
  set_header (r, "Ditta %s %s %s %s %s %s", (const char*)codice_ditta,
 | 
			
		||||
              (const char*)_ragsoc, (const char*)_viafis,
 | 
			
		||||
              (const char*)_cap, (const char*)_comunefis,
 | 
			
		||||
              (const char*)_provfis);
 | 
			
		||||
  r++;
 | 
			
		||||
  printer().setdate(_data);
 | 
			
		||||
  riga = "Data @<  Pag. @#";
 | 
			
		||||
  riga.right_just(127);
 | 
			
		||||
  riga.overwrite (format ("Partita iva %s Codice fiscale %s", (const char*)_paiva, (const char*)_cofi));
 | 
			
		||||
  set_header (r, "%s", (const char*) riga);
 | 
			
		||||
  r++;
 | 
			
		||||
 | 
			
		||||
  r+=3;
 | 
			
		||||
  
 | 
			
		||||
  return r; 
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void CG0400_application::preprocess_header()
 | 
			
		||||
void CG0400_application::setta_intestazione()
 | 
			
		||||
{
 | 
			
		||||
  int r = 1;
 | 
			
		||||
 | 
			
		||||
  reset_header();
 | 
			
		||||
  if (_livelloprog == 1)
 | 
			
		||||
    set_header(1, "@30gProgressivi IVA per Aliquota");
 | 
			
		||||
  else set_header(1, "@30gProgressivi IVA per Attivita'");
 | 
			
		||||
 | 
			
		||||
  r = stampa_intestazione_ditta();
 | 
			
		||||
 | 
			
		||||
  if (_tipoprog == 1)
 | 
			
		||||
    set_header(r, "Vendite");
 | 
			
		||||
  else set_header(r, "Acquisti");
 | 
			
		||||
  
 | 
			
		||||
  if (_livelloprog == 1)
 | 
			
		||||
    set_header(r++, "@10gIVA %s",(const char*) _codivamsk);
 | 
			
		||||
  else set_header(r++, "@10gCod.attivita' %s",(const char*)_codattmsk);
 | 
			
		||||
  r++;        
 | 
			
		||||
  if (_vuoilordi)
 | 
			
		||||
    set_header(r, "@21gImponibile@40gImposta@50gImporto lordo");
 | 
			
		||||
  else set_header(r, "@21gImponibile@40gImposta");
 | 
			
		||||
    set_header(r++, "Gestione Iva@b@50gPROGRESSIVI IVA PER ALIQUOTA");
 | 
			
		||||
  else set_header(r++, "Gestione Iva@b@50gPROGRESSIVI IVA PER ATTIVITA'");
 | 
			
		||||
  r++;
 | 
			
		||||
  set_header(r++, "Anno liquidazione %d", _annoiva);
 | 
			
		||||
  if (_tipoprog == 1) //vendite
 | 
			
		||||
  { 
 | 
			
		||||
    if (_sospmsk == 1)
 | 
			
		||||
      set_header(r, "Vendite in genere");
 | 
			
		||||
    else set_header(r, "Vendite in sospensione d'imposta");
 | 
			
		||||
  }
 | 
			
		||||
  else  //acquisti
 | 
			
		||||
  {
 | 
			
		||||
    if (_livelloprog == 1) //per codice iva
 | 
			
		||||
      switch (_tipo_crmsk)
 | 
			
		||||
      {
 | 
			
		||||
      case 1:
 | 
			
		||||
        set_header(r, "Acquisti in genere");
 | 
			
		||||
        break;
 | 
			
		||||
      case 2:
 | 
			
		||||
        set_header(r, "Acquisti indetraibili su operazioni esenti");
 | 
			
		||||
        break;
 | 
			
		||||
      case 3:
 | 
			
		||||
        set_header(r, "Acquisti indetraibili passaggi interni");
 | 
			
		||||
        break;
 | 
			
		||||
      case 4:
 | 
			
		||||
        set_header(r, "Acquisti indetraibili art.19");
 | 
			
		||||
        break;
 | 
			
		||||
      case 5:
 | 
			
		||||
        set_header(r, "Acquisti base di calcolo per la ventilazione");
 | 
			
		||||
        break;
 | 
			
		||||
      case 6:
 | 
			
		||||
        set_header(r, "Bolle doganali");
 | 
			
		||||
        break;
 | 
			
		||||
      default:
 | 
			
		||||
        break;            
 | 
			
		||||
      }
 | 
			
		||||
    else //per attivita'
 | 
			
		||||
      switch (_tipo_crmsk)
 | 
			
		||||
      {
 | 
			
		||||
      case 1:
 | 
			
		||||
        set_header(r, "Acquisti beni per rivendita");
 | 
			
		||||
        break;
 | 
			
		||||
      case 2:
 | 
			
		||||
        set_header(r, "Acquisti beni da ammortizzare detraibili");
 | 
			
		||||
        break;
 | 
			
		||||
      case 3:
 | 
			
		||||
        set_header(r, "Acquisti beni da ammortizzare non detraibili");
 | 
			
		||||
        break;
 | 
			
		||||
      case 4:
 | 
			
		||||
        set_header(r, "Altri beni strumentali acquisiti in leasing");
 | 
			
		||||
        break;
 | 
			
		||||
      case 5:
 | 
			
		||||
        set_header(r, "Acquisti beni da ammortizzare ult.detr. 6%");
 | 
			
		||||
        break;
 | 
			
		||||
      default:
 | 
			
		||||
        break;            
 | 
			
		||||
      }  
 | 
			
		||||
  }
 | 
			
		||||
  r++;
 | 
			
		||||
  if (_livelloprog == 1)
 | 
			
		||||
    set_header(r++, "IVA %s",(const char*) _codivamsk);
 | 
			
		||||
  else set_header(r++, "ATTIVITA' %s",(const char*)_codattmsk);
 | 
			
		||||
  set_header(++r, "@29gImponibile@60gImposta");
 | 
			
		||||
  //if (_vuoilordi)
 | 
			
		||||
  //  set_header(r, "@21gImponibile@40gImposta@50gImporto lordo");
 | 
			
		||||
  //else set_header(r, "@21gImponibile@40gImposta");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
print_action CG0400_application::postprocess_page(int file, int counter)
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										20
									
								
								cg/cg0400.h
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								cg/cg0400.h
									
									
									
									
									
								
							@ -1,13 +1,6 @@
 | 
			
		||||
#ifndef __CG0400_H
 | 
			
		||||
#define __CG0400_H  
 | 
			
		||||
/****
 | 
			
		||||
  #define TCLI                   "C"
 | 
			
		||||
 | 
			
		||||
  #define N_CODDITTA      "CODDITTA"
 | 
			
		||||
  #define N_CODATTPREV    "CODATTPREV"
 | 
			
		||||
  #define N_CODATT        "CODATT"
 | 
			
		||||
  #define N_CODCF         "CODCF"
 | 
			
		||||
  ***/
 | 
			
		||||
#define TAB_REG         "REG"
 | 
			
		||||
#define TAB_PIM         "PIM"
 | 
			
		||||
 | 
			
		||||
@ -22,18 +15,7 @@
 | 
			
		||||
#define F_ATTIVITA 108
 | 
			
		||||
#define F_TIPOTABEL 109
 | 
			
		||||
#define F_RAGSOC 110
 | 
			
		||||
#define F_VUOILORDI 111
 | 
			
		||||
#define F_TIPO1 112
 | 
			
		||||
/*
 | 
			
		||||
   #define F_TOTALE1                       122
 | 
			
		||||
   #define F_TOTALE2                       123
 | 
			
		||||
   #define F_TOTALE3                       124
 | 
			
		||||
   #define F_TOTALE4                       125
 | 
			
		||||
   #define F_TOTALE5                       126 
 | 
			
		||||
   #define F_TOTALE6                       127
 | 
			
		||||
   #define F_PROMPT                        128
 | 
			
		||||
   */
 | 
			
		||||
 | 
			
		||||
#define F_TIPO1 111
 | 
			
		||||
#endif  // __CG0400_H
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										138
									
								
								cg/cg0400a.uml
									
									
									
									
									
								
							
							
						
						
									
										138
									
								
								cg/cg0400a.uml
									
									
									
									
									
								
							@ -1,41 +1,68 @@
 | 
			
		||||
#include "cg0400.h"
 | 
			
		||||
 | 
			
		||||
PAGE "Visualizzazione progressivi IVA" -1 -1 78 20
 | 
			
		||||
PAGE "Visualizzazione progressivi IVA" -1 -1 78 19
 | 
			
		||||
 | 
			
		||||
GROUPBOX DLG_NULL 78 3
 | 
			
		||||
BEGIN
 | 
			
		||||
    PROMPT 1 0 ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMBER F_CODDITTA 5
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 4 1 "Ditta             "
 | 
			
		||||
	FLAGS "FRD"
 | 
			
		||||
	USE LF_NDITTE KEY 1  
 | 
			
		||||
	CHECKTYPE REQUIRED
 | 
			
		||||
	INPUT CODDITTA F_CODDITTA
 | 
			
		||||
	DISPLAY "Codice" CODDITTA
 | 
			
		||||
	DISPLAY "Ragione sociale @50" RAGSOC
 | 
			
		||||
	OUTPUT F_CODDITTA CODDITTA 
 | 
			
		||||
  OUTPUT F_RAGSOC RAGSOC
 | 
			
		||||
	OUTPUT F_ATTIVITA CODATTPREV
 | 
			
		||||
	KEY 1
 | 
			
		||||
    PROMPT 3 1 "Ditta  "
 | 
			
		||||
    FLAGS "FRD"
 | 
			
		||||
    USE LF_NDITTE KEY 1
 | 
			
		||||
    CHECKTYPE REQUIRED
 | 
			
		||||
    INPUT CODDITTA F_CODDITTA
 | 
			
		||||
    DISPLAY "Codice" CODDITTA
 | 
			
		||||
    DISPLAY "Ragione sociale @50" RAGSOC
 | 
			
		||||
    OUTPUT F_RAGSOC RAGSOC 
 | 
			
		||||
    OUTPUT F_ATTIVITA CODATTPREV
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_RAGSOC 50
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 4 2 "Ragione sociale   "
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
  KEY 1
 | 
			
		||||
    PROMPT 17 1 "Ragione "
 | 
			
		||||
    FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMBER F_ANNO 4
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 4 3 "Anno liquidazione "
 | 
			
		||||
  PROMPT 3 3 "Anno liquidazione "
 | 
			
		||||
  HELP "Anno di cui si effettua la liquidazione"
 | 
			
		||||
  FLAGS "A"
 | 
			
		||||
  KEY 1
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
RADIOBUTTON F_TIPO 18
 | 
			
		||||
BEGIN
 | 
			
		||||
    PROMPT 3 5 "Tipo progressivi  "
 | 
			
		||||
    HELP "Tipo di riepilogo da effettuare"
 | 
			
		||||
    ITEM "1|Vendite"
 | 
			
		||||
    MESSAGE HIDE,F_TIPOTABE|SHOW,F_TIPOTAB|HIDE,F_TIPOTABEL
 | 
			
		||||
    MESSAGE COPY,F_TIPO1
 | 
			
		||||
    ITEM "2|Acquisti"
 | 
			
		||||
    MESSAGE SHOW,F_TIPOTABE|HIDE,F_TIPOTABEL|HIDE,F_TIPOTAB
 | 
			
		||||
    MESSAGE COPY,F_TIPO1
 | 
			
		||||
    KEY 1 
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
RADIOBUTTON F_TIPO1 18
 | 
			
		||||
BEGIN
 | 
			
		||||
    PROMPT 3 5 "Tipo progressivi  "
 | 
			
		||||
    HELP "Tipo di riepilogo da effettuare"
 | 
			
		||||
    ITEM "1|Vendite"
 | 
			
		||||
    MESSAGE HIDE,F_TIPOTABE|HIDE,F_TIPOTABEL|SHOW,F_TIPOTAB
 | 
			
		||||
    MESSAGE COPY,F_TIPO
 | 
			
		||||
    ITEM "2|Acquisti"
 | 
			
		||||
    MESSAGE HIDE,F_TIPOTABE|SHOW,F_TIPOTABEL|HIDE,F_TIPOTAB
 | 
			
		||||
    MESSAGE COPY,F_TIPO
 | 
			
		||||
    KEY 1 
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
RADIOBUTTON F_LIVELLO 21
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 4 5 "Livello progressivi "
 | 
			
		||||
  PROMPT 38 5 "Livello progressivi "
 | 
			
		||||
  HELP "Tipo di raggruppamento dei riepiloghi"
 | 
			
		||||
  ITEM "1|Per aliquota"
 | 
			
		||||
  MESSAGE HIDE,F_ATTIVITA|SHOW,F_CODIVA 
 | 
			
		||||
@ -45,43 +72,26 @@ BEGIN
 | 
			
		||||
  MESSAGE HIDE,F_TIPO|SHOW,F_TIPO1|K_SPACE,F_TIPO1
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
RADIOBUTTON F_TIPO 18
 | 
			
		||||
STRING F_CODIVA 4
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 38 5 "Tipo progressivi  "
 | 
			
		||||
        HELP "Tipo di riepilogo da effettuare"
 | 
			
		||||
	ITEM "1|Vendite"
 | 
			
		||||
	MESSAGE HIDE,F_TIPOTABE|SHOW,F_TIPOTAB|HIDE,F_TIPOTABEL
 | 
			
		||||
	MESSAGE COPY,F_TIPO1
 | 
			
		||||
	ITEM "2|Acquisti"
 | 
			
		||||
	MESSAGE SHOW,F_TIPOTABE|HIDE,F_TIPOTABEL|HIDE,F_TIPOTAB
 | 
			
		||||
	MESSAGE COPY,F_TIPO1
 | 
			
		||||
	KEY 1 
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
RADIOBUTTON F_TIPO1 18
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 38 5 "Tipo progressivi  "
 | 
			
		||||
        HELP "Tipo di riepilogo da effettuare"
 | 
			
		||||
	ITEM "1|Vendite"
 | 
			
		||||
	MESSAGE HIDE,F_TIPOTABE|HIDE,F_TIPOTABEL|SHOW,F_TIPOTAB
 | 
			
		||||
	MESSAGE COPY,F_TIPO
 | 
			
		||||
	ITEM "2|Acquisti"
 | 
			
		||||
	MESSAGE HIDE,F_TIPOTABE|SHOW,F_TIPOTABEL|HIDE,F_TIPOTAB
 | 
			
		||||
	MESSAGE COPY,F_TIPO
 | 
			
		||||
	KEY 1 
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
STRING F_CODIVA 3
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 4 10 "Codice IVA "
 | 
			
		||||
  HELP "Aliquata IVA da riepilogare"
 | 
			
		||||
  FLAGS "R"
 | 
			
		||||
  PROMPT 3 10 "Codice IVA       "
 | 
			
		||||
  HELP "Aliquota IVA da riepilogare"
 | 
			
		||||
  FLAGS "U"
 | 
			
		||||
  USE %IVA
 | 
			
		||||
  INPUT CODTAB F_CODIVA
 | 
			
		||||
  DISPLAY "Codice" CODTAB
 | 
			
		||||
  DISPLAY "Descrizione@50" S0
 | 
			
		||||
  DISPLAY "%@6" R0
 | 
			
		||||
  DISPLAY "Tipo" S1
 | 
			
		||||
  OUTPUT F_CODIVA CODTAB
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
  VALIDATE ZEROFILL_FUNC 2
 | 
			
		||||
  WARNING "Codice IVA assente"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
RADIOBUTTON F_TIPOTAB 38
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 4 12 "Tipo tabella "
 | 
			
		||||
  PROMPT 3 12 "Tipo tabella     "
 | 
			
		||||
  HELP "Tipo di tabella da visualizzare"
 | 
			
		||||
  ITEM "1|Vendite in genere"
 | 
			
		||||
  ITEM "2|Vendite in sospensione d'imposta"
 | 
			
		||||
@ -89,12 +99,12 @@ END
 | 
			
		||||
 | 
			
		||||
STRING F_ATTIVITA 5
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 4 10 "Codice attivita' "
 | 
			
		||||
  PROMPT 3 10 "Codice attivita' "
 | 
			
		||||
  HELP "Codice dell'attivita' di cui si vuole il riepilogo"
 | 
			
		||||
  USE LF_ATTIV
 | 
			
		||||
	FLAGS "H"
 | 
			
		||||
  FLAGS "H"
 | 
			
		||||
  JOIN %AIS TO LF_ATTIV INTO CODTAB=CODATT
 | 
			
		||||
  CHECKTYPE NORMAL
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
  INPUT CODDITTA F_CODDITTA SELECT
 | 
			
		||||
  INPUT CODATT F_ATTIVITA
 | 
			
		||||
  DISPLAY "Codice attivita'" LF_TABCOM->CODTAB
 | 
			
		||||
@ -105,21 +115,21 @@ END
 | 
			
		||||
 | 
			
		||||
NUMBER F_TIPOTABEL 1
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 4 12 "Tipo tabella "
 | 
			
		||||
  PROMPT 3 12 "Tipo tabella     "
 | 
			
		||||
  HELP "Tipo di tabella da visualizzare"
 | 
			
		||||
  SHEET "Tipo|Descrizione@50"
 | 
			
		||||
  ITEM "1|Acquisti beni per rivendita"
 | 
			
		||||
  ITEM "2|Acquisti beni da ammortizzare detraibili"
 | 
			
		||||
  ITEM "3|Acquisti beni da ammortizzare non detraibili"
 | 
			
		||||
  ITEM "4|Altri beni strumentali acquisiti in leasing"
 | 
			
		||||
  ITEM "5|Altri beni strumentali ult. detr. 6%"
 | 
			
		||||
  ITEM "5|Acquisti beni da ammortizzare ult.detr. 6%"
 | 
			
		||||
  INPUT F_TIPOTABEL
 | 
			
		||||
  OUTPUT F_TIPOTABEL
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMBER F_TIPOTABE 1
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 4 12 "Tipo tabella "
 | 
			
		||||
  PROMPT 3 12 "Tipo tabella     "
 | 
			
		||||
  HELP "Tipo di tabella da visualizzare"
 | 
			
		||||
  SHEET "Tipo|Descrizione@50"
 | 
			
		||||
  ITEM "1|Acquisti in genere"
 | 
			
		||||
@ -128,26 +138,30 @@ BEGIN
 | 
			
		||||
  ITEM "4|Acquisti indetraibili art. 19"
 | 
			
		||||
  ITEM "5|Acquisti base di calcolo per la ventilazione"
 | 
			
		||||
  ITEM "6|Bolle doganali" 
 | 
			
		||||
  ITEM "7|Acquisti indetraibili per cambio regime"
 | 
			
		||||
  // ITEM "7|Acquisti indetraibili per cambio regime"
 | 
			
		||||
  INPUT F_TIPOTABE
 | 
			
		||||
  OUTPUT F_TIPOTABE
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
BOOLEAN F_VUOILORDI 
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 4 16 "Visualizzazione importi lordi "
 | 
			
		||||
  HELP "Indicare se visualizzare anche gli importi"
 | 
			
		||||
  HELP "Indicare se visualizzare anche gli importi lordi"
 | 
			
		||||
END  
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_OK 9 2
 | 
			
		||||
BUTTON DLG_PRINT 10 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT -12 -1 ""
 | 
			
		||||
 PROMPT -12 -1 "~Stampa"  
 | 
			
		||||
 MESSAGE EXIT,K_ENTER
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_CANCEL 9 2
 | 
			
		||||
BUTTON DLG_QUIT 10 2
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT -22 -1 ""
 | 
			
		||||
 PROMPT -22 -1 ""  
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
ENDPAGE
 | 
			
		||||
 | 
			
		||||
ENDMASK
 | 
			
		||||
 | 
			
		||||
@ -2986,7 +2986,7 @@ bool CG1500_application::set_print(int)
 | 
			
		||||
{
 | 
			
		||||
  TConfig conf(CONFIG_DITTA);
 | 
			
		||||
 | 
			
		||||
  _causale_ap = conf.get("CoCaCh");
 | 
			
		||||
  _causale_ap = conf.get("CoCaAp");
 | 
			
		||||
  _causale_chi = conf.get("CoCaCh");
 | 
			
		||||
} 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1911,7 +1911,14 @@ bool CG1600_application::calcola(int g, int c, long s,
 | 
			
		||||
      data = datareg;
 | 
			
		||||
    if (_annoese != 0)
 | 
			
		||||
      data = datacomp;
 | 
			
		||||
 | 
			
		||||
                                              
 | 
			
		||||
    TString datastr  = data.string();
 | 
			
		||||
    TString datastr3 = _datafine.string();                                              
 | 
			
		||||
    TString datastr1 = _dataini.string();
 | 
			
		||||
    TString datastr2 = _data_ini_ese.string();  
 | 
			
		||||
    
 | 
			
		||||
    TString codcausapp = causale_apertura();
 | 
			
		||||
    
 | 
			
		||||
    //calcolo i movimenti del periodo
 | 
			
		||||
    if ( (data >= _dataini) && (data <= _datafine) )
 | 
			
		||||
      if ((codcaus == causale_apertura() && _data_ini_ese != _dataini) ||
 | 
			
		||||
@ -1955,7 +1962,7 @@ bool CG1600_application::set_print(int)
 | 
			
		||||
{
 | 
			
		||||
  TConfig conf(CONFIG_DITTA);
 | 
			
		||||
 | 
			
		||||
  _causale_ap = conf.get("CoCaCh");
 | 
			
		||||
  _causale_ap = conf.get("CoCaAp");
 | 
			
		||||
  _causale_chi = conf.get("CoCaCh");
 | 
			
		||||
}  
 | 
			
		||||
 | 
			
		||||
@ -3117,7 +3124,7 @@ void CG1600_application::stampa_totali_verifica()
 | 
			
		||||
        if (classe > ris_imp && _risimp_fatto)
 | 
			
		||||
        { 
 | 
			
		||||
          if (_num_tot == "20" || _num_tot == "21")
 | 
			
		||||
          {                   	
 | 
			
		||||
          {                     
 | 
			
		||||
            set_row (_i,"@4gTotale delle partite straordinarie");
 | 
			
		||||
            set_row (_i,"@49g%r", &_tot_parz_prg_d);
 | 
			
		||||
            set_row (_i,"@65g%r", &_tot_parz_prg_a);
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										450
									
								
								cg/cg3200.cpp
									
									
									
									
									
								
							
							
						
						
									
										450
									
								
								cg/cg3200.cpp
									
									
									
									
									
								
							@ -31,7 +31,6 @@ class TMastrini_application : public TPrintapp
 | 
			
		||||
  static bool data_fine   (TMask_field& f, KEY k);
 | 
			
		||||
  static bool gruppo_hnd  (TMask_field& f, KEY k);
 | 
			
		||||
  static bool conto_hnd   (TMask_field& f, KEY k);
 | 
			
		||||
  static bool sottoc_hnd  (TMask_field& f, KEY k);
 | 
			
		||||
  friend bool sottoc_handler_ini  (TMask_field& f, KEY k); 
 | 
			
		||||
  friend bool sottoc_handler_fine (TMask_field& f, KEY k);
 | 
			
		||||
  
 | 
			
		||||
@ -69,7 +68,7 @@ class TMastrini_application : public TPrintapp
 | 
			
		||||
  bool _stampaprogre,_stampatotiva,_stampatot,_prima_volta,_stampa_mov_prov;
 | 
			
		||||
 
 | 
			
		||||
  int  _annomsk,_annoesmsk,_annoes,_annomsksucc,_tipo_mask,_anno_ghost;
 | 
			
		||||
  int  _anno_corrente,_anno_precedente,_indbil;
 | 
			
		||||
  int  _anno_corrente,_anno_precedente,_indbil,_numero_pag;
 | 
			
		||||
  long _sottoc,_numreg,_numgio,_protiva;
 | 
			
		||||
  bool _stampa_progressivi_si,_competenza,_inizio_stampa,_puoi_stampare;
 | 
			
		||||
  char _tmcf,_tipo_contr; 
 | 
			
		||||
@ -96,6 +95,9 @@ public:
 | 
			
		||||
  TDate _inizioEs,_fineEs;
 | 
			
		||||
  void ricerca_clifo();
 | 
			
		||||
  void ricerca_gruppo();
 | 
			
		||||
  int  ricerca_clifo(int riga);
 | 
			
		||||
  int  ricerca_gruppo(int riga);
 | 
			
		||||
 | 
			
		||||
  void calcola_progressivi();
 | 
			
		||||
  void calcola_progressivi_al(); 
 | 
			
		||||
  void stampa_progressivi();
 | 
			
		||||
@ -104,6 +106,7 @@ public:
 | 
			
		||||
  void ricerca_regiva();
 | 
			
		||||
  void descrizione_causale();
 | 
			
		||||
  void saldi_zero();
 | 
			
		||||
  void crea_intestazione(int riga);
 | 
			
		||||
  void crea_intestazione();
 | 
			
		||||
  void fai_stampa132();
 | 
			
		||||
  void fai_stampa198();
 | 
			
		||||
@ -117,7 +120,8 @@ public:
 | 
			
		||||
  const char* descrizione_classe(char,char,int,int);
 | 
			
		||||
  bool almeno_un_record();
 | 
			
		||||
  void ricerca_dati_ditta();
 | 
			
		||||
  void conto(int,int,bool);    
 | 
			
		||||
  void conto(int,int,bool);                       
 | 
			
		||||
  bool check_ordine(TMask_field& f, KEY k);
 | 
			
		||||
 
 | 
			
		||||
  TMastrini_application() {}
 | 
			
		||||
};
 | 
			
		||||
@ -233,6 +237,9 @@ bool sottoc_handler_fine(TMask_field& f, KEY key)
 | 
			
		||||
 | 
			
		||||
    if (conto != 0 && gruppo == 0)
 | 
			
		||||
      return f.warning_box("Manca il GRUPPO");
 | 
			
		||||
      
 | 
			
		||||
    if (!app().check_ordine(f,key))
 | 
			
		||||
      return FALSE;  
 | 
			
		||||
  }    
 | 
			
		||||
 | 
			
		||||
  if ( key == K_TAB )
 | 
			
		||||
@ -336,10 +343,9 @@ bool TMastrini_application::conto_hnd (TMask_field& f, KEY k)
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TMastrini_application::sottoc_hnd (TMask_field& f, KEY k)
 | 
			
		||||
bool TMastrini_application::check_ordine(TMask_field& f, KEY k)
 | 
			
		||||
{
 | 
			
		||||
  if (k == K_ENTER)
 | 
			
		||||
  {
 | 
			
		||||
//  if (k == K_ENTER)  {
 | 
			
		||||
    int gruppof = f.mask().get_int(F_GRUPPOFINE);
 | 
			
		||||
    
 | 
			
		||||
    if (gruppof == 0)
 | 
			
		||||
@ -361,7 +367,7 @@ bool TMastrini_application::sottoc_hnd (TMask_field& f, KEY k)
 | 
			
		||||
        
 | 
			
		||||
    if (sottoci > sottocf)
 | 
			
		||||
      return f.error_box("Il sottoconto di partenza deve essere inferiore o uguale al sottoconto di arrivo");
 | 
			
		||||
  }           
 | 
			
		||||
//  }           
 | 
			
		||||
  
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
@ -585,7 +591,8 @@ void TMastrini_application::fai_stampa132()
 | 
			
		||||
    if (_stampanum == 2)
 | 
			
		||||
    {
 | 
			
		||||
      set_row (1,"@11g#7d", &_numgio);
 | 
			
		||||
    }
 | 
			
		||||
    }            
 | 
			
		||||
    
 | 
			
		||||
  set_row (1,"@19g#t", &_datadocs);
 | 
			
		||||
  set_row (1,"@30g#7t", &_numdoc);
 | 
			
		||||
  set_row (1,"@38g#3t", &_codcaus);
 | 
			
		||||
@ -598,13 +605,17 @@ void TMastrini_application::fai_stampa132()
 | 
			
		||||
void TMastrini_application::fai_stampa198()
 | 
			
		||||
{
 | 
			
		||||
  set_row (1,"@0g#t", &_dataregs);
 | 
			
		||||
  if (_stampanum == 1)
 | 
			
		||||
  if (_stampanum == 1)            
 | 
			
		||||
  {
 | 
			
		||||
    set_row (1,"@11g$[r]#7d$[n]", &_numreg);
 | 
			
		||||
    set_row (1,"@18g/#3d", &_numrig);
 | 
			
		||||
  }
 | 
			
		||||
  else if (_stampanum == 2)
 | 
			
		||||
     set_row (1,"@11g#7d", &_numgio);
 | 
			
		||||
  set_row (1,"@19g#t", &_datadocs);
 | 
			
		||||
  set_row (1,"@30g#7t", &_numdoc);
 | 
			
		||||
  set_row (1,"@38g#3t", &_codcaus);
 | 
			
		||||
     
 | 
			
		||||
  set_row (1,"@23g#t", &_datadocs);
 | 
			
		||||
  set_row (1,"@34g#7t", &_numdoc);
 | 
			
		||||
  set_row (1,"@42g#3t", &_codcaus);
 | 
			
		||||
 | 
			
		||||
// Stampa saldo movimenti
 | 
			
		||||
 | 
			
		||||
@ -627,18 +638,27 @@ void TMastrini_application::stampa_totali132()
 | 
			
		||||
  _saldo_periodo = _totale_periodo_dare - _totale_periodo_avere;
 | 
			
		||||
  _saldo_progre = _totprogre_dare - _totprogre_avere;
 | 
			
		||||
  _saldo_progre_al = _totprogre_dare_al - _totprogre_avere_al;
 | 
			
		||||
  set_row (3,"@32gTOTALI PERIODO@69g%15.0r", &_saldo_periodo);
 | 
			
		||||
  set_row (3,"@85g%15.0r", &_totale_periodo_dare);
 | 
			
		||||
  set_row (3,"@101g%15.0r", &_totale_periodo_avere);
 | 
			
		||||
  set_row (4,"@32gTOTALI PROGRESSIVI@69g%15.0r", &_saldo_progre);
 | 
			
		||||
  set_row (4,"@85g%15.0r", &_totprogre_dare);
 | 
			
		||||
  set_row (4,"@101g%15.0r", &_totprogre_avere);
 | 
			
		||||
  TString string = _saldo_periodo.string("###.###.###.###");
 | 
			
		||||
  set_row (3,"@32gTOTALI PERIODO@69g%15s", (const char*)string);
 | 
			
		||||
  string = _totale_periodo_dare.string("###.###.###.###");
 | 
			
		||||
  set_row (3,"@85g%15s", (const char*)string);   
 | 
			
		||||
  string = _totale_periodo_avere.string("###.###.###.###");
 | 
			
		||||
  set_row (3,"@101g%15s", (const char*)string);
 | 
			
		||||
  string = _saldo_progre.string("###.###.###.###");
 | 
			
		||||
  set_row (4,"@32gTOTALI PROGRESSIVI@69g%15s", (const char*)string);
 | 
			
		||||
  string = _totprogre_dare.string("###.###.###.###");
 | 
			
		||||
  set_row (4,"@85g%15s", (const char*)string);
 | 
			
		||||
  string = _totprogre_avere.string("###.###.###.###");
 | 
			
		||||
  set_row (4,"@101g%15s", (const char*)string);
 | 
			
		||||
  if (_stampaprogre)                         //Progressivi attuali
 | 
			
		||||
  {
 | 
			
		||||
  {                                            
 | 
			
		||||
    TString str = _saldo_progre_al.string("###.###.###.###");
 | 
			
		||||
    set_row (5,"@32gTOTALI PROGRESSIVI AL@55g%s",(const char*)_ultima_data_reg.string());
 | 
			
		||||
    set_row (5,"@69g%15.0r", &_saldo_progre_al);
 | 
			
		||||
    set_row (5,"@85g%15.0r", &_totprogre_dare_al);
 | 
			
		||||
    set_row (5,"@101g%15.0r", &_totprogre_avere_al);
 | 
			
		||||
    set_row (5,"@69g%15s", (const char*)str);
 | 
			
		||||
    str = _totprogre_dare_al.string("###.###.###.###");
 | 
			
		||||
    set_row (5,"@85g%15s", (const char*)str);
 | 
			
		||||
    str = _totprogre_avere_al.string("###.###.###.###");
 | 
			
		||||
    set_row (5,"@101g%15s", (const char*)str);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -651,18 +671,27 @@ void TMastrini_application::stampa_totali198()
 | 
			
		||||
 | 
			
		||||
  _totprogre_dare=_progredare+_totale_periodo_dare;
 | 
			
		||||
  _totprogre_avere=_progreavere+_totale_periodo_avere;
 | 
			
		||||
  set_row (3,"@32gTOTALI PERIODO@102g%15.0r", &_totale_periodo_dare);
 | 
			
		||||
  set_row (3,"@119g%15.0r", &_totale_periodo_avere);
 | 
			
		||||
  set_row (3,"@153g%15.0r", &_saldo_movimenti);
 | 
			
		||||
  set_row (4,"@32gTOTALI PROGRESSIVI@102g%15.0r", &_totprogre_dare);
 | 
			
		||||
  set_row (4,"@119g%15.0r", &_totprogre_avere);     
 | 
			
		||||
  set_row (4,"@136g%15.0r", &_saldo_progressivi);
 | 
			
		||||
  TString string = _totale_periodo_dare.string("###.###.###.###");
 | 
			
		||||
  set_row (3,"@32gTOTALI PERIODO@102g%15s", (const char*)string);
 | 
			
		||||
  string = _totale_periodo_avere.string("###.###.###.###");
 | 
			
		||||
  set_row (3,"@119g%15s", (const char*)string);
 | 
			
		||||
  string = _saldo_movimenti.string("###.###.###.###");
 | 
			
		||||
  set_row (3,"@153g%15s", (const char*)string);
 | 
			
		||||
  string = _totprogre_dare.string("###.###.###.###");
 | 
			
		||||
  set_row (4,"@32gTOTALI PROGRESSIVI@102g%15s",(const char*)string);
 | 
			
		||||
  string = _totprogre_avere.string("###.###.###.###");
 | 
			
		||||
  set_row (4,"@119g%15s", (const char*)string);
 | 
			
		||||
  string = _saldo_progressivi.string("###.###.###.###");     
 | 
			
		||||
  set_row (4,"@136g%15s", (const char*)string);
 | 
			
		||||
  if (_stampaprogre)                          //Progressivi attuali
 | 
			
		||||
  {
 | 
			
		||||
    set_row(5,"@32gTOTALI PROGRESSIVI AL@55g%s",(const char*)_ultima_data_reg.string());
 | 
			
		||||
    set_row (5,"@102g%15.0r", &_totprogre_dare_al);
 | 
			
		||||
    set_row (5,"@119g%15.0r", &_totprogre_avere_al);     
 | 
			
		||||
    set_row (5,"@136g%15.0r", &_saldo_progressivi);
 | 
			
		||||
    TString str = _totprogre_dare_al.string("###.###.###.###");
 | 
			
		||||
    set_row (5,"@102g%15s", (const char*)str);
 | 
			
		||||
    str = _totprogre_avere_al.string("###.###.###.###");
 | 
			
		||||
    set_row (5,"@119g%15s", (const char*)str); 
 | 
			
		||||
    str = _saldo_progressivi.string("###.###.###.###");    
 | 
			
		||||
    set_row (5,"@136g%15s", (const char*)str);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -762,6 +791,7 @@ bool TMastrini_application::preprocess_page(int file, int counter)
 | 
			
		||||
      TLocalisamfile&  rmov = current_cursor()->file(LF_RMOV);
 | 
			
		||||
           
 | 
			
		||||
      _numreg = atol (current_cursor()->curr(LF_RMOV).get(RMV_NUMREG));
 | 
			
		||||
      _numrig = atoi (current_cursor()->curr(LF_RMOV).get(RMV_NUMRIG));
 | 
			
		||||
 | 
			
		||||
      _gruppocontr     = rmov.get_int (RMV_GRUPPOC);
 | 
			
		||||
      _contocontr      = rmov.get_int (RMV_CONTOC);
 | 
			
		||||
@ -774,7 +804,7 @@ bool TMastrini_application::preprocess_page(int file, int counter)
 | 
			
		||||
    // nella maschera. Se non viene specificato li stampa tutti
 | 
			
		||||
 | 
			
		||||
      _importo = current_cursor()->curr(LF_RMOV).get_real(RMV_IMPORTO);
 | 
			
		||||
      _importo_str = _importo.string("###############");
 | 
			
		||||
      _importo_str = _importo.string("###.###.###.###");
 | 
			
		||||
      _mov->setkey(1);
 | 
			
		||||
      _mov->curr().zero();
 | 
			
		||||
      _mov->curr().put(MOV_NUMREG,_numreg);
 | 
			
		||||
@ -879,20 +909,20 @@ bool TMastrini_application::preprocess_page(int file, int counter)
 | 
			
		||||
              {
 | 
			
		||||
                if (_descrizionemov != "")
 | 
			
		||||
                {                                    
 | 
			
		||||
                  set_row (1,"@42g%.25s", (const char*) _descrizionemov);
 | 
			
		||||
                  set_row (1,"@68g%.32s", (const char*) _descrizione);
 | 
			
		||||
                  set_row (1,"@46g%.23s", (const char*) _descrizionemov);
 | 
			
		||||
                  set_row (1,"@70g%.30s", (const char*) _descrizione);
 | 
			
		||||
                }
 | 
			
		||||
                else if (_descrizionemov == "")
 | 
			
		||||
                     { 
 | 
			
		||||
                       set_row (1,"@42g%.25s", (const char*) _descrcaus);  
 | 
			
		||||
                       set_row (1,"@68g%.32s", (const char*) _descrizione);
 | 
			
		||||
                       set_row (1,"@46g%.23s", (const char*) _descrcaus);  
 | 
			
		||||
                       set_row (1,"@70g%.30s", (const char*) _descrizione);
 | 
			
		||||
                     }
 | 
			
		||||
              }
 | 
			
		||||
              else if (_descrizione == "") 
 | 
			
		||||
                     if (_descrizionemov != "")
 | 
			
		||||
                     {
 | 
			
		||||
                       set_row (1,"@42g%.25s", (const char*) _descrcaus); 
 | 
			
		||||
                       set_row (1,"@68g%.32s", (const char*) _descrizionemov);
 | 
			
		||||
                       set_row (1,"@46g%.23s", (const char*) _descrcaus); 
 | 
			
		||||
                       set_row (1,"@70g%.30s", (const char*) _descrizionemov);
 | 
			
		||||
                     }
 | 
			
		||||
                     else
 | 
			
		||||
                       if (_descrizionemov == "")
 | 
			
		||||
@ -900,9 +930,9 @@ bool TMastrini_application::preprocess_page(int file, int counter)
 | 
			
		||||
                         conto(_gruppocontr,_contocontr,FALSE);
 | 
			
		||||
                         TConto tc (_gruppocontr,_contocontr,_sottocontocontr,_tipo_contr);
 | 
			
		||||
                         TString descr_contr = tc.descrizione();
 | 
			
		||||
                         set_row (1,"@42g%.25s", (const char*) _descrcaus); 
 | 
			
		||||
                         set_row (1,"@46g%.23s", (const char*) _descrcaus); 
 | 
			
		||||
                         if (descr_contr != "Sconosciuto")
 | 
			
		||||
                           set_row (1,"@68g%.32s", (const char*) descr_contr);                       
 | 
			
		||||
                           set_row (1,"@70g%.30s", (const char*) descr_contr);                       
 | 
			
		||||
                       }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
@ -937,8 +967,8 @@ bool TMastrini_application::preprocess_page(int file, int counter)
 | 
			
		||||
                   }
 | 
			
		||||
               }
 | 
			
		||||
          
 | 
			
		||||
          _saldo_progressivi_str=_saldo_progressivi.string("###############");
 | 
			
		||||
          _saldo_movimenti_str=_saldo_movimenti.string("###############");
 | 
			
		||||
          _saldo_progressivi_str=_saldo_progressivi.string("###.###.###.###");
 | 
			
		||||
          _saldo_movimenti_str=_saldo_movimenti.string("###.###.###.###");
 | 
			
		||||
          if (_numcarat == 2)
 | 
			
		||||
          {
 | 
			
		||||
             ricerca_regiva();
 | 
			
		||||
@ -1091,13 +1121,16 @@ print_action TMastrini_application::postprocess_print(int file, int counter)
 | 
			
		||||
 | 
			
		||||
void TMastrini_application::stampa_totaliiva()
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
  real totale;
 | 
			
		||||
  
 | 
			
		||||
  if (_stampatotiva)
 | 
			
		||||
    for (int j = 0; j < _b.items(); j++)
 | 
			
		||||
    {
 | 
			
		||||
      TDociva& riga = (TDociva&)_b[j];
 | 
			
		||||
      set_row(7+j, "@0g%-50s",(const char*) riga._descrdoc);
 | 
			
		||||
      set_row(7+j, "@61g%15.0r", &riga._totdociva);
 | 
			
		||||
      set_row(7+j, "@0g%s",(const char*) riga._descrdoc);   
 | 
			
		||||
      totale = riga._totdociva;
 | 
			
		||||
      TString string = totale.string("###.###.###.###");
 | 
			
		||||
      set_row(7+j, " %15s", (const char*)string);
 | 
			
		||||
    }
 | 
			
		||||
  _b.destroy();
 | 
			
		||||
}
 | 
			
		||||
@ -1184,8 +1217,8 @@ bool TMastrini_application::set_print(int)
 | 
			
		||||
  TLocalisamfile* fl;
 | 
			
		||||
  TString data1,data2;
 | 
			
		||||
 | 
			
		||||
  _puoi_stampare = TRUE;
 | 
			
		||||
 | 
			
		||||
  _puoi_stampare = TRUE;  
 | 
			
		||||
  
 | 
			
		||||
  _msk->set_handler (F_DATAINI          ,data_inizio);
 | 
			
		||||
  _msk->set_handler (F_DATAFINE         ,data_fine);
 | 
			
		||||
  
 | 
			
		||||
@ -1377,7 +1410,8 @@ void TMastrini_application::crea_intestazione()
 | 
			
		||||
    sep.right_just(132);
 | 
			
		||||
    set_header(1,(const char*) sep);
 | 
			
		||||
    sep ="";
 | 
			
		||||
    set_header(2,"@1g%s",(const char*) sep);
 | 
			
		||||
    set_header(2,"@1g%s",(const char*) sep);  
 | 
			
		||||
    //set_header(1,"@126gPag. %2d", _numero_pag++);
 | 
			
		||||
  }
 | 
			
		||||
  else if (_numcarat == 2)
 | 
			
		||||
       {
 | 
			
		||||
@ -1385,16 +1419,17 @@ void TMastrini_application::crea_intestazione()
 | 
			
		||||
         sep1.right_just(198);
 | 
			
		||||
         set_header(1,(const char*) sep1);
 | 
			
		||||
         sep1 ="";
 | 
			
		||||
         set_header(2,"@1g%s",(const char*) sep1);
 | 
			
		||||
         set_header(2,"@1g%s",(const char*) sep1);       
 | 
			
		||||
         //set_header(1,"@190gPagina %2d", _numero_pag++);
 | 
			
		||||
       }
 | 
			
		||||
 
 | 
			
		||||
  set_header (1, "@0gDITTA@6g%5ld", _codice_ditta);
 | 
			
		||||
  set_header (1, "@12g%-45s", (const char*) _ragsoc);
 | 
			
		||||
  set_header (1, "@59g%-25s", (const char*) _indulc);
 | 
			
		||||
  set_header (1, "@86g%-9s", (const char*) _civulc);
 | 
			
		||||
  set_header (1, "@97g%-5s", (const char*) _capulc);
 | 
			
		||||
  set_header (1, "@103g%-18s", (const char*) _com);
 | 
			
		||||
  set_header (1, "@122g%-3s", (const char*) _prov);
 | 
			
		||||
  set_header (1, "@12g%-.45s", (const char*) _ragsoc);
 | 
			
		||||
  set_header (1, "@59g%-.25s", (const char*) _indulc);
 | 
			
		||||
  set_header (1, "@86g%-.9s", (const char*) _civulc);
 | 
			
		||||
  set_header (1, "@97g%-.5s", (const char*) _capulc);
 | 
			
		||||
  set_header (1, "@103g%-.18s", (const char*) _com);
 | 
			
		||||
  set_header (1, "@122g%-.3s", (const char*) _prov);
 | 
			
		||||
 | 
			
		||||
  set_header (3, "@0gSottoconto@12g%d", _gruppo);
 | 
			
		||||
  set_header (3, "@16g%d", _conto);
 | 
			
		||||
@ -1433,15 +1468,82 @@ void TMastrini_application::crea_intestazione()
 | 
			
		||||
       {
 | 
			
		||||
         sep1.fill('-');                    //Stampa 198 - (sep1(198))      
 | 
			
		||||
         set_header (6,"@1g%s", (const char *) sep1);
 | 
			
		||||
         set_header (7,"Operazione@19gData@30gNumero@172gContro@182gReg@190gNumero@197gA");
 | 
			
		||||
         set_header (7,"Operazione@23gData@34gNumero@172gContro@182gReg@190gNumero@197gA");
 | 
			
		||||
                 set_header (8,"Data");
 | 
			
		||||
                 if (_stampanum < 3)
 | 
			
		||||
                     set_header (8,"@11gnumero");
 | 
			
		||||
                 set_header (8,"@19gDocumento@38gCod.Causale@68gDescrizione@113gDare@129gAvere@136gSaldo progress.@156gSaldo movim.@172gPartita@182gIva@186gProtocollo@197gC");
 | 
			
		||||
                 set_header (8,"@23gDocumento@42gCod.Causale@70gDescrizione@113gDare@129gAvere@136gSaldo progress.@156gSaldo movim.@172gPartita@182gIva@186gProtocollo@197gC");
 | 
			
		||||
         sep1.fill('-');
 | 
			
		||||
         set_header (9,"@1g%s", (const char *) sep1);
 | 
			
		||||
       }  
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TMastrini_application::crea_intestazione(int start_riga)
 | 
			
		||||
{
 | 
			
		||||
  TString   sep(132),sep1(198); 
 | 
			
		||||
  int       r = start_riga;
 | 
			
		||||
 | 
			
		||||
  reset_header();
 | 
			
		||||
 | 
			
		||||
  if (_numcarat == 1)
 | 
			
		||||
    set_header(1,"@126gPag. %2d", _numero_pag++);
 | 
			
		||||
  else if (_numcarat == 2)
 | 
			
		||||
         set_header(1,"@190gPagina %2d", _numero_pag++);
 | 
			
		||||
 
 | 
			
		||||
  set_header (r, "@0gDITTA@6g%5ld", _codice_ditta);
 | 
			
		||||
  set_row (r, "@12g%-45s", (const char*) _ragsoc);
 | 
			
		||||
  set_row (r, "@59g%-25s", (const char*) _indulc);
 | 
			
		||||
  set_row (r, "@86g%-9s", (const char*) _civulc);
 | 
			
		||||
  set_row (r, "@97g%-5s", (const char*) _capulc);
 | 
			
		||||
  set_row (r, "@103g%-18s", (const char*) _com);
 | 
			
		||||
  set_row (r, "@122g%-3s", (const char*) _prov);
 | 
			
		||||
  r += 2;
 | 
			
		||||
  set_row (r, "@0gSottoconto@12g%d", _gruppo);
 | 
			
		||||
  set_row (r, "@16g%d", _conto);
 | 
			
		||||
  set_row (r, "@20g%ld", _sottoc); 
 | 
			
		||||
 | 
			
		||||
  if (_tmcf == 'C')                       
 | 
			
		||||
    _tipo_mask = 1;                       
 | 
			
		||||
    else if (_tmcf == 'F')                
 | 
			
		||||
            _tipo_mask = 2;               
 | 
			
		||||
            else if (_tmcf == '\0')        
 | 
			
		||||
           _tipo_mask = 3;        
 | 
			
		||||
  switch (_tipo_mask)
 | 
			
		||||
  {
 | 
			
		||||
    case 1: ricerca_clifo(r);
 | 
			
		||||
              break;
 | 
			
		||||
    case 2: ricerca_clifo(r);
 | 
			
		||||
              break;
 | 
			
		||||
    case 3: ricerca_gruppo(r);
 | 
			
		||||
              break;
 | 
			
		||||
    default:  break;
 | 
			
		||||
  }    
 | 
			
		||||
 | 
			
		||||
  if (_numcarat == 1)
 | 
			
		||||
  {
 | 
			
		||||
    sep.fill('-');                            //Stampa 132 - (sep(132))      
 | 
			
		||||
    set_row (6, (const char *) sep);
 | 
			
		||||
    set_row (7,"Operazione@19gDocumento@117gContro@131gA");
 | 
			
		||||
    set_row (8,"Data");
 | 
			
		||||
        if (_stampanum < 3)
 | 
			
		||||
            set_row (8,"@11gnumero");
 | 
			
		||||
    set_row (8,"@19gData@30gNumero@38gCod.Causale@61gDescrizione@96gDare@111gAvere@117gPartita@131gC");
 | 
			
		||||
    sep.fill('-');
 | 
			
		||||
    set_row (9, (const char *) sep);
 | 
			
		||||
  }
 | 
			
		||||
  else if (_numcarat == 2)
 | 
			
		||||
       {
 | 
			
		||||
         sep1.fill('-');                    //Stampa 198 - (sep1(198))      
 | 
			
		||||
         set_row (6,"@1g%s", (const char *) sep1);
 | 
			
		||||
         set_row (7,"Operazione@23gData@34gNumero@172gContro@182gReg@190gNumero@197gA");
 | 
			
		||||
                 set_row (8,"Data");
 | 
			
		||||
                 if (_stampanum < 3)
 | 
			
		||||
                     set_row (8,"@11gnumero");
 | 
			
		||||
                 set_row (8,"@23gDocumento@42gCod.Causale@70gDescrizione@113gDare@129gAvere@136gSaldo progress.@156gSaldo movim.@172gPartita@182gIva@186gProtocollo@197gC");
 | 
			
		||||
         sep1.fill('-');
 | 
			
		||||
         set_row (9,"@1g%s", (const char *) sep1);
 | 
			
		||||
       }  
 | 
			
		||||
}
 | 
			
		||||
          
 | 
			
		||||
void TMastrini_application::stampa_progre_riporto()
 | 
			
		||||
{ 
 | 
			
		||||
@ -1460,16 +1562,16 @@ void TMastrini_application::stampa_progre_riporto()
 | 
			
		||||
    _riporto_avere += _riporto_parziale_avere;
 | 
			
		||||
    if (_numcarat == 1)
 | 
			
		||||
    {
 | 
			
		||||
      TString string = _riporto_dare.string("###############");
 | 
			
		||||
      TString string = _riporto_dare.string("###.###.###.###");
 | 
			
		||||
      set_row (1,"@32gA RIPORTO@85g%15s",(const char*) string);
 | 
			
		||||
      string = _riporto_avere.string("###############");
 | 
			
		||||
      string = _riporto_avere.string("###.###.###.###");
 | 
			
		||||
      set_row (1,"@101g%15s",(const char*) string);
 | 
			
		||||
    }
 | 
			
		||||
    if (_numcarat == 2)
 | 
			
		||||
    {
 | 
			
		||||
      TString string = _riporto_dare.string("###############");
 | 
			
		||||
      TString string = _riporto_dare.string("###.###.###.###");
 | 
			
		||||
      set_row (1,"@32gA RIPORTO@102g%15s",(const char*) string);
 | 
			
		||||
      string = _riporto_avere.string("###############");
 | 
			
		||||
      string = _riporto_avere.string("###.###.###.###");
 | 
			
		||||
      set_row (1,"@119g%15s",(const char*) string);
 | 
			
		||||
    }
 | 
			
		||||
    _riporto_parziale_dare = 0;
 | 
			
		||||
@ -1614,7 +1716,7 @@ void TMastrini_application::calcola_progressivi()
 | 
			
		||||
// progressivi dell'esercizio e i progressivi di quelli scaricati, tenendo
 | 
			
		||||
// conto del flag salini per sapere se il saldo e' dare oppure avere.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
     if (_annomsk != 0 && _anno_corrente == annoes_saldi)
 | 
			
		||||
     {
 | 
			
		||||
       if (saldo != ZERO)
 | 
			
		||||
@ -1631,12 +1733,13 @@ void TMastrini_application::calcola_progressivi()
 | 
			
		||||
              }
 | 
			
		||||
       }
 | 
			
		||||
     }
 | 
			
		||||
*/     
 | 
			
		||||
   }   // FOR
 | 
			
		||||
 | 
			
		||||
   
 | 
			
		||||
//Se il saldo dell'esercizio attuale non e' diverso da zero, allora il saldo
 | 
			
		||||
// finale dell'esercizio precedente devo calcolarmelo tenendo conto dell'indbil
 | 
			
		||||
       
 | 
			
		||||
   if (_annomsk != 0 && saldo == ZERO)
 | 
			
		||||
   if (_annomsk != 0 /*&& saldo == ZERO*/)
 | 
			
		||||
   {    
 | 
			
		||||
     if ((_indbil == 1) || (_indbil == 2) || (_indbil == 5))
 | 
			
		||||
     {           
 | 
			
		||||
@ -1691,21 +1794,21 @@ void TMastrini_application::stampa_progressivi()
 | 
			
		||||
{
 | 
			
		||||
  if (_numcarat == 1)
 | 
			
		||||
   { 
 | 
			
		||||
     TString string = _saldo_progre_prec.string("###############");
 | 
			
		||||
     set_row (1,"@32gPROGRESSIVI PRECEDENTI@69g%15s",(const char*) string);
 | 
			
		||||
     string = _progredare.string("###############");
 | 
			
		||||
     TString string = _saldo_progre_prec.string("###.###.###.###");
 | 
			
		||||
     set_row (1,"@42gPROGRESSIVI PRECEDENTI@69g%15s",(const char*) string);
 | 
			
		||||
     string = _progredare.string("###.###.###.###");
 | 
			
		||||
     set_row (1,"@85g%15s",(const char*) string);
 | 
			
		||||
     string = _progreavere.string("###############");
 | 
			
		||||
     string = _progreavere.string("###.###.###.###");
 | 
			
		||||
     set_row (1,"@101g%15s",(const char*) string);
 | 
			
		||||
   }
 | 
			
		||||
  
 | 
			
		||||
   if (_numcarat == 2)
 | 
			
		||||
   {
 | 
			
		||||
     TString string = _progredare.string("###############");
 | 
			
		||||
     set_row (1,"@32gPROGRESSIVI PRECEDENTI@102g%15s",(const char*)string);
 | 
			
		||||
     string = _progreavere.string("###############");
 | 
			
		||||
     TString string = _progredare.string("###.###.###.###");
 | 
			
		||||
     set_row (1,"@70gPROGRESSIVI PRECEDENTI@102g%15s",(const char*)string);
 | 
			
		||||
     string = _progreavere.string("###.###.###.###");
 | 
			
		||||
     set_row (1,"@119g%15s",(const char*) string);
 | 
			
		||||
     string = _saldo_progre_prec.string("###############");  
 | 
			
		||||
     string = _saldo_progre_prec.string("###.###.###.###");  
 | 
			
		||||
     set_row (1,"@136g%15s",(const char*) string);
 | 
			
		||||
   }
 | 
			
		||||
}
 | 
			
		||||
@ -1784,9 +1887,9 @@ void TMastrini_application::ricerca_clifo()
 | 
			
		||||
    else
 | 
			
		||||
      descriz2 = "";
 | 
			
		||||
 
 | 
			
		||||
  set_header(3,"@27g%-30s",(const char*) descrizione_gruppo());
 | 
			
		||||
  set_header(3,"@59g%-30s",(const char*) descrizione_conto());
 | 
			
		||||
  set_header(3, "@91g%-30s",(const char*) ragsoc);
 | 
			
		||||
  set_header(3,"@27g%-.30s",(const char*) descrizione_gruppo());
 | 
			
		||||
  set_header(3,"@59g%-.30s",(const char*) descrizione_conto());
 | 
			
		||||
  set_header(3, "@91g%-.41s",(const char*) ragsoc);
 | 
			
		||||
  set_header(4, "Classe@8g%c", _lettivd);
 | 
			
		||||
  set_header(4, "@10g%-8s", (const char*) _numrivd);
 | 
			
		||||
  if (_numivd != 0)
 | 
			
		||||
@ -1815,10 +1918,10 @@ void TMastrini_application::ricerca_clifo()
 | 
			
		||||
 | 
			
		||||
  set_header (5, "@33gP.I.@37g%-11s",(const char*) paiv);
 | 
			
		||||
  set_header (5, "@49gCF@52g%-16s",(const char*) cofi);
 | 
			
		||||
  set_header (5, "@69g%-25s",(const char*) indcf);
 | 
			
		||||
  set_header (5, "@69g%-.25s",(const char*) indcf);
 | 
			
		||||
  set_header (5, "@95g%-5s",(const char*) capcf);
 | 
			
		||||
  set_header (5, "@101g%-24s",(const char*) dencom);
 | 
			
		||||
  set_header (5,"@126g%-5s",(const char*) provcom);
 | 
			
		||||
  set_header (5, "@101g%-.24s",(const char*) dencom);
 | 
			
		||||
  set_header (5, "@126g%-5s",(const char*) provcom);
 | 
			
		||||
 
 | 
			
		||||
  if (_numcarat == 2)
 | 
			
		||||
  {
 | 
			
		||||
@ -1827,6 +1930,124 @@ void TMastrini_application::ricerca_clifo()
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int TMastrini_application::ricerca_clifo(int start)
 | 
			
		||||
{
 | 
			
		||||
  TString ragsoc,paiv,cofi,indcf,capcf,ptel,tel,statocf,comcf,dencom,provcom,dep;
 | 
			
		||||
  TLocalisamfile clifo(LF_CLIFO);
 | 
			
		||||
  TLocalisamfile pconti(LF_PCON);
 | 
			
		||||
  TString16 dataini,datafine; 
 | 
			
		||||
  TString   descriz,descriz2;
 | 
			
		||||
  int     numrivd;
 | 
			
		||||
  int   r = start;
 | 
			
		||||
 | 
			
		||||
  clifo.setkey(1);
 | 
			
		||||
  clifo.zero();
 | 
			
		||||
  clifo.put(CLI_TIPOCF, _tmcf);
 | 
			
		||||
  clifo.put(CLI_CODCF,  _sottoc);
 | 
			
		||||
  clifo.read();
 | 
			
		||||
  if (clifo.bad())
 | 
			
		||||
    clifo.zero();
 | 
			
		||||
  TConto tc (_gruppo,_conto,_sottoc,_tmcf);
 | 
			
		||||
  
 | 
			
		||||
  ragsoc  = tc.descrizione();
 | 
			
		||||
  paiv    = clifo.get(CLI_PAIV);
 | 
			
		||||
  cofi    = clifo.get(CLI_COFI);
 | 
			
		||||
  indcf   = clifo.get(CLI_INDCF);
 | 
			
		||||
  indcf.trim();
 | 
			
		||||
  indcf << " " << clifo.get(CLI_CIVCF);
 | 
			
		||||
  capcf   = clifo.get(CLI_CAPCF);
 | 
			
		||||
  ptel    = clifo.get(CLI_PTEL);
 | 
			
		||||
  tel     = clifo.get(CLI_TEL);
 | 
			
		||||
  statocf = clifo.get(CLI_STATOCF);
 | 
			
		||||
  comcf   = clifo.get(CLI_COMCF);
 | 
			
		||||
 | 
			
		||||
  _comuni->setkey(1);
 | 
			
		||||
  _comuni->zero();
 | 
			
		||||
  _comuni->put(COM_STATO, statocf);
 | 
			
		||||
  _comuni->put(COM_COM, comcf);
 | 
			
		||||
  _comuni->read();
 | 
			
		||||
  if (_comuni->good())
 | 
			
		||||
  {
 | 
			
		||||
    dencom = _comuni->get(COM_DENCOM);
 | 
			
		||||
    provcom = _comuni->get(COM_PROVCOM);
 | 
			
		||||
  }
 | 
			
		||||
  else
 | 
			
		||||
  {
 | 
			
		||||
    dencom="";
 | 
			
		||||
    provcom="";
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  pconti.setkey(1);
 | 
			
		||||
  pconti.zero();
 | 
			
		||||
  pconti.put(PCN_GRUPPO,     _gruppo);
 | 
			
		||||
  pconti.put(PCN_CONTO,      _conto);
 | 
			
		||||
  pconti.read();
 | 
			
		||||
  _sezivd  = pconti.get_char(PCN_SEZIVD);
 | 
			
		||||
  _lettivd = pconti.get_char(PCN_LETTIVD);
 | 
			
		||||
  numrivd  = pconti.get_int(PCN_NUMRIVD); 
 | 
			
		||||
  _numrivd = itor(numrivd);
 | 
			
		||||
  _numivd  = pconti.get_int(PCN_NUMIVD);
 | 
			
		||||
 | 
			
		||||
  descriz = descrizione_classe(_sezivd,_lettivd,numrivd,_numivd);    
 | 
			
		||||
 
 | 
			
		||||
  if (_numivd != 0)      //Ora devo stampare la descrizione del livello della
 | 
			
		||||
  {                      //classe immediatamente precedente a quello appena
 | 
			
		||||
   if (_numrivd != "")   //stampato
 | 
			
		||||
     descriz2 = descrizione_classe(_sezivd,_lettivd,_numrivd_int,0);
 | 
			
		||||
   else
 | 
			
		||||
     descriz2 = descrizione_classe(_sezivd,_lettivd,0,0);
 | 
			
		||||
  }
 | 
			
		||||
  else
 | 
			
		||||
    if (_numrivd != "")
 | 
			
		||||
      descriz2 = descrizione_classe(_sezivd,_lettivd,0,0);   
 | 
			
		||||
    else
 | 
			
		||||
      descriz2 = "";
 | 
			
		||||
 
 | 
			
		||||
  set_row (r,"@27g%-30s",(const char*) descrizione_gruppo());
 | 
			
		||||
  set_row (r,"@59g%-30s",(const char*) descrizione_conto());
 | 
			
		||||
  set_row(r++, "@91g%-30s",(const char*) ragsoc);
 | 
			
		||||
  set_row(r, "Classe@8g%c", _lettivd);
 | 
			
		||||
  set_row(r, "@10g%-8s", (const char*) _numrivd);
 | 
			
		||||
  if (_numivd != 0)
 | 
			
		||||
    set_row(r, "@19g%2d", _numivd);
 | 
			
		||||
  if (descriz2 != "")                              
 | 
			
		||||
  {
 | 
			
		||||
    set_row(r,"@23g%-50s",(const char*) descriz2);
 | 
			
		||||
    set_row(r,"@80g%-50s",(const char*) descriz);                                                  
 | 
			
		||||
  }
 | 
			
		||||
  else
 | 
			
		||||
    set_row(r++,"@23g%-50s",(const char*) descriz);
 | 
			
		||||
                                       
 | 
			
		||||
  dataini = _data_ini.string();   
 | 
			
		||||
  datafine = _data_fine.string();
 | 
			
		||||
 | 
			
		||||
  if (_annomsk == 0)
 | 
			
		||||
  {
 | 
			
		||||
    set_row (r, "Periodo@10g%s", (const char*) dataini);
 | 
			
		||||
    set_row (r, "@22g%s", (const char*) datafine);
 | 
			
		||||
  }
 | 
			
		||||
  else
 | 
			
		||||
  {
 | 
			
		||||
    set_row (r, "Comp. da@9g%s", (const char*) dataini);
 | 
			
		||||
    set_row (r, "@20ga@22g%s", (const char*) datafine);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  set_row (r, "@33gP.I.@37g%-11s",(const char*) paiv);
 | 
			
		||||
  set_row (r, "@49gCF@52g%-16s",(const char*) cofi);
 | 
			
		||||
  set_row (r, "@69g%-25s",(const char*) indcf);
 | 
			
		||||
  set_row (r, "@95g%-5s",(const char*) capcf);
 | 
			
		||||
  set_row (r, "@101g%-24s",(const char*) dencom);
 | 
			
		||||
  set_row (r, "@126g%-5s",(const char*) provcom);
 | 
			
		||||
 
 | 
			
		||||
  if (_numcarat == 2)
 | 
			
		||||
  {
 | 
			
		||||
    set_row (r,"@134g%-4s",(const char*) ptel);
 | 
			
		||||
    set_row (r++,"@138g/@139g%-10s",(const char*) tel);
 | 
			
		||||
  }
 | 
			
		||||
  return r;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Se la ricerca selezionata sulla maschera e' per gruppo, conto, sottoconto
 | 
			
		||||
// ricerca i corrispondenti su PCON, con relativa IV direttiva CEE
 | 
			
		||||
 | 
			
		||||
@ -1873,10 +2094,10 @@ void TMastrini_application::ricerca_gruppo()
 | 
			
		||||
    else
 | 
			
		||||
      descriz2 = "";
 | 
			
		||||
 | 
			
		||||
  set_header(3,"@27g%-30s",(const char*) descrizione_gruppo());
 | 
			
		||||
  set_header(3,"@59g%-30s",(const char*) descrizione_conto());
 | 
			
		||||
  set_header(3,"@27g%-.30s",(const char*) descrizione_gruppo());
 | 
			
		||||
  set_header(3,"@59g%-.30s",(const char*) descrizione_conto());
 | 
			
		||||
 | 
			
		||||
  set_header(3,"@91g%-30s",(const char*) _descr);
 | 
			
		||||
  set_header(3,"@91g%-.41s",(const char*) _descr);
 | 
			
		||||
  set_header(4, "@0gClasse@12g%c", _lettivd);
 | 
			
		||||
  set_header(4, "@14g%-8s",(const char*) _numrivd); 
 | 
			
		||||
  if (_numivd != 0)
 | 
			
		||||
@ -1904,6 +2125,63 @@ void TMastrini_application::ricerca_gruppo()
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int TMastrini_application::ricerca_gruppo(int start)
 | 
			
		||||
{ 
 | 
			
		||||
  TString80 descr,descriz,descriz2,dep;
 | 
			
		||||
  TString dataini,datafine;
 | 
			
		||||
  int   r = start;
 | 
			
		||||
                           
 | 
			
		||||
  ricerca_classe_IV (TRUE);    //Esiste a livello di sottoconto
 | 
			
		||||
  
 | 
			
		||||
  if (_sezivd == '0')           //Non esiste a livello di sottoconto
 | 
			
		||||
    ricerca_classe_IV (FALSE);  //Allora la cerco a livello di conto
 | 
			
		||||
                             
 | 
			
		||||
  descriz = descrizione_classe(_sezivd,_lettivd,_numrivd_int,_numivd);
 | 
			
		||||
  if (_numivd != 0)      //Ora devo stampare la descrizione del livello della
 | 
			
		||||
  {                      //classe immediatamente precedente a quello appena
 | 
			
		||||
   if (_numrivd != "")   //stampato
 | 
			
		||||
     descriz2 = descrizione_classe(_sezivd,_lettivd,_numrivd_int,0);
 | 
			
		||||
   else
 | 
			
		||||
     descriz2 = descrizione_classe(_sezivd,_lettivd,0,0);
 | 
			
		||||
  }
 | 
			
		||||
  else
 | 
			
		||||
    if (_numrivd != "")
 | 
			
		||||
      descriz2 = descrizione_classe(_sezivd,_lettivd,0,0);   
 | 
			
		||||
    else
 | 
			
		||||
      descriz2 = "";
 | 
			
		||||
 | 
			
		||||
  set_row(3,"@27g%-30s",(const char*) descrizione_gruppo());
 | 
			
		||||
  set_row(3,"@59g%-30s",(const char*) descrizione_conto());
 | 
			
		||||
 | 
			
		||||
  set_row(3,"@91g%-30s",(const char*) _descr);
 | 
			
		||||
  set_row(4, "@0gClasse@12g%c", _lettivd);
 | 
			
		||||
  set_row(4, "@14g%-8s",(const char*) _numrivd); 
 | 
			
		||||
  if (_numivd != 0)
 | 
			
		||||
    set_row(4, "@23g%d", _numivd); 
 | 
			
		||||
  if (descriz2 != "")
 | 
			
		||||
  {
 | 
			
		||||
    set_row(4,"@27g%-50s",(const char*) descriz2);
 | 
			
		||||
    set_row(4,"@80g%-50s",(const char*) descriz);                                                  
 | 
			
		||||
  }
 | 
			
		||||
  else
 | 
			
		||||
    set_row(4,"@27g%-50s",(const char*) descriz);
 | 
			
		||||
  
 | 
			
		||||
  dataini = _data_ini.string();
 | 
			
		||||
  datafine = _data_fine.string();
 | 
			
		||||
 | 
			
		||||
  if (_annomsk == 0)
 | 
			
		||||
  {
 | 
			
		||||
    set_row (5, "Periodo@12g%s", (const char*) dataini);
 | 
			
		||||
    set_row (5, "@24g%s", (const char*) datafine);
 | 
			
		||||
  }
 | 
			
		||||
  else
 | 
			
		||||
  {
 | 
			
		||||
    set_row (5, "Periodo di competenza@23g%s", (const char*) dataini);
 | 
			
		||||
    set_row (5, "@35g%s", (const char*) datafine);
 | 
			
		||||
  }
 | 
			
		||||
  return r;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const char* TMastrini_application::descrizione_classe(char sezione, char lettera, int numr, int numero)
 | 
			
		||||
{
 | 
			
		||||
  TTable tabivd(TAB_IVD);
 | 
			
		||||
@ -2003,11 +2281,13 @@ bool TMastrini_application::user_create()
 | 
			
		||||
  _msk->set_handler (F_CONTOFINE_CLIENTE  ,conto_hnd);
 | 
			
		||||
  _msk->set_handler (F_CONTOFINE_FORN     ,conto_hnd);
 | 
			
		||||
  
 | 
			
		||||
  _msk->set_handler (F_SOTTOCFINE_CONTO   ,sottoc_hnd);
 | 
			
		||||
  _msk->set_handler (F_SOTTOCFINE_CLIENTE ,sottoc_hnd);
 | 
			
		||||
  _msk->set_handler (F_SOTTOCFINE_FORN    ,sottoc_hnd);
 | 
			
		||||
//  _msk->set_handler (F_SOTTOCFINE_CONTO   ,sottoc_hnd);
 | 
			
		||||
//  _msk->set_handler (F_SOTTOCFINE_CLIENTE ,sottoc_hnd);
 | 
			
		||||
//  _msk->set_handler (F_SOTTOCFINE_FORN    ,sottoc_hnd);
 | 
			
		||||
  
 | 
			
		||||
  _inizio_stampa = TRUE;    
 | 
			
		||||
  _numero_pag    = 1;
 | 
			
		||||
  
 | 
			
		||||
  _inizio_stampa = TRUE;
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -5,15 +5,15 @@ PAGE "Stampa Mastrini" -1 -1 78 20
 | 
			
		||||
 | 
			
		||||
NUMBER F_CODDITTA 5
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT 4 1 "Ditta             "
 | 
			
		||||
	FLAGS "FRD"
 | 
			
		||||
	USE LF_NDITTE KEY 1  
 | 
			
		||||
	CHECKTYPE REQUIRED
 | 
			
		||||
	INPUT CODDITTA F_CODDITTA
 | 
			
		||||
	DISPLAY "Codice" CODDITTA
 | 
			
		||||
	DISPLAY "Ragione sociale @50" RAGSOC
 | 
			
		||||
	OUTPUT F_CODDITTA CODDITTA 
 | 
			
		||||
	OUTPUT F_RAGSOC RAGSOC
 | 
			
		||||
    PROMPT 4 1 "Ditta             "
 | 
			
		||||
    FLAGS "FRD"
 | 
			
		||||
    USE LF_NDITTE KEY 1  
 | 
			
		||||
    CHECKTYPE REQUIRED
 | 
			
		||||
    INPUT CODDITTA F_CODDITTA
 | 
			
		||||
    DISPLAY "Codice" CODDITTA
 | 
			
		||||
    DISPLAY "Ragione sociale @50" RAGSOC
 | 
			
		||||
    OUTPUT F_CODDITTA CODDITTA 
 | 
			
		||||
    OUTPUT F_RAGSOC RAGSOC
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_RAGSOC 50
 | 
			
		||||
@ -148,7 +148,7 @@ NUMBER F_SOTTOCINI_CONTO 6
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 48 5 ""
 | 
			
		||||
  HELP "Codice conto da cui iniziare la stampa"
 | 
			
		||||
  USE LF_PCON //SELECT SOTTOCONTO!=""
 | 
			
		||||
  USE LF_PCON SELECT SOTTOCONTO!=""
 | 
			
		||||
  INPUT GRUPPO F_GRUPPOINI
 | 
			
		||||
  INPUT CONTO F_CONTOINI_CONTO
 | 
			
		||||
  INPUT SOTTOCONTO F_SOTTOCINI_CONTO
 | 
			
		||||
@ -476,7 +476,7 @@ END
 | 
			
		||||
LIST F_STAMPANUM 15
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 4 15 "Stampa numerazione "
 | 
			
		||||
  HELP "Indicare il tipo di numerazione da stampare"
 | 
			
		||||
  HELP "Indicare il tipo di numerazione da stampare" 
 | 
			
		||||
  ITEM "1|Operazione"
 | 
			
		||||
  ITEM "2|Riga giornale"
 | 
			
		||||
  ITEM "3|Nessuna"
 | 
			
		||||
@ -500,12 +500,12 @@ END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_OK 9 2
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT -12 -1  ""
 | 
			
		||||
    PROMPT -12 -1  ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_QUIT 9 2
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT -22 -1 ""
 | 
			
		||||
    PROMPT -22 -1 ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
ENDPAGE
 | 
			
		||||
@ -528,23 +528,24 @@ BEGIN
 | 
			
		||||
  ITEM "72|12 pollici (30,48 cm)"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
LIST F_NUMMAST 5
 | 
			
		||||
LIST F_NUMMAST 10
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 4 6 "Numero mastrini per pagina "
 | 
			
		||||
  HELP "Indicare il numero di mastrini contenuti in una pagina"
 | 
			
		||||
  ITEM "1|Uno"
 | 
			
		||||
  ITEM "2|Due"
 | 
			
		||||
  ITEM "3|Continua"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_PRINT 9 2
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT -12 -1 "~Stampa"
 | 
			
		||||
	MESSAGE EXIT,K_ENTER
 | 
			
		||||
    PROMPT -12 -1 "~Stampa"
 | 
			
		||||
    MESSAGE EXIT,K_ENTER
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BUTTON DLG_QUIT 9 2
 | 
			
		||||
BEGIN
 | 
			
		||||
	PROMPT -22 -1 ""
 | 
			
		||||
    PROMPT -22 -1 ""
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -270,8 +270,6 @@ bool CG4400_application::mask_libun (TMask_field& f, KEY k)
 | 
			
		||||
{    
 | 
			
		||||
  static bool can_print = TRUE;
 | 
			
		||||
  
 | 
			
		||||
  if (!can_print) return FALSE;
 | 
			
		||||
  
 | 
			
		||||
  if (k == K_ENTER) return can_print;
 | 
			
		||||
  
 | 
			
		||||
  if (k==K_TAB && f.mask().is_running())
 | 
			
		||||
@ -286,7 +284,7 @@ bool CG4400_application::mask_libun (TMask_field& f, KEY k)
 | 
			
		||||
    int last_mese = 13;
 | 
			
		||||
    int mese = 0;
 | 
			
		||||
    
 | 
			
		||||
    app().__firm = app().get_firm();
 | 
			
		||||
    app().__firm = app().get_firm(); 
 | 
			
		||||
    
 | 
			
		||||
    for (int i = 0; i < app()._ditte->items(); i++)
 | 
			
		||||
    {
 | 
			
		||||
@ -301,11 +299,8 @@ bool CG4400_application::mask_libun (TMask_field& f, KEY k)
 | 
			
		||||
          {
 | 
			
		||||
            if (app()._selected[i]) f.message_box("Ditta %ld: il registro %s non soddisfa i parametri indicati", ditta, (const char*)cod);  
 | 
			
		||||
            if (app()._selected.last_one() == i) 
 | 
			
		||||
            {
 | 
			
		||||
              can_print = FALSE;
 | 
			
		||||
              break;
 | 
			
		||||
            }
 | 
			
		||||
            else 
 | 
			
		||||
            else  
 | 
			
		||||
              continue;
 | 
			
		||||
          }
 | 
			
		||||
          if (mese != 0 && mese < fino_a_mese - 1) //indipendentemente se si tratta di una ditta selezionata oppure no
 | 
			
		||||
@ -328,10 +323,9 @@ bool CG4400_application::mask_libun (TMask_field& f, KEY k)
 | 
			
		||||
          last_mese = (last_mese < mese) ? last_mese : mese;
 | 
			
		||||
      }    
 | 
			
		||||
    }             
 | 
			
		||||
    
 | 
			
		||||
    app().set_firm(app().__firm);
 | 
			
		||||
    app().set_firm(app().__firm); 
 | 
			
		||||
 | 
			
		||||
    if (last_mese == 13)
 | 
			
		||||
      //return FALSE; 
 | 
			
		||||
      last_mese = 0; //l'ultima data di stampa sul/sui registri specificati e' vuota (cioe' non sono ancora stati stampati sul libro unico specificato per l'anno specificato) 
 | 
			
		||||
    const char* me = "";
 | 
			
		||||
    me = format("%02d", last_mese);   
 | 
			
		||||
@ -1634,10 +1628,8 @@ bool CG4400_application::compila_reg(const TMask& m)
 | 
			
		||||
    if (_tabreg->read() != NOERR)
 | 
			
		||||
    {
 | 
			
		||||
      if (_tipo_stampa != 3)
 | 
			
		||||
      {
 | 
			
		||||
        warning_box("Il registro IVA specificato non esiste nella \n Ditta %ld", _ditta);
 | 
			
		||||
        return FALSE;
 | 
			
		||||
      }
 | 
			
		||||
      return FALSE;
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
@ -1830,18 +1822,6 @@ bool CG4400_application::preprocess_page(int file, int counter)
 | 
			
		||||
        mov.rewrite();
 | 
			
		||||
      }      
 | 
			
		||||
    
 | 
			
		||||
    /*
 | 
			
		||||
       if ( intra && autof)
 | 
			
		||||
       {
 | 
			
		||||
       _auto_intraf = TRUE;
 | 
			
		||||
       tipo_op = "3";
 | 
			
		||||
       }  
 | 
			
		||||
       else if (intra) 
 | 
			
		||||
       tipo_op = "1";
 | 
			
		||||
       else if (autof)
 | 
			
		||||
       tipo_op = "2";
 | 
			
		||||
       */
 | 
			
		||||
    
 | 
			
		||||
    if (codcf == 0l)
 | 
			
		||||
      ragsoc = descrcau;
 | 
			
		||||
    else
 | 
			
		||||
@ -1890,14 +1870,13 @@ bool CG4400_application::preprocess_page(int file, int counter)
 | 
			
		||||
    _r = 1;
 | 
			
		||||
    if (!_stampa_data_reg) 
 | 
			
		||||
      set_row(_r, "%s", (const char*) _datareg.string(2, '/'));
 | 
			
		||||
    set_row(_r, "@9g%5d", protiva);
 | 
			
		||||
    set_row(_r, "@9g%5ld", protiva);
 | 
			
		||||
    if (datadoc.ok())
 | 
			
		||||
      set_row(_r, "@15g%s", (const char*) app);
 | 
			
		||||
    set_row(_r, "@24g%s",   (const char*) numdoc);
 | 
			
		||||
    if (codcf != 0l)
 | 
			
		||||
      set_row(_r, "@31g%6ld", codcf);
 | 
			
		||||
    set_row(_r, "@38g%-.29s",(const char*) ragsoc);
 | 
			
		||||
    //set_row(_r, "@68g%s",   (const char*) tipo_op);
 | 
			
		||||
    set_row(_r, "@38g%-.30s",(const char*) ragsoc);
 | 
			
		||||
    set_row(_r, "@70g%2s",  (const char*) _tipodoc);
 | 
			
		||||
    if (_stampa_width == 132)
 | 
			
		||||
      set_row(_r, "@72g%r", &totdoc);
 | 
			
		||||
@ -2472,7 +2451,9 @@ bool CG4400_application::stampa_registri_IVA(const TMask& m)
 | 
			
		||||
            send_message('C',t, _fino_a_mese);
 | 
			
		||||
          }
 | 
			
		||||
          
 | 
			
		||||
          print();
 | 
			
		||||
          print(); 
 | 
			
		||||
          
 | 
			
		||||
          if (is_cancelled()) return FALSE;
 | 
			
		||||
          
 | 
			
		||||
          if (_tipo_stampa != 3 && _liquidazione)  
 | 
			
		||||
            stampa_liq_mesi_succ();
 | 
			
		||||
@ -2642,6 +2623,8 @@ bool CG4400_application::stampa_registri_IVA(const TMask& m)
 | 
			
		||||
                
 | 
			
		||||
                print(); 
 | 
			
		||||
                
 | 
			
		||||
                if (is_cancelled()) return FALSE;
 | 
			
		||||
                
 | 
			
		||||
                if (_tipo_stampa != 3 && _liquidazione)  
 | 
			
		||||
                  stampa_liq_mesi_succ();
 | 
			
		||||
              }
 | 
			
		||||
 | 
			
		||||
@ -133,6 +133,7 @@ BEGIN
 | 
			
		||||
  CHECKTYPE REQUIRED
 | 
			
		||||
  WARNING "Inserire il codice del libro unico"  
 | 
			
		||||
  VALIDATE ZEROFILL_FUNC 3
 | 
			
		||||
  MESSAGE K_TAB, CODICE_LIBRO_IVA
 | 
			
		||||
  GROUP 2
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -499,7 +499,7 @@ bool TSaldo::ultima_immissione_verifica(int annoes,int g,int c,long s,int indbil
 | 
			
		||||
    _prg_avere      = saldi.get_real(SLD_PAVERE);
 | 
			
		||||
    sezione         = saldi.get_char(SLD_FLAGSALINI);
 | 
			
		||||
    
 | 
			
		||||
    if (_prg_dare == ZERO && _prg_avere == ZERO) 
 | 
			
		||||
    if (_saldo_iniziale == ZERO && _prg_dare == ZERO && _prg_avere == ZERO) 
 | 
			
		||||
      return esito;
 | 
			
		||||
    
 | 
			
		||||
    if (sezione == 'A') _saldo_iniziale = -_saldo_iniziale;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user