diff --git a/Ventas/ProductosServicios.aspx.vb b/Ventas/ProductosServicios.aspx.vb index d9c454177..f24232179 100644 --- a/Ventas/ProductosServicios.aspx.vb +++ b/Ventas/ProductosServicios.aspx.vb @@ -15,7 +15,14 @@ Partial Class ProductosyServicios Return ViewState("CvePS").ToString.ToEntero End Get End Property - + Public Property PSAdicionalAnterior As String + Get + Return ViewState("PSAdicionalAnterior").ToString + End Get + Set(value As String) + ViewState("PSAdicionalAnterior") = value + End Set + End Property Private Property CveSATPS As Integer Get Return ViewState("CveSATPS").ToString.ToEntero @@ -1654,13 +1661,14 @@ Partial Class ProductosyServicios Private Sub GvPSAdicionales_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvPSAdicionales.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then - If e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5 Then - e.Row.FCDropDownList("DdlPSAdicional").DataSource = GlobalDTPS(UsuarioActual.CveEmpresa) '.FiltraParametros("CvePS = " + CvePS.ToString) - e.Row.FCDropDownList("DdlPSAdicional").DataBind() - e.Row.FCDropDownList("DdlPSAdicional").SelectedValue = e.Row.DBCampo("CvePSAdicional") - End If - End If + If e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5 Then + e.Row.FCDropDownList("DdlPSAdicional").DataSource = GlobalDTPS(UsuarioActual.CveEmpresa) '.FiltraParametros("CvePS = " + CvePS.ToString) + e.Row.FCDropDownList("DdlPSAdicional").DataBind() + e.Row.FCDropDownList("DdlPSAdicional").SelectedValue = e.Row.DBCampo("CvePSAdicional") + End If + + End If End Sub Protected Sub GvPSAdicionales_RowCancelingEdit(sender As Object, e As GridViewCancelEditEventArgs) Handles GvPSAdicionales.RowCancelingEdit GvPSAdicionales.EditIndex = -1 @@ -1670,10 +1678,13 @@ Partial Class ProductosyServicios Dim TieneError = False Dim CvePSAdicional = GvPSAdicionales.Rows(e.RowIndex).DataKey("CvePSAdicional").ToEntero + Dim PSAdicional = GvPSAdicionales.Rows(e.RowIndex).DataKey("PS").ToString Dim ObjProductosServicios As New ClsProductosServicios() If Not ObjProductosServicios.RemovePSAdicionales(CvePS, CvePSAdicional) Then TieneError = True + Else + TieneError = EliminarProductosEquivalenteEnFranquicia(ObjProductosServicios, PSAdicional) End If ObjProductosServicios.Dispose() @@ -1720,7 +1731,7 @@ Partial Class ProductosyServicios If Not ObjProductosServicios.UpdatePSAdicionales(CvePS, DdlPSAdicional.SelectedValue.ToEntero, CvePSAdicional, If(TxtCantidadPSAdicional.Visible, TxtCantidadPSAdicional.Text.ToDecimal, 0)) Then TieneError = True Else - TieneError = GuardarProductosEquivalenteEnFranquicia(ObjProductosServicios, False) + TieneError = GuardarProductosEquivalenteEnFranquicia(ObjProductosServicios, False, PSAdicionalAnterior) End If End If @@ -1743,6 +1754,7 @@ Partial Class ProductosyServicios Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) BtnAgregarPSAdicional.Text = "Guardar" TxtCantidadPSAdicional.Text = GvRow.DataKey("Cantidad") + PSAdicionalAnterior = GvRow.DataKey("PS").ToString If TxtCantidadPSAdicional.Text.ToEntero = 0 Then UpCantidad.Visible = False @@ -2936,7 +2948,7 @@ Partial Class ProductosyServicios Return False End Function - Private Function GuardarProductosEquivalenteEnFranquicia(ObjPS As ClsProductosServicios, Agregar As Boolean) As Boolean + Private Function GuardarProductosEquivalenteEnFranquicia(ObjPS As ClsProductosServicios, Agregar As Boolean, Optional PSAdicionalAnterior As String = "") As Boolean If UsuarioActual.Empresa.Funcionalidad(563) <> "" Then Dim StrEmpresas As String = UsuarioActual.Empresa.Funcionalidad(563) @@ -2949,7 +2961,7 @@ Partial Class ProductosyServicios Alert(String.Format("El producto de la página no existe en la franquicia: '{0}'", GlobalDTEmpresas(Franquicia).FiltroPrimeroValor("Empresa")), TipoMensaje.MsgAdvertencia) End If - If CvePSPagina <= 0 Then + If CvePSAdicional <= 0 Then Alert(String.Format("El producto adicional no existe en la franquicia: '{0}'", GlobalDTEmpresas(Franquicia).FiltroPrimeroValor("Empresa")), TipoMensaje.MsgAdvertencia) End If @@ -2958,16 +2970,36 @@ Partial Class ProductosyServicios Return True End If Else - Dim PSAnterior As String = GlobalDTPS(Franquicia).FiltroPrimeroValor("PS", String.Format("CvePS = '{0}'", CvePSAdicional)) - Dim CvePSAnterio As Integer = GlobalDTPS(Franquicia).FiltroPrimeroValor("CvePS", String.Format("PS = '{0}'", PSAnterior)).ToEntero + Dim CvepsAdicionalAnt As Integer = GlobalDTPS(Franquicia).FiltroPrimeroValor("CvePS", String.Format("PS = '{0}'", PSAdicionalAnterior)).ToEntero - If Not ObjPS.UpdatePSAdicionales(CvePSPagina, CvePSAdicional, CvePSAnterio, If(TxtCantidadPSAdicional.Visible, TxtCantidadPSAdicional.Text.ToDecimal, 0)) Then - Return True + If CvepsAdicionalAnt <= 0 Then + Alert(String.Format("El producto adicional no existe en la franquicia: '{0}'", GlobalDTEmpresas(Franquicia).FiltroPrimeroValor("Empresa")), TipoMensaje.MsgAdvertencia) + Else + If Not ObjPS.UpdatePSAdicionales(CvePSPagina, CvePSAdicional, CvepsAdicionalAnt, If(TxtCantidadPSAdicional.Visible, TxtCantidadPSAdicional.Text.ToDecimal, 0)) Then + Return True + End If End If + + End If Next End If Return False End Function + + Private Function EliminarProductosEquivalenteEnFranquicia(ObjPS As ClsProductosServicios, PSAdicional As String) As Boolean + If UsuarioActual.Empresa.Funcionalidad(563) <> "" Then + Dim StrEmpresas As String = UsuarioActual.Empresa.Funcionalidad(563) + Dim EmpresasFranquicia As List(Of Integer) = StrEmpresas.Split(","c).ToList().ConvertAll(Function(x) Convert.ToInt32(x)) + For Each Franquicia As Integer In EmpresasFranquicia + Dim CvepsAdicional As Integer = GlobalDTPS(Franquicia).FiltroPrimeroValor("CvePS", String.Format("PS = '{0}'", PSAdicional)).ToEntero + Dim CvePSPagina As Integer = GlobalDTPS(Franquicia).FiltroPrimeroValor("CvePS", String.Format("Codigo = '{0}'", TxtCodigo.Text.Trim)).ToEntero + If Not ObjPS.RemovePSAdicionales(CvePSPagina, CvepsAdicional) Then + Return True + End If + Next + End If + Return False + End Function End Class