|
@@ -1,14 +1,19 @@
|
|
<?php
|
|
<?php
|
|
|
|
|
|
-namespace app\modules\pdf\web;
|
|
|
|
|
|
+namespace pdf\web;
|
|
|
|
|
|
|
|
+use PhpOffice\PhpSpreadsheet\Helper\Html;
|
|
|
|
+use PhpOffice\PhpSpreadsheet\IOFactory;
|
|
|
|
+use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
|
|
|
|
+use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
|
|
|
+use PhpOffice\PhpSpreadsheet\Style\Alignment;
|
|
|
|
+use PhpOffice\PhpSpreadsheet\Style\Fill;
|
|
use yii\filters\auth\CompositeAuth;
|
|
use yii\filters\auth\CompositeAuth;
|
|
use yii\filters\auth\QueryParamAuth;
|
|
use yii\filters\auth\QueryParamAuth;
|
|
use yii\filters\Cors;
|
|
use yii\filters\Cors;
|
|
-use PhpOffice\PhpSpreadsheet\IOFactory;
|
|
|
|
-use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
|
|
|
|
|
+use yii\web\Controller as WebController;
|
|
|
|
|
|
-class Controller extends \yii\web\Controller {
|
|
|
|
|
|
+class Controller extends WebController {
|
|
|
|
|
|
/**
|
|
/**
|
|
* Si es verdadero imprime el contenido en el web
|
|
* Si es verdadero imprime el contenido en el web
|
|
@@ -30,7 +35,7 @@ class Controller extends \yii\web\Controller {
|
|
public $configuracion = [
|
|
public $configuracion = [
|
|
"format" => "letter",
|
|
"format" => "letter",
|
|
"default_font" => "Roboto",
|
|
"default_font" => "Roboto",
|
|
- ];
|
|
|
|
|
|
+ ];
|
|
|
|
|
|
/**
|
|
/**
|
|
* Texto para la marca de agua
|
|
* Texto para la marca de agua
|
|
@@ -149,17 +154,16 @@ class Controller extends \yii\web\Controller {
|
|
\Yii::$app->end();
|
|
\Yii::$app->end();
|
|
}
|
|
}
|
|
|
|
|
|
- public function afterAction($action, $result)
|
|
|
|
- {
|
|
|
|
|
|
+ public function afterAction($action, $result) {
|
|
if (!$this->html) {
|
|
if (!$this->html) {
|
|
$result = str_replace('disabled="disabled"', '', $result);
|
|
$result = str_replace('disabled="disabled"', '', $result);
|
|
return $this->exportarPdf($result);
|
|
return $this->exportarPdf($result);
|
|
}
|
|
}
|
|
$this->marcaDeAgua = intval($this->req->get("wm", 1)) === 1;
|
|
$this->marcaDeAgua = intval($this->req->get("wm", 1)) === 1;
|
|
- $watermark = "background-image: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' ".
|
|
|
|
- "height='100px' width='100px'><text transform='translate(20, 100) rotate(-45)' fill='rgb(210,210,210)' ".
|
|
|
|
|
|
+ $watermark = "background-image: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' " .
|
|
|
|
+ "height='100px' width='100px'><text transform='translate(20, 100) rotate(-45)' fill='rgb(210,210,210)' " .
|
|
"font-size='18'>{$this->marcaDeAguaTexto}</text></svg>\");";
|
|
"font-size='18'>{$this->marcaDeAguaTexto}</text></svg>\");";
|
|
- if(!$this->marcaDeAgua) {
|
|
|
|
|
|
+ if (!$this->marcaDeAgua) {
|
|
$watermark = "";
|
|
$watermark = "";
|
|
}
|
|
}
|
|
$fondo = ".fondo-privado { background-color: rgb(141,216,169,0.7) !important; }";
|
|
$fondo = ".fondo-privado { background-color: rgb(141,216,169,0.7) !important; }";
|
|
@@ -171,11 +175,19 @@ class Controller extends \yii\web\Controller {
|
|
/**
|
|
/**
|
|
* funcion para generar cualquier Excel
|
|
* funcion para generar cualquier Excel
|
|
*/
|
|
*/
|
|
- public static function Excel($titulo = "Reporte", $pestania = "Reporte", $nombre = "Reporte", $etiquetas = [], $campos = [], $datos, $usarApuntador = true, $isArray = false, $respaldo = false) {
|
|
|
|
|
|
+ public static function Excel(
|
|
|
|
+ $titulo = "Reporte",
|
|
|
|
+ $pestania = "Reporte",
|
|
|
|
+ $nombre = "Reporte",
|
|
|
|
+ $etiquetas = [],
|
|
|
|
+ $campos = [],
|
|
|
|
+ $datos,
|
|
|
|
+ $usarApuntador = true, $isArray = false, $respaldo = false) {
|
|
// Create new Spreadsheet object
|
|
// Create new Spreadsheet object
|
|
$basePath = \Yii::getAlias("@app");
|
|
$basePath = \Yii::getAlias("@app");
|
|
|
|
|
|
$spreadsheet = new Spreadsheet();
|
|
$spreadsheet = new Spreadsheet();
|
|
|
|
+
|
|
$spreadsheet->setActiveSheetIndex(0);
|
|
$spreadsheet->setActiveSheetIndex(0);
|
|
$spreadsheet->getSecurity()->setLockWindows(false);
|
|
$spreadsheet->getSecurity()->setLockWindows(false);
|
|
$spreadsheet->getSecurity()->setLockStructure(false);
|
|
$spreadsheet->getSecurity()->setLockStructure(false);
|
|
@@ -185,7 +197,9 @@ class Controller extends \yii\web\Controller {
|
|
$spreadsheet->getActiveSheet()->getProtection()->setFormatCells(false);
|
|
$spreadsheet->getActiveSheet()->getProtection()->setFormatCells(false);
|
|
|
|
|
|
// Set document properties
|
|
// Set document properties
|
|
- $spreadsheet->getProperties()->setCreator('pbr')->setLastModifiedBy('pbr')->setTitle($titulo)
|
|
|
|
|
|
+ $spreadsheet->getProperties()->setCreator('eDesarrollos')
|
|
|
|
+ ->setLastModifiedBy('eDesarrollos')
|
|
|
|
+ ->setTitle($titulo)
|
|
->setDescription($titulo);
|
|
->setDescription($titulo);
|
|
|
|
|
|
$spreadsheet->getActiveSheet()->setTitle($pestania);
|
|
$spreadsheet->getActiveSheet()->setTitle($pestania);
|
|
@@ -198,7 +212,6 @@ class Controller extends \yii\web\Controller {
|
|
'horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER,
|
|
'horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER,
|
|
]
|
|
]
|
|
];
|
|
];
|
|
-
|
|
|
|
$style_titulo_etiquestas = [
|
|
$style_titulo_etiquestas = [
|
|
'font' => [
|
|
'font' => [
|
|
'bold' => true,
|
|
'bold' => true,
|
|
@@ -220,6 +233,184 @@ class Controller extends \yii\web\Controller {
|
|
$spreadsheet->setActiveSheetIndex(0);
|
|
$spreadsheet->setActiveSheetIndex(0);
|
|
$i = $respaldo ? 1 : 7;
|
|
$i = $respaldo ? 1 : 7;
|
|
$ltrs = [];
|
|
$ltrs = [];
|
|
|
|
+ $ltr = 65;
|
|
|
|
+ $ltr2 = 64;
|
|
|
|
+
|
|
|
|
+ foreach ($etiquetas as $v) {
|
|
|
|
+ if ($ltr2 >= 65) {
|
|
|
|
+ //if(!in_array(chr($ltr2), ["[","]","\\","^","_","`"]))
|
|
|
|
+ $letra = chr($ltr2) . chr($ltr);
|
|
|
|
+ } else {
|
|
|
|
+ $letra = chr($ltr);
|
|
|
|
+ }
|
|
|
|
+ $ltrs[] = $letra;
|
|
|
|
+ $spreadsheet->getActiveSheet()->setCellValue($letra . $i, $v);
|
|
|
|
+ if ($ltr >= 90) {
|
|
|
|
+ $ltr2++;
|
|
|
|
+ $ltr = 65;
|
|
|
|
+ } else {
|
|
|
|
+ $ltr++;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // Add some data
|
|
|
|
+ $i++; //Es el renglón inicial
|
|
|
|
+ if ($usarApuntador) {
|
|
|
|
+ /* @var $datos ActiveQuery */
|
|
|
|
+ if (!$isArray) {
|
|
|
|
+ foreach ($datos->each() as $v) {
|
|
|
|
+ $l = 0;
|
|
|
|
+ foreach ($campos as $k => $a) {
|
|
|
|
+ $spreadsheet
|
|
|
|
+ ->getActiveSheet()
|
|
|
|
+ ->setCellValue($ltrs[$l] . $i, isset($v[$a]) ? $v[$a] : "")
|
|
|
|
+ ->getColumnDimension($ltrs[$l])
|
|
|
|
+ ->setAutoSize(true);
|
|
|
|
+ $l++;
|
|
|
|
+ }
|
|
|
|
+ $i++;
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ foreach ($datos as $v) {
|
|
|
|
+ $l = 0;
|
|
|
|
+ foreach ($campos as $k => $a) {
|
|
|
|
+ $spreadsheet
|
|
|
|
+ ->getActiveSheet()
|
|
|
|
+ ->setCellValue($ltrs[$l] . $i, isset($v[$a]) ? $v[$a] . "-" : "---")
|
|
|
|
+ ->getColumnDimension($ltrs[$l])
|
|
|
|
+ ->setAutoSize(true);
|
|
|
|
+ $l++;
|
|
|
|
+ }
|
|
|
|
+ $i++;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } else {
|
|
|
|
+ foreach ($datos as $v) {
|
|
|
|
+ $l = 0;
|
|
|
|
+ foreach ($campos as $k => $a) {
|
|
|
|
+
|
|
|
|
+ if (gettype($v[$a]) === 'array') {
|
|
|
|
+ if (isset($v[$a][1]) && $v[$a][1] === "html") {
|
|
|
|
+
|
|
|
|
+ $html = new Html();
|
|
|
|
+ $spreadsheet
|
|
|
|
+ ->getActiveSheet()
|
|
|
|
+ ->setCellValue($ltrs[$l] . $i, isset($v[$a][0]) ? $html->toRichTextObject($v[$a][0]) : "")
|
|
|
|
+ ->getColumnDimension($ltrs[$l])
|
|
|
|
+ ->setAutoSize(true);
|
|
|
|
+ } else {
|
|
|
|
+ $spreadsheet
|
|
|
|
+ ->getActiveSheet()
|
|
|
|
+ ->setCellValue($ltrs[$l] . $i, isset($v[$a][0]) ? $v[$a][0] : "")
|
|
|
|
+ ->getColumnDimension($ltrs[$l])
|
|
|
|
+ ->setAutoSize(true);
|
|
|
|
+
|
|
|
|
+ $spreadsheet
|
|
|
|
+ ->getActiveSheet()
|
|
|
|
+ ->getStyle($ltrs[$l] . $i)
|
|
|
|
+ ->getNumberFormat()
|
|
|
|
+ ->setFormatCode(NumberFormat::FORMAT_CURRENCY_USD);
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ $spreadsheet
|
|
|
|
+ ->getActiveSheet()
|
|
|
|
+ ->setCellValue($ltrs[$l] . $i, isset($v[$a]) ? $v[$a] : "")
|
|
|
|
+ ->getColumnDimension($ltrs[$l])
|
|
|
|
+ ->setAutoSize(true);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $l++;
|
|
|
|
+ }
|
|
|
|
+ $i++;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ // Rename worksheet
|
|
|
|
+// $spreadsheet->getStyle('A1:A3')->getNumberFormat()->setFormatCode('#,##0.00');
|
|
|
|
+ // Set active sheet index to the first sheet, so Excel opens this as the first sheet
|
|
|
|
+ $spreadsheet->setActiveSheetIndex(0);
|
|
|
|
+
|
|
|
|
+ $ultima_letra = array_pop($ltrs);
|
|
|
|
+
|
|
|
|
+ if (!$respaldo) {
|
|
|
|
+ $spreadsheet->getActiveSheet()->mergeCells('A3:' . $ultima_letra . "3");
|
|
|
|
+ $spreadsheet->getActiveSheet()->getStyle("A3:" . $ultima_letra . "3")->applyFromArray($style_titulo);
|
|
|
|
+ $spreadsheet->getActiveSheet()->setCellValue('A3', $titulo);
|
|
|
|
+ //$spreadsheet->getActiveSheet()->setCellValue('A2', '=HIPERVINCULO("http://www.google.com/","Google")');
|
|
|
|
+
|
|
|
|
+ $objDrawing = new \PhpOffice\PhpSpreadsheet\Worksheet\Drawing();
|
|
|
|
+ $objDrawing->setName('Logo');
|
|
|
|
+ $objDrawing->setDescription('Logo');
|
|
|
|
+ $objDrawing->setPath($basePath . '/web/img/logo-salud.png');
|
|
|
|
+ $objDrawing->setWidth(300);
|
|
|
|
+ $objDrawing->setCoordinates('A1');
|
|
|
|
+ $objDrawing->setWorksheet($spreadsheet->getActiveSheet());
|
|
|
|
+
|
|
|
|
+ $spreadsheet->getActiveSheet()->getStyle("A7:" . $ultima_letra . "7")->applyFromArray($style_titulo_etiquestas);
|
|
|
|
+ } else
|
|
|
|
+ $spreadsheet->getActiveSheet()->getStyle("A1:" . $ultima_letra . "1")->applyFromArray($style_titulo_etiquestas);
|
|
|
|
+
|
|
|
|
+ // Redirect output to a client's web browser (Xlsx)
|
|
|
|
+ header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
|
|
|
|
+ header('Content-Disposition: attachment;filename="' . $nombre . '"');
|
|
|
|
+ header('Cache-Control: max-age=0');
|
|
|
|
+
|
|
|
|
+ $writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
|
|
|
|
+ $writer->save('php://output');
|
|
|
|
+ exit;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public static function Excelp($titulo = "Reporte", $pestania = "Reporte", $nombre = "Reporte", $etiquetas = [], $campos = [], $datos, $usarApuntador = true, $isArray = false, $respaldo = false) {
|
|
|
|
+ // Create new Spreadsheet object
|
|
|
|
+ $basePath = \Yii::getAlias("@app");
|
|
|
|
+
|
|
|
|
+ $spreadsheet = new Spreadsheet();
|
|
|
|
+ $spreadsheet->setActiveSheetIndex(0);
|
|
|
|
+ $spreadsheet->getSecurity()->setLockWindows(false);
|
|
|
|
+ $spreadsheet->getSecurity()->setLockStructure(false);
|
|
|
|
+ $spreadsheet->getActiveSheet()->getProtection()->setSheet(false);
|
|
|
|
+ $spreadsheet->getActiveSheet()->getProtection()->setSort(false);
|
|
|
|
+ $spreadsheet->getActiveSheet()->getProtection()->setInsertRows(false);
|
|
|
|
+ $spreadsheet->getActiveSheet()->getProtection()->setFormatCells(false);
|
|
|
|
+
|
|
|
|
+ // Set document properties
|
|
|
|
+ $spreadsheet->getProperties()->setCreator('pbr')->setLastModifiedBy('pbr')->setTitle($titulo)
|
|
|
|
+ ->setDescription($titulo);
|
|
|
|
+
|
|
|
|
+ $spreadsheet->getActiveSheet()->setTitle($pestania);
|
|
|
|
+ $style_titulo = [
|
|
|
|
+ 'font' => [
|
|
|
|
+ 'bold' => true,
|
|
|
|
+ 'size' => 13,
|
|
|
|
+ ],
|
|
|
|
+ 'alignment' => [
|
|
|
|
+ 'horizontal' => Alignment::HORIZONTAL_CENTER,
|
|
|
|
+ ]
|
|
|
|
+ ];
|
|
|
|
+
|
|
|
|
+ $style_titulo_etiquestas = [
|
|
|
|
+ 'font' => [
|
|
|
|
+ 'bold' => true,
|
|
|
|
+ 'size' => 11,
|
|
|
|
+ 'color' => ['rgb' => '000000'],
|
|
|
|
+ 'background' => ['rgb' => '4c5966'],
|
|
|
|
+ ],
|
|
|
|
+ 'alignment' => [
|
|
|
|
+ 'horizontal' => Alignment::HORIZONTAL_CENTER_CONTINUOUS,
|
|
|
|
+ ],
|
|
|
|
+ 'fill' => [
|
|
|
|
+ 'type' => Fill::FILL_GRADIENT_LINEAR,
|
|
|
|
+ 'rotation' => 90,
|
|
|
|
+ 'startcolor' => ['argb' => '000000',],
|
|
|
|
+ 'endcolor' => ['argb' => '000000',],
|
|
|
|
+ ],
|
|
|
|
+ ];
|
|
|
|
+
|
|
|
|
+ $spreadsheet->setActiveSheetIndex(0);
|
|
|
|
+ $i = $respaldo ? 1 : 7;
|
|
|
|
+ $ltrs = [];
|
|
$ltr2 = 65;
|
|
$ltr2 = 65;
|
|
$ltr = 65;
|
|
$ltr = 65;
|
|
foreach ($etiquetas as $v) {
|
|
foreach ($etiquetas as $v) {
|
|
@@ -317,9 +508,8 @@ class Controller extends \yii\web\Controller {
|
|
|
|
|
|
//$spreadsheet->getActiveSheet()->getStyle("A7:" . $ultima_letra . "7")->applyFromArray($style_titulo_etiquestas);
|
|
//$spreadsheet->getActiveSheet()->getStyle("A7:" . $ultima_letra . "7")->applyFromArray($style_titulo_etiquestas);
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
+
|
|
// Redirect output to a client's web browser (Xlsx)
|
|
// Redirect output to a client's web browser (Xlsx)
|
|
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
|
|
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
|
|
header('Content-Disposition: attachment;filename="' . $nombre . '"');
|
|
header('Content-Disposition: attachment;filename="' . $nombre . '"');
|
|
@@ -330,7 +520,7 @@ class Controller extends \yii\web\Controller {
|
|
exit;
|
|
exit;
|
|
}
|
|
}
|
|
|
|
|
|
- public function excelMir($datos = []) {
|
|
|
|
|
|
+ public function excelMir($datos = []) {
|
|
// Create new Spreadsheet object
|
|
// Create new Spreadsheet object
|
|
$nombre = "excels.xlsx";
|
|
$nombre = "excels.xlsx";
|
|
$titulo = "Matriz de Indicadores para Resultados (2022)";
|
|
$titulo = "Matriz de Indicadores para Resultados (2022)";
|
|
@@ -374,8 +564,8 @@ class Controller extends \yii\web\Controller {
|
|
$spreadsheet->getActiveSheet()->getStyle('F4:K4')->applyFromArray($style_titulo);
|
|
$spreadsheet->getActiveSheet()->getStyle('F4:K4')->applyFromArray($style_titulo);
|
|
$spreadsheet->getActiveSheet()->setCellValue('F4', $titulo);
|
|
$spreadsheet->getActiveSheet()->setCellValue('F4', $titulo);
|
|
$losbenificiarios = "";
|
|
$losbenificiarios = "";
|
|
- if(count($datos["benificiarios"])>0){
|
|
|
|
- foreach($datos["benificiarios"] as $ben){
|
|
|
|
|
|
+ if (count($datos["benificiarios"]) > 0) {
|
|
|
|
+ foreach ($datos["benificiarios"] as $ben) {
|
|
$losbenificiarios .= "{$ben->beneficiario->nombre}, ";
|
|
$losbenificiarios .= "{$ben->beneficiario->nombre}, ";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -392,7 +582,7 @@ class Controller extends \yii\web\Controller {
|
|
$spreadsheet->getActiveSheet()->mergeCells('B14:B15');
|
|
$spreadsheet->getActiveSheet()->mergeCells('B14:B15');
|
|
$spreadsheet->getActiveSheet()->setCellValue("C14", "Indicadores");
|
|
$spreadsheet->getActiveSheet()->setCellValue("C14", "Indicadores");
|
|
$spreadsheet->getActiveSheet()->mergeCells('C14:E14');
|
|
$spreadsheet->getActiveSheet()->mergeCells('C14:E14');
|
|
-
|
|
|
|
|
|
+
|
|
$spreadsheet->getActiveSheet()->setCellValue("F14", "Programación");
|
|
$spreadsheet->getActiveSheet()->setCellValue("F14", "Programación");
|
|
$spreadsheet->getActiveSheet()->mergeCells('F14:J14');
|
|
$spreadsheet->getActiveSheet()->mergeCells('F14:J14');
|
|
$spreadsheet->getActiveSheet()->setCellValue("K14", "Meta % de Anua");
|
|
$spreadsheet->getActiveSheet()->setCellValue("K14", "Meta % de Anua");
|
|
@@ -421,15 +611,15 @@ class Controller extends \yii\web\Controller {
|
|
$spreadsheet->getActiveSheet()->setCellValue("I15", "IV");
|
|
$spreadsheet->getActiveSheet()->setCellValue("I15", "IV");
|
|
$spreadsheet->getActiveSheet()->setCellValue("J15", "Avance\nAcumulado");
|
|
$spreadsheet->getActiveSheet()->setCellValue("J15", "Avance\nAcumulado");
|
|
|
|
|
|
- $objDrawing = $this->cargarImagen($spreadsheet,'/web/img/logo-salud.png',300,"A1");
|
|
|
|
- $objDrawing = $this->cargarImagen($spreadsheet,'/web/img/sa.png',150,"Q5");
|
|
|
|
|
|
+ $objDrawing = $this->cargarImagen($spreadsheet, '/web/img/logo-salud.png', 300, "A1");
|
|
|
|
+ $objDrawing = $this->cargarImagen($spreadsheet, '/web/img/sa.png', 150, "Q5");
|
|
$spreadsheet->getActiveSheet()->setCellValue('R3', " ");
|
|
$spreadsheet->getActiveSheet()->setCellValue('R3', " ");
|
|
|
|
|
|
$i = 16;
|
|
$i = 16;
|
|
- if($datos["mir"] != null){
|
|
|
|
|
|
+ if ($datos["mir"] != null) {
|
|
$nuevoNiveles = [];
|
|
$nuevoNiveles = [];
|
|
- foreach($datos["niveles"] as $nivel) {
|
|
|
|
- if(!isset($nuevoNiveles[$nivel->nivel])) {
|
|
|
|
|
|
+ foreach ($datos["niveles"] as $nivel) {
|
|
|
|
+ if (!isset($nuevoNiveles[$nivel->nivel])) {
|
|
$nuevoNiveles[$nivel->nivel] = [];
|
|
$nuevoNiveles[$nivel->nivel] = [];
|
|
}
|
|
}
|
|
$nuevoNiveles[$nivel->nivel][] = $nivel;
|
|
$nuevoNiveles[$nivel->nivel][] = $nivel;
|
|
@@ -442,37 +632,37 @@ class Controller extends \yii\web\Controller {
|
|
"ACTIVIDAD"
|
|
"ACTIVIDAD"
|
|
];
|
|
];
|
|
|
|
|
|
- foreach($ordenNivel as $k=>$v){
|
|
|
|
|
|
+ foreach ($ordenNivel as $k => $v) {
|
|
$inicio = $i;
|
|
$inicio = $i;
|
|
- $spreadsheet->getActiveSheet()->setCellValue("A".$i, $v);
|
|
|
|
|
|
+ $spreadsheet->getActiveSheet()->setCellValue("A" . $i, $v);
|
|
$fin = 0;
|
|
$fin = 0;
|
|
- foreach($nuevoNiveles[$v] as $nivel){
|
|
|
|
- $spreadsheet->getActiveSheet()->setCellValue("B".$i, $nivel->resumen);
|
|
|
|
- foreach($nivel->matrizMIRIndicadores as $indicador){
|
|
|
|
- $spreadsheet->getActiveSheet()->setCellValue("C".$i, $indicador->nombre);
|
|
|
|
- $spreadsheet->getActiveSheet()->setCellValue("D".$i, $indicador->unidadMedida->nombre);
|
|
|
|
- $spreadsheet->getActiveSheet()->setCellValue("E".$i, $indicador->numerador);
|
|
|
|
- $spreadsheet->getActiveSheet()->setCellValue("E".($i+1), $indicador->denominador);
|
|
|
|
- $spreadsheet->getActiveSheet()->setCellValue("F".$i, $indicador->numeradorT1);
|
|
|
|
- $spreadsheet->getActiveSheet()->setCellValue("G".$i, $indicador->numeradorT2);
|
|
|
|
- $spreadsheet->getActiveSheet()->setCellValue("H".$i, $indicador->numeradorT3);
|
|
|
|
- $spreadsheet->getActiveSheet()->setCellValue("I".$i, $indicador->numeradorT4);
|
|
|
|
-
|
|
|
|
- $spreadsheet->getActiveSheet()->setCellValue("F".($i+1), $indicador->denominadorT1);
|
|
|
|
- $spreadsheet->getActiveSheet()->setCellValue("G".($i+1), $indicador->denominadorT2);
|
|
|
|
- $spreadsheet->getActiveSheet()->setCellValue("H".($i+1), $indicador->denominadorT3);
|
|
|
|
- $spreadsheet->getActiveSheet()->setCellValue("I".($i+1), $indicador->denominadorT4);
|
|
|
|
-
|
|
|
|
- $spreadsheet->getActiveSheet()->setCellValue("J".$i, $indicador->avanceAcumulado);
|
|
|
|
- $spreadsheet->getActiveSheet()->setCellValue("K".$i, $indicador->metaAnual);
|
|
|
|
- $spreadsheet->getActiveSheet()->setCellValue("L".$i, $indicador->porcentajeAvance);
|
|
|
|
- $spreadsheet->getActiveSheet()->setCellValue("M".$i, $indicador->lineaBase);
|
|
|
|
- $spreadsheet->getActiveSheet()->setCellValue("N".$i, $indicador->sentido->valor);
|
|
|
|
- $spreadsheet->getActiveSheet()->setCellValue("O".$i, $indicador->frecuencia->nombre);
|
|
|
|
- $spreadsheet->getActiveSheet()->setCellValue("P".$i, $indicador->metodoVerificacion);
|
|
|
|
- $spreadsheet->getActiveSheet()->setCellValue("Q".$i, $indicador->supuestos);
|
|
|
|
- $spreadsheet->getActiveSheet()->setCellValue("R".$i, " ");
|
|
|
|
- $i+=2;
|
|
|
|
|
|
+ foreach ($nuevoNiveles[$v] as $nivel) {
|
|
|
|
+ $spreadsheet->getActiveSheet()->setCellValue("B" . $i, $nivel->resumen);
|
|
|
|
+ foreach ($nivel->matrizMIRIndicadores as $indicador) {
|
|
|
|
+ $spreadsheet->getActiveSheet()->setCellValue("C" . $i, $indicador->nombre);
|
|
|
|
+ $spreadsheet->getActiveSheet()->setCellValue("D" . $i, $indicador->unidadMedida->nombre);
|
|
|
|
+ $spreadsheet->getActiveSheet()->setCellValue("E" . $i, $indicador->numerador);
|
|
|
|
+ $spreadsheet->getActiveSheet()->setCellValue("E" . ($i + 1), $indicador->denominador);
|
|
|
|
+ $spreadsheet->getActiveSheet()->setCellValue("F" . $i, $indicador->numeradorT1);
|
|
|
|
+ $spreadsheet->getActiveSheet()->setCellValue("G" . $i, $indicador->numeradorT2);
|
|
|
|
+ $spreadsheet->getActiveSheet()->setCellValue("H" . $i, $indicador->numeradorT3);
|
|
|
|
+ $spreadsheet->getActiveSheet()->setCellValue("I" . $i, $indicador->numeradorT4);
|
|
|
|
+
|
|
|
|
+ $spreadsheet->getActiveSheet()->setCellValue("F" . ($i + 1), $indicador->denominadorT1);
|
|
|
|
+ $spreadsheet->getActiveSheet()->setCellValue("G" . ($i + 1), $indicador->denominadorT2);
|
|
|
|
+ $spreadsheet->getActiveSheet()->setCellValue("H" . ($i + 1), $indicador->denominadorT3);
|
|
|
|
+ $spreadsheet->getActiveSheet()->setCellValue("I" . ($i + 1), $indicador->denominadorT4);
|
|
|
|
+
|
|
|
|
+ $spreadsheet->getActiveSheet()->setCellValue("J" . $i, $indicador->avanceAcumulado);
|
|
|
|
+ $spreadsheet->getActiveSheet()->setCellValue("K" . $i, $indicador->metaAnual);
|
|
|
|
+ $spreadsheet->getActiveSheet()->setCellValue("L" . $i, $indicador->porcentajeAvance);
|
|
|
|
+ $spreadsheet->getActiveSheet()->setCellValue("M" . $i, $indicador->lineaBase);
|
|
|
|
+ $spreadsheet->getActiveSheet()->setCellValue("N" . $i, $indicador->sentido->valor);
|
|
|
|
+ $spreadsheet->getActiveSheet()->setCellValue("O" . $i, $indicador->frecuencia->nombre);
|
|
|
|
+ $spreadsheet->getActiveSheet()->setCellValue("P" . $i, $indicador->metodoVerificacion);
|
|
|
|
+ $spreadsheet->getActiveSheet()->setCellValue("Q" . $i, $indicador->supuestos);
|
|
|
|
+ $spreadsheet->getActiveSheet()->setCellValue("R" . $i, " ");
|
|
|
|
+ $i += 2;
|
|
}
|
|
}
|
|
//$spreadsheet->getActiveSheet()->mergeCells("B{$inicio}:B{$f}");
|
|
//$spreadsheet->getActiveSheet()->mergeCells("B{$inicio}:B{$f}");
|
|
}
|
|
}
|
|
@@ -489,7 +679,7 @@ class Controller extends \yii\web\Controller {
|
|
exit;
|
|
exit;
|
|
}
|
|
}
|
|
|
|
|
|
- function cargarImagen($spreadsheet, $imagen = "/web/img/logo-salud.png", $width = 300, $ubicacion = "A1"){
|
|
|
|
|
|
+ function cargarImagen($spreadsheet, $imagen = "/web/img/logo-salud.png", $width = 300, $ubicacion = "A1") {
|
|
$basePath = \Yii::getAlias("@app");
|
|
$basePath = \Yii::getAlias("@app");
|
|
$objDrawing = new \PhpOffice\PhpSpreadsheet\Worksheet\Drawing();
|
|
$objDrawing = new \PhpOffice\PhpSpreadsheet\Worksheet\Drawing();
|
|
$objDrawing->setName('Logo');
|
|
$objDrawing->setName('Logo');
|
|
@@ -499,4 +689,5 @@ class Controller extends \yii\web\Controller {
|
|
$objDrawing->setCoordinates($ubicacion);
|
|
$objDrawing->setCoordinates($ubicacion);
|
|
$objDrawing->setWorksheet($spreadsheet->getActiveSheet());
|
|
$objDrawing->setWorksheet($spreadsheet->getActiveSheet());
|
|
}
|
|
}
|
|
|
|
+
|
|
}
|
|
}
|