public function checkcantidaddescripcion($attribute, $params) { //si se puede mover o el innteot de trsnportarlo es licito $inve = Inventario::recordByPlate($this->c_codactivo); $descripcion = is_null($inve) ? '' : $inve->descripcion; if (!strtolower(trim($this->c_descri)) == strtolower(trim($this->c_descri))) { $this->adderror('c_descri', 'La descripcion del activo y del documenrto no coinciden'); } }
public function canMove($codigoaf) { if (Yii::app()->params['trancheck'] == '1') { $isthere = false; //verificando el lugar del AF $recInventario = Inventario::recordByPlate($codigoaf); if (!is_null($recInventario)) { $placeofasset = $recInventario->codlugar; $places = $this->direccionespartida->lugares; foreach ($places as $fila) { if ($fila->codlugar == $placeofasset) { $isthere = true; break; } } return $isthere; } else { return false; } } else { return true; } }
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; }