Correzione in liquidazione IVA relativa allo scorporo corretto
(sia in annuale che nel periodo). git-svn-id: svn://10.65.10.50/trunk@4139 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									2d4a8bddba
								
							
						
					
					
						commit
						cafd3fcd50
					
				
							
								
								
									
										100
									
								
								cg/cg4301.cpp
									
									
									
									
									
								
							
							
						
						
									
										100
									
								
								cg/cg4301.cpp
									
									
									
									
									
								
							@ -570,16 +570,16 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
 | 
			
		||||
 | 
			
		||||
  for (; _cur->pos() < items; ++(*_cur))
 | 
			
		||||
  {                               
 | 
			
		||||
#ifdef DBG
 | 
			
		||||
    if (_cur->pos() % 100 == 0L)
 | 
			
		||||
    if ((_cur->pos() & 0x7F) == 0)
 | 
			
		||||
    {
 | 
			
		||||
#ifdef DBG
 | 
			
		||||
      msgdbg.format("Ricalcolo attivita': P=%ld/%ld",_cur->pos(),items);
 | 
			
		||||
      freespace = GetFreeSpace(0);
 | 
			
		||||
      msgdbg << " Memoria libera(1): " << freespace/1024 << " Kbytes.";
 | 
			
		||||
      xvt_statbar_set(msgdbg);
 | 
			
		||||
#endif  
 | 
			
		||||
      do_events();
 | 
			
		||||
    }
 | 
			
		||||
#endif  
 | 
			
		||||
    TDate date(_mov->get("DATAREG"));
 | 
			
		||||
    TString16 reg     = _mov->get("REG");
 | 
			
		||||
    bool isreg        = look_reg(_mov->get("REG"));
 | 
			
		||||
@ -985,6 +985,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
 | 
			
		||||
      real imp = _pim->get_real("R0"); // imponibile
 | 
			
		||||
      real ivp = _pim->get_real("R1"); // IVA su imp.
 | 
			
		||||
      real lor = _pim->get_real("R2"); // lordo  
 | 
			
		||||
      real lorcor = _pim->get_real("R3"); // lordo corrispettivi (da non ventilare)
 | 
			
		||||
 | 
			
		||||
      /*
 | 
			
		||||
       * le maledette fatture con scontrino sono sul registro dei
 | 
			
		||||
@ -1103,6 +1104,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
 | 
			
		||||
          {
 | 
			
		||||
            real perc = _iva->get_real("R0")/CENTO;
 | 
			
		||||
            lor += imponibile + imposta;   
 | 
			
		||||
            lorcor += imponibile+imposta;
 | 
			
		||||
            real tot = imponibile+imposta;   
 | 
			
		||||
            if (liq) add_corrisp(month, reg, tot, perc, tipodet, codiva, codatt);
 | 
			
		||||
          }
 | 
			
		||||
@ -1196,6 +1198,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
 | 
			
		||||
          _pim->put("R0",imp);
 | 
			
		||||
          _pim->put("R1",ivp);
 | 
			
		||||
          _pim->put("R2",lor);   
 | 
			
		||||
          _pim->put("R3",lorcor);   // Corrispettivi, non inclusi quelli da ventilare
 | 
			
		||||
          _pim->put("R5",ifs);   
 | 
			
		||||
          _pim->put("R6",vfs);   
 | 
			
		||||
          _pim->put("R7",adf);   
 | 
			
		||||
@ -1772,6 +1775,10 @@ void TLiquidazione_app::iva11_set_arr_pim(const TString& codatt)
 | 
			
		||||
  _BolgArray b_arr;
 | 
			
		||||
  const bool is_key = _iva11_arr.is_key(codatt);
 | 
			
		||||
  _BolgArray& array = is_key ? (_BolgArray&)_iva11_arr.find(codatt) : b_arr;
 | 
			
		||||
  // Scorporo corretto dei corrispettivi in R3
 | 
			
		||||
  TAssoc_array corr_ann;
 | 
			
		||||
  _CorrItem cx,*cc;
 | 
			
		||||
  bool is_present;
 | 
			
		||||
             
 | 
			
		||||
  for (_pim->first(); !_pim->eof();  _pim->next())
 | 
			
		||||
  {           
 | 
			
		||||
@ -1878,6 +1885,16 @@ void TLiquidazione_app::iva11_set_arr_pim(const TString& codatt)
 | 
			
		||||
 | 
			
		||||
      if ((_isagricolo && tagr==2) || !_isagricolo)
 | 
			
		||||
      {
 | 
			
		||||
        // Accumula i corrispettivi da scorporare per codice iva
 | 
			
		||||
        is_present =  corr_ann.is_key(codiva);
 | 
			
		||||
        cx._totale = 0;
 | 
			
		||||
        _CorrItem& ca = is_present ? (_CorrItem&) corr_ann[codiva] : cx;
 | 
			
		||||
        ca._totale += _pim->get_real("R3");
 | 
			
		||||
        if (!is_present) // se non c'e' lo aggiunge
 | 
			
		||||
        {
 | 
			
		||||
          ca._aliquota = _iva->get_real("R0"); // Se e' nuovo setta l'aliquota
 | 
			
		||||
          corr_ann.add(codiva,ca);
 | 
			
		||||
        }
 | 
			
		||||
        tt = _pim->get("S0");
 | 
			
		||||
        a13i = tt.get(0);
 | 
			
		||||
        a13v = tt.get(1);
 | 
			
		||||
@ -1957,6 +1974,44 @@ void TLiquidazione_app::iva11_set_arr_pim(const TString& codatt)
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  // Scorre i corrispettivi lordi accumulati, li scorpora ed aggiorna i righi relativi
 | 
			
		||||
  for (cc = (_CorrItem *)corr_ann.first_item(); cc != NULL; cc = (_CorrItem *)corr_ann.succ_item())
 | 
			
		||||
  {
 | 
			
		||||
    lordo2netto(cc->_totale,imp,iva,cc->_aliquota/CENTO);
 | 
			
		||||
    vtot += imp; ivav += iva;
 | 
			
		||||
    if (cc->_aliquota == 4.00)
 | 
			
		||||
    {
 | 
			
		||||
      array.add(imp,TAB11_EC101);
 | 
			
		||||
      array.add(iva,TAB11_EC201);
 | 
			
		||||
    }
 | 
			
		||||
    else if (cc->_aliquota == 9.00)
 | 
			
		||||
    {
 | 
			
		||||
      array.add(imp,TAB11_EC102); 
 | 
			
		||||
      array.add(iva,TAB11_EC202); 
 | 
			
		||||
    }
 | 
			
		||||
    else if (cc->_aliquota == 10.00)
 | 
			
		||||
    {
 | 
			
		||||
      array.add(imp,TAB11_EC103); 
 | 
			
		||||
      array.add(iva,TAB11_EC203); 
 | 
			
		||||
    }
 | 
			
		||||
    else if (cc->_aliquota == 13.00)
 | 
			
		||||
    {
 | 
			
		||||
      array.add(imp,TAB11_EC104); 
 | 
			
		||||
      array.add(iva,TAB11_EC204); 
 | 
			
		||||
    }
 | 
			
		||||
    else if (cc->_aliquota == 16.00)
 | 
			
		||||
    {
 | 
			
		||||
      array.add(imp,TAB11_EC105); 
 | 
			
		||||
      array.add(iva,TAB11_EC205); 
 | 
			
		||||
    }
 | 
			
		||||
    else if (cc->_aliquota == 19.00)
 | 
			
		||||
    {
 | 
			
		||||
      array.add(imp,TAB11_EC106); 
 | 
			
		||||
      array.add(iva,TAB11_EC206); 
 | 
			
		||||
    }
 | 
			
		||||
  }  
 | 
			
		||||
  
 | 
			
		||||
  
 | 
			
		||||
  // Hisss... Rettifica l'importo di EC115: EC115 = EC116 + EC117 + EC115
 | 
			
		||||
  // Va beh...
 | 
			
		||||
  real r16, r17;
 | 
			
		||||
@ -2616,8 +2671,14 @@ void TLiquidazione_app::recalc_annual(const char* att)
 | 
			
		||||
  es_b3    = _pla->get_real("R3");
 | 
			
		||||
  cess_amm = _pla->get_real("R4");  
 | 
			
		||||
  pro_pag  = _pla->get_real("R12");
 | 
			
		||||
  iva_acq  = _pla->get_real("R11"); 
 | 
			
		||||
 | 
			
		||||
  iva_acq  = _pla->get_real("R11");
 | 
			
		||||
  
 | 
			
		||||
  // Per avere un risultato corretto, si deve totalizzare PIM->R3 per codice iva
 | 
			
		||||
  // e quindi effettuare lo scorporo dell'imponibile e aggiungere al relativo volume d'affari
 | 
			
		||||
  TAssoc_array corr_ann;
 | 
			
		||||
  _CorrItem cx,*cc;
 | 
			
		||||
  bool is_key;
 | 
			
		||||
  
 | 
			
		||||
  for (_pim->first(); !_pim->eof();  _pim->next())
 | 
			
		||||
  {           
 | 
			
		||||
    if (_year != *_pim_anno) continue;
 | 
			
		||||
@ -2636,8 +2697,19 @@ void TLiquidazione_app::recalc_annual(const char* att)
 | 
			
		||||
    a13     = _pim->get("S0");
 | 
			
		||||
    imp_a13 = a13.get(0);
 | 
			
		||||
    imp_ifs -= imp_af + imp_a13; // Toglie le autofatture e le op. A13
 | 
			
		||||
    if  (corrisp) imp_ifs += _pim->get_real("R5"); // Se corrisp. aggiunge le FS
 | 
			
		||||
    
 | 
			
		||||
    if  (corrisp)
 | 
			
		||||
    {
 | 
			
		||||
      imp_ifs += _pim->get_real("R5"); // Se corrisp. aggiunge le FS
 | 
			
		||||
      is_key =  corr_ann.is_key(codiva);
 | 
			
		||||
      cx._totale = 0;
 | 
			
		||||
      _CorrItem& ca = is_key ? (_CorrItem&) corr_ann[codiva] : cx;
 | 
			
		||||
      ca._totale += _pim->get_real("R3");
 | 
			
		||||
      if (!is_key) // se non c'e' lo aggiunge
 | 
			
		||||
      {
 | 
			
		||||
        ca._aliquota = _iva->get_real("R0")/CENTO; // Se e' nuovo setta l'aliquota
 | 
			
		||||
        corr_ann.add(codiva,ca);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    if (                                        // ESCLUSI:      
 | 
			
		||||
        strcmp(att,*_pim_codatt) != 0   ||
 | 
			
		||||
        treg != vendita                 || //   non vendite
 | 
			
		||||
@ -2652,7 +2724,19 @@ void TLiquidazione_app::recalc_annual(const char* att)
 | 
			
		||||
    else
 | 
			
		||||
     volaff2 += imp_ifs;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  // Ora si scorporano i corrispettivi raggruppati per codice IVA  e si totalizzano gli imponibili
 | 
			
		||||
  // calcolati, da aggiungere poi a volaff1 o volaff2
 | 
			
		||||
  real imp,iva;
 | 
			
		||||
  for (cc = (_CorrItem *)corr_ann.first_item(); cc != NULL; cc = (_CorrItem *)corr_ann.succ_item())
 | 
			
		||||
  {
 | 
			
		||||
    lordo2netto(cc->_totale,imp,iva,cc->_aliquota);
 | 
			
		||||
    if (tipoatt == 1)
 | 
			
		||||
      volaff1 += imp;
 | 
			
		||||
    else 
 | 
			
		||||
      volaff2 += imp;
 | 
			
		||||
  } 
 | 
			
		||||
  
 | 
			
		||||
  // calcola esenti, cessioni, lordo vendite, prorata pagato
 | 
			
		||||
  // e IVA acquisti dai plm/ptm/pum/pam/pom 
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
@ -105,7 +105,7 @@ void TLiquidazione_app::recalc_corrispettivi(int month, const char* codatt)
 | 
			
		||||
  // x13
 | 
			
		||||
  TString key;
 | 
			
		||||
  bool is_key;
 | 
			
		||||
  TAssoc_array corr_ann;  // Contiene corrispettivi annuali (temporaneo, da rimuovere
 | 
			
		||||
  TAssoc_array corr_ann;  // Contiene corrispettivi annuali (temporaneo, da correggere
 | 
			
		||||
                          // non appena implementato correttamente il mese 13)
 | 
			
		||||
  _CorrItem cx;
 | 
			
		||||
  
 | 
			
		||||
@ -117,25 +117,26 @@ void TLiquidazione_app::recalc_corrispettivi(int month, const char* codatt)
 | 
			
		||||
  for (int i = 0; i < items; i++)
 | 
			
		||||
  {
 | 
			
		||||
    _CorrItem* ci = (_CorrItem*)&_corr_arr[i];
 | 
			
		||||
    // Se e' annuale  memorizza in un assoc_array i corrispettivi annuali
 | 
			
		||||
    // memorizza  per attivita'+registro+codiva+tipodet
 | 
			
		||||
    // memorizza  per codiva
 | 
			
		||||
    // x13
 | 
			
		||||
    if (month == 13)
 | 
			
		||||
    if ((month != 13 && ci->_month != month) || ci->_codatt != codatt) continue;
 | 
			
		||||
    
 | 
			
		||||
    key = ci->_codiva;
 | 
			
		||||
    is_key =  corr_ann.is_key(key);
 | 
			
		||||
    cx._totale = 0;
 | 
			
		||||
    _CorrItem& ca = is_key ? (_CorrItem&) corr_ann[key] : cx;
 | 
			
		||||
    ca._totale += ci->_totale;
 | 
			
		||||
    if (!is_key) // se non c'e' lo aggiunge
 | 
			
		||||
    {
 | 
			
		||||
      key = ci->_codiva;
 | 
			
		||||
      is_key =  corr_ann.is_key(key);
 | 
			
		||||
      cx._totale = 0;
 | 
			
		||||
      _CorrItem& ca = is_key ? (_CorrItem&) corr_ann[key] : cx;
 | 
			
		||||
      ca._totale += ci->_totale;
 | 
			
		||||
      if (!is_key) // se non c'e' lo aggiunge
 | 
			
		||||
      {
 | 
			
		||||
        ca._aliquota = ci->_aliquota;
 | 
			
		||||
        ca._codreg = ci->_codreg;
 | 
			
		||||
        ca._tipodet = ci->_tipodet;
 | 
			
		||||
        corr_ann.add(key,ca);
 | 
			
		||||
      }
 | 
			
		||||
      continue;
 | 
			
		||||
      ca._aliquota = ci->_aliquota;
 | 
			
		||||
/*
 | 
			
		||||
      ca._codreg = ci->_codreg;
 | 
			
		||||
      ca._tipodet = ci->_tipodet;
 | 
			
		||||
*/      
 | 
			
		||||
      corr_ann.add(key,ca);
 | 
			
		||||
    }
 | 
			
		||||
/*    
 | 
			
		||||
    continue;
 | 
			
		||||
    // fine x13
 | 
			
		||||
    
 | 
			
		||||
    if (ci->_month != month || ci->_codatt != codatt) 
 | 
			
		||||
@ -162,21 +163,24 @@ void TLiquidazione_app::recalc_corrispettivi(int month, const char* codatt)
 | 
			
		||||
    _pim->put("R0", imponibile);
 | 
			
		||||
    _pim->put("R1", imposta);  
 | 
			
		||||
    _pim->rewrite();                
 | 
			
		||||
*/    
 | 
			
		||||
  }
 | 
			
		||||
  // Dopo aver calcolato la somma dei corrispettivi annualmente, li scorpora  
 | 
			
		||||
  // x13
 | 
			
		||||
  if (month == 13)
 | 
			
		||||
  {
 | 
			
		||||
  // if (month == 13)
 | 
			
		||||
  //{
 | 
			
		||||
    real imp,iva,imp1,iva1;
 | 
			
		||||
    _CorrItem* cc;
 | 
			
		||||
    // Per le prossime scritture uso impropriamente il mese 12, lo so e' terribile...
 | 
			
		||||
    // Per le prossime scritture(PAM e PLM) uso impropriamente il mese 12, lo so e' terribile...
 | 
			
		||||
    // ma non appena possibile il mese 13 sara' disponibile tutto sara' piu' bello.
 | 
			
		||||
    //const int m = month == 13 ? 12 : month; 
 | 
			
		||||
    for (cc = (_CorrItem *)corr_ann.first_item(); cc != NULL; cc = (_CorrItem *)corr_ann.succ_item())
 | 
			
		||||
    {
 | 
			
		||||
      lordo2netto(cc->_totale, imp, iva, cc->_aliquota);
 | 
			
		||||
      imponibile += imp;
 | 
			
		||||
      imposta    += iva;
 | 
			
		||||
      look_pim(12, codatt, cc->_codreg, "", corr_ann.get_hashobj()->key(), cc->_tipodet, TRUE);
 | 
			
		||||
/*      
 | 
			
		||||
      look_pim(m, codatt, cc->_codreg, "", corr_ann.get_hashobj()->key(), cc->_tipodet, TRUE);
 | 
			
		||||
       imp1 = _pim->get_real("R0");
 | 
			
		||||
       iva1 = _pim->get_real("R1");
 | 
			
		||||
       imp1 += imp;
 | 
			
		||||
@ -184,8 +188,10 @@ void TLiquidazione_app::recalc_corrispettivi(int month, const char* codatt)
 | 
			
		||||
      _pim->put("R0",imp1);
 | 
			
		||||
      _pim->put("R1",iva1);
 | 
			
		||||
      _pim->rewrite();
 | 
			
		||||
*/      
 | 
			
		||||
    //}
 | 
			
		||||
    }
 | 
			
		||||
    look_plm(12, codatt); // Aggiorna l'iva vendite in PLM...
 | 
			
		||||
    look_plm(month, codatt); // Aggiorna l'iva vendite in PLM...
 | 
			
		||||
    real ive = _plm->get_real("R0");
 | 
			
		||||
    ive     += imposta;
 | 
			
		||||
    _plm->put("R0",ive);
 | 
			
		||||
@ -195,7 +201,6 @@ void TLiquidazione_app::recalc_corrispettivi(int month, const char* codatt)
 | 
			
		||||
    _pam->put("R1",vaf);
 | 
			
		||||
    _plm->rewrite();
 | 
			
		||||
    _pam->rewrite();
 | 
			
		||||
  }
 | 
			
		||||
  // fine x13
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -651,18 +656,26 @@ _DescrItem* TLiquidazione_app::recalc_rimborso(int month, const char* codatts,
 | 
			
		||||
  
 | 
			
		||||
  // Condizione 2...
 | 
			
		||||
  // scorri i bellissimi progressivi mensili
 | 
			
		||||
  // Nota: i valori ricavati vanno poi integrati con R3, dove sono memorizzati i corrispettivi da scorporare
 | 
			
		||||
  // anche qui si accumula per codice iva e si effettua lo scorporo alla fine del ciclo.
 | 
			
		||||
  TAssoc_array corr_ann;
 | 
			
		||||
  TString codiva;
 | 
			
		||||
  _CorrItem cx,*cc;
 | 
			
		||||
  bool is_key;
 | 
			
		||||
  
 | 
			
		||||
  const int year  = atoi((const char*)_year);
 | 
			
		||||
  for (_pim->first(); !_pim->eof(); _pim->next()) 
 | 
			
		||||
  {                                   
 | 
			
		||||
    int ryear = atoi(*_pim_anno);
 | 
			
		||||
    int rmese = atoi(*_pim_mese);
 | 
			
		||||
    int tipodet = atoi(*_pim_tipodet);
 | 
			
		||||
    codiva = *_pim_codiva;
 | 
			
		||||
    
 | 
			
		||||
    // B3 significa che e' acq. o vendita valido per rimb. per aliquota                                    
 | 
			
		||||
    if (!_pim->get_bool("B3")) continue;
 | 
			
		||||
    
 | 
			
		||||
    // Se il tipo di codice e' NS non va considerato nella sommatoria del tot. acquisti
 | 
			
		||||
    look_iva(*_pim_codiva);
 | 
			
		||||
    look_iva(codiva);
 | 
			
		||||
    const bool non_sogg = _iva->get("S1") == "NS";
 | 
			
		||||
 | 
			
		||||
    if (!is_mens) // Trimestrali
 | 
			
		||||
@ -687,6 +700,15 @@ _DescrItem* TLiquidazione_app::recalc_rimborso(int month, const char* codatts,
 | 
			
		||||
        // vedi sopra...
 | 
			
		||||
        vtot += imp;     
 | 
			
		||||
        ivav += iva;
 | 
			
		||||
        is_key =  corr_ann.is_key(codiva);
 | 
			
		||||
        cx._totale = 0;
 | 
			
		||||
        _CorrItem& ca = is_key ? (_CorrItem&) corr_ann[codiva] : cx;
 | 
			
		||||
        ca._totale += _pim->get_real("R3");
 | 
			
		||||
        if (!is_key) // se non c'e' lo aggiunge
 | 
			
		||||
        {
 | 
			
		||||
          ca._aliquota = _iva->get_real("R0")/CENTO; // Se e' nuovo setta l'aliquota
 | 
			
		||||
          corr_ann.add(codiva,ca);
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    else 
 | 
			
		||||
@ -698,6 +720,14 @@ _DescrItem* TLiquidazione_app::recalc_rimborso(int month, const char* codatts,
 | 
			
		||||
      }
 | 
			
		||||
  } // end of for
 | 
			
		||||
  
 | 
			
		||||
  real impc,ivac; // Aggiunge lo scorporo dei corrispettivi alle vendite calcolate
 | 
			
		||||
  for (cc = (_CorrItem *)corr_ann.first_item(); cc != NULL; cc = (_CorrItem *)corr_ann.succ_item())
 | 
			
		||||
  {
 | 
			
		||||
    lordo2netto(cc->_totale,impc,ivac,cc->_aliquota);
 | 
			
		||||
    vtot += impc;
 | 
			
		||||
    ivav += ivac;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // finalmente
 | 
			
		||||
  alv = ivav/vtot;  alv.round(4);
 | 
			
		||||
  ala = ivaa/atot;  ala.round(4);
 | 
			
		||||
 | 
			
		||||
@ -469,6 +469,11 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt)
 | 
			
		||||
  _DescrItem* hea = new _DescrItem(PIM_HEAD);
 | 
			
		||||
  hea->_f0 = skip_acq; // cosi' non compare nemmeno la colonnina! contento?
 | 
			
		||||
  _descr_arr.add(hea);
 | 
			
		||||
  // Assoc array per memorizzare i corrispettivi da scorporare. Tali corrispettivi verranno
 | 
			
		||||
  // aggiunti alla fine del ciclo, scorrendo tutte le righe generate.
 | 
			
		||||
  TAssoc_array corr_ann;
 | 
			
		||||
  _CorrItem cx;
 | 
			
		||||
  bool is_key;
 | 
			
		||||
  
 | 
			
		||||
  while ((tmpatt = atts.get()) != NULL)
 | 
			
		||||
  {
 | 
			
		||||
@ -571,6 +576,15 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt)
 | 
			
		||||
        }
 | 
			
		||||
        else  // vendita
 | 
			
		||||
        {
 | 
			
		||||
          is_key =  corr_ann.is_key(codiva);
 | 
			
		||||
          cx._totale = 0;
 | 
			
		||||
          _CorrItem& ca = is_key ? (_CorrItem&) corr_ann[codiva] : cx;
 | 
			
		||||
          ca._totale += _pim->get_real("R3");
 | 
			
		||||
          if (!is_key) // se non c'e' lo aggiunge
 | 
			
		||||
          {
 | 
			
		||||
            ca._aliquota = _iva->get_real("R0")/CENTO; // Se e' nuovo setta l'aliquota
 | 
			
		||||
            corr_ann.add(codiva,ca);
 | 
			
		||||
          }
 | 
			
		||||
          // vedi corrispettivi veri e falsi
 | 
			
		||||
          real cvi = _pim->get_real("R0");  // imp. totale
 | 
			
		||||
          real cvv = _pim->get_real("R1");  // iva  totale
 | 
			
		||||
@ -653,6 +667,23 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt)
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    real impc,ivac; // Aggiunge lo scorporo dei corrispettivi
 | 
			
		||||
    const int ditems = _descr_arr.items(); 
 | 
			
		||||
    for (int i=0;i<ditems;i++) // scorre le righe memorizzate
 | 
			
		||||
    {
 | 
			
		||||
      _DescrItem& dd = (_DescrItem&) _descr_arr[i]; 
 | 
			
		||||
      if (dd._flags != PIM_ROW) continue;
 | 
			
		||||
      if (corr_ann.is_key(dd._s1)) // Se esiste il codice iva corrispondente sull'array corrispettivi
 | 
			
		||||
      {
 | 
			
		||||
        _CorrItem& cc = (_CorrItem &) corr_ann[dd._s1];
 | 
			
		||||
        lordo2netto(cc._totale,impc,ivac,cc._aliquota);
 | 
			
		||||
        dd._r2 += impc; // allora effettua lo scorporo e aggiorna i totali
 | 
			
		||||
        dd._r3 += ivac;
 | 
			
		||||
        t2 += impc;
 | 
			
		||||
        t3 += ivac;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    look_plm(month,att);
 | 
			
		||||
    real iva74t = _pom->get_real("R13");  
 | 
			
		||||
    if (iva74t.sign() > 0)
 | 
			
		||||
@ -672,7 +703,7 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt)
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  if (art40.sign() > 0 || art40_iva.sign() > 0)
 | 
			
		||||
  {
 | 
			
		||||
  { 
 | 
			
		||||
    _DescrItem* ads = new _DescrItem(PIM_ROW);
 | 
			
		||||
    ads->_s0 = ref;
 | 
			
		||||
    ads->_s1 = "A13";
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user