Exemplo n.º 1
0
 public function refrescar()
 {
     $this->deleteAll();
     $cuentas = CuentaCorriente::model()->getVigentes();
     foreach ($cuentas as $cuenta) {
         $saldo = $cuenta->saldoAFecha(date("Y-m-d"));
         if ($saldo < 0) {
             $moroso = new TempMorosos();
             $moroso->apellido = $cuenta->contrato->cliente->usuario->apellido;
             $moroso->departamento = $cuenta->contrato->departamento->numero;
             $moroso->fecha = $cuenta->fechaUltimaMora();
             $diff = date_diff(date_create(date("Y-m-d")), date_create($moroso->fecha), true);
             $moroso->dias = $diff->format("%a");
             $moroso->monto = -$saldo;
             $moroso->nombre = $cuenta->contrato->cliente->usuario->nombre;
             $moroso->propiedad = $cuenta->contrato->departamento->propiedad->nombre;
             $moroso->cuenta_corriente_id = $cuenta->id;
             $moroso->contrato_id = $cuenta->contrato->id;
             $moroso->save();
         }
     }
 }
 public function actionExportarXLS()
 {
     // generate a resultset
     $morosos = Yii::app()->user->getState('morososFiltrados');
     Yii::import('ext.phpexcel.XPHPExcel');
     $objPHPExcel = XPHPExcel::createPHPExcel();
     $sheet = $objPHPExcel->getActiveSheet();
     $sheet->setCellValue('A1', 'Clientes Morosos');
     $sheet->mergeCells("A1:K1");
     $sheet->getStyle("A1")->getFont()->setSize(20);
     $filtros = "";
     if ($morosos->propiedad != "") {
         $filtros .= " Propiedad: " . $morosos->propiedad . ".";
     }
     if ($morosos->departamento != "") {
         $filtros .= " Departamento: " . $morosos->departamento . ".";
     }
     if ($morosos->nombre_ap != "") {
         $filtros .= " Nombre Cliente: " . $morosos->nombre_ap . ".";
     }
     if ($morosos->fecha != "") {
         $filtros .= " Fecha: " . $morosos->fecha . ".";
     }
     if ($morosos->dias != "") {
         $filtros .= " Días de mora: " . $morosos->dias . ".";
     }
     $i = 3;
     if ($filtros != "") {
         $sheet->setCellValue('A2', 'Criterios de búsqueda aplicados: ' . $filtros);
         $sheet->mergeCells("A2:K2");
         $i++;
         $criteria = new CDbCriteria();
         $criteria->compare('id', $morosos->id);
         if ($morosos->nombre_ap != "") {
             $arreglo = explode(" ", $morosos->nombre_ap);
             $nombreApellido = array();
             foreach ($arreglo as $palabra) {
                 if (trim($palabra) != '') {
                     $nombreApellido[] = $palabra;
                 }
             }
             $criteriaNombre = new CDbCriteria();
             $palabras = count($nombreApellido);
             if ($palabras == 1) {
                 $busqueda = $nombreApellido[0];
                 if (trim($busqueda) != '') {
                     $criteriaNombre->compare('nombre', $busqueda, true);
                     $criteriaNombre->compare('apellido', $busqueda, true, 'OR');
                 }
             }
             if ($palabras == 2) {
                 $nombre = $nombreApellido[0];
                 $apellido = $nombreApellido[1];
                 $criteriaNombre->compare('nombre', $nombre, true);
                 $criteriaNombre->compare('apellido', $apellido, true);
             }
             $criteria->mergeWith($criteriaNombre, 'AND');
         }
         if ($morosos->propiedad != "") {
             $criteria->compare('propiedad', $morosos->propiedad, true);
         }
         if ($morosos->departamento != "") {
             $criteria->compare('departamento', $morosos->departamento, true);
         }
         if ($morosos->monto != "") {
             $criteria->compare('monto', $morosos->monto);
         }
         if ($morosos->fecha != "") {
             $criteria->compare('fecha', Tools::fixFecha($morosos->fecha));
         }
         if ($morosos->dias != "") {
             $criteria->compare('dias', $morosos->dias);
         }
         $tempMorosos = TempMorosos::model()->findAll($criteria);
     } else {
         $tempMorosos = TempMorosos::model()->findAll();
     }
     $sheet->setCellValue('A' . $i, 'Propiedad');
     $sheet->setCellValue('B' . $i, 'Departamento');
     $sheet->setCellValue('C' . $i, 'Nombre');
     $sheet->setCellValue('D' . $i, 'Monto');
     $sheet->setCellValue('E' . $i, 'Fecha');
     $sheet->setCellValue('F' . $i, 'Dias');
     $sheet->getStyle("A{$i}:F{$i}")->getFont()->setBold(true);
     $i++;
     foreach ($tempMorosos as $moroso) {
         $sheet->setCellValue('A' . $i, $moroso->propiedad);
         $sheet->setCellValue('B' . $i, $moroso->departamento);
         $sheet->setCellValue('C' . $i, $moroso->nombre . " " . $moroso->apellido);
         $sheet->setCellValue('D' . $i, $moroso->monto);
         $sheet->setCellValue('E' . $i, Tools::backFecha($moroso->fecha));
         $sheet->setCellValue('F' . $i, $moroso->dias);
         $i++;
     }
     $objPHPExcel->setActiveSheetIndex(0);
     header('Content-Type: application/vnd.ms-excel');
     header('Content-Disposition: attachment;filename="Movimientos Propietario.xls"');
     header('Cache-Control: max-age=0');
     // If you're serving to IE 9, then the following may be needed
     header('Cache-Control: max-age=1');
     // If you're serving to IE over SSL, then the following may be needed
     header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
     // Date in the past
     header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
     // always modified
     header('Cache-Control: cache, must-revalidate');
     // HTTP/1.1
     header('Pragma: public');
     // HTTP/1.0
     $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
     $objWriter->save('php://output');
     Yii::app()->end();
 }