Пример #1
0
 public static function insertadespacho($id, $punto, $respon)
 {
     $despachito = Despacho::model()->find("hidkardex=" . $id . " and vigente='1' ");
     if (is_null($despachito)) {
         $modelo = new Despacho();
         $modelo->hidkardex = $id;
         $modelo->hidpunto = $punto;
         $modelo->fechacreac = date("Y-m-d H:i:s");
         $modelo->responsable = $respon;
         $modelo->iduser = Yii::app()->user->id;
         $modelo->vigente = '1';
         $modelo->save();
     }
 }
Пример #2
0
 /**
  * Returns the data model based on the primary key given in the GET variable.
  * If the data model is not found, an HTTP exception will be raised.
  * @param integer $id the ID of the model to be loaded
  * @return Despacho the loaded model
  * @throws CHttpException
  */
 public function loadModel($id)
 {
     $model = Despacho::model()->findByPk($id);
     if ($model === null) {
         throw new CHttpException(404, 'The requested page does not exist.');
     }
     return $model;
 }
Пример #3
0
 private function proceso($idevento, $id)
 {
     $mensaje = "";
     switch ($idevento) {
         case 2:
             ///APROBAR GUIA
             $filas = Guia::model()->findByPk($id)->detalle;
             foreach ($filas as $row) {
                 if (!is_null($row->c_codactivo)) {
                     $recInventario = Inventario::recordByPlate(trim($row->c_codactivo));
                     if (!is_null($recInventario)) {
                         /*$recInventario->setScenario('cambiaestado');
                           $recInventario->rocoto='1';
                            $recInventario->save();*/
                         $guiaocupada = VwGuia::hayactivoentransporte($row->c_codactivo, $row->n_hguia);
                         if (!is_null($guiaocupada)) {
                             $mensaje .= " El activo " . $row->c_codactivo . " ya esta registrado en la guia " . $guiaocupada;
                         }
                     }
                     unset($recInventario);
                 }
             }
             break;
         case 64:
             ///revertir autorizacion
             /* $filas=Guia::model()->findByPk($id)->detalle;
             		   foreach($filas as $row ) {
             			   if(!is_null($row->c_codactivo)){
             				   $recInventario=Inventario::recordByPlate(trim($row->c_codactivo));
             				   if(!is_null( $recInventario))
             				   {
             					   $recInventario->setScenario('cambiaestado');
             					   $recInventario->rocoto='0';
             					   $recInventario->save();
             				   }
             				   unset($recInventario);
             			   }
             
             
             		   }*/
             break;
         case 36:
             ///autorizar transporte
             $filas = Guia::model()->findByPk($id)->detalle;
             foreach ($filas as $row) {
                 if (!is_null($row->c_codactivo)) {
                     $recInventario = Inventario::recordByPlate(trim($row->c_codactivo));
                     if (!is_null($recInventario)) {
                         $recInventario->setScenario('cambiaestado');
                         $recInventario->rocoto = '1';
                         $recInventario->save();
                     }
                     unset($recInventario);
                 }
             }
             break;
         case 68:
             ///deshacer confirmacion de transporte
             $filas = Guia::model()->findByPk($id)->detalle;
             foreach ($filas as $row) {
                 if (!is_null($row->c_codactivo)) {
                     $recInventario = Inventario::recordByPlate(trim($row->c_codactivo));
                     if (!is_null($recInventario)) {
                         $recInventario->setScenario('cambiaestado');
                         $recInventario->rocoto = '0';
                         $recInventario->save();
                     }
                     unset($recInventario);
                 }
             }
             break;
         case 37:
             ///Confirmar entrega  20 -> 80
             $filaguia = Guia::model()->findByPk($id);
             $filas = $filaguia->detalle;
             // var_dump( $filas);yii::app()->end();
             foreach ($filas as $row) {
                 ///actualizar despachos
                 if ($row->hidespacho > 0) {
                     $registroh = Despacho::model()->findByPk($row->hidespacho);
                     $registroh->vigente = '0';
                     $registroh->save();
                     unset($registroh);
                 }
                 if (!is_null($row->c_codactivo)) {
                     $recInventario = Inventario::recordByPlate(trim($row->c_codactivo));
                     if (!is_null($recInventario)) {
                         $recInventario->loguea($row->c_codep, $filaguia->codocu, $filaguia->id, $filaguia->c_numgui);
                         $recInventario->setScenario('BATCH_UPD_INVENTARIO_FISICO');
                         $recInventario->fecha = $filaguia->d_fectra;
                         $recInventario->numerodocumento = $filaguia->c_numgui;
                         $recInventario->rocoto = '0';
                         $recInventario->iddocu = $filaguia->id;
                         $recInventario->coddocu = $filaguia->codocu;
                         /***************************************************
                          *    AQUI LA CLAVE PARA ACTUALIZACION AUTOMATICA DEL LUGAR
                          *****************************************************/
                         $filaslugares = $filaguia->direccionesllegada->lugares;
                         foreach ($filaslugares as $filalugar) {
                             ///aqui debemos  de tener en cuenta el modo de envio
                             if ($row->modo == '2') {
                                 ///EMBARQUE
                                 $recInventario->codlugar = CODIGO_LUGAR_A_BORDO;
                             } else {
                                 ///RETIORNO O DEFINITIVO
                                 $recInventario->codlugar = $filalugar->codlugar;
                             }
                             break;
                             //SOLO AGARRA EL PRIMNER VALOR DE LUGARES
                         }
                         /****************************************************/
                         if (!$recInventario->save()) {
                             /*print_r($recInventario->geterrors());
                             		echo " el documento ".$recInventario->coddocu. "  el docu de la guia ".$filaguia->codocu;
                             		yii::app()->end();*/
                             $mensaje = "No se pudo grabar el inventario ";
                         }
                     }
                     unset($recInventario);
                 }
             }
             break;
         case 69:
             ///REVERTIR entrega  80 -> 20
             $filaguia = Guia::model()->findByPk($id);
             //se podra rever tor siempre que nohay pASADO MUCHO TIEMPO Y ADEMAS EL ACTIVO ESTE EN ESE LUGAR
             /// 1) SI ESTAMOS A TIEMPO , SEGUN PARAMETRO DE TIEMPO CONNFIGURABLE
             $diftiempo = strtotime('now') - strtotime($filaguia->d_fectra);
             if ($diftiempo <= yii::app()->params['guia_tmp_rever_entrega']) {
                 $filas = $filaguia->detalle;
                 foreach ($filas as $row) {
                     if (!is_null($row->c_codactivo)) {
                         $recInventario = Inventario::recordByPlate(trim($row->c_codactivo));
                         if (!is_null($recInventario)) {
                             $criterio = new CDbCriteria();
                             $criterio->addCondition(" hidinventario=:vidinventario");
                             $criterio->addCondition(" iddocumov=:viddocu");
                             $criterio->addCondition(" codocumov=:vcodocu");
                             $criterio->params = array(":vidinventario" => $recInventario->idinventario, ":viddocu" => $filaguia->id, ":vcodocu" => $filaguia->codocu);
                             $modelog = Loginventario::model()->find($criterio);
                             if (!is_null($modelog)) {
                                 //$mensaje.=" Encontro el log del activo ".$recInventario->idinventario."<br>";
                             } else {
                                 // $mensaje.=" NO Encontro el log del activo ".$recInventario->idinventario."<br>";
                             }
                             /*  echo $criterio->condition;
                             				  echo "<br>";
                             				 echo  $recInventario->idinventario."<br>";
                             				 echo  $filaguia->id."<br>";
                             				echo  $filaguia->codocu."<br>";*/
                             //2) si el activo permanece EN ALGUNLUGAR DE LALDIRECCION DE LLEGADA
                             $lugaresvalidos = array();
                             $filalugaresvalidos = $filaguia->direccionesllegada->lugares;
                             /* var_dump($filalugaresvalidos);
                             		 yii::app()->end();*/
                             if (count($filalugaresvalidos) > 0) {
                                 foreach ($filalugaresvalidos as $filadirelle) {
                                     $lugaresvalidos[] = $filadirelle->codlugar;
                                 }
                             }
                             $seracierto = in_array($recInventario->codlugar, $lugaresvalidos) and $recInventario->rocoto == '0';
                             if ($seracierto) {
                                 //$mensaje.="  SI esta en lugares  ...procesando la recuparcion del log  ".$recInventario->idinventario."<br>";
                                 //$recInventario->loguea();
                                 $recInventario->setScenario('BATCH_UPD_INVENTARIO_FISICO');
                                 $recInventario->fecha = $modelog->fecha;
                                 $recInventario->numerodocumento = $modelog->numerodocumento;
                                 $recInventario->rocoto = '1';
                                 $recInventario->codep = $modelog->codep;
                                 $recInventario->codepanterior = $modelog->codepanterior;
                                 $recInventario->iddocu = $modelog->iddocu;
                                 $recInventario->coddocu = $modelog->coddocu;
                                 $recInventario->codlugar = $modelog->codlugar;
                                 $recInventario->save();
                                 $modelog->delete();
                             } else {
                                 $mensaje .= " El activo  " . $recInventario->idinventario . "  ya ha cambiado de lugar " . $recInventario->codlugar . " /  " . $modelog->codlugar . "  o esta en trasnporte<br>";
                             }
                         }
                     }
                 }
             } else {
                 $mensaje .= " No se puede revertir la entrega, ha pasado mas tiempo de la tolerancia <br>";
             }
             break;
     }
     return $mensaje;
 }