cg210?.* Aggiustamenti gestione saldaconto
cg5400.cpp Corretto azzeramento tabella LIM all'inizio di un esercizio git-svn-id: svn://10.65.10.50/trunk@1651 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									e16e4d62c3
								
							
						
					
					
						commit
						e6eb3ec25d
					
				@ -107,8 +107,6 @@ TMask* TPrimanota_application::load_mask(int n)
 | 
			
		||||
      m->set_handler(F_DESCR, descr_handler);
 | 
			
		||||
      m->set_handler(F_CODCAUS, caus_modify_handler);
 | 
			
		||||
      m->set_handler(F_SHEETCG, cg_handler);
 | 
			
		||||
      m->set_handler(F_CAMBIO, cambio_handler);
 | 
			
		||||
      m->set_handler(F_VISVAL, visval_handler);
 | 
			
		||||
 | 
			
		||||
      TSheet_field& cg = (TSheet_field&)m->field(F_SHEETCG);                                                      
 | 
			
		||||
      cg.set_notify(cg_notify);
 | 
			
		||||
@ -117,12 +115,6 @@ TMask* TPrimanota_application::load_mask(int n)
 | 
			
		||||
      if (n == 1)   // movimento non IVA
 | 
			
		||||
      {                         
 | 
			
		||||
        m->set_handler(S_TOTDOC,   totdoc_handler);
 | 
			
		||||
        m->set_handler(S_SPESE,    speserimb_handler);
 | 
			
		||||
        m->set_handler(S_ALSPESE,  altrespese_handler);
 | 
			
		||||
        m->set_handler(S_ABBATT,   abbatt_handler);
 | 
			
		||||
        m->set_handler(S_ABBPASS,  abbpass_handler);
 | 
			
		||||
        m->set_handler(S_RITPROF,  ritprof_handler);
 | 
			
		||||
        m->set_handler(S_DIFFCAMB, diffcamb_handler);
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      cgm.set_handler(101, dareavere_handler);
 | 
			
		||||
@ -316,23 +308,11 @@ bool TPrimanota_application::read_caus(const char* cod, int year)
 | 
			
		||||
        char tipr = ' ';                   
 | 
			
		||||
        if (_is_saldaconto) 
 | 
			
		||||
        {
 | 
			
		||||
          if (nriga < 8) continue;          // non si cagano gli importi totali   
 | 
			
		||||
          switch(nriga)
 | 
			
		||||
          { 
 | 
			
		||||
          case 8:  
 | 
			
		||||
            tipr = 'P'; break;
 | 
			
		||||
          case 9:  
 | 
			
		||||
            tipr = 'A'; break;
 | 
			
		||||
          case 10: 
 | 
			
		||||
            tipr = 'G'; break;
 | 
			
		||||
          case 11: 
 | 
			
		||||
            tipr = 'R'; break;
 | 
			
		||||
          default:
 | 
			
		||||
            tipr = ' '; break;
 | 
			
		||||
          }
 | 
			
		||||
          if (nriga < 12 && nriga != 10) continue;  // Si considerano solo le spese
 | 
			
		||||
          tipr = nriga == 10 ? 'G' : 'L';
 | 
			
		||||
        }
 | 
			
		||||
        const int pos = set_cgs_row(-1,zero,tc,desc,tipr);
 | 
			
		||||
        if (sezione > ' ')
 | 
			
		||||
        if (sezione > ' ' && tipr != ' ')
 | 
			
		||||
          cgs().disable_cell(pos, sezione == 'A' ? 0 : 1);
 | 
			
		||||
      }
 | 
			
		||||
      else
 | 
			
		||||
@ -480,7 +460,7 @@ void TPrimanota_application::init_mask(TMask& m)
 | 
			
		||||
    m.show(F_CODIVA, m.mode() == MODE_INS);  // Codice IVA standard
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  // Show/Hide campi valuta: F_VALUTA, F_CAMBIO, F_VISVAL (GROUP 3)
 | 
			
		||||
  // Show/Hide campi valuta: F_VALUTA, F_CAMBIO, F_DATACAMBIO (GROUP 3)
 | 
			
		||||
  const bool valuta = _ges_val && causale().valuta();
 | 
			
		||||
  m.show(-3, valuta);
 | 
			
		||||
}
 | 
			
		||||
@ -498,13 +478,16 @@ void TPrimanota_application::init_query_mode(TMask& m)
 | 
			
		||||
 | 
			
		||||
void TPrimanota_application::fill_sheet(TMask& m) const
 | 
			
		||||
{                                
 | 
			
		||||
  if (_iva != nessuna_iva || !_is_saldaconto)
 | 
			
		||||
  {
 | 
			
		||||
    TSheet_field& cgs = (TSheet_field&)m.field(F_SHEETCG);
 | 
			
		||||
    for (int r = cgs.items(); r < 16; r++) cgs.row(r);
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  if (_iva != nessuna_iva)
 | 
			
		||||
  {
 | 
			
		||||
    TSheet_field& ivas = (TSheet_field&)m.field(F_SHEETIVA);
 | 
			
		||||
    for (r = ivas.items(); r < 16; r++) ivas.row(r);
 | 
			
		||||
    for (int r = ivas.items(); r < 16; r++) ivas.row(r);
 | 
			
		||||
    ivas.enable_column(2, _iva == iva_acquisti);  // Tipo detrazione
 | 
			
		||||
    ivas.enable_column(4, !m.insert_mode());  // Tipo costo ricavo
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										15
									
								
								cg/cg2100.h
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								cg/cg2100.h
									
									
									
									
									
								
							@ -37,9 +37,6 @@
 | 
			
		||||
#define F_CODPAG 122
 | 
			
		||||
#define F_ANNORIF 123
 | 
			
		||||
#define F_NUMRIF 124
 | 
			
		||||
#define F_VALUTA 126
 | 
			
		||||
#define F_CAMBIO 127
 | 
			
		||||
#define F_VISVAL 128
 | 
			
		||||
#define F_PROVVISORIO 129
 | 
			
		||||
#define F_TIPOMOV 130
 | 
			
		||||
#define F_OCCASEDIT 131
 | 
			
		||||
@ -104,14 +101,12 @@
 | 
			
		||||
#define I_CONTO4      233
 | 
			
		||||
#define I_SOTTOCONTO4 234
 | 
			
		||||
 | 
			
		||||
// importi saldaconto
 | 
			
		||||
// Saldaconto
 | 
			
		||||
#define S_TOTDOC      401
 | 
			
		||||
#define S_SPESE       402
 | 
			
		||||
#define S_ABBATT      403
 | 
			
		||||
#define S_ABBPASS     404
 | 
			
		||||
#define S_RITPROF     405
 | 
			
		||||
#define S_ALSPESE     406
 | 
			
		||||
#define S_DIFFCAMB    407
 | 
			
		||||
#define S_TOTDOCVAL   402
 | 
			
		||||
#define S_VALUTA      403
 | 
			
		||||
#define S_DATACAMBIO  404
 | 
			
		||||
#define S_CAMBIO      405
 | 
			
		||||
 | 
			
		||||
// copie 2a pag. 
 | 
			
		||||
#define K_CODDITTA    501
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										119
									
								
								cg/cg2100b.uml
									
									
									
									
									
								
							
							
						
						
									
										119
									
								
								cg/cg2100b.uml
									
									
									
									
									
								
							@ -16,7 +16,7 @@ END
 | 
			
		||||
NUMBER F_CODDITTA 5
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 3 1 "Ditta  "
 | 
			
		||||
  FLAGS "FRD"
 | 
			
		||||
  FLAGS "DFR"
 | 
			
		||||
  USE LF_NDITTE KEY 1
 | 
			
		||||
  INPUT CODDITTA F_CODDITTA
 | 
			
		||||
  OUTPUT K_CODDITTA CODDITTA
 | 
			
		||||
@ -174,109 +174,71 @@ BEGIN
 | 
			
		||||
  COPY OUTPUT F_DESCAGG
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
STRING F_VALUTA 3
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 9 "Valuta "
 | 
			
		||||
  HELP "Codice della valuta per movimento"
 | 
			
		||||
  FIELD LF_MOV->CODVAL
 | 
			
		||||
  FLAGS "U"
 | 
			
		||||
  GROUP 3
 | 
			
		||||
  USE %VAL
 | 
			
		||||
  INPUT CODTAB F_VALUTA
 | 
			
		||||
  DISPLAY "Codice" CODTAB
 | 
			
		||||
  DISPLAY "Nome@50" S0
 | 
			
		||||
  DISPLAY "Cambio@15" R10
 | 
			
		||||
  DISPLAY "Ultimo aggiornamento" D0
 | 
			
		||||
  OUTPUT F_VALUTA CODTAB
 | 
			
		||||
  OUTPUT F_CAMBIO R10
 | 
			
		||||
  CHECKTYPE NORMAL
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMBER F_CAMBIO 15 5
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 20 9 "Cambio "
 | 
			
		||||
  HELP "Cambio della valuta"
 | 
			
		||||
  FIELD LF_MOV->CAMBIO
 | 
			
		||||
  FLAGS "RU"
 | 
			
		||||
  GROUP 3
 | 
			
		||||
  PICTURE ".5"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
BOOLEAN F_VISVAL
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 47 9 "Visualizza importi in valuta"
 | 
			
		||||
  HELP "Indicare se gli importi sono visualizzati in valuta (non in Lit)"
 | 
			
		||||
  GROUP 3
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
GROUPBOX DLG_NULL 78 8
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 10 "Voci di spesa per saldaconto"
 | 
			
		||||
  PROMPT 1 10 "Voci per saldaconto"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMBER S_TOTDOC 15 0
 | 
			
		||||
BEGIN 
 | 
			
		||||
  PROMPT 2 11 "Totale documento  "
 | 
			
		||||
  HELP ""        
 | 
			
		||||
  FLAGS "R"
 | 
			
		||||
  PICTURE "."
 | 
			
		||||
  GROUP 5
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMBER S_SPESE 15 0
 | 
			
		||||
NUMBER S_TOTDOCVAL 15 2
 | 
			
		||||
BEGIN 
 | 
			
		||||
  PROMPT 2 12 "Spese e rimborsi  "
 | 
			
		||||
  PROMPT 42 11 "Totale in valuta  "
 | 
			
		||||
  HELP ""        
 | 
			
		||||
  FLAGS "R"
 | 
			
		||||
  PICTURE "."
 | 
			
		||||
  GROUP 5
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMBER S_ALSPESE 15 0
 | 
			
		||||
BEGIN 
 | 
			
		||||
  PROMPT 39 12 "Altre spese     "
 | 
			
		||||
  HELP ""
 | 
			
		||||
  FLAGS "R"
 | 
			
		||||
  PICTURE "."
 | 
			
		||||
  GROUP 5
 | 
			
		||||
  PICTURE ".2"
 | 
			
		||||
  GROUP 3
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
NUMBER S_ABBATT 15 0
 | 
			
		||||
STRING S_VALUTA 3
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 14 "Abbuoni attivi    "
 | 
			
		||||
  HELP ""
 | 
			
		||||
  FLAGS "R"
 | 
			
		||||
  PICTURE "."
 | 
			
		||||
  GROUP 5
 | 
			
		||||
  PROMPT 2 13 "Valuta "
 | 
			
		||||
  HELP "Codice della valuta per movimento"
 | 
			
		||||
  FIELD LF_MOV->CODVAL
 | 
			
		||||
  FLAGS "U"
 | 
			
		||||
  GROUP 3
 | 
			
		||||
  USE %VAL
 | 
			
		||||
  INPUT CODTAB S_VALUTA
 | 
			
		||||
  DISPLAY "Codice" CODTAB
 | 
			
		||||
  DISPLAY "Nome@50" S0
 | 
			
		||||
  DISPLAY "Ultimo cambio@15" R10
 | 
			
		||||
  DISPLAY "Ultimo aggiornamento" D0
 | 
			
		||||
  OUTPUT S_VALUTA CODTAB
 | 
			
		||||
  OUTPUT S_CAMBIO R10
 | 
			
		||||
  CHECKTYPE NORMAL
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMBER S_ABBPASS 15 0
 | 
			
		||||
DATE S_DATACAMBIO
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 39 14 "Abbuoni passivi "
 | 
			
		||||
  HELP ""
 | 
			
		||||
  PROMPT 20 13 "Data cambio "
 | 
			
		||||
  FLAGS "R"
 | 
			
		||||
  PICTURE "."
 | 
			
		||||
  GROUP 5
 | 
			
		||||
  USE CAM                     
 | 
			
		||||
  INPUT CODTAB[1,3] S_VALUTA
 | 
			
		||||
  INPUT CODTAB[4,11] S_DATACAMBIO
 | 
			
		||||
  DISPLAY "Valuta" CODTAB[1,3]
 | 
			
		||||
  DISPLAY "Data@10" D0
 | 
			
		||||
  DISPLAY "Cambio@18" R10   
 | 
			
		||||
  OUTPUT S_VALUTA CODTAB[1,3]
 | 
			
		||||
  OUTPUT S_DATACAMBIO D0
 | 
			
		||||
  OUTPUT S_CAMBIO R10
 | 
			
		||||
  GROUP 3
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
NUMBER S_RITPROF 15 0
 | 
			
		||||
NUMBER S_CAMBIO 15 5
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 2 16 "Ritenuta prof.    "
 | 
			
		||||
  HELP ""
 | 
			
		||||
  FLAGS "R"
 | 
			
		||||
  PICTURE "."
 | 
			
		||||
  GROUP 5
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
NUMBER S_DIFFCAMB 15 0
 | 
			
		||||
BEGIN 
 | 
			
		||||
  PROMPT 39 16 "Diff. cambio    "
 | 
			
		||||
  HELP ""
 | 
			
		||||
  FLAGS "R"
 | 
			
		||||
  PICTURE "."
 | 
			
		||||
  GROUP 5
 | 
			
		||||
  PROMPT 50 13 "Cambio "
 | 
			
		||||
  HELP "Cambio della valuta"
 | 
			
		||||
  FIELD LF_MOV->CAMBIO
 | 
			
		||||
  FLAGS "RU"
 | 
			
		||||
  GROUP 3
 | 
			
		||||
  PICTURE ".5"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
ENDPAGE
 | 
			
		||||
@ -312,7 +274,6 @@ BEGIN
 | 
			
		||||
  FLAGS "D"
 | 
			
		||||
END
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
DATE K_DATACOMP
 | 
			
		||||
BEGIN
 | 
			
		||||
  PROMPT 1 4 "Data di competenza      "
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										150
									
								
								cg/cg2102.cpp
									
									
									
									
									
								
							
							
						
						
									
										150
									
								
								cg/cg2102.cpp
									
									
									
									
									
								
							@ -344,18 +344,16 @@ void TPrimanota_application::disable_cgs_cells(int n, char tipo)
 | 
			
		||||
  int last = 0;
 | 
			
		||||
  switch(tipo)
 | 
			
		||||
  {
 | 
			
		||||
  case 'A':                   // Abbuoni attivi
 | 
			
		||||
  case 'C':                   // Differenza cambio
 | 
			
		||||
  case 'D':                   // IVA Detraibile
 | 
			
		||||
  case 'F':                   // Ritenute Fiscali
 | 
			
		||||
  case 'N':
 | 
			
		||||
  case 'G':                   // vedi enum TipoConto per i prossimi 6
 | 
			
		||||
  case 'A':
 | 
			
		||||
  case 'P':
 | 
			
		||||
  case 'R':
 | 
			
		||||
  case 'L':
 | 
			
		||||
  case 'C':
 | 
			
		||||
  case 'N':                   // IVA Non detraibile
 | 
			
		||||
  case 'P':                   // Abbuoni passsivi
 | 
			
		||||
  case 'R':                   // Ritenute professionali
 | 
			
		||||
  case 'S':                   // Ritenute Sociali
 | 
			
		||||
  case 'T':                   // Totale documento
 | 
			
		||||
    last = 3;                 // IVA Non detraibile
 | 
			
		||||
    last = 3;                 
 | 
			
		||||
    break;          
 | 
			
		||||
  case 'I':
 | 
			
		||||
    last = 7;                 // Imponibile
 | 
			
		||||
@ -1646,17 +1644,17 @@ bool TPrimanota_application::clifo_handler(TMask_field& f, KEY key)
 | 
			
		||||
    {
 | 
			
		||||
      app().add_cgs_tot(m);
 | 
			
		||||
      
 | 
			
		||||
      if (m.field(F_VISVAL).active())
 | 
			
		||||
      if (m.field(S_VALUTA).active())
 | 
			
		||||
      {            
 | 
			
		||||
        const TString16 valuta(clifo.get("CODVAL"));
 | 
			
		||||
        if (valuta.not_empty() && valuta != m.get(F_VALUTA))
 | 
			
		||||
        if (valuta.not_empty() && valuta != m.get(S_VALUTA))
 | 
			
		||||
        {
 | 
			
		||||
          TTable val("%val");
 | 
			
		||||
          val.put("CODTAB", valuta);
 | 
			
		||||
          if (val.read() == NOERR)
 | 
			
		||||
          {
 | 
			
		||||
            m.set(F_VALUTA, valuta);
 | 
			
		||||
            m.set(F_CAMBIO, val.get("R0"), TRUE);
 | 
			
		||||
            m.set(S_VALUTA, valuta);
 | 
			
		||||
            m.set(S_CAMBIO, val.get("R10"), TRUE);
 | 
			
		||||
          }  
 | 
			
		||||
        }
 | 
			
		||||
      }  
 | 
			
		||||
@ -1790,65 +1788,6 @@ void TPrimanota_application::add_cgs_rit(bool fiscali)
 | 
			
		||||
  }  
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void TPrimanota_application::add_cgs_row_noniva(TipoConto t)
 | 
			
		||||
{                                   
 | 
			
		||||
  // aggiunge riga IVA relativa al tipo conto passato
 | 
			
		||||
  // determina numero riga e legge importo
 | 
			
		||||
  // schiaffa e aggiorna
 | 
			
		||||
  
 | 
			
		||||
  real imp  = 0.0;  
 | 
			
		||||
  int row   = -1;
 | 
			
		||||
  
 | 
			
		||||
  switch (t)
 | 
			
		||||
  {
 | 
			
		||||
  case asp: 
 | 
			
		||||
    t = spr;   // accorpiamo con le spese per ora
 | 
			
		||||
  case spr:
 | 
			
		||||
    imp  = real(curr_mask().get(S_SPESE));      
 | 
			
		||||
    imp += real(curr_mask().get(S_ALSPESE));      
 | 
			
		||||
    row = 10;
 | 
			
		||||
    break;
 | 
			
		||||
  case aba:
 | 
			
		||||
    imp = real(curr_mask().get(S_ABBATT));  
 | 
			
		||||
    row = 9;
 | 
			
		||||
    break;
 | 
			
		||||
  case abp:
 | 
			
		||||
    imp = real(curr_mask().get(S_ABBPASS));    
 | 
			
		||||
    row = 8;
 | 
			
		||||
    break;
 | 
			
		||||
  case rpf:
 | 
			
		||||
    imp = real(curr_mask().get(S_RITPROF)); 
 | 
			
		||||
    row = 11;
 | 
			
		||||
    break;
 | 
			
		||||
  case dfc:
 | 
			
		||||
    imp = real(curr_mask().get(S_DIFFCAMB)); 
 | 
			
		||||
    // row 0 (sconosciuto) for now
 | 
			
		||||
    row = 0;
 | 
			
		||||
    break;
 | 
			
		||||
  }                       
 | 
			
		||||
 | 
			
		||||
  char tipo = (char)t;
 | 
			
		||||
 | 
			
		||||
  if (row != -1)
 | 
			
		||||
  {
 | 
			
		||||
    int pos = type2pos(tipo);
 | 
			
		||||
    if (pos < 0)
 | 
			
		||||
    {  
 | 
			
		||||
      TBill conto; if (row != 0) causale().bill(row, conto);
 | 
			
		||||
      const TString80 desc(row == 0 ? "" : causale().desc_agg(row));
 | 
			
		||||
      set_cgs_row(-1, real2imp(imp, tipo), conto, desc, tipo);
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
      if (imp.is_zero())
 | 
			
		||||
        reset_cgs_row(pos);        
 | 
			
		||||
      else
 | 
			
		||||
        set_cgs_imp(pos, real2imp(imp, tipo));
 | 
			
		||||
    }    
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Handler of the F_PROTIVA
 | 
			
		||||
bool TPrimanota_application::protiva_handler(TMask_field& f, KEY key)
 | 
			
		||||
{          
 | 
			
		||||
@ -1884,75 +1823,6 @@ bool TPrimanota_application::ritsoc_handler(TMask_field& f, KEY key)
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}                                  
 | 
			
		||||
 | 
			
		||||
bool TPrimanota_application::speserimb_handler(TMask_field& f, KEY k)
 | 
			
		||||
{
 | 
			
		||||
  if (k == K_TAB && f.focusdirty())
 | 
			
		||||
    app().add_cgs_row_noniva(spr);
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}                                  
 | 
			
		||||
 | 
			
		||||
bool TPrimanota_application::altrespese_handler(TMask_field& f, KEY k)
 | 
			
		||||
{
 | 
			
		||||
  if (k == K_TAB && f.focusdirty())
 | 
			
		||||
    app().add_cgs_row_noniva(asp);
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}                                  
 | 
			
		||||
 | 
			
		||||
bool TPrimanota_application::abbatt_handler(TMask_field& f, KEY k)
 | 
			
		||||
{
 | 
			
		||||
  if (k == K_TAB && f.focusdirty())
 | 
			
		||||
    app().add_cgs_row_noniva(aba);
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}                                  
 | 
			
		||||
 | 
			
		||||
bool TPrimanota_application::abbpass_handler(TMask_field& f, KEY k)
 | 
			
		||||
{
 | 
			
		||||
  if (k == K_TAB && f.focusdirty())
 | 
			
		||||
    app().add_cgs_row_noniva(abp);
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}                                  
 | 
			
		||||
 | 
			
		||||
bool TPrimanota_application::ritprof_handler(TMask_field& f, KEY k)
 | 
			
		||||
{
 | 
			
		||||
  if (k == K_TAB && f.focusdirty())
 | 
			
		||||
    app().add_cgs_row_noniva(rpf);
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}                                  
 | 
			
		||||
 | 
			
		||||
bool TPrimanota_application::diffcamb_handler(TMask_field& f, KEY k)
 | 
			
		||||
{
 | 
			
		||||
  if (k == K_TAB && f.focusdirty())
 | 
			
		||||
    app().add_cgs_row_noniva(dfc);
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}                                  
 | 
			
		||||
 | 
			
		||||
bool TPrimanota_application::cambio_handler(TMask_field& f, KEY key)
 | 
			
		||||
{
 | 
			
		||||
  if (key == K_TAB && f.focusdirty())
 | 
			
		||||
  {
 | 
			
		||||
    if (f.get().empty()) 
 | 
			
		||||
      f.set(f.mask().exchange().string());
 | 
			
		||||
    else
 | 
			
		||||
      f.mask().field(F_VISVAL).on_hit();
 | 
			
		||||
  }  
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Handler of F_VISVAL
 | 
			
		||||
// Certified 99%
 | 
			
		||||
bool TPrimanota_application::visval_handler(TMask_field& f, KEY key)
 | 
			
		||||
{
 | 
			
		||||
  if (key == K_SPACE)
 | 
			
		||||
  {             
 | 
			
		||||
    TMask& m = f.mask();
 | 
			
		||||
    const bool on = f.get().not_empty();          
 | 
			
		||||
    const real e(f.mask().get(F_CAMBIO));
 | 
			
		||||
    m.set_exchange(on, e);
 | 
			
		||||
  }
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Handler of F_CORRLIRE
 | 
			
		||||
// Certified 99%
 | 
			
		||||
bool TPrimanota_application::corrlire_handler(TMask_field& f, KEY key)
 | 
			
		||||
 | 
			
		||||
@ -87,8 +87,6 @@ class TPrimanota_application : public TRelation_application
 | 
			
		||||
  static bool ritfis_handler(TMask_field& f, KEY key);
 | 
			
		||||
  static bool ritsoc_handler(TMask_field& f, KEY key);
 | 
			
		||||
  static bool main_codiva_handler(TMask_field& f, KEY key);
 | 
			
		||||
  static bool cambio_handler(TMask_field& f, KEY key);
 | 
			
		||||
  static bool visval_handler(TMask_field& f, KEY key);
 | 
			
		||||
  static bool corrlire_handler(TMask_field& f, KEY key);
 | 
			
		||||
  static bool corrvaluta_handler(TMask_field& f, KEY key);
 | 
			
		||||
  static bool occas_code_handler(TMask_field& f, KEY key);
 | 
			
		||||
@ -198,7 +196,6 @@ protected:
 | 
			
		||||
  void add_cgs_tot(TMask& m);
 | 
			
		||||
 | 
			
		||||
  void add_cgs_rit(bool fisc);        
 | 
			
		||||
  void add_cgs_row_noniva(TipoConto t);
 | 
			
		||||
  void generazione_righe_cg(int r);
 | 
			
		||||
  
 | 
			
		||||
  void reset_cgs_row(int n)  { reset_sheet_row(cgs(), n); }
 | 
			
		||||
 | 
			
		||||
@ -22,8 +22,8 @@ enum TipoIVA
 | 
			
		||||
enum TipoConto
 | 
			
		||||
{ 
 | 
			
		||||
  spr = 'G',           // spese e rimborsi
 | 
			
		||||
  aba = 'A',           // abbattimenti attivi
 | 
			
		||||
  abp = 'P',           // abbattimenti passivi
 | 
			
		||||
  aba = 'A',           // abbuoni attivi
 | 
			
		||||
  abp = 'P',           // abbuoni passivi
 | 
			
		||||
  rpf = 'R',           // ritenute professionali
 | 
			
		||||
  asp = 'L',           // altre spese
 | 
			
		||||
  dfc = 'C',           // differenza cambio
 | 
			
		||||
 | 
			
		||||
@ -23,12 +23,32 @@ protected: // TApplication
 | 
			
		||||
  virtual bool menu(MENU_TAG);
 | 
			
		||||
  
 | 
			
		||||
public:
 | 
			
		||||
  void azzera_lim(int year, int month) const;
 | 
			
		||||
 | 
			
		||||
  bool reg_restore(const TString& reg, int year, int month, int day, bool giornale);
 | 
			
		||||
  bool inl_restore(const TString& lbu, int year, int month);
 | 
			
		||||
 | 
			
		||||
  TRipristina_stampa() : _op(restore_reg) {}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Azzera flag di stampato della liquidazione mensile dal mese dato in poi
 | 
			
		||||
void TRipristina_stampa::azzera_lim(int year, int month) const
 | 
			
		||||
{
 | 
			
		||||
  TTable lim("LIM");                // Azzera i flag di stampa liquidazione
 | 
			
		||||
  lim.put("CODTAB", format("%04d%02d", year, month));
 | 
			
		||||
  for (int err = lim.read(_isgteq); err == NOERR; err = lim.next())
 | 
			
		||||
  {                 
 | 
			
		||||
    if (atoi(lim.get("CODTAB").left(4)) != year) break;
 | 
			
		||||
    const bool stampato = lim.get_bool("B1");
 | 
			
		||||
    if (stampato)
 | 
			
		||||
    {
 | 
			
		||||
      lim.zero("B1");
 | 
			
		||||
      lim.rewrite();
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool TRipristina_stampa::reg_restore(const TString& regist, 
 | 
			
		||||
                                     int year, int month, int day,
 | 
			
		||||
                                     bool giornale)
 | 
			
		||||
@ -118,19 +138,7 @@ bool TRipristina_stampa::reg_restore(const TString& regist,
 | 
			
		||||
          reg.put("I4", (long)mese);      // Ultimo mese di stampa liquidazione
 | 
			
		||||
        if (reg.get_int("I8") >= mese) 
 | 
			
		||||
          reg.zero("I8");                 // Mese di ultima stampa credito precedente
 | 
			
		||||
        
 | 
			
		||||
        TTable lim("LIM");                // Azzera i flag di stampa liquidazione
 | 
			
		||||
        lim.put("CODTAB", format("%04d%02d", year, mese+1));
 | 
			
		||||
        for (int err = lim.read(_isgteq); err == NOERR; err = lim.next())
 | 
			
		||||
        {                 
 | 
			
		||||
          if (atoi(lim.get("CODTAB").left(4)) != year) break;
 | 
			
		||||
          const bool stampato = lim.get_bool("B1");
 | 
			
		||||
          if (stampato)
 | 
			
		||||
          {
 | 
			
		||||
            lim.zero("B1");
 | 
			
		||||
            lim.rewrite();
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
        azzera_lim(year, mese+1);  
 | 
			
		||||
      }    
 | 
			
		||||
    }  
 | 
			
		||||
    else
 | 
			
		||||
@ -140,6 +148,7 @@ bool TRipristina_stampa::reg_restore(const TString& regist,
 | 
			
		||||
      {
 | 
			
		||||
        reg.zero("I4");
 | 
			
		||||
        reg.zero("I8");            
 | 
			
		||||
        azzera_lim(year, 1);  
 | 
			
		||||
      }  
 | 
			
		||||
    }  
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user