Esempio n. 1
0
 public function actionSolpeautomatica($id)
 {
     /***primero creamos la varibale sesion si no esta creadqa     */
     //veriifcamos UN CHISTOSO NO PASE CUALQUIER  ID POR LA UR
     $id = (int) MiFactoria::cleanInput($id);
     $mensaje = "";
     $alreserva = Alreserva::Model()->findByPk($id);
     if (!is_null($alreserva)) {
         if ($alreserva->estadoreserva == '10') {
             if (!isset(Yii::app()->session['idsolpe'])) {
                 //creando una solpe NUEVA
                 $solpe = new Solpe();
                 $solpe->escompra = '1';
                 $solpe->textocabecera = "Documento automático";
                 //$solpe->estado='01';
                 $solpe->save();
                 $solpe->refresh();
                 Yii::app()->session['idsolpe'] = $solpe->id;
                 ///para que agarre el estado '01'
                 $solpe->textocabecera = 'Item automatico.,,,,,';
                 $solpe->save();
                 /////
                 $identidad = $solpe->id;
             } else {
                 //sI YA XISTE LA SOLPE HAYA QUER VERIFICAR SU ESTADO
                 //SI ESTA CREADO AGREGAR, SI YA ESTA APROBADO O ANULADO, ES MEJOR CREAR OTRA
                 $solpe = Solpe::model()->findByPk(Yii::app()->session['idsolpe']);
                 if (!is_null($solpe)) {
                     // $solpe->textocabecera='Item automatico';
                     if (!($solpe->estado == '10')) {
                         //SI ESTA CREADO AGREGAR ITEMS A ESTA SOLPE, SI YA ESTA APROBADO O ANULADO, ES MEJOR CREAR UAN NUEVA SOLPE
                         $solpe2 = new Solpe('automatica');
                         //$solpe2->estado='01';
                         $solpe2->textocabecera = 'Item automaticosolpes';
                         if (!$solpe2->save()) {
                             $mensaje .= " ERROR : no se pude grabr la solpe 2 " . yii::app()->mensajes->getErroresItem($solpe2->geterrors()) . " <br>";
                         }
                         $solpe2->refresh();
                         //var_dump($solpe2->attributes);yii::app()->end();
                         $solpe3 = Solpe::model()->findByPk($solpe2->id);
                         $solpe3->setScenario('automatica');
                         $solpe3->escompra = '1';
                         if ($solpe3->save()) {
                             //echo "graba ";
                             unset(Yii::app()->session['idsolpe']);
                         }
                         Yii::app()->session['idsolpe'] = $solpe2->id;
                         $identidad = $solpe2->id;
                         //echo "NUEVA SOLPE ".$solpe2->numero." ----".$solpe2->id."  ";
                         //Yii::app()->end();
                     } else {
                         $identidad = $solpe->id;
                     }
                 } else {
                     /*ECHO "ERROR COMPARITO LA SOLPE " . Yii::app ()->session[ 'idsolpe' ] . "  NO EXISTE";
                     		Yii::app ()->end ();*/
                     $mensaje .= " ERROR : LA SOLPE " . Yii::app()->session['idsolpe'] . "  NO EXISTE <br>";
                 }
                 $alreserva->estadoreserva = '20';
                 $alreserva->save();
                 $detalle = Desolpe::Model()->findByPk($alreserva->hidesolpe);
                 $detallesolpe = new Desolpe();
                 $detallesolpe->setscenario('insert');
                 $detallesolpe->hidsolpe = $identidad;
                 ////IMPORTANTE , DEBE COGER LA SOLPE QUE NO ESTA APROBADA
                 $detallesolpe->tipimputacion = $detalle->tipimputacion;
                 $detallesolpe->centro = $detalle->centro;
                 $detallesolpe->codal = $detalle->codal;
                 $detallesolpe->txtmaterial = $detalle->txtmaterial;
                 $detallesolpe->textodetalle = $detalle->textodetalle;
                 // $detallesolpe->txtmaterial=$detalle->txtmaterial;
                 $detallesolpe->fechacrea = $detalle->fechacrea;
                 $detallesolpe->fechaent = $detalle->fechaent;
                 $detallesolpe->fechalib = $detalle->fechalib;
                 $detallesolpe->imputacion = $detalle->imputacion;
                 $detallesolpe->estadolib = $detalle->estadolib;
                 $detallesolpe->solicitanet = $detalle->solicitanet;
                 $detallesolpe->est = '10';
                 ///esto es clave , solo se pueden garegar detalles que se van a aa parobar
                 //es decir nos e puede insertar un detalle en una solpe APROBADA
                 $detallesolpe->um = $detalle->um;
                 $detallesolpe->tipsolpe = $detalle->tipsolpe;
                 $detallesolpe->cant = $alreserva->cant;
                 ///iMPORTANTE, AQUIE ES LA CANTOIDAD DE LA RESERVA
                 $detallesolpe->codart = $detalle->codart;
                 $detallesolpe->idreserva = $id;
                 $detallesolpe->save();
                 $mensaje .= "OK: Se genero la solicitud de compra " . $detallesolpe->desolpe_solpe->numero . "  item " . $detallesolpe->item . "  con exito <br>";
             }
         } else {
             // En caso de que la reserva tengia un status inadecuado
             $mensaje .= "La reserva " . $alreserva->id . "  no tiene el status adecuado " . $alreserva->estadoreserva . "<br>";
         }
     } else {
         $mensaje .= "El parametro pasado no corresponde a ningun  documento Reserva<br>";
     }
     echo $mensaje;
 }
Esempio n. 2
0
 public static function CreaSolpeAutomatica($codocu, $id)
 {
     $solpe = new Solpe();
     $solpe->textocabecera = "Documento automático";
     $solpe->hidref = $id;
     $solpe->codocuref = $codocu;
     $solpe->escompra = '0';
     if (!$solpe->save()) {
         print_r($solpe->getErrors());
         yii::app()->end();
     }
     $solpe->refresh();
     $identidad = $solpe->id;
     unset($solpe);
     $registrospeticiones = self::Devuelvepeticioneshijos($id);
     foreach ($registrospeticiones as $fila) {
         $registrodesolpe = new Desolpe();
         $registrodesolpe->setScenario('insert');
         $registrodesolpe->hidsolpe = $identidad;
         $registrodesolpe->cant = $fila->cant;
         $registrodesolpe->codart = $fila->codart;
         $registrodesolpe->um = $fila->um;
         $registrodesolpe->txtmaterial = $fila->descripcion;
         $registrodesolpe->imputacion = $fila->imputacion;
         $registrodesolpe->centro = $fila->codcen;
         $registrodesolpe->codal = $fila->codal;
         $registrodesolpe->item = $fila->item;
         $registrodesolpe->tipimputacion = 'V';
         ////debe de implemntarse la progrtamacion del plan de ventas
         ///temporalmente quieda con programacion plana
         $registrodesolpe->fechaent = date("Y-m-d");
         $registrodesolpe->tipsolpe = $fila->tipo;
         if (!$registrodesolpe->save()) {
             print_r($registrodesolpe->getErrors());
             yii::app()->end();
         }
         unset($registrodesolpe);
     }
     $nuevasolpe = Solpe::model()->findByPk($identidad);
     //$nuevasolpe->save();
     if (!$nuevasolpe->save()) {
         print_r($nuevasolpe->getErrors());
         yii::app()->end();
     }
 }