<?php
###################################################################################
#               INFORME MODIFICACIONES A DISPONIBILIDAD
#                               GENERAL
############################MODIFICACIONES#########################################
#09/06/2017 |ERICA G. |ARCHIVO CREADO
###################################################################################
header("Content-Type: text/html;charset=utf-8");
require_once('../estructura_apropiacion.php');
require_once('../estructura_saldo_obligacion.php');
require '../fpdf/fpdf.php';
require '../Conexion/ConexionPDO.php';
ini_set('max_execution_time', 0);
$con = new ConexionPDO();
session_start();
$conexion = $_SESSION['conexion'];
$meses = array('no', 'Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre');
$id = $_REQUEST['id'];
$date = $conexion == 1 ? "DATE_FORMAT(comp.fecha,'%d/%m/%Y')" : "TO_CHAR(comp.fecha,'DD/MM/YYYY')";
$fechaEl = $conexion == 1 ? "DATE_FORMAT(comp.fecha_elaboracion, '%d/%m/%Y')" : "TO_CHAR(comp.fecha_elaboracion,'DD/MM/YYYY')";
$rowComp = $con->Listar("SELECT 
            comp.id_unico, 
            comp.numero, 
            $date, 
            comp.descripcion, 
            comp.fechavencimiento, 
            comp.tipocomprobante, 
            tipCom.codigo, 
            tipCom.nombre, 
            comp.tercero, 
            comp.usuario, 
            $fechaEl
      FROM 
        gf_comprobante_pptal comp 
      LEFT JOIN 
        gf_tipo_comprobante_pptal tipCom ON comp.tipocomprobante = tipCom.id_unico 
      WHERE  comp.id_unico =$id");
$nomcomp = $rowComp[0][1]; //Número de comprobante      
$fechaComp = $rowComp[0][2]; //Fecha       
$descripcion = $rowComp[0][3]; //Descripción  
$fechaVen = $rowComp[0][4]; //Fecha de vencimiento  
$tipocomprobante = $rowComp[0][5]; //id tipo comprobante  
$codigo = $rowComp[0][6]; //Código de tipo comprobante  
$nombre = $rowComp[0][7]; //Nombre de tipo comprobante  
$usuario = $rowComp[0][9];
$fechaElb = $rowComp[0][10];
$compania = $_SESSION['compania'];
$rowLogo = $con->Listar("SELECT ter.ruta_logo, ciu.nombre 
  FROM gf_tercero ter 
  LEFT JOIN gf_ciudad ciu ON ter.ciudadidentificacion = ciu.id_unico 
  WHERE ter.id_unico = $compania ");
$ruta = $rowLogo[0][0];
$ciudadCompania = $rowLogo[0][1];


class PDF extends FPDF
{
  function Header()
  {

    global $nomcomp;
    global $ruta;
    global $nombre;

    if ($ruta != '') {
      $this->Image('../' . $ruta, 10, 8, 30);
    }
    $this->SetXY(20, 13);
    $this->SetFont('Arial', 'B', 15);
    $this->Cell(180, 5, mb_strtoupper($nombre), 0, 0, 'C');
    $this->Ln(7);
    $this->Cell(200, 5, utf8_decode('Número: ' . $nomcomp), 0, 0, 'C');
    $this->Ln(7);
  }

  function Footer()
  {
    global $usuario;
    global $fechaElb;
    $this->SetY(-15);
    $this->SetFont('Arial', 'B', 8);
    $this->Cell(63, 10, '', 0);
    $this->Cell(64, 10, '', 0, 0, 'C');
    $this->Cell(63, 10, 'Pagina ' . $this->PageNo() . '/{nb}', 0, 0, 'R');
  }
}

$pdf = new PDF('P', 'mm', 'Letter');
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->AliasNbPages();

$pdf->SetFont('Arial', 'B', 12);
$pdf->SetX(45);
$pdf->MultiCell(155, 5, utf8_decode('El suscrito Jefe de Presupuesto y Contabilidad certifica que se realizo el reintegro al Presupuesto de Gastos e Inversión los siguientes rubros presupuestales :'), 0, 'C');
$pdf->SetFont('Arial', '', 9);

$pdf->Ln(10);
$pdf->SetFont('Arial', 'B', 12);
$pdf->Cell(190, 15, utf8_decode('Fecha: ' . $fechaComp), 1, 0, 'L');
$pdf->Ln(18);

$pdf->SetFont('Arial', 'B', 9, 0, 'C');
$pdf->Ln(5);
$pdf->SetFont('Arial', 'B', 9, 'C');
$y1 = $pdf->GetY();
$x1 = $pdf->GetX();
if ($_REQUEST['tip'] == 'dis') {
  $pdf->MultiCell(35, 5, utf8_decode("Disponibilidad  Afectada"), 1, 'C');
} else {
  $pdf->MultiCell(35, 5, utf8_decode("Registro  Afectado"), 1, 'C');
}
$y2 = $pdf->GetY();
$h = $y2 - $y1;
$px = $x1 + 35;
$alt = ($h);
$pdf->SetXY($px, $y1);
$pdf->Cell(60, $alt, utf8_decode('Rubro'), 1, 0, 'C');
$pdf->Cell(60, $alt, utf8_decode('Fuente'), 1, 0, 'C');
$pdf->Cell(35, $alt, utf8_decode('Valor'), 1, 0, 'C');
$pdf->Ln($alt);
switch ($conexion) {
  case 1:
    $detalle = $con->Listar("SELECT 
    dc.id_unico, 
    CONCAT(rub.codi_presupuesto, ' - ',LOWER(rub.nombre)), 
    CONCAT(rubFue.id_unico,' - ' ,LOWER(fue.nombre)), 
    dc.valor, 
    dc.comprobanteafectado, 
    CONCAT(UPPER(tcp.codigo), ' ',cpa.numero)
    FROM gf_detalle_comprobante_pptal dc 
    LEFT JOIN 
      gf_rubro_fuente rubFue on dc.rubrofuente = rubFue.id_unico 
    LEFT JOIN 
      gf_rubro_pptal rub on rubFue.rubro = rub.id_unico 
    LEFT JOIN 
      gf_fuente fue on fue.id_unico = rubFue.fuente 
    LEFT JOIN 
      gf_detalle_comprobante_pptal dcpa ON dc.comprobanteafectado = dcpa.id_unico 
    LEFT JOIN 
      gf_comprobante_pptal cpa ON dcpa.comprobantepptal = cpa.id_unico 
    LEFT JOIN 
      gf_tipo_comprobante_pptal tcp ON tcp.id_unico = cpa.tipocomprobante 
    WHERE dc.comprobantepptal=$id");
    break;
  case 2:
    $detalle = $con->Listar("SELECT 
    dc.id_unico, 
    rub.codi_presupuesto || ' - ' || LOWER(rub.nombre), 
    rubFue.id_unico || ' - ' || LOWER(fue.nombre), 
    dc.valor, 
    dc.comprobanteafectado, 
    UPPER(tcp.codigo) || ' ' || cpa.numero
    FROM 
        gf_detalle_comprobante_pptal dc 
    LEFT JOIN 
        gf_rubro_fuente rubFue ON dc.rubrofuente = rubFue.id_unico 
    LEFT JOIN 
        gf_rubro_pptal rub ON rubFue.rubro = rub.id_unico 
    LEFT JOIN 
        gf_fuente fue ON fue.id_unico = rubFue.fuente 
    LEFT JOIN 
        gf_detalle_comprobante_pptal dcpa ON dc.comprobanteafectado = dcpa.id_unico 
    LEFT JOIN 
        gf_comprobante_pptal cpa ON dcpa.comprobantepptal = cpa.id_unico 
    LEFT JOIN 
        gf_tipo_comprobante_pptal tcp ON tcp.id_unico = cpa.tipocomprobante 
    WHERE 
        dc.comprobantepptal = $id");
    break;
  default:
    # code...
    break;
}

$totalValor = 0;
$pdf->SetFont('Arial', '', 9);
for ($rowD = 0; $rowD < count($detalle); $rowD++) {
  $yda = $pdf->GetY();
  $xda = $pdf->GetX();
  $pdf->MultiCell(35, 5, utf8_decode($detalle[$rowD][5]), 0, 'J');
  $y2da = $pdf->GetY();
  $hda = $y2da - $yda;
  $pxda = $xda + 35;
  $pdf->Ln(-$hda);
  $pdf->SetX($pxda);

  $yr = $pdf->GetY();
  $xr = $pdf->GetX();
  $pdf->MultiCell(60, 5, utf8_decode(ucwords($detalle[$rowD][1])), 0, 'J');
  $y2r = $pdf->GetY();
  $hr = $y2r - $yr;
  $pxr = $xr + 60;
  $pdf->Ln(-$hr);
  $pdf->SetX($pxr);

  $yf = $pdf->GetY();
  $xf = $pdf->GetX();
  $pdf->MultiCell(60, 5, utf8_decode(ucwords($detalle[$rowD][2])), 0, 'J');
  $y2f = $pdf->GetY();
  $hf = $y2f - $yf;
  $pxf = $xf + 60;
  $pdf->Ln(-$hf);
  $pdf->SetX($pxf);

  $alt = MAX($hda, $hr, $hf);
  $pdf->Cell(35, $alt, utf8_decode(number_format($detalle[$rowD][3], 2, '.', ',')), 0, 0, 'R');
  $totalValor += $detalle[$rowD][3];

  $pdf->SetXY($xda, $yda);
  $pdf->Cell(35, $alt, '', 1, 0, 'R');
  $pdf->Cell(60, $alt, '', 1, 0, 'R');
  $pdf->Cell(60, $alt, '', 1, 0, 'R');
  $pdf->Cell(35, $alt, '', 1, 0, 'R');
  $pdf->Ln($alt);
}
$pdf->SetFont('Arial', 'B', 9);
$pdf->Cell(155, 5, utf8_decode('Total: '), 0, 0, 'R');
$pdf->Cell(35, 5, utf8_decode(number_format($totalValor, 2, '.', ',')), 0, 0, 'R');

$pdf->Ln(10);
$pdf->SetFont('Arial', 'B', 10);

$xdes = $pdf->GetX();
$ydes = $pdf->GetY();
$pdf->Cell(20, 5, utf8_decode('Descripción: '), 0, 0, 'L');
$pdf->SetFont('Arial', '', 10);
$pdf->SetX(40);
$pdf->MultiCell(150, 5, utf8_decode($descripcion), 0, 'J');
$pdf->Ln(2);
$yddes = $pdf->GetY();
$altdes = $yddes - $ydes;
$pdf->SetXY($xdes, $ydes);
$pdf->Cell(190, $altdes, utf8_decode(''), 1, 0, 'L');
$pdf->Ln($altdes);
$pdf->Ln(20);
$fecha_div = explode("/", $fechaComp);
$diaS = $fecha_div[0];
$mesS = $fecha_div[1];
$mesS = (int)$mesS;
$anioS = $fecha_div[2];
$pdf->SetFont('Arial', 'B', 10);
$ciudadCompania = mb_strtoupper($ciudadCompania, 'utf-8');
$pdf->Cell(60, 13, utf8_decode('Se expide en ' . $ciudadCompania . ' a los ' . $diaS . ' días del mes de ' . $meses[$mesS] . ' de ' . $anioS), 0, 0, 'L');
$pdf->Ln(10);
###################################################################################################
###################################################################################################
switch ($conexion) {
  case 1:
    $tipComp = $con->Listar("SELECT CONCAT(t.nombreuno,' ',t.nombredos,' ',t.apellidouno,' ',t.apellidodos), ti.nombre, t.numeroidentificacion, car.nombre,rd.fecha_fin
    FROM gf_tipo_comprobante_pptal tcp
    LEFT JOIN gf_tipo_documento td ON tcp.tipodocumento = td.id_unico 
    LEFT JOIN gf_responsable_documento rd ON td.id_unico = rd.tipodocumento 
    LEFT JOIN gf_tercero t ON rd.tercero = t.id_unico
    LEFT JOIN gf_tipo_identificacion ti ON ti.id_unico = t.tipoidentificacion
    LEFT JOIN gf_cargo_tercero carTer ON carTer.tercero = t.id_unico
    LEFT JOIN gf_cargo car ON car.id_unico = carTer.cargo
    LEFT JOIN gg_tipo_relacion tipRel ON tipRel.id_unico = rd.tipo_relacion
    WHERE tcp.id_unico = $tipocomprobante");
    break;
  case 2:
    $tipComp = $con->Listar("SELECT 
    TRIM(t.nombreuno || ' ' || t.nombredos || ' ' || t.apellidouno || ' ' || t.apellidodos),
    ti.nombre,
    t.numeroidentificacion,
    car.nombre,
    rd.fecha_fin
    FROM 
        gf_tipo_comprobante_pptal tcp
    LEFT JOIN 
        gf_tipo_documento td ON tcp.tipodocumento = td.id_unico 
    LEFT JOIN 
        gf_responsable_documento rd ON td.id_unico = rd.tipodocumento 
    LEFT JOIN 
        gf_tercero t ON rd.tercero = t.id_unico
    LEFT JOIN 
        gf_tipo_identificacion ti ON ti.id_unico = t.tipoidentificacion
    LEFT JOIN 
        gf_cargo_tercero carTer ON carTer.tercero = t.id_unico
    LEFT JOIN 
        gf_cargo car ON car.id_unico = carTer.cargo
    LEFT JOIN 
        gg_tipo_relacion tipRel ON tipRel.id_unico = rd.tipo_relacion
    WHERE 
        tcp.id_unico = $tipocomprobante");
    break;
  default:
    # code...
    break;
}

$fecha_act = date('Y-m-d');
$resultF1 = count($tipComp);
$altofinal = $pdf->GetY();
$altop = $pdf->GetPageHeight();
$altofirma = $altop - $altofinal;
$pdf->SetY(-33);
$c = $resultF1;

$tfirmas = ($c / 2) * 33;

if ($tfirmas > $altofirma)
  $pdf->AddPage();
$pdf->SetY(-33);
$xt = 10;
for ($firma = 0; $firma < count($tipComp); $firma++) {
  if ($tipComp[$firma][4] <= $fecha_act) {
    if ($tipComp[$firma][4] == NULL) {
      if ($xt < 50) {
        #Construcción de linea firma
        $xm = 10;
        $pdf->setX($xm);
        $pdf->SetFont('Arial', 'B', 10);
        #Linea para firma
        $pdf->Cell(60, 0, '', 1);
        #Varibles x,y
        $x = $pdf->GetX();
        $y = $pdf->GetY();
        #Salto de linea
        $pdf->Ln(3);
        $pdf->setX($xm);
        #Impresión de responsable de documento
        $pdf->Cell(190, 2, utf8_decode($tipComp[$firma][0]), 0, 0, 'L');
        $pdf->Ln(3);
        $pdf->setX($xm);
        $pdf->SetFont('Arial', '', 8);
        $pdf->Ln(3);
        $pdf->setX($xm);
        $pdf->SetFont('Arial', 'B', 8);
        #Impresión de cargo de responsable de documento
        $pdf->Cell(190, 2, utf8_decode($tipComp[$firma][3]), 0, 0, 'L');
        $pdf->setX($xm);
        $x2 = $pdf->GetX();
        $pdf->Ln(0);
        $xt = 120;
      } else {
        $xn = 120;
        $pdf->SetY($y);
        $pdf->SetFont('Arial', 'B', 10);
        $pdf->setX($xn);
        $pdf->Cell(60, 0, '', 1);
        $x = $pdf->GetX();
        $y = $pdf->GetY();
        $pdf->Ln(3);
        $pdf->setX($xn);
        $pdf->Cell(190, 2, utf8_decode($tipComp[$firma][0]), 0, 0, 'L');
        $pdf->Ln(3);
        $pdf->setX($xn);
        $pdf->SetFont('Arial', '', 8);
        $pdf->Ln(3);
        $pdf->setX($xn);
        $pdf->SetFont('Arial', 'B', 8);
        $pdf->Cell(190, 2, utf8_decode($tipComp[$firma][3]), 0, 0, 'L');
        $x2 = $pdf->GetX();
        $posicionY = $y - 20;
        $pdf->SetXY($x2, $posicionY);
        $xt = 0;
      }
    } else {
    }
  } elseif ($tipComp[$firma][4] == NULL) {
    $pdf->Cell(60, 0, '', 1);
  }
}

###################################################################################################
while (ob_get_length()) {
  ob_end_clean();
}

$pdf->Output(0, 'Informe_' . $nombre . '.pdf', 0);
