Example #1
0
 function kardexTotalxProducto()
 {
     $mesInicial = !empty($_REQUEST['mesInicial']) ? $_REQUEST['mesInicial'] : 1;
     $mesFinal = !empty($_REQUEST['mesFinal']) ? $_REQUEST['mesFinal'] : 12;
     $ano = !empty($_REQUEST['periodo']) ? $_REQUEST['periodo'] : date('Y');
     //$sunat=$_REQUEST['sunat'];
     $movimiento = new Movimiento();
     $dataKardex = $movimiento->kardexTotalxProducto($ano, $mesInicial, $mesFinal);
     $total = count($dataKardex);
     $idproducto = 0;
     $cont = -1;
     $totIngreso = 0;
     $totSalida = 0;
     $datos = array();
     for ($i = 0; $i < $total; $i++) {
         if ($idproducto != $dataKardex[$i]['idproducto']) {
             $idproducto = $dataKardex[$i]['idproducto'];
             if ($dataKardex[$i]['codigotipooperacion'] != 16) {
                 $cont++;
                 $datos[$cont]['idproducto'] = $idproducto;
                 $datos[$cont]['nompro'] = $dataKardex[$i]['nompro'];
                 $datos[$cont]['codigopa'] = $dataKardex[$i]['codigopa'];
                 if ($dataKardex[$i]['tipomovimiento'] == 1) {
                     $cantidad = round($dataKardex[$i]['SaldoCantidad'] - round($dataKardex[$i]['cantidad']));
                     if ($cantidad < 0) {
                         $cantidad = 0;
                     }
                     $datos[$cont]['saldoInicial'] = $cantidad * $dataKardex[$i]['SaldoPrecio'];
                 } elseif ($dataKardex[$i]['tipomovimiento'] == 2) {
                     $cantidad = round($dataKardex[$i]['SaldoCantidad'] + round($dataKardex[$i]['cantidad']));
                     $datos[$cont]['saldoInicial'] = $cantidad * $dataKardex[$i]['SaldoPrecio'];
                 }
             } elseif ($dataKardex[$i]['codigotipooperacion'] == 16) {
                 $cont++;
                 $datos[$cont]['idproducto'] = $dataKardex[$i]['idproducto'];
                 $datos[$cont]['nompro'] = $dataKardex[$i]['nompro'];
                 $datos[$cont]['codigopa'] = $dataKardex[$i]['codigopa'];
                 $datos[$cont]['saldoInicial'] = $dataKardex[$i]['SaldoPrecio'] * $dataKardex[$i]['SaldoCantidad'];
             }
         }
         if ($idproducto == $dataKardex[$i]['idproducto']) {
             $totIngreso += $dataKardex[$i]['EntradaCosto'];
             $totSalida += $dataKardex[$i]['SalidaCosto'];
             if ($idproducto != $dataKardex[$i + 1]['idproducto']) {
                 $datos[$cont]['EntradaTotal'] = $totIngreso;
                 $datos[$cont]['SalidaTotal'] = $totSalida;
                 $datos[$cont]['SaldoFinal'] = $dataKardex[$i]['SaldoPrecio'] * $dataKardex[$i]['SaldoCantidad'];
                 $totIngreso = 0;
                 $totSalida = 0;
             }
         }
     }
     $cantidadData = count($datos);
     $totIngresoSum = 0;
     $totInicialSum = 0;
     $totFinalSum = 0;
     /**/
     $pdf = new PDF_Mc_Table("P", "mm", "A4");
     $titulos = array('Codigo', 'Descripcion', 'Saldo Inicial', 'Compras', 'Total Existencias', 'Existencia Final', 'Costo de Ventas');
     $pdf->SetFont('Helvetica', 'B', 6.5);
     $ancho = array(25, 70, 20, 20, 20, 20, 20);
     $orientacion = array('', '', 'R', 'R', 'R', 'R', 'R');
     $pdf->_titulo = "Reporte de Total de Kardex Valorizado en S/.";
     $pdf->_datoPie = "Periodo: " . $ano . " de " . $this->meses($mesInicial) . "  a  " . $this->meses($mesFinal);
     $pdf->_imagenCabezera = ROOT . 'imagenes' . DS . 'POWER-ACOUSTIK.jpg';
     $pdf->SetWidths($ancho);
     $pdf->_titulos = $titulos;
     $pdf->AddPage();
     $relleno = true;
     $pdf->SetFillColor(202, 232, 234);
     $pdf->SetTextColor(12, 78, 139);
     $pdf->SetDrawColor(12, 78, 139);
     $pdf->SetLineWidth(0.3);
     $pdf->fill($relleno);
     //un arreglo con su medida  a lo ancho
     //un arreglo con alineacion de cada celda
     $pdf->_orientacion = $orientacion;
     $pdf->SetAligns($orientacion);
     $pdf->SetFillColor(224, 235, 255);
     $pdf->SetTextColor(0);
     $pdf->SetFont('');
     for ($i = 0; $i < $cantidadData; $i++) {
         $totInicialSum += $datos[$i]['saldoInicial'];
         $totIngresoSum += $datos[$i]['EntradaTotal'];
         $totFinalSum += $datos[$i]['SaldoFinal'];
         $fila = array(html_entity_decode($datos[$i]['codigopa'], ENT_QUOTES, 'UTF-8'), html_entity_decode($datos[$i]['nompro'], ENT_QUOTES, 'UTF-8'), number_format($datos[$i]['saldoInicial'], 2), number_format($datos[$i]['EntradaTotal'], 2), number_format($datos[$i]['saldoInicial'] + $datos[$i]['EntradaTotal'], 2), number_format($datos[$i]['SaldoFinal'], 2), number_format($datos[$i]['saldoInicial'] + $datos[$i]['EntradaTotal'] - $datos[$i]['SaldoFinal'], 2));
         $pdf->Row($fila);
         $relleno = !$relleno;
         $pdf->fill($relleno);
     }
     $pdf->ln();
     $relleno = false;
     $pdf->fill($relleno);
     $fila = array('', 'TOTALES', number_format($totInicialSum, 2), number_format($totIngresoSum, 2), number_format($totInicialSum + $totIngresoSum, 2), number_format($totFinalSum, 2), number_format($totInicialSum + $totIngresoSum - $totFinalSum, 2));
     $pdf->Row($fila);
     $pdf->AliasNbPages();
     $pdf->Output();
 }