"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 getPedidoPresupuestoTipoImpresion(int $presupuesto_id) : array|object|null { $q = $this->db->table($this->table) ->select( [ 'tipos_presupuesto.codigo', 'presupuestos.solapas' ] ) ->join('tipos_presupuestos', 'tipos_presupuestos.id = presupuestos.tipo_impresion_id', 'left') ->where('presupuestos.id', $presupuesto_id); return $q->get()->getFirstRow(); } 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.id as presupuestoId', 'presupuestos.cliente_id as presupuestoClienteId', 'presupuestos.margen', 'presupuestos.inc_rei', 'presupuestos.tirada', 'presupuestos.tirada', 'presupuestos.titulo', 'presupuestos.paginas', 'presupuestos.solapas', 'presupuestos.solapas_ancho', 'presupuestos.marcapaginas', 'presupuestos.comentarios_cliente', 'presupuestos.comentarios_safekat', 'presupuestos.papel_formato_personalizado', 'presupuestos.papel_formato_ancho as papelAnchoPersonalidado ', 'presupuestos.papel_formato_alto as papelAltoPersonalidado', 'tipos_presupuestos.codigo as codigoTipoImpresion', 'lg_papel_formato.ancho as lgPapelFormatoAncho ', 'lg_papel_formato.alto as lgPapelFormatoAlto', ]) ->join('pedidos_linea', 'pedidos_linea.id = pedidos.id', 'left') ->join('presupuestos', 'presupuestos.id = pedidos_linea.presupuesto_id', 'left') ->join('presupuesto_ficheros', 'presupuesto_ficheros.presupuesto_id = presupuestos.id', 'left') ->join('tipos_presupuestos', 'tipos_presupuestos.id = presupuestos.tipo_impresion_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') ->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([ 'pedidos.id as pedidoId', 'presupuesto_linea.tipo', 'presupuesto_linea.paginas', 'presupuesto_linea.gramaje', '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 getPedidoPresupuestoDirecciones($pedido_id) { $query = $this->db->table($this->table) ->select([ 'pedidos.id as pedidoId', 'presupuestos.id as presupuestoId', 'clientes.nombre as customerName', 'presupuesto_direcciones.*', 'lg_paises.code3 as paisCode3' ]) ->join('pedidos_linea', 'pedidos_linea.id = pedidos.id', 'left') ->join('presupuestos', 'presupuestos.id = pedidos_linea.presupuesto_id', 'left') ->join('presupuesto_direcciones', 'presupuestos.id = presupuesto_direcciones.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 = presupuesto_direcciones.pais_id', 'left') ->where('pedidos.id', $pedido_id); $pedido_cliente_direcciones = $query->get()->getResultObject(); return $pedido_cliente_direcciones; } public function getPedidoPresupuestoFicheros($pedido_id) { $query = $this->db->table($this->table) ->select([ 'presupuesto_ficheros.nombre as fileName', 'presupuesto_ficheros.file_path as filePath' ]) ->join('pedidos_linea', 'pedidos_linea.id = pedidos.id', 'left') ->join('presupuestos', 'presupuestos.id = pedidos_linea.presupuesto_id', 'left') ->join('presupuesto_ficheros', 'presupuesto_ficheros.presupuesto_id = presupuestos.id', 'left') ->where('pedidos.id', $pedido_id); $presupuesto_ficheros = $query->get()->getFirstRow(); return $presupuesto_ficheros; } }