--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 Return Retorno
End Function 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 Dim Retorno As Boolean = False
DataAdapter("PA_Vta_ClasificacionFranquiciaUpdate") DataAdapter("PA_Vta_ClasificacionFranquiciaUpdate")
With SqlAdapter.SelectCommand.Parameters With SqlAdapter.SelectCommand.Parameters
.Add("@CveClasificacion", SqlDbType.Int).Value = CveClasificacion .Add("@CveClasificacion", SqlDbType.Int).Value = CveClasificacion
.Add("@Clasificacion", SqlDbType.VarChar).Value = Clasificacion
.Add("@CveEmpresaActual", SqlDbType.Int).Value = CveEmpresaActual .Add("@CveEmpresaActual", SqlDbType.Int).Value = CveEmpresaActual
.Add("@CveEmpresaFranquicia", SqlDbType.Int).Value = CveEmpresaFranquicia .Add("@CveEmpresaFranquicia", SqlDbType.Int).Value = CveEmpresaFranquicia
End With End With

View File

@@ -2581,7 +2581,7 @@ Partial Class General_SaldosIniciales
Dim ObjMovimientos As New ClsInventarios Dim ObjMovimientos As New ClsInventarios
ObjMovimientos.IniciaTransacSQL() 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 AlmacenRef As DataTable = GlobalDTAlmacen(UsuarioActual.CveEmpresa)
Dim contadorMovimientos As Integer = 0 Dim contadorMovimientos As Integer = 0
Dim listadoMovimientos As String = "" Dim listadoMovimientos As String = ""

View File

@@ -75,10 +75,19 @@ Partial Class CatClasificaciones
Set(value As Boolean) Set(value As Boolean)
ViewState("CargaCostos") = value ViewState("CargaCostos") = value
End Set 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 #End Region
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then If Not Page.IsPostBack Then
@@ -86,6 +95,7 @@ Partial Class CatClasificaciones
CargaCostos = True CargaCostos = True
CargaIngresos = True CargaIngresos = True
DtCuentasContables = Nothing DtCuentasContables = Nothing
ClasificacionOriginal = ""
CargaDdlSATPS() CargaDdlSATPS()
CargaDDLs() CargaDDLs()
@@ -149,56 +159,85 @@ Partial Class CatClasificaciones
Dim ObjClasificaciones As New ClsClasificaciones Dim ObjClasificaciones As New ClsClasificaciones
Dim objConta As New ClsContabilidad(ObjClasificaciones.IniciaTransacSQL) Dim objConta As New ClsContabilidad(ObjClasificaciones.IniciaTransacSQL)
Dim RequireSerieLote As Integer = If(ChkRequiereSerieLote.Checked, 1, 0) Dim RequireSerieLote As Integer = If(ChkRequiereSerieLote.Checked, 1, 0)
Dim TieneError As Boolean = False
If HdnModalidadClasificacion.Value = "A" Then Try
If ObjClasificaciones.AddClasificaciones(TxtClasificacion.Text.Trim, "", If HdnModalidadClasificacion.Value = "A" Then
DdlCategoria.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, RequiereSerieLote:=RequireSerieLote, UsoClasificacion:=DdlUsoClasificacion.SelectedValue.ToEntero, CveSATPS:=DdlSATPS.SelectedValue.ToEntero, If ObjClasificaciones.AddClasificaciones(TxtClasificacion.Text.Trim, "",
RequiereAFCompra:=ChkRequiereAFCompra.Checked, RequiereAFInsumo:=ChkRequiereAFInsumo.Checked, RequierePersonal:=ChkRequierePersonal.Checked, EsAcumulador:=ChkEsAcumulador.Checked, TopVentas:=ChkTopVentas.Checked, TopCompras:=ChkTopCompras.Checked, PrecioBaseCosto:=TxtPrecioBaseCosto.Text.ToDecimal) Then 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 TieneError Then
If UsuarioActual.Empresa.TipoContabilidad = 1 Then Alert("Ocurrió un error al guardar la clasificación. Por favor vuelva a intentar.", TipoMensaje.MsgError)
If DdlCuentaGasto.SelectedValue.ToEntero > 0 Then objConta.AddCuentasAsignaciones(6, UsuarioActual.CveEmpresa, DdlCuentaGasto.SelectedValue.ToEntero, CveClasificacion:=ObjClasificaciones.CveClasificacion) ObjClasificaciones.RollBack()
If DdlCuentaCostos.SelectedValue.ToEntero > 0 Then objConta.AddCuentasAsignaciones(69, UsuarioActual.CveEmpresa, DdlCuentaCostos.SelectedValue.ToEntero, CveClasificacion:=ObjClasificaciones.CveClasificacion) Else
If DdlCuentaIngresos.SelectedValue.ToEntero > 0 Then objConta.AddCuentasAsignaciones(4, UsuarioActual.CveEmpresa, DdlCuentaIngresos.SelectedValue.ToEntero, CveClasificacion:=ObjClasificaciones.CveClasificacion) ObjClasificaciones.Commit()
End If Me.ClasificacionOriginal = ""
ObjClasificaciones.Commit() TxtClasificacion.Text = ""
TxtClasificacion.Text = "" TxtPrecioBaseCosto.Text = ""
TxtPrecioBaseCosto.Text = "" DdlCuentaGasto.SelectedValueExist("0")
DdlCuentaGasto.SelectedValueExist("0") DdlCuentaCostos.SelectedValueExist("0")
DdlCuentaCostos.SelectedValueExist("0") DdlCuentaIngresos.SelectedValueExist("0")
DdlCuentaIngresos.SelectedValueExist("0") RegistraScript(String.Format("$('#{0}').modal('hide');", "ModalClasificaciones"))
RegistraScript(String.Format("$('#{0}').modal('hide');", "ModalClasificaciones")) Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion)
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
End If End If
ObjClasificaciones.Dispose() 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 Protected Sub GvDatos_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvDatos.RowDeleting
Dim ObjClasificaciones As New ClsClasificaciones Dim ObjClasificaciones As New ClsClasificaciones
If ObjClasificaciones.RemoveClasificacion(GvDatos.DataKeys(e.RowIndex).Value.ToString.ToEntero) Then ObjClasificaciones.IniciaTransacSQL()
GvDatos.EditIndex = -1 Dim TieneError As Boolean = False
GlobalDTClasificaciones(UsuarioActual.CveEmpresa) = Nothing Try
CargaDatos() Dim CveClasificacion As Integer = GvDatos.DataKeys(e.RowIndex).Value.ToString.ToEntero
Alert("La Clasificación se eliminó correctamente.", TipoMensaje.MsgInformacion) If Not TieneError AndAlso UsuarioActual.Empresa.Funcionalidad(563) <> "" AndAlso UsuarioActual.Empresa.Funcionalidad(109) = "1" Then
Else TieneError = Not RemoveClasificacionFranquicia(ObjClasificaciones, CveClasificacion)
Alert("Ocurrió un error al eliminar la clasificación. Por favor vuelva a intentar.", TipoMensaje.MsgError) End If
End If
ObjClasificaciones.Dispose() 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 Sub
#End Region #End Region
@@ -433,7 +493,7 @@ Partial Class CatClasificaciones
DdlCuentaIngresos.SelectedValueExist(CveCuentaIngresoActual) DdlCuentaIngresos.SelectedValueExist(CveCuentaIngresoActual)
End If End If
Me.ClasificacionOriginal = Clasificacion
TxtClasificacion.Text = Clasificacion TxtClasificacion.Text = Clasificacion
TxtPrecioBaseCosto.Text = PrecioBaseCosto.FormatoNumero(2) TxtPrecioBaseCosto.Text = PrecioBaseCosto.FormatoNumero(2)
DdlCategoria.SelectedValueExist(CveCategoria) DdlCategoria.SelectedValueExist(CveCategoria)
@@ -473,5 +533,39 @@ Partial Class CatClasificaciones
End Sub End Sub
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs) Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs)
CargaDatos() 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 End Class