Patch level : 10.0 606
Files correlati : ve0.exe ve1.exe ve5.exe ve6.exe lv3.exe lv2.exe Ricompilazione Demo : [ ] Commento : Bug 0001551: Documenti interattivi Nel caso le percentuali di sconto di testa diano zero non deve essere generata una riga in modo da non stamparle git-svn-id: svn://10.65.10.50/trunk@20065 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									c236db42c2
								
							
						
					
					
						commit
						b8b5025820
					
				@ -74,6 +74,7 @@ class TCache_articoli;
 | 
			
		||||
class TSmart_card;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
bool is_sconto_not_zero(const char * exp);
 | 
			
		||||
bool scontoexpr2perc(const char * exp, bool signal , TString & goodexp, real & val_perc );
 | 
			
		||||
real prezzo_scontato(const real& prezzo, const char * sconto);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -159,9 +159,17 @@ real TSpesa_prest::prezzo() const
 | 
			
		||||
  return r;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool is_sconto_not_zero(const char * exp)
 | 
			
		||||
{
 | 
			
		||||
	TString good;
 | 
			
		||||
	real perc;
 | 
			
		||||
 | 
			
		||||
	return scontoexpr2perc(exp, false , good, perc) && perc != UNO;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool scontoexpr2perc(const char * exp, bool signal , TString & goodexp, real & val_perc )
 | 
			
		||||
{
 | 
			
		||||
  bool valid = TRUE;
 | 
			
		||||
  bool valid = true;
 | 
			
		||||
 | 
			
		||||
  goodexp.cut(0);  
 | 
			
		||||
  // Elimina gli spazi molesti
 | 
			
		||||
@ -170,8 +178,8 @@ bool scontoexpr2perc(const char * exp, bool signal , TString & goodexp, real & v
 | 
			
		||||
  if (exp && *exp)
 | 
			
		||||
  {
 | 
			
		||||
    TString80 num;
 | 
			
		||||
    bool dec = FALSE;      // Flag che indica se si attende l'inizio di un numero
 | 
			
		||||
    bool startnum = TRUE;  // Flag che indica se siamo all'inizio di un numero   
 | 
			
		||||
    bool dec = false;      // Flag che indica se si attende l'inizio di un numero
 | 
			
		||||
    bool startnum = true;  // Flag che indica se siamo all'inizio di un numero   
 | 
			
		||||
    int errorchar = ' ';
 | 
			
		||||
    
 | 
			
		||||
    // Flag che indica se sono nella parte decimale di un numero
 | 
			
		||||
@ -192,8 +200,8 @@ bool scontoexpr2perc(const char * exp, bool signal , TString & goodexp, real & v
 | 
			
		||||
        }
 | 
			
		||||
        // Inizia il nuovo numero
 | 
			
		||||
        num = (c == '-') ? "-" : "+";  
 | 
			
		||||
        startnum = TRUE;
 | 
			
		||||
        dec = FALSE;
 | 
			
		||||
        startnum = true;
 | 
			
		||||
        dec = false;
 | 
			
		||||
        break;         
 | 
			
		||||
      case '0':  
 | 
			
		||||
      case '1':
 | 
			
		||||
@ -206,7 +214,7 @@ bool scontoexpr2perc(const char * exp, bool signal , TString & goodexp, real & v
 | 
			
		||||
      case '8':
 | 
			
		||||
      case '9':
 | 
			
		||||
        num << c;
 | 
			
		||||
        startnum = FALSE;
 | 
			
		||||
        startnum = false;
 | 
			
		||||
        break;
 | 
			
		||||
      case '.':
 | 
			
		||||
      case ',':
 | 
			
		||||
@ -215,8 +223,8 @@ bool scontoexpr2perc(const char * exp, bool signal , TString & goodexp, real & v
 | 
			
		||||
          if( startnum )
 | 
			
		||||
            num << '0';        // Se occorreva un numero ci metto lo 0
 | 
			
		||||
          num << '.';          // Interpreto la virgola come punto
 | 
			
		||||
          dec = TRUE;       
 | 
			
		||||
          startnum = TRUE;
 | 
			
		||||
          dec = true;       
 | 
			
		||||
          startnum = true;
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
          errorchar = c;        // Se siamo gi` nella parte decimale segnala un errore
 | 
			
		||||
 | 
			
		||||
@ -843,7 +843,7 @@ void TDocumento::set_riga_sconto()
 | 
			
		||||
{                                 
 | 
			
		||||
  const TString80 sconto(get(DOC_SCONTOPERC)); 
 | 
			
		||||
  
 | 
			
		||||
  if (sconto.empty())
 | 
			
		||||
  if (sconto.blank() ||	!is_sconto_not_zero(sconto))
 | 
			
		||||
  {        
 | 
			
		||||
    if(_sconto != NULL)
 | 
			
		||||
      delete _sconto;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user