Esempio n. 1
0
 public function insert()
 {
     $respuesta = Guia::agregar(Input::all());
     if ($respuesta['error'] == true) {
         return Redirect::to('guia/add')->with('mensaje', $respuesta['mensaje'])->withInput();
     } else {
         return Redirect::to('guias')->with('mensaje', $respuesta['mensaje']);
     }
 }
Esempio n. 2
0
 public function checkplaca($attribute, $params)
 {
     //Primero debemos verificar que el codigo SAP y el codigo de AF son los correctos
     // $codigosap=$this->c_codsap;
     $codigoaf = $this->c_codactivo;
     if (!($codigoaf === null)) {
         //if ( !is_null($codigoaf)) {
         $vali = Inventario::model()->find('codigoaf=:codito', array(':codito' => $codigoaf));
         //if(!(trim($codigoaf)==trim(is_null($vali)?'':$vali->codigoaf)) )
         //{
         if ($vali === null) {
             //$this->adderror('c_codactivo','El codigo de activo no Existe');
         } else {
             $milugar = $vali->codlugar;
             //Si esta repetido en otro item de la guia o la NE
             $registros = Detgui::model()->findAll("c_codactivo=:micodigoaf and n_hguia=:valorcabeza and n_detgui <> :idregistro", array(":valorcabeza" => $this->n_hguia, ":idregistro" => $this->n_detgui, ":micodigoaf" => $codigoaf));
             if (count($registros) > 0) {
                 $this->adderror('c_codactivo', 'Este activo ya esta registrado en este documento');
             }
             //Si este activo esta comprometido con otro transporte  ROCOTO==1, en otro documento
             //si es una guia de remision , elactivo  en rocoto==1 y ademas el iddocu del inventario es diferente al iddocu actual
             $modelocab = Guia::model()->find('n_guia=:myid', array(':myid' => $this->n_hguia));
             if ($vali->rocoto == '1' and $this->n_hguia != $vali->iddocu and $modelocab->c_salida == '1') {
                 $this->adderror('c_codactivo', 'Este activo esta en proceso de transporte con el documento ' . $vali->numerodocumento);
             }
         }
         ///si permite restricciones antes de mover los activos	, validar desde donde se quiere mover , no permitira
         /// mover un activo desde un lugar donde no se encuentre actualmente
         if (Yii::app()->params['restriccionguia'] == '1') {
             //si hay restricciones validar...
             //$this->adderror('c_codactivo','este es el codigo del lugar :'.Inventario::model()->find('codigoaf=:codito',array(':codito'=>$codigoaf))->codlugar);
             // $direccion=Guia::model()->find("n_guia=:miguia", array(":miguia"=>$this->n_hguia))->n_dirsoc; ///sacando el registro de la guia
             //$modlugar=Lugares::model()->find("codlugar=:milugar and n_direc=:midireccion ", array(":milugar"=>$milugar,":midireccion"=>$direccion));
             // $this->adderror('c_codactivo','este es el codigo del lugar :');
             //  if(!($modeldireccion===null)) {
             //$direccion=$modeldireccion->n_dirsoc; ///sacamos el punto de partida
             //     } else {
             // $this->adderror('c_codactivo','No se ha encontrado la guia ');
             // }
             //verificar que este activo se esta sacando de algun lugar del punto de partida*/
             //  if ($modelolugar===null) {
             //$this->adderror('c_codactivo','Este activo no se encuentra en el punto de partida');
             //  } else {
             //$this->adderror('c_codactivo','pasoi');
             //    }
         }
     }
 }
Esempio n. 3
0
		<?php 
$form = $this->beginWidget('CActiveForm', array('id' => 'detgui-form', 'enableClientValidation' => true, 'enableAjaxValidation' => false));
?>




	<?php 
echo $form->errorSummary($model);
?>

	<div class="row">
		
		<?php 
echo $model->isNewRecord ? $form->hiddenField($model, 'n_hguia', array('value' => Guia::model()->findbypk($idcabeza)->n_guia)) : '';
?>
		
	</div>
	


	<div class="row">
				<?php 
echo $form->labelEx($model, 'modo');
?>

					<?php 
//$opciones=array();
if ($esembaracable = $model->guia->direccionesllegada->esembarque == '1') {
    $opciones = array('1' => 'Retorno', '2' => 'Embarque', '3' => 'Definitivo');
Esempio n. 4
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);
                         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;
             foreach ($filas as $row) {
                 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;
 }