public function actionsolicitar($id) { $model = $this->loadModel($id); $modelosolpe = Solpe::model()->find("hidref=" . $id . " AND codocuref='" . $this->documento . "' AND estado <>'30'"); if (is_null($modelosolpe)) { MiFactoria::CreaSolpeAutomatica($this->documento, $id); } else { MiFactoria::Mensaje('notice', 'Este documento ya cuenta con la solicitud ' . $model->peticion_solpe->numero); } $this->render('update', array('model' => $model)); /* $model=Peticion::model()->findByPk($id); $mensa=""; $registroshijos=MiFactoria::Devuelvepeticioneshijos($id); $transaccion=$model->dbConnection->beginTransaction(); foreach ($registroshijos as $row) { ///solo los hijops con estado adecaudo apra reservar if($row->numeroreservas == 0){ $row->setScenario('Atencionreserva'); $modeloreserva=New Alreserva; $modeloreserva->hidpeticion=$row->id; $modeloreserva->estadoreserva='10'; $modeloreserva->fechares=date("Y-m-d H:i:s"); $modeloreserva->usuario=Yii::app()->user->Name; $modeloreserva->codocu='310'; $modeloreserva1=New Alreserva; $modeloreserva1->hidesolpe=$row->id; $modeloreserva1->estadoreserva='10'; $modeloreserva1->fechares=date("Y-m-d H:i:s"); $modeloreserva1->usuario=Yii::app()->user->Name; $modeloreserva1->codocu='800'; $factorconversion=Alconversiones::convierte($row->codart,$row->um); //$cantidadefectiva=($row->um <>$row->maestro->um)?$row->cant*$factorconversion:$row->cant; if($row->cant*$factorconversion <= $row->dpeticion_alinventario->cantlibre ){ ///si hay stock sufieciente no hya probelma $modeloreserva->cant= $row->cant; $modeloreserva1->cant=0; // $mensa.=" Stock mayor al que se pide ok! Se reservo en el item ".$row->item." ".$modeloreserva->cant." <br> "; } else { $modeloreserva->cant= $row->dpeticion_alinventario->cantlibre/$factorconversion; //solo reservamos lo qu esta en stock $modeloreserva1->cant= $row->cant-$row->dpeticion_alinventario->cantlibre/$factorconversion; ///la diferencia la solicitiamos // $mensa.=" Stock menor al que se pide Se reservo una parte en el item ".$row->item." ".$modeloreserva->cant." <br> "; // $mensa.=" Se solicita una parte en el item ".$row->item." ".$modeloreserva1->cant." <br> "; } ////Luego actualizamoes el inventario $inventario=$this->devuelveinventario($row->codcen,$row->codal,$row->codart); // echo "<br>"; echo "<br>"; echo "<br>"; echo "<br>"; echo "<br>"; // echo $inventario->codcen." ".$inventario->codalm." ".$inventario->codart."<br>"; $inventario->cantres+=$modeloreserva->cant*$factorconversion; $inventario->cantlibre-=$modeloreserva->cant*$factorconversion; $inventario->setScenario('modificacantidad'); $row->codestado='60'; if($modeloreserva->cant > 0) if(!$modeloreserva->save()) $mensa.=" No se pudo generar el registro de reserva para el item ".$row->item." -- ".$row->txtmaterial." <br>"; if($modeloreserva1->cant > 0) if(!$modeloreserva1->save()) $mensa.=" No se pudo generar el registro de reserva para el item ".$row->item." -- ".$row->txtmaterial." <br>"; if(!$row->save()) $mensa.=" No se pudo actualizar el estado del detalle del item ".$row->item." -- ".$row->txtmaterial." <br>"; if(!$inventario->save()) $mensa.=" No se pudo actualizar el registro de inventario del item ".$row->item." -- ".$row->txtmaterial." <br>"; } }//fin del For if(strlen($mensa)==0) { //Si s epudo actualziar $transaccion->commit(); Mifactoria::Mensaje('success', "Se hizo la reserva automatica del Documento ".$mensa); $this->render('update',array('model'=>$model)); yii::app()->end(); } else { $transaccion->rollback(); Mifactoria::Mensaje('error', "No se pudo reservar automaticamente el documento, hay errores :".$mensa); $model->refresh(); $this->render('update',array('model'=>$model)); //$model->refresh(); } */ }