ayuda con Beforesave

Hola Comunidad

Espero que alguien pueda perder un poco de tiempo con esta tonteria. Resulta que tengo dos campos de fecha en modelo FECHA ALTA y FECHA BAJA.

estoy usando CjuidatePicker para el form. y en el modelo uso beforesave y afterfind para guardar y generar el formato correcto de la fecha.

lo que prentendo hacer es que cuando el campo de FECHA BAJA no se rellene o se deje en blanco se guarde en la tabla el valor NULL. Con la parte de FECHA ALTA funciona sin problemas. al dejar el campo de FECHA BAJA en blanco o sin rellenar me guarda la fecha con valor 0000-00-00.

en la parte de rules tengo declarado




 array('FECHA_ALTA,FECHA_BAJA', 'default','setOnEmpty' => true,'value' => null),

 array('FECHA_ALTA, FECHA_BAJA', 'type', 'type'=>'date', 'dateFormat'=>'dd-MM-yyyy'),

 array('FECHA_ALTA, FECHA_BAJA', 'safe'),




La parte del modelo.




 protected function beforeSave()

        {

        if ($this->FECHA_ALTA==''){

            $this->FECHA_ALTA=NULL;

        }

        elseif ($this->FECHA_ALTA!=''){      

                     $this->FECHA_ALTA = date('Y-m-d', CDateTimeParser::parse($this->FECHA_ALTA, 'dd-MM-yyyy'));

        }             

        elseif ($this->FECHA_BAJA==''){

            $sthis->FECHA_BAJA=NULL;

        }

        else 

            $this->FECHA_BAJA = date('Y-m-d', CDateTimeParser::parse($this->FECHA_BAJA, 'dd-MM-yyyy'));

         

        return parent::beforeSave();

        }

                

        protected function afterFind()

        {

        $this->FECHA_ALTA = Yii::app()->dateFormatter->format('dd-MM-yyyy', $this->FECHA_ALTA);

        $this->FECHA_BAJA = Yii::app()->dateFormatter->format('dd-MM-yyyy', $this->FECHA_BAJA);

        

        return parent::afterFind();

        } 




En el FORM para ambos campos con el CjuiDatePicker




<?php echo $form->labelEx($model,'FECHA_BAJA'); ?>

<?php 

    $this->widget('zii.widgets.jui.CJuiDatePicker',array(

      'name'=>'FECHA BAJA',

      'language'=>'es',

      'attribute'=>'FECHA_BAJA',

      'model'=>$model,

         // additional javascript options for the date picker plugin

      'options'=>array(

                  'showAnim'=>'fold',

                  'dateFormat'=>'dd-mm-yy',

                  'changeMonth'=>'true',

                  'changeYear'=>'true',

                  'yearRange'=>'1985 :9999',

                  'minDate' => '01-07-1985',      

                  'maxDate' => '31-12-9999'

                   ),

                  'htmlOptions'=>array('style'=>'height:20px;','class'=>'date' ),

                     ));

                    ?>    

<?php echo $form->error($model,'FECHA_BAJA'); ?>



La comprobación para FECHA_BAJA deberías sacarla a otro if, sino, esa parte del código nunca se va a ejecutar:

SOLUCIONADO!!

Muchas gracias sucotronic por la contestación y tu tiempo.

funciona de forma correcta!!

De nada ;)