731 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			731 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
// 771100.cpp - Manutenzione dati anagrafici
 | 
						|
//
 | 
						|
// 771mod -0 A  : "Dichiarante"
 | 
						|
// 771mod -0 C  : "Rappresentante"
 | 
						|
// 771mod -0 D  : "Scritture contabili"
 | 
						|
// 771mod -0 E  : "Dati C.A.A.F."
 | 
						|
// 771mod -0 F  : "Direttore / Professionista"
 | 
						|
// 771mod -0 G  : "Concessione / UIDD"
 | 
						|
//
 | 
						|
// Lista modifiche:
 | 
						|
//
 | 
						|
// 1.4.96	Rappresentante: codice e carica rappr. non vengono piu' registrati
 | 
						|
//          su NDITTE ma bensi' su BASE
 | 
						|
//
 | 
						|
#include <mask.h>
 | 
						|
#include <printapp.h>
 | 
						|
#include <relation.h>
 | 
						|
#include <tabutil.h>
 | 
						|
#include <utility.h>
 | 
						|
#include <config.h>
 | 
						|
#include <urldefid.h> 
 | 
						|
#include <mailbox.h>
 | 
						|
#include <execp.h>
 | 
						|
 | 
						|
#include "771.h"
 | 
						|
#include "771100.h" 
 | 
						|
#include "../ba/ba4200.h"
 | 
						|
 | 
						|
#include <comuni.h>
 | 
						|
#include <anagr.h>
 | 
						|
#include <nditte.h>
 | 
						|
#include "77lib.h"
 | 
						|
 | 
						|
#include "../ba/ba4500.h"
 | 
						|
 | 
						|
class TDati_anagrafici : public TApplication
 | 
						|
{
 | 
						|
  private:
 | 
						|
    static bool indirizzo (TMask_field&, KEY);
 | 
						|
    static bool cod_conc  (TMask_field&, KEY);
 | 
						|
    static bool niscraa   (TMask_field&, KEY);
 | 
						|
    static bool ditta_caaf(TMask_field&, KEY);
 | 
						|
    static bool attivita_handler(TMask_field&, KEY);
 | 
						|
    static bool fisica_handler(TMask_field&, KEY);
 | 
						|
    static bool giuridica_handler(TMask_field&, KEY);
 | 
						|
    static bool anagrafica_handler(TMask_field&, KEY);        
 | 
						|
    TMask*      _msk;  
 | 
						|
    TRelation*  _rel;            
 | 
						|
    char        _ana;
 | 
						|
    bool Dichiarante()        const { return _ana == 'A'; }
 | 
						|
    bool Rappresentante()     const { return _ana == 'C'; }
 | 
						|
    bool ScrittureContabili() const { return _ana == 'D'; }
 | 
						|
    bool DatiCAAF()           const { return _ana == 'E'; }        
 | 
						|
    bool DirProf()            const { return _ana == 'F'; }        
 | 
						|
    bool ConcUIDD()           const { return _ana == 'G'; }            
 | 
						|
  public:
 | 
						|
    TString     _titolo;
 | 
						|
    virtual bool create();
 | 
						|
    virtual bool destroy();
 | 
						|
    virtual bool menu(MENU_TAG m);
 | 
						|
    bool      main_loop(); 
 | 
						|
    void      registra();
 | 
						|
    void      registra_fis_giu();
 | 
						|
    void      registra_rappr();  
 | 
						|
    void      registra_caaf();    
 | 
						|
    void      registra_dirprof();  
 | 
						|
    void      registra_dativari(); 
 | 
						|
    static bool codditta_hnd(TMask_field& f, KEY k);
 | 
						|
    TDati_anagrafici(char anagrafica);
 | 
						|
};
 | 
						|
 | 
						|
TDati_anagrafici::TDati_anagrafici(char anagrafica) : _titolo(50), _ana(toupper(anagrafica))
 | 
						|
{
 | 
						|
  if (Dichiarante())
 | 
						|
    _titolo = "Dichiarante";
 | 
						|
 | 
						|
  if (Rappresentante())      
 | 
						|
    _titolo = "Rappresentante";
 | 
						|
    
 | 
						|
  if (ScrittureContabili()) 
 | 
						|
    _titolo = "Scritture contabili";
 | 
						|
    
 | 
						|
  if (DatiCAAF())
 | 
						|
    _titolo = "Dati C.A.A.F.";
 | 
						|
    
 | 
						|
  if (DirProf())
 | 
						|
    _titolo = "Direttore / Professionista";
 | 
						|
    
 | 
						|
  if (ConcUIDD()) 
 | 
						|
    _titolo = "Concessione / UIDD";    
 | 
						|
}
 | 
						|
 | 
						|
HIDDEN TDati_anagrafici& app() { return (TDati_anagrafici &) main_app(); }
 | 
						|
 | 
						|
bool TDati_anagrafici::codditta_hnd(TMask_field& f, KEY k)
 | 
						|
{
 | 
						|
  if (k == K_TAB && !(f.mask().is_running()) )
 | 
						|
  {
 | 
						|
    TString16 codditta; codditta << get_firm_770();
 | 
						|
    if (codditta != "0")        
 | 
						|
    {
 | 
						|
      f.set(codditta);
 | 
						|
      f.check();
 | 
						|
    }
 | 
						|
  }   
 | 
						|
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
bool TDati_anagrafici::attivita_handler(TMask_field& m, KEY k)
 | 
						|
{
 | 
						|
  if (k != K_SPACE)
 | 
						|
    return TRUE;
 | 
						|
    
 | 
						|
  app().registra();
 | 
						|
  m.mask().stop_run(K_ESC);
 | 
						|
  
 | 
						|
  TString appname;
 | 
						|
 | 
						|
  appname = "ba4 -4";
 | 
						|
 | 
						|
  TString body(16);
 | 
						|
 | 
						|
  body << "1" << "|";
 | 
						|
  body << m.mask().get(F_CODDITTA) << "|";
 | 
						|
  body << m.mask().get(F_ATTIV) << "|";
 | 
						|
  body << m.mask().get(F_ATTIV);
 | 
						|
 | 
						|
  TMessage  msg(cmd2name(appname), MSG_LN, (const char*) body);
 | 
						|
 | 
						|
  TMailbox mb;
 | 
						|
  mb.send(msg);
 | 
						|
  TExternal_app a(appname);
 | 
						|
  a.run();
 | 
						|
  m.set_focus();
 | 
						|
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
bool TDati_anagrafici::fisica_handler(TMask_field& m, KEY k)
 | 
						|
{       
 | 
						|
  if (k != K_SPACE)
 | 
						|
    return TRUE;
 | 
						|
  
 | 
						|
  app().registra();
 | 
						|
  m.mask().stop_run(K_ESC);
 | 
						|
 | 
						|
  TToken_string body(16);
 | 
						|
 | 
						|
  body << "1" << "|";
 | 
						|
  body << m.mask().get(F_ANAGR);
 | 
						|
 | 
						|
  TString16 cmd ("ba4 -1 F");
 | 
						|
      
 | 
						|
  TMessage  msg(cmd, MSG_LN, (const char*) body);
 | 
						|
  TMailbox mb;
 | 
						|
  mb.send(msg);
 | 
						|
  
 | 
						|
  TExternal_app a(cmd);
 | 
						|
  a.run();
 | 
						|
 | 
						|
  m.set_focus();           
 | 
						|
  
 | 
						|
  return FALSE;
 | 
						|
}
 | 
						|
 | 
						|
bool TDati_anagrafici::giuridica_handler(TMask_field& m, KEY k)
 | 
						|
{       
 | 
						|
  if (k != K_SPACE)
 | 
						|
    return TRUE;
 | 
						|
  
 | 
						|
  app().registra();
 | 
						|
  m.mask().stop_run(K_ESC);
 | 
						|
 | 
						|
  TToken_string body(16);
 | 
						|
 | 
						|
  body << "1" << "|";
 | 
						|
  body << m.mask().get(F_ANAGR);
 | 
						|
  
 | 
						|
  TString16 cmd ("ba4 -1 G");
 | 
						|
      
 | 
						|
  TMessage  msg(cmd, MSG_LN, (const char*) body);
 | 
						|
  TMailbox mb;
 | 
						|
  mb.send(msg);
 | 
						|
 | 
						|
  TExternal_app a(cmd);
 | 
						|
  a.run();
 | 
						|
  m.set_focus();           
 | 
						|
  
 | 
						|
  return FALSE;
 | 
						|
}
 | 
						|
 | 
						|
bool TDati_anagrafici::anagrafica_handler(TMask_field& m, KEY k)
 | 
						|
{  
 | 
						|
  TString16 cmd;
 | 
						|
     
 | 
						|
  if (k != K_SPACE)
 | 
						|
    return TRUE;
 | 
						|
  
 | 
						|
  app().registra();
 | 
						|
  m.mask().stop_run(K_ESC);
 | 
						|
 | 
						|
  TToken_string body(16);
 | 
						|
 | 
						|
  body << "1" << "|";
 | 
						|
  body << m.mask().get(F_ANAGR);
 | 
						|
  
 | 
						|
  char tipoa = m.mask().get(ASCF_TIPOA)[0];
 | 
						|
  
 | 
						|
  if (tipoa == 'F')
 | 
						|
    cmd = "ba4 -1 F";
 | 
						|
  else
 | 
						|
    if (tipoa == 'G')
 | 
						|
      cmd = "ba4 -1 G";
 | 
						|
      
 | 
						|
  TMessage  msg(cmd, MSG_LN, (const char*) body);
 | 
						|
  TMailbox mb;
 | 
						|
  mb.send(msg);
 | 
						|
  
 | 
						|
  TExternal_app a(cmd);
 | 
						|
  a.run();
 | 
						|
 | 
						|
  m.set_focus();           
 | 
						|
  
 | 
						|
  return FALSE;
 | 
						|
}
 | 
						|
 | 
						|
bool TDati_anagrafici::indirizzo (TMask_field& f, KEY k)
 | 
						|
{                                          
 | 
						|
  TLocalisamfile anag (LF_ANAG, FALSE);
 | 
						|
  TLocalisamfile comuni (LF_COMUNI, FALSE);
 | 
						|
  long    codanagr;
 | 
						|
  char    tipoa;
 | 
						|
  TString ragione,nome,cognome,ind,civ,cap,com,prov,codcom;
 | 
						|
  
 | 
						|
  if ( k == K_TAB )// && f.mask().is_running() )
 | 
						|
  {           
 | 
						|
    tipoa    = f.mask().get     (ASCF_TIPOA)[0];
 | 
						|
    codanagr = f.mask().get_long(F_ANAGR);
 | 
						|
    
 | 
						|
    // Ricerca sull'archivio anagrafiche dei dati relativi al depositario
 | 
						|
    
 | 
						|
    anag.setkey(1);
 | 
						|
    anag.zero();
 | 
						|
    anag.put("TIPOA",    tipoa);
 | 
						|
    anag.put("CODANAGR", codanagr);
 | 
						|
    if (anag.read() == NOERR)
 | 
						|
    {  
 | 
						|
      ragione   = anag.get("RAGSOC");
 | 
						|
      codcom    = anag.get("COMRF");
 | 
						|
      
 | 
						|
      if (codcom != "")
 | 
						|
      {
 | 
						|
        ind    = anag.get("INDRF");
 | 
						|
        civ    = anag.get("CIVRF");
 | 
						|
        cap    = anag.get("CAPRF");
 | 
						|
      }        
 | 
						|
      else
 | 
						|
      {
 | 
						|
        ind    = anag.get("INDRES");
 | 
						|
        civ    = anag.get("CIVRES");
 | 
						|
        cap    = anag.get("CAPRES");
 | 
						|
        codcom = anag.get("COMRES");
 | 
						|
      }
 | 
						|
    }                                      
 | 
						|
    
 | 
						|
    if (tipoa == 'F')
 | 
						|
    { 
 | 
						|
      cognome = ragione.mid(0,30);
 | 
						|
      nome    = ragione.mid(30,20);
 | 
						|
      f.mask().hide(F_RAGIONE);
 | 
						|
      f.mask().show(F_COGNOME);
 | 
						|
      f.mask().show(F_NOME);       
 | 
						|
      f.mask().set(F_COGNOME, cognome);
 | 
						|
      f.mask().set(F_NOME,    nome);
 | 
						|
    }                       
 | 
						|
    else
 | 
						|
      if (tipoa == 'G')
 | 
						|
      {
 | 
						|
        f.mask().hide(F_COGNOME);
 | 
						|
        f.mask().hide(F_NOME);
 | 
						|
        f.mask().show(F_RAGIONE);   
 | 
						|
        f.mask().set(F_RAGIONE, ragione);
 | 
						|
      }                                  
 | 
						|
      
 | 
						|
    // Ricerca dati relativi al comune del depositario
 | 
						|
    
 | 
						|
    comuni.setkey(1);
 | 
						|
    comuni.zero();
 | 
						|
    comuni.put("STATO", "");
 | 
						|
    comuni.put("COM",   codcom);
 | 
						|
    if (comuni.read() == NOERR)
 | 
						|
    {
 | 
						|
      com  = comuni.get("DENCOM");
 | 
						|
      prov = comuni.get("PROVCOM");
 | 
						|
    }                              
 | 
						|
    
 | 
						|
    f.mask().set(F_IND,  ind);
 | 
						|
    f.mask().set(F_CIV,  civ);
 | 
						|
    f.mask().set(F_CAP,  cap);
 | 
						|
    f.mask().set(F_COM,  com);
 | 
						|
    f.mask().set(F_PROV, prov);
 | 
						|
  }     
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
bool TDati_anagrafici::cod_conc (TMask_field& f, KEY k)
 | 
						|
{                                          
 | 
						|
  TLocalisamfile anag (LF_ANAG);
 | 
						|
  TLocalisamfile comuni (LF_COMUNI);
 | 
						|
  long    codanagr;
 | 
						|
  char    tipoa;
 | 
						|
  int     codconc,uffiidd,codcs;        
 | 
						|
  TString codcom;
 | 
						|
  
 | 
						|
  if ( k == K_TAB || k == K_SPACE )// && f.mask().is_running() )
 | 
						|
  {           
 | 
						|
    tipoa    = f.mask().get     (F_TIPOA)[0];
 | 
						|
    codanagr = f.mask().get_long(F_ANAGR);
 | 
						|
    
 | 
						|
    // Ricerca sull'archivio anagrafiche dei dati 
 | 
						|
    
 | 
						|
    anag.setkey(1);
 | 
						|
    anag.zero();
 | 
						|
    anag.put("TIPOA",    tipoa);
 | 
						|
    anag.put("CODANAGR", codanagr);
 | 
						|
    if (anag.read() == NOERR)
 | 
						|
    {  
 | 
						|
      codcom = anag.get("COMRF");
 | 
						|
            
 | 
						|
      if (codcom == "")
 | 
						|
        codcom = anag.get("COMRES");
 | 
						|
    }                                      
 | 
						|
    
 | 
						|
    // Ricerca dati relativi al comune 
 | 
						|
    
 | 
						|
    comuni.setkey(1);
 | 
						|
    comuni.zero();
 | 
						|
    comuni.put("STATO", "");
 | 
						|
    comuni.put("COM",   codcom);
 | 
						|
    if (comuni.read() == NOERR)
 | 
						|
    {
 | 
						|
      codconc  = comuni.get_int("UFFCONC");
 | 
						|
      uffiidd  = comuni.get_int("UFFIIDD1");
 | 
						|
      
 | 
						|
      if (uffiidd == 0)
 | 
						|
        uffiidd = comuni.get_int("UFFIIDD2");
 | 
						|
      
 | 
						|
      if (uffiidd == 0)
 | 
						|
        uffiidd = comuni.get_int("UFFIIDD3");
 | 
						|
      
 | 
						|
      codcs = comuni.get_int("UFFCSERV");
 | 
						|
      
 | 
						|
      if (codconc != 0)
 | 
						|
        f.mask().set(F_CODCONC1, codconc);
 | 
						|
      if (uffiidd != 0)  
 | 
						|
        f.mask().set(F_CODUI,    uffiidd);
 | 
						|
      if (codcs != 0)  
 | 
						|
        f.mask().set(F_CODCS,    codcs);  
 | 
						|
        
 | 
						|
      f.mask().send_key(K_TAB, F_CODUI);
 | 
						|
      f.mask().send_key(K_TAB, F_CODCS);
 | 
						|
    }                              
 | 
						|
  }     
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
bool TDati_anagrafici::niscraa(TMask_field& f, KEY k)
 | 
						|
{
 | 
						|
  if (k == K_TAB && !f.mask().is_running())
 | 
						|
  {
 | 
						|
    TLocalisamfile base (LF_BASE);
 | 
						|
    TLocalisamfile ditte(LF_NDITTE);
 | 
						|
    TString16 niscraa   = "";
 | 
						|
    long      dittacaaf = 0;
 | 
						|
                                   
 | 
						|
    long codditta = f.mask().get_long(F_CODDITTA);                              
 | 
						|
    
 | 
						|
    base.setkey(1);
 | 
						|
    base.zero();
 | 
						|
    base.put("CODDITTA", codditta);               
 | 
						|
    if (base.read() == NOERR)
 | 
						|
    {
 | 
						|
      dittacaaf = base.get_long("DITTACAAF");
 | 
						|
      
 | 
						|
      ditte.setkey(1);
 | 
						|
      ditte.zero();
 | 
						|
      ditte.put(NDT_CODDITTA, dittacaaf);
 | 
						|
      if (ditte.read() == NOERR)
 | 
						|
        niscraa = ditte.get(NDT_NISCRAA);
 | 
						|
    }                                    
 | 
						|
    f.mask().set(F_NISCRAA, niscraa);
 | 
						|
    if (dittacaaf != 0)
 | 
						|
      f.mask().set(F_DITTACAAF, dittacaaf);
 | 
						|
    
 | 
						|
  }
 | 
						|
  
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
                                       
 | 
						|
bool TDati_anagrafici::ditta_caaf(TMask_field& f, KEY k)
 | 
						|
{
 | 
						|
  if (k == K_TAB || k == K_ENTER)
 | 
						|
  {
 | 
						|
    long caaf  = f.mask().get_long(F_ANAGR);
 | 
						|
    long ditta = atol(f.get());
 | 
						|
    
 | 
						|
    if (caaf == 0 && ditta != 0)
 | 
						|
      return f.warning_box("Se non indicato il codice del CAAF la ditta non deve essere indicata");
 | 
						|
      
 | 
						|
    if (caaf != 0 && ditta == 0)
 | 
						|
      return f.warning_box("Se indicato il codice del CAAF deve essere indicata anche la ditta a cui e' collegato");
 | 
						|
  }
 | 
						|
  
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
                                       
 | 
						|
bool TDati_anagrafici::create()
 | 
						|
{
 | 
						|
  TApplication::create();
 | 
						|
  _rel = new TRelation (LF_NDITTE);
 | 
						|
  _rel->add(LF_BASE,    "CODDITTA=CODDITTA");
 | 
						|
  _rel->add(LF_BASEBIS, "CODDITTA=CODDITTA");
 | 
						|
    
 | 
						|
  if (Dichiarante())
 | 
						|
  {                        
 | 
						|
    char tipo_pers = tipo_persona(get_firm_770());
 | 
						|
    if (tipo_pers == ' ' || tipo_pers == '\0')
 | 
						|
    {
 | 
						|
      message_box("Il titolare della ditta non e' stato compilato correttamente.");
 | 
						|
      return TRUE;
 | 
						|
    }   
 | 
						|
    if (tipo_pers == 'G')
 | 
						|
    {
 | 
						|
      _msk = new TMask ("771100b");
 | 
						|
      _msk->set_handler(F_GIURIDICA, giuridica_handler);
 | 
						|
    }    
 | 
						|
    else
 | 
						|
      if (tipo_pers == 'F')
 | 
						|
      {
 | 
						|
        _msk = new TMask ("771100a");
 | 
						|
        _msk->set_handler(F_FISICA, fisica_handler);   
 | 
						|
      }                                              
 | 
						|
    _msk->set_handler(F_ATTIVITA,  attivita_handler);
 | 
						|
  }
 | 
						|
 | 
						|
  if (Rappresentante())      
 | 
						|
  {
 | 
						|
    _msk = new TMask ("771100c");
 | 
						|
    _msk->set_handler(F_FISICA, fisica_handler);     
 | 
						|
  }
 | 
						|
    
 | 
						|
  if (ScrittureContabili()) 
 | 
						|
  {
 | 
						|
    _msk = new TMask ("771100d");                
 | 
						|
    _msk->set_handler(F_ANAGR,   indirizzo);
 | 
						|
    _msk->set_handler(F_ATTIVITA, attivita_handler);
 | 
						|
    _msk->set_handler(F_ANAGRAFICA, anagrafica_handler);
 | 
						|
  }
 | 
						|
    
 | 
						|
  if (DatiCAAF())
 | 
						|
  {
 | 
						|
    _msk = new TMask ("771100e");                
 | 
						|
    _msk->set_handler(F_ANAGR,     niscraa);
 | 
						|
    _msk->set_handler(F_GIURIDICA, giuridica_handler);
 | 
						|
    _msk->set_handler(F_DITTACAAF, ditta_caaf);
 | 
						|
    _msk->set_mode(NO_MODE);
 | 
						|
  }
 | 
						|
    
 | 
						|
  if (DirProf())
 | 
						|
  {
 | 
						|
    _msk = new TMask ("771100f");                
 | 
						|
    _msk->set_handler(F_FISICA, fisica_handler);
 | 
						|
  }
 | 
						|
    
 | 
						|
  if (ConcUIDD()) 
 | 
						|
  {
 | 
						|
    _msk = new TMask ("771100g");                
 | 
						|
    _msk->field(F_CODCONC2).set_dirty();
 | 
						|
    _msk->set_handler(F_CODCONC2, cod_conc);               
 | 
						|
    _msk->set_handler(F_ANAGRAFICA, anagrafica_handler);
 | 
						|
  }
 | 
						|
 | 
						|
  TString16 codditta; codditta << get_firm_770();
 | 
						|
  if (codditta != "0")        
 | 
						|
    _msk->set(F_CODDITTA,codditta);
 | 
						|
    
 | 
						|
  dispatch_e_menu (BAR_ITEM(1));
 | 
						|
 | 
						|
  return TRUE;
 | 
						|
}
 | 
						|
 | 
						|
bool TDati_anagrafici::destroy()
 | 
						|
{   
 | 
						|
  delete _msk;     
 | 
						|
  delete _rel;
 | 
						|
 | 
						|
  return TApplication::destroy();
 | 
						|
}
 | 
						|
 | 
						|
bool TDati_anagrafici::main_loop()
 | 
						|
{
 | 
						|
  KEY     tasto;
 | 
						|
          
 | 
						|
  do
 | 
						|
  {                     
 | 
						|
    _rel->lfile().put("CODDITTA", get_firm_770());
 | 
						|
    _rel->read();
 | 
						|
    _msk->autoload(_rel);       
 | 
						|
    tasto = _msk->run();
 | 
						|
    
 | 
						|
    switch (tasto)
 | 
						|
    {
 | 
						|
      case K_ESC :
 | 
						|
      break;
 | 
						|
      
 | 
						|
      case K_QUIT :
 | 
						|
      break;       
 | 
						|
      
 | 
						|
      case K_SAVE :
 | 
						|
      {
 | 
						|
        registra();
 | 
						|
      }
 | 
						|
      break;
 | 
						|
      
 | 
						|
      default:
 | 
						|
      break;
 | 
						|
    }
 | 
						|
  }
 | 
						|
  while (tasto != K_QUIT);                              //K_ENTER
 | 
						|
  
 | 
						|
  return FALSE;
 | 
						|
}
 | 
						|
                     
 | 
						|
void TDati_anagrafici::registra()
 | 
						|
{
 | 
						|
  if (_ana == 'A' || _ana == 'B')
 | 
						|
    registra_fis_giu();          
 | 
						|
    
 | 
						|
  if (_ana == 'C') 
 | 
						|
    registra_rappr();    
 | 
						|
    
 | 
						|
  if (_ana == 'E')
 | 
						|
    registra_caaf();       
 | 
						|
    
 | 
						|
  if (_ana == 'F')
 | 
						|
    registra_dirprof();       
 | 
						|
    
 | 
						|
  if (_ana == 'G')
 | 
						|
    registra_dativari();
 | 
						|
}
 | 
						|
                       
 | 
						|
void TDati_anagrafici::registra_fis_giu()
 | 
						|
{ 
 | 
						|
  TLocalisamfile base(LF_BASE);
 | 
						|
  long codditta;
 | 
						|
  
 | 
						|
  codditta = _msk->get_long(F_CODDITTA);
 | 
						|
  
 | 
						|
  base.setkey(1);
 | 
						|
  base.zero();
 | 
						|
  base.put("CODDITTA", codditta);
 | 
						|
  if (base.read() == NOERR)
 | 
						|
  {
 | 
						|
    int rss = _msk->get_int(F_RSS);
 | 
						|
    base.put("RSS", rss);
 | 
						|
    base.rewrite();
 | 
						|
  }
 | 
						|
  else
 | 
						|
  {
 | 
						|
    int rss = _msk->get_int(F_RSS); 
 | 
						|
    base.zero();
 | 
						|
    base.put("CODDITTA", codditta);
 | 
						|
    base.put("RSS",      rss);
 | 
						|
    base.write();
 | 
						|
  }
 | 
						|
}
 | 
						|
                     
 | 
						|
void TDati_anagrafici::registra_rappr()
 | 
						|
{
 | 
						|
  TLocalisamfile base(LF_BASE);
 | 
						|
  const long codditta    = _msk->get_long(F_CODDITTA);
 | 
						|
  const long CodiceRappr = _msk->get_long(F_ANAGR);
 | 
						|
  const int CaricaRappr  = _msk->get_int(F_CARRAP);
 | 
						|
  
 | 
						|
  base.setkey(1);
 | 
						|
  base.zero();
 | 
						|
  base.put("CODDITTA", codditta);
 | 
						|
  if (base.read() == NOERR)
 | 
						|
  {
 | 
						|
    base.put("RAPPR",   CodiceRappr);
 | 
						|
    base.put("CARRAPP", CaricaRappr);
 | 
						|
    base.rewrite();
 | 
						|
  }
 | 
						|
  else
 | 
						|
  {
 | 
						|
    base.zero();
 | 
						|
    base.put("RAPPR",   CodiceRappr);
 | 
						|
    base.put("CARRAPP", CaricaRappr);
 | 
						|
    base.write();
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
void TDati_anagrafici::registra_caaf()
 | 
						|
{
 | 
						|
  TLocalisamfile ditte(LF_NDITTE);      
 | 
						|
  TLocalisamfile base (LF_BASE);        
 | 
						|
  long codditta;
 | 
						|
  char tipoa = 'G';
 | 
						|
  
 | 
						|
  // Registro il codice caaf sull'archivio base
 | 
						|
  
 | 
						|
  codditta  = _msk->get_long(F_CODDITTA);
 | 
						|
  
 | 
						|
  base.setkey(1);
 | 
						|
  base.zero();
 | 
						|
  base.put("CODDITTA", codditta);
 | 
						|
  if (base.read() == NOERR)
 | 
						|
  {
 | 
						|
    long codice    = _msk->get_long(F_ANAGR);
 | 
						|
    long dittacaaf = _msk->get_long(F_DITTACAAF);
 | 
						|
    
 | 
						|
    base.put("CODCAAF",   codice);          
 | 
						|
    base.put("DITTACAAF", dittacaaf);
 | 
						|
    base.rewrite();
 | 
						|
  }       
 | 
						|
  else          
 | 
						|
  {
 | 
						|
    long codice    = _msk->get_long(F_ANAGR);
 | 
						|
    long dittacaaf = _msk->get_long(F_DITTACAAF);
 | 
						|
    
 | 
						|
    base.zero();
 | 
						|
    base.put("CODDITTA",  codditta);
 | 
						|
    base.put("CODCAAF",   codice);     
 | 
						|
    base.put("DITTACAAF", dittacaaf);
 | 
						|
    base.write();
 | 
						|
  }
 | 
						|
} 
 | 
						|
          
 | 
						|
void TDati_anagrafici::registra_dirprof()
 | 
						|
{
 | 
						|
  TLocalisamfile base (LF_BASE);
 | 
						|
  long codditta;
 | 
						|
  
 | 
						|
  codditta = _msk->get_long(F_CODDITTA);
 | 
						|
  
 | 
						|
  base.setkey(1);
 | 
						|
  base.zero();
 | 
						|
  base.put("CODDITTA", codditta);
 | 
						|
  if (base.read() == NOERR)
 | 
						|
  {
 | 
						|
    long codpro = _msk->get_long(F_ANAGR);
 | 
						|
    bool flart4 = _msk->get_bool(F_CONTROLLI);
 | 
						|
    
 | 
						|
    base.put("CODPRO", codpro);
 | 
						|
    base.put("FLART4", flart4);
 | 
						|
    base.rewrite();
 | 
						|
  }       
 | 
						|
  else
 | 
						|
  {
 | 
						|
    long codpro = _msk->get_long(F_ANAGR);
 | 
						|
    bool flart4 = _msk->get_bool(F_CONTROLLI);
 | 
						|
    
 | 
						|
    base.zero();
 | 
						|
    base.put("CODDITTA", codditta);
 | 
						|
    base.put("CODPRO",   codpro);
 | 
						|
    base.put("FLART4",   flart4);
 | 
						|
    base.write();
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
void TDati_anagrafici::registra_dativari()
 | 
						|
{ 
 | 
						|
  TLocalisamfile base(LF_BASEBIS);
 | 
						|
  long codditta;
 | 
						|
  
 | 
						|
  codditta = _msk->get_long(F_CODDITTA);
 | 
						|
  
 | 
						|
  base.setkey(1);
 | 
						|
  base.zero();
 | 
						|
  base.put("CODDITTA", codditta);
 | 
						|
  if (base.read() == NOERR)
 | 
						|
  { 
 | 
						|
    TString16 codconc1(_msk->get(F_CODCONC1));
 | 
						|
    TString16 codconc2(_msk->get(F_CODCONC2));
 | 
						|
    TString16 codconc3(_msk->get(F_CODCONC3));
 | 
						|
    int codtes1  = _msk->get_int(F_CODTES1);
 | 
						|
    int codtes2  = _msk->get_int(F_CODTES2);
 | 
						|
    int codtes3  = _msk->get_int(F_CODTES3);
 | 
						|
    base.put("L0CCONC1", codconc1);
 | 
						|
    base.put("L0CCONC2", codconc2);
 | 
						|
    base.put("L0CCONC3", codconc3);
 | 
						|
    base.put("L0CTES1", codtes1);
 | 
						|
    base.put("L0CTES2", codtes2);
 | 
						|
    base.put("L0CTES3", codtes3);
 | 
						|
    base.rewrite();
 | 
						|
  }      
 | 
						|
  else
 | 
						|
  { 
 | 
						|
    TString16 codconc1(_msk->get(F_CODCONC1));
 | 
						|
    TString16 codconc2(_msk->get(F_CODCONC2));
 | 
						|
    TString16 codconc3(_msk->get_int(F_CODCONC3));
 | 
						|
    int codtes1  = _msk->get_int(F_CODTES1);
 | 
						|
    int codtes2  = _msk->get_int(F_CODTES2);
 | 
						|
    int codtes3  = _msk->get_int(F_CODTES3);
 | 
						|
    base.zero();
 | 
						|
    base.put("CODDITTA", codditta);
 | 
						|
    base.put("L0CCONC1", codconc1);
 | 
						|
    base.put("L0CCONC2", codconc2);
 | 
						|
    base.put("L0CCONC3", codconc3);
 | 
						|
    base.put("L0CTES1", codtes1);
 | 
						|
    base.put("L0CTES2", codtes2);
 | 
						|
    base.put("L0CTES3", codtes3);
 | 
						|
    base.write();
 | 
						|
  }
 | 
						|
}
 | 
						|
          
 | 
						|
bool TDati_anagrafici::menu(MENU_TAG m)
 | 
						|
{
 | 
						|
  if (m == BAR_ITEM(1))
 | 
						|
    return main_loop(); 
 | 
						|
  return FALSE;
 | 
						|
}
 | 
						|
 | 
						|
int m71100 (int argc, char* argv[])
 | 
						|
{                                
 | 
						|
  TDati_anagrafici main_app(*argv[2]);
 | 
						|
  main_app.run(argc, argv, main_app._titolo);
 | 
						|
  return TRUE;
 | 
						|
}
 |