on 12-31-2013 7:45 PM
me paso algo raro axisten algunas facturas que fueron pagadas
pero al momento de consultarlas no me salen se brinca al siguiente no
se si tengo algun error en mi codigo
declare @Finicial datetime
declare @Ffinal datetime
set @Finicial = (SELECT distinct T5.[RateDate] FROM ORTT T5 WHERE T5.[RateDate] =[%0])
set @Ffinal = (SELECT distinct T5.[RateDate] FROM ORTT T5 WHERE T5.[RateDate] =[%1])
Select F.ReceiptNum,F.CardCode,f.CardName, F.ShipToCode,
convert(varchar,P.DocDate) as Fecha,P.DocRate, D.AppliedFC ,
Case when P.DocRate = '0.000000' then D.SumApplied else D.AppliedFC * P.DocRate end as 'Total',
CASE when FD.TaxCode = 'B2' then (Case when P.DocRate = '0.000000' then D.SumApplied else D.AppliedFC * P.DocRate end) / 1.16
when FD.TaxCode = 'B1' then (Case when P.DocRate = '0.000000' then D.SumApplied else D.AppliedFC * P.DocRate end) / 1.11
else Case when P.DocRate = '0.000000' then D.SumApplied else D.AppliedFC * P.DocRate end
end as 'Importe Sin IVA',
convert(varchar, F.FolioPref) + '-' + convert(varchar,F.FolioNum) as folio, F.DocNum, convert(varchar,F.DocDate) as 'Fecha Factura',
(F.DocTotal - F.VatSum )as 'Import Subtotal',
V.SlpName
from OINV F join ORCT P on F.ReceiptNum = P.DocNum join RCT2 D on F.DocNum = D.DocEntry join INV1 FD on F.DocNum = FD.DocEntry
join OSLP V on F.SlpCode = V.SlpCode
where P.DocDate between @Finicial and @Ffinal
order by F.ReceiptNum
Hola Humberto,
Intenta reemplazar tu "From" con este codigo de aqui:
FROM OINV F
INNER JOIN RCT2 D ON D.DocEntry = F.DocEntry AND D.InvType = F.ObjType
INNER JOIN ORCT P ON P.DocEntry = D.DocNum
LEFT OUTER JOIN OSLP V ON F.SlpCode = V.SlpCode
LEFT OUTER JOIN INV1 FD ON F.DocEntry = FD.DocEntry
Este codigo mostrara las facturas enlazadas con sus pagos. He puesto los left joins para que en caso haya una factura de servicio o no se haya ingresado el empleado de venta aparezca la factura de todas maneras en el resultado.
Cabe resaltar que este codigo no mostrara/utilizara los pagos que se hayan reconciliado manualmente con la factura. En caso deseas que esto tambien se muestre, deberas usar las tablas OITR, ITR1.
Saludos,
Sebastian
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hola,
En ese caso deberas cambiar la sentencia From, ya que esa solo te mostrara los pagos enlazados a facturas. El siguiente codigo utiliza como tabla base los pagos (ORCT) y enlazara (en caso haya) las facturas.
FROM ORCT P
LEFT OUTER JOIN RCT2 D ON P.DocEntry = D.DocNum
LEFT OUTER JOIN OINV F ON D.DocEntry = F.DocEntry AND D.InvType = F.ObjType
LEFT OUTER JOIN OSLP V ON F.SlpCode = V.SlpCode
LEFT OUTER JOIN INV1 FD ON F.DocEntry = FD.DocEntry
La unica diferencia con el codigo anterior es que solo cambia la forma de enlazar las tablas, ya que los campos son los mismos.
Saludos,
SOS
sabes de que me detectaron un error y no es por lo de la fecha ya qu ecuando la pongo no mesale el error es que creo mi codigo esta mal desde que utilizo
declare @Finicial datetime
declare @Ffinal datetime
set @Finicial = (SELECT distinct T5.[RateDate] FROM ORTT T5 WHERE T5.[RateDate] =[%0])
set @Ffinal = (SELECT distinct T5.[RateDate] FROM ORTT T5 WHERE T5.[RateDate] =[%1])
Select F.ReceiptNum,F.CardCode,f.CardName, F.ShipToCode,
convert(varchar,P.DocDate) as Fecha,P.DocRate, D.AppliedFC ,
Case when P.DocRate = '0.000000' then D.SumApplied else D.AppliedFC * P.DocRate end as 'Total',
CASE when FD.TaxCode = 'B2' then (Case when P.DocRate = '0.000000' then D.SumApplied else D.AppliedFC * P.DocRate end) / 1.16
when FD.TaxCode = 'B1' then (Case when P.DocRate = '0.000000' then D.SumApplied else D.AppliedFC * P.DocRate end) / 1.11
else Case when P.DocRate = '0.000000' then D.SumApplied else D.AppliedFC * P.DocRate end
end as 'Importe Sin IVA',
convert(varchar, F.FolioPref) + '-' + convert(varchar,F.FolioNum) as folio, F.DocNum, convert(varchar,F.DocDate) as 'Fecha Factura',
(F.DocTotal - F.VatSum )as 'Import Subtotal',
V.SlpName
FROM ORCT P
LEFT OUTER JOIN RCT2 D ON P.DocEntry = D.DocNum
LEFT OUTER JOIN OINV F ON D.DocEntry = F.DocEntry AND D.InvType = F.ObjType
LEFT OUTER JOIN OSLP V ON F.SlpCode = V.SlpCode
LEFT OUTER JOIN INV1 FD ON F.DocEntry = FD.DocEntry
lo que esta en negritas ya que cuando lo corro me salen los valores que me faltan 43, 56 y 47
y cuando lo saco directamente de este me salen muy bien no se si me puedan ayudar :
select * from ORCT
Hola
en la consulta debes añadir una condición más para que sólo busque facturas: en la tabla RCT2 hay una columna que se llama InvType y tienes que añadirla en el join o en el where.
La condición es RCT2.InvType = 13.
Por otro lado yo haría el join por el campo OINV.docentry. El campo OINV.docnum puede duplicarse en dos ejercicios distintos o en dos series distintas para el mismo ejercicio. Los join los haría así:
ORCT T0 INNER JOIN RCT2 T1 ON T0.DocEntry = T1.DocNum inner join OINV T2 on T1.docentry = T2.docentry and T1.InvType = 13
Un saludo
Agustín Marcos Cividanes
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hola
las facturas que no aparecen en el resultado de la consulta
¿Qué medio de pago utilizaste para cobrarlas?
¿Se reconciliaron internamente?
Sobre una factura de las que no aparecen en el resultado de la consulta haz botón derecho --> operaciones aplicadas y dime qué aparece.
Un saludo
Agustín Marcos Cividanes
User | Count |
---|---|
99 | |
12 | |
11 | |
6 | |
6 | |
4 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.