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']); } }
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'); // } } } }
<?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');
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; }