public function actionPinta($id)
 {
     $modelogrande = $this->loadModel($id);
     if ($modelogrande->cestadovale == '20') {
         $transaccion = $modelogrande->dbConnection->beginTransaction();
         //echo gettype($transaccion);
         //Yii::app()->end();
         $itemsk = Alkardex::model()->findall('hidvale=:valoi', array(':valoi' => $id));
         /// registas kardex pcn valores negativos
         foreach ($itemsk as $v) {
             $modeloentregas = new Alentregas();
             $modelokardex = new Alkardex();
             //echo $v['id'];
             //Yii::app()->end();
             $modeloentregasant = Alentregas::model()->find(' idkardex=:clave', array(':clave' => $v['id']));
             $modeloentregas->setAttributes(array('iddetcompra' => $modeloentregasant->iddetcompra, 'cant' => $modeloentregasant->cant * -1, 'idkardex' => $v['id']), true);
             $modelokardex->setAttributes(array('codart' => $v['codart'], 'codmov' => $v['codmov'], 'cant' => $v['cant'] * -1, 'alemi' => $v['alemi'], 'aldes' => $v['aldes'], 'fecha' => date("Y-m-d H:i:s"), 'coddoc' => $v['coddoc'], 'numdoc' => $v['numdoc'], 'um' => $v['um'], 'codocuref' => $v['codocuref'], 'numdocref' => $v['numdocref'], 'codcentro' => $v['codcentro'], 'codestado' => '10', 'numdocref' => $v['numdocref'], 'hidvale' => $v['hidvale']), true);
             $modelokardex->save();
             $modelokardex->refresh();
             $modeloentregas->idkardex = $modelokardex->id;
             $modeloentregas->save();
             $modocompra = Docompra::model()->findByPk($modeloentregasant->iddetcompra);
             ///cuantos hay
             if ($modocompra->cantidadentregada = $v['cant']) {
                 $modocompra->estadodetalle = '20';
                 //regresar a colocarlo  como aprobado por que se reversa toda la atencion
             } else {
                 if ($modocompra->cantidadentregada > $v['cant']) {
                     $modocompra->estadodetalle = '50';
                     // de hecho pasa a ser parcial
                 } else {
                     ///Error:: quiere decir qu se atendio una cantidad en exceso  al ingreos
                     $transaccion->rollback();
                     throw new CHttpException(500, 'Se produjo un error, Se ha atrendido una cantidad mayor al del pedido ');
                 }
             }
             //actualizar el invetario
             $moneda = $modocompra->docompra_ocompra->moneda;
             if ($moneda == Yii::app()->params['monedadef']) {
                 $conversion = 1;
             } else {
                 $conversion = Numeromaximo::cambiomoneda($moneda, Yii::app()->params['monedadef']);
             }
             $modeloinventario = Alinventario::model()->findByPk($modocompra->docompra_alinventario->id);
             $cantidad = $modeloinventario->cantlibre;
             if ($cantidad >= $v['cant']) {
                 $descuento = $modocompra->docompra_ocompra->descuento === null ? 0 : $modocompra->docompra_ocompra->descuento / 100;
                 $modeloinventario->cantlibre = $cantidad - $v['cant'];
                 //$modeloinventario->punit=
                 $modeloinventario->punit = (($cantidad + $modeloinventario->cantres) * $modeloinventario->punit - $modocompra->punit * $conversion * (1 - $descuento) * $v['cant']) / ($cantidad + $modeloinventario->cantres - $v['cant']);
                 $inventario->codmon = Yii::app()->params['monedadef'];
             } else {
                 $transaccion->rollback();
                 throw new CHttpException(500, 'Se produjo un error, EL stock libre utilizacion esta por debajo para  devolucion ');
             }
         }
         //for each
         //$modelito=$this->loadModel(9);
         //$hijos= $modelito->numeroitems;
         //$nietos=$modelito->almacendocs_alkardex->numeroitems;
         //$criteria=new CDbCriteria;
         //$criteria->with=array('alentregas_alkardex.alkardex_almacendocs');
         //$criteria->with=array('almacendocs_alkardex');
         //$criteria->addCondition('alkardex_almacendocs.id=9');
         //$registros=Almacendocs::Model()->findAll($criteria);
         //$registros=Ocompra::Model()->with('ocompra_docompra')->findAll($criteria);
         //echo $registros[0]['numvale']."\n";
         //echo $registros[0]['almacendocs_alkardex'][0]['codmov']."\n";;
         //echo $registros[0]['almacendocs_alkardex'][0]['alkardex_alentregas'][0]['iddetcompra']."\n";
         //echo $registros[0]['almacendocs_alkardex'][0]['alkardex_alentregas'][1]['iddetcompra']."\n";
         //echo
         //echo $modelito->almacendocs_alkardex[0]->alkardex_alentregas[1];
         //echo $modelito->codocu;
         //ECHO Ocompra::model()->findByPk(19)->subtotal;
         //echo Docompra::model()->findByPk(31)->docompra_alinventario->cantlibre;
         $modocompra->save();
         $modeloinventario->save();
         $modelogrande->{$cestadovale} = '30';
         $transaccion->commit();
     } else {
         throw new CHttpException(500, 'Este vale ya se anulo, o tiene un estado que no permite su anulacion ');
     }
 }
Exemple #2
0
 public static function InsertaAlentregasCompras($idkardex)
 {
     $row = self::CargaModelo('Alkardex', $idkardex);
     $model = new Alentregas();
     $model->cant = $row->cant;
     $model->idkardex = $row->id;
     $model->iddetcompra = $row->idref;
     $model->estado = Alentregas::ESTADO_CREADO;
     if (!$model->save()) {
         throw new CHttpException(500, "NO se Pudo insertar el registro de atenciones compras ");
     }
     unset($model);
     unset($row);
 }
Exemple #3
0
 public function InsertaAlentregasCompras()
 {
     $model = new Alentregas();
     $model->cant = $this->cant;
     $model->idkardex = $this->id;
     $model->iddetcompra = $this->idref;
     $model->estado = Alentregas::ESTADO_CREADO;
     if (!$model->save()) {
         throw new CHttpException(500, "NO se Pudo insertar el registro de atenciones compras ");
     }
     unset($model);
 }
Exemple #4
0

<?php 
$this->widget('zii.widgets.grid.CGridView', array('id' => 'detallex-grid', 'dataProvider' => Alentregas::model()->search_ide($ide), 'cssFile' => Yii::app()->getTheme()->baseUrl . '/css/grilla_naranja.css', 'summaryText' => '', 'columns' => array(array('name' => 'texto', 'type' => 'raw', 'header' => 't', 'value' => 'CHtml::image(Yii::app()->getTheme()->baseUrl.Yii::app()->params["rutatemaimagenes"]."camion.png","entrega")'), 'cant', array('name' => 'numkardex', 'type' => 'raw', 'value' => 'CHtml::link($data->alentregas_alkardex->alkardex_almacendocs->numvale,Yii::app()->createurl(\'/almacendocs/update\', array(\'id\'=> $data->alentregas_alkardex->hidvale ) ))'), 'alentregas_alkardex.alemi', 'alentregas_alkardex.codcentro', 'alentregas_alkardex.alkardex_almacendocs.fechacont', 'usuario')));
Exemple #5
0
<?php

$this->widget('zii.widgets.grid.CGridView', array('id' => 'detalle-gridx', 'dataProvider' => Alentregas::model()->search(), 'columns' => array('id', 'iddetcompra', 'cant', 'fecha', 'idkardex', 'usuario')));