diff --git a/OC/OC.aspx.vb b/OC/OC.aspx.vb index 3a038344b..d10e24f6e 100644 --- a/OC/OC.aspx.vb +++ b/OC/OC.aspx.vb @@ -6921,27 +6921,29 @@ Partial Class OC Dim tmpDTPS As DataTable = DtDetalle Dim DTAlmacen = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros($" CveTipoAlmacen IN (1,9) ") 'AND CveSucursal = {CveSucursal}") Dim objInv As New ClsInventarios - Dim consulta As New StringBuilder + 'Dim consulta As New StringBuilder - consulta.Append(" ") - consulta.Append(" DECLARE @TEMP TABLE (CvePS INT, CveSubProyecto INT);") - For Each row As DataRow In tmpDTPS.Rows - consulta.AppendFormat("INSERT INTO @TEMP VALUES ({0},{1});", row("CvePS"), row("CveSubProyecto")) - Next - consulta.Append(" SELECT CASE WHEN LEN (ISNULL (P.Codigo, '')) = 0 THEN P.PS ELSE CONCAT( P.Codigo, ' - ', P.PS) END AS Producto, SUM(OCPR.Cantidad) AS [Por Recibir] ") - For Each row As DataRow In DTAlmacen.Rows - consulta.AppendFormat(" ,SUM(CASE WHEN CS.CveAlmacen={0} THEN CS.Existencia - ISNULL(INV.Cantidad,0) ELSE 0 END) AS [{1}] ", row("CveAlmacen"), row("Almacen")) - Next - consulta.Append(" FROM @TEMP T ") - consulta.Append(" INNER JOIN [ProductosServicios] P ON P.CvePS = T.CvePS ") - consulta.Append(" LEFT JOIN [Inv_ExistenciasProductos] CS ON P.CvePS = CS.CvePS ") - consulta.Append(" LEFT JOIN Vw_InventarioPorSurtir INV ON INV.CvePS = P.CvePS AND INV.CveAlmacen = CS.CveAlmacen ") - consulta.Append(" LEFT JOIN Vw_OC_PorRecibir OCPR ON OCPR.CvePS = P.CvePS AND OCPR.CveAlmacen = CS.CveAlmacen AND OCPR.CveSubProyecto = T.CveSubProyecto") - consulta.Append(" WHERE P.CveTipoPS = 2") - consulta.Append(" GROUP BY P.CvePS,P.Codigo,P.PS") + 'consulta.Append(" ") + 'consulta.Append(" DECLARE @TEMP TABLE (CvePS INT, CveSubProyecto INT);") + 'For Each row As DataRow In tmpDTPS.Rows + ' consulta.AppendFormat("INSERT INTO @TEMP VALUES ({0},{1});", row("CvePS"), row("CveSubProyecto")) + 'Next + 'consulta.Append(" SELECT CASE WHEN LEN (ISNULL (P.Codigo, '')) = 0 THEN P.PS ELSE CONCAT( P.Codigo, ' - ', P.PS) END AS Producto, SUM(OCPR.Cantidad) AS [Por Recibir] ") + 'For Each row As DataRow In DTAlmacen.Rows + ' consulta.AppendFormat(" ,SUM(CASE WHEN CS.CveAlmacen={0} THEN CS.Existencia - ISNULL(INV.Cantidad,0) ELSE 0 END) AS [{1}] ", row("CveAlmacen"), row("Almacen")) + 'Next + 'consulta.Append(" FROM @TEMP T ") + 'consulta.Append(" INNER JOIN [ProductosServicios] P ON P.CvePS = T.CvePS ") + 'consulta.Append(" LEFT JOIN [Inv_ExistenciasProductos] CS ON P.CvePS = CS.CvePS ") + 'consulta.Append(" LEFT JOIN Vw_InventarioPorSurtir INV ON INV.CvePS = P.CvePS AND INV.CveAlmacen = CS.CveAlmacen ") + 'consulta.Append(" LEFT JOIN Vw_OC_PorRecibir OCPR ON OCPR.CvePS = P.CvePS AND OCPR.CveAlmacen = CS.CveAlmacen AND OCPR.CveSubProyecto = T.CveSubProyecto") + 'consulta.Append(" WHERE P.CveTipoPS = 2") + 'consulta.Append(" GROUP BY P.CvePS,P.Codigo,P.PS") - objInv.GetQuery(consulta.ToString()) + 'objInv.GetQuery(consulta.ToString()) + + objInv.GetExistenciasAlmacenDT(CveOrdenCompra, UsuarioActual.CveEmpresa) ' limpio los almacenes donde no tiene ningun producto existencia For i = objInv.DtResultados.Columns.Count - 1 To 1 Step -1