public function checkum($attribute, $params) { $modeloum = Alconversiones::model()->findAll("codart='" . $this->codart . "' and um2 ='" . $this->um . "'"); if (!$modeloum === null) { //si hay registros ok } else { //si no hay registros ver que se al unida de medida base sino error $maestro = Maestrocompo::model()->findByPk($this->codart); if ($maestro === null) { $this->adderror('codart', 'Este material no existe'); } else { if ($maestro->um != $this->um) { $this->adderror('um', 'Esta unidad de medida no esta ampliada para este material,amplie las vistas del material'); } } } }
<div class="row"> <?php echo $form->labelEx($model, 'cant'); ?> <?php echo CHtml::textField('fdfdfd4544', $model->cant . " ( " . $model->desolpe_um->desum . " )", array('size' => 16, 'maxlength' => 16, 'disabled' => $habilitado)); ?> </div> <div class="row"> <?php echo CHtml::label('Stock libre', '45'); ?> <?php ?> <?php echo CHtml::textField('cansst', $model->desolpe_alinventario->cantlibre / Alconversiones::model()->convierte($model->codart, $model->um) . " ( " . $model->desolpe_um->desum . " )", array('size' => 16, 'maxlength' => 16, 'disabled' => $habilitado)); ?> </div> </div> <div class="panelderecho"> <div class="row"> <?php echo CHtml::label('Reservar ', '4r5'); ?> <?php //echo $form->textField($model,'cantidad_reservada',array('value'=>min($model->cant,$model->desolpe_alinventario->cantlibre),'size'=>8,'maxlength'=>8)); ?> <?php echo $form->textField($model, 'cantidad_reservada', array('size' => 8, 'maxlength' => 8)); ?>
/** * Returns the data model based on the primary key given in the GET variable. * If the data model is not found, an HTTP exception will be raised. * @param integer $id the ID of the model to be loaded * @return Alconversiones the loaded model * @throws CHttpException */ public function loadModel($id) { $model = Alconversiones::model()->findByPk($id); if ($model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } return $model; }
public function checkum($attribute, $params) { if ((!empty($this->codart) or !is_null($this->codart)) and $this->tipsolpe == 'M') { $Modelomaterial = Maestrocompo::model()->findbyPk(TRIM($this->codart)); if ($Modelomaterial === null) { // $this->adderror('codart','No. Existe este material' ); } else { $unidad = trim($Modelomaterial->um); if ($unidad != $this->um) { //si no se encontro buscar en la tabla conversiones $matriz = Alconversiones::model()->findAll("um2='" . trim($this->um) . "' and codart='" . trim($this->codart) . "'"); if (count($matriz) == 0) { //$matriz2=Alconversiones::model()->findAll("um1='".trim($unidad)."'"); $this->adderror('um', 'No hay conversiones para esta Um'); } } else { // $this->adderror('um','Esta unidad no es aplicable '.$this->um.' - '.$unidad ); } } } else { } }
public function actualizacostes($model, $transaccion, $ceco = null) { //Public function actionpruebax() { $todook = true; $hijos = Alkardex::model()->findall("hidvale=:hid and codestado not in('98') ", array(":hid" => $model->id)); // $hijos=Alkardex::model()->findall("id=437"); for ($i = 0; $i < count($hijos); $i++) { $modelogastos = new CcGastos(); if (is_null($ceco)) { ///Rebuscamos la solpe if ($hijos[$i]['codmov'] == '70') { //Si es un reingreso debemos de buscar recursivamente en el Kardex $modelodetalle = Desolpe::model()->findByPk(Alkardex::model()->findByPk($hijos[$i]['idref'])->idref); } else { $modelodetalle = Desolpe::model()->findByPk($hijos[$i]['idref']); } $modelogastos->ceco = $modelodetalle->imputacion; } else { $modelogastos->ceco = $ceco; } //$modelodetalle=Desolpe::model()->findByPk(232); $modelogastos->fechacontable = $hijos[$i]['fecha']; //Los costos salen del inventario no del precio unitario del Kardex; (Punit+ Punitdif) $registroinventario = Alinventario::model()->findByPk(Alkardex::model()->findByPk($hijos[$i]['id'])->alkardex_alinventario->id); ///////////////haciendo el calculo estandar de signo y conversiones $signo = Almacenmovimientos::model()->findByPk($hijos[$i]['codmov'])->signo * -1; /// Como son costos , es el opuesto $conversion = Alconversiones::model()->convierte($hijos[$i]['codart'], $hijos[$i]['um']); //echo " la conversion ".$conversion." ".gettype($conversion)." \n"; //echo " material y um ".$hijos[$i]['codart']." ".$hijos[$i]['um']." \n"; //echo " el signo es ".Almacenmovimientos::model()->findByPk($hijos[$i]['codmov'])->signo." ".gettype(Almacenmovimientos::model()->findByPk($hijos[$i]['codmov'])->signo)." \n"; //$signo=Almacenmovimientos::model()->findByPk($movimiento)->signo*-1; /// Como son costos , es el opuesto $cantidadmovida = $signo * abs($conversion) * abs($hijos[$i]['cant']); ///////////ok/////////////////////////////////////// ////ahora calculando el precio unitario real, para esto actualizamos el Registro de Inventario, ///Esto es indiependiente si el material tiene control de precio S o V $registroinventario->Actualizar($hijos[$i]['codmov'], $hijos[$i]['cant'], $hijos[$i]['preciounit']); $modelogastos->monto = $cantidadmovida * ($registroinventario->punit + $registroinventario->punitdif); /// //echo " la conversion ".$conversion."\n"; //echo " la cantidad movida ".$cantidadmovida."\n"; //echo " precio unitario ".$registroinventario->punit."\n"; // echo "El monto ".$modelogastos->monto."\n"; //echo " la diferencia ".$registroinventario->punit." ".gettype($registroinventario->punit)." \n"; //echo " la diferencia ".$registroinventario->punitdif." ".gettype($registroinventario->punitdif)." \n"; //yii::app()->end(); $modelogastos->idref = $hijos[$i]['id']; //con el kardex lo amarramos $modelogastos->clasecolector = 'K'; //CENTRO DE COSTO $modelogastos->tipo = 'M'; //materialkes $modelogastos->codmoneda = Yii::app()->params['monedadef']; if (!$modelogastos->save()) { //$transaccion->rollback(); //throw new CHttpException(500,'No se pudo grabar los costos'); Yii::app()->user->setFlash('error', 'No se pudieron grabar los costes'); $todook = false; } } return $todook; }
public function checkcodigo($attribute, $params) { $modelomaterial = Maestrocompo::model()->find("codigo=:codigox", array(":codigox" => TRIM($this->codart))); if (is_null($modelomaterial)) { $this->adderror('codart', 'Este material no existe'); } else { $modelocabecera = Almacendocs::model()->findByPk($this->hidvale); $modinventario = Alinventario::model()->find("codart='" . trim($this->codart) . "' AND codalm='" . $modelocabecera->codalmacen . "' AND codcen='" . $modelocabecera->codcentro . "'"); if (is_null($modinventario)) { //if($this->alkardex_alinventario===null) { $this->adderror('codart', 'Este material tiene que ser ampliado al centro -: ' . $modelocabecera->codcentro . ' y almacen ' . $modelocabecera->codalmacen . ' '); } else { //veriicando la unidad de medida if ($this->um != $modelomaterial->um) { //si es diferente a la unidad de medida base //revisar las conversiones $matrizunidades = Alconversiones::model()->findAll("codart=:codigox and um2=:unitas ", array(":codigox" => TRIM($this->codart), ":unitas" => $this->um)); if (count($matrizunidades) == 0) { $this->adderror('um', 'No existe conversiones para esta unidad de medida en este material '); } } } } }
public function checkcanti($attribute, $params) { ///cone sta fiunciuon verificamos que la reserva sea consistente //primero debemos de verificar qu este item nbo este reservado if (!$this->est == '30') { $this->adderror('cantidad_reservada', 'El status de este item no permite reservar'); } //luego verifica rque las cantidades a ingrear sean consistentes if ($this->cantidad_compras + $this->cantidad_reservada != $this->cant) { $this->adderror('cantidad_reservada', 'La cantidad reservada y compras no coincide con la solicitada'); } //verifica que la cantidad a reservar no supere el stock de inventario //antes asegurarse que se esta hablando de la misma unidad de medida base, emn otro caso convertir if (!$this->um == Maestrocompo::model()->findByPk(trim($this->codart))->um) { $cantidad_reservada_convertida = $this->cant * Alconversiones::model()->convierte($this->codart, $this->um); } else { $cantidad_reservada_convertida = $this->cantidad_reservada; } $eninventario = $this->desolpe_alinventario->cantlibre; //ahora si lo que se quiere reservar es mayot que lo que hay en inventario if ($eninventario < $cantidad_reservada_convertida) { $this->adderror('cantidad_reservada', 'La cantidad reservada es mayor de la que hay en inventario'); } if ($eninventario > 0 and $cantidad_reservada_convertida == 0) { $this->adderror('cantidad_reservada', 'La cantidad reservada no puede ser cero, habiendo stock'); } }
public function actionReservaitem($id) { $model = Desolpe::Model()->findByPk($id); if ($model === null) { throw new CHttpException(404, 'No se encontro ningun documento para estos datos'); } if ($model->tipsolpe == 'S') { throw new CHttpException(500, 'No se puede reservar un servicio'); } $modelocabecera = Solpe::model()->findByPk($model->hidsolpe); if ($modelocabecera->escompra == '1') { throw new CHttpException(500, 'No se puede reservar items de solicitudes hechas para compras '); } // Uncomment the following line if AJAX validation is needed $this->performAjaxValidation($model); $model->setscenario('reservar'); if (isset($_POST['Desolpe'])) { $model->attributes = $_POST['Desolpe']; if ($model->save()) { $transaccion = $model->dbConnection->beginTransaction(); $idsolpe = $model->id; $cantcompra = $model->cantidad_compras; $cantreservada = $model->cantidad_reservada; if ($cantreservada > 0) { $modelo = new Alreserva(); $modelo->hidesolpe = $idsolpe; $modelo->cant = $cantreservada; $modelo->flag = '1'; // $model->est='06'; //estado 'RESERVADO' //$modelo->codocu='045'; } if ($cantcompra > 0) { $modelin = new Alreserva(); $modelin->hidesolpe = $idsolpe; $modelin->cant = $cantcompra; $modelin->flag = '0'; // $model->est='08'; //'SOLICITADO PARA COMPRA' //$modelin->codocu='008'; } $modeloinventario = Alinventario::model()->findByPk($model->desolpe_alinventario->id); if (!is_null($modeloinventario)) { $modeloinventario->setscenario('modificacantidad'); $modeloinventario->cantlibre = $modeloinventario->cantlibre - $cantreservada * Alconversiones::model()->convierte($modeloinventario->codart, $model->um); ///; $modeloinventario->cantres = $modeloinventario->cantres + $cantreservada * Alconversiones::model()->convierte($modeloinventario->codart, $model->um); } $model->est = ($cantcompra > 0 and $cantreservada == 0) ? '80' : '60'; ///si es una solicitud exclusiva apra compras el estado es '08' if ($model->save() and $cantreservada > 0 ? $modelo->save() : true and $modeloinventario->save() and $cantcompra > 0 ? $modelin->save() : true) { $transaccion->commit(); } else { $transaccion->rollback(); ///regresar todo a como estaba throw new CHttpException(404, 'carayyyyyy'); } if (!empty($_GET['asDialog'])) { //Close the dialog, reset the iframe and update the grid 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\t"); Yii::app()->end(); } } } if (!empty($_GET['asDialog'])) { $this->layout = '//layouts/iframe'; } //ECHO $model->id; //Yii::app()->end(); $this->render('_form_detalle_reservar', array('model' => $model, 'idcabeza' => $model->hidsolpe)); }
public function Actualizareservainventario($codmovimiento = null) { $modeloinventario = Alinventario::model()->findByPk($this->alkardex_alinventario->id); $modeloinventario->setscenario('modificacantidad'); $modeloinventario->cantres = $modeloinventario->cantres + $this->cant * Alconversiones::model()->convierte($this->codart, $this->um); ///; return $modeloinventario->save() ? 1 : 0; }
public function actioncargaums() { $valor = $_POST['Maestroclipro']['codart']; $valores = Alconversiones::model()->findall("codart='" . $valor . "'"); $values = array(); $otro = ""; foreach ($valores as $registro) { $values[] = $registro['um2']; $otro = $registro['um1']; } array_push($values, $otro); $criteria = new CDbCriteria(); $criteria->addInCondition('um', $values); $data = CHtml::listData(Ums::model()->findAll($criteria), "um", "desum"); echo CHtml::tag('option', array('value' => null), CHtml::encode('Escoja una uM'), true); foreach ($data as $value => $name) { echo CHtml::tag('option', array('value' => $value), CHtml::encode($name), true); } }
public function actionModificaconversion($id) { $model = Alconversiones::model()->find("id=:cvb", array(":cvb" => $id)); $modelomaestro = $this->loadModel($model->codart); if (isset($_POST['Alconversiones'])) { $model->attributes = $_POST['Alconversiones']; if ($model->save()) { if (!empty($_GET['asDialog'])) { //Close the dialog, reset the iframe and update the grid 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\t\t"); Yii::app()->end(); } } } // if (!empty($_GET['asDialog'])) $this->layout = '//layouts/iframe'; $this->render('_form_detalle_conversiones', array('modelomaestro' => $modelomaestro, 'model' => $model, 'codigox' => $modelomaestro->codigo)); }
<div class="division"> Agrega conversiones, no olvides refrescar la página para ver los cambios </div> <div class="division"> <?php $this->widget('zii.widgets.grid.CGridView', array('id' => 'conversiones-grid', 'dataProvider' => Alconversiones::model()->search_material($model->codigo), 'columns' => array('numerador', 'alconversiones_um1.desum', 'denominador', 'alconversiones_um2.desum', array('class' => 'CButtonColumn', 'buttons' => array('update' => array('visible' => 'true', 'url' => '$this->grid->controller->createUrl("/Maestrocompo/Modificaconversion/", array("id"=>$data->id, "asDialog"=>1, "gridId"=>$this->grid->id, ) )', 'click' => 'function(){ $("#cru-detalle").attr("src",$(this).attr("href")); $("#cru-dialogdetalle").dialog("open"); return false; }', 'imageUrl' => '' . Yii::app()->getTheme()->baseUrl . Yii::app()->params['rutatemagrid'] . 'update.png', 'label' => 'Actualizar Item'), 'delete' => array('visible' => 'false'), 'view' => array('visible' => 'false')))))); ?> </div> <?php if ($habilitado == "") { $createUrl = $this->createUrl('/maestrocompo/creaconversion', array("codigox" => $model->codigo, "asDialog" => 1, "gridId" => 'detalle-conversion')); $UrlDefault = $this->createUrl('/ocompra/defaulte'); echo CHtml::button(" + ", array('title' => "Agregar ", 'onclick' => " \$('#cru-detalle').attr('src','{$createUrl} ');\$('#cru-dialogdetalle').dialog('open');")); } ?>