示例#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();
     			}
     */
 }
示例#2
0
 public function actionclonarguia()
 {
     $model = new VwDespachogeneral();
     //$model->setscenario("agregaritemsdespacho");
     //$this->performAjaxValidation1($model);
     if (isset($_POST['VwDespachogeneral'])) {
         //$idvale=Vwdes::model()->find("numero=:xnumero", array(":xnumero"=>$_POST['Solpe']['numero']));
         $transaccion = $model->dbConnection->beginTransaction();
         $model->hidvale = $_POST['VwDespachogeneral']['hidvale'];
         $this->jaladespachototal($model->hidvale, $id);
         //echo $_POST['VwDespachogeneral']['hidvale'];
         //yii::app()->end();
         // $mensaje.="sdsd";
         if (!$this->huboerror()) {
             //si no hubo errores
             $transaccion->commit();
             if (!empty($_GET['asDialog'])) {
                 echo CHtml::script("window.parent.\$('#cru-dialogdetalle').dialog('close');\n\t\t\t\t\t\t\t\t\t\t\t\t\t                    window.parent.\$('#cru-detalle').attr('src','');\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twindow.parent.\$.fn.yiiGridView.update('detalle-grid');\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twindow.parent.\$.fn.yiiGridView.update('resumen-grid');\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t");
                 Yii::app()->end();
             }
         } else {
             $transaccion->rollback();
             MiFactoria::Mensaje('error', "No se pudo grabar el documento, hay  errores ");
             $this->layout = '//layouts/iframe';
             $this->render('_form_despacho', array('model' => $model));
             // $model->refresh();
             //$this->render('update',array('model'=>$model);
             yii::app()->end();
             //$model->refresh();
         }
     }
     if (!empty($_GET['asDialog'])) {
         $this->layout = '//layouts/iframe';
     }
     $this->render('_form_despacho', array('model' => $model));
 }
示例#3
0
 public function InsertaAlkardexTraslado($cantidad)
 {
     if ($this->VerificaCantTrasladoDestino($cantidad)) {
         MiFactoria::InsertaAlkardexTraslado($this->id, $cantidad);
     } else {
         MiFactoria::Mensaje('error', __CLASS__ . '   ' . __FUNCTION__ . ' HUBO UN PROBLEMA EN LA VERIFICAION DE LAS CANTIDADES');
         return null;
     }
 }
示例#4
0
 public function actualiza_stock($codmov, $cant, $punitnuevo = null)
 {
     $retorno = false;
     // echo "salio ";
     if ($cant > 0) {
         $modelomov = Almacenmovimientos::model()->findByPk($codmov);
         $signo = $modelomov->signo;
         $campo = $modelomov->campoafectadoinv;
         $campodestino = $modelomov->campodestino;
         /*echo " signo ....: ". $signo."<br>";
         	         echo " campo....: ". $campo."<br>";
         	 echo " cant..: ". $cant."<br>";
         	 echo " campodestino..: ". $campodestino."<br>";
                 yii::app()->end();*/
         if ($modelomov->actualizaprecio == '1') {
             // MiFactoria::Mensaje('notice',__CLASS__.'=>'.__FUNCTION__.' Material '.$this->codart.' Este movimiento actualiza precio de inventario    '.$cant.'  - '.$punitnuevo);
             $this->actualizaprecio($cant, $punitnuevo);
         }
         if ($signo < 0) {
             if ($this->verificaconsistencia_stock($campo, $cant)) {
                 // MiFactoria::Mensaje('notice',__CLASS__.'=>'.__FUNCTION__.' Material '.$this->codart.' Se ha actualizado el  '.$this->getAttributelabel($campo).'  AGREGADO :'.$signo*$cant);
                 //echo "antes  habia :  ".$campo."  --   ". $this->{$campo}."<br>";
                 $this->{$campo} += $signo * $cant;
                 // echo"antes  habia :  ".$campo."  --   ". $this->{$campo}."<br>";
                 $retorno = true;
             } else {
                 $retorno = false;
                 echo " verifica osdnsitencioa de sotclk dio  falso <br>  ";
             }
         } elseif ($signo == 0) {
             //// Si es un movimiento entre stocks , no entra ni sale nada
             if ($this->verificaconsistencia_stock($campo, $cant)) {
                 $this->{$campo} -= $cant;
                 $this->{$campodestino} += $cant;
                 //MiFactoria::Mensaje('notice',__CLASS__.'=>'.__FUNCTION__.' Material '.$this->codart.' Se ha MOVIDO  '.$cant.'  de  '.$this->getAttributelabel($campo).'  Al :'.$this->getAttributelabel($campodestino));
                 $retorno = true;
             } else {
                 $retorno = false;
                 echo " verifica osdnsitencioa de sotclk dio  falso <br>  ";
             }
         } else {
             /// Si es un ingreso
             $this->{$campo} += $cant;
             //MiFactoria::Mensaje('notice',__CLASS__.'=>'.__FUNCTION__.' Material '.$this->codart.' Se ha INGRESADO  '.$cant.'  A  '.$this->getAttributelabel($campo).'  ');
             $retorno = true;
         }
     } else {
         //$this->insertamensaje(InventarioUtil::FLAG_ERROR,$this->id." :La cantidad no es positiva, debe de procesarse");
         MiFactoria::Mensaje('error', __CLASS__ . '=>' . __FUNCTION__ . ' Material ' . $this->codart . ' La cantidad no es postiva ');
         $retorno = false;
         // echo " el signo es negativo no jodas ";
     }
     /*print_r($this->attributes);
     	 yii::app()->end();*/
     if ($retorno) {
         $this->setScenario(self::ESCENARIO_ACTUALIZARSTOCK);
         if (!$this->save()) {
             MiFactoria::Mensaje('error', __CLASS__ . '=>' . __FUNCTION__ . ' Material ' . $this->codart . ' Hubo un problema al grabar el registro de inventario ');
             $retorno = false;
             echo " fallo al grabar <br>";
         } else {
             $retorno = true;
         }
     } else {
         //  echo "no hay consistencia para actualkziar invnetario";
     }
     return $retorno;
 }