Files
SIG/Ventas/RepComisionesSMS.aspx.vb
2024-05-31 06:05:55 -07:00

376 lines
13 KiB
VB.net

Option Explicit On
Option Strict On
Imports System.Data
Imports Extensiones
Partial Class Ventas_RepComisionesSMS
Inherits ClsPaginas
Property DTDatos As DataTable
Get
If ViewState("DTDatos") Is Nothing Then
ViewState("DTDatos") = New DataTable
End If
Return DirectCast(ViewState("DTDatos"), DataTable)
End Get
Set(value As DataTable)
ViewState("DTDatos") = value
End Set
End Property
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
Dim FechaInicial As Date = New Date(10)
txtFechaI.Text = Now.FirstDayOfMonth.ToString("dd/MM/yyyy")
txtFechaF.Text = Now.ToString("dd/MM/yyyy")
CargaCombos()
CargaDatos()
End If
End Sub
Private Sub CargaCombos()
'If UsuarioActual.Empresa.Funcionalidad(302) = "1" AndAlso DdlSubProyectoDatos.SelectedValue.ToEntero() > 0 Then
' DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa, VendedorTipo:=-1).FiltraParametros(String.Format("VendedorTipo IN (1,4) AND (CveSubProyecto IS NULL OR CveSubProyecto = {0})", DdlSubProyectoDatos.SelectedValue))
'Else
DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa).FiltraParametros("VendedorTipo = 1")
'End If
DdlVendedor.DataBind()
DdlVendedor.Items.Insert(0, New ListItem("Todos", "-1"))
DdlMedico.DataSource = GlobalDTMedicos(UsuarioActual.CveEmpresa).FiltraParametros("Estatus = 'True' ")
DdlMedico.DataBind()
DdlMedico.Items.Insert(0, New ListItem("Todos", "-1"))
DdlUsuarioAtendio.DataSource = GlobalDTUsuarios(-1, UsuarioActual.CveEmpresa)
DdlUsuarioAtendio.DataBind()
DdlUsuarioAtendio.Items.Insert(0, New ListItem("Todos", "-1"))
End Sub
Public Sub CargaDatos()
LnkExportar.Visible = False
Dim FechaIPago As Date = If(TxtFechaIPago.Text.ToDate < MinFecha, MinFecha, TxtFechaIPago.Text.ToDate)
Dim FechaFPago As Date = If(TxtFechaFPago.Text.ToDate < MinFecha, MaxFecha, TxtFechaFPago.Text.ToDate)
Dim ObjVentas As New ClsVentas
If ObjVentas.GetComisionesMedicasRep(txtFechaI.Text.ToDate, txtFechaF.Text.ToDate, UsuarioActual.CveEmpresa, -1, -1, DdlMedico.SelectedValue.ToEntero, DdlVendedor.SelectedValue.ToEntero, DdlUsuarioAtendio.SelectedValue.ToEntero, -1, FechaIPago, FechaFPago) Then
GvDatos.DataSource = ObjVentas.DtResultados
If ObjVentas.DtResultados IsNot Nothing AndAlso ObjVentas.DtResultados.Rows.Count > 0 Then
LnkExportar.Visible = True
End If
Else
GvDatos.DataSource = Nothing
End If
ObjVentas.Dispose()
GvDatos.DataBind()
If UsuarioActual.CveVendedor = 0 Then GvDatos.Columns(15).Visible = True 'columna de comisiones de gerente
UpDatos.Update()
End Sub
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs)
CargaDatos()
End Sub
#Region "EXCEL"
Private Sub LnkExportar_Click(sender As Object, e As EventArgs) Handles LnkExportar.Click
Dim SbFiltros As New StringBuilder()
SbFiltros.AppendFormat($"Fecha Inicio: {txtFechaI.Text} Fecha Fin: {txtFechaF.Text}|")
GvDatos.Columns(10).Visible = False
GvDatos.ExportToExcelGembox("Comisiones", UsuarioActual, "Comisiones", DatoTituloExtra:=$"", DatosFiltros:=SbFiltros.ToString())
GvDatos.Columns(10).Visible = True
End Sub
Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control)
End Sub
#End Region
Protected Sub LnkComisiones_Click(sender As Object, e As EventArgs)
CargaComisiones()
RegistraScript("$('#DvModalComisiones').modal('show');")
End Sub
Private Sub CargaComisiones()
DTDatos = New DataTable
GvComisiones.DataSource = Nothing
Dim objVentas As New ClsVentas
If objVentas.GetComisionesMedicas(UsuarioActual.CveEmpresa) Then
GvComisiones.DataSource = objVentas.DtResultados
DTDatos = objVentas.DtResultados
End If
objVentas.Dispose()
GvComisiones.DataBind()
UpDvModalComisiones.Update()
End Sub
Protected Sub BtnGuardarComisiones_Click(sender As Object, e As EventArgs)
Dim objVentas As New ClsVentas
objVentas.IniciaTransacSQL()
Dim TieneError As Boolean = False
For Each GvRow As GridViewRow In GvComisiones.Rows
Dim CvePS As Integer = GvRow.DataKey("CvePS").ToEntero
Dim ComisionMedicoDT As Decimal = DTDatos.FiltroPrimeroValor("ComisionMedico", $"CvePS = {CvePS} ").ToDecimal
Dim ComisionVendedorDT As Decimal = DTDatos.FiltroPrimeroValor("ComisionVendedor", $"CvePS = {CvePS} ").ToDecimal
Dim ComisionTecnicoDT As Decimal = DTDatos.FiltroPrimeroValor("ComisionTecnico", $"CvePS = {CvePS} ").ToDecimal
Dim ComisionGerenteDT As Decimal = DTDatos.FiltroPrimeroValor("ComisionGerente", $"CvePS = {CvePS} ").ToDecimal
Dim ComisionMedicoGV As Decimal = GvRow.FCTextBox("TxtComisionMedico").Text.ToDecimal
Dim ComisionGerenteGV As Decimal = (GvRow.FCTextBox("TxtComisionGerente").Text.ToDecimal / 100).RoundSQL(4)
Dim ComisionVendedorGV As Decimal = (GvRow.FCTextBox("TxtComisionVendedor").Text.ToDecimal / 100).RoundSQL(4)
Dim ComisionTecnicoGV As Decimal = (GvRow.FCTextBox("TxtComisionTecnico").Text.ToDecimal / 100).RoundSQL(4)
If ComisionMedicoDT <> ComisionMedicoGV Or ComisionVendedorDT <> ComisionVendedorGV Or ComisionTecnicoDT <> ComisionTecnicoGV Or ComisionGerenteDT <> ComisionGerenteGV Then
If Not objVentas.AddUpdateComisionesMedicas(GvRow.DataKey("CvePS").ToEntero, UsuarioActual.CveEmpresa, ComisionMedicoGV, ComisionVendedorGV, ComisionTecnicoGV, ComisionGerenteGV) Then
TieneError = True
End If
End If
Next
If TieneError Then
objVentas.RollBack()
Else
objVentas.Commit()
Alert("Comisiones Actualizadas correctamente")
End If
objVentas.Dispose()
End Sub
Protected Sub GvComisiones_RowDataBound(sender As Object, e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
'ComisionMedico,ComisionGerente,ComisionVendedor,ComisionTecnico"
If e.Row.DataKey("ComisionMedico").ToDecimal = 0 Then
e.Row.FCTextBox("TxtComisionMedico").Text = ""
Else
e.Row.FCTextBox("TxtComisionMedico").Text = e.Row.DataKey("ComisionMedico").ToDecimal.ToString("###.00")
End If
If e.Row.DataKey("ComisionGerente").ToDecimal = 0 Then
e.Row.FCTextBox("TxtComisionGerente").Text = ""
Else
e.Row.FCTextBox("TxtComisionGerente").Text = (e.Row.DataKey("ComisionGerente").ToDecimal * 100).ToString("###.00")
End If
If e.Row.DataKey("ComisionVendedor").ToDecimal = 0 Then
e.Row.FCTextBox("TxtComisionVendedor").Text = ""
Else
e.Row.FCTextBox("TxtComisionVendedor").Text = (e.Row.DataKey("ComisionVendedor").ToDecimal * 100).ToString("###.00")
End If
If e.Row.DataKey("ComisionTecnico").ToDecimal = 0 Then
e.Row.FCTextBox("TxtComisionTecnico").Text = ""
Else
e.Row.FCTextBox("TxtComisionTecnico").Text = (e.Row.DataKey("ComisionTecnico").ToDecimal * 100).ToString("###.00")
End If
End If
End Sub
#Region "COMISIONES ESPECIALES"
Protected Sub LnkComisionesEspeciales_Click(sender As Object, e As EventArgs)
ReiniciaModalComisionesEspeciales()
CargaComisionesEspeciales()
RegistraScript("$('#DvModalComisionesEspeciales').modal('show');")
End Sub
Private Sub ReiniciaModalComisionesEspeciales()
DdlModalTipoComision.SelectedValueExist(-1)
DdlModalMedico.SelectedValue = Nothing
DdlModalMedico.ClearSelection()
DdlModalMedico.Items.Clear()
DdlModalMedico.DataSource = GlobalDTMedicos(UsuarioActual.CveEmpresa).FiltraParametros("Estatus = 'True' ")
DdlModalMedico.DataBind()
DdlModalMedico.Items.Insert(0, New ListItem("Todos", "-1"))
DdlModalPS.SelectedValue = "-1"
DdlModalPS.SelectedValue = ""
DdlModalPS.SelectedText = ""
Dim EsWS As Boolean = If(UsuarioActual.Empresa.Funcionalidad(105) = "1" Or UsuarioActual.Empresa.Funcionalidad(141) = "1", True, False)
If EsWS Then
DdlModalPS.setEsWebService(True)
Else
DdlModalPS.ddl.SelectedValue = Nothing
DdlModalPS.ddl.ClearSelection()
DdlModalPS.ddl.Items.Clear()
'Objeto.ddl.DataSource = GlobalDTProductosServicios(UsuarioActual.CveEmpresa, CveClasificacion:=CveClasificacion, AplicaParaVenta:=1, Estatus:=1)
DdlModalPS.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, Estatus:=1)
DdlModalPS.ddl.DataBind()
DdlModalPS.ddl.Items.Insert(0, New ListItem("*** Actualizar listado de Productos o Servicios ***", "-2"))
DdlModalPS.ddl.Items.Insert(0, New ListItem("Seleccione el Producto", "-1"))
DdlModalPS.setEsWebService(False)
End If
TxtModalComision.Text = ""
UpModalComisionesEspeciales.Update()
End Sub
Private Sub CargaComisionesEspeciales()
Dim ObjVentas As New ClsVentas
GvComisionesEspeciales.DataSource = Nothing
If ObjVentas.GetComisionesMedicasEspeciales(-1, -1, UsuarioActual.CveEmpresa) Then
GvComisionesEspeciales.DataSource = ObjVentas.DtResultados
End If
ObjVentas.Dispose()
GvComisionesEspeciales.DataBind()
UpModalComisionesEspeciales.Update()
End Sub
Protected Sub LnkEliminarComisionEspecial_Click(sender As Object, e As EventArgs)
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
Dim CveMedicoComision As Integer = GvRow.DataKey("CveMedicoComision").ToEntero
If CveMedicoComision > 0 Then
Dim errorProceso As Boolean = False
Dim ObjVentas As New ClsVentas
If ObjVentas.RemoveComisionesMedicasEspeciales(CveMedicoComision, UsuarioActual.CveEmpresa) Then
Alert("Comisión eliminada correctamente")
Else
errorProceso = True
End If
ObjVentas.Dispose()
If Not errorProceso Then
CargaComisionesEspeciales()
End If
End If
End Sub
#End Region
Protected Sub DdlModalTipoComision_SelectedIndexChanged(sender As Object, e As EventArgs)
TxtModalComision.Text = ""
If DdlModalTipoComision.SelectedValue.ToEntero = 1 Then
TxtModalComision.Attributes.Add("onkeyup", "FormatoMoneda(this)")
Else
TxtModalComision.Attributes.Add("onkeyup", "FormatoMoneda(this);validaPorcentaje(this);")
End If
UpModalComisionesEspeciales.Update()
End Sub
Protected Sub LnkModalGuardarComisionEspecial_Click(sender As Object, e As EventArgs)
If DdlModalPS.SelectedValue.ToEntero <= 0 Then
Alert("Debe de seleccionar un producto.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
If TxtModalComision.Text.ToDecimal = 0 Then
Alert("La comisión es requerida.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
Dim errorProceso As Boolean = False
Dim Comision As Decimal = TxtModalComision.Text.ToDecimal
If DdlModalTipoComision.SelectedValue.ToEntero = 2 Then
Comision = TxtModalComision.Text.ToDecimal / 100
End If
Dim ObjVentas As New ClsVentas
If ObjVentas.AddComisionesMedicasEspeciales(DdlModalMedico.SelectedValue.ToEntero, DdlModalPS.SelectedValue.ToEntero, DdlModalTipoComision.SelectedValue.ToEntero, Comision, UsuarioActual.CveUsuario) Then
Alert("Comisión agregada correctamente", TipoMensaje.ToastInformacion)
DdlModalPS.SelectedValue = "-1"
DdlModalPS.SelectedValue = ""
DdlModalPS.SelectedText = ""
TxtModalComision.Text = ""
DdlModalPS.Focus()
Else
errorProceso = True
End If
ObjVentas.Dispose()
If Not errorProceso Then
CargaComisionesEspeciales()
'ReiniciaModalComisionesEspeciales()
End If
End Sub
Private Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.DBCampo("SerieFolio") = "" Then
e.Row.CssClass = "SubTotales"
End If
End If
End Sub
End Class