Exemple #1
0
 public function verificaconsistencia($attribute, $params)
 {
     //Verificar si esta iddesolpe, ya se pido anteriormente en el mismo documento
     if ($this->isNewRecord and count(self::model()->find('iddesolpe=:viddesolpe ', array(':viddesolpe' => $this->iddesolpe))) > 0) {
         $this->adderror('cant', 'Esta solicitud ya esta registrada en este documento, verifique ');
     }
     ///verificar la consistencia de la cantidad
     $registrosolpe = Desolpe::model()->findByPk($this->iddesolpe);
     if (!is_null($registrosolpe)) {
         $cantidadefectivaNew = $this->cant * Alconversiones::convierte($this->codart, $this->um, $registrosolpe->um);
         $cantidadefectivaOLD = $this->oldVal('cant') * Alconversiones::convierte($this->codart, $this->um, $registrosolpe->um);
         $cantidadefectiva = $cantidadefectivaNew - $cantidadefectivaOLD;
         $hayerror = true;
         if ($this->id > 0) {
             //Si es un registro que ya ha sido confirmado
             $hayerror = $registrosolpe->cuantofaltacomprar() < $cantidadefectiva ? true : false;
         } else {
             //Si es nuevo , solo verifica que si se agrega la cantidad excede
             $hayerror = $registrosolpe->cuantofaltacomprar() < $cantidadefectivaNew ? true : false;
         }
         if ($hayerror) {
             //obteniendo las referencias de los pedidos de compra que lo han tomado anteriormente
             $registros = Desolpecompra::model()->findAll("iddesolpe=:viddesolpe", array(":viddesolpe" => $this->iddesolpe));
             $mensaje = " ";
             foreach ($registros as $fila) {
                 $mensaje .= " Pedido de compra : " . $fila->docompra->ocompra->numcot . " Item : " . $fila->docompra->item . " <br>";
             }
             $this->adderror('cant', 'cant efectiva :' . $cantidadefectiva . ' ,  cuanto falta :  ' . $registrosolpe->cuantofaltacomprar() . ' ,     Usted esta comprando mas de lo que han solicitado, este item de solicitud ya se trato con  ' . $mensaje);
         }
     }
 }
Exemple #2
0
 public function chkcantsolpe($attribute, $params)
 {
     //Obteinendo la reserva de esta Solpe
     $registros = Alreserva::model()->findAll("hidesolpe=:idsolpe and codocu='450'", array(":idsolpe" => $this->idref));
     $desolpe = Desolpe::model()->findByPk($this->idref);
     $umoriginal = $desolpe->um;
     $cantatendida = is_null($registros[0]->alreserva_cantidadatendida) ? 0 : $registros[0]->alreserva_cantidadatendida;
     $falta = $desolpe->cant - $cantatendida;
     $mensajeerror = $cantatendida == 0 ? ' de lo que se ha solicitado(' . $desolpe->cant . ')' : ' de lo que falta atender (' . $falta . ')';
     //echo "falta antender ".$falta;
     //yii::app()->end();
     if (abs($this->cant) * Alconversiones::convierte($this->codart, $this->um, $umoriginal) > $falta) {
         $this->adderror('cant', 'La cantidad que intentas atender es mayor ' . $mensajeerror);
     }
     unset($registros);
     unset($desolpe);
 }
Exemple #3
0
 public function checkcantidad($attribute, $params)
 {
     //verificando en este escenario las cantidades y la solpes
     ///veriifcar primero si esta
     $detallecompra = Docompra::Model()->findByPk($this->iddocompra);
     $detallesolpe = Desolpe::Model()->findByPk($this->iddesolpe);
     $cantidadcomprada = $detallesolpe->cantcompras;
     $cantidadsolicitada = $detallesolpe->cant;
     $diferencia = $cantidadsolicitada - $cantidadcomprada;
     if ($diferencia > 0) {
         //Tiene sentido comprar , porque falta
         //  $this->adderror('cant','Ya no puede comprar mas , la Solicitud '.$detallesolpe->desolpe_solpe->numero.' - '.$detallesolpe->item.'  Ya se ha tomado  ');
     } else {
         //ya no tiene sentido comprar ,o la solpe esta completa o ya se excedio
         $this->adderror('cant', 'Ya no puede comprar mas , la Solicitud ' . $detallesolpe->desolpe_solpe->numero . ' - ' . $detallesolpe->item . '  Ya se ha tomado  ');
     }
 }
 public function actionRevisamaletin()
 {
     // renders the view file 'protected/views/site/index.php'
     // using the default layout 'protected/views/layouts/main.php'
     //$this->layout = '//layouts/column_inicio';
     if (Yii::app()->user->isGuest) {
         $this->redirect(Yii::app()->user->ui->loginUrl);
     } else {
         $this->layout = '//layouts/iframe';
         //preparando el array de solpes;
         $arraysolpes = array();
         $arraycompras = array();
         if (isset(Yii::app()->session['DOC350'])) {
             $criteria = new CDbCriteria();
             $criteria->addInCondition('id', Yii::app()->session['DOC350']);
             $items = Desolpe::model()->findAll($criteria);
             for ($i = 0; $i < count($items); $i++) {
                 $valordeltexto = $items[$i]['id'] . '-' . $items[$i]['item'] . '-' . $items[$i]['txtmaterial'];
                 array_push($arraysolpes, array("text" => $valordeltexto));
             }
         }
         //preparando el array de compras;
         if (isset(Yii::app()->session['DOC220'])) {
             $criteria = new CDbCriteria();
             $criteria->addInCondition('id', Yii::app()->session['DOC350']);
             $items2 = Docompra::model()->findAll($criteria);
             for ($i = 0; $i < count($items2); $i++) {
                 $valordeltexto = $items2[$i]['id'] . '-' . $items2[$i]['item'] . '-' . $items2[$i]['descri'];
                 array_push($arraycompras, array("text" => $valordeltexto));
             }
         }
         $this->render('treeviewdocs', array('items' => $items, 'arraycompras' => $arraycompras, 'arraysolpes' => $arraysolpes));
         //$this->redirect('/verificar');
     }
     //$this->render('index');
     //Yii::app()->user->ui->loginUrl
 }
Exemple #5
0
 public function colocapuentesolpe()
 {
     if ($this->iddesolpe > 0) {
         //Siempre y cuando sea una compra conectada  a la solpe
         //y ademas se haya modificado  la cantidad
         //$umoriginal=Desolpe::model()->findByPk($this->iddesolpe)->um;
         ///que pasa si lo estan compradno en um diferente, prevalece la UM de la SOLPE
         $umoriginal = Desolpe::model()->findByPk($this->iddesolpe)->um;
         if ($umoriginal != $this->um) {
             $cantidad = Alconversiones::convierte($this->codart, $this->um, $umoriginal);
         } else {
             $cantidad = $this->cant;
         }
         $criterio = new CDbcriteria();
         $criterio->addcondition("iddocompra=:vidocompra");
         $criterio->params = array(":vidocompra" => $this->id);
         $modelino = Desolpecompra::model()->find($criterio);
         if (is_null($modelino)) {
             if (!in_array($this->estadodetalle, array(ESTADO_DESOLPE_ANULADO))) {
                 $modelino = new Desolpecompra();
                 $modelino->setScenario('insert');
                 $modelino->setAttributes(array('iduser' => yii::app()->user->id, 'codestado' => ESTADO_DESOLPECOMPRA_NUEVO, 'iddocompra' => $this->id, 'iddesolpe' => $this->iddesolpe, 'cant' => $cantidad, 'fecha' => date("Y-m-d H:i:s")), true);
                 $modelino->save();
             }
         } else {
             if (in_array($this->estadodetalle, array(ESTADO_DESOLPE_ANULADO))) {
                 $modelino->delete();
             } else {
                 if ($this->oldVal('cant') != $this->cant or $this->oldVal('um') != $this->um) {
                     $modelino->setScenario('update');
                     $modelino->setAttributes(array('iduser' => yii::app()->user->id, 'cant' => $cantidad, 'fecha' => date("Y-m-d H:i:s")), true);
                     $modelino->save();
                 }
             }
         }
     }
 }
 /**
  * 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 Desolpe the loaded model
  * @throws CHttpException
  */
 public function loadModel($id)
 {
     $model = Desolpe::model()->findByPk($id);
     if ($model === null) {
         throw new CHttpException(404, 'The requested page does not exist.');
     }
     return $model;
 }
 public function generadetalle($model)
 {
     //  $model=$this->loadModel($id);
     //generar todas las claves del kardex
     //throw new CHttpException(500,'Nque carajo');
     $codigodocumento = $model->codocuref;
     $numerodocumento = trim($model->numdocref);
     $tipomovimiento = $model->codmovimiento;
     switch ($codigodocumento) {
         ///Luego hacer los procedimientos segun sea el caso
         case '210':
             //orden de compra
             //throw new CHttpException(500,'No se encontro el doucmento de compras indicado');
             //$this->redirect(array("Aprobarguia",'id'=>$id));
             //rellenar el domcuento de items
             //VERIFICAR LA ORDEN COMPRA PRIMERO , SOLO LOS ITEMS QUE ESTAN LIBERADOS O ATENDIDOS PARCIALMENTE
             $mocompra = VwOcompra::model()->findall("numcot=:numerox and estadodetalle in ('20','50')  ", array(":numerox" => $numerodocumento));
             $transaccion = $model->dbConnection->beginTransaction();
             if (count($mocompra) > 0) {
                 for ($i = 0; $i < count($mocompra); ++$i) {
                     $modelodetalle = new Alkardex();
                     $modelodetalle->codart = $mocompra[$i]['codart'];
                     $modelodetalle->codmov = $tipomovimiento;
                     $modelodetalle->cant = $mocompra[$i]['cant'];
                     $modelodetalle->aldes = $model->codalmacen;
                     $modelodetalle->fecha = $model->fechavale;
                     $modelodetalle->usuario = Yii::app()->user->name;
                     $modelodetalle->um = $mocompra[$i]['um'];
                     $modelodetalle->codocuref = $codigodocumento;
                     $modelodetalle->numdocref = $numerodocumento;
                     $modelodetalle->codcentro = $model->codcentro;
                     $modelodetalle->codestado = '99';
                     $modelodetalle->hidvale = $model->id;
                     $modelodetalle->idref = $mocompra[$i]['id'];
                     //el enganche
                     if (!$modelodetalle->save()) {
                         $transaccion->rollback();
                         Yii::app()->end();
                         throw new CHttpException(500, 'Se produjo un error al momento de insertar el detalle kardex ');
                     }
                 }
                 $transaccion->commit();
             } else {
                 throw new CHttpException(500, 'No se encontro el doucmento de compras indicado');
             }
             break;
         case '340':
             // Solicitud de pedido
             //$modelosolpe=Solpe::model()->findByPk(75);
             $modelosolpe = Solpe::model()->find(" numero='" . trim($model->numdocref) . "' ");
             //$modelosolpe=Solpe::model()->findall(" numero='0000000043' ");
             if (gettype($modelosolpe) == 'object') {
                 ///
                 //$modelito=Solpe::model()->findByPk($);
                 $matrizdetalle = $modelosolpe->solpe_desolpe;
                 for ($i = 0; $i < count($matrizdetalle); $i++) {
                     $modelodesolpe = Desolpe::model()->findByPk($matrizdetalle[$i]['id']);
                     ///Si el registro del kardex no ha sido creado aun
                     $modelokardex = Alkardex::model()->find(" valido='1' AND  idref=" . $modelodesolpe->id);
                     if ($modelokardex === null) {
                         //creamos el registro Kardex
                         $modelokardex = new Alkardex();
                         //Colocamos los valores
                         $modelokardex->codart = trim($modelodesolpe->codart);
                         //el codigo material
                         $modelokardex->cant = $modelodesolpe->cant;
                         //el codigo material
                         $modelokardex->codmov = $tipomovimiento;
                         //el codigo MOVIMIENTO
                         $modelokardex->alemi = $model->codalmacen;
                         //el almacen emisor
                         $modelokardex->aldes = $model->codalmacen;
                         //el almacen emisor
                         $modelokardex->fecha = date("Y-m-d H:i:s");
                         //contable
                         $modelokardex->coddoc = $codigodocumento;
                         //el codigo documento que caisa el mov
                         $modelokardex->numdoc = $numerodocumento;
                         //el numero de doc que causa el mov
                         $modelokardex->usuario = Yii::app()->user->name;
                         $modelokardex->um = $modelodesolpe->um;
                         //el codigo material
                         $modelokardex->codocuref = '101';
                         //el cod del doc vale almacen
                         $modelokardex->numdoc = $model->numvale;
                         //el numero vale alamcen
                         $modelokardex->codcentro = $model->codcentro;
                         //el codigo documento que caisa el mov
                         //$modelokardex->codestado='01'; //el estado
                         $modelokardex->fechadoc = date("Y-m-d H:i:s");
                         //fecah del documetno
                         $modelokardex->hidvale = $model->id;
                         //fecah del documetno
                         $modelokardex->idref = $modelodesolpe->id;
                         //fecah del documetno
                         //$modelokardex->valido='0';
                         if ($modelodesolpe->numeroreservas > 0) {
                             ///solo las que tienen reservas valen
                             $modelokardex->checki = '1';
                             //es valido
                         } else {
                             $modelokardex->checki = '0';
                             //no es valido
                         }
                         $modelokardex->save();
                     } else {
                         /// en el caso de que ya exista el kardex no hacer nada
                     }
                 }
             } else {
                 throw new CHttpException(500, gettype($modelosolpe) . 'No se encontro la solicitud de pedido indicada : ' . trim($model->numdocref) . '-  -' . strlen(trim($model->numdocref)) . '  ');
             }
             //verificando los detalles de la solicitud de pedido
             //SOLO LOS ITEMS RESERVADOS CON SUS RESPECTIVAS CANTIDADES
             break;
         default:
             throw new CHttpException(500, $codigodocumento . '-Se ha tomado un documento que no es valido');
     }
 }
Exemple #8
0
 public static function CreaSolpeAutomatica($codocu, $id)
 {
     $solpe = new Solpe();
     $solpe->textocabecera = "Documento automático";
     $solpe->hidref = $id;
     $solpe->codocuref = $codocu;
     $solpe->escompra = '0';
     if (!$solpe->save()) {
         print_r($solpe->getErrors());
         yii::app()->end();
     }
     $solpe->refresh();
     $identidad = $solpe->id;
     unset($solpe);
     $registrospeticiones = self::Devuelvepeticioneshijos($id);
     foreach ($registrospeticiones as $fila) {
         $registrodesolpe = new Desolpe();
         $registrodesolpe->setScenario('insert');
         $registrodesolpe->hidsolpe = $identidad;
         $registrodesolpe->cant = $fila->cant;
         $registrodesolpe->codart = $fila->codart;
         $registrodesolpe->um = $fila->um;
         $registrodesolpe->txtmaterial = $fila->descripcion;
         $registrodesolpe->imputacion = $fila->imputacion;
         $registrodesolpe->centro = $fila->codcen;
         $registrodesolpe->codal = $fila->codal;
         $registrodesolpe->item = $fila->item;
         $registrodesolpe->tipimputacion = 'V';
         ////debe de implemntarse la progrtamacion del plan de ventas
         ///temporalmente quieda con programacion plana
         $registrodesolpe->fechaent = date("Y-m-d");
         $registrodesolpe->tipsolpe = $fila->tipo;
         if (!$registrodesolpe->save()) {
             print_r($registrodesolpe->getErrors());
             yii::app()->end();
         }
         unset($registrodesolpe);
     }
     $nuevasolpe = Solpe::model()->findByPk($identidad);
     //$nuevasolpe->save();
     if (!$nuevasolpe->save()) {
         print_r($nuevasolpe->getErrors());
         yii::app()->end();
     }
 }
Exemple #9
0
 public function checknumero($attribute, $params)
 {
     // $this->adderror('numero','Este documento no tiene items');
     if ($this->numero === null or empty($this->numero) or trim($this->numero) == "") {
         $this->adderror('numero', 'Ingrese el numero');
     }
     $solpe = Solpe::model()->find("numero=:xnumero", array(":xnumero" => trim($this->numero)));
     if ($solpe === null) {
         $this->adderror('numero', 'Este documento');
     } else {
         if (!$solpe->estado == '20') {
             $this->adderror('numero', 'Esta solicitud no tiene un status adecuado :' . $solpe->solpe_estado->estado . ' ...');
         }
         if ($solpe->escompra != '1') {
             $this->adderror('numero', 'Esta solicitud no es para compras :');
         }
         //ahora verificar que todos los detalles esten ok
         if ($solpe->numeroitems == 0) {
             $this->adderror('numero', 'Este documento no tiene items');
         }
         //ahora verificando que exista algun item que se pueda agregar
         //estado de los items 03 aprobado, 07 en compras
         $desolpe = Desolpe::model()->findAll("hidsolpe=:xidsolpe and est=:xestado", array(":xidsolpe" => $solpe->id, "xestado" => '30'));
         if (count($desolpe) == 0) {
             $this->adderror('numero', 'Este documento no tiene items para comprar o ya fueron tomados');
         }
     }
     /*if($this->numeroitems==0 )
       $this->adderror('numero','Este documento no tiene items');*/
 }
Exemple #10
0
<?php

$prove = Desolpe::model()->search_por_solpe($idcabecera);
$this->widget('zii.widgets.grid.CGridView', array('id' => 'detalle-grid', 'dataProvider' => $prove, 'itemsCssClass' => 'table table-striped table-bordered table-hover', 'summaryText' => '->', 'columns' => array(array('class' => 'CCheckBoxColumn', 'selectableRows' => 20, 'value' => '$data->id', 'checkBoxHtmlOptions' => array('name' => 'cajita[]')), array('name' => 'item', 'htmlOptions' => array('width' => 1)), array('name' => 'tipimputacion', 'header' => 'I', 'htmlOptions' => array('width' => 5)), array('name' => 'tipsolpe', 'header' => 'T', 'htmlOptions' => array('width' => 5)), array('name' => 'st.', 'header' => 'st', 'type' => 'raw', 'value' => 'CHtml::image(Yii::app()->getTheme()->baseUrl.Yii::app()->params["rutatemaimagenes"].$data->codocu.$data->est.".png")'), array('name' => 'cant', 'header' => 'Cant'), array('name' => 'desolpe_um.desum', 'header' => 'Um', 'htmlOptions' => array('width' => 5)), array('name' => 'codart', 'header' => 'Cod.', 'htmlOptions' => array('width' => 5)), array('name' => 'txtmaterial', 'header' => 'Descripcion', 'htmlOptions' => array('width' => 600)), array('name' => 'textodetalle', 'type' => 'raw', 'header' => 't', 'value' => '(!empty($data->textodetalle))?CHtml::image(Yii::app()->getTheme()->baseUrl.Yii::app()->params["rutatemaimagenes"]."texto.png","hola"):""'), array('name' => 'imputacion', 'header' => 'Imp', 'htmlOptions' => array('width' => 25)), array('name' => 'centro', 'header' => 'Cent', 'htmlOptions' => array('width' => 5)), array('name' => 'codal', 'header' => 'Alm', 'htmlOptions' => array('width' => 5)), array('name' => 'solicitanet', 'header' => 'Solic', 'htmlOptions' => array('width' => 225)), array('name' => 'fechaent', 'header' => 'Para', 'value' => 'date("d/m/y", strtotime($data->fechaent))', 'htmlOptions' => array('width' => 40)), 'usuario', 'desolpe_estado.estado', array('name' => 'punitplan', 'header' => 'Plan', 'value' => 'MiFactoria::decimal($data->punitplan)', 'footer' => MiFactoria::decimal(Desolpe::getTotal($prove)['plan'], 2)), array('name' => 'punitreal', 'header' => 'Real', 'value' => 'MiFactoria::decimal($data->alkardex_gastos)', 'footer' => MiFactoria::decimal(Desolpe::getTotal($prove)['real'], 2)), array('htmlOptions' => array('width' => 320), 'class' => 'CButtonColumn', 'buttons' => array('update' => array('visible' => 'true', 'url' => '$this->grid->controller->createUrl("/solpe/Modificadetalle/",
										    array("id"=>$data->id,
                                                                                         "asDialog"=>1,
											"gridId"=>$this->grid->id,
											"ed"=>"si",

											)
									    )', 'click' => 'function(){ 

							    $("#cru-dialogdetalle").dialog("open");
										$("#cru-detalle").attr("src",$(this).attr("href"));
							     return false;
							 }', 'imageUrl' => '' . Yii::app()->getTheme()->baseUrl . Yii::app()->params['rutatemaimagenes'] . 'lapicito.png', 'label' => 'Actualizar Item'), 'delete' => array('visible' => 'true', 'url' => '$this->grid->controller->createUrl("/Solpe/cargadetalle", array("identi"=>$data->id))', 'options' => array('ajax' => array('type' => 'GET', 'update' => '#zona', 'url' => 'js:$(this).attr("href")'), 'onClick' => 'Loading.show();Loading.hide(); '), 'imageUrl' => '' . Yii::app()->getTheme()->baseUrl . Yii::app()->params['rutatemaimagenes'] . 'hand_point.png', 'label' => 'Ver detalle'), 'view' => array('visible' => '($data->est=="30" )?true:false', 'url' => '$this->grid->controller->createUrl("/solpe/Reservaitem/",
										    array("id"=>$data->id,
                                                                                         "asDialog"=>1,
											"gridId"=>$this->grid->id,
											"ed"=>"no",

											)
									    )', 'click' => 'function(){ 
							    $("#cru-detalle").attr("src",$(this).attr("href")); 
							    $("#cru-dialogdetalle").dialog("open");  
							     return false;
							 }', 'imageUrl' => '' . Yii::app()->getTheme()->baseUrl . Yii::app()->params['rutatemaimagenes'] . 'box.png', 'label' => 'Reservar'))))));
Exemple #11
0
 public function checkvaleaanular($attribute, $params)
 {
     //Verfiicando que exista primero
     if (!$this->existevaleref()) {
         $this->adderror('numdocref', 'Este vale no existe ' . $this->numdocref . '-');
     } else {
         $valeaanular = Almacendocs::model()->find("numvale=:nimi", array("nimi" => trim($this->numdocref)));
         ///AHORA NOS ASEGURAMOS QUE ESTE EN EL MISMO CENTRO  Y ALMACEN
         if ($valeaanular->codcentro == $this->codcentro and $valeaanular->codalmacen == $this->codalmacen) {
             if (!(trim($this->almacenmovimientos->anticodmov) == trim($valeaanular->codmovimiento))) {
                 //si no corresponde a su amntagonico ERROR
                 $this->adderror('numdocref', 'Este      vale no   se puede anular con este movimiento ' . $this->almacenmovimientos->anticodmov);
             } else {
                 if ($valeaanular->tienedespacho()) {
                     $this->adderror('numdocref', 'Este   Vale ya  tiene datos de expedición,   ');
                 }
                 if ($valeaanular->cestadovale == '30') {
                     //si Es un vale anulado
                     $this->adderror('numdocref', 'Este   Vale ya se anulo   ');
                 }
                 if (!Yii::app()->periodo->verificaFechas($valeaanular->fechacont, $this->fechacont)) {
                     //si Es un vale anulado
                     $this->adderror('numdocref', 'El vale a anular tiene fecha posterior  :  ' . $valeaanular->fechacont);
                 }
                 switch ($this->codmovimiento) {
                     case '89':
                         ///anular carga inicial
                         $registroshijos = $valeaanular->almacendocs_alkardex;
                         if (count($registroshijos) == 0) {
                             $this->adderror('numdocref', 'El vale   ' . $valeaanular->numvale . '   no Tiene registros Hijos');
                         }
                         break;
                     case '20':
                         ///SALIDA RESERVA
                         ///BUSCAMOS LA SOLPE QUE GENERO EL VALE, ESTO PARA PODER UBICAR LOSOTORS VALES DE SALIDA (SI ES QUE LOS HUBIEREN)
                         //RECORDAR QUE LA RELACION DE SOLPE-> VALES DE SALIDA RESERVA ES DE UNO A VARIOS (UNA SOLPE S EPUEDE ATENDER CON VARIOS VALES)
                         if ($valeaanular->codmovimiento == $this->codmovimiento) {
                             $this->adderror('codmovimiento', 'NO s epuede anular un vale que es de anulacion ');
                         }
                         //Primero hallamos un idref del kardex, que nos permita llegar a cualqueir itgem de esta solpe, solo necesitamos un dato
                         //cualquiera de ellos, x practicidad escogereemos el primer elemento $matrizkardexhijos[0]['idref'] arbitrariamente
                         // $matrizkardexhijos=Alkardex::model()->findAll("hidvale=:vhidvale",array(":vhidvale"=>$registro[0]['id']));
                         $registroshijos = $valeaanular->almacendocs_alkardex;
                         if (count($registroshijos) == 0) {
                             $this->adderror('numdocref', 'Este vale no Tiene registros Hijos');
                         } else {
                             ///HALLANDO el ID DE ESTA SOLPE BUSCADA
                             foreach ($registroshijos as $rowx) {
                                 $idsolpe = Desolpe::model()->findByPk($rowx->idref)->desolpe_solpe->id;
                                 break;
                             }
                             ///Ahora hallamos Todos los vales que estan AMARRADOS a esta solpe, de la siguiente manera
                             $valesamarrados = Yii::app()->db->createCommand("SELECT DISTINCT k.fechacre,k.numvale,k.fechacont,k.cestadovale,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tk.fechavale,k.codmovimiento , k.id  from public_almacendocs k , public_alkardex m WHERE k.id=m.hidvale AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t         m.idref IN (SELECT t.id from public_desolpe1 t, public_solpe s\n  \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE  t.hidsolpe=s.id and s.id=" . $idsolpe . " )and k.cestadovale in('20')  and k.codmovimiento <> '" . $this->codmovimiento . "' and k.id <> " . $valeaanular->id . "  order by k.numvale ASC ")->queryAll();
                             /*var_dump($valesamarrados);
                               yii::app()->end();*/
                             foreach ($valesamarrados as $row) {
                                 // AHORA SI TENEMOS A TODOS LOS OTROS  VALES DE ESTA SOLPE  Y PODEMOS VALIDAR
                                 // IF($row['id']!=$registro->id)  ///Siempre y cuando no se trate del mismo vale q
                                 ////SI HAY OTRO VALE CON FECHA DE CONTABILIZACION MENOR AL VALE A ANULAR
                                 if (Yii::app()->periodo->verificaFechas($row['fechacont'], $valeaanular->fechacont)) {
                                     $this->adderror('numdocref', 'Este vale  no se puede anular, Hay otro vale que lo precede, con el numero -> :' . $row['numvale'] . ' con contabilizacion  ' . $row['fechacont'] . ' Se recomienda tratar la anulacion en orden cronologico');
                                     break;
                                 } else {
                                     //puede ser el mismo dia
                                     if (strtotime($row['fechacont']) == strtotime($valeaanular->fechacont)) {
                                         if ($valeaanular->numvale + 0 > $row['numvale'] + 0) {
                                             $this->adderror('numdocref', 'Este vale  no se puede anular, Hay otro vale que lo precede :' . $row['numvale']);
                                         }
                                         break;
                                     }
                                 }
                             }
                             /*
                             
                                                           // echo "el vale " .$row['numvale']. "  su fecha ".$row['fechacont'] ."    <br>";
                                                              IF(!Yii::app()->periodo->verificaFechas($valeaanular->fechacont,$row['fechacont'])  and $row['cestadovale']  <> '30' and $row['cestadovale']  <> '99' and $row['codmovimiento']  <>$this->codmovimiento ) {
                                                               $this->adderror('numdocref','Este vale con fecha '.$registro[0]['fechacont'].' no se puede anular, Hay otro vale que lo precede :'.$row['numvale'].' con contabilizacion  '.$row['fechacont'].' Se recomienda tratar la anulacion en orden cronologico');
                                                                    break;
                                                             }*/
                             /*IF(strtotime($row->fechacont) ==strtotime($registro->fechacont) ) { //SI SE HICIERON EL MISMO DIA VERIFICAR LA FECHA DE CREACION DE LOS VALES
                               // $this->adderror('numdocref','Este vale con fecha '.$registro->fechacont.' no se puede anular, Hay otro vale que lo precede :'.$row->numvale.' con contabilizacion  '.$row->fechacont.' Se recomienda tratar la anulacion en orden cronologico');
                                  break;*/
                         }
                         // yii::app()->end();
                         break;
                     default:
                         throw new CHttpException(500, '-Se ha tomado un movimiento que no es valido ' . $this->codmovimiento);
                 }
             }
         } else {
             $this->adderror('numdocref', 'Este vale no coincide con el centro-almacen ');
         }
         /*$matriz=Alkardex::model()->findAll( "idref=:mipa and valido='1' and codmov =:movi " ,array("mipa"=>$registro[0]['id'],"movi"=>$movimientoopuesto));
         		if(count($matriz) >0 ) 
         						$this->adderror('numdocref','Este vale ya ha sido anulado ');*/
         //ahora verificando la fecha
         /*if (strtotime($this->fechacont) < strtotime($registro[0]['fechacont']))
         		$this->adderror('fechacont','La fecha de la anulación es menor que la fecha de creación del documento a anular ');
                  */
     }
 }
 public function actionPio()
 {
     $images = glob(yii::getPathOfAlias('webroot.materiales') . DIRECTORY_SEPARATOR . "{14000035.*}", GLOB_BRACE);
     //echo yii::getPathOfAlias('webroot.materiales.gallery').DIRECTORY_SEPARATOR;
     //echo "<br>";
     //imprime el nombre de cada archivo
     foreach ($images as $image) {
         echo $image . '<br />';
     }
     print_r($images);
     yii::app()->end();
     echo "  falta copmpraer " . Desolpe::model()->findByPk(730)->cuantofaltacomprar();
     yii::app()->end();
     echo "  del material azufre <br>";
     echo "   una caja   vale :  " . Alconversiones::convierte('18004728', '190') . "     unidades <br>";
     echo "   un KG  vale :  " . Alconversiones::convierte('18004728', '123') . "     unidades <br>";
     echo "   unA caja  vale :  " . Alconversiones::convierte('18004728', '190', '120') . "     unidades <br>";
     echo "   unA UNIDAD  vale :  " . Alconversiones::convierte('18004728', '120', '190') . "    CAJAS <br>";
     echo "   un KG  vale :  " . Alconversiones::convierte('18004728', '123', '120') . "     unidades <br>";
     echo "   unA UNIDAD  vale :  " . Alconversiones::convierte('18004728', '120', '123') . "    KILOGRAMOS <br>";
     echo "   un KG  vale :  " . Alconversiones::convierte('18004728', '123', '190') . "    CAJAS <br>";
     echo "   unA CAJA  vale :  " . Alconversiones::convierte('18004728', '190', '123') . "    KILOGRAMOS <br>";
     yii::app()->end();
     $model = new Noticias();
     var_dump(get_class($model));
     yii::app()->end();
     var_dump(count(Peticion::model()->search()->getdata()));
     yii::app()->end();
     ini_set('soap.wsdl_cache_enable', 0);
     ini_set('soap.wsdl_cache_ttl', 0);
     $wsdlURL = 'https://www.sunat.gob.pe/ol-ti-itcpgem-beta/billService?wsdl';
     $client = new SoapClient($wsdlURL);
     var_dump($client->__getFunctions());
     echo "<BR>";
     echo "<BR>";
     var_dump($client->__getTypes());
     //var_dump($client);
     yii::app()->end();
     //$result=$client->giveTimestamp();
     //echo $result;
     var_dump(yii::app()->user);
     echo "<br>";
     echo "<br>";
     echo "<br>";
     $elusuario = Yii::app()->user->um->LoadUserById(yii::app()->user->id);
     var_dump($elusuario);
     $sesion_activa = Yii::app()->user->um->findSession($elusuario);
     echo "<br>";
     echo " LA DURACION MAXIMA DE LA SESION " . Yii::app()->user->um->getDefaultSystem()->getn('sessionmaxdurationmins') . "   Minutos";
     echo "<br>";
     echo " la sesion expira  " . date("Y-m-d H:i:s", $sesion_activa->expire);
     echo "<br>";
     echo " la sesion inicio en " . date(" H:i:s", $sesion_activa->created);
     echo "<br>";
     echo " Ultimo uso  " . date("H:i:s", $sesion_activa->lastusage);
     echo "<br>";
     echo " la hora actual  " . date("H:i:s");
     echo "<br>";
     echo " Han pasado :   " . (time() - $sesion_activa->created) / 60 . "   minutos       con  ";
     echo "<br>";
     echo "  Sesion expirada? :\n\t\t        ->             " . var_dump($sesion_activa->isSessionExpired());
     echo "<br>";
     echo "  Sesion name  : " . $sesion_activa->getSessionName();
     echo "<br>";
     echo "  Sesion valida : " . $sesion_activa->validateSession();
     //	$sesion_activa->getSessionFilter();
     echo "<br>";
     //print_r($sesion_activa);
     yii::app()->end();
     echo yii::getPathOfAlias('webroot.materiales');
     //echo yii::app()->baseUrl;
     YII::APP()->END();
     /*var_dump(yii::app()->request);
     		echo "<br>";
     		print_r(yii::app()->request->baseUrl);*/
     echo yii::app()->getBaseUrl(true);
     echo "<br>";
     var_dump(is_dir(yii::app()->getBaseUrl(true)));
     YII::APP()->END();
     $images = glob(yii::getPathOfAlias('webroot.materiales') . DIRECTORY_SEPARATOR . "{*.JPG,*.PNG,*.JPEG,*.GIF,*.BMP}", GLOB_BRACE);
     //echo yii::getPathOfAlias('webroot.materiales.gallery').DIRECTORY_SEPARATOR;
     //echo "<br>";
     //imprime el nombre de cada archivo
     foreach ($images as $image) {
         echo $image . '<br />';
     }
     print_r($images);
     yii::app()->end();
     var_dump(is_dir("/public_html/recurso/materiales/"));
     YII::APP()->END();
     var_dump(yii::app()->estadisticas->linear_regression(array(2, 3, 3.5, 5), array(2, 3, 4, 6)));
     $this->render('//alinventario/vw_loginventario', array());
     yii::app()->end();
     $modelinv = Alinventario::model()->findByPk(343569);
     $modelinv->actualiza_stock('77', 1, null);
     yii::app()->end();
     echo Yii::app()->baseUrl;
     yii::app()->end();
     $criterio = new CDbcriteria();
     $criterio->addcondition("hidsolpe=:vid");
     $criterio->params = array(":vid" => 387);
     $objeto = new Miproveedor('Desolpe', array('criteria' => $criterio));
     //var_dump($objeto->getdata());
     $objeto->camposasumar = array("TOTAL CANTIDAD" => 'cant', 'SUBTOTAL PLANEADO' => "punitplan", 'SUBTOTAL REAL' => "punitreal");
     $subtotales = $objeto->Total();
     var_dump($subtotales);
     yii::app()->end();
     $nuevoarray = array();
     $nuevoarray['uno'] = 1;
     $nuevoarray['dos'] = 2;
     var_dump($nuevoarray);
     yii::app()->end();
     $criterio = new CDbcriteria();
     $objeto = new CActiveDataProvider('Impuestos');
     // $dataProvider->getData() will return a list of Post objects
     var_dump($objeto->getdata());
     yii::app()->end();
     //echo Almacendocs::model()->findByPk(709)->almacendocs_almacenmovimientos->eventos->estadofinal;
     var_dump(Almacendocs::model()->findByPk(709)->almacendocs_almacenmovimientos);
     yii::app()->end();
     $criterio = new CDbCriteria();
     $criterio->addCondition("hidguia=:xdet");
     $criterio->params = array(':xdet' => 59);
     //var_dump($criterio->condition);
     print_r(MiFactoria::arrayColumnaSQL(Docompra::model()->tableName(), 'id', $criterio));
     yii::app()->end();
     $images = glob(yii::getPathOfAlias('webroot.materiales') . DIRECTORY_SEPARATOR . "{*.JPG,*.PNG,*.JPEG,*.GIF,*.BMP}", GLOB_BRACE);
     //echo yii::getPathOfAlias('webroot.materiales.gallery').DIRECTORY_SEPARATOR;
     //echo "<br>";
     //imprime el nombre de cada archivo
     foreach ($images as $image) {
         echo $image . '<br />';
     }
     print_r($images);
     yii::app()->end();
     $modelito = new Ocompra();
     $modelito->codocu = $this->documento;
     echo $modelito->correlativo('numcot');
     yii::app()->end();
     echo dirname(__FILE__) . '/css/estilogrid.css';
     var_dump(is_file($_SERVER['SCRIPT_NAME'] . '/css/estilogrid.css'));
     //ECHO "..//".(strlen(dirname($_SERVER['SCRIPT_NAME']))>1 ? dirname($_SERVER['SCRIPT_NAME']) : '' ) . '/css/estilogrid.css';
     yii::app()->end();
     // una ffraccion de la forma   1/2 , 3/4 , 45/3, 1 /2 , 7./3 , 1/ 3, 234/567,  4/.5 ,
     $cadena1 = "PERNO  11/45 INOXIDABLE  7/8 HF   1/2 x 3/4  1/12 * 5/16 ";
     $cadena2 = "PERNO   12./. 56  3 1/2 INOXIDABLE  17/8 HF ";
     $cadena3 = "PERNO  45/ 34 INOXIDABLE  7./ 8 HF ";
     $cadena4 = "PERNO  1/2 4 5/34 INOXIDABLE  7 /8  HF ";
     $cadena5 = " PERNO   4/.63 INOXIDABLE  756/458 HF ";
     $cadena6 = "3/4 PERNO  1 / 3 INOXIDABLE  17/8*1 HF ";
     $cadena7 = "PERNO INOXIDABLE  3*41 25/16 1781 HF ";
     $patron = "/^(\\s)[0-9]{1,}[\\.|\\s]?[\\/]{1}[\\.|\\s]?[0-9]{1,}(\\s)\$/";
     $patron2 = '/[1-9]{0,}+[\\s|*|x|X]{1}[0-9]{1,}[\\.|\\s]{0,1}[\\/]{1}[\\.|\\s]{0,1}[0-9]{1,}[\\s|*|x|X]{1}/';
     echo $cadena1 . "    " . preg_match_all($patron2, $cadena1, $resultado1) . "<br>";
     print_r($resultado1);
     echo "<br>";
     echo "<br>";
     echo $cadena2 . "    " . preg_match_all($patron2, $cadena2, $resultado2) . "<br>";
     print_r($resultado2);
     echo "<br>";
     echo "<br>";
     echo $cadena3 . "    " . preg_match_all($patron2, $cadena3, $resultado3) . "<br>";
     print_r($resultado3);
     echo "<br>";
     echo "<br>";
     echo $cadena4 . "    " . preg_match_all($patron2, $cadena4, $resultado4) . "<br>";
     print_r($resultado4);
     echo "<br>";
     echo "<br>";
     echo $cadena5 . "    " . preg_match_all($patron2, $cadena5, $resultado5) . "<br>";
     print_r($resultado5);
     echo "<br>";
     echo "<br>";
     echo $cadena6 . "    " . preg_match_all($patron2, $cadena6, $resultado6) . "<br>";
     print_r($resultado6);
     echo "<br>";
     echo "<br>";
     echo $cadena7 . "    " . preg_match_all($patron2, $cadena7, $resultado7) . "<br>";
     print_r($resultado7);
     echo "<br>";
     echo "<br>";
     //echo $cadena8. "    ". preg_match('/^(\s)[0-9]{1,}[\.|\s]?[\/]{1}[\.|\s]?[0-9]{1,}(\s)$/',$cadena1) ."<br>";
     yii::app()->end();
     print_r(Yii::app()->user->rbac->getMenu());
     yii::app()->end();
     //$model=new Impuestos;
     yii::app()->crugemailer->mail_con_archivo('*****@*****.**', '*****@*****.**', 'hi', '130165');
     //	var_dump(mail('*****@*****.**','holas','holas'));
     yii::app()->end();
     echo Valorimpuestos::getimpuesto('200');
     $model->codocumento = '1';
     echo Valorimpuestos::model()->getimpuesto('100');
     yii::app()->end();
     $model->codocumento = '130';
     echo $model->Correlativo('numero');
     yii::app()->end();
     $modelin = CactiveRecord::model('Alkardex');
     print_r($modelin->getTableSchema());
     yii::app()->end();
     echo get_include_path();
     yii::app()->end();
     echo " la sesion expira  " . date("Y-m-d,H-i:s");
     yii::app()->end();
     echo MiFactoria::decimal(47 / 3);
     yii::app()->end();
     print_r(MiFactoria::opcionestoolbar(345, '130', '20'));
     yii::app()->end();
     $model = new Inventario();
     $objeto = $model->getMetaData();
     foreach ($objeto->columns as $columna) {
         echo "campo  " . $columna->name . "    ancho " . $columna->size . "  el tipo  : " . $columna->dbType . "<br>";
     }
     print_r($objeto->columns);
     //$model->rucpro='121212121212121';
     //$model->save();
     //print_r($model->getMetaData());
     yii::app()->end();
     $movimientoauxiliar = '45';
     $filakardexoriginal = Alkardex::model()->findByPk(1691);
     $filakardexoriginal->alkardex_alinventario->actualiza_stock($movimientoauxiliar, abs(3), null);
     yii::app()->end();
     $modeloreserva = Alreserva::model()->findByPk(255);
     var_dump($modeloreserva->alreserva_cantidadatendida);
     yii::app()->end();
     var_dump($kardex = Alkardex::model()->findByPk(1514)->alkardex_despacho);
     yii::app()->end();
     //tag(string $tag, array $htmlOptions=array ( ), mixed $content=false, boolean $closeTag=true)
     $arrayes = Almacendocs::model()->findAll("numvale=:nimi", array("nimi" => trim('130200000129')));
     echo count($arrayes);
     yii::app()->end();
     if (is_dir('assets')) {
         echo " si es un directrio";
     }
     yii::app()->end();
     Yii::app()->crugemailer->prueba();
     //echo CHtml::tag("div",array("style"=>"font:23px;fotn-size:445;"),"AQUI",true);
     $calse = new Cc();
     echo $calse::BELONGS_TO;
     //	var_dump($calse);
     //phpinfo(INFO_MODULES);
     yii::app()->end();
     //tag(string $tag, array $htmlOptions=array ( ), mixed $content=false, boolean $closeTag=true)
     $arrayes = Almacendocs::model()->findAll("numvale=:nimi", array("nimi" => trim('130200000129')));
     echo count($arrayes);
     yii::app()->end();
     echo strpos("manicomo", "c");
     Yii::app()->user->setFlash('error', "MENSAJE ERRO1");
     Yii::app()->user->setFlash('error2', "MENSAJE ERR2");
     Yii::app()->user->setFlash('error3', "MENSAJE ERR3");
     Yii::app()->user->setFlash('notice', "MENSAJE NORICE1");
     Yii::app()->user->setFlash('notice2', "MENSAJE NOTICE2");
     Yii::app()->user->setFlash('notice3', "MENSAJE NOTICE3");
     Yii::app()->user->setFlash('success', "SUCCESS ERRO1");
     Yii::app()->user->setFlash('success2', "SUCCESS ERR2");
     Yii::app()->user->setFlash('success3', "SUCCESS ERR3");
     // PRINT_R(Yii::app()->user->getFlashes());
     yii::app()->end();
     //$this->ConfirmaBuffer($id);
     $kardexhijos = MiFactoria::DevuelveKardexHijos($id);
     echo count($kardexhijos);
     /*foreach ( $kardexhijos as $filakardex ) {
     			//$filakardex->preciounit=$filakardex->getMonto();
     			//$filakardex->VerificaCantAtenReservas();
     			//$filakardex->InsertaAtencionReserva($filakardex->id);
     			echo "   id del kardex ".$filakardex->id."<br>";
     			//$filakardex->alkardex_alinventario->actualiza_stock($filakardex->codmov,abs($filakardex->cantidadbase()),null);
     
     			//$filakardex->InsertaCcGastos();
     		}
     	*/
     yii::app()->end();
     $id = 160;
     $modeloreserva = Alreserva::model()->findByPk($id);
     $modeloreserva->anular();
     PRINT_R(Yii::app()->user->getFlashes());
     yii::app()->end();
     $id = 490;
     $kardexhijos = MiFactoria::DevuelveKardexHijos($id);
     //var_dump($kardexhijos);
     foreach ($kardexhijos as $filakardex) {
         //calculando el precio unitario
         $filakardex->preciounit = $filakardex->getMonto();
         if ($filakardex->VerificaCantAtenReservas()) {
             PRINT_R($filakardex->mensajes);
         }
         //ECHO " GRABA  ".$filakardex->InsertaAtencionReserva($filakardex->id);
         $filakardex->alkardex_alinventario->actualiza_stock($filakardex->codmov, abs($filakardex->cantidadbase()), null);
         print_r($filakardex->alkardex_alinventario->mensajes);
         //verificandso si hay errrores recoger los mensajes
         /*if(!$filakardex->VerificaCantAtenReservas() or
                     !$filakardex->InsertaAtencionReserva() or
                     !$filakardex->alkardex_alinventario->actualiza_stock($filakardex->codmovimiento,$filakardex->cant,null)
                    )
                  $this->mensajes=array_merge($this->mensajes,$filakardex->mensajes,$filakardex->alkardex_alinventario->mensajes);
           */
         $filakardex->InsertaCcGastos();
     }
     yii::app()->end();
     //$nuevo=new MiFactoria();
     //Mifactoria::InsertaAtencionReserva(1357);
     $row = Alkardex::model()->findByPk(NULL);
     $matrix = Alreserva::model()->findAll("hidesolpe=:vhidsolpe AND codocu='450' ", array(":vhidsolpe" => $row->idref));
     $model = new Atencionreserva();
     $model->cant = $row->cant;
     $model->hidkardex = $row->id;
     $model->hidreserva = $matrix[0]['id'];
     $model->estadoatencion = Atencionreserva::ESTADO_CREADO;
     if (!$model->save()) {
         throw new CHttpException(500, "NO se Pudo insertar el registro de atenciones reservas ");
     }
     unset($model);
     unset($matrix);
     unset($row);
     yii::app()->end();
     $mimo = new ModeloGeneral();
     $mimo->insertamensaje('success', 'primermamesaje');
     $mimo->insertamensaje('success1', 'segundo mensaje');
     $mimo->insertamensaje('error', 'tercer mensaje');
     $mimox = new ModeloGeneral();
     $mimox->insertamensaje('successx', 'primermamesaje');
     $mimox->insertamensaje('success1x', 'segundo mensaje');
     $mimox->insertamensaje('errorx', 'tercer mensaje');
     /*$gg= new Alinventario();*/
     print_r($mimo->mensajes);
     echo "<br><br>";
     print_r($mimox->mensajes);
     $mensaj = array();
     $mensaj = array_merge($mensaj, $mimo->mensajes);
     $mensaj = array_merge($mensaj, $mimox->mensajes);
     //array_merge($mensaj,$mimox->mensajes);
     //$mensaj[]=$mimo->mensajes;
     //$mensaj[]=$mimox->mensajes+$mimo->mensajes;
     //array_push($mensaj,$mimox->mensajes);
     echo "<br><br>";
     print_r($mensaj);
     yii::app()->end();
     var_dump(Almacenmovimientos::model()->findByPk('10')->signo);
     //echo "total   ".Alinventario::getStockTotal('11000004');
     yii::app()->end();
     /*if(Yii::app()->periodo->getModel()->HoyDentroPeriodo()){
     			echo "ESTAMOS DENTRO DEL PERIODO";
     		} else {
     			echo "no  ESTAMOS DENTRO DEL PERIODO";
     		}
     
     		yii::app()->end();*/
     if (Yii::app()->periodo->verificaFechas('2015-03-5', '2015-03-4')) {
         echo "ESTAMOS DENTRO DEL PERIODO";
     } else {
         echo "no ESTAMOS DENTRO DEL PERIODO";
     }
     yii::app()->end();
     $gg = new Alkardex();
     //$gg=Alkardex::model()->findByPk(1236);
     //var_dump($gg->oldAttributes);
     echo "<BR><BR> ESCENARIO :" . $gg->getScenario() . "<BR>";
     $gg->save();
     var_dump($gg->errors);
     $ggt = new Tempalkardex();
     //$gg=Alkardex::model()->findByPk(1236);
     //var_dump($gg->oldAttributes);
     echo "<BR><BR> ESCENARIO :" . $ggt->getScenario() . "<BR>";
     $ggt->save();
     var_dump($ggt->errors);
     yii::app()->end();
     $matriz = $gg->relations();
     $nuevoarr = array();
     //print_r($matriz);
     foreach ($matriz as $clave => $matricita) {
         if ($matricita[0] == 'CHasManyRelation') {
             $nuevoarr[$matricita[2]] = $matricita[1];
         }
     }
     print_r($nuevoarr);
     //$hallo=array_search('CHasManyRelation',$matriz);
     // echo var_dump($hallo);
     yii::app()->end();
     $arreglo = array();
     /*$arreglo1=array('uno'=>1);
     		$arreglo2=array('dos'=>2);
     		$arreglo3=array('tres'=>3);*/
     $arreglo['uno'] = 1;
     $arreglo['dos'] = 2;
     print_r($arreglo);
     yii::app()->end();
     /***********************************************
      * Prueba de la propieda mensajes ARRAY() de
      * la clase MODELOGENERAL
      *
      * *******************       */
     $modelo = new ModeloGeneral();
     $modelo->insertamensaje('error', 'MENSAJE 1');
     $modelo->insertamensaje('error', 'MENSAJE 2');
     $modelo->insertamensaje('error', 'MENSAJE 3');
     $modelo->insertamensaje('notice', 'notice 1');
     $modelo->insertamensaje('notice', 'notice 2');
     $modelo->insertamensaje('success', 'succes 3');
     echo $modelo->parsemensajes('error');
     echo $modelo->parsemensajes('notice');
     echo $modelo->parsemensajes('success');
     //PRINT_R($modelo->mensajes);
     yii::app()->end();
     foreach ($arreglo as $registro) {
         echo $registro->cant;
         echo " <br><br>";
     }
     //var_dump($modelo->desolpe_alreserva);
     yii::app()->end();
     /***********************************************************
      *
      */
     /***********************************************
      * Prueba de que los registros hijos pueden ser
      * llmados desde la relacion
      *  HAS:MANY                                   */
     $modelo = Desolpe::model()->findByPk(168);
     $arreglo = $modelo->desolpe_alreserva;
     ///LLAMA A LA RELACION Y RETORNA OBJETOS HIJOS
     PRINT_R($arreglo);
     foreach ($arreglo as $registro) {
         echo $registro->cant;
         echo " <br><br>";
     }
     //var_dump($modelo->desolpe_alreserva);
     yii::app()->end();
     /***********************************************************
      *
      */
     echo Alconversiones::convierte('18005239', '120');
     yii::app()->end();
     $petri = new Peticion();
     print_r($petri->behaviors());
     if (array_key_exists('ActiveRecordLogableBehavior', $petri->behaviors())) {
         echo "salio";
     }
     yii::app()->end();
     /*print_r(MiFactoria::ExisteRegistroTemporal('Tempdpeticion',127));
     		yii::app()->end();*/
     /*print_r(Peticion::relations());
     		$campoenlace=Peticion::getFieldLink(Peticion::relations(),'Peticion','Tempdpeticion');
     		echo "<br>";
     		echo "campo enl ace   :   ".$campoenlace;
     		yii::app()->end();*/
     $id = 127;
     $con = $this->IniciaBuffer($id);
     foreach ($con as $grupo) {
         echo "<br>";
         foreach ($grupo as $objeto) {
             echo "<br>";
             foreach ($objeto as $row) {
                 echo "======================================================<br>";
                 print_r($row);
                 echo "======================================================<br>";
                 echo "<br>";
             }
         }
         echo "<br>";
     }
     $nombremodelocabecera = 'Peticion';
     foreach ($con as $registroshijos) {
         // foreach ($grupo as $registroshijos)
         //{
         // $campoenlace=$nombremodelocabecera::getFieldLink($nombremodelocabecera::relations(), $nombremodelocabecera,$nombremodelohijo);
         // $registroshijos=MiFactoria::getRegistrosHijos($nombremodelohijo,$campoenlace,$id);
         foreach ($registroshijos as $row) {
             if (is_null(MiFactoria::ExisteRegistro('Tempdpeticion', $id))) {
                 if ($row->save()) {
                     echo " <br>";
                     echo " *********************************";
                     echo " <br>";
                     echo "grabo     " . $row->getTableAlias();
                     echo " <br>";
                     echo " *********************************";
                     echo " <br>";
                 }
             }
         }
     }
     yii::app()->end();
     print_r($con);
     yii::app()->end();
     //	$lalo=null;
     $modeloant = Solpe::model()->findByPk(239);
     $matriz = $modeloant->relations();
     $palo = $this->recorro($matriz);
     //echo Solpe::HAS_MANY;
     print_r($palo);
     yii::app()->end();
     $modeloant = Solpe::model()->findByPk(239);
     print_r($modeloant->relations());
     //echo $modeloant->codart;
     yii::app()->end();
     $modelo = "Dpeticion";
     $s = new $modelo();
     print_r($s);
     yii::app()->end();
     $clasetemporal = "Alinventario";
     $valor = $clasetemporal::model()->hasAttribute('codart');
     echo "   gfgfgf " . $valor;
     yii::app()->end();
     $registroshijos = $modelo::model()->findAllBySql(" select *from\n  \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" . Yii::app()->params['prefijo'] . "dpeticion\n  \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t where\n  \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t hidpeticion=54 ");
     print_r($registroshijos);
     yii::app()->end();
     $inv = 'Alinventario';
     $arraymodelos = array();
     $modelo = $inv::model()->findByPk(343563);
     $modelo2 = $inv::model()->findByPk(343564);
     array_push($arraymodelos, $modelo);
     array_push($arraymodelos, $modelo2);
     //$nuevomod=Bloqueos::prueba();
     echo $arraymodelos[0]->codart;
     //print_r($modelo);
     yii::app()->end();
     // $modelo=new ModInventario();
     $modelo = ModInventario::loadModel(343563);
     $modeloant = ModInventario::loadModel(343563);
     //echo " hola  ".gettype($modelo->codart);
     //$modelo->actualizaprecio($cantmov,1.23,$this->CAMPO_STOCK_LIBRE);
     $nuevoprecio = 500;
     $cantmov = 100;
     if ($modelo->actualizaprecio($cantmov, $nuevoprecio, ModInventario::CAMPO_STOCK_LIBRE)) {
         echo "ok se relaizo el proceso :<br>";
         echo "cant libre :  " . $modelo->cantlibre . "                 anterior : " . $modeloant->cantlibre . "<br>";
         echo "cant reserva :  " . $modelo->cantres . "                  anterior : " . $modeloant->cantres . "<br>";
         echo "cant reserva :  " . $modelo->canttran . "                    anterior : " . $modeloant->canttran . "<br>";
         echo "Precio unitario :" . $modelo->punit . "                      anterior : " . round($modeloant->punit, 3) . "<br>";
         echo "dif de precio unitario :  " . $modelo->punitdif . "                 anterior : " . $modeloant->punitdif . "<br>";
         echo "cant stock afectado por el ambio de precio  :  " . $modelo->getStockCamposAfectadosPrecio() . "<br>";
         echo "cant movida  :   " . $cantmov . "<br>";
         echo "precio unitario nuevo  :   " . $nuevoprecio . "<br>";
         echo "-------<br><br>";
     } else {
         $matriz = $modelo->getMensajes();
         echo " HAY  " . COUNT($matriz) . "     Elementos";
         print_r($matriz);
         foreach ($matriz as $arreglo) {
             // echo   "  ".$arregloclave."  :   ".$valor."<br>";
         }
         echo "hu,,-------<br><r>";
     }
     yii::app()->end();
     $am = new MyCrugeAuthManager();
     $am->init();
     foreach ($am->autoDetect() as $itemName) {
         printf("%s\n", $itemName);
     }
     echo "  la direccion IP:  " . CrugeUtil::hash("julian");
     echo " es una instancia de " . gettype(Yii::app()->crugemailer);
     /*if (Yii::app()->CrugeMailer instanceof CrugeMailer) {
     			echo 'Crugemailer';
     		} else  {
     			echo "que carajo sera";
     		}*/
     yii::app()->end();
     $id = 54;
     $difiere = false;
     ///Asumismos que no ha variado
     $registrosactuales = Tempdpeticion::model()->findAllBySql(" select *from\n  \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" . Yii::app()->params['prefijo'] . "tempdpeticion\n  \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t where\n  \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t hidpeticion=" . $id . " and idusertemp = " . Yii::app()->user->id . " ");
     $registrosviejos = Dpeticion::model()->findAllBySql(" select *from\n  \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" . Yii::app()->params['prefijo'] . "dpeticion\n  \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t where\n  \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t hidpeticion=" . $id . " ");
     foreach ($registrosactuales as $row) {
         $newattributes = $row->getAttributes();
         ///Los valores de este instante
         foreach ($registrosviejos as $rowviejo) {
             $oldattributes = $rowviejo->getAttributes();
             echo " Emparewjando : " . $oldattributes['id'] . "  con  " . $newattributes['id'] . " <br>";
             if ($oldattributes['id'] == $newattributes['id']) {
                 echo " En la fila " . $oldattributes['id'] . "  : <br>";
                 foreach ($oldattributes as $clave => $valor) {
                     echo "Comparando  :<br>";
                     echo " original  :  " . $clave . "                               original=" . $valor . "   actual=" . $newattributes[$clave] . "<br>";
                     if ($valor != $newattributes[$clave] and $clave != 'idtemp' and $clave != 'idusertemp') {
                         echo " DIFERENTE <br><br> ";
                         $difiere = true;
                         break;
                     }
                 }
                 echo "  <br><br><br><br>";
             }
             /* print_r($newattributes );
                 echo "<br>";
                  print_r($atributos);
                echo "<br><br><br>";*/
             if ($difiere) {
                 break;
             }
         }
         /*print_r($this->bufferdetalle);
         		echo "<br>";
         		        if($difiere)
         			   break;*/
         if ($difiere) {
             break;
         }
     }
     echo "<br><br>   total    " . $difiere;
     yii::app()->end();
     $registrostemporalesdpeticion = array();
     $datosdebuffer = array();
     ///Estos datos
     $datosbufferdefila = array();
     $registroshijos = Dpeticion::model()->findAllBySql(" select *from\n  \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" . Yii::app()->params['prefijo'] . "dpeticion\n  \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t where\n  \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t hidpeticion=" . $hidpeticion . "  ");
     foreach ($registroshijos as $row) {
         ///Evitamos levantar items duplicados
         $existeregistro = Tempdpeticion::model()->find("id= " . $row->id . " AND idusertemp=" . Yii::app()->user->id . " ");
         if (is_null($existeregistro)) {
             ///Solo si no existe
             $modelotempdpeticion = new Tempdpeticion();
             $modelotempdpeticion->attributes = $row->attributes;
             $modelotempdpeticion->idusertemp = Yii::app()->user->id;
             array_push($registrostemporalesdpeticion, $modelotempdpeticion);
             $datosbufferdefila = $row->attributes;
             //array_push($datosbufferdefila,array('micalve'=>$row->id));
             array_push($datosdebuffer, $datosbufferdefila);
         }
     }
     //print_r($datosdebuffer);
     foreach ($datosdebuffer as $clave => $atributos) {
         print_r($atributos);
         echo "<br><br>";
     }
     //$this->bufferdetalle=$registrostemporalesdpeticion; ///Guarda el bu¡ffer de datos
     //return $registrostemporalesdpeticion;
     yii::app()->end();
     $arreglo = array();
     $arreglo1 = array('uno' => 1);
     $arreglo2 = array('dos' => 2);
     $arreglo3 = array('tres' => 3);
     array_push($arreglo, array('uno' => 1));
     array_push($arreglo, array('dos' => 2));
     print_r($arreglo);
     yii::app()->end();
     $id = 34;
     if ($id) {
         echo "dsdsdsds eco ";
     }
     yii::app()->end();
     $me = Yii::app()->user->id;
     $cadena = " select distinct idusertemp from " . Yii::app()->params['prefijo'] . "temppeticion WHERE id=" . $id . " and idusertemp <> " . $me . " ";
     $quien = Yii::app()->db->createCommand($cadena)->queryScalar();
     echo $cadena;
     echo " El tipo de quien " . gettype($quien) . "    -----    " . $quien;
     //yii::app()->end();
     if ($quien) {
         /// Quiere decir que hay otros que estan ediotnado el documento
         ///PARA VER SIS ES CIERTO DEEBMOS VERIFICAR Q ESTE USUARIO NO HA DEJADO LA VENTANA ABANDONADA CON E DOMCUENTO EN EDICION
         $elusuario = Yii::app()->user->um->LoadUserById($quien);
         ///hallando la sesion activa de este usuario
         $sesion_activa = Yii::app()->user->um->findSession($elusuario);
         if (is_null($sesion_activa)) {
             echo "  NO esta cupado man ";
             //No esta ocupado por que estaba editando pero ya temrino sus sesion, alo mejor dejo la ventana abierta
         } else {
             echo "  Estaa cupado por el usuario " . $elusuario->username;
             ///Si esta ocupado por que el usuario tiene sesion activa, y eszta editando
         }
     } else {
         echo "  NO esta cupado , estas solo mano  ";
     }
     yii::app()->end();
     $usuariojesus = Yii::app()->user->um->loadUser('admin', false);
     print_r($usuariojesus);
     echo "<br><br><br><br>";
     $modelo = Yii::app()->user->um->findSession($usuariojesus);
     echo " el tipo retoranado es " . gettype($modelo);
     print_r($modelo);
     echo "<br><br><br><br>El  modelo de sesion de Jesus";
     $modelo = Yii::app()->user->um->findSession(Yii::app()->user->um->loadUser('jesus', false));
     echo " el tipo retoranado es " . gettype($modelo);
     print_r($modelo);
     yii::app()->end();
     $modelo->isSessionExpired();
     if ($expiro) {
         echo "   Ya expiro ";
     } else {
         echo "   Todavia esta vignte la sesion  ";
     }
     yii::app()->end();
     $this->layout = '//layouts/iframe';
     $this->render('carachita');
     yii::app()->end();
     // $modelosolpe=Desolpe::model()->findByPk(79);
     $modelokardex = Alkardex::model()->findByPk(1236);
     $clonado = $modelokardex->clonaregistro();
     //echo $clonado->cant;
     print_r($clonado);
     yii::app()->end();
     echo " numeor reservar compras " . $modelosolpe->numero_reservascompras;
     echo " modelo cant " . $modelosolpe->cant;
     yii::app()->end();
     if ($cantidadatendidaacumulada + $modelokardex->cant == $modeloreserva->cant) {
         $modeloreserva->estadoreserva = '20';
         ///Completo...!
         ///Veriifcar primero si DESOLPE tiene partido RESERVA +RESERVA PARA COMPRA
         if ($modelodesolpe->numero_reservascompras == 0) {
             ///Si no tiene solicitudes de compra
             $modelodesolpe->est == '40';
         }
         ///Completo...!
     }
     $kardex = Alkardex::model()->findByPk(1125);
     echo "  la sumatoria de las cantidades :  " . $kardex->alkardex_alkardextraslado_emisor_cant;
     echo "  la cantidad  :  " . $kardex->cant;
     yii::app()->end();
     $modelo = new Alkardex();
     $centro = $modelo->alkardex_alinventario->cantlibre;
     echo "  el cento es  " . $centro;
     yii::app()->end();
     $modelo = Desolpe::model()->findByPk(74)->desolpe_alinventario;
     $modelo->cantlibre = 1234;
     $modelo->setScenario('modificacantidad');
     $modelo->save();
     echo "  ES " . $modelo->codart;
     yii::app()->end();
     //$modelo->Actualizar($movimiento,$cantidad,$unidad,$punitario=null);
     $mensaje = $modelo->Actualizar('80', 0.03, '140', null);
     //echo " El almacen : ".$modelo->desolpe_alinventario->codalm."  \n";
     if (strlen($mensaje) == 0) {
         echo " cantidad  libre : " . $modelo->cantlibre . "  \n";
         echo " cantidad  libre : " . $modelo->cantlibre . "  \n";
         echo " cantidad reservada : " . $modelo->cantres . "  \n";
         echo " cantidad  transito : " . $modelo->canttran . "  \n";
         echo " precio unitario : " . $modelo->punit . "  \n";
         echo " cantidad  movida : " . $modelo->cantidadmovida . "  \n";
         echo " monto movido : " . $modelo->montomovido . "  \n";
         // echo " La conversion  : ".Alconversiones::model()->convierte($modelo->codart,$modelo->um)."  \n";
         //echo " catidad reservada  : ".$modelo->desolpe_alinventario->cantres."  \n";
     } else {
         echo "  " . $mensaje;
     }
     yii::app()->end();
 }
Exemple #13
0
 public function actionCargafavorito($id)
 {
     $modelohijo = 'Detgui';
     $modelodetalle = new $this->modeloshijos[$modelohijo]();
     $modelodetalle->valorespordefecto();
     $modelocabeza = $this->loadModel($id);
     if (is_null($modelocabeza)) {
         throw new CHttpException(500, 'No existe esta guia con este ID');
     }
     if ($this->eseditable($modelocabeza->{$this->campoestado})) {
         if (isset($_POST[$this->modeloshijos[$modelohijo]])) {
             $modelodetalle->attributes = $_POST[$this->modeloshijos[$modelohijo]];
             $criterio = new CDbcriteria();
             $criterio->addcondition("hidsolpe=:vhidsolpe");
             $criterio->params = array(":vhidsolpe" => $modelodetalle->idenfavorito);
             $listafavoritos = Desolpe::model()->findAll($criterio);
             // echo " esto es ".count($listafavoritos);
             //yii::app()->end();
             foreach ($listafavoritos as $fila) {
                 // if($fila['est'] <> '02' and $fila['est'] <> '99' ) //SIEMPRE QUE SEA UN ESTADO VALIDO
                 // {
                 $registro = new Desolpe();
                 $registro->setScenario('insert');
                 $registro->attributes = $modelodetalle->attributes;
                 $registro->codart = $fila['codart'];
                 $registro->um = $fila['um'];
                 $registro->txtmaterial = $fila['txtmaterial'];
                 $registro->cant = $fila['cant'];
                 $registro->hidsolpe = $modelocabeza->id;
                 $registro->codocu = '350';
                 if ($registro->save()) {
                     Yii::app()->user->setFlash('success', " Se Agrego la lista '" . $registro->codart . "' a la solicitud ");
                 } else {
                     // echo " NO grabo  \n";
                     // print_r($registro->attributes);
                 }
                 //  }
             }
             //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\twindow.parent.\$('#cru-detalle').attr('src','');\n\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()->user->setFlash('success', " Se Agrego la lista  a la solicitud ");
             $this->render('update', array('model' => $modelocabeza, 'idcabeza' => $modelocabeza->id));
             Yii::app()->end();
         }
         // if (!empty($_GET['asDialog']))
         $this->layout = '//layouts/iframe';
         $this->render('_form_cargafavorito', array('model' => $modelodetalle));
     } else {
         throw new CHttpException(500, 'No se puede agregar mas items a esta solpe');
     }
 }
Exemple #14
0
 private function devuelvereserva()
 {
     $modelosolpe = Desolpe::model()->findByPk($this->idref);
     //$reserva=$modelosolpe->desolpe_alreserva;
     if (is_null($modelosolpe)) {
         throw new CHttpException(500, __CLASS__ . ' - ' . __FUNCTION__ . '   Error no se pudo encontrar el detalle de Solpe ');
     }
     //$cantacumulada=$modelosolpe->desolpe_alreserva[0]->alreserva_cantidadatendida;
     $reserva = Alreserva::model()->find("hidesolpe=:vidsolpe AND codocu in ('450','320') AND estadoreserva <> '30' ", array(":vidsolpe" => $modelosolpe->id));
     if (is_null($reserva)) {
         throw new CHttpException(500, __CLASS__ . ' - ' . __FUNCTION__ . '   Error no se pudo encontrar la reserva asociada a la desolpe');
     }
     return $reserva;
 }
Exemple #15
0
 private function esatencionRQ()
 {
     //buacando el detalle de la OC mediante el idref
     $docompram = Docompra::model()->findByPk($this->idref);
     //buscando el detalle de la Solpe
     $detallesolpe = Desolpe::model()->findByPk($docompram->iddesolpe);
     //Buscando si tiene reserva , ES UNA SOLPE DE COMPRA IMPUTADA (atencion partida)
     return $detallesolpe->idreserva;
 }
Exemple #16
0
 public function beforeSave()
 {
     if ($this->isNewRecord) {
         $this->iduser = Yii::app()->user->id;
         //$command = Yii::app()->db->createCommand(" select nextval('sq_guias') ");
         $this->usuario = Yii::app()->user->name;
         $this->fechacrea = date("Y-m-d H:i:s");
         //$this->n_guia= $command->queryScalar();
         $this->codocu = '350';
         //if($this->tipsolpe<>'S'){ ///Si no se trata de servicios
         $registroinventario = $this->desolpe_alinventario;
         //$registroinventario=Alinventario::model()->encontrarregistro($this->centro,$this->codal,$this->codart);
         $this->punitplan = $registroinventario->punit * $this->cant * Alconversiones::convierte($this->codart, $this->um) * yii::app()->tipocambio->getcambio($registroinventario->almacen->codmon, yii::app()->settings->get('general', 'general_monedadef'));
         //}
         $this->punitreal = 0;
         $this->cantaten = 0;
         //$this->codobjeto='001';
         $this->est = empty($this->est) ? ESTADO_PREVIO : $this->est;
         //para que no lo agarre la vista VW-GUIA  HASTA QUE GRABE TODO EL DETALLE
         ///el item
         $criterio = new CDbCriteria();
         $criterio->condition = "hidsolpe=:nguia  ";
         $criterio->params = array(':nguia' => $this->hidsolpe);
         $this->item = str_pad(Desolpe::model()->count($criterio) + 1, 3, "0", STR_PAD_LEFT);
     } else {
         // IF ($this->est=='99') //SI SE TRATA DE UNA GUIA NUEVA COLOCARLE 'PREVIO'
         //$this->est='01';
         $registroinventario = $this->desolpe_alinventario;
         ///si ha cambiado el material o la cantidad  , el precio debe de actualziarse
         /*********************************************************/
         //$fila=Yii::app()->db->createCommand("SELECT codart,cant FROM  ".Yii::app()->params['prefijo']."desolpe1  WHERE id=".$this->id."")->QueryAll();
         //echo "codiugo   ".gettype($codigo)."  valor ".$codigo."  longitud ".strlen($codigo)."\n";
         //echo "valor del registro ".gettype($this->codart)."  valor ".$this->codart."  longitud ".strlen($this->codart)."\n";
         //yii::app()->end();
         //if($fila['codigo'] <> $this->codart or $fila['cant'] <> $this->cant)
         if ($this->tipsolpe != 'S') {
             ///Si no se trata de servicios
             if ($this->oldattributes['codart'] != $this->codart or $this->oldattributes['cant'] != $this->cant) {
                 /*echo " codigo anterior".$this->oldattributes['codigo'] ."  codigo actual ".$this->codart."<br>";
                 		echo " cantidad anterior".$this->oldattributes['cant'] ."   cantidad actual ".$this->cant."<br>";
                 		yii::app()->end();*/
                 //$registroinventario=Alinventario::model()->encontrarregistro($this->centro,$this->codal,$this->codart);
                 //$registroinventario=Alinventario::model()->encontrarregistro($this->centro,$this->codal,$this->codart);
                 $this->punitplan = $registroinventario->punit * $this->cant * Alconversiones::convierte($this->codart, $this->um) * yii::app()->tipocambio->getcambio($registroinventario->almacen->codmon, yii::app()->settings->get('general', 'general_monedadef'));
             }
         }
         //echo "se cumlpio carajo";
         //yii::app()->end();
         //$this->ultimares=" ".strtoupper(trim($this->usuario=Yii::app()->user->name))." ".date("H:i")." :".$this->ultimares;
     }
     return parent::beforeSave();
 }
Exemple #17
0
 public function actionAgregaitemsolpe($idcabeza, $cest)
 {
     if ($cest == '10' or $cest == '99') {
         $model = new Solpe();
         $model->setscenario("agregaritemscompra");
         $this->performAjaxValidation1($model);
         if (isset($_POST['Solpe'])) {
             $model2 = Desolpe::model()->find("numero=:xnumero", array(":xnumero" => $_POST['Solpe']['numero']));
             //$model->setscenario("xxx");
             $model->Pasacompra($model2->hidsolpe, $idcabeza);
             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\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();
             }
         }
         if (!empty($_GET['asDialog'])) {
             $this->layout = '//layouts/iframe';
         }
         $this->render('_form_detalle_solpe_total', array('model' => $model, 'idcabeza' => $idcabeza));
     } else {
         //si ya cambio el estado impisble agregar mas items
         if (!empty($_GET['asDialog'])) {
             $this->layout = '//layouts/iframe';
         }
         $this->render('vw_imposible', array());
     }
 }
Exemple #18
0
 public function actionpideoferta()
 {
     $autoIdAll = $_POST['cajita'];
     $mensajeerror = "";
     if (count($autoIdAll) > 0) {
         foreach ($autoIdAll as $autoId) {
             $modelo = Desolpe::model()->findByPk($autoId);
             if (!is_null($modelo)) {
                 $registros = Maestroclipro::model()->findAll("codart=:vcodigo", array(":vcodigo" => $modelo->codart));
                 foreach ($registros as $fila) {
                     ///datos de los usuarios a enviar
                     $mensajeerror .= yii::app()->correo->correo_simple(Contactos::getListMailEmpresa($fila->codpro, '210'), Yii::app()->user->email, 'SOLICITUD DE COTIZACION', 'Este es un correo automatico, hay nuevas peticiones de oferta, revisar tu buzon');
                     if ($mensajeerror == "") {
                         echo " Se ha enviado las peticiones de oferta correspondientes";
                     }
                     $modelito = Ofertas::model()->find("id=:vid", array(":vid" => $modelo->id));
                     if (is_null($modelito)) {
                         $modelito = new Ofertas();
                         $modelito->setAttributes(array('hidmaestroclipro' => $fila->id, 'fechaprog' => $modelo->fechaent, 'iduser' => Yii::app()->user->id, 'fechadoc' => date('Y-m-d', time()), 'cant' => $registros->cant, 'iddesolpe' => $modelo->id));
                         $modelito->save();
                     }
                 }
             }
         }
     }
     if ($mensajeerror == "") {
         echo " Se ha enviado las peticiones de oferta correspondientes";
     }
 }
Exemple #19
0
 public function anular()
 {
     $retorno = false;
     $mensaje = "";
     if ($this->sepuedeanular()) {
         if ($this->codocu == '450') {
             if ($this->alreserva_cantidadatendida == 0) {
                 if ($this->desolpe->desolpe_alinventario->stockreserva_a_libre($this->cantidadbase())) {
                     $this->desolpe->desolpe_alinventario->setScenario(Alinventario::ESCENARIO_ACTUALIZARSTOCK);
                     if (!$this->desolpe->desolpe_alinventario->save()) {
                         //Yii::app()->user->setFlash('error', "La reserva del item  ".$this->desolpe->item."  del material ".$this->desolpe->txtmaterial." No se pudo anular porque no se grabo el registro del inventario ");
                         $mensaje .= "La reserva del item  " . $this->desolpe->item . "  del material " . $this->desolpe->txtmaterial . " No se pudo anular porque no se grabo el registro del inventario<br> ";
                     } else {
                         $regde = $this->desolpe;
                         $regde->setScenario('cambiaestado');
                         ///tambien actualizar el status de la desolpe
                         $regde->est = '30';
                         if (!$regde->save()) {
                             $mensaje .= 'NO se grabo la solpe';
                             $retorno = false;
                         } else {
                             $retorno = true;
                         }
                         //$mensaje.= "La reserva del item  ".$this->desolpe->item."  del material ".$this->desolpe->txtmaterial." No se pudo anular porque no se grabo el registro del inventario<br> ";
                         //Yii::app()->user->setFlash('success', "La reserva del item  ".$this->desolpe->item."  del material ".$this->desolpe->txtmaterial." Se ha anulado ");
                     }
                 } else {
                     $retorno = false;
                     $mensaje .= "No se puede anular esta reserva no existe suficiente stock reservado para pasar al stock libre <br>";
                 }
             } else {
                 $retorno = false;
                 $mensaje .= "No se puede anular esta reserva Porque tiene atenciones validadas <br>";
             }
             //verifica el stock
         }
         if ($this->codocu == '800') {
             //verifica que no tenga ninguna SOLPE DE COMRPAS QUE hace referfncia a esta reserba
             $gg = Desolpe::model()->find("idreserva=:vidreserva", array(":vidreserva" => $this->id));
             if (!is_null($gg)) {
                 if ($gg->est != '20') {
                     $mensaje .= " Esta reserva no se puede anular ya tiene como referencia a la Solicitud de compra " . $gg->desolpe_solpe->numero . "   Item " . $gg->item . "<br>";
                 }
             }
         }
     } else {
         $mensaje .= "La reserva del item  " . $this->desolpe->item . "  del material " . $this->desolpe->txtmaterial . " Ya tiene atenciones<br> ";
         //Yii::app()->user->setFlash('error', "La reserva del item  ".$this->desolpe->item."  del material ".$this->desolpe->txtmaterial." Ya tiene atenciones ");
     }
     if (trim($mensaje) == "") {
         $this->estadoreserva = '30';
         $this->save();
     }
     return $mensaje;
 }
Exemple #20
0
<h1> Reservar solicitud  -  <?php 
echo $modelo->numero;
?>
  </h1>
<div class="division">
<div class="wide form">
<?php 
$form = $this->beginWidget('CActiveForm', array('id' => 'almacendocs-form', 'enableAjaxValidation' => false));
?>


<div class="row">
<?php 
$this->widget('zii.widgets.grid.CGridView', array('id' => 'atiende-solpe-grid', 'dataProvider' => Desolpe::model()->search_por_solpe_mas($modelo->id), 'cssFile' => Yii::app()->getTheme()->baseUrl . '/css/style-grid-pequeno.css', 'summaryText' => '', 'columns' => array(array('class' => 'CCheckBoxColumn', 'selectableRows' => 20, 'value' => '$data->id', 'checkBoxHtmlOptions' => array('name' => 'cajita[]')), 'item', array('name' => 'tipimputacion', 'header' => 'I'), array('name' => 'tipsolpe', 'header' => 'T'), array('name' => 'st.', 'header' => 'st', 'type' => 'raw', 'value' => 'CHtml::image(Yii::app()->getTheme()->baseUrl.Yii::app()->params["rutatemaimagenes"].$data->codocu.$data->est.".png")'), 'cant', array('name' => 'um', 'value' => '$data->desolpe_um->desum'), 'codart', 'txtmaterial', array('name' => 'textodetalle', 'type' => 'raw', 'header' => 't', 'value' => '(!empty($data->textodetalle))?CHtml::image(Yii::app()->getTheme()->baseUrl.Yii::app()->params["rutatemaimagenes"]."texto.png","hola"):""'), 'centro', 'codal', 'usuario', array('name' => 'Stock', 'value' => '$data->desolpe_alinventario->cantlibre', 'type' => 'raw'), array('name' => 'Reservado', 'value' => '$data->desolpe_alinventario->cantres', 'type' => 'raw'), array('header' => 'Reservar', 'value' => 'CHTML::TextField("cantreserva".$data->id,$data->cant,array(\'size\'=>\'4\'))', 'type' => 'raw', 'htmlOptions' => array('width' => '10px')), array('header' => 'Tomar', 'value' => 'CHTML::TextField("cantcompra".$data->id,0,array(\'size\'=>\'4\'))', 'type' => 'raw', 'htmlOptions' => array('width' => '10px')), array('name' => 'holas', 'type' => 'raw', 'value' => '($data->est=="03")?CHtml::ajaxSubmitButton("Ok",
																				array("almacendocs/reservar"),
																				array("type"=>"POST",
																					"data"=>array(
																						"vcantreserva"=>"js:cantreserva".$data->id.".value",
																						"vhidesolpe"=>$data->hidsolpe,
																						"vcantcompra"=>"js:cantcompra".$data->id.".value",
																						"vidsolpe"=>$data->id),																																														
																					"success"=>"js:function(data) { $.fn.yiiGridView.update(\'atiende-solpe-grid\')}"
																					)
																			):$data->desolpe_estado->estado'), array('class' => 'CButtonColumn', 'buttons' => array('update' => array('url' => '$this->grid->controller->createUrl("/almacendocs/reservar",
																					array("id"=>$data->id,																					      
																						
																								
																							)
																				)', 'label' => 'Aprobar'), 'delete' => array('visible' => 'false'), 'view' => array('visible' => '($data->est=="03")?true:false', 'url' => '$this->grid->controller->createUrl("/solpe/Modificadetalle/",
										    array("id"=>$data->id,
                                                                                         "asDialog"=>1,
Exemple #21
0
 public function yaestaenuso()
 {
     $criterio = new DBCriteria();
     $criterio->addcondition("codservicio=:servi");
     $criterio->paramas = array(":servi" => $this->codserv);
     $registro = Desolpe::model()->find($criterio);
     return is_null($registro) ? false : true;
 }