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(); }