Nuove cazzopzioni per ricalcolo da stampa registri, perche' sia proprio
uguale identico preciso al frigorifero di merda anche negli errori git-svn-id: svn://10.65.10.50/trunk@1043 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									0e94893908
								
							
						
					
					
						commit
						c0c5742d3a
					
				@ -48,6 +48,7 @@ bool TLiquidazione_app::user_create()
 | 
				
			|||||||
  TDate   printdate;            
 | 
					  TDate   printdate;            
 | 
				
			||||||
  TString filename;         
 | 
					  TString filename;         
 | 
				
			||||||
  long    ditta;
 | 
					  long    ditta;
 | 
				
			||||||
 | 
					  bool    nocalc = FALSE;                             
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  _prind = NULL;
 | 
					  _prind = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -83,14 +84,20 @@ bool TLiquidazione_app::user_create()
 | 
				
			|||||||
    char rcl    = *(subj.get(3));
 | 
					    char rcl    = *(subj.get(3));
 | 
				
			||||||
    _recalc_only = rcl == 'C';
 | 
					    _recalc_only = rcl == 'C';
 | 
				
			||||||
    _is_visliq  = rcl == 'V';
 | 
					    _is_visliq  = rcl == 'V';
 | 
				
			||||||
    _isregis    = (rcl == 'l' || rcl == 'L'); // stampa per registri    
 | 
					    // S/s =  stampa senza ricalcolo (minuscolo = definitivo)
 | 
				
			||||||
    // TBI usare S s per stampa senza ricalcolo
 | 
					    // L/l =  stampa con ricalcolo se necessario (minuscolo = definitivo)
 | 
				
			||||||
    _isfinal    = rcl == 'l'; // se l minuscolo, definitivo
 | 
					    // C   =  solo ricalcolo
 | 
				
			||||||
 | 
					    // V   =  stampa ed ev. ricalcolo per visualizzazione
 | 
				
			||||||
 | 
					    // s o l minuscoli = registro bollato (setta B1)
 | 
				
			||||||
 | 
					    _isregis    = (rcl == 'l' || rcl == 'L' || 
 | 
				
			||||||
 | 
					                   rcl == 'S' || rcl == 's'); // stampa per registri    
 | 
				
			||||||
 | 
					    _isfinal    = rcl == 'l' || rcl == 's'; // se l minuscolo, definitivo 
 | 
				
			||||||
 | 
					    nocalc      = rcl == 'S' || rcl == 's';
 | 
				
			||||||
    printdate   = subj.get(4);
 | 
					    printdate   = subj.get(4);
 | 
				
			||||||
    filename    = subj.get(5);
 | 
					    filename    = subj.get(5);
 | 
				
			||||||
    is_header   = subj.items() == 6;
 | 
					    is_header   = subj.items() == 6;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
  if(pnd) pnd->addstatus(1);
 | 
					  if(pnd) pnd->addstatus(1);
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  _rel = new TRelation(LF_MOV);
 | 
					  _rel = new TRelation(LF_MOV);
 | 
				
			||||||
@ -208,10 +215,11 @@ bool TLiquidazione_app::user_create()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    // calcola liquidazione 
 | 
					    // calcola liquidazione 
 | 
				
			||||||
    printer().setdate(printdate);
 | 
					    printer().setdate(printdate);
 | 
				
			||||||
    _recalc  = needed;
 | 
					    _recalc  = nocalc ? never : needed;
 | 
				
			||||||
    TApplication::set_firm(ditta);
 | 
					    TApplication::set_firm(ditta);
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    if (!look_lia()) { end_wait();  return FALSE; }
 | 
					    if (!look_lia()) 
 | 
				
			||||||
 | 
					    { end_wait();  return FALSE; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    _nditte->zero(); 
 | 
					    _nditte->zero(); 
 | 
				
			||||||
    _nditte_r->put("CODDITTA", ditta); 
 | 
					    _nditte_r->put("CODDITTA", ditta); 
 | 
				
			||||||
@ -663,7 +671,20 @@ bool TLiquidazione_app::set_liquidazione()
 | 
				
			|||||||
int cg4300(int argc, char* argv[])
 | 
					int cg4300(int argc, char* argv[])
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  TLiquidazione_app main_app;
 | 
					  TLiquidazione_app main_app;
 | 
				
			||||||
  main_app.run(argc, argv, "Liquidazione IVA");
 | 
					
 | 
				
			||||||
 | 
					  TApplication::check_parameters(argc, argv);
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  const char* title = "Liquidazione IVA";
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  if (argc > 2)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    if (strcmp(argv[2], "-S") == 0)
 | 
				
			||||||
 | 
					      title = "Stampa liquidazione"; 
 | 
				
			||||||
 | 
					    else if (strcmp(argv[2], "-C") == 0)
 | 
				
			||||||
 | 
					      title = "Ricalcolo corrispettivi";
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  main_app.run(argc, argv, title);
 | 
				
			||||||
  return TRUE;
 | 
					  return TRUE;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -423,6 +423,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
 | 
				
			|||||||
    const bool cmt  = !_cur->is_first_match(LF_RMOVIVA);
 | 
					    const bool cmt  = !_cur->is_first_match(LF_RMOVIVA);
 | 
				
			||||||
	const bool sosp_imp = _reg->get_bool("B1");
 | 
						const bool sosp_imp = _reg->get_bool("B1");
 | 
				
			||||||
    const TRectype& rcs = _cur->curr(LF_CAUSALI);
 | 
					    const TRectype& rcs = _cur->curr(LF_CAUSALI);
 | 
				
			||||||
 | 
					    const bool fattrit  = rcs.get_bool("RITFATT");
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    if (dok || sreg || rs8 || cmt) continue;
 | 
					    if (dok || sreg || rs8 || cmt) continue;
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
@ -434,13 +435,6 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
 | 
				
			|||||||
        tipodoc == "IN" || tipodoc == "PG")
 | 
					        tipodoc == "IN" || tipodoc == "PG")
 | 
				
			||||||
      continue;
 | 
					      continue;
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    /*
 | 
					 | 
				
			||||||
     * Fatture in ritardo vengono considerate solo in dichiarazione
 | 
					 | 
				
			||||||
     * annuale
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    if (_month != 13 && rcs.get_bool("RITFATT")) 
 | 
					 | 
				
			||||||
      continue;
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    /*
 | 
					    /*
 | 
				
			||||||
     * check date: se si calcola l'acconto, solo da 1/12 a 20/12
 | 
					     * check date: se si calcola l'acconto, solo da 1/12 a 20/12
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
@ -461,6 +455,8 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
 | 
				
			|||||||
      real asimp_iva = 0.0;         // imposta acquisti sosp. imposta
 | 
					      real asimp_iva = 0.0;         // imposta acquisti sosp. imposta
 | 
				
			||||||
      real vsimp_imp = 0.0;         // imponibile vendite sosp. imposta
 | 
					      real vsimp_imp = 0.0;         // imponibile vendite sosp. imposta
 | 
				
			||||||
      real vsimp_iva = 0.0;         // imposta vendite sosp. imposta
 | 
					      real vsimp_iva = 0.0;         // imposta vendite sosp. imposta
 | 
				
			||||||
 | 
						  real rit_imp   = 0.0;         // imponibile fatture in ritardo
 | 
				
			||||||
 | 
						  real rit_iva   = 0.0;         // IVA fatture in ritardo
 | 
				
			||||||
      
 | 
					      
 | 
				
			||||||
      TString codiva     = _iva->get("CODTAB");
 | 
					      TString codiva     = _iva->get("CODTAB");
 | 
				
			||||||
      TString tipoiva    = _iva->get("S1");
 | 
					      TString tipoiva    = _iva->get("S1");
 | 
				
			||||||
@ -507,7 +503,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
 | 
				
			|||||||
       * In liq. annuale si totalizzano
 | 
					       * In liq. annuale si totalizzano
 | 
				
			||||||
       * solo le stranezze che seguono
 | 
					       * solo le stranezze che seguono
 | 
				
			||||||
       */
 | 
					       */
 | 
				
			||||||
      if (month == 13)
 | 
					      if (_month == 13)
 | 
				
			||||||
      {         
 | 
					      {         
 | 
				
			||||||
         // si contano soltanto le vendite.
 | 
					         // si contano soltanto le vendite.
 | 
				
			||||||
         bool okc = tipomov == vendita;  
 | 
					         bool okc = tipomov == vendita;  
 | 
				
			||||||
@ -516,7 +512,11 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
 | 
				
			|||||||
         // oppure ... 
 | 
					         // oppure ... 
 | 
				
			||||||
         bool cond2 = (rcs.get_bool("AUTOFATT") && tipoiva == "NS" && tipodoc != "AF" &&
 | 
					         bool cond2 = (rcs.get_bool("AUTOFATT") && tipoiva == "NS" && tipodoc != "AF" &&
 | 
				
			||||||
                       rcs.get_bool("INTRACOM") && rcs.get_bool("VALINTRA"));
 | 
					                       rcs.get_bool("INTRACOM") && rcs.get_bool("VALINTRA"));
 | 
				
			||||||
         if (!(okc && (cond1 || cond2)))
 | 
					         /*
 | 
				
			||||||
 | 
					          * Fatture in ritardo vengono considerate solo in dichiarazione
 | 
				
			||||||
 | 
					          * annuale, ma vanno comunque sommate per i porci registri
 | 
				
			||||||
 | 
					          */
 | 
				
			||||||
 | 
					         if (!(okc && (cond1 || cond2)) && !fattrit)
 | 
				
			||||||
           continue;
 | 
					           continue;
 | 
				
			||||||
      } 
 | 
					      } 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -525,14 +525,19 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
 | 
				
			|||||||
      {
 | 
					      {
 | 
				
			||||||
      	if (tipomov == vendita)
 | 
					      	if (tipomov == vendita)
 | 
				
			||||||
      	{
 | 
					      	{
 | 
				
			||||||
      		vsimp_imp = imponibile;
 | 
					      	  vsimp_imp = imponibile;
 | 
				
			||||||
      		vsimp_iva = imposta;
 | 
					      	  vsimp_iva = imposta;
 | 
				
			||||||
      	}
 | 
					      	}
 | 
				
			||||||
      	else
 | 
					      	else
 | 
				
			||||||
      	{
 | 
					      	{
 | 
				
			||||||
      		asimp_imp = imponibile;
 | 
					      	  asimp_imp = imponibile;
 | 
				
			||||||
      		asimp_iva = imposta;
 | 
					      	  asimp_iva = imposta;
 | 
				
			||||||
      	}
 | 
					      	}
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      else if (fattrit && _month != 13)
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					      	 rit_imp = imponibile;
 | 
				
			||||||
 | 
					      	 rit_iva = imposta;
 | 
				
			||||||
      }      
 | 
					      }      
 | 
				
			||||||
      else   // normale
 | 
					      else   // normale
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
@ -776,7 +781,15 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
 | 
				
			|||||||
      
 | 
					      
 | 
				
			||||||
      /* i falsi corrispettivi */
 | 
					      /* i falsi corrispettivi */
 | 
				
			||||||
      real fci = _pim_r->get_real("R13");
 | 
					      real fci = _pim_r->get_real("R13");
 | 
				
			||||||
      real fcv = _pim_r->get_real("R14");
 | 
					      real fcv = _pim_r->get_real("R14");                   
 | 
				
			||||||
 | 
					      
 | 
				
			||||||
 | 
					      /* le porche fatture in ritardo */
 | 
				
			||||||
 | 
					      TToken_string fr(_pim_r->get("S1")); 
 | 
				
			||||||
 | 
					      real rti(fr.get(0));
 | 
				
			||||||
 | 
					      real rtv(fr.get(1));
 | 
				
			||||||
 | 
					      
 | 
				
			||||||
 | 
					      rti   += rit_imp;
 | 
				
			||||||
 | 
					      rtv   += rit_iva;
 | 
				
			||||||
      
 | 
					      
 | 
				
			||||||
      if (tipomov == vendita)
 | 
					      if (tipomov == vendita)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
@ -927,7 +940,13 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt)
 | 
				
			|||||||
      _pim_r->put("I1", (long)tipomov);  
 | 
					      _pim_r->put("I1", (long)tipomov);  
 | 
				
			||||||
      _pim_r->put("B3", ivarimb ?   "X" : "");  
 | 
					      _pim_r->put("B3", ivarimb ?   "X" : "");  
 | 
				
			||||||
      _pim_r->put("B4", _isricacq ? "X" : "");  
 | 
					      _pim_r->put("B4", _isricacq ? "X" : "");  
 | 
				
			||||||
      _pim_r->put("S5", tipoiva);
 | 
					      _pim_r->put("S5", tipoiva);              
 | 
				
			||||||
 | 
					                           
 | 
				
			||||||
 | 
					      // fatture in ritardo                     
 | 
				
			||||||
 | 
					      fr.add(rti.string(), 0);
 | 
				
			||||||
 | 
					      fr.add(rtv.string(), 1);
 | 
				
			||||||
 | 
					      _pim_r->put("S1",fr);
 | 
				
			||||||
 | 
					      
 | 
				
			||||||
      _pim->rewrite();
 | 
					      _pim->rewrite();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    while (_cur->next_match(LF_RMOVIVA));
 | 
					    while (_cur->next_match(LF_RMOVIVA));
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user