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(); } */ }
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)); }
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; } }
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; }