prepare($sql_asesoras); $stmt_asesoras->execute($params); $asesoras_recuado = $stmt_asesoras->fetchAll(PDO::FETCH_ASSOC); } catch (PDOException $e) { error_log("Error en RECAUDO POR ASESORA: " . $e->getMessage()); } // --- RESUMEN GENERAL Y POR ASESOR --- $productos_vendidos = []; $ventas_por_asesor = []; try { $sql_productos_base = "SELECT p.cantidad as cantidades_pedido, p.producto_id as productos_pedido_ids, pr.id as producto_id, pr.nombre as producto_nombre, pr.precio as producto_precio, u.nombre_asesor FROM pedidos p JOIN productos pr ON FIND_IN_SET(pr.id, REPLACE(p.producto_id, ' ', '')) LEFT JOIN users u ON p.asesor_id = u.id {$date_where_clause}"; $stmt_productos = $pdo->prepare($sql_productos_base); $stmt_productos->execute($params); $result_productos = $stmt_productos->fetchAll(PDO::FETCH_ASSOC); if ($result_productos) { foreach ($result_productos as $row) { $todos_productos_ids = explode(',', $row['productos_pedido_ids']); $todas_cantidades = explode(',', $row['cantidades_pedido']); $product_index = array_search($row['producto_id'], $todos_productos_ids); if ($product_index !== false && isset($todas_cantidades[$product_index])) { $cantidad_producto = (int)trim($todas_cantidades[$product_index]); $producto_nombre = $row['producto_nombre']; $asesor_nombre = $row['nombre_asesor'] ?? 'Sin Asesor'; $monto_producto = $cantidad_producto * (float)$row['producto_precio']; // Acumular para "Resumen General de Productos Vendidos" if (!isset($productos_vendidos[$producto_nombre])) { $productos_vendidos[$producto_nombre] = ['unidades' => 0, 'monto' => 0]; } $productos_vendidos[$producto_nombre]['unidades'] += $cantidad_producto; $productos_vendidos[$producto_nombre]['monto'] += $monto_producto; // Acumular para "Desglose de Ventas por Asesor" if (!isset($ventas_por_asesor[$asesor_nombre])) { $ventas_por_asesor[$asesor_nombre] = []; } if (!isset($ventas_por_asesor[$asesor_nombre][$producto_nombre])) { $ventas_por_asesor[$asesor_nombre][$producto_nombre] = ['unidades' => 0, 'monto' => 0]; } $ventas_por_asesor[$asesor_nombre][$producto_nombre]['unidades'] += $cantidad_producto; $ventas_por_asesor[$asesor_nombre][$producto_nombre]['monto'] += $monto_producto; } } } } catch (PDOException $e) { error_log("Error en RESUMEN DE PRODUCTOS: " . $e->getMessage()); } include 'layout_header.php'; ?>
| Asesora | Cantidad de Pedidos | Monto Total Esperado |
|---|---|---|
| No hay datos disponibles. | ||
| = htmlspecialchars($recuado['asesora_nombre']) ?> | = htmlspecialchars($recuado['cantidad_pedidos']) ?> | S/ = number_format($recuado['monto_total'], 2) ?> |
| Producto | Unidades Vendidas | Monto Total |
|---|---|---|
| No hay datos disponibles. | ||
| = htmlspecialchars($producto_nombre) ?> | = $datos['unidades'] ?> unidades | S/ = number_format($datos['monto'], 2) ?> |
No hay datos de ventas para mostrar.
$productos): ?>| Producto | Unidades Vendidas | Monto Total |
|---|---|---|
| = htmlspecialchars($nombre_producto) ?> | = $datos['unidades'] ?> unidades | S/ = number_format($datos['monto'], 2) ?> |