builder(); $builder->select('pedidos.id as pedido_id, pedidos_linea.id as linea_id, presupuestos.id as presupuesto_id'); $builder->join('pedidos_linea', 'pedidos_linea.pedido_id = pedidos.id', 'left'); $builder->join('presupuestos', 'presupuestos.id = pedidos_linea.presupuesto_id', 'left'); $builder->groupStart() ->where('pedidos.id', $search) ->whereIn('pedidos.estado', ['finalizado']) ->orWhere("REPLACE(presupuestos.isbn, '-', '')", $searchClean) ->groupEnd(); $result = $builder->get()->getResult(); if (empty($result)) { $response = [ 'status' => false, 'message' => lang('Logistica.errors.notFound'), ]; return $response; } $PresupuestoDireccionesModel = model('App\Models\Presupuestos\PresupuestoDireccionesModel'); $numDirecciones = $PresupuestoDireccionesModel->where('presupuesto_id', $result[0]->presupuesto_id) ->countAllResults(); if ($numDirecciones == 0) { $response = [ 'status' => false, 'message' => lang('Logistica.errors.noAddresses'), ]; return $response; } // detectar si el pedido tiene los albaranes generados $AlbaranModel = model('App\Models\Pedidos\AlbaranModel'); $numAlbaranes = $AlbaranModel->where('pedido_id', $result[0]->pedido_id) ->countAllResults(); $response = [ 'status' => true, 'data' => $result[0], ]; if($numAlbaranes == 0){ $user = auth()->user()->id; $AlbaranModel->generarAlbaranes($result[0]->pedido_id, [$result[0]->presupuesto_id], $user); $response['data']->createAlbaran = true; } return $response; } }