Necesito de su ayuda para realizar un reporte donde salgan todas las facturas canceladas en el mismo mes con los siguientes campos: código cliente, nombre, numero factura, fecha factura, valor, numero de pago, fecha pago, valor
Nelson183,
Te anexo el siguiente query, esperanto te ayude.
SELECT Distinct
T0.DocNum as 'Factura',
T0.CANCELED as 'Factura Cancelada',
T0.DocDate as 'Fecha Documento',
T0.UpdateDate as 'Fecha Cancelacion',
T0.CardCode as 'Cliente',
T0.CardName as 'Nombre',
T0.DocTotal as 'ImporteTotal',
T1.DocDate as 'Fecha Pago',
T1.DocNum as 'No.Pago',
T1.CashSum as 'Efectivo',
T1.CreditSum as 'TJT.Crédito',
T1.CheckSum as 'Cheque',
T1.TrsfrSum as 'Transferencia',
T1.DocTotal as 'Total Pago',
T1.Canceled as 'Pago Cancelado'
FROM ADOC T0 INNER JOIN ORCT T1 ON T0.DOCNUM = T1.DOCNUM
WHERE T0.CANCELED = 'Y' and T0.DocDate = T0.UpdateDate and T0.ObjType = '13'
Cambie el campo T0.DocNum por T0.ReceiptNum, prueba nuevamente con el siguiente Query, te comento que la Tabla ADOC guarda el histórico de Cambios y es ahí donde se toma la fecha de cuando se realizo la cancelación de la factura. Espero que tengan el Histórico de cambios sin depurar pues hay veces que se tiene que depurar esa tabla porque crece mucho.
SELECT Distinct
T0.DocNum as 'Factura',
T0.CANCELED as 'Factura Cancelada',
T0.DocDate as 'Fecha Documento',
T0.UpdateDate as 'Fecha Cancelacion',
T0.CardCode as 'Cliente',
T0.CardName as 'Nombre',
T0.DocTotal as 'ImporteTotal',
T1.DocDate as 'Fecha Pago',
T1.DocNum as 'No.Pago',
T1.CashSum as 'Efectivo',
T1.CreditSum as 'TJT.Crédito',
T1.CheckSum as 'Cheque',
T1.TrsfrSum as 'Transferencia',
T1.DocTotal as 'Total Pago',
T1.Canceled as 'Pago Cancelado'
FROM ADOC T0 INNER JOIN ORCT T1 ON T0.ReceiptNum = T1.DOCNUM WHERE T0.CANCELED = 'Y' and T0.DocDate = T0.UpdateDate and T0.ObjType = '13'
@Furilo Hola amigo te cuento que la tabla se depura cada cierto tiempo lo que significa que asi no me sirve el codigo yo lo estoy organizando de esta manera enlazando directamente con la cancelacion de la factura pero me arroja mal los datos al poner cuanto se pago por la factura te adjunto el codigo y te muestro el error que tengo en el Query
SELECT DISTINCT T0."CardCode", T0."CardName", T0."DocNum", T0."DocDate", T0."DocTotal", T1."DocNum", T1."DocDate", T2."SumApplied" FROM OINV T0 INNER JOIN ORCT T1 ON T1."DocEntry" = T0."ReceiptNum" INNER JOIN RCT2 T2 ON T1."DocEntry" = T2."DocNum" WHERE T1."DocNum" = 9031660
Como te adjunto en la imagen tengo 3 facturas con su total, y al agregar el valor pagado se me duplican los valores y me muestra el valor que no es porque necesito saber cuanto pago por factura no en total por eso agregue la tabla RCT2 no se si el error esta en la union con esta tabla, agradeceria de su ayuda
SELECT DISTINCT T0."CardCode", T0."CardName", T0."DocNum", T0."DocDate", T0."DocTotal", T2."DocNum", T2."DocDate", T1."SumApplied" FROM OINV T0
INNER JOIN RCT2 T1 ON T1."DocEntry" = T0."DocEntry" AND T1."InvType" = T0."ObjType"
INNER JOIN ORCT T2 ON T2."DocEntry" = T1."DocNum"
LEFT OUTER JOIN OSLP T3 ON T0."SlpCode" = T3."SlpCode"
LEFT OUTER JOIN INV1 T4 ON T0."DocEntry" = T4."DocEntry" WHERE T2."DocNum" = 9031660
Ahora necesitaria organizarlo de manera que me muestre solamente las facturas que fueron emitidas y pagadas en el mismo mes, me podrias dar una mano con eso
Solo agrega al final del WHERE la siguiente condicion:
AND T0.“DocDate” BETWEEN ‘[%2]’ AND ‘[%2]’ AND MONTH(T0.“DocDate”) = MONTH(T2.“DocDate”) AND YEAR(T0.“DocDate”) YEAR(T2.“DocDate”)
Esta condicion te va pedir que digites Fecha Inicial y Fecha Final del periodo que requieras consultar.
anexo nuevamente la condicion.
AND T0.“DocDate” BETWEEN ‘[%1]’ AND ‘[%2]’ AND MONTH(T0.“DocDate”) = MONTH(T2.“DocDate”) AND YEAR(T0.“DocDate”) YEAR(T2.“DocDate”)