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 function actionhacereporte($id, $idfiltrodocu, $file = 0) { //id del reporte y el ID del modelo a reportar $this->layout = ""; $id = MiFactoria::cleanInput((int) $id); $idfiltrodocu = MiFactoria::cleanInput((int) $idfiltrodocu); $modelo = $this->loadModel($id); $nombremodelo = $modelo->modelo; /////////////////////////////////////////////////////// ///sancao el numero de paginas $criterio = new CDbCriteria(); $criterio->addCondition($modelo->campofiltro . "=:vidifiltrodocu"); $criterio->params = array(":vidifiltrodocu" => $idfiltrodocu); $proveedordatos = new Miproveedor($nombremodelo, array('pagination' => false, "criteria" => $criterio)); $filasdatos = $proveedordatos->getdata(); $filamuestracabecera = $filasdatos[0]; ///una fila de datos para la cabcerea $registrostotales = count($filasdatos); $numeropaginas = ceil($registrostotales / $modelo->registrosporpagina); //$numeropaginas=3; $proveedorestilo = $modelo->hijos; $proveedordatos->camposasumar = Coordreporte::totalizables($id); $mpdf = Yii::app()->ePdf->mpdf('', trim($modelo->tamanopapel)); if (!is_null($modelo->estilo)) { $hojaestilo = file_get_contents($this->rutaestilos . DIRECTORY_SEPARATOR . $modelo->estilo); //$hojaestilo=file_get_contents('themes/abound/css'.DIRECTORY_SEPARATOR.'estilovale.css'); $mpdf->WriteHTML($hojaestilo, 1); } $mpdf->pagenumPrefix = 'Página '; $mpdf->pagenumSuffix = ' '; $mpdf->nbpgPrefix = ' de '; $mpdf->nbpgSuffix = ''; if ($modelo->tienepie == '1') { $mpdf->SetFooter('Usuario : ' . yii::app()->user->um->loadUserById(yii::app()->user->id)->username . '|' . date("d-m-Y H : i : s") . '|{PAGENO}{nbpg}'); } $mpdf->SetDisplayMode('fullpage'); /*echo var_dump($proveedordatos); yii::app()->end();*/ // $arraycamposasumar=array('subto','cant'); $amontobase = array(); /*foreach($arraycamposasumar as $mclave => $mvalor){ $amontobase[$mvalor]=0; }*/ /*echo $this->cabecera($filamuestracabecera,$proveedorestilo,$modelo); yii::app()->end();*/ $cadena = ""; for ($i = 1; $i <= $numeropaginas; $i++) { $criterioporpagina = new CDbCriteria(); // $criterioporpagina->addCondition($modelo->campofiltro."=:vidifiltrodocu "); $criterioporpagina->addCondition($modelo->campofiltro . "= " . $idfiltrodocu); //var_dump(Estado::estadosnocalculables($modelo->codocu));yii::app()->end(); $criterioporpagina->addNotInCondition($modelo->campoestado, Estado::estadosnocalculablesdetalle($modelo->codocu)); // $criterioporpagina->params=ARRAY(":vidifiltrodocu"=>$idfiltrodocu); $criterioporpagina->limit = $modelo->registrosporpagina; $criterioporpagina->offset = $modelo->registrosporpagina * ($i - 1); $proveedorporpagina = new Miproveedor($nombremodelo, array('pagination' => false, "criteria" => $criterioporpagina)); $proveedorporpagina->camposasumar = Coordreporte::totalizables($id); $amontoagregado = $proveedorporpagina->Total(); $cadena = $this->renderpartial('reporte', array('columnas' => $this->makeColumnas($proveedorestilo, $amontobase, $amontoagregado, $id), 'cadenacabecera' => $this->cabecera($filamuestracabecera, $proveedorestilo, $modelo), 'proveedordatos' => $proveedorporpagina, 'modelo' => $modelo), TRUE, true); $amontobase = $this->sumaarray($amontobase, $amontoagregado); if ($i == $numeropaginas and $modelo->comercial == '1') { //Si es la utima pag y ademas es doc comercial if ($numeropaginas == 1) { $grantotal = $amontobase[$modelo->campototal]; } else { $grantotal = $amontobase[$modelo->campototal] + $amontoagregado[$modelo->campototal]; } $cadena .= $this->colocaimpuestos($modelo->codocu, $idfiltrodocu, $modelo->xresumen, $modelo->yresumen, $grantotal); } $mpdf->WriteHTML($cadena, 2); if ($i < $numeropaginas) { $mpdf->AddPage(); } } //echo $cadena; if (Yii::app()->settings->get('documentos', 'documentos_selloagua') == '1') { $mpdf->SetWatermarkImage(yii::app()->getBaseUrl(false) . Yii::app()->settings->get('documentos', 'documentos_archivo_sello_agua') . DIRECTORY_SEPARATOR . 'NOAPROBADO.JPG'); $mpdf->showWatermarkImage = true; } //if($file==1){ $ruta = 'assets/' . $modelo->codocu . $idfiltrodocu . '_' . yii::app()->user->id . '.pdf'; $mpdf->Output($ruta, 'F'); $this->render('pdf', array('ruta' => yii::app()->getBaseUrl(false) . DIRECTORY_SEPARATOR . $ruta)); //}else{ // $mpdf->Output(); //} ////////////////////////////////////////// //sacando el dataprovider /* $criterio=New CDbCriteria; $criterio->addCondition($modelo->campofiltro."=:vidifiltrodocu"); $criterio->params=ARRAY(":vidifiltrodocu"=>$idfiltrodocu); $proveedordatos=new Miproveedor($nombremodelo, array("criteria"=>$criterio, 'pagination' => array( 'pageSize' => 100, ), )); $proveedordatos->camposasumar=array('preciounit','cant'); $filasdatos=$proveedordatos->getData(); $filamuestracabecera=$filasdatos[0]; ///una fila de datos para la cabcerea $proveedorestilo=$modelo->hijos; $cadena=$this->renderpartial('reporte', array(//'proveedor'=>$proveedordatos, 'columnas' =>$this->makeColumnas($proveedorestilo,$proveedordatos), 'cadenacabecera'=>$this->cabecera($filamuestracabecera,$proveedorestilo), 'proveedordatos'=>$proveedordatos, 'modelo'=>$modelo, ), TRUE, true); $mpdf=Yii::app()->ePdf->mpdf( '',trim($modelo->tamanopapel)); $hojaestilo=file_get_contents('themes/abound/css'.DIRECTORY_SEPARATOR.'estilooc.css'); $mpdf->WriteHTML($hojaestilo,1); $mpdf->pagenumPrefix = 'Página '; $mpdf->pagenumSuffix = ' '; $mpdf->nbpgPrefix = ' de '; $mpdf->nbpgSuffix = ''; $mpdf->SetFooter('{PAGENO}{nbpg}'); $mpdf->SetDisplayMode('fullpage'); $mpdf->WriteHTML($cadena,2); $mpdf->Output(); */ }