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 = NowADS().FirstDayOfMonth.ToString("dd/MM/yyyy") txtFechaF.Text = NowADS().AddDays(2).ToShortDateString CargaCombos() CargaDatos() End If End Sub Private Sub CargaCombos() If UsuarioActual.CveVendedor = 0 Then GvDatos.Columns(15).Visible = True 'columna de comisiones de gerente '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 in (1,4)") 'vendedores y vendedores de piso 'End If DdlVendedor.DataBind() DdlVendedor.Items.Insert(0, New ListItem("Todos", "-1")) If UsuarioActual.CveVendedor > 0 Then DdlVendedor.SelectedValueExist(UsuarioActual.CveVendedor) DdlVendedor.Enabled = False GvDatos.Columns(15).Visible = False 'gerente End If 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")) If UsuarioActual.TienePermisoProceso(376) Then DdlUsuarioAtendio.Enabled = False DdlUsuarioAtendio.SelectedValueExist(UsuarioActual.CveUsuario) GvDatos.Columns(15).Visible = False 'gerente GvDatos.Columns(16).Visible = False 'ed.medica GvDatos.Columns(17).Visible = False 'fecha pago End If 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() 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 e.Row.Cells(4).Attributes.Add("data-order", e.Row.DBCampo("FechaCirugia").ToDate.ToString("yyyyMMddHHmmss")) End If End Sub End Class