on 2016 Aug 01 8:51 PM
Estimados
La idea de la creación de esta consulta es obtener la trazabilidad completa de la OC este abierta-cerrada o cancelada para verificar si se realizó la entrada de mercadería, el precio de entrega o si se facturo.
Las tablas que se deben ocupar serian:
Pedido (OPOR - POR1)
Entrada de Mercaderia (OPDN - PDN1)
Entrega de Precio (OIPF - IPF1)
Factura (OPCH - PCH1)
Deberia de quedar de esta forma, en verdad es que he realizado muchas pruebas pero no tengo un resultado optimo, favor su ayuda.
OPOR.DocNum | OPOR.DocDate | OPOR.NumAtCard | OPOR.CardName | OPOR.DocTotal | OPOR.DocCur | OPDN.DocNum | OPDN.DocDate | OPDN.NumAtCard | OPDN.CardName | OPDN.DocCur | OPDN.DocTotal | OIPF.DocNum | OIPF.DocNum | OIPF.DocTotal |
N° OC | Fecha OC | Referencia | Nombre Proveedor | Total monto OC | Moneda | Entrada de mercaderia | Fecha de entrada | Referencia | Nombre Proveedor | Moneda | Total monto OC | Precio de entrega | Fecha precio de entrega | Total monto Precio de Entrega |
Atte.
José Miguel:
Acá una query que puede servir de guía, solo debes agregar la tabla del precio de entrega (OIPF y IPF1)
----------------------------------------------------x---------------------------------------------------------
SELECT
T0.[Docnum] AS 'Pedido',
T0.[Docdate] AS 'Fechadoc',
T0.NumAtCard,
T0.[Cardcode] ,
T0.[Cardname] AS 'Proveedor',
T1.[ItemCode] AS 'Artículo',
T1.[Dscription] AS 'Descripción',
T1.Quantity as 'Cantidad Solicitada',
T1.OpenCreQty 'Cantidad Pendiente OC',
Case when T2.[Linestatus] = 'O' Then 'Abierta' when T2.[Linestatus] = 'C' then 'Completa' else 'Eliminada' end ,
T3.[DocNum] AS 'Entrada de mercancías',
T2.OpenCreQty 'Cantidad Pendiente de Factura',
T5.[Docnum] AS 'Número Interno Factura',
T5.FolioNum 'Folio Factura'
from opor t0 inner join por1 t1 on t0.docentry=t1.docentry
left join pdn1 t2 on t2.baseentry=t1.docentry and t2.basetype=22 and t2.baseline=t1.linenum
left join opdn t3 on t2.docentry=t3.docentry
left join pch1 t4 on t4.baseentry=t2.docentry and t4.basetype=20 and t4.baseline=t2.linenum
left join opch t5 on t4.docentry=t5.docentry
Left join OITM T6 on T1.ItemCode = T6.ItemCode
WHERE T6.[ItmsGrpCod]= 106 --- ACÀ PUEDES FILTRAR POR OTRO CRITERIO
-----------------------------------------------------------X---------------------------------------------
Espero haber aportado.
Saludos cordiales,
Manuel Díaz G.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hola Jose
Estuve viendo tu consulta y queria replicarla por que tambien tengo un caso similar pero tengo un problema, SAP me arroja un error en la linea 47 este es el error:
1). [SAP AG][LIBODBCHDB DLL][HDBODBC] General error;260 invalid column name: T0.DOCENTRY: line 47 col 36 '' (ECM2) (at pos 945)
Y esta es la linea donde arroja el error:
from opor t0 inner join por1 t1 on t0.docentry=t1.docentry
Podrias ayudarme?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Manuel - Samuel
Gracias por su ayuda logre conectar las tablas y crear la trazabilidad, dejo aca el codigo creado.
SELECT
T0.[Docnum] AS 'Numero de Pedido',
T0.[Docdate] AS 'Fecha documento de Pedido',
T0.[NumAtCard] AS 'Referencia de Pedido',
T0.[Cardcode] AS 'Codigo de Cliente/Proveedor',
T0.[Cardname] AS 'Nombre Proveedor',
T0.[DocTotal] AS 'Total de Pedido',
T1.[ItemCode] AS 'Numero de Articulo',
T1.[Quantity] AS 'Cantidad Solicitada',
T1.[OpenCreQty] AS 'Cantidad Pendiente OC',
T2.OpenCreQty 'Cantidad Pendiente de Factura',
Case
When T2.[Linestatus] = 'O'
Then 'Abierta' when T2.[Linestatus] = 'C'
Then 'Completa' else 'Eliminada' end ,
T3.[DocNum] AS 'Numero Entrada de mercancías',
T3.[DocDate] AS 'Fecha Entrada de mercancías',
T5.[Docnum] AS 'Número Interno de Factura',
T5.[FolioNum] AS 'Numero Folio de Factura',
T7.[Docnum] AS 'Número Precio de Entrega',
T7.[DocDate] AS 'Fecha Precio de Entrega',
T7.[DocCur] AS 'Moneda Precio de Entrega',
T7.[DocTotal] AS 'Total Precio de Entrega'
from opor t0 inner join por1 t1 on t0.docentry=t1.docentry
left join pdn1 t2 on t2.baseentry=t1.docentry and t2.basetype=22 and t2.baseline=t1.linenum
left join opdn t3 on t2.docentry=t3.docentry
left join pch1 t4 on t4.baseentry=t2.docentry and t4.basetype=20 and t4.baseline=t2.linenum
left join opch t5 on t4.docentry=t5.docentry
left join ipf1 t6 on t6.baseentry=t2.docentry and t6.basetype=20 and t6.linenum=t2.linenum
left join oipf t7 on t6.docentry=t7.docentry
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Perfecto José Miguel, no olvides puntuar las respuestas.
Saludos cordiales,
Manuel Díaz G.
Manuel
La ejecute y funciona pero al querer cambiar algunos parametros me envia error por ejemplo le saque el tema de facturacion para agregarle el precio de entrega y me envia el siguiente error.
1). [Microsoft][SQL Server Native Client 10.0][SQL Server]El nombre de columna 'baseline' no es válido.
2). [Microsoft][SQL Server Native Client 10.0][SQL Server]El nombre de columna 'linenum' no es válido.
3). [Microsoft][SQL Server Native Client 10.0][SQL Server]No se puede preparar la instrucción o instrucciones. '' (SWEI)
Este es el codigo de la query que realize, basada en la que me enviaste:
SELECT
T0.[Docnum] AS 'Numero de Pedido',
T0.[Docdate] AS 'Fecha documento de Pedido',
T0.[NumAtCard] AS 'Referencia de Pedido',
T0.[Cardcode] AS 'Codigo de Cliente/Proveedor',
T0.[Cardname] AS 'Nombre Proveedor',
T0.[DocTotal] AS 'Total de Pedido',
T1.[Quantity] AS 'Cantidad Solicitada',
T1.[OpenCreQty] 'Cantidad Pendiente OC',
T2.OpenCreQty 'Cantidad Pendiente de Factura',
Case
When T2.[Linestatus] = 'O'
Then 'Abierta' when T2.[Linestatus] = 'C'
Then 'Completa' else 'Eliminada' end ,
T3.[DocNum] AS 'Numero Entrada de mercancías',
T3.[DocDate] AS 'Fecha Entrada de mercancías',
T5.[Docnum] AS 'Número Interno Factura',
T5.FolioNum 'Folio Factura',
T7.[Docnum] AS 'Número Precio de Entrega',
T7.[DocDate] AS 'Fecha Precio de Entrega',
T7.[DocCur] AS 'Moneda Precio de Entrega',
T7.[DocTotal] AS 'Total Precio de Entrega'
from opor t0 inner join por1 t1 on t0.docentry=t1.docentry
left join pdn1 t2 on t2.baseentry=t1.docentry and t2.basetype=22 and t2.baseline=t1.linenum
left join opdn t3 on t2.docentry=t3.docentry
left join pch1 t4 on t4.baseentry=t2.docentry and t4.basetype=20 and t4.baseline=t2.linenum
left join opch t5 on t4.docentry=t5.docentry
left join ipf1 t6 on t6.baseentry=t3.docentry and t6.basetype=20 and t6.baseline=t3.linenum
left join oipf t7 on t6.docentry=t7.docentry
Tablas que se ocupan:
t0 = OPOR (Pedido Cabecera)
t1 = POR1 (Pedido Grilla)
t2 = PDN1 (Entrada Mercaderia Grilla)
t3 = OPDN (Entrada Mercaderia Cabecera)
t4 = pch1 (Factura Grilla)
t5 = opch (Factura Cabecera)
t6 = ipf1 (Precio de Entrega Grilla)
t7 = oipf (Precio de Entrega cabecera)
Favor tu ayuda.
Atte.
José Miguel I.C.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
92 | |
8 | |
6 | |
5 | |
5 | |
5 | |
5 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.