示例#1
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;
 }
示例#2
0
 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();
     */
 }