--Clonar Clasificaciones cuando exista la funcionalidad 563

This commit is contained in:
2024-04-23 19:44:12 -07:00
parent 5802e0ab91
commit a743f03e2d
3 changed files with 160 additions and 65 deletions

View File

@@ -421,13 +421,14 @@ Public Class ClsClasificaciones
Return Retorno
End Function
Public Function UpdateClasificacionFranquicia(CveClasificacion As Integer, CveEmpresaActual As Integer, CveEmpresaFranquicia As Integer) As Boolean
Public Function UpdateClasificacionFranquicia(CveClasificacion As Integer, Clasificacion As String, CveEmpresaActual As Integer, CveEmpresaFranquicia As Integer) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_Vta_ClasificacionFranquiciaUpdate")
With SqlAdapter.SelectCommand.Parameters
.Add("@CveClasificacion", SqlDbType.Int).Value = CveClasificacion
.Add("@Clasificacion", SqlDbType.VarChar).Value = Clasificacion
.Add("@CveEmpresaActual", SqlDbType.Int).Value = CveEmpresaActual
.Add("@CveEmpresaFranquicia", SqlDbType.Int).Value = CveEmpresaFranquicia
End With

View File

@@ -2581,7 +2581,7 @@ Partial Class General_SaldosIniciales
Dim ObjMovimientos As New ClsInventarios
ObjMovimientos.IniciaTransacSQL()
Dim ProductosServiciosRef As DataTable = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa)
Dim ProductosServiciosRef As DataTable = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, Estatus:=-1)
Dim AlmacenRef As DataTable = GlobalDTAlmacen(UsuarioActual.CveEmpresa)
Dim contadorMovimientos As Integer = 0
Dim listadoMovimientos As String = ""

View File

@@ -75,10 +75,19 @@ Partial Class CatClasificaciones
Set(value As Boolean)
ViewState("CargaCostos") = value
End Set
End Property
End Property
Private Property ClasificacionOriginal As String
Get
Return IfNull(ViewState("ClasificacionOriginal"), "", ViewState("ClasificacionOriginal").ToString()).ToString()
End Get
Set(value As String)
ViewState("ClasificacionOriginal") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
@@ -86,6 +95,7 @@ Partial Class CatClasificaciones
CargaCostos = True
CargaIngresos = True
DtCuentasContables = Nothing
ClasificacionOriginal = ""
CargaDdlSATPS()
CargaDDLs()
@@ -149,56 +159,85 @@ Partial Class CatClasificaciones
Dim ObjClasificaciones As New ClsClasificaciones
Dim objConta As New ClsContabilidad(ObjClasificaciones.IniciaTransacSQL)
Dim RequireSerieLote As Integer = If(ChkRequiereSerieLote.Checked, 1, 0)
Dim TieneError As Boolean = False
If HdnModalidadClasificacion.Value = "A" Then
If ObjClasificaciones.AddClasificaciones(TxtClasificacion.Text.Trim, "",
DdlCategoria.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, RequiereSerieLote:=RequireSerieLote, UsoClasificacion:=DdlUsoClasificacion.SelectedValue.ToEntero, CveSATPS:=DdlSATPS.SelectedValue.ToEntero,
RequiereAFCompra:=ChkRequiereAFCompra.Checked, RequiereAFInsumo:=ChkRequiereAFInsumo.Checked, RequierePersonal:=ChkRequierePersonal.Checked, EsAcumulador:=ChkEsAcumulador.Checked, TopVentas:=ChkTopVentas.Checked, TopCompras:=ChkTopCompras.Checked, PrecioBaseCosto:=TxtPrecioBaseCosto.Text.ToDecimal) Then
Try
If HdnModalidadClasificacion.Value = "A" Then
If ObjClasificaciones.AddClasificaciones(TxtClasificacion.Text.Trim, "",
DdlCategoria.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, RequiereSerieLote:=RequireSerieLote, UsoClasificacion:=DdlUsoClasificacion.SelectedValue.ToEntero, CveSATPS:=DdlSATPS.SelectedValue.ToEntero,
RequiereAFCompra:=ChkRequiereAFCompra.Checked, RequiereAFInsumo:=ChkRequiereAFInsumo.Checked, RequierePersonal:=ChkRequierePersonal.Checked, EsAcumulador:=ChkEsAcumulador.Checked, TopVentas:=ChkTopVentas.Checked, TopCompras:=ChkTopCompras.Checked, PrecioBaseCosto:=TxtPrecioBaseCosto.Text.ToDecimal) Then
ViewState("DTClasificaciones") = ObjClasificaciones.DtResultados.FiltraParametros($"(Codigo IS NULL OR Codigo = '') AND CveEmpresa = {UsuarioActual.CveEmpresa} AND (CveCategoria = {DdlCategoriaFiltro.SelectedValue.ToEntero} OR {DdlCategoriaFiltro.SelectedValue.ToEntero} = -1) AND (UsoClasificacion = {DdlTipoClasificacion.SelectedValue.ToEntero} OR {DdlTipoClasificacion.SelectedValue.ToEntero} = -1 ) AND (Estado = {DdlEstatus.SelectedValue.ToEntero} OR {DdlEstatus.SelectedValue.ToEntero} = -1)")
If UsuarioActual.Empresa.TipoContabilidad = 1 Then
If DdlCuentaGasto.SelectedValue.ToEntero > 0 Then
If Not objConta.AddCuentasAsignaciones(6, UsuarioActual.CveEmpresa, DdlCuentaGasto.SelectedValue.ToEntero, CveClasificacion:=ObjClasificaciones.CveClasificacion) Then
TieneError = True
End If
End If
If DdlCuentaCostos.SelectedValue.ToEntero > 0 Then
If Not objConta.AddCuentasAsignaciones(69, UsuarioActual.CveEmpresa, DdlCuentaCostos.SelectedValue.ToEntero, CveClasificacion:=ObjClasificaciones.CveClasificacion) Then
TieneError = True
End If
End If
If DdlCuentaIngresos.SelectedValue.ToEntero > 0 Then
If Not objConta.AddCuentasAsignaciones(4, UsuarioActual.CveEmpresa, DdlCuentaIngresos.SelectedValue.ToEntero, CveClasificacion:=ObjClasificaciones.CveClasificacion) Then
TieneError = True
End If
End If
End If
If Not TieneError AndAlso UsuarioActual.Empresa.Funcionalidad(563) <> "" AndAlso UsuarioActual.Empresa.Funcionalidad(109) = "1" Then
TieneError = Not ActualizarClasificacionFranquicia(ObjClasificaciones, ObjClasificaciones.CveClasificacion, TxtClasificacion.Text.Trim)
End If
Else
TieneError = True
End If
ElseIf HdnModalidadClasificacion.Value = "U" Then
Dim Clasificacion As String = TxtClasificacion.Text
Dim Estatus As Boolean = ChkEstatus.Checked
Dim CveClasificacion As Integer = HdnIDClasificacion.Value.ToEntero
Dim DdlGasto As DropDownList = DdlCuentaGasto
Dim DdlCosto As DropDownList = DdlCuentaCostos
Dim DdlIngresos As DropDownList = DdlCuentaIngresos
If ObjClasificaciones.UpdateClasificacion(Clasificacion, "",
Estatus, False, DdlCategoria.SelectedValue.ToEntero, UsuarioActual.CveUsuario, CveClasificacion, RequiereSerieLote:=RequireSerieLote, UsoClasificacion:=DdlUsoClasificacion.SelectedValue.ToEntero, CveSATPS:=DdlSATPS.SelectedValue.ToEntero,
RequiereAFCompra:=ChkRequiereAFCompra.Checked, RequiereAFInsumo:=ChkRequiereAFInsumo.Checked, RequierePersonal:=ChkRequierePersonal.Checked, EsAcumulador:=ChkEsAcumulador.Checked, TopVentas:=ChkTopVentas.Checked, TopCompras:=ChkTopCompras.Checked, PrecioBaseCosto:=TxtPrecioBaseCosto.Text.ToDecimal) Then
If UsuarioActual.Empresa.TipoContabilidad = 1 Then
If DdlCuentaGasto.SelectedValue.ToEntero > 0 Then
If Not objConta.UpdateCuentasAsignaciones(HdnCveCuentaAsignacion.Value.ToEntero, 6, DdlCuentaGasto.SelectedValue.ToEntero, CveClasificacion:=CveClasificacion) Then
TieneError = True
End If
End If
End If
If Not TieneError AndAlso UsuarioActual.Empresa.Funcionalidad(563) <> "" AndAlso UsuarioActual.Empresa.Funcionalidad(109) = "1" Then
TieneError = Not ActualizarClasificacionFranquicia(ObjClasificaciones, CveClasificacion, Me.ClasificacionOriginal)
End If
Else
TieneError = True
End If
End If
Catch ex As Exception
OnError("Ocurrió un error al guardar la clasificación", ex)
TieneError = True
End Try
ViewState("DTClasificaciones") = ObjClasificaciones.DtResultados.FiltraParametros($"(Codigo IS NULL OR Codigo = '') AND CveEmpresa = {UsuarioActual.CveEmpresa} AND (CveCategoria = {DdlCategoriaFiltro.SelectedValue.ToEntero} OR {DdlCategoriaFiltro.SelectedValue.ToEntero} = -1) AND (UsoClasificacion = {DdlTipoClasificacion.SelectedValue.ToEntero} OR {DdlTipoClasificacion.SelectedValue.ToEntero} = -1 ) AND (Estado = {DdlEstatus.SelectedValue.ToEntero} OR {DdlEstatus.SelectedValue.ToEntero} = -1)")
If UsuarioActual.Empresa.TipoContabilidad = 1 Then
If DdlCuentaGasto.SelectedValue.ToEntero > 0 Then objConta.AddCuentasAsignaciones(6, UsuarioActual.CveEmpresa, DdlCuentaGasto.SelectedValue.ToEntero, CveClasificacion:=ObjClasificaciones.CveClasificacion)
If DdlCuentaCostos.SelectedValue.ToEntero > 0 Then objConta.AddCuentasAsignaciones(69, UsuarioActual.CveEmpresa, DdlCuentaCostos.SelectedValue.ToEntero, CveClasificacion:=ObjClasificaciones.CveClasificacion)
If DdlCuentaIngresos.SelectedValue.ToEntero > 0 Then objConta.AddCuentasAsignaciones(4, UsuarioActual.CveEmpresa, DdlCuentaIngresos.SelectedValue.ToEntero, CveClasificacion:=ObjClasificaciones.CveClasificacion)
End If
ObjClasificaciones.Commit()
TxtClasificacion.Text = ""
TxtPrecioBaseCosto.Text = ""
DdlCuentaGasto.SelectedValueExist("0")
DdlCuentaCostos.SelectedValueExist("0")
DdlCuentaIngresos.SelectedValueExist("0")
RegistraScript(String.Format("$('#{0}').modal('hide');", "ModalClasificaciones"))
Alert("La nueva Clasificación se guardó correctamente.", TipoMensaje.MsgInformacion)
Else
Alert("Ocurrió un error al agregar la clasificación. Por favor vuelva a intentar.", TipoMensaje.MsgError)
ObjClasificaciones.RollBack()
End If
ElseIf HdnModalidadClasificacion.Value = "U" Then
Dim Clasificacion As String = TxtClasificacion.Text
Dim Estatus As Boolean = ChkEstatus.Checked
Dim CveClasificacion As Integer = HdnIDClasificacion.Value.ToEntero
Dim DdlGasto As DropDownList = DdlCuentaGasto
Dim DdlCosto As DropDownList = DdlCuentaCostos
Dim DdlIngresos As DropDownList = DdlCuentaIngresos
If ObjClasificaciones.UpdateClasificacion(Clasificacion, "",
Estatus, False, DdlCategoria.SelectedValue.ToEntero, UsuarioActual.CveUsuario, CveClasificacion, RequiereSerieLote:=RequireSerieLote, UsoClasificacion:=DdlUsoClasificacion.SelectedValue.ToEntero, CveSATPS:=DdlSATPS.SelectedValue.ToEntero,
RequiereAFCompra:=ChkRequiereAFCompra.Checked, RequiereAFInsumo:=ChkRequiereAFInsumo.Checked, RequierePersonal:=ChkRequierePersonal.Checked, EsAcumulador:=ChkEsAcumulador.Checked, TopVentas:=ChkTopVentas.Checked, TopCompras:=ChkTopCompras.Checked, PrecioBaseCosto:=TxtPrecioBaseCosto.Text.ToDecimal) Then
If UsuarioActual.Empresa.TipoContabilidad = 1 Then
If DdlCuentaGasto.SelectedValue.ToEntero > 0 Then objConta.UpdateCuentasAsignaciones(HdnCveCuentaAsignacion.Value.ToEntero, 6, DdlCuentaGasto.SelectedValue.ToEntero, CveClasificacion:=CveClasificacion)
End If
ObjClasificaciones.Commit()
RegistraScript(String.Format("$('#{0}').modal('hide');", "ModalClasificaciones"))
Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion)
Else
Alert("Ocurrió un error al actualizar la clasificación. Por favor vuelva a intentar.", TipoMensaje.MsgError)
ObjClasificaciones.RollBack()
End If
If TieneError Then
Alert("Ocurrió un error al guardar la clasificación. Por favor vuelva a intentar.", TipoMensaje.MsgError)
ObjClasificaciones.RollBack()
Else
ObjClasificaciones.Commit()
Me.ClasificacionOriginal = ""
TxtClasificacion.Text = ""
TxtPrecioBaseCosto.Text = ""
DdlCuentaGasto.SelectedValueExist("0")
DdlCuentaCostos.SelectedValueExist("0")
DdlCuentaIngresos.SelectedValueExist("0")
RegistraScript(String.Format("$('#{0}').modal('hide');", "ModalClasificaciones"))
Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion)
End If
ObjClasificaciones.Dispose()
@@ -316,16 +355,37 @@ Partial Class CatClasificaciones
Protected Sub GvDatos_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvDatos.RowDeleting
Dim ObjClasificaciones As New ClsClasificaciones
If ObjClasificaciones.RemoveClasificacion(GvDatos.DataKeys(e.RowIndex).Value.ToString.ToEntero) Then
GvDatos.EditIndex = -1
GlobalDTClasificaciones(UsuarioActual.CveEmpresa) = Nothing
CargaDatos()
Alert("La Clasificación se eliminó correctamente.", TipoMensaje.MsgInformacion)
Else
Alert("Ocurrió un error al eliminar la clasificación. Por favor vuelva a intentar.", TipoMensaje.MsgError)
End If
ObjClasificaciones.Dispose()
ObjClasificaciones.IniciaTransacSQL()
Dim TieneError As Boolean = False
Try
Dim CveClasificacion As Integer = GvDatos.DataKeys(e.RowIndex).Value.ToString.ToEntero
If Not TieneError AndAlso UsuarioActual.Empresa.Funcionalidad(563) <> "" AndAlso UsuarioActual.Empresa.Funcionalidad(109) = "1" Then
TieneError = Not RemoveClasificacionFranquicia(ObjClasificaciones, CveClasificacion)
End If
If Not TieneError AndAlso Not ObjClasificaciones.RemoveClasificacion(CveClasificacion) Then
TieneError = True
End If
Catch ex As Exception
OnError("Ocurrió un error al eliminar la clasificación", ex)
TieneError = True
End Try
If TieneError Then
ObjClasificaciones.RollBack()
ObjClasificaciones.Dispose()
Alert("Ocurrió un error al eliminar la clasificación. Por favor vuelva a intentar.", TipoMensaje.MsgError)
Else
ObjClasificaciones.Commit()
ObjClasificaciones.Dispose()
Alert("La Clasificación se eliminó correctamente.", TipoMensaje.MsgInformacion)
GvDatos.EditIndex = -1
GlobalDTClasificaciones(UsuarioActual.CveEmpresa) = Nothing
CargaDatos()
End If
End Sub
#End Region
@@ -433,7 +493,7 @@ Partial Class CatClasificaciones
DdlCuentaIngresos.SelectedValueExist(CveCuentaIngresoActual)
End If
Me.ClasificacionOriginal = Clasificacion
TxtClasificacion.Text = Clasificacion
TxtPrecioBaseCosto.Text = PrecioBaseCosto.FormatoNumero(2)
DdlCategoria.SelectedValueExist(CveCategoria)
@@ -473,5 +533,39 @@ Partial Class CatClasificaciones
End Sub
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs)
CargaDatos()
End Sub
End Sub
Private Function ActualizarClasificacionFranquicia(ByRef ObjClas As ClsClasificaciones, CveClasificacion As Integer, NombreOriginal As String) As Boolean
Dim TieneError As Boolean = False
Dim FranquiciasStr As String = UsuarioActual.Empresa.Funcionalidad(563)
Dim Franquicias As String() = FranquiciasStr.Split(","c)
For Each Franquicia As String In Franquicias
Dim CveEmpresaFranquicia As Integer = Franquicia.ToEntero
If Not ObjClas.UpdateClasificacionFranquicia(CveClasificacion, NombreOriginal, UsuarioActual.CveEmpresa, CveEmpresaFranquicia) Then
TieneError = True
Exit For
End If
Next
Return Not TieneError
End Function
Private Function RemoveClasificacionFranquicia(ByRef ObjClas As ClsClasificaciones, CveClasificacion As Integer) As Boolean
Dim TieneError As Boolean = False
Dim FranquiciasStr As String = UsuarioActual.Empresa.Funcionalidad(563)
Dim Franquicias As String() = FranquiciasStr.Split(","c)
For Each Franquicia As String In Franquicias
Dim CveEmpresaFranquicia As Integer = Franquicia.ToEntero
If Not ObjClas.RemoveClasificacionFranquicia(CveClasificacion, UsuarioActual.CveEmpresa, CveEmpresaFranquicia) Then
TieneError = True
Exit For
End If
Next
Return Not TieneError
End Function
End Class