Tengo una orden de servicio (ORDR) la cual se le generan 3 facturas diferentes (OINV), entonces quiero saber mediante a un query el estado de todas las facturas si están pagas.
utiliza
T0.[DocTotal] total documento
T0.[PaidToDate] pagado hasta
puedes hacer una resta para el saldo pendiente
utiliza la siguiente tabla RCT2 - pagos recibidos aplicados a facturas si quieres un desglose
Saludos
Hola…
¿Y tu presentación?
Desde el mapa de relaciones del pedido puedes visualizar esa información graficamente y de forma vistosa y navegar a todos los documentos.
Saludos, bienos dias Roberto, haz utilizado el crystal report?, con él puedes hacer todos los reportes que necesites. de todas formas dejame ver si te puedo ayudar enviandote un query, saludos.
este query te muestra la cobranza por vendedor, espero te ayude. luego te mando uno donde te amarre la cobranza a la factrura: cpialo en el Query manager y prueba
SELECT T0.CardCode as 'Auxiliar', T0.Cardname, T1.SlpCode as 'Vendedor', T2.SlpName as 'Nombre Venddor', T0.DocNum, T0.DocDate, T0.CashSum as 'Retencion', T0.CheckSum, T0.Ref2, T0.Comments, DocTotal as 'Cobranza + Ret' FROM ORCT T0 INNER JOIN OCRD T1 ON T0.CardCode = T1.CardCode INNER JOIN OSLP T2 ON T1.SlpCode = T2.SlpCode WHERE T0.CardCode NOT Like '%EXP%' AND T0.CardCode NOT Like '%INT%' AND T0.JrnlMemo NOT Like '%Cance%' AND T0.JrnlMemo NOT Like '%promo%' AND T0.JrnlMemo NOT Like '%perdida%' AND T0.JrnlMemo NOT Like '%muestra%' and T0.DocDate >=[%1] and T0.DocDate <=[%2]
AND T1.SlpCode >=[%3] and T1.SlpCode <=[%4] order by T0.DOCNUM
Hola Ruben , veo que tu Query va en función a pagos para que le funcione al compañero debe quitarle lo siguiente en el where
T0.CardCode NOT Like ‘%EXP%’ AND T0.CardCode NOT Like ‘%INT%’ AND T0.JrnlMemo NOT Like ‘%Cance%’ AND T0.JrnlMemo NOT Like ‘%promo%’ AND T0.JrnlMemo NOT Like ‘%perdida%’ AND T0.JrnlMemo NOT Like ‘%muestra%’ and
seria bueno agregarle a tu condicion el Canceled=‘N’ , ya que en tu consulta te considera tambien los pagos cancelados
Saludos
SaludosRoberto hice un Query de cobranza el cual puedes ver aparte del recibo la factura que se esta concelandocon su fecha de emisoin mas vencimiento, y lo que puse en el comentario es por si cuando canceles las facturas y escribes algo en el comentario ese algo que no queras que aparezc en el query quede por fuera de la consulta, si queres que aparezca todo , solo eliminas esos not like de la consulta y listo. aqui les dejo dicho query , espero les ayude yo no estar cometiendo alguna falta, con esta ayuda here you are then:
SELECT T1.[CardCode] as 'Auxiliar', T1.[DocNum] as 'Reibo de Pago', T1.[DocDate] as'Fecha contable', T1.[CardName], T3.[DocNum] as 'Factura', T3.[DocDueDate], T0.[SumApplied] as 'Pago o Abono', T1.[Ref2], T1.[Comments], T2.[SlpCode] as' Vendedor', T4.[SlpName] as 'Nombre Vendedor' FROM RCT2 T0 INNER JOIN ORCT T1 ON T0.DocNum = T1.DocEntry INNER JOIN OCRD T2 ON T1.CardCode = T2.CardCode INNER JOIN OINV T3 ON T0.DocEntry = T3.DocEntry INNER JOIN OSLP T4 ON T2.SlpCode = T4.SlpCode WHERE T1.[DocDate]>=[%0] and T1.[DocDate] <=[%1] and T2.[SlpCode] >=[%2] and T2.[SlpCode] <=[%3] and T1.[JrnlMemo] NOT Like '%Cance%' AND T1.JrnlMemo NOT Like '%promo%' AND T1.JrnlMemo NOT Like '%perdida%' AND T1.JrnlMemo NOT Like '%muestra%'
Saludos hermano claro es para pagos pero desde esos pagos el usuario puede ver la fatura que esta pagandoel cliente, . yo puedo enviarte un analissi de antiguedad donde solo aparecera las facturas pendientes de pago, y esos not like es por si el usuario escribe en el campo comentarios cuando el cliente cancela o abona algo a la factura que no quiere que aparezca en su cobranza le puede cambiar lo que esta dentro la las comillas a su beneficio, en realidad ese query le sirve para saber la cobranza del mes dia o año, como quiera, , bueno simplmente coom dices si le quitamos el where aparecera todo lo que haga en la cobranza…ojo solo esta ahi ese where por si al cliente le conviene, tambien seleccionando como dices el status del documento en el ooinv a not canceled me daria solo las facturas con abonos mas no puedo ver las canceladas en su totalidad, , bueno aqui te envio el query completo para que los veas, yo trabajo la mayoria de los reportes por Crytal Report, he hecho muchos para todos modulos de sap B1. aqui te va por si o por no, saludos
SELECT T1.[CardCode] as 'Auxiliar', T1.[DocNum] as 'Reibo de Pago', T1.[DocDate] as'Fecha contable', T1.[CardName], T3.[DocNum] as 'Factura', T3.[DocDueDate], T0.[SumApplied] as 'Pago o Abono', T1.[Ref2], T1.[Comments], T2.[SlpCode] as' Vendedor', T4.[SlpName] as 'Nombre Vendedor' FROM RCT2 T0 INNER JOIN ORCT T1 ON T0.DocNum = T1.DocEntry INNER JOIN OCRD T2 ON T1.CardCode = T2.CardCode INNER JOIN OINV T3 ON T0.DocEntry = T3.DocEntry INNER JOIN OSLP T4 ON T2.SlpCode = T4.SlpCode WHERE T1.[DocDate]>=[%0] and T1.[DocDate] <=[%1] and T2.[SlpCode] >=[%2] and T2.[SlpCode] <=[%3] and T1.[JrnlMemo] NOT Like '%Cance%' AND T1.JrnlMemo NOT Like '%promo%' AND T1.JrnlMemo NOT Like '%perdida%' AND T1.JrnlMemo NOT Like '%muestra%'```
El problema recae en lo siguiente, tengo ese Query el cual me trae los registros de una facturación con artículos de un grupo determinado, pero tengo una orden de servicio el cual hasta que esa orden no este facturada y paga no deben salirme, es decir si la orden tiene 4 facturas y las 4 no están pagas los registros del Query que anexe no deben salirme.
Como podría con el query que anexe poder verificar cuantas facturas tiene esa orden y el estatus de cada una.
Select distinct
T0.DocNum,T0.DocDate,T0.CardName,T0.U_facNom,T1.Dscription,T0.CreateDate,
T1.PriceBefDi,case
when T2.ItmsGrpCod ='133'
then (T1.PriceBefDi * .10*t1.Quantity)
else (T1.PriceBefDi * .13*t1.Quantity)
end as '10%',T1.U_Tecnico,T0.U_CodAseg, T0.CardCode,T0.DocTime, T0.U_CatPatciente, t1.Quantity 'Cantidad', (t1.Quantity*t1.PriceBefDi) 'Total', t0.DocEntry,
T11.DocNum'No. FA',
T0.DocTotal 'Total Orden', T0.PaidSum,T0.DocStatus ,
T1.OpenSum, Case When T1.LineStatus = 'O' Then 'Open'When T1.LineStatus = 'C' Then 'Cerrado' end 'Estado de Linea',
T10.LineStatus, T10.OpenSum, T10.DocDate, T11.PaidSum 'Cantidad pagada', t11.DocTotal 'Total Documento'
from [ORDR] T0 /*OV*/
INNER JOIN [RDR1] T1 ON T0.DocEntry = T1.DocEntry /*OV*/
LEFT JOIN [INV1] T10 ON T0.DocEntry = T10.BaseEntry AND T0.ObjType = T10.BaseType AND T1.LineNum = T10.BaseLine
LEFT JOIN [OINV] T11 ON T10.DocEntry = T11.DocEntry
left JOIN OITM T2 ON T1.ItemCode = T2.ItemCode
LEFT JOIN [OCRD] T13 ON T0.CardCode = T13.CardCode
LEFT JOIN [OSLP] T14 ON T0.SlpCode = T14.SlpCode
LEFT JOIN [ORCT] T15 ON T11.ReceiptNum = T15.DocNum
LEFT JOIN [OHEM] T16 ON T0.OwnerCode=T16.empID
LEFT JOIN OUSR T17 ON T16.USERID=T17.UserID
WHERE
T2.ItmsGrpCod in('133', '123')
and T0.DocDate >= '2019-05-31' AND T0.DocDate <= '2019-05-31' and t0.CANCELED='N'
@Lic_Roberto_D, podrías haber empezado por ahí, con el tema pasando la query, así los compañeros que llevan 2 días ayudandote no tienen que empezar de nuevo ahora analizando tu código. ¿No te parece?
Ayuda a que la comunidad esté más organizada. Por cierto, no veo tu tema en Presentaciones, no sabemos nada sobre tu perfil, y tampoco veo que estés ayudando a otros. Recuerda que lo que das vuelve.
Espero leerte más.
Este tema se cerró automáticamente 91 días después del último post. No se permiten nuevas respuestas.