Ejemplo n.º 1
0
 public static function RegistrosDetallePorMovimiento($mov, $numdoc = NULL)
 {
     switch ($mov) {
         case '10':
             $registros = self::DevuelveSolPespendientes($numdoc);
             break;
         case '79':
             $registros = self::DevuelveSolPespendientes($numdoc);
             break;
         case '68':
             $id = Ocompra::model()->find("numcot=:vnumerocompra", array(":vnumerocompra" => trim($numdoc)))->idguia;
             $registros = self::DevuelveServiciosPendientes($id);
             break;
         case '77':
             //INIICNAR TRASALADO, n hya nada que decolver
             $registros = array();
             break;
         case '78':
             //Acepta traslado
             $id = Almacendocs::model()->find("numvale=:vnumvale", array(":vnumvale" => trim($numdoc)))->id;
             $registros = self::DevuelveTraspasospendientes($id);
             break;
         case '98':
             //carag inicial no haya nada que devolver
             $registros = array();
             break;
         case '89':
         case '40':
             //anular vale
             // yii::app()->end();
             $id = Almacendocs::model()->find("numvale=:vnumvale", array(":vnumvale" => trim($numdoc)))->id;
             $registros = self::DevuelveKardexHijosconalias($id);
             break;
         case '70':
             //Reingreso
             // yii::app()->end();
             $registros = array();
             break;
         case '20':
             /* echo "salio el mv";
                yii::app()->end();*/
             $id = Almacendocs::model()->find("numvale=:vnumvale", array(":vnumvale" => trim($numdoc)))->id;
             $registros = self::DevuelveKardexHijosconalias($id);
             break;
         case '30':
             /* echo "salio el mv";
                yii::app()->end();*/
             $id = Ocompra::model()->find("numcot=:vnumerocompra", array(":vnumerocompra" => trim($numdoc)))->idguia;
             $registros = self::DevuelveComprasPendientes($id);
             break;
         case 2:
             echo "i equals 2";
             break;
     }
     //  var_dump($registros);
     return $registros;
 }
Ejemplo n.º 2
0
 public function generacontabilidad($model)
 {
     $transaccion = $model->dbConnection->beginTransaction();
     switch ($model->codocuref) {
         ///Luego hacer los procedimientos segun sea el caso
         case '210':
             ///un documento de compras
             //sacando de una vez el descuento y la conversion  moneda para calcular preciosn
             $modelocompra = Ocompra::model()->find("numcot=:numerox  ", array(":numerox" => trim($model->numdocref)));
             $descuento = is_null($modelocompra->descuento) ? 0 : $modelocompra->descuento / 100;
             $moneda = $modelocompra->moneda;
             if ($moneda == Yii::app()->params['monedadef']) {
                 $conversion = 1;
             } else {
                 $conversion = Numeromaximo::cambiomoneda($moneda, Yii::app()->params['monedadef']);
             }
             /***********************************************************************
                +		LLENAMOS EL LOG DE ENTREGAS DE LA POSICION DE LA ORDEN DE COMPRA
                ************************************************************************/
             $modelokardex = Alkardex::model()->findall("hidvale=" . $model->id . "  and codestado='99' ");
             if (count($modelokardex) > 0) {
                 for ($i = 0; $i < count($modelokardex); ++$i) {
                     $modeloentregas = new Alentregas();
                     $modeloentregas->iddetcompra = $modelokardex[$i]['idref'];
                     $modeloentregas->cant = $modelokardex[$i]['cant'];
                     $modeloentregas->idkardex = $modelokardex[$i]['id'];
                     if (!$modeloentregas->save()) {
                         $transaccion->rollback();
                         throw new CHttpException(500, 'Se produjo un error al registrar las entregas');
                     }
                     ///TAMBIEN ACTUALIZAMOS EL STATRUS DE LAS POSCIONES DE LA ORDEN DE COMPRA
                     // $modelodetoc=New Docompra;
                     $modelodetoc = Docompra::model()->findByPk($modelokardex[$i]['idref']);
                     if (!is_null($modelodetoc)) {
                         //verificando primero cuanto ya se ha atendido antes
                         $criteria = new CDbCriteria();
                         $criteria->select = 'sum(cant) AS sumatoria';
                         $criteria->addCondition(" iddetcompra= " . $modelokardex[$i]['idref'] . "   and idkardex <> " . $modelokardex[$i]['id']);
                         $rowsuma = Alentregas::model()->find($criteria);
                         $totalatendido = is_null($rowsuma) ? 0 : $rowsuma['sumatoria'];
                         ///esto es lo que se ha atendido
                         if ($totalatendido >= $modelodetoc->cant) {
                             $transaccion->rollback();
                             throw new CHttpException(500, 'Se produjo un error, esta poscionde pedido ya estaba atendida por completo');
                         } else {
                             if ($modelokardex[$i]['cant'] + $totalatendido > $modelodetoc->cant) {
                                 $transaccion->rollback();
                                 throw new CHttpException(500, 'Se produjo un error, con este ingreso se sobrepasa la cantidad comprada' . $totalatendido);
                             } else {
                                 if ($modelokardex[$i]['cant'] + $totalatendido < $modelodetoc->cant) {
                                     $modelodetoc->estadodetalle = '50';
                                     //atencion parcial
                                 } else {
                                     $modelodetoc->estadodetalle = '60';
                                     //atencion total
                                 }
                                 if (!$modelodetoc->save()) {
                                     $transaccion->rollback();
                                     throw new CHttpException(500, 'No se pudo grabar la actualizacion del detalle del pedido');
                                 }
                             }
                         }
                     }
                     /***************************************************************
                      *			ACTUALIZAR EL INVENTARIO TAMBIEN 
                      *              Datos a actualizar 
                      *				CANTIDAD , PRECIO , PONDERADO PRECIO UNITARIO
                      *				
                      ****************************************************************/
                     //la cantidad
                     $inventario = Alinventario::model()->find(" codalm=:almacencito and codart=:articulito and codcen=:centrito", array(":almacencito" => $model->codalmacen, ":articulito" => $modelokardex[$i]['codart'], ":centrito" => $model->codcentro));
                     if (!is_null($inventario)) {
                         //$inventario->codalm=$model->codalmacen;
                         //$inventario->codart=$model->codalmacen;
                         //$inventario->codcentro=$model->codcentro;
                         //$inventario->codmon=Yii->app()->params['monedadef'];
                         $inventario->um = $modelokardex[$i]['um'];
                         $inventario->cantlibre = $inventario->cantlibre + $modelokardex[$i]['cant'];
                         $inventario->punit = ($modelodetoc->punit * (1 - $descuento) * $conversion * $modelokardex[$i]['cant'] + ($inventario->cantlibre + $inventario->cantres) * $inventario->punit) / ($inventario->cantlibre + $inventario->cantres + $modelokardex[$i]['cant']);
                         $inventario->codmon = Yii::app()->params['monedadef'];
                     } else {
                         $inventario = new Alinventario();
                         $inventario->codalm = $model->codalmacen;
                         $inventario->codart = $modelokardex[$i]['codart'];
                         $inventario->codcen = $model->codcentro;
                         $inventario->codmon = Yii::app()->params['monedadef'];
                         $inventario->um = $modelokardex[$i]['um'];
                         $inventario->cantlibre = $modelokardex[$i]['cant'];
                         $inventario->canttran = 0;
                         $inventario->cantres = 0;
                     }
                     if (!$inventario->save()) {
                         $transaccion->rollback();
                         echo "hola" . $inventario->codalm . "--" . $inventario->codart . "--" . $inventario->codcen . "--" . $inventario->codmon . "--" . $inventario->um . "--" . $inventario->cantlibre;
                         throw new CHttpException(500, 'NO se pudieron actualizar los datos de inventario ' . $inventario->codalm . "--" . $inventario->codart . "--" . $inventario->codcen . "--" . $inventario->codmon . "--" . $inventario->um . "--" . $inventario->cantlibre);
                         //throw new CHttpException(500,'NO se pudieron actualizar los datos de inventario ');');
                     }
                     /*************************************
                      *
                      ************************************************************************/
                 }
             } else {
                 //si no enuentra kardex hijos
                 $transaccion->rollback();
                 throw new CHttpException(500, 'Se produjo un error , no se hallaron kardex hijos');
             }
             //fin de si encuentra kardex hijos
             /// debemos tambien de colcoar el status de cambio de estado al KARDEX
             $command = Yii::app()->db->createCommand(" UPDATE Alkardex set codestado='10' where hidvale=" . $model->id);
             $modelocompra->codestado = '60';
             if ($command->execute() > 0 and $modelocompra->save()) {
                 $transaccion->commit();
             } else {
                 $transaccion->rollback();
                 throw new CHttpException(500, 'Hubo un error inesperado al moemento de actualizar el kardex  ');
             }
             break;
         case '340':
             // Solicitud de pedido
             ///primero cambiamos el estado de los  kardex
             $command = Yii::app()->db->createCommand(" UPDATE alkardex  set codestado='10' , valido='1' where checki='1' and  hidvale=" . $model->id . " ");
             $command->execute();
             ///luego cambiamos el estado del vale
             $model->cestadovale = '20';
             $model->save();
             //actualizamos el estado de las solpe y desolpe
             $transaccion->commit();
             break;
         default:
             throw new CHttpException(500, 'Se ha tomado un codigo/documento que no es valido');
     }
 }
Ejemplo n.º 3
0
<div style=" width:300px;  " >
<?php 
if ($codprov == '') {
    $codprov = null;
}
$this->widget('zii.widgets.grid.CGridView', array('summaryText' => '', 'id' => 'precios-grid', 'dataProvider' => Ocompra::historicoprecios($codigom, $codprov), 'columns' => array(array('name' => 'fecdoc', 'header' => 'Fec', 'value' => 'date("d.m.y", strtotime($data["fecdoc"]))', 'htmlOptions' => array('width' => 40)), array('name' => 'numcot', 'header' => 'O.c.', 'value' => '$data["numcot"]', 'htmlOptions' => array('width' => 40)), array('name' => 'punit', 'header' => 'P Unit', 'value' => 'Mifactoria::decimal($data["punit"],2)', 'htmlOptions' => array('width' => 40)), array('name' => 'moneda', 'header' => 'Moneda', 'value' => '$data["moneda"]', 'htmlOptions' => array('width' => 15)), array('name' => 'umbase', 'header' => 'Um', 'value' => '$data["desumbase"]', 'htmlOptions' => array('width' => 20)))));
?>
</div>
Ejemplo n.º 4
0
 private function proceso($idevento, $id)
 {
     $mensaje = "";
     $compra = Ocompra::model()->findByPk($id);
     switch ($idevento) {
         case 65:
             ///APROB
             if (Ocompra::puedeautorizar()) {
                 $filas = $compra->detallefirme;
                 foreach ($filas as $row) {
                     // $filafirme=Docompra::model()->findByPk($row->id);//solo si
                     //Solo si no esta anulado
                     $row->setScenario('cambiaestado');
                     if (in_array($row->estadodetalle, Estado::estadosnocalculablesdetalle($compra->coddocu))) {
                         $row->estadodetalle = ESTADO_DOCOMPRA_APROBADO;
                     }
                     if (!$row->save()) {
                         $mensaje .= " Ocurrió un error  en el item " . $row->item . " al guardar los datos del estado detalle  <br>";
                     }
                 }
             } else {
                 $mensaje .= " No tiene permisos para efectuar esta acción <br>";
             }
             break;
         case 67:
             ///deshacer APROBACIOPN
             ///AQUI YA NNOS ETRABAJA CON EL BUFFER SE TRABAJADA CON LA TABAL ORIIGNAL
             $filas = $compra->detallefirme;
             foreach ($filas as $row) {
                 //$filafirme=Docompra::model()->findByPk($row->id);
                 if ($row->cantidadentregada > 0) {
                     $mensaje .= "  El item " . $row->item . "  Ya tiene ingreso de almacen <br>";
                 } else {
                     //si no tiene atenciones entonces normal no mas Revertimos
                     $row->setScenario('cambiaestado');
                     if (in_array($row->estadodetalle, Estado::estadosnocalculablesdetalle($compra->coddocu))) {
                         $row->estadodetalle = ESTADO_DOCOMPRA_CREADO;
                     }
                     $mensaje .= $row->save() ? "" : " No se pudo revertir  el item " . $row->item . "<br>";
                     /*print_r($row->geterrors());
                       print_r($row->geterrors());yii::app()->end();*/
                 }
                 //refrescar el buffer
                 $this->ClearBuffer($id);
                 //Limpia temporal
                 $this->IniciaBuffer($id);
                 //Levanta temporales
             }
             break;
         case 66:
             ///aNULAR
             //aqui hayq ue tabajar directametne cn la tabla firme DOCOMPRA
             $filas = $compra->detallefirme;
             //aqui hayq ue tabajar directametne cn la tabla firme DOCOMPRA
             foreach ($filas as $row) {
                 if ($row->cantidadentregada > 0) {
                     $mensaje .= "  El item " . $row->item . "  Ya tiene ingresos de almacen <br>";
                 } else {
                     //si no tiene atenciones entonces normal no mas Revertimos
                     $row->setScenario('cambiaestado');
                     $row->estadodetalle = ESTADO_DOCOMPRA_ANULADO;
                     $mensaje .= $row->save() ? "" : " No se pudo anular el item " . $row->item . "<br>";
                 }
             }
             //refrescar el buffer
             $this->ClearBuffer($id);
             //Limpia temporal
             $this->IniciaBuffer($id);
             //Levanta temporales
             break;
     }
     return $mensaje;
 }
Ejemplo n.º 5
0
 public function checkcompra($attribute, $params)
 {
     //Verfiicando que existan una compra liberada
     $registro = Ocompra::model()->findAll("numcot=:nimi", array("nimi" => trim($this->numdocref)));
     if (!(count($registro) > 0)) {
         $this->adderror('numdocref', 'Esta Orden de compra no existe ' . $this->numdocref . ' ' . count($registro));
     } else {
         $aestadosoc = array(ESTADO_OC_CREADA, ESTADO_OC_ANULADA, ESTADO_OC_FACTURADA);
         //NO TINEE QUE ESTAR CREADA NI ANULADA NI FACTURADA
         if (in_array($registro->codestado, $aestadosoc)) {
             $this->adderror('numdocref', 'Esta Orden de compra no tiene status valido : ' . $registro->estado);
         }
         ////Verfiicando que existan en esa solpe items que esten reservadas
         /* $matriz=Desolpe::model()->findAll( "hidsolpe=:mipa and est='60' and cant > 0 ",array("mipa"=>$registro[0]['id']));
         	     if(count($matriz) ==0 )  {
         		 $this->adderror('numdocref','Esta Solpe no tiene items reservados ');*/
     }
 }
Ejemplo n.º 6
0
 public static function insertadetallesrecepfactura($model)
 {
     //Primero debemos verificar si ha habido anulacion de vales
     // y luego darnos cuenta que pares de kardex  (Vale original, Vale anulacion) Son para no considerarlos.
     //Sacando los numeros de vales originales relacionados a la compra
     $vales = yii::app()->db->createCommand()->select('a.numvale')->from('{{almacendocs}} a,{{alkardex}} b, {{alentregas}} c')->where("a.id=b.hidvale AND b.id=c.idkardex AND b.numdocref=:nocompra", array(":nocompra" => $model->numocompra))->queryColumn();
     //Sacando los numeros de documentos referenciados en dichos vales, que tambien son vales
     $valesreferenciados = yii::app()->db->createCommand()->select('a.numdocref')->from('{{almacendocs}} a,{{alkardex}} b, {{alentregas}} c')->where("a.id=b.hidvale AND b.id=c.idkardex AND b.numdocref=:nocompra ", array(":nocompra" => $model->numocompra))->queryColumn();
     // var_dump($model->numocompra);
     $arraypar = array_combine($vales, $valesreferenciados);
     $vales = array_unique($vales);
     $valesreferenciados = array_unique($valesreferenciados);
     /*  print_r( $arraypar);
         echo "<br><br><br>";
         print_r( $vales);
         echo "<br><br><br>";
         print_r( $valesreferenciados);
         echo "<br><br><br>";*/
     ///Ahora usamos la teoria de conjuntos  $vales INTERESECCION  $valesreferenciados
     ///QUIRE DECIR QEU SI HA HABIDO ANULACIONES , DEBE DE HABER UNA INTERSECCION
     $interseccion = array_intersect($vales, $valesreferenciados);
     if (COUNT($interseccion) > 0) {
         foreach ($interseccion as $clave => $valor) {
             unset($arraypar[$valor]);
             if (array_search($valor, $arraypar)) {
                 unset($arraypar[array_search($valor, $arraypar)]);
             }
         }
         $vales = array_keys($arraypar);
     }
     ///prteparamos n array de parametros pra el querybuilder
     $valores = array();
     $i = 0;
     foreach ($vales as $clave => $valor) {
         $valores[":ycp" . $i] = $valor . '';
         $i = $i + 1;
     }
     // print_r( $valores);yii::app()->end();
     $criterio = new CDBCriteria();
     $criterio->addCondition("a.id=b.hidvale AND b.id=c.idkardex AND b.numdocref=:numocompra");
     $criterio->addInCondition('a.numvale', array_keys($valores));
     $valores[":numocompra"] = $model->numocompra;
     $criterio->params = $valores;
     $entregas = yii::app()->db->createCommand()->select('c.id')->from('{{almacendocs}} a,{{alkardex}} b, {{alentregas}} c')->where($criterio->condition, $criterio->params)->queryAll();
     //buscando las enrtegas
     $registrocompra = Ocompra::findByNumero($model->numocompra);
     foreach ($entregas as $filaentrega) {
         /* var_dump($filaentrega->id);
            yii::app()->end();*/
         $detalle = new Tempdetingfactura();
         $detalle->setScenario('basico');
         $detalle->setAttributes(array('hidfactura' => $model->id, 'hidalentrega' => $filaentrega["id"], 'idusertemp' => yii::app()->user->id, 'idstatus' => 1));
         $detalle->save();
     }
 }
Ejemplo n.º 7
0
 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();
 }
Ejemplo n.º 8
0
 public function mueveadicionales()
 {
     $monedacompras = null;
     /*var_dump($this->codocuref);
     	var_dump(ARRAY(CODIGO_DOCUMENTO_COMPRAS,CODIGO_DOCUMENTO_DETALLE_COMPRA ));
     	yii::app()->end();*/
     if (in_array($this->codocuref, array(CODIGO_DOCUMENTO_COMPRAS, CODIGO_DOCUMENTO_DETALLE_COMPRA))) {
         $monedacompras = Ocompra::model()->find("numcot=:ndoc", array(":ndoc" => $this->numdocref))->moneda;
     }
     /*var_dump($monedacompras);
     	yii::app()->end();*/
     $monedamain = yii::app()->settings->get('general', 'general_monedadef');
     switch ($this->codmov) {
         case "10":
             $this->InsertaAtencionReserva();
             $ceco = Desolpe::model()->findByPk($this->idref)->imputacion;
             $this->InsertaCcGastos($ceco);
             $this->alkardex_alinventario->actualiza_stock($this->codmov, abs($this->cantidadbase()), null);
             break;
         case "20":
             $this->InsertaAtencionReserva();
             $ceco = Desolpe::model()->findByPk($this->idref)->imputacion;
             $this->InsertaCcGastos($ceco);
             $this->alkardex_alinventario->actualiza_stock($this->codmov, abs($this->cantidadbase()), null);
             break;
             break;
         case "30":
             //INGRESO COMPRA
             $this->InsertaAlentregasCompras();
             ///obteniendo la moneda del documento de COMPRAS
             $this->alkardex_alinventario->actualiza_stock($this->codmov, abs($this->cantidadbase()), $this->preciounitariobase($monedacompras));
             break;
         case "40":
             //ANULAR INGRESO COMPRA
             $this->InsertaAlentregasCompras();
             $this->alkardex_alinventario->actualiza_stock($this->codmov, abs($this->cantidadbase()), null);
             break;
         case "79":
             $this->preciounit = $this->getMonto();
             $this->InsertaAtencionReserva();
             $ceco = Dpeticion::model()->findByPk($this->idref)->imputacion;
             $this->InsertaCcGastos($ceco);
             $this->alkardex_alinventario->actualiza_stock($this->codmov, abs($this->cantidadbase()), null);
             break;
         case "81":
             $this->preciounit = $this->getMonto();
             $this->InsertaAtencionReserva();
             $ceco = Dpeticion::model()->findByPk($this->idref)->imputacion;
             $this->InsertaCcGastos($ceco);
             $this->alkardex_alinventario->actualiza_stock($this->codmov, abs($this->cantidadbase()), null);
             break;
         case "98":
             $moneda = $this->alkardex_alinventario->almacen->codmon;
             $this->alkardex_alinventario->actualiza_stock($this->codmov, abs($this->cantidadbase()), $this->preciounitariobase($moneda));
             break;
         case "89":
             $this->alkardex_alinventario->actualiza_stock($this->codmov, abs($this->cantidadbase()), $this->preciounitariobase(yii::app()->settings->get('general', 'general_monedadef')));
             break;
         case "60":
             echo "Your favorite color is green!";
             break;
         case "77":
             //inica traslado
             $this->alkardex_alinventario->actualiza_stock($this->codmov, abs($this->cantidadbase()), null);
             break;
         case "78":
             //acepta el traspaso
             $thisoriginal = Alkardex::model()->findByPk($this->idref);
             ///cone sto busca el kardex del almacen emisor
             //verifica la consistencia
             $thisoriginal->InsertaAlkardexTraslado($this->cant);
             // $thisoriginal->getMonto();
             $movimientoauxiliar = '45';
             $thisoriginal->alkardex_alinventario->actualiza_stock($movimientoauxiliar, abs($this->cantidadbase()), null);
             //verificamos la moneda del almacen que emite
             $moneda = $thisoriginal->alkardex_alinventario->almacen->codmoneda;
             $this->alkardex_alinventario->actualiza_stock($this->codmov, abs($this->cantidadbase()), $this->preciounitariobase($moneda));
             break;
         case "70":
             //reingreso
             //primero que nada el reingreso usa como referencia el vale de salida
             $kardorigen = Almacendocs::model()->findByPk($this->idref);
             //Siemrpe que no se ahya reingresado el total
             if ($kardorigen->cant < $kardorigen->reingreso_cant) {
                 $kardorigen->InsertaReingreso();
                 $ceco = CcGastos::model()->find("hidref=:vid", array(":vid" => $this->id));
                 $this->InsertaCcGastos($ceco);
                 $this->alkardex_alinventario->actualiza_stock($this->codmov, abs($this->cantidadbase()));
             }
             break;
         case "50":
             //salida para ceco
             $this->InsertaCcGastos($this->colector);
             $this->alkardex_alinventario->actualiza_stock($this->codmov, abs($this->cantidadbase()));
             break;
         case "60":
             //Anula salida para ceco
             $this->InsertaCcGastos($this->colector);
             $this->alkardex_alinventario->actualiza_stock($this->codmov, abs($this->cantidadbase()));
             break;
         default:
             throw new CHttpException(500, __CLASS__ . '  ' . __FUNCTION__ . '  No se ha definido este codigo de movimiento');
     }
 }
Ejemplo n.º 9
0
 public function mueveadicionales()
 {
     $monedacompras = null;
     if (in_array($this->codocuref, array(CODIGO_DOCUMENTO_COMPRAS, CODIGO_DOCUMENTO_DETALLE_COMPRA))) {
         $monedacompras = Ocompra::model()->find("numcot=:ndoc", array(":ndoc" => $this->numdocref))->moneda;
     }
     $monedamain = yii::app()->settings->get('general', 'general_monedadef');
     switch ($this->codmov) {
         case "10":
             $this->InsertaAtencionReserva(CODIGO_DOCUMENTO_RESERVA);
             $ceco = Desolpe::model()->findByPk($this->idref)->imputacion;
             //$ceco=$this->updatesolpe()->imputacion;
             $this->InsertaCcGastos($ceco);
             $this->alkardex_alinventario->actualiza_stock($this->codmov, abs($this->cantidadbase()), null);
             break;
         case "20":
             $this->InsertaAtencionReserva(CODIGO_DOCUMENTO_RESERVA);
             $ceco = Desolpe::model()->findByPk($this->idref)->imputacion;
             $this->InsertaCcGastos($ceco);
             $this->alkardex_alinventario->actualiza_stock($this->codmov, abs($this->cantidadbase()), null);
             break;
         case "11":
             $this->InsertaAtencionReserva(CODIGO_DOCUMENTO_RQ_COMPRA);
             $ceco = Desolpe::model()->findByPk($this->idref)->imputacion;
             $this->InsertaCcGastos($ceco);
             ///AQUI NO  SE ACTUALIZA EL STOCK DEL INVNETARIO PORQUE LA CANTIDAD PASA DIRECTAMENTE a  la atencion RQ y AL GASTO
             //$this->alkardex_alinventario->actualiza_stock($this->codmov,abs($this->cantidadbase()),null);
             break;
         case "12":
             $this->InsertaAtencionReserva(CODIGO_DOCUMENTO_RQ_COMPRA);
             $ceco = Desolpe::model()->findByPk($this->idref)->imputacion;
             $this->InsertaCcGastos($ceco);
             //$this->alkardex_alinventario->actualiza_stock($this->codmov,abs($this->cantidadbase()),null);
             break;
         case "30":
             //INGRESO COMPRA
             $this->InsertaAlentregasCompras();
             //$this->insertaAtencionreserva();
             ///obteniendo la moneda del documento de COMPRAS
             $this->ocuparsedelosRq(SALIDA_RQ);
             ///Si hay RQ de compras verifica y astender
             $this->alkardex_alinventario->actualiza_stock($this->codmov, abs($this->cantidadbase()), $this->preciounitariobase($monedacompras));
             break;
         case "40":
             //ANULAR INGRESO COMPRA
             $this->InsertaAlentregasCompras();
             $this->ocuparsedelosRq(SALIDA_RQ);
             ///Si hay RQ de compras verifica y anular
             $this->alkardex_alinventario->actualiza_stock($this->codmov, abs($this->cantidadbase()), null);
             break;
         case "79":
             $this->preciounit = $this->getMonto();
             $this->InsertaAtencionReserva();
             $ceco = Dpeticion::model()->findByPk($this->idref)->imputacion;
             $this->InsertaCcGastos($ceco);
             $this->alkardex_alinventario->actualiza_stock($this->codmov, abs($this->cantidadbase()), null);
             break;
         case "81":
             $this->preciounit = $this->getMonto();
             $this->InsertaAtencionReserva();
             $ceco = Dpeticion::model()->findByPk($this->idref)->imputacion;
             $this->InsertaCcGastos($ceco);
             $this->alkardex_alinventario->actualiza_stock($this->codmov, abs($this->cantidadbase()), null);
             break;
         case "98":
             $moneda = $this->alkardex_alinventario->almacen->codmon;
             $this->alkardex_alinventario->actualiza_stock($this->codmov, abs($this->cantidadbase()), $this->preciounitariobase($moneda));
             break;
         case "89":
             $this->alkardex_alinventario->actualiza_stock($this->codmov, abs($this->cantidadbase()), $this->preciounitariobase(yii::app()->settings->get('general', 'general_monedadef')));
             break;
         case "60":
             echo "Your favorite color is green!";
             break;
         case "77":
             //inica traslado
             $this->alkardex_alinventario->actualiza_stock($this->codmov, abs($this->cantidadbase()), null);
             break;
         case "78":
             //acepta el traspaso
             $thisoriginal = Alkardex::model()->findByPk($this->idref);
             ///cone sto busca el kardex del almacen emisor
             //verifica la consistencia
             $thisoriginal->InsertaAlkardexTraslado($this->cant);
             // $thisoriginal->getMonto();
             $movimientoauxiliar = '45';
             $thisoriginal->alkardex_alinventario->actualiza_stock($movimientoauxiliar, abs($this->cantidadbase()), null);
             //verificamos la moneda del almacen que emite
             $moneda = $thisoriginal->alkardex_alinventario->almacen->codmon;
             $this->alkardex_alinventario->actualiza_stock($this->codmov, abs($this->cantidadbase()), $this->preciounitariobase($moneda));
             //  yii::app()->end();
             break;
         case "54":
             //ANULA EL INGRESO DEL TRASLADO
             ///Compensar primero el Kardex del vale del receptor
             $thisoriginal = Alkardex::model()->findByPk($this->idref);
             ///cone sto busca el kardex del almacen emisor
             $thisoriginal->InsertaAlkardexTraslado($this->cant);
             $movimientoauxiliar = '64';
             //ANULA SALIDA TRASLADO EN KARDEX EMISOR
             $thisoriginal->alkardex_alinventario->actualiza_stock($movimientoauxiliar, abs($this->cantidadbase()), null);
             //verificamos la moneda del almacen que emite
             $moneda = $thisoriginal->alkardex_alinventario->almacen->codmon;
             $this->alkardex_alinventario->actualiza_stock($this->codmov, abs($this->cantidadbase()), $this->preciounitariobase($moneda));
             break;
         case "70":
             //reingreso
             //primero que nada el reingreso usa como referencia el vale de salida
             $kardorigen = Almacendocs::model()->findByPk($this->idref);
             //Siemrpe que no se ahya reingresado el total
             if ($kardorigen->cant < $kardorigen->reingreso_cant) {
                 $kardorigen->InsertaReingreso();
                 $ceco = CcGastos::model()->find("hidref=:vid", array(":vid" => $this->id));
                 $this->InsertaCcGastos($ceco);
                 $this->alkardex_alinventario->actualiza_stock($this->codmov, abs($this->cantidadbase()));
             }
             break;
         case "50":
             //salida para ceco
             $this->InsertaCcGastos($this->colector);
             $this->alkardex_alinventario->actualiza_stock($this->codmov, abs($this->cantidadbase()));
             break;
         case "60":
             //Anula salida para ceco
             $this->InsertaCcGastos($this->colector);
             $this->alkardex_alinventario->actualiza_stock($this->codmov, abs($this->cantidadbase()));
             break;
         default:
             throw new CHttpException(500, __CLASS__ . '  ' . __FUNCTION__ . '  No se ha definido este codigo de movimiento');
     }
 }
Ejemplo n.º 10
0
 public function chkfechas($attribute, $params)
 {
     ///PRIMERO QUE LA FECHA DEL INGRESO NO PUEDE SER ANTERIOR A LA FECHA DE LA OC
     ///LA FECHA DE LA FACTURA fechadoc  NO PUEDE SER MAYOR QUE LA FECHA DEL INGRESO
     if (!yii::app()->periodo->verificaFechas($this->fechadoc, $this->fecha)) {
         $this->adderror('fechadoc', 'La fecha de la factura es mayor que la fecha de ingreso');
     }
     ///LA FECHA DE LA FACTURA fechadoc  NO PUEDE SER MAYOR QUE LA FECHA DE LA ORDEN DE COMPRA
     //Sacando la fecha de la OC
     $registrocompra = Ocompra::findByNumero($this->numocompra);
     if (!yii::app()->periodo->verificaFechas($registrocompra->fechanominal, $this->fechadoc)) {
         $this->adderror('fechadoc', 'La fecha de la factura es menor que la de la Orden de compra');
     }
     ///LA FECHA DE LA FACTURA fechadoc  DEBE DE ESTAR DENTRO DEL PERIODO ACTIVO
     if (!yii::app()->periodo->estadentroperiodo($this->fechadoc)) {
         $this->adderror('fechadoc', 'La fecha de la factura no esta dentro del periodo activo');
     }
     ///LA FECHA DEl INGRESO fecha  DEBE DE ESTAR DENTRO DEL PERIODO ACTIVO
     if (!yii::app()->periodo->estadentroperiodo($this->fecha)) {
         $this->adderror('fechadoc', 'La fecha de ingreso no esta dentro del periodo activo');
     }
     //LA FECHA DE LA FACTURA  fechadoc  DEBE DE DEBE SER MAYOR QUE LA FECHA DE LA ULTIMA ENTREGA DE MERCADERIA
     /*$criterio=New CDBCriteria;
     		$criterio->addcondition("hidguia=:idcompra");
     		$criterio->params=array(":idcompra"=>$registrocompra->idguia);
     		$idhijos=MiFactoria::arrayColumnaSQL('{{docompra}}','id',$criterio->condition,$criterio->params);
     		unset($criterio);
     		$criterio=New CDBCriteria;
     		$criterio->addInCondition("iddetcompra",$idhijos);
     		$fila=yii::app()->db->createCommand()->
     		select(min('fecha'))->from('{{alentregas}}')->where($criterio->condition,$criterio->params)->queryAll();
     
     		if(count($fila)==0){
     			$this->adderror('numocompra','Esta Orden de compra no tiene entregas');
     		} else{
     			if(!yii::app()->periodo->verificaFechas($fila,$this->fechadoc))
     				$this->adderror('fechadoc','La factura tiene una fecha anterior a la primera entrega de mercaderia o conformidad');
     
     		}*/
     //LA DIFERENCIA DE FECHAS ENTRE EL INGRESO DE LA FACTURA fechadoc  Y LA FECHA DE LA FACTURA DEBE SER MENOR QUE  < ????
     if (yii::app()->periodo->diasentre($this->fecha, $this->fechadoc) > yii::app()->settings->get('documentos', 'documentos_tolerecepfacturaendias')) {
         $this->adderror('fechadoc', 'La diferencia de fechas entre la factura y el ingreso paso la tolerancia en dias (' . yii::app()->settings->get("documentos", "documentos_tolerecepfacturaendias") . ')');
     }
 }
Ejemplo n.º 11
0
 private function proceso($idevento, $id)
 {
     $mensaje = "";
     switch ($idevento) {
         case 65:
             ///APROB
             $filas = Ocompra::model()->findByPk($id)->detallefirme;
             foreach ($filas as $row) {
                 // $filafirme=Docompra::model()->findByPk($row->id);//solo si
                 //Solo si no esta anulado
                 if (!$row->estadodetalle == ESTADO_DOCOMPRA_ANULADO) {
                     $row->estadodetalle = ESTADO_DOCOMPRA_APROBADO;
                 }
                 ///AVTUALIZAR TAMBIEN EL ESTADO DE LOS REGISTROS DE LA TBLA PUENTE DESOLPECOMPRA
                 //DE ESTO SE ENCARGA DOCOMPRA en el evento AfterSave()
                 if (!$row->save()) {
                     $mensaje .= " Ocurrió un error  en el item " . $row->item . " al guardar los datos del estado detalle  <br>";
                 }
             }
             break;
         case 67:
             ///deshacer APROBACIOPN
             ///AQUI YA NNOS ETRABAJA CON EL BUFFER SE TRABAJADA CON LA TABAL ORIIGNAL
             $filas = Ocompra::model()->findByPk($id)->detallefirme;
             foreach ($filas as $row) {
                 //$filafirme=Docompra::model()->findByPk($row->id);
                 if ($row->cantidadentregada > 0) {
                     $mensaje .= "  El item " . $row->item . "  Ya tiene ingreso de almacen <br>";
                 } else {
                     //si no tiene atenciones entonces normal no mas Revertimos
                     $row->setScenario('cambiaestado');
                     $row->estadodetalle = ESTADO_DOCOMPRA_CREADO;
                     $mensaje .= $row->save() ? "" : " No se pudo anular el item " . $row->item . "<br>";
                 }
                 //refrescar el buffer
                 $this->ClearBuffer($id);
                 //Limpia temporal
                 $this->IniciaBuffer($id);
                 //Levanta temporales
             }
             break;
         case 66:
             ///aNULAR
             //aqui hayq ue tabajar directametne cn la tabla firme DOCOMPRA
             $filas = Ocompra::model()->findByPk($id)->detallefirme;
             //aqui hayq ue tabajar directametne cn la tabla firme DOCOMPRA
             foreach ($filas as $row) {
                 if ($row->cantidadentregada > 0) {
                     $mensaje .= "  El item " . $row->item . "  Ya tiene ingresos de almacen <br>";
                 } else {
                     //si no tiene atenciones entonces normal no mas Revertimos
                     $row->setScenario('cambiaestado');
                     $row->estadodetalle = ESTADO_DOCOMPRA_ANULADO;
                     $mensaje .= $row->save() ? "" : " No se pudo anular el item " . $row->item . "<br>";
                 }
             }
             //refrescar el buffer
             $this->ClearBuffer($id);
             //Limpia temporal
             $this->IniciaBuffer($id);
             //Levanta temporales
             break;
     }
     return $mensaje;
 }