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;
 | 
					class TSmart_card;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool is_sconto_not_zero(const char * exp);
 | 
				
			||||||
bool scontoexpr2perc(const char * exp, bool signal , TString & goodexp, real & val_perc );
 | 
					bool scontoexpr2perc(const char * exp, bool signal , TString & goodexp, real & val_perc );
 | 
				
			||||||
real prezzo_scontato(const real& prezzo, const char * sconto);
 | 
					real prezzo_scontato(const real& prezzo, const char * sconto);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -159,9 +159,17 @@ real TSpesa_prest::prezzo() const
 | 
				
			|||||||
  return r;
 | 
					  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 scontoexpr2perc(const char * exp, bool signal , TString & goodexp, real & val_perc )
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  bool valid = TRUE;
 | 
					  bool valid = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  goodexp.cut(0);  
 | 
					  goodexp.cut(0);  
 | 
				
			||||||
  // Elimina gli spazi molesti
 | 
					  // Elimina gli spazi molesti
 | 
				
			||||||
@ -170,8 +178,8 @@ bool scontoexpr2perc(const char * exp, bool signal , TString & goodexp, real & v
 | 
				
			|||||||
  if (exp && *exp)
 | 
					  if (exp && *exp)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    TString80 num;
 | 
					    TString80 num;
 | 
				
			||||||
    bool dec = FALSE;      // Flag che indica se si attende l'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   
 | 
					    bool startnum = true;  // Flag che indica se siamo all'inizio di un numero   
 | 
				
			||||||
    int errorchar = ' ';
 | 
					    int errorchar = ' ';
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    // Flag che indica se sono nella parte decimale di un numero
 | 
					    // 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
 | 
					        // Inizia il nuovo numero
 | 
				
			||||||
        num = (c == '-') ? "-" : "+";  
 | 
					        num = (c == '-') ? "-" : "+";  
 | 
				
			||||||
        startnum = TRUE;
 | 
					        startnum = true;
 | 
				
			||||||
        dec = FALSE;
 | 
					        dec = false;
 | 
				
			||||||
        break;         
 | 
					        break;         
 | 
				
			||||||
      case '0':  
 | 
					      case '0':  
 | 
				
			||||||
      case '1':
 | 
					      case '1':
 | 
				
			||||||
@ -206,7 +214,7 @@ bool scontoexpr2perc(const char * exp, bool signal , TString & goodexp, real & v
 | 
				
			|||||||
      case '8':
 | 
					      case '8':
 | 
				
			||||||
      case '9':
 | 
					      case '9':
 | 
				
			||||||
        num << c;
 | 
					        num << c;
 | 
				
			||||||
        startnum = FALSE;
 | 
					        startnum = false;
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
      case '.':
 | 
					      case '.':
 | 
				
			||||||
      case ',':
 | 
					      case ',':
 | 
				
			||||||
@ -215,8 +223,8 @@ bool scontoexpr2perc(const char * exp, bool signal , TString & goodexp, real & v
 | 
				
			|||||||
          if( startnum )
 | 
					          if( startnum )
 | 
				
			||||||
            num << '0';        // Se occorreva un numero ci metto lo 0
 | 
					            num << '0';        // Se occorreva un numero ci metto lo 0
 | 
				
			||||||
          num << '.';          // Interpreto la virgola come punto
 | 
					          num << '.';          // Interpreto la virgola come punto
 | 
				
			||||||
          dec = TRUE;       
 | 
					          dec = true;       
 | 
				
			||||||
          startnum = TRUE;
 | 
					          startnum = true;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
          errorchar = c;        // Se siamo gi` nella parte decimale segnala un errore
 | 
					          errorchar = c;        // Se siamo gi` nella parte decimale segnala un errore
 | 
				
			||||||
 | 
				
			|||||||
@ -841,9 +841,9 @@ long TDocumento::renum_ndoc(long numdoc)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void TDocumento::set_riga_sconto()
 | 
					void TDocumento::set_riga_sconto()
 | 
				
			||||||
{                                 
 | 
					{                                 
 | 
				
			||||||
  const TString80 sconto(get(DOC_SCONTOPERC));  
 | 
					  const TString80 sconto(get(DOC_SCONTOPERC)); 
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  if (sconto.empty())
 | 
					  if (sconto.blank() ||	!is_sconto_not_zero(sconto))
 | 
				
			||||||
  {        
 | 
					  {        
 | 
				
			||||||
    if(_sconto != NULL)
 | 
					    if(_sconto != NULL)
 | 
				
			||||||
      delete _sconto;
 | 
					      delete _sconto;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user