diff --git a/app/GrupoDeCompra.php b/app/GrupoDeCompra.php index c56a795..7724cb2 100644 --- a/app/GrupoDeCompra.php +++ b/app/GrupoDeCompra.php @@ -263,20 +263,31 @@ class GrupoDeCompra extends Model static public function totalesParaTransportePorBarrio() { return DB::table('grupos_de_compra') - ->join('subpedidos', 'grupos_de_compra.id', '=', 'subpedidos.grupo_de_compra_id') - ->join('producto_subpedido', 'subpedidos.id', '=', 'producto_subpedido.subpedido_id') - ->join('productos', 'producto_subpedido.producto_id', '=', 'productos.id') - ->where('productos.categoria', 'not like', '%SUBSIDIADO%') - ->where('productos.bono', 0) - ->where('subpedidos.aprobado', 1) + ->leftJoin('subpedidos', 'grupos_de_compra.id', '=', 'subpedidos.grupo_de_compra_id') + ->leftJoin('producto_subpedido', 'subpedidos.id', '=', 'producto_subpedido.subpedido_id') + ->leftJoin('productos', 'producto_subpedido.producto_id', '=', 'productos.id') + ->where(function ($query) { + $query->whereNull('productos.categoria') // Handle missing products + ->orWhere('productos.categoria', 'not like', '%SUBSIDIADO%'); + }) + ->where(function ($query) { + $query->whereNull('productos.bono') // Handle missing products + ->orWhere('productos.bono', 0); + }) + ->where(function ($query) { + $query->whereNull('subpedidos.aprobado') // Handle missing subpedidos + ->orWhere('subpedidos.aprobado', 1); + }) ->select( + 'grupos_de_compra.id as id', 'grupos_de_compra.nombre as barrio', - DB::raw('SUM(producto_subpedido.cantidad * productos.precio) as total') + DB::raw('COALESCE(SUM(producto_subpedido.cantidad * productos.precio), 0) as total') ) - ->groupBy('grupos_de_compra.nombre') + ->groupBy('grupos_de_compra.id') ->get(); } + static public function planillaTransporte() { $totalesPorBarrio = self::totalesParaTransportePorBarrio(); $barrios = [];