Relacion de factura reserva de proveedores

Hola a todos yo aquí de nuevo, necesitando de su ayuda a relacionar las tablas de proveedores con la Solicitud de compra y oferta de compra, ya había hecho uno igual, pero con Ventas, he intentado hacer lo mismo pero el problema que tengo es que no hay concordancia entre ellas, ya he visto semejanzas en el foro pero no hay algo semejante al problema que se me plantea.

SELECT DISTINCT T0."DocNum", T0."CardCode", T0."CardName", T0."DocStatus", T0."DocDate", T0."DocDueDate",(T0."DocTotal"-T0."VatSum")/(T0."DocRate") as "Subtotal",T0."VatSum",(T0."VatSum"/T0."DocRate")As "Impuesto Total USD",T0."DocCur" As "Moneda",T0."DocRate" As "Tipo de Cambio",T0."DocTotalFC" As "Importe total", T3."DocNum" As "# Documento anterior Solicitud de Compra",T5."DocNum" As "# Documento anterior Oferta de Compra",T0."DocCur" As "Moneda",T0."DocRate" As "Tipo de Cambio",T0."DocTotalFC" As "Importe total" 

FROM OPCH T0  LEFT JOIN PCH1 T1 ON T0."DocEntry" = T1."DocEntry"
LEFT JOIN PRQ1 T2 on T0."DocEntry" = T2."TrgetEntry" 
LEFT JOIN OPRQ T3 ON T2."DocEntry" = T3."DocEntry"
LEFT JOIN PQT1 T4 on T0."DocEntry" = T4."TrgetEntry" 
LEFT JOIN OPQT T5 ON T4."DocEntry" = T5."DocEntry"

Lo lamento, sé que intentaste ser claro pero no termine de entender.

¿Buscas algo parecido al mapa de relaciones o cómo? La factura de proveedores y de reserva están en la OPCH y se identifican con el campo T0.[isIns]

2 Me gusta

Mil disculpas exactamente, así como lo plantea la relación de factura de proveedores, entonces para relacionarlas seria en vez de T0.“DocEntry”" seria T0.“Islns”, porque en el foro ya había hecho algo semejante, para relacionar con el “T0. TrgetEntry” pero desconocía T0.“Islns” me puede indicar sino es mucha molestia que vendría significando o el uso? ya que en el foro he aprendido bastante.

Hola. Si se trata de ubicar el origen y el destino de una factura proveedor OPCH considero que primero hay que tener claro la lógica de compra.

Por lo regular, solicito, le doy entrada, aplico factura y luego pago. Pero hay ocasiones que solicito, pago y luego doy entrada, ahí es donde se usa la factura reserva proveedor. Al estar en la misma tabla el campo isIns digamos que “marca” con una “Y” cuando es de reserva.

Un ejemplo podría ser:

SELECT T0.[DocNum], T0.[DocDate], T0.[CardCode], T0.[CardName], T1.[BaseRef], T1.[BaseType], T2.[ObjType]
FROM OPCH T0
INNER JOIN PCH1 T1 ON T0.DocEntry = T1.DocEntry
LEFT JOIN OPDN T2 ON T1.BaseEntry = T2.DocEntry AND T1.BaseType = 20
WHERE T0.[isIns] = 'Y'

Una consulta como esta muestra el número de documento, la fecha, el código y el nombre del proveedor, el número de referencia del documento base y el tipo de documento base para las facturas de proveedores que tienen el campo “isIns” marcado como “Y”. También muestra el tipo de objeto para las entradas de mercancías relacionadas con la factura de proveedores. Tendrías que personalizar un poco pero podría servir.

1 me gusta

Ahora, si quieres obtener el origen y el destino de todas las facturas de proveedores OPCH en un período específico y agregar una columna que indique si la factura es de reserva o no, puedes usar una consulta parecida a esta:

SELECT T0.[DocNum], T0.[DocDate], T0.[CardCode], T0.[CardName], T1.[BaseRef], T1.[BaseType], T2.[ObjType], 
CASE WHEN T0.[isIns] = 'Y' THEN 'Reserva' ELSE 'No Reserva' END as 'Reserva'
FROM OPCH T0
INNER JOIN PCH1 T1 ON T0.DocEntry = T1.DocEntry
LEFT JOIN OPDN T2 ON T1.BaseEntry = T2.DocEntry AND T1.BaseType = 20
WHERE T0.[DocDate] BETWEEN [%0] AND [%1]

La consulta muestra el número de documento, la fecha, el código y el nombre del proveedor, el número de referencia del documento base y el tipo de documento base para todas las facturas de proveedores en el período especificado. También muestra el tipo de objeto para las entradas de mercancías relacionadas con la factura de proveedores y una columna “Reserva” que indica si la factura es de reserva o no. Solo intenta personalizar para tus necesidades esperando te sea de utilidad.

Saludines.

1 me gusta

Muchas gracias por la explicación y me dejaste claro en otra, pero la relación que necesito es para ver que factura de reserva que esté relacionada con solicitud de compra (OPRQ) y oferta de compra (OPQT) ya que intente unirlas.“TrgetEntry”, ya que con este método me sirvo relacionar la factura de reserva de (OINV) con las demás tablas.

Creo entender. Una consulta como la siguiente te puede servir de ejemplo pero naturalmente lo mejor es que la adecues a tus necesidades particulares.

Este ejemplo debe mostrar el número del documento, su fecha de contabilización, el nombre del socio de negocio y el total del documento. Además, el origen del documento (orden de compra, solicitud de compra u oferta de compra) si usas una cláusula CASE para determinar el valor del campo BaseType en la tabla PCH1. También debes agrupar los resultados por los campos mencionados para evitar duplicados al llamar el DocTotal.

SELECT T0.DocNum AS 'Número de documento', T0.DocDate AS 'Fecha de contabilización', T0.CardName AS 'Nombre del socio de negocio', T0.DocTotal AS 'Total del documento', 
CASE 
    WHEN T1.BaseType = 22 THEN 'Orden de compra' 
    WHEN T1.BaseType = 1470000113 THEN 'Solicitud de compra' 
    WHEN T1.BaseType = 540000006 THEN 'Oferta de compra' 
END AS 'Origen'
FROM OPCH T0
INNER JOIN PCH1 T1 ON T0.DocEntry = T1.DocEntry
WHERE T0.CANCELED = 'N' AND T1.isIns = 'Y'
GROUP BY T0.DocNum, T0.DocDate, T0.CardName, T0.DocTotal, T1.BaseType

Espero que te sirva la idea.

Saludines