cancel
Showing results for 
Search instead for 
Did you mean: 

Query Seguimiento de solicitudes de compras - Control de Compras

0 Kudos

Buenas Tardes,

Estoy tratando de generar una query que involucre todo el proceso de compra desde una solicitud de compra hasta la recepcion del articulo.

Mi problema es que no logro encontrar la forma de que, si una solicitud de compra se transforma directamente a pedido sin pasar por un comprobante de oferta, me figure en el listado.

Solamente me muestra cuando el articulo paso por todos los pasos: Solicitud, Oferta, pedido, entrada, etc-- Paso una imagen y la query que hice para ver si me pueden ayudar.

SELECT DISTINCT T0."DocNum" "Numero", T1."DocDate" "Fecha Solicitud", T1."ItemCode" "Código", T1."Dscription" "Descripcion", CASE WHEN T2."DocNum" <> 0 AND T4."DocNum" <> 0 THEN 'Autorizado' WHEN T0."CANCELED" = 'N' THEN 'Pendiente' WHEN T0."CANCELED" = 'Y' OR T0."DocStatus" = 'C' THEN 'Cancelada' END "Estatus", T2."DocDate" "Fecha de Oferta",T2."DocNum" "Oferta", CASE WHEN T4."DocEntry" <> 0 THEN 'Autorizado' WHEN T2."CANCELED" = 'N' THEN 'Pendiente' WHEN T2."CANCELED" = 'Y' OR T2."DocStatus" = 'C' THEN 'Cancelada' END "Estatus", T4."DocDate" "Fecha de Pedido", T4."DocNum" "Pedido", CASE WHEN T6."DocEntry" <> 0 THEN 'Autorizado' WHEN T4."CANCELED" = 'N' THEN 'Pendiente' WHEN T4."CANCELED" = 'Y' OR T4."DocStatus" = 'C' THEN 'Cancelada' END FROM OPRQ T0 LEFT JOIN PRQ1 T1 ON T0."DocEntry" = T1."DocEntry" LEFT JOIN OPQT T2 ON T1."TrgetEntry" = T2."DocEntry" LEFT JOIN PQT1 T3 ON T2."DocEntry" = T3."DocEntry" LEFT JOIN OPOR T4 ON T3."TrgetEntry" = T4."DocEntry" LEFT JOIN POR1 T5 ON T4."DocEntry" = T5."DocEntry" LEFT JOIN OPDN T6 ON T5."TrgetEntry" = T6."DocEntry" WHERE T0."TaxDate" BETWEEN [%0] AND [%1]imagen-query.png

Accepted Solutions (0)

Answers (1)

Answers (1)

jhozz
Explorer
0 Kudos

Hola lucastugas, este query es para órdenes de venta con entregas asociadas y también para aquellas que se facturaron directamente sin pasar por una entrega.

SELECTDISTINCT T0.[DocNum], T0.[DocDate], T0.[CardName], T2.[DocNum] AS NumeroEntrega, T2.[DocDate] AS FechaEntrega, T4.[DocNum], T4.[DocDate] FROM ORDR T0 INNERJOIN DLN1 T1 ON T1.[BaseEntry] = T0.[DocEntry] AND T1.[BaseType] = T0.[ObjType] INNERJOIN ODLN T2 ON T1.[DocEntry] = T2.[DocEntry] LEFTJOIN INV1 T3 ON T3.[BaseEntry] = T2.[DocEntry] AND T3.[BaseType] = T2.[ObjType] LEFTJOIN OINV T4 ON T3.[DocEntry] = T4.[DocEntry]

WHERE T0.[DocDate] >=[%0] AND T0.[DocDate] <=[%1]

UNIONALLSELECTDISTINCT T0.[DocNum], T0.[DocDate], T0.[CardName],NULLAS NumeroEntrega, NULLAS FechaEntrega, T4.[DocNum], T4.[DocDate] FROM ORDR T0 INNERJOIN INV1 T3 ON T3.[BaseEntry] = T0.[DocEntry] AND T3.[BaseType] = T0.[ObjType] INNERJOIN OINV T4 ON T3.[DocEntry] = T4.[DocEntry]

WHERE T0.[DocDate] >=[%0] AND T0.[DocDate] <=[%1]

Usa la misma lógica para lo que necesitas.

Saludos.