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); } }
function payslip_update() { if ($this->request->data) { $this->set('employee_id', $this->request->data['SalaryRecord']['employee_id']); $res = $this->Employee->SalaryRecord->salarySearch($this->request->data['SalaryRecord']['employee_id'], $this->request->data['SalaryRecord']['salary_date']); if ($res['SalaryRecord']['payslip_generated'] != 1) { //debug($this->request->data); $earnings = $this->request->data['SalaryRecord']['basic'] + $this->request->data['SalaryRecord']['da'] + $this->request->data['SalaryRecord']['bonus'] + $this->request->data['SalaryRecord']['medical_allowance'] + $this->request->data['SalaryRecord']['tiffin'] + $this->request->data['SalaryRecord']['house_rent'] + $this->request->data['SalaryRecord']['education'] + $this->request->data['SalaryRecord']['entertainment']; $deductions = $this->request->data['SalaryRecord']['pf'] + $this->request->data['SalaryRecord']['esi'] + $this->request->data['SalaryRecord']['income_tax']; $this->request->data['SalaryRecord']['net_salary'] = $earnings - $deductions; $se = $this->Session->read("Auth"); $this->request->data['SalaryRecord']['user_id'] = $se['User']['id']; $this->request->data['SalaryRecord']['print_copy'] = 1; $this->request->data['SalaryRecord']['payslip_generated'] = 1; //debug($this->request->data['SalaryRecord']);exit(); if ($res['SalaryRecord']['id']) { $this->Employee->SalaryRecord->id = $res['SalaryRecord']['id']; } else { $this->Employee->SalaryRecord->create(); } if ($this->Employee->SalaryRecord->save($this->request->data)) { //update the loan amount if ($this->request->data['SalaryRecord']['loan_amount'] > 0) { $this->request->data['Loan']['loan_amount'] = $this->request->data['SalaryRecord']['loan_amount']; $this->request->data['Loan']['employee_id'] = $this->request->data['SalaryRecord']['employee_id']; $loan_save = $this->Employee->Loan->loanEntryUpdate($this->request->data['Loan']); } $this->set('salary_saved', 1); $name = $this->request->data['SalaryRecord']['fname']; if ($this->request->data['SalaryRecord']['mname'] != null) { $name .= ' ' . $this->request->data['SalaryRecord']['mname']; } $name .= ' ' . $this->request->data['SalaryRecord']['lname']; App::import('Vendor', 'xtcpdf'); $tcpdf = new XTCPDF(); $textfont = 'freesans'; // looks better, finer, and more condensed than 'dejavusans' $tcpdf->SetAuthor("Company Name"); $tcpdf->SetAutoPageBreak(false); $tcpdf->setPrintHeader(false); $tcpdf->setPrintFooter(false); //$tcpdf->setHeaderFont(array($textfont,'',40)); //$tcpdf->xheadercolor = array(0,0,0); //$tcpdf->xheadertext = ''; //$tcpdf->xfootertext = ''; // add a page (required with recent versions of tcpdf) $tcpdf->AddPage(); // Now you position and print your page content // example: $fill = 0; $tcpdf->SetTextColor(0, 0, 0); $tcpdf->SetFont($textfont, 'B', 20); $header_html = '<span>Company Logo</span>'; $header_html2 = '<span>Company Address</span>'; $payslip_date = '<p style="font-size:20px!important">Playslip for the month of ' . $this->request->data['SalaryRecord']['salary_date'] . '</p>'; $emp_name = '<p style="font-size:20px!important">Name : ' . $name . '</p>'; $employee_id = '<p style="font-size:20px!important">Employee Id : emp' . $this->request->data['SalaryRecord']['employee_id'] . '</p>'; $department = '<p style="font-size:20px!important">Department : ' . $this->request->data['SalaryRecord']['department'] . '</p>'; $designation = '<p style="font-size:20px!important">Designation : ' . $this->request->data['SalaryRecord']['designation'] . '</p>'; $employee = $this->Employee->employeeSearch($this->request->data['SalaryRecord']['employee_id']); $expected_earnings = $employee['Employee']['net_salary'] + $employee['Employee']['da'] + $employee['Employee']['bonus'] + $employee['Employee']['medical_allowance'] + $employee['Employee']['tiffin'] + $employee['Employee']['house_rent'] + $employee['Employee']['education'] + $employee['Employee']['entertainment']; $expected_deductions = $employee['Employee']['pf'] + $employee['Employee']['esi'] + $employee['Employee']['income_tax']; $earnings_content = ' <style> table{width:100%;border:none} th{font-size:12px;height:10px;font-size:22px!important;border-bottom:0px solid black} td{font-size:20px!important;width:100%;} .total{border-top:0px solid black} </style> <table> <tr> <th><b>Earnings</b></th> </tr> <tr> <td width="50%"></td> <td width="25%">Full (Rs.)</td> <td width="25%">Actual (Rs.)</td> </tr> <tr> <td width="50%">Basic</td> <td width="25%">' . $employee['Employee']['net_salary'] . '</td> <td width="25%">' . $this->request->data['SalaryRecord']['basic'] . '</td> </tr> <tr> <td width="50%">DA</td> <td width="25%">' . $employee['Employee']['da'] . '</td> <td width="25%">' . $this->request->data['SalaryRecord']['da'] . '</td> </tr> <tr> <td width="50%">Bonus</td> <td width="25%">' . $employee['Employee']['bonus'] . '</td> <td width="25%">' . $this->request->data['SalaryRecord']['bonus'] . '</td> </tr> <tr> <td width="50%">Medical Allowance</td> <td width="25%">' . $employee['Employee']['medical_allowance'] . '</td> <td width="25%">' . $this->request->data['SalaryRecord']['medical_allowance'] . '</td> </tr> <tr> <td width="50%">Tiffin Allowance</td> <td width="25%">' . $employee['Employee']['tiffin'] . '</td> <td width="25%">' . $this->request->data['SalaryRecord']['tiffin'] . '</td> </tr> <tr> <td width="50%">House Rent Allowance</td> <td width="25%">' . $employee['Employee']['house_rent'] . '</td> <td width="25%">' . $this->request->data['SalaryRecord']['house_rent'] . '</td> </tr> <tr> <td width="50%">Education Allowance</td> <td width="25%">' . $employee['Employee']['education'] . '</td> <td width="25%">' . $this->request->data['SalaryRecord']['education'] . '</td> </tr> <tr> <td width="50%">Entertainment Allowance</td> <td width="25%">' . $employee['Employee']['entertainment'] . '</td> <td width="25%">' . $this->request->data['SalaryRecord']['entertainment'] . '</td> </tr> <tr> <td width="50%" class="total"><b>Total Earnings (Rs.) :</b></td> <td width="25%" class="total"><b>' . $expected_earnings . '</b></td> <td width="25%" class="total"><b>' . $earnings . '</b></td> </tr> </table>'; $deductions_content = ' <style> table{width:100%;border:none} th{font-size:12px;height:10px;font-size:22px!important;border-bottom:0px solid black} td{font-size:20px!important;width:100%;} .total{border-top:0px solid black} </style> <table> <tr> <th><b>Deductions</b></th> </tr> <tr> <td width="50%"></td> <td width="25%">Full (Rs.)</td> <td width="25%">Actual (Rs.)</td> </tr> <tr> <td width="50%">PF</td> <td width="25%">' . $employee['Employee']['pf'] . '</td> <td width="25%">' . $this->request->data['SalaryRecord']['pf'] . '</td> </tr> <tr> <td width="50%">ESI</td> <td width="25%">' . $employee['Employee']['esi'] . '</td> <td width="25%">' . $this->request->data['SalaryRecord']['esi'] . '</td> </tr> <tr> <td width="50%">TDS</td> <td width="25%">' . $employee['Employee']['income_tax'] . '</td> <td width="25%">' . $this->request->data['SalaryRecord']['income_tax'] . '</td> </tr> <tr> <td width="50%">Advance</td> <td width="25%">0</td> <td width="25%">0</td> </tr> <tr> <td width="50%">Loan</td> <td width="25%">0</td> <td width="25%">0</td> </tr> <tr> <td width="50%"></td> <td width="25%"></td> <td width="25%"></td> </tr> <tr> <td width="50%"></td> <td width="25%"></td> <td width="25%"></td> </tr> <tr> <td width="50%"></td> <td width="25%"></td> <td width="25%"></td> </tr> <tr> <td width="50%" class="total"><b>Total Deductions (Rs.) :</b></td> <td width="25%" class="total"><b>' . $expected_deductions . '</b></td> <td width="25%" class="total"><b>' . $deductions . '</b></td> </tr> </table>'; $net_earnings = $earnings - $deductions; $net_salary = '<p style="font-size:20px!important"><b>Net Salary : Rs. ' . $net_earnings . '</b></p>'; $auto_text = '<p style="font-size:22px!important;color:#cccccc">This is a computer-generated salary slip. Does not require a Signature</p>'; $tcpdf->SetFillColor(155, 100, 0); $tcpdf->writeHTMLCell(50, 0, '', 10, $header_html, 0, 1, 0, true, 'L', true); $tcpdf->writeHTMLCell(50, 0, 55, 10, $header_html2, 0, 0, 0, true, 'R', true); $tcpdf->writeHTMLCell(0, 0, '', 35, $payslip_date, 0, 1, 0, true, 'L', true); $tcpdf->writeHTMLCell(80, 5, '', 40, $emp_name, 'LRTB', 1, 0, true, 'C', true); $tcpdf->writeHTMLCell(80, 5, 85, 40, $employee_id, 'RTB', 1, 0, true, 'C', true); $tcpdf->writeHTMLCell(80, 5, '', 45, $department, 'LRB', 1, 0, true, 'C', true); $tcpdf->writeHTMLCell(80, 5, 85, 45, $designation, 'RB', 1, 0, true, 'C', true); $tcpdf->writeHTMLCell(80, '', '', 55, $earnings_content, 'LRTB', 1, 0, true, 'C', true); $tcpdf->writeHTMLCell(80, '', 85, 55, $deductions_content, 'RTB', 1, 0, true, 'C', true); $tcpdf->writeHTMLCell(155, 3, '', '', $net_salary, 'LRTB', 1, 0, true, 'L', true); $tcpdf->writeHTMLCell(155, '', '', 105, $auto_text, '', 1, 0, true, 'L', true); // ... // etc. // see the TCPDF examples $file_name = time() . '.pdf'; echo $tcpdf->Output($file_name, 'F'); //setting view variables before sending email so that if email is not sent generated salry slip will still be viewed $this->set('salaryrecord', $this->request->data['SalaryRecord']); $this->set('employee', $employee); $this->set('earnings', $earnings); $this->set('deductions', $deductions); $this->set('expected_earnings', $expected_earnings); $this->set('net_earnings', $net_earnings); App::uses('CakeEmail', 'Network/Email'); $Email = new CakeEmail(); $Email->to($this->request->data['SalaryRecord']['email']); $Email->bcc($se['User']['email']); $Email->subject('Salary Slip of ' . $name . ' [ emp' . $this->request->data['SalaryRecord']['employee_id'] . ' ] for ' . $this->request->data['SalaryRecord']['salary_date']); $Email->replyTo($se['User']['email']); $Email->from($se['User']['email']); $Email->emailFormat('html'); $Email->viewVars(array('salary_record' => $this->request->data['SalaryRecord'])); $Email->attachments($file_name); $Email->template('salaryslip'); //$Email->send(); App::uses('File', 'Utility'); $file = new File($file_name); $file->delete(); } else { $this->set('salary_saved', 0); } } } }