Query Facturas Canceladas por Usuario

sql
Etiquetas: #<Tag:0x00007fb8dca731f8>

#1

Buenos días

Antes que nada quiero desearles Feliz Año Nuevo, un nuevo comienzo y mil momentos que festejar, les deseo lo mejor de los años, que el amor, la fé, la generosidad y la salud nos permitan lograr lo que mas anhelamos. Saludos a todos.

Ahora :slight_smile: ya menciono mi detalle, necesito un query donde me muestre el folio, fecha, folio electrónico cancelado y el usuario quien hizo la cancelación.

Tengo el siguiente query

SELECT T0.[DocNum], T0.[CANCELED], T2.ReportID as 'Folio 3.3', T0.[DocDate], T0.[CardCode], T0.[CardName], T0.[DocTotal], T1.[USER_CODE] 
FROM OINV T0  
INNER JOIN OUSR T1 ON T0.[UserSign] = T1.[USERID] 
INNER JOIN ECM2 T2 ON T0.[DocEntry] = T2.[SrcObjAbs]
WHERE 
T0.[DocDate] >=[%0] AND  T0.[DocDate] <=[%1] AND  T0.[CANCELED] ='Y'

Gracias por su apoyo


#2

Tengo unas preguntas:

¿Cual es el inconveniente?
¿El query que tienes no te sirve?
¿Te falta alguna información?
o ¿Nos estás ayudando con el query para la comunidad lo pueda utilizar?.


#3

Buenos días

Sorry creo que no me explique.
En el query necesito anexar el usuario quien realizo la cancelación. Pero no lo logró.


#4

Debes verificar pero;
OINV = T0.Usersign
ECM2 = T2.UserSign

Ambos son las firmas del usuario que realiza el movimiento. solo tendrías que agregarlo en el select según te ayuden y ya los estás ligando con la OUSR con el campo de nombre de usuario (que creo es el u_name si no me equivoco)


#5

Gracias

Pero solo obtengo el usuario que creo la factura. Necesito saber quien hizo la cancelación.


#6

Para cancelar el documento seguramente realizaron una “factura de cancelación”, en ese caso debes buscar el documento siguiente que le corresponde para su cierre. y es el usuario de ese segundo documento.

Tendrías que asociar un segundo query, donde el documento de origen es la factura original igual que el objettype de origen es el de la factura (creo que es 13 si no me equivoco) así lo localizarías.

Ahorita no tengo una BD a la que pueda acceder para realizarte el query… sorry


#7

En ese caso debes buscar en las tablas de log de documentos ADOC y DOC1 , ubicar la ultima modificación (cancelación) y traer el UserSign2 que sería el que la canceló.

Saludos


#8

Gracias @felipe.loyola por tu respuesta, la tabla DOC1 no la encuentro, solo esta la ADOC y DOC20. Lo que hice es relacionar la OINV con la ADOC y OUSR con OINV asi si obtengo lo que necesito. Solo que se repiten los folios. Anexo el Query.

SELECT T0.DocNum, T0.Canceled,T0.objtype, T0.updatedate, T0.JrnlMemo, T0.EDocNum, T0.Series, T1.UpdateDate, T2.U_Name From OINV T0 left join ADOC T1 on T0.DocNum=T1.DocNum INNER JOIN OUSR T2 ON T0.UserSign2 = T2.USERID where T0.Series=4 and T0.Canceled='Y'


#9

Claro que se te repiten, porque por cada modificación de 1 documento existe un registro en la tabla ADOC, debes traer en el join solo el registro que pertenece a la modificación o bien filtrarlo en el where.

Atte.