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'); } }
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; }
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; }
public static function RegistrosDetallePorMovimiento($mov, $numdoc = NULL, $idvale = null) { switch ($mov) { case '10': $registros = self::DevuelveSolPespendientes($numdoc, $idvale); break; case '79': $registros = self::DevuelveSolPespendientes($numdoc, $idvale); 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 '54': //ANULA ACEPTACION DEL TRASLADO $id = Almacendocs::model()->find("numvale=:vnumvale", array(":vnumvale" => trim($numdoc)))->id; $registros = self::DevuelveKardexHijosconalias($id); break; case '98': //carag inicial no haya nada que devolver $registros = array(); break; case '89': //anular carga inicial // 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 '40': //anular ingreso de compras /* 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 '50': $registros = array(); break; default: throw new CHttpException(500, __CLASS__ . ' => ' . __FUNCTION__ . ' No se ha encontrado tratamiento de registros hijos para este movimiento revise esta funcion '); } // var_dump($registros); return $registros; }
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 ');*/ } }
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'); } }
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'); } }
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; }