function informe_densidad($boleta) { $cantidad_densidades = 6; $this->BoletaHasDensidades->BindModel(array('hasOne' => array('Area' => array('className' => 'Area', 'foreignKey' => '', 'conditions' => array('Area.id = BoletaHasDensidades.area')), 'SubArea' => array('className' => 'SubArea', 'foreignKey' => '', 'conditions' => array('SubArea.id = BoletaHasDensidades.subarea')), 'TipoRelleno' => array('className' => 'TipoRelleno', 'foreignKey' => '', 'conditions' => array('TipoRelleno.id = BoletaHasDensidades.tipo_relleno'))))); $bho = $this->BoletaHasObra->find('first', array('conditions' => array('BoletaHasObra.boleta' => $boleta))); $contratista = $this->DatosClientes->find('first', array('conditions' => array('DAT_CLI_RUT' => $bho['Obra']['contratista_rut']))); $solicitante = $this->DatosClientes->find('first', array('conditions' => array('DAT_CLI_RUT' => $bho['Obra']['cliente_rut']))); $destinatario = $this->Destinatario->find('first', array('conditions' => array('id' => $bho['Obra']['destinatario']))); $operador = $this->Operador->find('first', array('conditions' => array('id' => $bho['DatosBoleta']['operador']))); $bhd = $this->BoletaHasDensidades->find('all', array('conditions' => array('BoletaHasDensidades.boleta' => $boleta), 'order' => 'BoletaHasDensidades.numero_densidad ASC')); $mes_densimetro = date('n', strtotime($bho['DatosBoleta']['fecha_inspeccion'])); $año_densimetro = date('y', strtotime($bho['DatosBoleta']['fecha_inspeccion'])); $densimetro = $this->Densimetro->find('first', array('conditions' => array('and' => array('codigo_densimetro' => $bho['DatosBoleta']['densimetro'], 'mes' => $mes_densimetro, 'año' => $año_densimetro)))); if ($mes_densimetro + 1 == 13) { $mes_densimetro = 0; $año_densimetro = $año_densimetro + 1; } $densimetro_siguiente = $this->Densimetro->find('first', array('conditions' => array('and' => array('codigo_densimetro' => $bho['DatosBoleta']['densimetro'], 'mes' => $mes_densimetro + 1, 'año' => $año_densimetro)))); if ($bho['DatosBoleta']['tipo_instrumento'] == 1) { //Cono de arena $nombre_ensayo = 'Densidad in situ con Cono de Arena'; $metodologia = 'NCh1516.Of1979 Mecánica de suelos - Determinación de la densidad en el terreno - Método del cono de arena.<br>' . 'NCh1515.Of1979 Mecánica de suelos - Determinación de la humedad.'; } elseif ($bho['DatosBoleta']['tipo_instrumento'] == 2) { //Densimetro nuclear $nombre_ensayo = 'Densidad in situ con densímetro nuclear'; $metodologia = 'ASTM D 6938-08a, Standard Test Methods for In-Place Density and Water Content of Soil and Soil-Aggregate by Nuclear Methods (Shallows Depth) 1'; } if ($bho['DatosBoleta']['tipo_ensayo'] == 1) { //densidad relativa $tipo_ensayo = 'Densidad Relativa'; $densidad_relativa = 'Densidad Relativa'; $proctor = ''; $densidad_minima = 'Densidad<br>Mínima<br>(g/cm<sup>3</sup>)'; $densidad_maxima = 'Densidad<br>Máxima<br>(g/cm<sup>3</sup>)'; $dmcs1 = ''; $dmcs2 = ''; $densidad1 = 'Densidad'; $densidad2_1 = 'Mínima'; $densidad2_2 = 'Máxima'; $densidad3 = '(g/cm<sup>3</sup>)'; //largos analisis de suelos $largo_muestra = 25; $largo_informe = 35; $largo_ensayo = 30; $largo_proctor = 1; $largo_humedad_optima = 35; $largo_densidad_min = 30; $largo_densidad_max = 34; //termina largo analisis de suelos //largo densidad in situ $largo_espesor_capa = 25; $largo_espesor_medicion = 25; $largo_densidad_humeda = 25; $largo_humedad = 24; $largo_densidad_seca = 25; $largo_dmcs = 1; $largo_dmin = 15; $largo_dmax = 15; $largo_densidad_relativa = 25; //termina largo densidad in situ $nota = ''; } elseif ($bho['DatosBoleta']['tipo_ensayo'] == 2) { //proctor modificado $tipo_ensayo = 'Proctor Modificado'; $densidad_relativa = 'Compactación'; $proctor = 'DMCS<br>(g/cm<sup>3</sup>)'; $densidad_minima = ''; $densidad_maxima = ''; $dmcs1 = 'DMCS'; $dmcs2 = '(g/cm<sup>3</sup>)'; $densidad1 = ''; $densidad2_1 = ''; $densidad2_2 = ''; $densidad3 = ''; //largos analisis de suelos $largo_muestra = 35; $largo_informe = 35; $largo_ensayo = 35; $largo_proctor = 39; $largo_humedad_optima = 35; $largo_densidad_min = 1; $largo_densidad_max = 10; //termina largo analisis de suelos //largo densidad in situ $largo_espesor_capa = 25; $largo_espesor_medicion = 25; $largo_densidad_humeda = 25; $largo_humedad = 28; $largo_densidad_seca = 25; $largo_dmcs = 25; $largo_dmin = 1; $largo_dmax = 1; $largo_densidad_relativa = 25; //termina largo densidad in situ $nota = ''; } elseif ($bho['DatosBoleta']['tipo_ensayo'] == 3) { //suelo cementado $tipo_ensayo = 'Suelo Cementado'; $densidad_relativa = 'Compactación'; $proctor = ''; $densidad_minima = ''; $densidad_maxima = ''; $dmcs1 = ''; $dmcs2 = ''; $densidad1 = ''; $densidad2_1 = ''; $densidad2_2 = ''; $densidad3 = ''; //largos analisis de suelos $largo_muestra = 35; $largo_informe = 35; $largo_ensayo = 35; $largo_proctor = 39; $largo_humedad_optima = 35; $largo_densidad_min = 1; $largo_densidad_max = 10; //termina largo analisis de suelos //largo densidad in situ $largo_espesor_capa = 20; $largo_espesor_medicion = 20; $largo_densidad_humeda = 20; $largo_humedad = 25; $largo_densidad_seca = 25; $largo_dmcs = 25; $largo_dmin = 10; $largo_dmax = 10; $largo_densidad_relativa = 25; //termina largo densidad in situ //nota solo para suelo cementado $nota = '<br>2. El ensayo de control in situ no puede ser controlado, debido a que la densidad presente en el suelo, no permite la penetración mínima para determinar la densidad del elemento.'; } elseif ($bho['DatosBoleta']['tipo_ensayo'] == 4) { //combinado $tipo_ensayo = 'Densidad Relativa y Proctor Modificado'; $densidad_relativa = 'Compactación'; $proctor = 'DMCS<br>(g/cm<sup>3</sup>)'; $densidad_minima = 'Densidad<br>Mínima<br>(g/cm<sup>3</sup>)'; $densidad_maxima = 'Densidad<br>Máxima<br>(g/cm<sup>3</sup>)'; $dmcs1 = 'DMCS'; $dmcs2 = '(g/cm<sup>3</sup>)'; $densidad1 = 'Densidad'; $densidad2_1 = 'Mínima'; $densidad2_2 = 'Máxima'; $densidad3 = '(g/cm<sup>3</sup>)'; //largos analisis de suelos $largo_muestra = 30; $largo_informe = 29; $largo_ensayo = 30; $largo_proctor = 30; $largo_humedad_optima = 35; $largo_densidad_min = 18; $largo_densidad_max = 18; //termina largo analisis de suelos //largo densidad in situ $largo_espesor_capa = 20; $largo_espesor_medicion = 20; $largo_densidad_humeda = 25; $largo_humedad = 20; $largo_densidad_seca = 21; $largo_dmcs = 25; $largo_dmin = 12; $largo_dmax = 12; $largo_densidad_relativa = 25; //termina largo densidad in situ $nota = ''; } $numero_informe = $this->punto_miles($bho['DatosBoleta']['numero_informe']); $guion = $bho['DatosBoleta']['guion']; $verificar_firma = $this->verificar_firma($boleta); if ($verificar_firma == 1) { KERNEL::error('No se puede subir el informe Nº ' . $numero_informe . '-' . $guion . ' ya que el definitivo se encuentra firmado.'); } elseif ($verificar_firma == 2) { $guion += 1; $this->DatosBoleta->id = $bho['DatosBoleta']['boleta']; $this->DatosBoleta->saveField('guion', $guion); } App::import('Vendor', 'informe_densidad'); $tcpdf = new XTCPDF('M', PDF_UNIT, PDF_PAGE_FORMAT, false, 'ISO-8859-1', false); $tcpdf->SetMargins(10, 18, 10); $tcpdf->AddPage(); $tcpdf->SetFont('arial', '', 8); $tcpdf->SetCreator(PDF_CREATOR); $tcpdf->SetAuthor('IDIEM'); $tcpdf->SetTitle('Informe Densidad'); $tcpdf->SetSubject(''); $tcpdf->SetKeywords(''); $tcpdf->SetAutoPageBreak(false, PDF_MARGIN_BOTTOM); $tcpdf->SetFillColor(204, 204, 204); $tcpdf->SetLineWidth(0.1); $tcpdf->SetFont('arial', 'black', 9); $tcpdf->MultiCell(130, 4, 'INFORME DE ENSAYO Nº ' . $numero_informe . '-' . $guion, 0, 'R', 0, 0, '', '', true, 0, false, true, 4, 'T'); $tcpdf->SetFont('arial', '', 8); $tcpdf->MultiCell(60, 4, 'Fecha de Emisión: ' . $this->fecha_spanish(date('Y-m-d')), 0, 'R', 0, 1, '', '', true, 0, false, true, 4, 'T'); $tcpdf->SetFont('arial', 'black', 7); $tcpdf->MultiCell(190, 4, 'ANTECEDENTES GENERALES', 'B', 'C', 1, 1, '', '', true, 0, false, true, 4, 'M'); $tcpdf->SetFont('arial', '', 7); $tcpdf->MultiCell(35, 4, 'NOMBRE DEL ENSAYO', 'L', 'L', 0, 0, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell(95, 4, ': ' . $nombre_ensayo, 0, 'L', 0, 0, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell(25, 4, 'CÓDIGO DE OBRA', 0, 'L', 0, 0, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell(35, 4, ': ' . $bho['Obra']['codigo_obra'], 'R', 'L', 0, 1, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell(35, 4, 'OBRA', 'L', 'L', 0, 0, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell(95, 4, ': ' . $bho['Obra']['nombre_obra'], 0, 'L', 0, 0, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell(25, 4, '', 0, 'L', 0, 0, '', '', true, 0, false, true, 4, 'M'); //eliminaron el numero de control $tcpdf->MultiCell(35, 4, '', 'R', 'L', 0, 1, '', '', true, 0, false, true, 4, 'M'); //eliminaron el numero de control $tcpdf->MultiCell(35, 4, 'UBICACIÓN DE LA OBRA', 'L', 'L', 0, 0, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell(95, 4, ': ' . $bho['Obra']['direccion'], 0, 'L', 0, 0, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell(25, 4, 'DESTINATARIO', 0, 'L', 0, 0, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell(35, 4, ': ' . $destinatario['Destinatario']['nombre'], 'R', 'L', 0, 1, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell(35, 4, 'CONTRATISTA', 'L', 'L', 0, 0, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell(95, 4, ': ' . $contratista['DatosClientes']['DAT_CLI_NOMBRE'], 0, 'L', 0, 0, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell(25, 4, 'Nº BOLETA', 0, 'L', 0, 0, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell(35, 4, ': ' . $boleta, 'R', 'L', 0, 1, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell(35, 4, 'SOLICITANTE', 'L', 'L', 0, 0, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell(95, 4, ': ' . $solicitante['DatosClientes']['DAT_CLI_NOMBRE'], 0, 'L', 0, 0, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell(25, 4, 'FECHA INSPEC.', 0, 'L', 0, 0, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell(35, 4, ': ' . $this->fechaMysql($bho['DatosBoleta']['fecha_inspeccion']), 'R', 'L', 0, 1, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell(35, 4, 'DIRECCIÓN', 'L', 'L', 0, 0, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell(95, 4, ': ' . $contratista['DatosClientes']['DAT_CLI_DIRECCION'], 0, 'L', 0, 0, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell(25, 4, 'FACILITY', 0, 'L', 0, 0, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell(35, 4, ': ' . $bho['DatosBoleta']['facility'], 'R', 'L', 0, 1, '', '', true, 0, false, true, 4, 'M'); //---------- $tcpdf->SetFont('arial', 'black', 7); $tcpdf->MultiCell(190, 4, 'METODOLOGÍA', 'LRT', 'L', 0, 1, '', '', true, 0, false, true, 4, 'M'); $tcpdf->SetFont('arial', '', 7); $tcpdf->MultiCell(190, 4, $metodologia, 'LRB', 'L', 0, 1, '', '', true, 0, true, true, 4, 'M'); //--------- $tcpdf->SetFont('arial', 'black', 7); $tcpdf->MultiCell(190, 2, '', 'B', 'C', 0, 1, '', '', true, 0, false, true, 2, 'M'); $tcpdf->MultiCell(190, 4, 'DATOS DEL DENSIMETRO', 'B', 'C', 1, 1, '', '', true, 0, false, true, 4, 'M'); $tcpdf->SetFont('arial', '', 7); $tcpdf->MultiCell(30, 4, 'MARCA', 'LT', 'L', 0, 0, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell(40, 4, ': ' . $densimetro['Densimetro']['marca'], 'T', 'L', 0, 0, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell(20, 4, 'CONTEO', 'T', 'L', 0, 0, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell(40, 4, ': ' . $densimetro['Densimetro']['conteo'], 'T', 'L', 0, 0, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell(25, 4, 'OPERADOR', 'T', 'L', 0, 0, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell(35, 4, ': ' . $operador['Operador']['nombre'], 'TR', 'L', 0, 1, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell(30, 4, 'DENSIMETRO Nº', 'L', 'L', 0, 0, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell(40, 4, ': ' . $densimetro['Densimetro']['codigo_densimetro'], '', 'L', 0, 0, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell(20, 4, 'MODELO', '', 'L', 0, 0, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell(40, 4, ': ' . $densimetro['Densimetro']['modelo'], '', 'L', 0, 0, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell(25, 4, 'HUMEDAD', '', 'L', 0, 0, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell(35, 4, ': ' . $densimetro['Densimetro']['humedad'], 'R', 'L', 0, 1, '', '', true, 0, false, true, 4, 'M'); //--------tabla de densidad: $tcpdf->MultiCell(30, 4, 'Fecha', 1, 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell(80, 4, 'Limite inferior de proyección de densidad de conteo (kg/cm<sup>3</sup>)', 1, 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell(80, 4, 'Limite superior de proyección de densidad de conteo (kg/cm<sup>3</sup>)', 1, 'C', 0, 1, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell(30, 4, $this->mesEspañol($densimetro['Densimetro']['mes']) . '-' . $densimetro['Densimetro']['año'], 1, 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell(80, 4, $this->punto_miles($densimetro['Densimetro']['limite_inferior']), 1, 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell(80, 4, $this->punto_miles($densimetro['Densimetro']['limite_superior']), 1, 'C', 0, 1, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell(30, 4, $this->mesEspañol($densimetro_siguiente['Densimetro']['mes']) . '-' . $densimetro_siguiente['Densimetro']['año'], 1, 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell(80, 4, $this->punto_miles($densimetro_siguiente['Densimetro']['limite_inferior']), 1, 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell(80, 4, $this->punto_miles($densimetro_siguiente['Densimetro']['limite_superior']), 1, 'C', 0, 1, '', '', true, 0, true, true, 4, 'M'); //ubicacion de los puntos de control: $tcpdf->SetFont('arial', 'black', 7); $tcpdf->MultiCell(190, 2, '', 'B', 'C', 0, 1, '', '', true, 0, false, true, 2, 'M'); $tcpdf->MultiCell(190, 4, 'UBICACIÓN DE LOS PUNTOS DE CONTROL', 'B', 'C', 1, 1, '', '', true, 0, false, true, 4, 'M'); $tcpdf->SetFont('arial', '', 7); for ($i = 1; $i <= $cantidad_densidades; $i++) { if ($i == 1) { $borde = 'T'; } elseif ($i == $cantidad_densidades) { $borde = 'B'; } else { $borde = ''; } $ubicacion_ptos_control = array(); if ($bhd[$i - 1]['BoletaHasDensidades']['area']) { array_push($ubicacion_ptos_control, $bhd[$i - 1]['Area']['nombre']); } if ($bhd[$i - 1]['BoletaHasDensidades']['subarea']) { array_push($ubicacion_ptos_control, $bhd[$i - 1]['SubArea']['nombre']); } if ($bhd[$i - 1]['BoletaHasDensidades']['tipo_relleno']) { array_push($ubicacion_ptos_control, $bhd[$i - 1]['TipoRelleno']['nombre']); } if ($bhd[$i - 1]['BoletaHasDensidades']['acopio']) { array_push($ubicacion_ptos_control, $bhd[$i - 1]['BoletaHasDensidades']['acopio']); } if ($bhd[$i - 1]['BoletaHasDensidades']['elemento']) { array_push($ubicacion_ptos_control, $bhd[$i - 1]['BoletaHasDensidades']['elemento']); } if ($bhd[$i - 1]['BoletaHasDensidades']['capa']) { array_push($ubicacion_ptos_control, $bhd[$i - 1]['BoletaHasDensidades']['capa']); } if ($bhd[$i - 1]['BoletaHasDensidades']['ejes']) { array_push($ubicacion_ptos_control, $bhd[$i - 1]['BoletaHasDensidades']['ejes']); } if ($bhd[$i - 1]['BoletaHasDensidades']['otros']) { array_push($ubicacion_ptos_control, $bhd[$i - 1]['BoletaHasDensidades']['otros']); } if ($bhd[$i - 1]['BoletaHasDensidades']['c_norte']) { array_push($ubicacion_ptos_control, $bhd[$i - 1]['BoletaHasDensidades']['c_norte']); } if ($bhd[$i - 1]['BoletaHasDensidades']['c_este']) { array_push($ubicacion_ptos_control, $bhd[$i - 1]['BoletaHasDensidades']['c_este']); } if ($bhd[$i - 1]['BoletaHasDensidades']['elevacion']) { array_push($ubicacion_ptos_control, $bhd[$i - 1]['BoletaHasDensidades']['elevacion']); } $ubicacion_ptos_control = implode(', ', $ubicacion_ptos_control); $tcpdf->MultiCell(10, 8, 'D' . $i, 'L' . $borde, 'L', 0, 0, '', '', true, 0, false, true, 8, 'M'); $tcpdf->MultiCell(180, 8, $ubicacion_ptos_control, 'R' . $borde, 'L', 0, 1, '', '', true, 0, false, true, 8, 'M'); } //Analisis de suelos: $tcpdf->SetFont('arial', 'black', 7); $tcpdf->SetFillColor(204, 204, 204); $tcpdf->MultiCell(190, 2, '', 'B', 'C', 0, 1, '', '', true, 0, false, true, 2, 'M'); $tcpdf->MultiCell(190, 4, 'ANÁLISIS DE SUELOS', 'B', 'C', 1, 1, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell($largo_muestra, 6, 'Muestra<br> <br>', 'LT', 'C', 0, 0, '', '', true, 0, true, true, 6, 'M'); $tcpdf->MultiCell($largo_informe, 6, 'Informe<br> <br>', 'T', 'C', 0, 0, '', '', true, 0, true, true, 6, 'M'); $tcpdf->MultiCell($largo_ensayo, 6, 'Ensayo<br> <br>', 'T', 'C', 0, 0, '', '', true, 0, true, true, 6, 'M'); $tcpdf->MultiCell($largo_proctor, 6, $proctor, 'T', 'C', 0, 0, '', '', true, 0, true, true, 6, 'M'); $tcpdf->MultiCell($largo_humedad_optima, 6, 'Humedad<br>Óptima (%)', 'T', 'C', 0, 0, '', '', true, 0, true, true, 6, 'M'); $tcpdf->MultiCell($largo_densidad_min, 6, $densidad_minima, 'T', 'C', 0, 0, '', '', true, 0, true, true, 6, 'M'); $tcpdf->MultiCell($largo_densidad_max, 6, $densidad_maxima, 'RT', 'C', 0, 1, '', '', true, 0, true, true, 6, 'M'); //-------- $tcpdf->SetFont('arial', '', 7); $contador = 0; $muestras = array(); for ($i = 0; $i < 6; $i++) { if ($contador < 6) { if ($contador == 5) { $borde = 'B'; } else { $borde = ''; } if (!empty($bhd[$i]['ResultadosAnalisisSuelo']['id']) && !in_array($bhd[$i]['ResultadosAnalisisSuelo']['id'], $muestras)) { $m = 'M' . $bhd[$i]['ResultadosAnalisisSuelo']['identificador_muestra']; $dato_numero_informe = $bhd[$i]['ResultadosAnalisisSuelo']['numero_informe']; $ensayo = $tipo_ensayo; $dato_proctor = str_replace('.', ',', $this->punto_miles($bhd[$i]['ResultadosAnalisisSuelo']['proctor'])); $dato_humedad_optima = str_replace('.', ',', $bhd[$i]['ResultadosAnalisisSuelo']['humedad']); $dato_dmin = $this->punto_miles($bhd[$i]['ResultadosAnalisisSuelo']['densidad_minima']); $dato_dmax = $this->punto_miles($bhd[$i]['ResultadosAnalisisSuelo']['densidad_maxima']); array_push($muestras, $bhd[$i]['ResultadosAnalisisSuelo']['id']); //se le agrega el id de la muestra que se va a mostrar } else { $m = ''; $dato_numero_informe = ''; $ensayo = ''; $dato_proctor = ''; $dato_humedad_optima = ''; $dato_dmin = ''; $dato_dmax = ''; } $tcpdf->MultiCell($largo_muestra, 4, $this->emptyGuion($m), 'L' . $borde, 'C', 0, 0, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell($largo_informe, 4, $this->emptyGuion($dato_numero_informe), '' . $borde, 'C', 0, 0, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell($largo_ensayo, 4, $this->emptyGuion($ensayo), '' . $borde, 'C', 0, 0, '', '', true, 0, false, true, 4, 'M'); if ($bho['DatosBoleta']['tipo_ensayo'] == 1) { //densidad relativa $tcpdf->MultiCell($largo_proctor, 4, '', '' . $borde, 'C', 0, 0, '', '', true, 0, false, true, 4, 'M'); } elseif ($bho['DatosBoleta']['tipo_ensayo'] == 2) { //proctor modificado $tcpdf->MultiCell($largo_proctor, 4, $this->emptyGuion($dato_proctor), '' . $borde, 'C', 0, 0, '', '', true, 0, false, true, 4, 'M'); } elseif ($bho['DatosBoleta']['tipo_ensayo'] == 3) { //suelo cementado $tcpdf->MultiCell($largo_proctor, 4, '', '' . $borde, 'C', 0, 0, '', '', true, 0, false, true, 4, 'M'); } elseif ($bho['DatosBoleta']['tipo_ensayo'] == 4) { //combinado $tcpdf->MultiCell($largo_proctor, 4, $this->emptyGuion($dato_proctor), '' . $borde, 'C', 0, 0, '', '', true, 0, false, true, 4, 'M'); } $tcpdf->MultiCell($largo_humedad_optima, 4, $this->emptyGuion($dato_humedad_optima), '' . $borde, 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); if ($bho['DatosBoleta']['tipo_ensayo'] == 1) { //densidad relativa $tcpdf->MultiCell($largo_densidad_min, 4, $this->emptyGuion($dato_dmin), '' . $borde, 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_densidad_max, 4, $this->emptyGuion($dato_dmax), 'R' . $borde, 'C', 0, 1, '', '', true, 0, true, true, 4, 'M'); } elseif ($bho['DatosBoleta']['tipo_ensayo'] == 2) { //proctor modificado $tcpdf->MultiCell($largo_densidad_min, 4, '', '' . $borde, 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_densidad_max, 4, '', 'R' . $borde, 'C', 0, 1, '', '', true, 0, true, true, 4, 'M'); } elseif ($bho['DatosBoleta']['tipo_ensayo'] == 3) { //suelo cementado $tcpdf->MultiCell($largo_densidad_min, 4, '', '' . $borde, 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_densidad_max, 4, '', 'R' . $borde, 'C', 0, 1, '', '', true, 0, true, true, 4, 'M'); } elseif ($bho['DatosBoleta']['tipo_ensayo'] == 4) { //combinado $tcpdf->MultiCell($largo_densidad_min, 4, $this->emptyGuion($dato_dmin), '' . $borde, 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_densidad_max, 4, $this->emptyGuion($dato_dmax), 'R' . $borde, 'C', 0, 1, '', '', true, 0, true, true, 4, 'M'); } $contador++; } } //--- //empiezan encabezados $tcpdf->SetFont('arial', 'black', 7); $tcpdf->SetFillColor(204, 204, 204); $tcpdf->MultiCell(190, 2, '', 'B', 'C', 0, 1, '', '', true, 0, false, true, 2, 'M'); $tcpdf->MultiCell(190, 4, 'DENSIDAD IN SITU', 'B', 'C', 1, 1, '', '', true, 0, false, true, 4, 'M'); $tcpdf->MultiCell(10, 4, '', 'LT', 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_espesor_capa, 4, 'Espesor', 'T', 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_espesor_medicion, 4, 'Espesor', 'T', 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_densidad_humeda, 4, 'Densidad', 'T', 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_humedad, 4, 'Humedad', 'T', 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_densidad_seca, 4, 'Densidad', 'T', 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_dmcs, 4, $dmcs1, 'T', 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); //DMCS=Densidad maxima compactada seca $tcpdf->MultiCell($largo_dmin + $largo_dmax, 4, $densidad1, 'T', 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_densidad_relativa, 4, '', 'RT', 'C', 0, 1, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell(10, 4, '', 'L', 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_espesor_capa, 4, 'Capa', '', 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_espesor_medicion, 4, 'Medición', '', 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_densidad_humeda, 4, 'Húmeda', '', 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_humedad, 4, '', '', 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_densidad_seca, 4, 'Seca', '', 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_dmcs, 4, '', '', 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_dmin, 4, $densidad2_1, '', 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_dmax, 4, $densidad2_2, '', 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_densidad_relativa, 4, $densidad_relativa, 'R', 'C', 0, 1, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell(10, 4, '', 'LB', 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_espesor_capa, 4, '(m)', 'B', 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_espesor_medicion, 4, '(m)', 'B', 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_densidad_humeda, 4, '(g/cm<sup>3</sup>)', 'B', 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_humedad, 4, '(%)', 'B', 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_densidad_seca, 4, '(g/cm<sup>3</sup>)', 'B', 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_dmcs, 4, $dmcs2, 'B', 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_dmin, 4, $densidad3, 'B', 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_dmax, 4, $densidad3, 'B', 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_densidad_relativa, 4, '(%)', 'RB', 'C', 0, 1, '', '', true, 0, true, true, 4, 'M'); //terminan encabezados $tcpdf->SetFont('arial', '', 7); for ($i = 1; $i <= $cantidad_densidades; $i++) { if ($i == 1) { $borde = 'T'; } elseif ($i == $cantidad_densidades) { $borde = 'B'; } else { $borde = ''; } $tcpdf->MultiCell(10, 4, 'D' . $i, 'L' . $borde, 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_espesor_capa, 4, $this->emptyGuion(str_replace('.', ',', $bhd[$i - 1]['DensidadHasResultados'][0]['promedio'])), '' . $borde, 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_espesor_medicion, 4, $this->emptyGuion(str_replace('.', ',', $bhd[$i - 1]['DensidadHasResultados'][1]['promedio'])), '' . $borde, 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_densidad_humeda, 4, $this->emptyGuion(str_replace('.', ',', $this->punto_miles($bhd[$i - 1]['DensidadHasResultados'][2]['promedio']))), '' . $borde, 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_humedad, 4, $this->emptyGuion(str_replace('.', ',', $bhd[$i - 1]['DensidadHasResultados'][3]['promedio'])), '' . $borde, 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_densidad_seca, 4, $this->emptyGuion(str_replace('.', ',', $this->punto_miles($bhd[$i - 1]['DensidadHasResultados'][4]['promedio']))), '' . $borde, 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); if ($bho['DatosBoleta']['tipo_ensayo'] == 1) { //densidad relativa $tcpdf->MultiCell($largo_dmcs, 4, '', '' . $borde, 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); } elseif ($bho['DatosBoleta']['tipo_ensayo'] == 2) { //proctor modificado $tcpdf->MultiCell($largo_dmcs, 4, $this->emptyGuion(str_replace('.', ',', $this->punto_miles($bhd[$i - 1]['DensidadHasResultados'][5]['promedio']))), '' . $borde, 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); } elseif ($bho['DatosBoleta']['tipo_ensayo'] == 3) { //suelo cementado $tcpdf->MultiCell($largo_dmcs, 4, '', '' . $borde, 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); } elseif ($bho['DatosBoleta']['tipo_ensayo'] == 4) { //combinado $tcpdf->MultiCell($largo_dmcs, 4, $this->emptyGuion(str_replace('.', ',', $this->punto_miles($bhd[$i - 1]['DensidadHasResultados'][5]['promedio']))), '' . $borde, 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); } if ($bho['DatosBoleta']['tipo_ensayo'] == 1) { //densidad relativa $tcpdf->MultiCell($largo_dmin, 4, $this->emptyGuion(str_replace('.', ',', $this->punto_miles($bhd[$i - 1]['DensidadHasResultados'][7]['promedio']))), '' . $borde, 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_dmax, 4, $this->emptyGuion(str_replace('.', ',', $this->punto_miles($bhd[$i - 1]['DensidadHasResultados'][6]['promedio']))), '' . $borde, 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); } elseif ($bho['DatosBoleta']['tipo_ensayo'] == 2) { //proctor modificado $tcpdf->MultiCell($largo_dmin, 4, '', '' . $borde, 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_dmax, 4, '', '' . $borde, 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); } elseif ($bho['DatosBoleta']['tipo_ensayo'] == 3) { //suelo cementado $tcpdf->MultiCell($largo_dmin, 4, '', '' . $borde, 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_dmax, 4, '', '' . $borde, 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); } elseif ($bho['DatosBoleta']['tipo_ensayo'] == 4) { //combinado $tcpdf->MultiCell($largo_dmin, 4, $this->emptyGuion(str_replace('.', ',', $this->punto_miles($bhd[$i - 1]['DensidadHasResultados'][7]['promedio']))), '' . $borde, 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); $tcpdf->MultiCell($largo_dmax, 4, $this->emptyGuion(str_replace('.', ',', $this->punto_miles($bhd[$i - 1]['DensidadHasResultados'][6]['promedio']))), '' . $borde, 'C', 0, 0, '', '', true, 0, true, true, 4, 'M'); } $tcpdf->MultiCell($largo_densidad_relativa, 4, $this->emptyGuion(round($bhd[$i - 1]['DensidadHasResultados'][8]['promedio'])), 'R' . $borde, 'C', 0, 1, '', '', true, 0, true, true, 4, 'M'); } if (!empty($bho['DatosBoleta']['observaciones'])) { $observaciones = '<br>' . nl2br($bho['DatosBoleta']['observaciones']); } else { $observaciones = ''; } //--- $tcpdf->SetFont('arial', 'black', 7); $tcpdf->MultiCell(190, 8, 'Observaciones: <br>1. El control de compactación fue realizado en el sector definido por el solicitante.' . $nota . $observaciones . '', 1, 'L', 0, 1, '', '', true, 0, true, true, 8, 'M'); //parte firmas $validador = $this->Validador->find('first', array('conditions' => array('id' => $bho['DatosBoleta']['validador']))); $firmante = $this->Firmante->find('first', array('conditions' => array('id' => $bho['DatosBoleta']['firmante']))); $firma1 = $this->ruta_imagenes . $validador['Validador']['ruta_firma']; $nombre1 = $validador['Validador']['nombre']; $cargo1 = $validador['Validador']['cargo']; $firma2 = $this->ruta_imagenes . $firmante['Firmante']['ruta_firma']; $nombre2 = $firmante['Firmante']['nombre']; $cargo2 = $firmante['Firmante']['cargo']; $tcpdf->SetFont('arial', 'black', 9); //firmante 1 // $tcpdf->writeHTMLCell(95, 10, 0, 269, $nombre1, 0, 0, false, true, 'C'); // $tcpdf->writeHTMLCell(95, 10, 0, 273, $cargo1, 0, 0, false, true, 'C'); // $tcpdf->Image($firma1, 30, 238, 30, 30, 'JPEG', '', '', false, 150, '', false, false, 0, false, false, false); //firmante 2 $tcpdf->writeHTMLCell(95, 10, 105, 269, $nombre2, 0, 0, false, true, 'C'); $tcpdf->writeHTMLCell(95, 10, 105, 273, $cargo2, 0, 0, false, true, 'C'); $tcpdf->Image($firma2, 135, 238, 30, 30, 'JPEG', '', '', false, 150, '', false, false, 0, false, false, false); $timbre_idiem = $this->ruta_imagenes . 'timbre_centro.jpeg'; $tcpdf->Image($timbre_idiem, 85, 240, 33, 33, 'JPEG', '', '', false, 150, '', false, false, 0, false, false, false); $doc_key1 = $this->randStr(); $doc_key2 = md5($doc_key1); $doc_key = $doc_key1 . $doc_key2[13]; $listo = $this->existeDocKey($doc_key); while (!$listo) { $doc_key1 = $this->randStr(); $doc_key2 = md5($doc_key1); $doc_key = $doc_key1 . $doc_key2[13]; $listo = $this->existeDocKey($doc_key); } $archivo = $doc_key . ".pdf"; $tcpdf->SetY(-8); $tcpdf->SetX(-163); $tcpdf->SetFontSize(8); $tcpdf->Cell(30, 10, 'Para verificar este documento ingrese a http://repositorio.idiem.cl - Código del documento: ' . $doc_key, 0, false, 'L', 0, '', 0, false, 'T', 'M'); if ($verificar_firma == 3 || $verificar_firma == 2) { //con el 3 se puede generar, si es 1 no se puede generar $tcpdf->Output($this->rutaFirma . date("Y") . "/" . date("m") . "/" . $archivo, "F"); chmod($this->rutaFirma . date("Y") . "/" . date("m") . "/" . $archivo, 0777); $documento_anterior = $this->Documentos->find('all', array('conditions' => array('and' => array('DOC_ARCHIVO_ORIGINAL' => 'informe_densidad=' . $boleta, 'DOC_ESTADO' => 1)))); if (!empty($documento_anterior)) { if ($verificar_firma == 2) { $sql = ' Update DOCUMENTOS Set DOC_ESTADO=3, DOC_FECHA_ANULACION=\'' . date('Y-m-d H:i:s') . '\', DOC_TEXTO_ANULACION=\'<br> Documento anulado y reemplazado por el informe nº ' . $numeroInforme . ' (http://repositorio.idiem.cl/verifica/' . $doc_key . '). \' Where (DOC_ARCHIVO_ORIGINAL=\'informe_densidad=' . $boleta . '\') and (DOC_ESTADO=1)'; } else { $sql = ' Update DOCUMENTOS Set DOC_ESTADO=2 Where (DOC_ARCHIVO_ORIGINAL=\'informe_densidad=' . $boleta . '\') and (DOC_ESTADO=1)'; } $this->Documentos->query($sql); } if ($bho['DatosBoleta']['estado'] == 0) { $estado = 'Provisorio'; } elseif ($bho['DatosBoleta']['estado'] == 1) { $estado = 'Definitivo'; } $datos_documento = array('DOC_CLI_ID' => $solicitante['DatosClientes']['DAT_CLI_ID'], 'DOC_OBR_CODIGO' => $bho['Obra']['codigo_obra'], 'DOC_ID_MODULO' => $numero_informe . '-' . $guion, 'DOC_ARCHIVO' => $archivo, 'DOC_GRU_ID' => 'idiem.hormigones_proyecto.ews', 'DOC_MODULO' => 'idiem.hormigones_tecnologia.densidad_suelo', 'DOC_KEY' => $doc_key, 'DOC_ARCHIVO_ORIGINAL' => 'informe_densidad=' . $boleta, 'DOC_FECHA' => date("Y-m-d H:i:s"), 'DOC_METADATOS' => "array('area' => '" . $bhd[0]['Area']['nombre'] . "', \n 'subarea' => '" . $bhd[0]['SubArea']['nombre'] . "', 'num_guion'=>'" . $guion . "', " . "'tipo_ensayo'=>'Densidad de suelo', 'numero_muestra'=>'" . $boleta . "','fecha_muestreo'=>'" . $this->fechaMysql($bho['DatosBoleta']['fecha_inspeccion']) . "', 'estado'=>'" . $estado . "', 'numero_control'=>'" . $bho['DatosBoleta']['numero_control'] . "', 'facility'=>'" . $bho['DatosBoleta']['facility'] . "');"); $this->Documentos->create(); $this->Documentos->save($datos_documento); $this->redirect(array('controller' => 'suelos', 'action' => 'edit_boleta/' . $boleta), null, true); } }
ob_end_clean(); # begin $pdf = new XTCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, $DBInfo->charset); include_once 'function/toc.php'; $toc = function_toc($formatter); $pdf->toc = $toc; $pdf->setFontAlias(array('monospace' => 'courier')); #$pdf->setLIsymbol(chr(42)); #$pdf->setLIsymbol('a'); // set default header data // $pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING); $pdf->SetHeaderData($DBInfo->logo_img, 20, $formatter->page->name); $pdf->SetTitle($formatter->page->name); # $pdf->SetAuthor('Your name'); $pdf->SetCreator('TCPDF/MoniWiki'); $pdf->SetSubject($formatter->page->name); if (!empty($formatter->pi['#keywords'])) { $pdf->SetKeywords($keywords = $formatter->pi['#keywords']); } // load default font $pdf->AddFont($conf['default_unifont']); $pdf->SetFont($conf['default_font']); // set header and footer fonts // $pdf->setHeaderFont(Array($conf['default_unifont'], '', PDF_FONT_SIZE_MAIN)); $pdf->setHeaderFont(array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); $pdf->setFooterFont(array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); //set margins $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); $pdf->SetHeaderMargin(PDF_MARGIN_HEADER); $pdf->SetFooterMargin(PDF_MARGIN_FOOTER); //set auto page breaks