Files correlati : cg3.exe cg3500a.msk Ricompilazione Demo : [ ] Commento : 0001142: maschera old la maschera di richiesta parametri dei stampa riepiloghi è ancora modello 3.2 git-svn-id: svn://10.65.10.50/trunk@18187 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			951 lines
		
	
	
		
			28 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			951 lines
		
	
	
		
			28 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
//Stampa riepilogo gruppi/conti
 | 
						|
 | 
						|
// W96SALDI e' la sigla di tutte le modifiche effettuate riguardo il cambiamento dell' archivio 
 | 
						|
// SALDI. L' archivio e' cambiato nel seguente modo:
 | 
						|
// - Non esistono piu' i progressivi dei movimenti scaricati PDARESCA e PAVERESCA;
 | 
						|
// - Ora esistono un record per i movimenti normali e un record per i movimenti scaricati; la 
 | 
						|
//   distinzione e' resa possibile dall' introduzione in chiave di un flag FLSCA (vedi tracciato)
 | 
						|
//   che e' un booleano. Il record con FLSCA = FALSE contiene la somma dei saldi dei movimenti
 | 
						|
//   normali e dei movimenti scaricati, mentre il record con FLSCA = TRUE, contiene solo i saldi
 | 
						|
//   dei movimenti scaricati.
 | 
						|
// Tutti i saldi che nel programma venivano memorizzati nei campi PDARESCA e PAVERESCA dei
 | 
						|
// file temporanei ora sono memorizzati in PDAREPRO e PAVEREPRO.
 | 
						|
// Le funzioni che sono state modificate sono:
 | 
						|
// - riepilogo();
 | 
						|
// - ricerca_cf(...);
 | 
						|
// - leggi_conti(...);
 | 
						|
// - leggi_gruppi(...);
 | 
						|
// - CercaConto(...);
 | 
						|
// - CercaGruppo(...);
 | 
						|
// - UltimaData(...);
 | 
						|
 | 
						|
#include <config.h>
 | 
						|
#include <mask.h>
 | 
						|
#include <printapp.h>
 | 
						|
#include <progind.h>
 | 
						|
#include <tabutil.h>
 | 
						|
#include <utility.h>
 | 
						|
 | 
						|
#include <pconti.h>
 | 
						|
#include <comuni.h>
 | 
						|
#include <clifo.h> 
 | 
						|
#include <saldi.h>
 | 
						|
#include <nditte.h>
 | 
						|
#include <anagr.h>
 | 
						|
 | 
						|
#include "cg3.h"
 | 
						|
#include "cg3500.h"
 | 
						|
#include "cglib02.h"
 | 
						|
 | 
						|
typedef enum {stampagruppo, stampaconto, stampasottoconto, fine} tipo;
 | 
						|
 | 
						|
class TStampa_riepilogo : public TPrintapp
 | 
						|
{
 | 
						|
  TSaldi_list* _lista;
 | 
						|
  TIsamtempfile * _tmp_saldi;
 | 
						|
  tipo _tp; 
 | 
						|
  real _prg_dare,_prg_avere,_saldo_dare,_saldo_avere,_prg_dare_tot,_prg_avere_tot,_saldo_tot;
 | 
						|
  real _prg_dare_gruppo,_prg_avere_gruppo,_saldo_dare_gruppo,_saldo_avere_gruppo,_prg_dare_conto,_prg_avere_conto,_saldo_dare_conto,_saldo_avere_conto;
 | 
						|
  int  _ggruppo,_gconto,_cgruppo,_cconto,_gcorr,_ccorr,_gprec,_cprec,_scelta,_richiesta,_annoese,_eof;
 | 
						|
  long _scorr;
 | 
						|
  char _tipo;
 | 
						|
  TDate _ultima_data,_data,_udata_max;
 | 
						|
  TString _descr,_descrconto,_descrgruppo,_cofi,_cap,_paiva,_ragsoc,_comunefis,_provfis,_viafis,_g_descr,_c_descr;
 | 
						|
 | 
						|
public:
 | 
						|
 | 
						|
  virtual bool user_create() ;
 | 
						|
  virtual bool user_destroy();
 | 
						|
  virtual bool set_print(int);
 | 
						|
 | 
						|
  virtual bool preprocess_print(int,int);
 | 
						|
  virtual void preprocess_header();
 | 
						|
  virtual bool preprocess_page(int,int);
 | 
						|
  virtual print_action postprocess_page(int,int);
 | 
						|
  virtual void postclose_print();
 | 
						|
 | 
						|
  bool riepilogo();
 | 
						|
  bool ricerca_cf(TConto&,int,real&,real&);
 | 
						|
  tipo leggi_conti(int);
 | 
						|
  tipo leggi_gruppi(int);
 | 
						|
  bool CercaConto(int,int);
 | 
						|
  bool CercaGruppo(int);
 | 
						|
  void setta_riga_conto();
 | 
						|
  void setta_riga_gruppo();
 | 
						|
  void setta_riga_sottoconto();
 | 
						|
  void setta_riga_totale();
 | 
						|
  void get_dati_ditta();
 | 
						|
  int  stampa_intestazione_ditta();
 | 
						|
  TDate UltimaData(int,int,long);
 | 
						|
  
 | 
						|
  TStampa_riepilogo() { } 
 | 
						|
  virtual ~TStampa_riepilogo() { }
 | 
						|
};
 | 
						|
 | 
						|
bool TStampa_riepilogo::riepilogo() 
 | 
						|
{
 | 
						|
  TSaldo sld;
 | 
						|
  int g, c, gp, cp, indbil;
 | 
						|
  long s;
 | 
						|
  char tipo_conto = ' ';
 | 
						|
  bool esiste_conto = FALSE, esiste_sc = FALSE;
 | 
						|
  real saldo_conto,prg_conto_dare,prg_conto_avere,saldo_gruppo,prg_gruppo_dare,prg_gruppo_avere,prg_dare,prg_avere,saldo;
 | 
						|
  
 | 
						|
  CHECK(_tmp_saldi == NULL, "La minchia che riapro cg01!");                                                    
 | 
						|
  _tmp_saldi = new TIsamtempfile(LF_SALDI, "cg01", TRUE, TRUE);
 | 
						|
 | 
						|
  gp=-1;
 | 
						|
  cp=-1;
 | 
						|
  _udata_max = 0l;
 | 
						|
 | 
						|
  TRelation rel(LF_PCON);
 | 
						|
  TCursor cur(&rel);
 | 
						|
  cur.freeze();
 | 
						|
  const TRectype& pcn = rel.curr();
 | 
						|
  const TRecnotype items = cur.items();
 | 
						|
  TProgind prog(items, TR("Elaborazione in corso..."), true, true);
 | 
						|
 | 
						|
	for (cur = 0L; cur.pos() < items; ++cur)
 | 
						|
  {
 | 
						|
    if (!prog.addstatus(1))
 | 
						|
      break;
 | 
						|
    g          = pcn.get_int (PCN_GRUPPO);
 | 
						|
    c          = pcn.get_int (PCN_CONTO);
 | 
						|
    s          = pcn.get_long(PCN_SOTTOCONTO);
 | 
						|
    tipo_conto = pcn.get_char(PCN_TMCF);
 | 
						|
 | 
						|
    TConto conto (g,c,s,tipo_conto);
 | 
						|
 | 
						|
    //il "conto" e' cambiato anche se e' rimasto invariato il conto ma e' cambiato il gruppo
 | 
						|
    if ( (((cp != -1) && (conto.conto() != cp)) || ((gp != -1) && (conto.gruppo() != gp)))
 | 
						|
        && esiste_sc )
 | 
						|
    {
 | 
						|
      saldo_conto      = prg_conto_dare - prg_conto_avere;
 | 
						|
      prg_gruppo_dare  += prg_conto_dare;
 | 
						|
      prg_gruppo_avere += prg_conto_avere;
 | 
						|
 | 
						|
      //scrivo il record del conto;
 | 
						|
      _tmp_saldi->zero();
 | 
						|
      _tmp_saldi->put(SLD_GRUPPO,gp);
 | 
						|
      _tmp_saldi->put(SLD_CONTO,cp);
 | 
						|
      _tmp_saldi->put(SLD_SOTTOCONTO,0L);
 | 
						|
      _tmp_saldi->put(SLD_ANNOES,_annoese);
 | 
						|
      _tmp_saldi->put(SLD_DATAULMOV,_udata_max);
 | 
						|
      _tmp_saldi->put(SLD_PDARE,prg_conto_dare);
 | 
						|
      _tmp_saldi->put(SLD_PAVERE,prg_conto_avere);
 | 
						|
      if (saldo_conto > 0.00) //va stampato in Dare
 | 
						|
        _tmp_saldi->put(SLD_PDAREPRO,saldo_conto);    // W96SALDI del 10-06-96  
 | 
						|
      else
 | 
						|
      {
 | 
						|
        saldo_conto = saldo_conto * (-1.00);         
 | 
						|
        _tmp_saldi->put(SLD_PAVEREPRO,saldo_conto);   // W96SALDI del 10-06-96
 | 
						|
      }
 | 
						|
      _tmp_saldi->write();
 | 
						|
      esiste_conto = TRUE;
 | 
						|
      esiste_sc    = FALSE;
 | 
						|
      cp = conto.conto();
 | 
						|
      prg_conto_dare    = 0.00;
 | 
						|
      prg_conto_avere   = 0.00;
 | 
						|
    }
 | 
						|
    if ( ((gp != -1) && (conto.gruppo() != gp)) && esiste_conto )
 | 
						|
    {
 | 
						|
      saldo_gruppo = prg_gruppo_dare - prg_gruppo_avere;
 | 
						|
 | 
						|
      //scrivo il record del gruppo
 | 
						|
      _tmp_saldi->zero();
 | 
						|
      _tmp_saldi->put(SLD_GRUPPO,gp);
 | 
						|
      _tmp_saldi->put(SLD_CONTO,0);
 | 
						|
      _tmp_saldi->put(SLD_SOTTOCONTO,0L);
 | 
						|
      _tmp_saldi->put(SLD_ANNOES,_annoese);
 | 
						|
      _tmp_saldi->put(SLD_PDARE,prg_gruppo_dare);
 | 
						|
      _tmp_saldi->put(SLD_PAVERE,prg_gruppo_avere);
 | 
						|
      if (saldo_gruppo > 0.00) //va stampato in Dare
 | 
						|
        _tmp_saldi->put(SLD_PDAREPRO,saldo_gruppo);       // W96SALDI del 10-06-96
 | 
						|
        //_tmp_saldi->put(SLD_PDARESCA,saldo_gruppo);
 | 
						|
      else
 | 
						|
      {
 | 
						|
        saldo_gruppo = saldo_gruppo * (-1.00);      
 | 
						|
        _tmp_saldi->put(SLD_PAVEREPRO,saldo_gruppo);      // W96SALDI del 10-06-96
 | 
						|
        //_tmp_saldi->put(SLD_PAVERESCA,saldo_gruppo);
 | 
						|
      }
 | 
						|
      _tmp_saldi->write();
 | 
						|
      gp = conto.gruppo();
 | 
						|
      esiste_conto = FALSE;
 | 
						|
      prg_gruppo_dare   = 0.00;
 | 
						|
      prg_gruppo_avere  = 0.00;
 | 
						|
    }   
 | 
						|
    if ( (conto.sottoconto() == 0) && (conto.conto() != 0) ) //si tratta di un conto
 | 
						|
    {
 | 
						|
      if ( (tipo_conto == 'C') || (tipo_conto == 'F') ) //si tratta di un conto cliente/fornitore
 | 
						|
      {
 | 
						|
        _udata_max = 0l;
 | 
						|
        indbil     = pcn.get_int(PCN_INDBIL);
 | 
						|
        esiste_sc  = ricerca_cf(conto,indbil,prg_conto_dare,prg_conto_avere);
 | 
						|
        if (esiste_sc)
 | 
						|
        {
 | 
						|
          gp = conto.gruppo();
 | 
						|
          cp = conto.conto();
 | 
						|
        }
 | 
						|
        if (cur.pos() == items-1)
 | 
						|
        {  
 | 
						|
          saldo_conto      = prg_conto_dare - prg_conto_avere;
 | 
						|
          prg_gruppo_dare  += prg_conto_dare;
 | 
						|
          prg_gruppo_avere += prg_conto_avere;
 | 
						|
          if (esiste_sc)
 | 
						|
          {
 | 
						|
            //scrivo il record del conto;
 | 
						|
            _tmp_saldi->zero();
 | 
						|
            _tmp_saldi->put(SLD_GRUPPO,gp);
 | 
						|
            _tmp_saldi->put(SLD_CONTO,cp);
 | 
						|
            _tmp_saldi->put(SLD_SOTTOCONTO,0L);
 | 
						|
            _tmp_saldi->put(SLD_ANNOES,_annoese);
 | 
						|
            _tmp_saldi->put(SLD_DATAULMOV,_udata_max);
 | 
						|
            _tmp_saldi->put(SLD_PDARE,prg_conto_dare);
 | 
						|
            _tmp_saldi->put(SLD_PAVERE,prg_conto_avere);
 | 
						|
            if (saldo_conto > 0.00) //va stampato in Dare
 | 
						|
              _tmp_saldi->put(SLD_PDAREPRO,saldo_conto);       // W96SALDI del 10-06-96
 | 
						|
              //_tmp_saldi->put(SLD_PDARESCA,saldo_conto);
 | 
						|
            else
 | 
						|
            {
 | 
						|
              saldo_conto = saldo_conto * (-1.00);       
 | 
						|
              _tmp_saldi->put(SLD_PAVEREPRO,saldo_conto);      // W96SALDI del 10-06-96
 | 
						|
              //_tmp_saldi->put(SLD_PAVERESCA,saldo_conto);
 | 
						|
            }
 | 
						|
            _tmp_saldi->write();
 | 
						|
            esiste_conto = TRUE;
 | 
						|
            esiste_sc = FALSE;
 | 
						|
          }
 | 
						|
          if (esiste_conto)
 | 
						|
          {   
 | 
						|
            saldo_gruppo = prg_gruppo_dare - prg_gruppo_avere;
 | 
						|
            //scrivo il record del gruppo
 | 
						|
            _tmp_saldi->zero();
 | 
						|
            _tmp_saldi->put(SLD_GRUPPO,gp);
 | 
						|
            _tmp_saldi->put(SLD_CONTO,0);
 | 
						|
            _tmp_saldi->put(SLD_SOTTOCONTO,0L);
 | 
						|
            _tmp_saldi->put(SLD_ANNOES,_annoese);
 | 
						|
            _tmp_saldi->put(SLD_PDARE,prg_gruppo_dare);
 | 
						|
            _tmp_saldi->put(SLD_PAVERE,prg_gruppo_avere);
 | 
						|
            if (saldo_gruppo > 0.00) //va stampato in Dare
 | 
						|
              _tmp_saldi->put(SLD_PDAREPRO,saldo_gruppo);
 | 
						|
              //_tmp_saldi->put(SLD_PDARESCA,saldo_gruppo);     // W96SALDI del 10-06-96
 | 
						|
            else
 | 
						|
            {
 | 
						|
              saldo_gruppo = saldo_gruppo * (-1.00);      
 | 
						|
              _tmp_saldi->put(SLD_PAVEREPRO,saldo_gruppo);      // W96SALDI del 10-06-96
 | 
						|
              //_tmp_saldi->put(SLD_PAVERESCA,saldo_gruppo);
 | 
						|
            }
 | 
						|
            _tmp_saldi->write();
 | 
						|
          }  
 | 
						|
        } 
 | 
						|
        
 | 
						|
        continue;
 | 
						|
      }
 | 
						|
    }
 | 
						|
    
 | 
						|
    if (conto.conto() == 0)
 | 
						|
      indbil = pcn.get_int(PCN_INDBIL);
 | 
						|
    
 | 
						|
    if ( (conto.conto() == 0) || (conto.sottoconto() == 0) ) //e' un gruppo o un conto
 | 
						|
    {     
 | 
						|
      _udata_max = 0l;
 | 
						|
      esiste_sc = FALSE;
 | 
						|
      continue;
 | 
						|
    }
 | 
						|
    // ho trovato un sottoconto
 | 
						|
    //esiste_sc = TRUE;
 | 
						|
    prg_dare  = 0.00;
 | 
						|
    prg_avere = 0.00;
 | 
						|
    if (_richiesta == 1)
 | 
						|
      sld.prg_attuali(_annoese,conto,prg_dare,prg_avere);
 | 
						|
    else sld.prg_mov_eliminati(_annoese,conto,prg_dare,prg_avere);
 | 
						|
    
 | 
						|
    saldo = prg_dare - prg_avere;
 | 
						|
    
 | 
						|
    prg_conto_dare  += prg_dare;
 | 
						|
    prg_conto_avere += prg_avere; 
 | 
						|
    
 | 
						|
    if (prg_dare != ZERO || prg_avere != ZERO)
 | 
						|
    {    
 | 
						|
      esiste_sc = TRUE;
 | 
						|
      if (_scelta == 1) //riepilogo conti
 | 
						|
      {
 | 
						|
        _tmp_saldi->zero();
 | 
						|
        _tmp_saldi->put(SLD_GRUPPO,conto.gruppo());
 | 
						|
        _tmp_saldi->put(SLD_CONTO,conto.conto());
 | 
						|
        _tmp_saldi->put(SLD_SOTTOCONTO,conto.sottoconto());
 | 
						|
        _tmp_saldi->put(SLD_ANNOES,_annoese);
 | 
						|
        _tmp_saldi->put(SLD_FLAGSALINI,tipo_conto);
 | 
						|
        _tmp_saldi->put(SLD_PDARE,prg_dare);
 | 
						|
        _tmp_saldi->put(SLD_PAVERE,prg_avere);
 | 
						|
        if (saldo > 0.00) //va stampato in Dare           
 | 
						|
          _tmp_saldi->put(SLD_PDAREPRO,saldo);      // W96SALDI del 10-06-96
 | 
						|
          //_tmp_saldi->put(SLD_PDARESCA,saldo);
 | 
						|
        else
 | 
						|
        {
 | 
						|
          saldo = saldo * (-1.00); 
 | 
						|
          _tmp_saldi->put(SLD_PAVEREPRO,saldo);     // W96SALDI del 10-06-96
 | 
						|
          //_tmp_saldi->put(SLD_PAVERESCA,saldo);
 | 
						|
        }
 | 
						|
        _tmp_saldi->write();
 | 
						|
      }
 | 
						|
      if (_scelta == 2)
 | 
						|
      {
 | 
						|
        _ultima_data = UltimaData(conto.gruppo(),conto.conto(),conto.sottoconto());
 | 
						|
        _udata_max   = fnc_max(_udata_max,_ultima_data);
 | 
						|
      }
 | 
						|
 | 
						|
      gp = conto.gruppo();
 | 
						|
      cp = conto.conto();
 | 
						|
    }
 | 
						|
    
 | 
						|
    if (cur.pos() == items-1)
 | 
						|
    {
 | 
						|
      saldo_conto      = prg_conto_dare - prg_conto_avere;
 | 
						|
      prg_gruppo_dare  += prg_conto_dare;
 | 
						|
      prg_gruppo_avere += prg_conto_avere;
 | 
						|
      if (esiste_sc)
 | 
						|
      {
 | 
						|
        esiste_conto = TRUE;
 | 
						|
        //scrivo il record del conto;
 | 
						|
        _tmp_saldi->zero();
 | 
						|
        _tmp_saldi->put(SLD_GRUPPO,gp);
 | 
						|
        _tmp_saldi->put(SLD_CONTO,cp);
 | 
						|
        _tmp_saldi->put(SLD_SOTTOCONTO,0L);
 | 
						|
        _tmp_saldi->put(SLD_ANNOES,_annoese);
 | 
						|
        _tmp_saldi->put(SLD_DATAULMOV,_udata_max);
 | 
						|
        _tmp_saldi->put(SLD_PDARE,prg_conto_dare);
 | 
						|
        _tmp_saldi->put(SLD_PAVERE,prg_conto_avere);
 | 
						|
        if (saldo_conto > 0.00) //va stampato in Dare
 | 
						|
          _tmp_saldi->put(SLD_PDAREPRO,saldo_conto);     // W96SALDI del 10-06-96
 | 
						|
          //_tmp_saldi->put(SLD_PDARESCA,saldo_conto);
 | 
						|
        else
 | 
						|
        {
 | 
						|
          saldo_conto = saldo_conto * (-1.00); 
 | 
						|
          _tmp_saldi->put(SLD_PAVEREPRO,saldo_conto);    // W96SALDI del 10-06-96
 | 
						|
          //_tmp_saldi->put(SLD_PAVERESCA,saldo_conto);
 | 
						|
        }
 | 
						|
        _tmp_saldi->write();
 | 
						|
      }
 | 
						|
      saldo_gruppo = prg_gruppo_dare - prg_gruppo_avere;
 | 
						|
      if (esiste_conto)
 | 
						|
      {
 | 
						|
        //scrivo il record del gruppo
 | 
						|
        _tmp_saldi->zero();
 | 
						|
        _tmp_saldi->put(SLD_GRUPPO,gp);
 | 
						|
        _tmp_saldi->put(SLD_CONTO,0);
 | 
						|
        _tmp_saldi->put(SLD_SOTTOCONTO,0L);
 | 
						|
        _tmp_saldi->put(SLD_ANNOES,_annoese);
 | 
						|
        _tmp_saldi->put(SLD_PDARE,prg_gruppo_dare);
 | 
						|
        _tmp_saldi->put(SLD_PAVERE,prg_gruppo_avere);
 | 
						|
        if (saldo_gruppo > 0.00) //va stampato in Dare
 | 
						|
          _tmp_saldi->put(SLD_PDAREPRO,saldo_gruppo);       // W96SALDI del 10-06-96
 | 
						|
          //_tmp_saldi->put(SLD_PDARESCA,saldo_gruppo);
 | 
						|
        else
 | 
						|
        {
 | 
						|
          saldo_gruppo = -saldo_gruppo;
 | 
						|
          _tmp_saldi->put(SLD_PAVEREPRO,saldo_gruppo);      // W96SALDI del 10-06-96
 | 
						|
          //_tmp_saldi->put(SLD_PAVERESCA,saldo_gruppo);
 | 
						|
        }
 | 
						|
        _tmp_saldi->write();
 | 
						|
      } 
 | 
						|
    }
 | 
						|
  }  
 | 
						|
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
bool TStampa_riepilogo::ricerca_cf(TConto& conto,int indbil,real& prg_conto_dare,real& prg_conto_avere) 
 | 
						|
{
 | 
						|
  TSaldo sld;
 | 
						|
  bool esiste_sc = FALSE;
 | 
						|
  int     g = conto.gruppo();
 | 
						|
  int     c = conto.conto();
 | 
						|
  char tipo = conto.tipo();  
 | 
						|
  long s;
 | 
						|
  
 | 
						|
  real prg_dare, prg_avere, saldo;
 | 
						|
  _lista = new TSaldi_list (g,c,_annoese);
 | 
						|
  TRecnotype items = _lista->items();
 | 
						|
  prg_conto_dare   = 0.00;
 | 
						|
  prg_conto_avere  = 0.00;
 | 
						|
  for (int i = 0; i < items; i++)
 | 
						|
  {
 | 
						|
    const TRectype* r = _lista->saldi();
 | 
						|
    s = r->get_long(SLD_SOTTOCONTO);
 | 
						|
    prg_dare  = 0.00;
 | 
						|
    prg_avere = 0.00;  
 | 
						|
    conto.set(g, c, s, tipo); //aggiunge a conto s
 | 
						|
    if (_richiesta == 1)
 | 
						|
      sld.prg_attuali(_annoese,conto,prg_dare,prg_avere);
 | 
						|
    else sld.prg_mov_eliminati(_annoese,conto,prg_dare,prg_avere);
 | 
						|
    
 | 
						|
    saldo = prg_dare - prg_avere;
 | 
						|
    prg_conto_dare  += prg_dare;
 | 
						|
    prg_conto_avere += prg_avere;
 | 
						|
    
 | 
						|
    if (prg_dare != ZERO || prg_avere != ZERO)
 | 
						|
    {
 | 
						|
      esiste_sc = TRUE;
 | 
						|
      if (_scelta == 1)
 | 
						|
      {
 | 
						|
        _tmp_saldi->zero();
 | 
						|
        _tmp_saldi->put(SLD_GRUPPO,g);
 | 
						|
        _tmp_saldi->put(SLD_CONTO,c);
 | 
						|
        _tmp_saldi->put(SLD_SOTTOCONTO,s);
 | 
						|
        _tmp_saldi->put(SLD_ANNOES,_annoese);
 | 
						|
        _tmp_saldi->put(SLD_FLAGSALINI,tipo);
 | 
						|
        _tmp_saldi->put(SLD_PDARE,prg_dare);
 | 
						|
        _tmp_saldi->put(SLD_PAVERE,prg_avere);
 | 
						|
        if (saldo > 0.00) //va stampato in Dare
 | 
						|
          _tmp_saldi->put(SLD_PDAREPRO,saldo);       // W96SALDI del 10-06-96
 | 
						|
          //_tmp_saldi->put(SLD_PDARESCA,saldo);
 | 
						|
        else
 | 
						|
        {
 | 
						|
          saldo = saldo * (-1.00); 
 | 
						|
          _tmp_saldi->put(SLD_PAVEREPRO,saldo);      // W96SALDI del 10-06-96
 | 
						|
          //_tmp_saldi->put(SLD_PAVERESCA,saldo);
 | 
						|
        }
 | 
						|
        _tmp_saldi->write();
 | 
						|
      }
 | 
						|
      if (_scelta == 2)
 | 
						|
      {
 | 
						|
        _ultima_data = UltimaData(conto.gruppo(),conto.conto(),conto.sottoconto());
 | 
						|
        _udata_max   = fnc_max(_udata_max,_ultima_data);
 | 
						|
      } 
 | 
						|
    } 
 | 
						|
  }  
 | 
						|
  delete _lista;
 | 
						|
  return esiste_sc;
 | 
						|
}
 | 
						|
 | 
						|
bool TStampa_riepilogo::preprocess_print(int file, int counter)
 | 
						|
{ 
 | 
						|
  set_real_picture ("###.###.###.###.###");
 | 
						|
  set_print_zero(FALSE);    
 | 
						|
  set_magic_currency(TRUE);
 | 
						|
  
 | 
						|
  _tmp_saldi->setkey(2);
 | 
						|
  _prg_dare_tot  = 0.0;
 | 
						|
  _prg_avere_tot = 0.0;
 | 
						|
  _gprec = -1;
 | 
						|
  _cprec = -1;
 | 
						|
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
tipo TStampa_riepilogo::leggi_conti(int counter)
 | 
						|
{
 | 
						|
  TRecnotype pos;
 | 
						|
 | 
						|
  if (counter == 0)
 | 
						|
  { 
 | 
						|
    _eof = _tmp_saldi->first();
 | 
						|
    if (_eof)
 | 
						|
      return fine;
 | 
						|
  } 
 | 
						|
  
 | 
						|
  do 
 | 
						|
  {   
 | 
						|
    _gcorr = _tmp_saldi->get_int(SLD_GRUPPO);
 | 
						|
    _ccorr = _tmp_saldi->get_int(SLD_CONTO);
 | 
						|
    _scorr = _tmp_saldi->get_long(SLD_SOTTOCONTO);
 | 
						|
    pos    = _tmp_saldi->recno();
 | 
						|
    _eof   = _tmp_saldi->next();
 | 
						|
  } while ( (_scorr == 0l) && (!_eof) );
 | 
						|
  
 | 
						|
  if ( (_gprec != _gcorr) && (_gprec != -1) )
 | 
						|
  {
 | 
						|
    CercaConto(_gprec,_cprec);
 | 
						|
    CercaGruppo(_gprec);
 | 
						|
    _cprec = _ccorr;
 | 
						|
    _gprec = _gcorr;
 | 
						|
    _tmp_saldi->readat(pos);
 | 
						|
 | 
						|
    return stampagruppo;
 | 
						|
  }
 | 
						|
 | 
						|
  if ( (_cprec != _ccorr)&&(_cprec != -1) )
 | 
						|
  {
 | 
						|
    CercaConto(_gprec,_cprec);
 | 
						|
    _cprec = _ccorr;
 | 
						|
    _tmp_saldi->readat(pos);
 | 
						|
    
 | 
						|
    return stampaconto;
 | 
						|
  }
 | 
						|
 | 
						|
  if (_eof)
 | 
						|
  {
 | 
						|
    _ultima_data = UltimaData(_gcorr,_ccorr,_scorr);
 | 
						|
    _tmp_saldi->readat(pos);
 | 
						|
    _tipo        = _tmp_saldi->get_char(SLD_FLAGSALINI);
 | 
						|
    if (_tipo != 'C' && _tipo != 'F')
 | 
						|
      _tipo = ' ';
 | 
						|
    TConto conto (_gcorr,_ccorr,_scorr,_tipo);
 | 
						|
    _descr       = conto.descrizione();
 | 
						|
    _prg_dare    = _tmp_saldi->get_real(SLD_PDARE);
 | 
						|
    _prg_avere   = _tmp_saldi->get_real(SLD_PAVERE);  
 | 
						|
    _saldo_dare  = _tmp_saldi->get_real(SLD_PDAREPRO);     // W96SALDI del 10-06-96
 | 
						|
    _saldo_avere = _tmp_saldi->get_real(SLD_PAVEREPRO);
 | 
						|
 | 
						|
    CercaConto(_gcorr,_ccorr);
 | 
						|
    CercaGruppo(_gcorr);
 | 
						|
 | 
						|
    return fine;
 | 
						|
  }
 | 
						|
 | 
						|
  if ( (_gprec == -1) && (_cprec == -1) )
 | 
						|
  {
 | 
						|
    _gprec = _gcorr;
 | 
						|
    _cprec = _ccorr;
 | 
						|
  }
 | 
						|
  
 | 
						|
  _ultima_data = UltimaData(_gcorr,_ccorr,_scorr);
 | 
						|
  _tmp_saldi->readat(pos);
 | 
						|
  _tipo        = _tmp_saldi->get_char(SLD_FLAGSALINI);
 | 
						|
  if (_tipo != 'C' && _tipo != 'F')
 | 
						|
    _tipo = ' ';
 | 
						|
  TConto conto (_gcorr,_ccorr,_scorr,_tipo);
 | 
						|
  _descr       = conto.descrizione();
 | 
						|
  _prg_dare    = _tmp_saldi->get_real(SLD_PDARE);
 | 
						|
  _prg_avere   = _tmp_saldi->get_real(SLD_PAVERE);  
 | 
						|
  _saldo_dare  = _tmp_saldi->get_real(SLD_PDAREPRO);   // W96SALDI del 10-06-96
 | 
						|
  //_saldo_dare  = _tmp_saldi->get_real(SLD_PDARESCA); 
 | 
						|
  _saldo_avere = _tmp_saldi->get_real(SLD_PAVEREPRO);
 | 
						|
  //_saldo_avere = _tmp_saldi->get_real(SLD_PAVERESCA);
 | 
						|
  _tmp_saldi->next();
 | 
						|
 | 
						|
  return stampasottoconto;
 | 
						|
}
 | 
						|
 | 
						|
tipo TStampa_riepilogo::leggi_gruppi(int counter)
 | 
						|
{
 | 
						|
  TRecnotype pos;
 | 
						|
 | 
						|
  if (counter == 0)
 | 
						|
  { 
 | 
						|
    _eof = _tmp_saldi->first();
 | 
						|
    if (_eof)
 | 
						|
      return fine;
 | 
						|
  }  
 | 
						|
  
 | 
						|
  do 
 | 
						|
  {   
 | 
						|
    _gcorr = _tmp_saldi->get_int(SLD_GRUPPO);
 | 
						|
    _ccorr = _tmp_saldi->get_int(SLD_CONTO);
 | 
						|
    pos    = _tmp_saldi->recno();
 | 
						|
    _eof   = _tmp_saldi->next();
 | 
						|
  } while ( (_ccorr == 0l) && (!_eof) ); //esco dal ciclo quando ho trovato un gruppo oppure quando e' finito il file
 | 
						|
  
 | 
						|
  if ( (_gprec != _gcorr) && (_gprec != -1) )
 | 
						|
  {
 | 
						|
    CercaGruppo(_gprec);
 | 
						|
    _gprec = _gcorr;
 | 
						|
    _tmp_saldi->readat(pos);
 | 
						|
 | 
						|
    return stampagruppo;
 | 
						|
  }
 | 
						|
 | 
						|
  if (_eof)
 | 
						|
  {
 | 
						|
    _tmp_saldi->readat(pos);
 | 
						|
    _ultima_data       = _tmp_saldi->get_date(SLD_DATAULMOV);
 | 
						|
    _tipo              = _tmp_saldi->get_char(SLD_FLAGSALINI);
 | 
						|
    if (_tipo != 'C' && _tipo != 'F')
 | 
						|
      _tipo = ' ';
 | 
						|
    TConto conto (_gcorr,_ccorr,0l,_tipo);
 | 
						|
    _descrconto        = conto.descrizione();
 | 
						|
    _prg_dare_conto    = _tmp_saldi->get_real(SLD_PDARE);
 | 
						|
    _prg_avere_conto   = _tmp_saldi->get_real(SLD_PAVERE);  
 | 
						|
    _saldo_dare_conto  = _tmp_saldi->get_real(SLD_PDAREPRO);       // W96SALDI del 10-06-96
 | 
						|
    //_saldo_dare_conto  = _tmp_saldi->get_real(SLD_PDARESCA);
 | 
						|
    _saldo_avere_conto = _tmp_saldi->get_real(SLD_PAVEREPRO);
 | 
						|
    //_saldo_avere_conto = _tmp_saldi->get_real(SLD_PAVERESCA);
 | 
						|
 | 
						|
    CercaGruppo(_gcorr);
 | 
						|
 | 
						|
    return fine;
 | 
						|
  }
 | 
						|
 | 
						|
  if (_gprec == -1) 
 | 
						|
    _gprec = _gcorr;
 | 
						|
  
 | 
						|
  _tmp_saldi->readat(pos);
 | 
						|
  _ultima_data       = _tmp_saldi->get_date(SLD_DATAULMOV);
 | 
						|
  _tipo              = _tmp_saldi->get_char(SLD_FLAGSALINI);
 | 
						|
  if (_tipo != 'C' && _tipo != 'F')
 | 
						|
    _tipo = ' ';
 | 
						|
  TConto conto (_gcorr,_ccorr,0l,_tipo);
 | 
						|
  _descrconto        = conto.descrizione();
 | 
						|
  _prg_dare_conto    = _tmp_saldi->get_real(SLD_PDARE);
 | 
						|
  _prg_avere_conto   = _tmp_saldi->get_real(SLD_PAVERE);
 | 
						|
  _saldo_dare_conto  = _tmp_saldi->get_real(SLD_PDAREPRO);       // W96SALDI del 10-06-96
 | 
						|
  //_saldo_dare_conto  = _tmp_saldi->get_real(SLD_PDARESCA);      
 | 
						|
  _saldo_avere_conto = _tmp_saldi->get_real(SLD_PAVEREPRO);
 | 
						|
  //_saldo_avere_conto = _tmp_saldi->get_real(SLD_PAVERESCA);
 | 
						|
  _tmp_saldi->next();
 | 
						|
 | 
						|
  return stampaconto;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
bool TStampa_riepilogo::CercaConto(int g, int c)
 | 
						|
{
 | 
						|
  _tmp_saldi->zero();
 | 
						|
  _tmp_saldi->put(SLD_GRUPPO,g);
 | 
						|
  _tmp_saldi->put(SLD_CONTO,c);
 | 
						|
  _tmp_saldi->put(SLD_SOTTOCONTO,0l);
 | 
						|
  _tmp_saldi->put(SLD_ANNOES,_annoese);
 | 
						|
  _tmp_saldi->put(SLD_FLSCA,FALSE);         // W96SALDI del 10-06-96
 | 
						|
  if (_tmp_saldi->read() == NOERR)
 | 
						|
  {
 | 
						|
    _gconto            = _tmp_saldi->get_int(SLD_GRUPPO);
 | 
						|
    _cconto            = _tmp_saldi->get_int(SLD_CONTO);
 | 
						|
    _tipo              = _tmp_saldi->get_char(SLD_FLAGSALINI);
 | 
						|
    if (_tipo != 'C' && _tipo != 'F')
 | 
						|
      _tipo = ' ';
 | 
						|
    if (_scelta == 2)
 | 
						|
      _ultima_data = _tmp_saldi->get_date(SLD_DATAULMOV); 
 | 
						|
    TConto conto       (_gconto,_cconto,0l,_tipo);
 | 
						|
    _descrconto        = conto.descrizione();
 | 
						|
    _prg_dare_conto    = _tmp_saldi->get_real(SLD_PDARE);
 | 
						|
    _prg_avere_conto   = _tmp_saldi->get_real(SLD_PAVERE);  
 | 
						|
    _saldo_dare_conto  = _tmp_saldi->get_real(SLD_PDAREPRO);
 | 
						|
    //_saldo_dare_conto  = _tmp_saldi->get_real(SLD_PDARESCA);   // W96SALDI del 10-06-96
 | 
						|
    _saldo_avere_conto = _tmp_saldi->get_real(SLD_PAVEREPRO);
 | 
						|
    //_saldo_avere_conto = _tmp_saldi->get_real(SLD_PAVERESCA);
 | 
						|
    
 | 
						|
    return TRUE;
 | 
						|
  }
 | 
						|
  return FALSE;
 | 
						|
}
 | 
						|
 | 
						|
bool TStampa_riepilogo::CercaGruppo(int g)
 | 
						|
{
 | 
						|
  _tmp_saldi->zero();
 | 
						|
  _tmp_saldi->put(SLD_GRUPPO,g);
 | 
						|
  _tmp_saldi->put(SLD_CONTO,0);
 | 
						|
  _tmp_saldi->put(SLD_SOTTOCONTO,0l);
 | 
						|
  _tmp_saldi->put(SLD_ANNOES,_annoese);
 | 
						|
  _tmp_saldi->put(SLD_FLSCA, "");
 | 
						|
  if (_tmp_saldi->read() == NOERR)
 | 
						|
  {
 | 
						|
    _ggruppo            = _tmp_saldi->get_int(SLD_GRUPPO);
 | 
						|
    _tipo               = _tmp_saldi->get_char(SLD_FLAGSALINI);
 | 
						|
    if (_tipo != 'C' && _tipo != 'F')
 | 
						|
      _tipo = ' ';
 | 
						|
    TConto conto        (_ggruppo,0,0l,_tipo);
 | 
						|
    _descrgruppo        = conto.descrizione();
 | 
						|
    _prg_dare_gruppo    = _tmp_saldi->get_real(SLD_PDARE);
 | 
						|
    _prg_avere_gruppo   = _tmp_saldi->get_real(SLD_PAVERE);  
 | 
						|
    _saldo_dare_gruppo  = _tmp_saldi->get_real(SLD_PDAREPRO);        // W96SALDI del 10-06-96
 | 
						|
    //_saldo_dare_gruppo  = _tmp_saldi->get_real(SLD_PDARESCA);
 | 
						|
    _saldo_avere_gruppo = _tmp_saldi->get_real(SLD_PAVEREPRO);
 | 
						|
    //_saldo_avere_gruppo = _tmp_saldi->get_real(SLD_PAVERESCA);
 | 
						|
    _prg_dare_tot      += _prg_dare_gruppo;
 | 
						|
    _prg_avere_tot     += _prg_avere_gruppo;
 | 
						|
 | 
						|
    return TRUE;
 | 
						|
  }
 | 
						|
  return FALSE;
 | 
						|
}
 | 
						|
 | 
						|
bool TStampa_riepilogo::preprocess_page(int file, int counter)
 | 
						|
{
 | 
						|
  reset_print();
 | 
						|
  
 | 
						|
  if (_scelta == 1)
 | 
						|
    _tp = leggi_conti(counter);
 | 
						|
  if (_scelta == 2)
 | 
						|
    _tp = leggi_gruppi(counter);
 | 
						|
  
 | 
						|
  if (_tp == fine && counter == 0)
 | 
						|
    return FALSE;
 | 
						|
  
 | 
						|
  if (_tp == fine) 
 | 
						|
  {
 | 
						|
    if (_scelta == 1)
 | 
						|
      setta_riga_sottoconto();
 | 
						|
    setta_riga_conto();
 | 
						|
    setta_riga_gruppo();
 | 
						|
    setta_riga_totale();
 | 
						|
  }
 | 
						|
  if (_tp == stampagruppo)
 | 
						|
  {
 | 
						|
    if ( _scelta == 1) setta_riga_conto();
 | 
						|
    setta_riga_gruppo();
 | 
						|
  }
 | 
						|
  if (_tp == stampaconto) 
 | 
						|
    setta_riga_conto();
 | 
						|
  if (_tp == stampasottoconto)
 | 
						|
    setta_riga_sottoconto();
 | 
						|
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
void TStampa_riepilogo::postclose_print()
 | 
						|
{                    
 | 
						|
  if (_tmp_saldi)
 | 
						|
  { delete _tmp_saldi; _tmp_saldi = NULL; }
 | 
						|
 | 
						|
  //return NEXT_PAGE;
 | 
						|
} 
 | 
						|
 | 
						|
print_action TStampa_riepilogo::postprocess_page(int file, int counter)
 | 
						|
{
 | 
						|
  if (_tp == fine)
 | 
						|
    return NEXT_PAGE;
 | 
						|
 | 
						|
  return REPEAT_PAGE;
 | 
						|
}
 | 
						|
 | 
						|
void TStampa_riepilogo::setta_riga_sottoconto()
 | 
						|
{
 | 
						|
  TString udata = _ultima_data.string();
 | 
						|
  
 | 
						|
  set_row(1,"%6ld",  _scorr);
 | 
						|
  set_row(1," %.34s@r",(const char*) _descr);
 | 
						|
  set_row(1,"@42g%s",(const char*) udata);
 | 
						|
  set_row(1,"@53g%r@73g%r@93g%r@113g%r",&_prg_dare,&_prg_avere,&_saldo_dare,&_saldo_avere);
 | 
						|
}
 | 
						|
 | 
						|
void TStampa_riepilogo::setta_riga_conto()
 | 
						|
{
 | 
						|
  TString riga (132);
 | 
						|
  TString udata = _ultima_data.string();
 | 
						|
  int r; 
 | 
						|
 | 
						|
  riga = "";
 | 
						|
  if ( (_tp == fine) && (_scelta == 1) ) 
 | 
						|
    r = 2;
 | 
						|
  else 
 | 
						|
    r = 1;
 | 
						|
  
 | 
						|
  if (_scelta == 1)
 | 
						|
  {
 | 
						|
    set_row(r++,"%s",(const char*)riga);
 | 
						|
    set_row(r,FR("**** Totali conto  %3d %3d"),_gconto,_cconto);
 | 
						|
    set_row(r,"@27g%.25s@r",(const char*)_descrconto);
 | 
						|
 | 
						|
  }
 | 
						|
  if (_scelta == 2)
 | 
						|
  {
 | 
						|
    set_row(r,"%3d",  _ccorr);
 | 
						|
    set_row(r," %.25s@r",(const char*)_descrconto);
 | 
						|
    set_row(r,"@42g%s",(const char*)udata);
 | 
						|
  }
 | 
						|
  set_row(r++,"@53g%r@73g%r@93g%r@113g%r",&_prg_dare_conto,&_prg_avere_conto,&_saldo_dare_conto,&_saldo_avere_conto);
 | 
						|
  if ( (_scelta == 1) || ((_scelta == 2) && (_tp == fine)) )
 | 
						|
    set_row(r,"%s",(const char*)riga);
 | 
						|
}
 | 
						|
 | 
						|
void TStampa_riepilogo::setta_riga_gruppo()
 | 
						|
{
 | 
						|
  TString riga (132);
 | 
						|
  int r = 0;
 | 
						|
 | 
						|
  riga.fill('-');
 | 
						|
  if (_scelta == 1)
 | 
						|
    if (_tp == fine) r = 5;
 | 
						|
    else r = 4;
 | 
						|
  if (_scelta == 2)
 | 
						|
    if (_tp == fine) r = 3;
 | 
						|
    else r = 2;
 | 
						|
  set_row(r,FR("**** TOTALI GRUPPO %3d"),_ggruppo);
 | 
						|
  set_row(r,"@27g%.25s@r",(const char*)_descrgruppo);
 | 
						|
  set_row(r++,"@53g%r@73g%r@93g%r@113g%r",&_prg_dare_gruppo,&_prg_avere_gruppo,&_saldo_dare_gruppo,&_saldo_avere_gruppo);
 | 
						|
  set_row(r++,"%s",(const char*)riga);
 | 
						|
  riga = "";
 | 
						|
  set_row(r,"%s",(const char*)riga);
 | 
						|
}
 | 
						|
 | 
						|
void TStampa_riepilogo::setta_riga_totale()
 | 
						|
{
 | 
						|
  _saldo_tot = _prg_dare_tot - _prg_avere_tot;
 | 
						|
 | 
						|
  const int r = _scelta == 1 ? 8 : 6; 
 | 
						|
 | 
						|
  //17/11/1995
 | 
						|
  set_row(r, FR("****  TOTALE GENERALE @53g%r@73g%r"), &_prg_dare_tot, &_prg_avere_tot);
 | 
						|
  
 | 
						|
  // Guy: 10/01/97 errore MI6125
 | 
						|
  if (_saldo_tot != 0.0)
 | 
						|
  {              
 | 
						|
    int go = 93;
 | 
						|
    if (_saldo_tot < 0.0)
 | 
						|
    {
 | 
						|
      _saldo_tot = -_saldo_tot;
 | 
						|
      go += 20;
 | 
						|
    }
 | 
						|
 | 
						|
    TString16 st;
 | 
						|
    st << '@' << go << "g%r";
 | 
						|
    set_row(r, st, &_saldo_tot);    
 | 
						|
  }  
 | 
						|
}
 | 
						|
 | 
						|
TDate TStampa_riepilogo::UltimaData(int g, int c, long s)
 | 
						|
{ 
 | 
						|
  TLocalisamfile saldi(LF_SALDI);
 | 
						|
  TDate uldata;
 | 
						|
 | 
						|
  saldi.zero();
 | 
						|
  if (_annoese != 0)
 | 
						|
    saldi.put(SLD_ANNOES, _annoese);
 | 
						|
  saldi.put(SLD_FLSCA, FALSE);            // W96SALDI del 10-06-96
 | 
						|
  saldi.put(SLD_GRUPPO,g);
 | 
						|
  if (c != 0)
 | 
						|
    saldi.put(SLD_CONTO, c);
 | 
						|
  if (s != 0)
 | 
						|
    saldi.put(SLD_SOTTOCONTO, s);
 | 
						|
  saldi.read();
 | 
						|
  if (saldi.bad())
 | 
						|
    saldi.zero();
 | 
						|
  uldata = saldi.get(SLD_DATAULMOV);
 | 
						|
 | 
						|
  return uldata;  
 | 
						|
} 
 | 
						|
 | 
						|
bool TStampa_riepilogo::user_create()
 | 
						|
{
 | 
						|
  open_files(LF_CLIFO, LF_COMUNI, LF_PCON, LF_SALDI, LF_NDITTE, LF_ANAG, 
 | 
						|
						 LF_TABCOM, LF_TAB, 0);
 | 
						|
  _tmp_saldi = NULL;
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
bool TStampa_riepilogo::user_destroy()
 | 
						|
{
 | 
						|
  delete _tmp_saldi;
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
bool TStampa_riepilogo::set_print(int)
 | 
						|
{
 | 
						|
  TMask m ("cg3500a");
 | 
						|
  if (m.run() == K_ENTER)
 | 
						|
  {
 | 
						|
    _annoese   = m.get_int(F_ANNO);
 | 
						|
    _scelta    = m.get_int(F_STAMPA);
 | 
						|
    _richiesta = m.get_int(F_RICHIESTA);
 | 
						|
    _data      = m.get(F_DATASTAMPA);
 | 
						|
    riepilogo();
 | 
						|
 | 
						|
    return TRUE;
 | 
						|
  }
 | 
						|
  return FALSE;
 | 
						|
}
 | 
						|
 | 
						|
void TStampa_riepilogo::get_dati_ditta()
 | 
						|
{
 | 
						|
  TString        codanagr;
 | 
						|
  TString        tipoa;
 | 
						|
 | 
						|
	const TRectype & nditte = cache().get(LF_NDITTE, get_firm());
 | 
						|
 | 
						|
  codanagr = nditte.get(NDT_CODANAGR);
 | 
						|
  tipoa    = nditte.get(NDT_TIPOA);
 | 
						|
  _ragsoc  = nditte.get(NDT_RAGSOC);
 | 
						|
 | 
						|
	TToken_string key;
 | 
						|
  key.add(tipoa);
 | 
						|
  key.add(codanagr);
 | 
						|
 | 
						|
	const TRectype & anag = cache().get(LF_ANAG, key);
 | 
						|
  
 | 
						|
  _cofi      = anag.get(ANA_COFI);
 | 
						|
  _paiva     = anag.get(ANA_PAIV);
 | 
						|
  _comunefis = anag.get(ANA_COMRF);
 | 
						|
 | 
						|
  if (_comunefis.empty()) 
 | 
						|
    _comunefis   = anag.get(ANA_COMRES);
 | 
						|
 | 
						|
	key.cut(0);
 | 
						|
	key.add("");
 | 
						|
	key.add(_comunefis);
 | 
						|
 | 
						|
  const TRectype & com = cache().get(LF_COMUNI, key);
 | 
						|
 | 
						|
  _comunefis   = com.get(COM_DENCOM);
 | 
						|
  _provfis     = com.get(COM_PROVCOM);
 | 
						|
  _cap         = com.get(COM_CAPCOM);
 | 
						|
  if (_comunefis.empty()) 
 | 
						|
  {
 | 
						|
    _viafis      = anag.get(ANA_INDRF);
 | 
						|
    _viafis.rtrim();
 | 
						|
    _viafis << " " << anag.get (ANA_CIVRF); 
 | 
						|
  }
 | 
						|
  else
 | 
						|
  {
 | 
						|
    _viafis      = anag.get(ANA_INDRES);
 | 
						|
    _viafis.rtrim();
 | 
						|
    _viafis << " " << anag.get (ANA_CIVRES); 
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
int TStampa_riepilogo::stampa_intestazione_ditta()
 | 
						|
{
 | 
						|
  int r = 1;
 | 
						|
  TString codice_ditta;
 | 
						|
  TString riga(132);
 | 
						|
 | 
						|
  get_dati_ditta();
 | 
						|
  codice_ditta << get_firm(); 
 | 
						|
 | 
						|
  set_header (r, FR("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 = FR("Data @<  Pag. @#");
 | 
						|
  riga.right_just(127);
 | 
						|
  riga.overwrite (format (FR("Partita iva %s Codice fiscale %s"), (const char*)_paiva, (const char*)_cofi));
 | 
						|
  set_header (r, "%s", (const char*) riga);
 | 
						|
  r++;
 | 
						|
 | 
						|
  return r; 
 | 
						|
}
 | 
						|
 | 
						|
void TStampa_riepilogo::preprocess_header()
 | 
						|
{
 | 
						|
  int r;
 | 
						|
  reset_header();
 | 
						|
  r = stampa_intestazione_ditta();
 | 
						|
  TString riga (132); 
 | 
						|
 | 
						|
  r++;
 | 
						|
  if (_scelta == 1) //stampa riepilogo conti
 | 
						|
    set_header(r,TR("*** MASTRO DI CONTO ***"));
 | 
						|
  else set_header(r,TR("*** MASTRO DI GRUPPO ***"));
 | 
						|
  set_header(r,FR("@33gCod. esercizio %d"), _annoese);
 | 
						|
  if (_richiesta == 1)
 | 
						|
    set_header(r,FR("@70gPROGRESSIVI ATTUALI@114gSALDO ATTUALE"));
 | 
						|
  else set_header(r,FR("@70gPROG. MOV. ELIMINATI@110gSALDO MOV. ELIMINATI"));     
 | 
						|
  
 | 
						|
  r++;
 | 
						|
  r++;
 | 
						|
  if (_scelta == 1)
 | 
						|
    set_header(r,TR("SOTTOC DESCRIZIONE"));
 | 
						|
  else set_header(r,TR("CONTO DESCRIZIONE"));
 | 
						|
  set_header(r++,FR("@40gDATA ULT.MOV@68gDARE@87gAVERE@108gDARE@127gAVERE"));
 | 
						|
  riga.fill('-');
 | 
						|
  set_header(r,"%s",(const char*)riga);
 | 
						|
  r++;
 | 
						|
  riga = "";
 | 
						|
  set_header(r,"%s",(const char*)riga);
 | 
						|
}
 | 
						|
 | 
						|
int cg3500 (int argc, char* argv[])
 | 
						|
{
 | 
						|
  TStampa_riepilogo a;
 | 
						|
  a.run(argc, argv, TR("Stampa riepilogo gruppi/conti"));
 | 
						|
  return 0;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 |