"t1.id", 1 => "t1.updated_at", 2 => "t1.fecha_entrega_real", 3 => "t4.nombre", 4 => "t5.first_name", 5 => "t3.titulo", 6 => "t6.ubicacion", 7 => "t3.inc_rei", 8 => "t3.paginas", 9 => "t3.tirada", 10 => "t3.total_aceptado", 11 => "t1.estado" ]; protected $allowedFields = [ "total_precio", "total_tirada", "estado", "user_created_id", "user_updated_id", "user_validated_id", "fecha_entrega_real", "fecha_impresion", "fecha_encuadernado", "fecha_entrega_externo", "created_at", "updated_at", "validated_at", ]; protected $returnType = "App\Entities\Pedidos\PedidoEntity"; protected $useTimestamps = true; protected $useSoftDeletes = false; protected $createdField = "created_at"; protected $updatedField = "updated_at"; public static $labelField = "id"; public function obtenerDatosForm($pedido_id){ $builder = $this->db ->table($this->table . " t1") ->select( "t4.id AS cliente_id, t4.nombre AS cliente, CONCAT(t5.first_name, ' ', t5.last_name) AS comercial"); $builder->join("pedidos_linea t2", "t2.pedido_id = t1.id", "left"); $builder->join("presupuestos t3", "t2.presupuesto_id = t3.id", "left"); $builder->join("clientes t4", "t4.id = t3.cliente_id", "left"); $builder->join("users t5", "t5.id = t4.comercial_id", "left"); return $builder->get()->getResultObject(); } public function obtenerLineasPedido($pedido_id){ $builder = $this->db ->table($this->table . " t1") ->select( "t2.presupuesto_id" ); $builder->where("t1.id", $pedido_id); $builder->join("pedidos_linea t2", "t2.pedido_id = t1.id", "left"); $model_presupuesto = model("App\Models\Presupuestos\PresupuestoModel"); $lineasPresupuesto = []; foreach($builder->get()->getResultObject() as $row){ array_push($lineasPresupuesto, $model_presupuesto->generarLineaPedido($row->presupuesto_id)[0]); } return $lineasPresupuesto; } public function getPedidoClientePresupuesto(int $pedido_id) { $query = $this->db->table($this->table) ->select([ 'pedidos.id as pedidoId', 'clientes.nombre as customerName', 'presupuestos.total_aceptado as totalAceptado', 'presupuestos.margen', 'presupuestos.inc_rei', 'presupuestos.tirada', 'presupuestos.titulo', 'presupuestos.paginas', 'presupuestos.papel_formato_personalizado', 'presupuestos.papel_formato_ancho as papelAnchoPersonalidado ', 'presupuestos.papel_formato_alto as papelAltoPersonalidado', 'lg_papel_formato.ancho as lgPapelFormatoAncho ', 'lg_papel_formato.alto as lgPapelFormatoAlto', 'lg_tarifa_acabado.nombre as lgTarifaAcabadoNombre', ]) ->join('pedidos_linea','pedidos_linea.id = pedidos.id','left') ->join('presupuestos','presupuestos.id = pedidos_linea.presupuesto_id','left') // ->join('presupuesto_linea','presupuestos.id = presupuesto_linea.presupuesto_id','left') ->join('clientes','clientes.id = presupuestos.cliente_id','left') ->join('lg_papel_formato','lg_papel_formato.id = presupuestos.papel_formato_id','left') ->join('lg_tarifa_acabado','lg_tarifa_acabado.id = presupuestos.acabado_cubierta_id','left') ->where('pedidos.id',$pedido_id); $cliente_presupuesto = $query->get()->getFirstRow(); return $cliente_presupuesto; } public function getPedidoPresupuestoLineas(int $pedido_id) { $query = $this->db->table($this->table) ->select([ 'presupuesto_linea.*', 'lg_papel_generico.code as papelCode', ]) ->join('pedidos_linea','pedidos_linea.id = pedidos.id','left') ->join('presupuestos','presupuestos.id = pedidos_linea.presupuesto_id','left') ->join('presupuesto_linea','presupuestos.id = presupuesto_linea.presupuesto_id','left') ->join('lg_papel_generico','lg_papel_generico.id = presupuesto_linea.papel_id','left') ->where('pedidos.id',$pedido_id); $pedido_presupuesto_lineas = $query->get()->getResultObject(); return $pedido_presupuesto_lineas; } public function getPedidoClienteDirecciones($pedido_id){ $query = $this->db->table($this->table) ->select([ 'pedidos.id as pedidoId', 'clientes.nombre as customerName', 'cliente_direcciones.*', 'lg_paises.code3' ]) ->join('pedidos_linea','pedidos_linea.id = pedidos.id','left') ->join('presupuestos','presupuestos.id = pedidos_linea.presupuesto_id','left') ->join('clientes','clientes.id = presupuestos.cliente_id','left') ->join('cliente_direcciones','clientes.id = cliente_direcciones.cliente_id','left') ->join('lg_paises','lg_paises.id = cliente_direcciones.pais_id','left') ->where('pedidos.id',$pedido_id); $pedido_cliente_direcciones = $query->get()->getResultObject(); return $pedido_cliente_direcciones; } }