<?php

  $dataProvider = $_SESSION['datos_filtrados']->getData();
  $capital_interes = array('mto_credito'=>'', 'interes'=>'', 'mto_capital'=>'', 'auxiliar'=>'');
  $arr = array();
  setlocale(LC_CTYPE, 'es');

  foreach ($dataProvider as $clv => $val) {
    
    $consulta = ReporteCreditos::model()->find('idcredito=:credito', array(':credito'=>$val->id));

    if (!empty($consulta)) {
      
      
      $capital_interes['mto_credito'] = $consulta->deuda_total;
      $capital_interes['interes'] = $consulta->intereses_total;
      $capital_interes['mto_capital'] = $consulta->prestamo;
      $capital_interes['auxiliar'] = $consulta->prestamo + $consulta->intereses_total;

      array_push($arr, $capital_interes);
    }
  }

  //echo "<pre>";print_r($arr);exit;

  $phpExcelPath = Yii::getPathOfAlias('ext.Excel.PHPExcel.Classes');
  $phpExcelPath2 = Yii::getPathOfAlias('application.extensions.Excel.PHPExcel.Classes.PHPExcel');
                    

/* spl_autoload_unregister(array('YiiBase','autoload'));
  include($phpExcelPath . DIRECTORY_SEPARATOR . 'PHPExcel.php');
  include($phpExcelPath.DIRECTORY_SEPARATOR.'PHPExcel'.DIRECTORY_SEPARATOR.'Reader'.DIRECTORY_SEPARATOR.'Excel2007.php');
  include($phpExcelPath2 . DIRECTORY_SEPARATOR . 'IOFactory.php');
  spl_autoload_register(array('YiiBase','autoload'));
*/
  spl_autoload_unregister(array('YiiBase','autoload'));
  include($phpExcelPath . DIRECTORY_SEPARATOR . 'PHPExcel.php');
  include($phpExcelPath2 . DIRECTORY_SEPARATOR . 'IOFactory.php');
  spl_autoload_register(array('YiiBase','autoload'));

  
  $PHPExcel = new PHPExcel();

  //Ancho de las columnas
foreach(range('A', 'Z') as $columnID) {
    $PHPExcel->getActiveSheet()->getColumnDimension($columnID)->setAutoSize(true);
}

  $PHPExcel->getActiveSheet()->getColumnDimension('AA')->setAutoSize(true);
  $PHPExcel->getActiveSheet()->getColumnDimension('AB')->setAutoSize(true);

  //Primera columna
  $PHPExcel->getActiveSheet()->SetCellValue('A1', 'LISTADO DE SOLICITUDES');
  $PHPExcel->getActiveSheet()->SetCellValue('A2', 'Resultados: '.count($dataProvider));

  //Estilo del header de las columnas
  $PHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true);
  $PHPExcel->getActiveSheet()->getStyle('A1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE);    
  $PHPExcel->getActiveSheet()->getStyle('A1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
  $PHPExcel->getActiveSheet()->getStyle('A1')->getFill()->getStartColor()->setARGB('004413');

  $PHPExcel->getActiveSheet()->getStyle('A3:AB3')->getFont()->setBold(true);
  $PHPExcel->getActiveSheet()->getStyle('A3:AB3')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE);
  $PHPExcel->getActiveSheet()->getStyle('A3:AB3')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
  $PHPExcel->getActiveSheet()->getStyle('A3:AB3')->getFill()->getStartColor()->setARGB('004413');

  //Titulo de las columnas
  $PHPExcel->getActiveSheet()->SetCellValue('A3', 'Cédula');
  $PHPExcel->getActiveSheet()->SetCellValue('A3', 'Cédula');
  $PHPExcel->getActiveSheet()->SetCellValue('B3', 'Nombres y apellidos');
  $PHPExcel->getActiveSheet()->SetCellValue('C3', 'Empresa');
  $PHPExcel->getActiveSheet()->SetCellValue('D3', 'Unidad');
  $PHPExcel->getActiveSheet()->SetCellValue('E3', 'Fecha solicitud');
  $PHPExcel->getActiveSheet()->SetCellValue('F3', 'Estatus');
  $PHPExcel->getActiveSheet()->SetCellValue('G3', 'Crédito padre');
  $PHPExcel->getActiveSheet()->SetCellValue('H3', 'Tipo de crédito');
  $PHPExcel->getActiveSheet()->SetCellValue('I3', 'Afianzadora');
  $PHPExcel->getActiveSheet()->SetCellValue('J3', 'Tipo de préstamo');
  $PHPExcel->getActiveSheet()->SetCellValue('K3', 'Cuenta');
  $PHPExcel->getActiveSheet()->SetCellValue('L3', 'Cuota a pagar');
  $PHPExcel->getActiveSheet()->SetCellValue('M3', 'Interés');
  $PHPExcel->getActiveSheet()->SetCellValue('N3', 'Monto crédito');
  $PHPExcel->getActiveSheet()->SetCellValue('O3', 'Monto capital');
  $PHPExcel->getActiveSheet()->SetCellValue('P3', 'Monto intereses');
  $PHPExcel->getActiveSheet()->SetCellValue('Q3', 'Monto gasto');
  $PHPExcel->getActiveSheet()->SetCellValue('R3', 'Saldo');
  $PHPExcel->getActiveSheet()->SetCellValue('S3', 'Monto a ser depositado');
  $PHPExcel->getActiveSheet()->SetCellValue('T3', 'Monto crédito anterior');
  $PHPExcel->getActiveSheet()->SetCellValue('U3', 'Fecha de aprobación');
  $PHPExcel->getActiveSheet()->SetCellValue('V3', 'Fecha del primer descuento');
  $PHPExcel->getActiveSheet()->SetCellValue('W3', 'Tipo de nómina');
  $PHPExcel->getActiveSheet()->SetCellValue('X3', 'Usuario que aprobó');
  $PHPExcel->getActiveSheet()->SetCellValue('Y3', 'Banco origen');
  $PHPExcel->getActiveSheet()->SetCellValue('Z3', 'Cuenta origen');
  $PHPExcel->getActiveSheet()->SetCellValue('AA3', 'Referencia del pago');
  $PHPExcel->getActiveSheet()->SetCellValue('AB3', 'Fecha del pago');

  foreach ($dataProvider as $key => $value) {

    $PHPExcel->getActiveSheet()->getStyle("A")->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
    $PHPExcel->getActiveSheet()->SetCellValue('A'.($key+4), $value->idAsociado->cedula);
    $PHPExcel->getActiveSheet()->SetCellValue('B'.($key+4), strtoupper($value->idAsociado->nombre ." ". $value->idAsociado->apellidos));
    $PHPExcel->getActiveSheet()->SetCellValue('C'.($key+4), strtoupper($value->idAsociado->lugartrabajo0->descripcion) );
    $PHPExcel->getActiveSheet()->SetCellValue('D'.($key+4), strtoupper($value->idAsociado->unidad->descripcion) );

    $PHPExcel->getActiveSheet()->getStyle("E")->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    $PHPExcel->getActiveSheet()->SetCellValue('E'.($key+4), ($value->fecha_solicita)?date('d-m-Y',strtotime($value->fecha_solicita)):"" );
    $PHPExcel->getActiveSheet()->SetCellValue('F'.($key+4), strtoupper($value->nombre_estatus) );
    $PHPExcel->getActiveSheet()->SetCellValue('G'.($key+4), strtoupper($value['idTipoCredito']['idTituloTipoCredito']['nombre_titulo']) );
    $PHPExcel->getActiveSheet()->SetCellValue('H'.($key+4), strtoupper($value->idTipoCredito->descripcion) );
    $PHPExcel->getActiveSheet()->SetCellValue('I'.($key+4), '');

    switch ($value->refinanciado) {
        case 0:
            $refinanciado = 'Ordinario';
            break;
        case 1:
            $refinanciado = 'Refinanciado';
            break;
        case 2:
            $refinanciado = 'Reestructurado';
            break;
    }
    $PHPExcel->getActiveSheet()->SetCellValue('J'.($key+4), $refinanciado);

    $PHPExcel->getActiveSheet()->setCellValueExplicit('K'.($key+4),$value->cuenta,PHPExcel_Cell_DataType::TYPE_STRING);

    $PHPExcel->getActiveSheet()->getStyle("L")->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
    $PHPExcel->getActiveSheet()->getStyle('L'.($key+4))->getNumberFormat()->setFormatCode('#,##0.00');
    $PHPExcel->getActiveSheet()->SetCellValue('L'.($key+4), $value->cuota_pagar);

    $PHPExcel->getActiveSheet()->SetCellValue('M'.($key+4), $value->taza_interes);

    $PHPExcel->getActiveSheet()->getStyle("N")->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
    $PHPExcel->getActiveSheet()->getStyle('N'.($key+4))->getNumberFormat()->setFormatCode('#,##0.00');
    $PHPExcel->getActiveSheet()->SetCellValue('N'.($key+4), $arr[$key]['auxiliar']);

    $PHPExcel->getActiveSheet()->getStyle('O')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
    $PHPExcel->getActiveSheet()->getStyle('O'.($key+4))->getNumberFormat()->setFormatCode('#,##0.00');
    $PHPExcel->getActiveSheet()->SetCellValue('O'.($key+4), $arr[$key]['mto_capital']);

    $PHPExcel->getActiveSheet()->getStyle('P')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
    $PHPExcel->getActiveSheet()->getStyle('P'.($key+4))->getNumberFormat()->setFormatCode('#,##0.00');
    $PHPExcel->getActiveSheet()->SetCellValue('P'.($key+4), $arr[$key]['interes']);

    $PHPExcel->getActiveSheet()->getStyle('Q')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
    $PHPExcel->getActiveSheet()->getStyle('Q'.($key+4))->getNumberFormat()->setFormatCode('#,##0.00');
    $PHPExcel->getActiveSheet()->SetCellValue('Q'.($key+4), $value->gastos_administrativo);

    $PHPExcel->getActiveSheet()->getStyle('R')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
    $PHPExcel->getActiveSheet()->getStyle('R'.($key+4))->getNumberFormat()->setFormatCode('#,##0.00');
    $PHPExcel->getActiveSheet()->SetCellValue('R'.($key+4), 00);

    $PHPExcel->getActiveSheet()->getStyle('S')->getNumberFormat()->setFormatCode('#,##0.00');
    $PHPExcel->getActiveSheet()->SetCellValue('S'.($key + 4), $value->monto_credito_depositar);

    $PHPExcel->getActiveSheet()->getStyle('T')->getNumberFormat()->setFormatCode('#,##0.00');
    $PHPExcel->getActiveSheet()->SetCellValue('T'.($key + 4), $value->monto_credito_anterior);

    $modelFecha = CreditoSeguimiento::model()->find('id_credito=:id AND id_estatus_credito =2',array(':id'=>  $value->id));
    $PHPExcel->getActiveSheet()->getStyle('U')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    $PHPExcel->getActiveSheet()->SetCellValue('U'.($key+4), ($modelFecha)?date('d-m-Y',  strtotime($modelFecha->fecha_registro)):"" );

    $PHPExcel->getActiveSheet()->getStyle('V')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    $PHPExcel->getActiveSheet()->SetCellValue('V'.($key+4), ($value->fecha_primer_descuento)?date('d-m-Y',  strtotime($value->fecha_primer_descuento)):"" );

    $PHPExcel->getActiveSheet()->getStyle('W')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    $PHPExcel->getActiveSheet()->SetCellValue('W'.($key+4), strtoupper($value->idAsociado->getTipoNomina()) );

    $PHPExcel->getActiveSheet()->getStyle('X')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    $PHPExcel->getActiveSheet()->SetCellValue('X'.($key+4), (($modelFecha)?$modelFecha->datosUsuario:""));

    $info_pago = ProcesoPago::getDatosPago($value->id);

    $PHPExcel->getActiveSheet()->getStyle('Y')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    $PHPExcel->getActiveSheet()->SetCellValue('Y'.($key+4), $info_pago['banco'] );

    $PHPExcel->getActiveSheet()->getStyle('Z')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    $PHPExcel->getActiveSheet()->setCellValueExplicit('Z'.($key+4), $info_pago['cuenta'], PHPExcel_Cell_DataType::TYPE_STRING);

    $PHPExcel->getActiveSheet()->getStyle('AA')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    $PHPExcel->getActiveSheet()->SetCellValue('AA'.($key+4), $info_pago['referencia'] );

    $PHPExcel->getActiveSheet()->getStyle('AB')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    $PHPExcel->getActiveSheet()->SetCellValue('AB'.($key+4), ($info_pago['fecha_pago'])?date('d-m-Y',  strtotime($info_pago['fecha_pago'])):"" );
    
  }

  $objWriter = new PHPExcel_Writer_Excel2007($PHPExcel);
  $objWriter->setOffice2003Compatibility(true);
  //header('Content-Type: application/vnd.ms-excel');
  //header('Content-Disposition: attachment;filename="'.$file_name.'"');
  //header('Cache-Control: max-age=0');
  $objWriter->save('php://output');
?>
        
