Pedidos ventas pendientes, con importe pendiente

Esta vista SQL muestra los pedidos ventas pendientes de servir, con las unidades pendientes y el importe pendiente.

SELECT LINEAS.SITUACION, CABEPEDV.IDPEDV, CABEPEDV.TIPOCONT, CABEPEDV.SERIE, CABEPEDV.NUMDOC, CABEPEDV.FECHA, CABEPEDV.REFERENCIA, CABEPEDV.CODCLI, CABEPEDV.NOMCLI,
Lineas.FecEntrega Fecha_Entrega, Lineas.CodArt Articulo, Lineas.DescLin Descripcion, Lineas.Unidades,
Lineas.uniservida as Servidas, Lineas.unianulada as Anuladas, Lineas.Unidades-Lineas.UniServida-Lineas.UniAnulada as Pendientes,
DATEDIFF( dd, Lineas.FecEntrega, GetDate()) as Dias,
Lineas.BaseMoneda/Lineas.Unidades*(Lineas.Unidades-Lineas.UniServida-Lineas.UniAnulada) as Importe

FROM CABEPEDV WITH (NOLOCK)
LEFT OUTER JOIN LinePedi Lineas WITH(NOLOCK) ON Lineas.IdPedV = CabePedV.IdPedV
LEFT OUTER JOIN Articulo WITH(NOLOCK) ON Articulo.CodArt = Lineas.CodArt
LEFT OUTER JOIN Clientes WITH(NOLOCK) ON Clientes.CodCli = CabePedV.CodCli

WHERE ( [DevolverRegistros, SysName, 1 = 1])
AND LINEAS.SITUACION=’A’ AND LINEAS.UNIDADES<>0
AND ( [CondicionTabla, SysName, 1 = 1])
AND ( [Filtro, SysName, 1 = 1])
AND ( [CondicionIdentificadores, SysName, 1 = 1])
AND ( [CondicionCodigo, SysName, 1 = 1])
AND ( [CondicionRepresentante, Sysname, 1 = 1])
AND ( [CondicionFechasDocumento, SysName, 1 = 1])
AND ( [CondicionNumeroDocumento, Sysname, 1 = 1])
AND ( [CondicionReferenciaDocumento, Sysname, 1 = 1])
AND ( [CondicionSituacionDocumento, Sysname, 1 = 1])
AND ( ( ‘[TextoBusqueda, SysName, ”]’ = ”) OR
( CABEPEDV.SITUACION LIKE ‘%[TextoBusqueda, SysName, ”]%’) OR
( CABEPEDV.IDPEDV LIKE ‘%[TextoBusqueda, SysName, ”]%’) OR
( CABEPEDV.TIPOCONT LIKE ‘%[TextoBusqueda, SysName, ”]%’) OR
( CABEPEDV.SERIE LIKE ‘%[TextoBusqueda, SysName, ”]%’) OR
( CABEPEDV.NUMDOC LIKE ‘%[TextoBusqueda, SysName, ”]%’) OR
( CABEPEDV.FECHA LIKE ‘%[TextoBusqueda, SysName, ”]%’) OR
( CABEPEDV.REFERENCIA LIKE ‘%[TextoBusqueda, SysName, ”]%’) OR
( CABEPEDV.CODCLI LIKE ‘%[TextoBusqueda, SysName, ”]%’) OR
( CABEPEDV.NOMCLI LIKE ‘%[TextoBusqueda, SysName, ”]%’))
ORDER BY CABEPEDV.TIPOCONT, CABEPEDV.SERIE, CABEPEDV.NUMDOC, CABEPEDV.FECHA, CABEPEDV.REFERENCIA, CABEPEDV.CODCLI, CABEPEDV.NOMCLI

Observe el uso de la funcion DATTEDIF para calcular los dias que faltan hasta la fecha de entrega respecto a la fecha del sistema:
DATEDIFF( dd, Lineas.FecEntrega, GetDate()) as Dias,

Y el calculo del importe pendiente a partir del precio neto unitario (base / unidades) * unidades pendientes.
Lineas.BaseMoneda/Lineas.Unidades*(Lineas.Unidades-Lineas.UniServida-Lineas.UniAnulada) as Importe

Hemos añadido tambien un criterio fijo: lineas Activas (no servidas) y con unidades distintas de 0.
AND LINEAS.SITUACION=’A’ AND LINEAS.UNIDADES<>0

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.