Validaciones

De CidesaWiki

(Diferencias entre revisiones)
Saltar a navegación, buscar
 
(6 ediciones intermedias no se muestran.)
Línea 22: Línea 22:
   caregart{codart}:
   caregart{codart}:
     required:  Yes
     required:  Yes
-
     required_msg: El Código del Articulo no puedo estar en Blanco         
+
     required_msg: El Código del Articulo no puedo estar en Blanco
 +
    validators: MyStringValidator6        
   caregart{desart}:
   caregart{desart}:
Línea 68: Línea 69:
         max:      250
         max:      250
         max_error: La Descripción no puede pasar mas de 250 caracteres
         max_error: La Descripción no puede pasar mas de 250 caracteres
 +
 +
MyStringValidator6:
 +
    class: sfStringValidator
 +
    param:
 +
        min:      1
 +
        min_error: La Descripción no puede tener menos de 2 caracteres       
          
          
MyString2Validator:
MyString2Validator:
Línea 80: Línea 87:
     class: sfStringValidator
     class: sfStringValidator
     param:
     param:
-
         min:      2
+
         min:      0
         min_error: La Unidad de Medida no puede tener menos de 2 caracteres
         min_error: La Unidad de Medida no puede tener menos de 2 caracteres
         max:       
         max:       
Línea 88: Línea 95:
     class: sfStringValidator
     class: sfStringValidator
     param:
     param:
-
         min:      2
+
         min:      0
         min_error: La Unidad Alternativa no puede tener menos de 2 caracteres
         min_error: La Unidad Alternativa no puede tener menos de 2 caracteres
         max:      15
         max:      15
Línea 96: Línea 103:
     class: sfStringValidator
     class: sfStringValidator
     param:
     param:
-
         min:      2
+
         min:      0
         min_error: La Relación no puede tener menos de 2 caracteres
         min_error: La Relación no puede tener menos de 2 caracteres
         max:      25  
         max:      25  
Línea 111: Línea 118:
         max:          9999999999.99
         max:          9999999999.99
         max_error:    El valor debe contener maximo 9999999999.99
         max_error:    El valor debe contener maximo 9999999999.99
-
 
</pre>
</pre>
Línea 117: Línea 123:
En este ejemplo, se encuentran algunos de los Estándares de Validación(sfNumberValidator y sfStringValidator) de symfony. Los demas se encuentra en capitulo 10 y el codigo de lo que hace en cada uno de ellos, se encuentra en la siguiente dirección C:\AppServ\php5\PEAR\symfony\validator.
En este ejemplo, se encuentran algunos de los Estándares de Validación(sfNumberValidator y sfStringValidator) de symfony. Los demas se encuentra en capitulo 10 y el codigo de lo que hace en cada uno de ellos, se encuentra en la siguiente dirección C:\AppServ\php5\PEAR\symfony\validator.
-
Nota: Para agregar otras validaciones del Negocio crear una funcion ValidateEdit(Modulo Generados con propel-init-admin) en el Actions.class.php está se ejecutara al mismo tiempo que las otras(al Guardar).Revisar capitulo 6 Validation and Error-Handling Methods
+
Nota: Para agregar otras validaciones del Negocio crear una funcion ValidateEdit(Modulo Generados con propel-init-admin) en el Actions.class.php está se ejecutara al mismo tiempo que las otras(al Guardar) y Modificar la función handleErrorEdit.Ejemplo de página Almregart.
<pre>
<pre>
-
Ejemplo.(Adaptarlo a lo que se quiere).
+
  private static $coderror=-1;
-
 
+
     
-
public function validateEdit()
+
  public function validateEdit()
-
  {
+
    {
-
    return ($this->getRequestParameter('id') > 0);
+
      if($this->getRequest()->getMethod() == sfRequest::POST)
-
   }
+
        {
 +
  $this->caregart = $this->getCaregartOrCreate();
 +
  $this->updateCaregartFromRequest();
 +
   
 +
  self::$coderror=Articulos::validarAlmregart($this->caregart);
 +
  if (self::$coderror<>-1)
 +
            {    
 +
      return false;
 +
    }else return true;
 +
}else return true;    
 +
    }
   
   
   public function handleErrorEdit()
   public function handleErrorEdit()
-
  {
+
    {
-
    $this->message = "Parametros Invalidos";
+
      $this->preExecute();
-
+
      $this->caregart = $this->getCaregartOrCreate();
-
    return sfView::SUCCESS;
+
      $this->updateCaregartFromRequest();
-
   }
+
      $this->labels = $this->getLabels();
-
+
    
-
  public function executeEdit()
+
      if(!$this->validateEdit())
-
  {
+
        {
-
     $this->message = "Los Parametros son correctos";
+
  $err = Herramientas::obtenerMensajeError(self::$coderror);      
-
  }
+
  $this->getRequest()->setError('caregart{codart}',$err);
 +
        }
 +
      return sfView::SUCCESS;
 +
    }
 +
 
</pre>
</pre>
-
--[[Usuario:Desireé Martínez]] 08:55 17 abr 2007 (VET)
+
 
 +
Las validaciones del Actions.class.php ultilizan un manejador de errores que se encuentra creado en la carpeta '''config''' , el cual se llama errores.yml, el cual contiene los códigos de los errores.
 +
<pre>
 +
1:
 +
  cod: 1
 +
  msj: Nivel Anterior No Existe
 +
2:
 +
  cod: 2
 +
  msj: El Codigo no puede estar en Blanco ó No puede Contener menos de 4 Carácteres
 +
</pre>
 +
 
 +
Estos errores se ejecutan cuando la función a la cual se le asigna $coderror devuelve códigos de errores  '''self::$coderror=Articulos::validarAlmregart($this->caregart);''', esta linea de código se encuentra en la funcion validateEdit(). Si la función validateEdit() retorna false se ejecuta la función handleErrorEdit() enviando el error a la vista.
 +
 
 +
--[[Usuario:Desireé Martínez]] 16:08 26 abr 2007 (VET)

Última versión de 20:15 26 abr 2007

Para realizar las validaciones a una forma debemos: En caso de módulos generados por el propel-init-admin: Crear una carpeta llamada validate y dentro de ella crear un archivo llamado edit.yml y para otro caso módulos generados con el init-module la carpeta validate ya viene por defecto solo debemos crear el archivo .yml debe llamarse a la accion que se va a ejecutar ejemplo edit.

Muestra.JPG


El archivo edit.yml contiene lo siguiente: methods se declara el metodo post con los campos que se van a validar al momento de guardar. names se coloca cada uno de los campos con sus mensajes(si tienen y si son requeridos o no), y llamamos el validators respectivo al campo. Y al final creamos los validators segun las validaciones que tenga que hacersele a los campos.

methods:
  post:
   - "caregart{codart}"      
   - "caregart{desart}"
   - "caregart{ramart}"
   - "caregart{unimed}"
   - "caregart{unialt}"
   - "caregart{relart}"
   - "caregart{exitot}"   
   - "caregart{cosult}"
   - "caregart{cospro}"
   - "caregart{invini}"
   
names: 
  caregart{codart}:
    required:  Yes
    required_msg: El Código del Articulo no puedo estar en Blanco
    validators: MyStringValidator6        

  caregart{desart}:
    required:  Yes
    required_msg: El Descripción no puedo estar en Blanco        
    validators: MyStringValidator
    
  caregart{ramart}:
    required:  No
    validators: MyString2Validator
  
  caregart{unimed}:
    required:  No
    validators: MyString3Validator
    
  caregart{unialt}:
    required:  No
    validators: MyString4Validator
    
  caregart{relart}:
    required:  No
    validators: MyString5Validator
    
  caregart{exitot}:
    required:  No
    validators: MyNumberValidator
    
  caregart{cosult}:
    required:  No
    validators: MyNumberValidator
    
  caregart{cospro}:
    required:  No
    validators: MyNumberValidator
    
  caregart{invini}:
    required:  No
    validators: MyNumberValidator
    
MyStringValidator:
    class: sfStringValidator
    param:
        min:       2
        min_error: La Descripción no puede tener menos de 2 caracteres
        max:       250
        max_error: La Descripción no puede pasar mas de 250 caracteres

MyStringValidator6:
    class: sfStringValidator
    param:
        min:       1
        min_error: La Descripción no puede tener menos de 2 caracteres        
        
MyString2Validator:
    class: sfStringValidator
    param:
        min:       2
        min_error: El Ramo del Articulo no puede tener menos de 2 caracteres
        max:       
        max_error: El Estatus no puede pasar mas de 6 caracteres
        
MyString3Validator:
    class: sfStringValidator
    param:
        min:       0
        min_error: La Unidad de Medida no puede tener menos de 2 caracteres
        max:       
        max_error: La Unidad de Medida no puede pasar mas de 15 caracteres

MyString4Validator:
    class: sfStringValidator
    param:
        min:       0
        min_error: La Unidad Alternativa no puede tener menos de 2 caracteres
        max:       15
        max_error: La Unidad Alternativa no puede pasar mas de 15 caracteres

MyString5Validator:
    class: sfStringValidator
    param:
        min:       0
        min_error: La Relación no puede tener menos de 2 caracteres
        max:       25 
        max_error: La Relación no puede pasar mas de 25 caracteres
                
MyNumberValidator:
    class: sfNumberValidator
    param:
        type:         float
        type_error:   Por favor, Introduzca Números Decimales               
        nan_error:    Por Favor, introduzca un Número Decimal
        min:          0000000000.00
        min_error:    El valor tiene que ser mayor que cero
        max:          9999999999.99
        max_error:    El valor debe contener maximo 9999999999.99

En este ejemplo, se encuentran algunos de los Estándares de Validación(sfNumberValidator y sfStringValidator) de symfony. Los demas se encuentra en capitulo 10 y el codigo de lo que hace en cada uno de ellos, se encuentra en la siguiente dirección C:\AppServ\php5\PEAR\symfony\validator.

Nota: Para agregar otras validaciones del Negocio crear una funcion ValidateEdit(Modulo Generados con propel-init-admin) en el Actions.class.php está se ejecutara al mismo tiempo que las otras(al Guardar) y Modificar la función handleErrorEdit.Ejemplo de página Almregart.

  private static $coderror=-1; 
       	
  public function validateEdit()
    {  	 
      if($this->getRequest()->getMethod() == sfRequest::POST)
        { 
	  $this->caregart = $this->getCaregartOrCreate();
	  $this->updateCaregartFromRequest();
	    	
	  self::$coderror=Articulos::validarAlmregart($this->caregart);
	  if (self::$coderror<>-1)
            {	    		 	
	      return false;
	    }else return true;
	 }else return true;   
    }
 
  public function handleErrorEdit()
    {
      $this->preExecute();
      $this->caregart = $this->getCaregartOrCreate();
      $this->updateCaregartFromRequest();
      $this->labels = $this->getLabels();
  
      if(!$this->validateEdit())
        {
	  $err = Herramientas::obtenerMensajeError(self::$coderror);	    
	  $this->getRequest()->setError('caregart{codart}',$err);	
        }
       return sfView::SUCCESS;	
     } 
  

Las validaciones del Actions.class.php ultilizan un manejador de errores que se encuentra creado en la carpeta config , el cual se llama errores.yml, el cual contiene los códigos de los errores.

1:
  cod: 1
  msj: Nivel Anterior No Existe
2:
  cod: 2
  msj: El Codigo no puede estar en Blanco ó No puede Contener menos de 4 Carácteres

Estos errores se ejecutan cuando la función a la cual se le asigna $coderror devuelve códigos de errores self::$coderror=Articulos::validarAlmregart($this->caregart);, esta linea de código se encuentra en la funcion validateEdit(). Si la función validateEdit() retorna false se ejecuta la función handleErrorEdit() enviando el error a la vista.

--Usuario:Desireé Martínez 16:08 26 abr 2007 (VET)

Herramientas personales
Espacios de nombres
Variantes
Acciones
Navegación
Herramientas