public static function InsertaCcGastosServ($idkardex) { $row = self::CargaModelo('Alkardex', $idkardex); $model = new CcGastos(); $model->ceco = self::CargaModelo('Desolpe', self::CargaModelo('Docompra', $row->idref)->iddesolpe)->imputacion; $model->fechacontable = $row->fecha; $model->monto = -1 * $row->getMonto(); ///Es el opuesto de todo $model->iduser = Yii::app()->user->id; $model->tipo = 'S'; $model->idref = $row->id; if (!$model->save()) { throw new CHttpException(500, "NO se Pudo insertar el registro de Costos "); } self::Mensaje('success', 'Se inserta los gastos ' . $model->monto . ' al ceco ' . self::CargaModelo('Desolpe', $row->idref)->imputacion); unset($model); unset($row); }
public function actualizacostes($model, $transaccion, $ceco = null) { //Public function actionpruebax() { $todook = true; $hijos = Alkardex::model()->findall("hidvale=:hid and codestado not in('98') ", array(":hid" => $model->id)); // $hijos=Alkardex::model()->findall("id=437"); for ($i = 0; $i < count($hijos); $i++) { $modelogastos = new CcGastos(); if (is_null($ceco)) { ///Rebuscamos la solpe if ($hijos[$i]['codmov'] == '70') { //Si es un reingreso debemos de buscar recursivamente en el Kardex $modelodetalle = Desolpe::model()->findByPk(Alkardex::model()->findByPk($hijos[$i]['idref'])->idref); } else { $modelodetalle = Desolpe::model()->findByPk($hijos[$i]['idref']); } $modelogastos->ceco = $modelodetalle->imputacion; } else { $modelogastos->ceco = $ceco; } //$modelodetalle=Desolpe::model()->findByPk(232); $modelogastos->fechacontable = $hijos[$i]['fecha']; //Los costos salen del inventario no del precio unitario del Kardex; (Punit+ Punitdif) $registroinventario = Alinventario::model()->findByPk(Alkardex::model()->findByPk($hijos[$i]['id'])->alkardex_alinventario->id); ///////////////haciendo el calculo estandar de signo y conversiones $signo = Almacenmovimientos::model()->findByPk($hijos[$i]['codmov'])->signo * -1; /// Como son costos , es el opuesto $conversion = Alconversiones::model()->convierte($hijos[$i]['codart'], $hijos[$i]['um']); //echo " la conversion ".$conversion." ".gettype($conversion)." \n"; //echo " material y um ".$hijos[$i]['codart']." ".$hijos[$i]['um']." \n"; //echo " el signo es ".Almacenmovimientos::model()->findByPk($hijos[$i]['codmov'])->signo." ".gettype(Almacenmovimientos::model()->findByPk($hijos[$i]['codmov'])->signo)." \n"; //$signo=Almacenmovimientos::model()->findByPk($movimiento)->signo*-1; /// Como son costos , es el opuesto $cantidadmovida = $signo * abs($conversion) * abs($hijos[$i]['cant']); ///////////ok/////////////////////////////////////// ////ahora calculando el precio unitario real, para esto actualizamos el Registro de Inventario, ///Esto es indiependiente si el material tiene control de precio S o V $registroinventario->Actualizar($hijos[$i]['codmov'], $hijos[$i]['cant'], $hijos[$i]['preciounit']); $modelogastos->monto = $cantidadmovida * ($registroinventario->punit + $registroinventario->punitdif); /// //echo " la conversion ".$conversion."\n"; //echo " la cantidad movida ".$cantidadmovida."\n"; //echo " precio unitario ".$registroinventario->punit."\n"; // echo "El monto ".$modelogastos->monto."\n"; //echo " la diferencia ".$registroinventario->punit." ".gettype($registroinventario->punit)." \n"; //echo " la diferencia ".$registroinventario->punitdif." ".gettype($registroinventario->punitdif)." \n"; //yii::app()->end(); $modelogastos->idref = $hijos[$i]['id']; //con el kardex lo amarramos $modelogastos->clasecolector = 'K'; //CENTRO DE COSTO $modelogastos->tipo = 'M'; //materialkes $modelogastos->codmoneda = Yii::app()->params['monedadef']; if (!$modelogastos->save()) { //$transaccion->rollback(); //throw new CHttpException(500,'No se pudo grabar los costos'); Yii::app()->user->setFlash('error', 'No se pudieron grabar los costes'); $todook = false; } } return $todook; }
/** * Returns the data model based on the primary key given in the GET variable. * If the data model is not found, an HTTP exception will be raised. * @param integer $id the ID of the model to be loaded * @return CcGastos the loaded model * @throws CHttpException */ public function loadModel($id) { $model = CcGastos::model()->findByPk($id); if ($model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } return $model; }