예제 #1
0
 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();
     			}
     */
 }