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(); }