From 0754a1021966932e51f73d676d2f1288f0a620ae Mon Sep 17 00:00:00 2001 From: Hector Date: Fri, 6 Aug 2021 03:08:47 -0700 Subject: [PATCH] asiganar contratodetalle --- Compras/Compras.aspx.vb | 80 ++++++++++++++++++++++++++++++++--------- 1 file changed, 63 insertions(+), 17 deletions(-) diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 81df418d7..47d714231 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -18084,6 +18084,22 @@ Partial Class Compras_Compras End If End If + Dim DtpsTemp As DataTable = Nothing + Dim CveContratoDetalle As Integer = -1 + Dim CveContrato As Integer = GlobalDTContratos(UsuarioActual.CveEmpresa, -1, DdlSubProyecto.SelectedValue.ToString.ToEntero).FiltroPrimeroValor("CveContrato").ToEntero + If CveContrato > 0 Then + Dim dttemp As New DataTable + dttemp.Columns.Add("CveSubProyecto", GetType(Integer)) + dttemp.Columns.Add("CvePS", GetType(Integer)) + Dim DrPS = dttemp.NewRow + DrPS("CveSubProyecto") = DdlSubProyecto.SelectedValue.ToString.ToEntero + DrPS("CvePS") = DdlPS.SelectedValue.ToString.ToEntero + dttemp.Rows.Add(DrPS) + DtpsTemp = GetPSContratoDetalle(CveContrato, dttemp) + If DtpsTemp IsNot Nothing AndAlso DtpsTemp.Rows.Count > 0 Then + CveContratoDetalle = DtpsTemp.FiltroPrimeroValor("CveContratoDetalle", String.Format("CvePS = {0}", DdlPS.SelectedValue.ToString.ToEntero)).ToEntero + End If + End If 'If dttemp IsNot Nothing AndAlso dttemp.Rows.Count > 0 Then ' Dim drContrato As DataRow = dttemp.Rows(0) @@ -18118,20 +18134,6 @@ Partial Class Compras_Compras ' End If 'End If - Dim ObjContratos As New ClsContratos - Dim CveContrato As Integer = GlobalDTContratos(UsuarioActual.CveEmpresa, -1, DdlSubProyecto.SelectedValue.ToEntero).FiltroPrimeroValor("CveContrato").ToEntero - Dim CveContratoDetalle As Integer = -1 - If CveContrato > 0 Then - If ObjContratos.GetContratosDetalle(CveContrato, UsuarioActual.CveEmpresa) Then - CveContratoDetalle = ObjContratos.DtResultados.FiltroPrimeroValor("CveContratoDetalle", String.Format("CvePS = {0}", DdlPS.SelectedValue.ToString)).ToEntero - If CveContratoDetalle = 0 Then - CveContratoDetalle = -1 - End If - End If - End If - ObjContratos.Dispose() - - Select Case Modalidad Case "A" 'ADD @@ -18146,7 +18148,6 @@ Partial Class Compras_Compras Else IVA = Math.Round(DdlIVA.SelectedValue.ToDouble - 1, 2) End If - ObjContratos.Dispose() AddPS(TxtCantidad.Text.Trim.ToDouble, ddlUM.SelectedValue.ToEntero, ddlUM.SelectedItem.Text, DdlClasificacion.SelectedValue.ToEntero, DdlClasificacion.SelectedItem.Text, DdlPS.SelectedValue.ToEntero, DdlPS.SelectedText, HdnTipoPS.Value.ToEntero, DdlSubProyecto.SelectedValue.ToString, DdlSubProyecto.SelectedItem.Text, DdlProyecto.SelectedItem.Text, DdlProyecto.SelectedValue.ToString, TxtObsPS.Text.Trim, TxtPrecio.Text.Trim.ToDouble, Total, IVA, TxtRetIVAModal.Text.ToDouble / 100, TxtRetISRModal.Text.ToDouble / 100, TxtIEPSModal.Text.ToDouble / 100, 0, TxtDescuentoModal.Text.ToDouble, OtrosGastos:=TxtOtrosGastos.Text.ToDouble, CveTipoGasto:=DdlTipoGasto.SelectedValue.ToEntero, TipoGasto:=DdlTipoGasto.SelectedItem.Text, @@ -18625,13 +18626,26 @@ Partial Class Compras_Compras CveProyecto = DdlAsignarProyecto.SelectedValue.ToEntero() End If + Dim CveContrato As Integer = GlobalDTContratos(UsuarioActual.CveEmpresa, -1, DdlAsignaSubProyecto.SelectedValue.ToEntero).FiltroPrimeroValor("CveContrato").ToEntero + Dim DtpsTemp As DataTable = Nothing + If CveContrato > 0 Then + DtpsTemp = GetPSContratoDetalle(CveContrato, TmpDT.FiltraParametros("", "", {"CveSubProyecto", "CvePS"})) + End If + For Each Dr As DataRow In TmpDT.Rows Dr("CveProyecto") = CveProyecto Dr("Proyecto") = If(CveSubProyecto = -1, "SE", DdlAsignarProyecto.SelectedItem.Text) Dr("CveSubProyecto") = CveSubProyecto Dr("SubProyecto") = If(CveSubProyecto = -1, "SE", DdlAsignaSubProyecto.SelectedItem.Text) + + If DtpsTemp IsNot Nothing AndAlso DtpsTemp.Rows.Count > 0 Then + Dr("CveContratoDetalle") = DtpsTemp.FiltroPrimeroValor("CveContratoDetalle", String.Format("CvePS = {0}", Dr("CvePS"))).ToEntero + End If + Next + + GvPS.DataSource = TmpDT.FiltraParametros("", "Consec") GvPS.DataBind() UpPS.Update() @@ -18694,9 +18708,22 @@ Partial Class Compras_Compras Dim PS As New ClsProductosServicios Dim CvePS = -1 Dim tPS = "" - + Dim CveSubProyecto As Integer = TmpDT.Rows(HdnAliasInd.Value.ToEntero)("CveSubProyecto").ToString.ToEntero CvePS = DdlPSAlias2.SelectedValue.ToEntero tPS = DdlPSAlias2.SelectedText + Dim DtpsTemp As DataTable = Nothing + Dim CveContrato As Integer = GlobalDTContratos(UsuarioActual.CveEmpresa, -1, CveSubProyecto).FiltroPrimeroValor("CveContrato").ToEntero + If CveContrato > 0 Then + Dim dttemp As New DataTable + dttemp.Columns.Add("CveSubProyecto", GetType(Integer)) + dttemp.Columns.Add("CvePS", GetType(Integer)) + Dim DrPS = dttemp.NewRow + DrPS("CveSubProyecto") = CveSubProyecto + DrPS("CvePS") = CvePS + dttemp.Rows.Add(DrPS) + DtpsTemp = GetPSContratoDetalle(CveContrato, dttemp) + End If + If PS.AddPSAlias(System.Web.HttpUtility.HtmlDecode(TxtPSAlias.Text.Trim), CvePS, UsuarioActual.CveUsuario) Then GlobalDTProductosServiciosAlias(-1) = PS.DtResultados @@ -18711,6 +18738,9 @@ Partial Class Compras_Compras TmpDT.Rows(HdnAliasInd.Value.ToEntero)("CveSATPS") = HdnPSAliasCveSATPS.Value.ToEntero TmpDT.Rows(HdnAliasInd.Value.ToEntero)("SATClaveProductoServicio") = HdnPSAliasSATClavePS.Value TmpDT.Rows(HdnAliasInd.Value.ToEntero)("CveSATPSActualizado") = 0 + If DtpsTemp IsNot Nothing AndAlso DtpsTemp.Rows.Count > 0 Then + TmpDT.Rows(HdnAliasInd.Value.ToEntero)("CveContratoDetalle") = DtpsTemp.FiltroPrimeroValor("CveContratoDetalle", String.Format("CvePS = {0}", CvePS)).ToEntero + End If 'busco si el producto está en otros renglones QUE NO LO TENGAN ASIGNADO, LO VINCULE For Each drt As DataRow In TmpDT.Select($"PS ='{TxtPSAlias.Text.Trim}' and ISNULL(CvePS,0) = 0") @@ -18724,7 +18754,9 @@ Partial Class Compras_Compras drt("CveSATPS") = HdnPSAliasCveSATPS.Value.ToEntero drt("SATClaveProductoServicio") = HdnPSAliasSATClavePS.Value drt("CveSATPSActualizado") = 0 - + If DtpsTemp IsNot Nothing AndAlso DtpsTemp.Rows.Count > 0 Then + drt("CveContratoDetalle") = DtpsTemp.FiltroPrimeroValor("CveContratoDetalle", String.Format("CvePS = {0}", drt("CvePS"))).ToEntero + End If Next TmpDT.AcceptChanges() @@ -20939,6 +20971,20 @@ Partial Class Compras_Compras Return Retorno End Function + Private Function GetPSContratoDetalle(CveContrato As Integer, DtPS As DataTable) As DataTable + Dim ObjContratos As New ClsContratos + Dim DtpsTemp As DataTable = Nothing + + If DtPS.MAX("CveSubProyecto", "CveSubProyecto IS NOT NULL").ToEntero > 0 AndAlso DtPS.MAX("CvePS", "CvePS IS NOT NULL").ToEntero > 0 Then + Dim TempPS As String = JsonConvert.SerializeObject(DtPS).ToString + If ObjContratos.GetPSContratoDetalle(CveContrato, TempPS) Then + DtpsTemp = ObjContratos.DtResultados + End If + ObjContratos.Dispose() + End If + + Return DtpsTemp + End Function #End Region