Spianate caciotte liquidazione e visualizzazione
git-svn-id: svn://10.65.10.50/trunk@1570 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									bdfd171358
								
							
						
					
					
						commit
						7f283345e6
					
				@ -247,7 +247,7 @@ bool TLiquidazione_app::user_create()
 | 
				
			|||||||
    if (need_refresh) _recalc = ever;
 | 
					    if (need_refresh) _recalc = ever;
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    for (int mese = 1; mese < _month; mese++)   // fino a 13 compreso
 | 
					    for (int mese = 1; mese < _month; mese++)   // fino a 13 compreso
 | 
				
			||||||
      if (is_month_ok(mese, _month) || _recalc == ever)
 | 
					      if (is_month_plain(mese) || _recalc == ever)
 | 
				
			||||||
        update_firm(mese);
 | 
					        update_firm(mese);
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    if (is_month_ok_strict(_month) || _month == 13) 
 | 
					    if (is_month_ok_strict(_month) || _month == 13) 
 | 
				
			||||||
 | 
				
			|||||||
@ -1122,6 +1122,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  if (_isviaggio)
 | 
					  if (_isviaggio)
 | 
				
			||||||
  {  
 | 
					  {  
 | 
				
			||||||
 | 
					    real deb_mens = 0.0;
 | 
				
			||||||
    _plm->put("R5", corr_CEE);
 | 
					    _plm->put("R5", corr_CEE);
 | 
				
			||||||
    _plm->put("R6", corr_noCEE);
 | 
					    _plm->put("R6", corr_noCEE);
 | 
				
			||||||
    _plm->put("R7", acq_CEE);
 | 
					    _plm->put("R7", acq_CEE);
 | 
				
			||||||
@ -1135,6 +1136,25 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
 | 
				
			|||||||
    // l'iva agenzie di viaggio, calcolata
 | 
					    // l'iva agenzie di viaggio, calcolata
 | 
				
			||||||
    // in liquidazione (mensile o trimestrale)
 | 
					    // in liquidazione (mensile o trimestrale)
 | 
				
			||||||
    // ---------------------------------------
 | 
					    // ---------------------------------------
 | 
				
			||||||
 | 
					    // Mod 7/7/95: calcolo effettuato anche qui, in modo da
 | 
				
			||||||
 | 
					    // avere l'IVA dovuta per riportarla nei progressivi
 | 
				
			||||||
 | 
					    // Dato che il resto funziona non tocco nulla, ovvero
 | 
				
			||||||
 | 
					    // duplico il calcolo di write_liq, nella remota ipotesi
 | 
				
			||||||
 | 
					    // che ci siano due o piu' attivita' e siano tutte
 | 
				
			||||||
 | 
					    // agenzie di viaggio
 | 
				
			||||||
 | 
					    real perc_r   = (acq_misCEE * CENTO)/(acq_misCEE + acq_misnoCEE);
 | 
				
			||||||
 | 
					    real ivm = (corr_misCEE * perc_r)/CENTO; ivm.round(ROUND_LIRA);
 | 
				
			||||||
 | 
					    real tc  = (corr_CEE + ivm);
 | 
				
			||||||
 | 
					    real ta  = (acq_CEE + acq_misCEE);
 | 
				
			||||||
 | 
					    real bi  = tc - ta - credito_costo_prec(month);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (bi.sign() > 0)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      deb_mens    = (bi /((CENTO + aliquota_agvia())/CENTO)) *
 | 
				
			||||||
 | 
					                    (aliquota_agvia()/CENTO);
 | 
				
			||||||
 | 
					      deb_mens.ceil(ROUND_LIRA);   // ceil voluto MI3074 
 | 
				
			||||||
 | 
					    } 
 | 
				
			||||||
 | 
					    _pom->put("R13", deb_mens);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  else if (_isagricolo)
 | 
					  else if (_isagricolo)
 | 
				
			||||||
  {                                
 | 
					  {                                
 | 
				
			||||||
 | 
				
			|||||||
@ -366,6 +366,8 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt)
 | 
				
			|||||||
  
 | 
					  
 | 
				
			||||||
  // descrittore riga autodafe' 
 | 
					  // descrittore riga autodafe' 
 | 
				
			||||||
  _DescrItem* ads = NULL;
 | 
					  _DescrItem* ads = NULL;
 | 
				
			||||||
 | 
					  // descrittore riga iva dovuta ag. viaggio' 
 | 
				
			||||||
 | 
					  _DescrItem* iads = NULL;
 | 
				
			||||||
  // questa cazzata serve per far apparire l'intestazione delle colonne
 | 
					  // questa cazzata serve per far apparire l'intestazione delle colonne
 | 
				
			||||||
  // anche se le colonne non ci sono; in tal modo si ottiene una peggior 
 | 
					  // anche se le colonne non ci sono; in tal modo si ottiene una peggior 
 | 
				
			||||||
  // chiarezza, una peggiore efficienza, una gran rottura di coglioni,
 | 
					  // chiarezza, una peggiore efficienza, una gran rottura di coglioni,
 | 
				
			||||||
@ -533,6 +535,23 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt)
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    look_plm(month,att);
 | 
				
			||||||
 | 
					    real iva74t = _pom->get_real("R13");  
 | 
				
			||||||
 | 
					    if (iva74t.sign() > 0)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      if(iads == NULL) iads = new _DescrItem(PIM_ROW);
 | 
				
			||||||
 | 
					      iads->_s0 = "74TER";                // cosi' vollero
 | 
				
			||||||
 | 
					      iads->_s1 = "IVA ";                 // cosi' vollero
 | 
				
			||||||
 | 
					      iads->_s2 = " dovuta - 74 ter";     // cosi' vollero
 | 
				
			||||||
 | 
					      iads->_r1 += iva74t;
 | 
				
			||||||
 | 
					      t1      += iva74t; 
 | 
				
			||||||
 | 
					      if (isfirst)
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        isfirst = FALSE;
 | 
				
			||||||
 | 
					        iads->_f0  = TRUE;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (autodafe.sign() > 0 || autodafe_iva.sign() > 0)
 | 
					  if (autodafe.sign() > 0 || autodafe_iva.sign() > 0)
 | 
				
			||||||
@ -551,25 +570,7 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt)
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // ag. viaggio: iva dovuta 74 ter la vogliono in mezzo ai progressivi   
 | 
					  // ag. viaggio: iva dovuta 74 ter la vogliono in mezzo ai progressivi   
 | 
				
			||||||
  // mi chiamano mimi', il perche' non so
 | 
					  if (iads != NULL)  _descr_arr.add(iads);        
 | 
				
			||||||
  look_lim(month);
 | 
					 | 
				
			||||||
  real iva74t = _lim->get_real("R3");  
 | 
					 | 
				
			||||||
  if (iva74t.sign() > 0)
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    _DescrItem* ads = new _DescrItem(PIM_ROW);
 | 
					 | 
				
			||||||
    ads->_s0 = "74TER";                // cosi' vollero
 | 
					 | 
				
			||||||
    ads->_s1 = "IVA ";                 // cosi' vollero
 | 
					 | 
				
			||||||
    ads->_s2 = " dovuta - 74 ter";     // cosi' vollero
 | 
					 | 
				
			||||||
    ads->_r1 = iva74t;
 | 
					 | 
				
			||||||
    t1      += iva74t; 
 | 
					 | 
				
			||||||
    if (isfirst)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      isfirst = FALSE;
 | 
					 | 
				
			||||||
      ads->_f0  = TRUE;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    _descr_arr.add(ads);        
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // prepara una bella riga di totali
 | 
					  // prepara una bella riga di totali
 | 
				
			||||||
  if (/* !isfirst */ TRUE)
 | 
					  if (/* !isfirst */ TRUE)
 | 
				
			||||||
@ -756,8 +757,6 @@ void TLiquidazione_app::describe_liq(int month, const char* codatts,
 | 
				
			|||||||
  {
 | 
					  {
 | 
				
			||||||
    // tutti i versamenti, sempre e comunque
 | 
					    // tutti i versamenti, sempre e comunque
 | 
				
			||||||
    d->_r8 = versamenti_IVA(_month, "1", TRUE); 
 | 
					    d->_r8 = versamenti_IVA(_month, "1", TRUE); 
 | 
				
			||||||
    // nessuno li ha scritti in LIM
 | 
					 | 
				
			||||||
    d->_r0 -= d->_r8;
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
    // rispettiamo tutte le casistiche per i versamenti
 | 
					    // rispettiamo tutte le casistiche per i versamenti
 | 
				
			||||||
@ -1299,7 +1298,7 @@ void TLiquidazione_app::set_grand(_DescrItem& d)
 | 
				
			|||||||
  if (_is_visliq)
 | 
					  if (_is_visliq)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    // stampa ad uso visualizzazione liquidazione IVA
 | 
					    // stampa ad uso visualizzazione liquidazione IVA
 | 
				
			||||||
    set_row(rw++,"@11g$[r]Versamenti effettuati$[n]@58g%r", &versamenti);
 | 
					    //    set_row(rw++,"@11g$[r]Versamenti effettuati$[n]@58g%r", &versamenti);
 | 
				
			||||||
  } 
 | 
					  } 
 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
 | 
				
			|||||||
@ -673,6 +673,14 @@ bool Visliq_app::vis_one(int m)
 | 
				
			|||||||
    }        
 | 
					    }        
 | 
				
			||||||
    if (msk.field(F_DELIMP).dirty())
 | 
					    if (msk.field(F_DELIMP).dirty())
 | 
				
			||||||
    {     
 | 
					    {     
 | 
				
			||||||
 | 
					      real itt = _lim->get_real("R10"); 
 | 
				
			||||||
 | 
					      if (!itt.is_zero())
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        // uso importi al netto degli interessi
 | 
				
			||||||
 | 
					        // (vengono riapplicati dopo in write_del)
 | 
				
			||||||
 | 
					        n_vers = n_vers/((itt+real(100.0))/real(100.0));
 | 
				
			||||||
 | 
					        n_vers.round(0);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
      vers = n_vers;
 | 
					      vers = n_vers;
 | 
				
			||||||
      d_mod = TRUE;
 | 
					      d_mod = TRUE;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -749,7 +757,7 @@ void Visliq_app::recalc_liq_data(TViswin* vsw, real& rimb, real& rett, real& ver
 | 
				
			|||||||
  real rtt      = _lim->get_real("R5");   // rettifica                 si
 | 
					  real rtt      = _lim->get_real("R5");   // rettifica                 si
 | 
				
			||||||
  real udt      = _lim->get_real("R6");   // ult. detrazioni           no
 | 
					  real udt      = _lim->get_real("R6");   // ult. detrazioni           no
 | 
				
			||||||
  real cgp      = _lim->get_real("R7");   // conguaglio prorata        no
 | 
					  real cgp      = _lim->get_real("R7");   // conguaglio prorata        no
 | 
				
			||||||
  real vrs      = _lim->get_real("R8");   // versamenti                si
 | 
					  real vrs      = _lim->get_real("R8");   // versamenti                no
 | 
				
			||||||
  real vri      = _lim->get_real("R9");   // versamenti integrativi    no
 | 
					  real vri      = _lim->get_real("R9");   // versamenti integrativi    no
 | 
				
			||||||
  real itt      = _lim->get_real("R10");  // tasso interesse           no
 | 
					  real itt      = _lim->get_real("R10");  // tasso interesse           no
 | 
				
			||||||
  real act      = _lim->get_real("R11");  // acconto                   si 
 | 
					  real act      = _lim->get_real("R11");  // acconto                   si 
 | 
				
			||||||
@ -772,7 +780,7 @@ void Visliq_app::recalc_liq_data(TViswin* vsw, real& rimb, real& rett, real& ver
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  // calcola nuovi dati
 | 
					  // calcola nuovi dati
 | 
				
			||||||
  real riscr   = iva_acq + udt  + vers + acc + cre_pre;
 | 
					  real riscr   = iva_acq + udt  + acc + cre_pre;
 | 
				
			||||||
  real risdb   = iva_ven + rimb + deb_pre;
 | 
					  real risdb   = iva_ven + rimb + deb_pre;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (rett.sign() < 0) riscr -= rett;
 | 
					  if (rett.sign() < 0) riscr -= rett;
 | 
				
			||||||
@ -986,6 +994,8 @@ void Visliq_app::write_liq()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void Visliq_app::write_del()
 | 
					void Visliq_app::write_del()
 | 
				
			||||||
{ 
 | 
					{ 
 | 
				
			||||||
 | 
					  bool wasdel = FALSE;
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
  int month = atoi(*_lim_mese);
 | 
					  int month = atoi(*_lim_mese);
 | 
				
			||||||
  TString abi(_lim->get("S4"));
 | 
					  TString abi(_lim->get("S4"));
 | 
				
			||||||
  TString cab(_lim->get("S5"));
 | 
					  TString cab(_lim->get("S5"));
 | 
				
			||||||
@ -994,11 +1004,20 @@ void Visliq_app::write_del()
 | 
				
			|||||||
  real   vers(_lim->get_real("R8"));   
 | 
					  real   vers(_lim->get_real("R8"));   
 | 
				
			||||||
  real   intr(_lim->get_real("R10"));
 | 
					  real   intr(_lim->get_real("R10"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  bool wasdel = look_del(month,1,TRUE); 
 | 
					  if (vers.is_zero() && (wasdel = look_del(month,1)))
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    _del->remove();
 | 
				
			||||||
 | 
					    return;
 | 
				
			||||||
 | 
					  }           
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  if (!wasdel) look_del(month,1,TRUE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // riapplica il tasso di interesse  
 | 
					  // riapplica il tasso di interesse  
 | 
				
			||||||
 | 
					  // se trimstrale e' stato scorporato rispetto
 | 
				
			||||||
 | 
					  // all'eventuale input utente
 | 
				
			||||||
  real inter = vers*(intr/real(100.0));
 | 
					  real inter = vers*(intr/real(100.0));
 | 
				
			||||||
  inter.ceil();
 | 
					  inter.ceil();
 | 
				
			||||||
 | 
					  vers += inter;
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  _del->put("R0",vers);
 | 
					  _del->put("R0",vers);
 | 
				
			||||||
  _del->put("R1",inter);
 | 
					  _del->put("R1",inter);
 | 
				
			||||||
@ -1246,10 +1265,20 @@ void Visliq_app::write_general(TMask& m)
 | 
				
			|||||||
      // e crea/aggiorna le deleghe
 | 
					      // e crea/aggiorna le deleghe
 | 
				
			||||||
      if (nvers != overs)
 | 
					      if (nvers != overs)
 | 
				
			||||||
      { 
 | 
					      { 
 | 
				
			||||||
        risc -= overs;
 | 
					        real itt = _lim->get_real("R10"); 
 | 
				
			||||||
        risc += nvers;
 | 
					        if (!itt.is_zero())
 | 
				
			||||||
        risl += overs;  
 | 
					        {
 | 
				
			||||||
        risl -= nvers;
 | 
					          // uso importi al netto degli interessi
 | 
				
			||||||
 | 
					          // (vengono riapplicati dopo in write_del)
 | 
				
			||||||
 | 
					          nvers = nvers/((itt+real(100.0))/real(100.0));
 | 
				
			||||||
 | 
					          //          overs = overs/((itt+real(100.0))/real(100.0)); 
 | 
				
			||||||
 | 
					          nvers.round(0);
 | 
				
			||||||
 | 
					          //          overs.round(0);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        //        risc -= overs;
 | 
				
			||||||
 | 
					        //        risc += nvers;
 | 
				
			||||||
 | 
					        //        risl += overs;  
 | 
				
			||||||
 | 
					        //        risl -= nvers;
 | 
				
			||||||
        vr_mod = TRUE;
 | 
					        vr_mod = TRUE;
 | 
				
			||||||
      } 
 | 
					      } 
 | 
				
			||||||
      if (vr_mod || ndate != odate || nabi != oabi || 
 | 
					      if (vr_mod || ndate != odate || nabi != oabi || 
 | 
				
			||||||
@ -1336,8 +1365,6 @@ void Visliq_app::write_general(TMask& m)
 | 
				
			|||||||
          _lim->put("R1", nrimb); 
 | 
					          _lim->put("R1", nrimb); 
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }         
 | 
					      }         
 | 
				
			||||||
      // TBI controlla compatibilita' versamenti
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      _lam->put("R2",  newcred);  
 | 
					      _lam->put("R2",  newcred);  
 | 
				
			||||||
      _lam->put("R3",  newdebt);
 | 
					      _lam->put("R3",  newdebt);
 | 
				
			||||||
      _lim->put("R0",  risl);
 | 
					      _lim->put("R0",  risl);
 | 
				
			||||||
@ -1356,17 +1383,17 @@ void Visliq_app::write_general(TMask& m)
 | 
				
			|||||||
      
 | 
					      
 | 
				
			||||||
      rstart = risl;
 | 
					      rstart = risl;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
      else 
 | 
					  else 
 | 
				
			||||||
      {
 | 
					  {
 | 
				
			||||||
        // salva i valori modificati senza fare controlli
 | 
					    // salva i valori modificati senza fare controlli
 | 
				
			||||||
        // e rimetti a lui i suoi debiti mettendo B0 a FALSE
 | 
					    // e rimetti a lui i suoi debiti mettendo B0 a FALSE
 | 
				
			||||||
        if (orett != nrett)
 | 
					    if (orett != nrett)
 | 
				
			||||||
          _lim->put("R5", nrett);
 | 
					      _lim->put("R5", nrett);
 | 
				
			||||||
        if (orimb != nrimb)
 | 
					    if (orimb != nrimb)
 | 
				
			||||||
          _lim->put("R1", nrimb);
 | 
					      _lim->put("R1", nrimb);
 | 
				
			||||||
        _lim->put("B0", ""); 
 | 
					    _lim->put("B0", ""); 
 | 
				
			||||||
        _lim->rewrite();
 | 
					    _lim->rewrite();
 | 
				
			||||||
      }  
 | 
					  }  
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    // Rimetti a posto righe sheet se serve
 | 
					    // Rimetti a posto righe sheet se serve
 | 
				
			||||||
    int sr0 = (_lim->get_real("R0")).sign();
 | 
					    int sr0 = (_lim->get_real("R0")).sign();
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user