Option Explicit On Option Strict On Imports Extensiones Imports System.Data Partial Class Ventas_RepComisiones Inherits ClsPaginas #Region "Propiedades" #End Region Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not IsPostBack Then DdlSubProyecto.DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa) DdlSubProyecto.DataBind() InicializaValores() End If End Sub #Region " INICIALIZA VALORES " Private Sub InicializaValores() txtFechaI.Text = FirstDayOfMonth(Now).ToShortDateString txtFechaF.Text = Now.LastDayOfMonth.ToShortDateString TxtAnio.Text = Now.Year.ToString() DdlMes.SelectedValueExist(Now.Month) DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa) DdlVendedor.DataBind() DdlVendedorAjuste.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa) DdlVendedorAjuste.DataBind() DdlVendedorPorcentaje.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa) DdlVendedorPorcentaje.DataBind() End Sub #End Region #Region " CARGA DATOS " Protected Sub BtnConsultar_Click(sender As Object, e As System.EventArgs) Handles BtnConsultar.Click CargaDatos() UPDatos.Update() End Sub Private Sub CargaDatos() Dim ObjComisiones As New ClsEsquemasComisiones() Dim FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim().ToDate, MinFecha) Dim FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim().ToDate, MaxFecha) If ObjComisiones.GetRepComisiones(DdlVendedor.SelectedValue.ToEntero, FechaI, FechaF, DdlSubProyecto.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then GvDatos.DataSource = ObjComisiones.DtResultados If ObjComisiones.DtResultados.SUM("ImporteAjuste") <> 0 Then GvDatos.Columns(5).Visible = True End If Else GvDatos.DataSource = Nothing End If ObjComisiones.Dispose() GvDatos.DataBind() If GvDatos.Rows.Count > 0 Then BtnPagar.Visible = True ImgExcel.Visible = True Else BtnPagar.Visible = False ImgExcel.Visible = False End If End Sub #End Region #Region " GV DATOS " Protected Sub GvDatos_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatos.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then Dim CveVendedorURL = DdlVendedor.SelectedValue.ToEntero If e.Row.DBCampo("CveVendedor") = "" Then e.Row.FCHyperLink("HLVendedor").Text = "Total" e.Row.CssClass = "SubTotales" e.Row.Attributes.Add("style", "background:#CCCCCC !important") Else CveVendedorURL = e.Row.DBCampo("CveVendedor").ToEntero End If e.Row.FCHyperLink("HLVendedor").NavigateUrl = String.Format("/Ventas/RepComisionesDetalle.aspx?CveVendedor={0}&FI={1}&FF={2}&CveSubProyecto={3}", CveVendedorURL, If(txtFechaI.Text.Trim() = "", "-1", txtFechaI.Text.Trim()), If(txtFechaF.Text.Trim() = "", "-1", txtFechaF.Text.Trim()), DdlSubProyecto.SelectedValue.ToEntero) End If End Sub #End Region #Region " PAGAR COMISIONES " Protected Sub BtnPagar_Click(sender As Object, e As EventArgs) If Not GvDatos.Rows.Count > 0 Then Alert("No se encuentra ninguna comision por pagar.", TipoMensaje.MsgAdvertencia) Exit Sub End If Dim ObjComisiones As New ClsEsquemasComisiones ObjComisiones.IniciaTransacSQL() Dim TieneError = False For Each Gvr As GridViewRow In GvDatos.Rows If Gvr.DataKey("CveVendedor").ToString.ToEntero > 0 Then If ObjComisiones.GetComisionesPagadas(Gvr.DataKey("Comision").ToString.ToDouble, Gvr.DataKey("CveVendedor").ToString.ToEntero, Gvr.DataKey("FechaI").ToString.ToDate, Gvr.DataKey("FechaF").ToString.ToDate, UsuarioActual.CveEmpresa) Then For Each Dr As DataRow In ObjComisiones.DtResultados.Rows If Not ObjComisiones.AddComisionesPagadas(Dr("CveVenta").ToString.ToEntero, Dr("CveVendedor").ToString.ToEntero, Dr("ImporteVenta").ToString.ToDouble, Dr("CostoVenta").ToString.ToDouble, Dr("UtilidadVenta").ToString.ToDouble, Dr("TipoComision").ToString.ToEntero, Dr("ComisionPorcentaje").ToString.ToDouble, Dr("ComisionImporte").ToString.ToDouble, Dr("ImporteAjuste").ToString.ToDouble, UsuarioActual.CveUsuario) Then TieneError = True Exit For End If Next If TieneError Then Exit For End If End If End If Next If Not TieneError Then ObjComisiones.Commit() Alert("Las comisiones se registraron correctamente.", TipoMensaje.MsgInformacion) CargaDatos() UPDatos.Update() Else ObjComisiones.RollBack() Alert("Ocurrió un error al registrar las comisiones. Por favor vuelva a intentar.", TipoMensaje.MsgError) End If ObjComisiones.Dispose() End Sub #End Region #Region " AJUSTE " Protected Sub DdlVendedorAjuste_SelectedIndexChanged(sender As Object, e As EventArgs) Dim ObjComisiones As New ClsEsquemasComisiones If ObjComisiones.GetAjusteComisiones(DdlVendedorAjuste.SelectedValue.ToEntero) Then If ObjComisiones.DtResultados.Rows.Count = 1 Then TxtImporteAjuste.Text = ObjComisiones.DtResultados.Rows(0)("Importe").ToString.FormatoNumero UpAjuste.Update() End If Else Alert("Ocurrió un error al obtener el ajuste de comisiones del vendedor. Por favor vuelva a intentar.", TipoMensaje.MsgError) End If ObjComisiones.Dispose() End Sub Protected Sub BtnGuardarAjuste_Click(sender As Object, e As EventArgs) Dim ObjComisiones As New ClsEsquemasComisiones Dim TieneError = False If ObjComisiones.AddUpdateAjusteComisiones(DdlVendedorAjuste.SelectedValue.ToEntero, TxtImporteAjuste.Text.ToDecimal) Then Alert("El ajuste de comisiones se guardo correctamente.", TipoMensaje.MsgInformacion) Else Alert("Ocurrió un error al guardar el ajuste de comisiones. Por favor vuelva a intentar", TipoMensaje.MsgError) TieneError = True End If ObjComisiones.Dispose() If Not TieneError Then DdlVendedorAjuste.SelectedValue = "-1" TxtImporteAjuste.Text = "0" RegistraScript("$('#Modal').modal('hide');") UpAjuste.Update() CargaDatos() UPDatos.Update() End If End Sub #End Region #Region " EXCEL " Protected Sub ImgExcel_Click(sender As Object, e As EventArgs) Handles ImgExcel.Click GvDatos.ExportToExcel("ReporteComisiones_" & Now.ToShortDateString) End Sub #End Region Protected Sub BtnGuardarPorcentajeComision_Click(sender As Object, e As EventArgs) Dim CveVendedor As Integer = DdlVendedorPorcentaje.SelectedValue.ToEntero() Dim Mes As Integer = DdlMes.SelectedValue.ToEntero() Dim Anio As Integer = TxtAnio.Text.ToEntero() Dim Porcentaje As Decimal = TxtPorcentajeComision.Text.ToDecimal() / 100 Dim RowCierre As DataRow = Nothing Dim ObjVentas As New ClsVentas Try If ObjVentas.GetCierreComisionVendedor(CveVendedor, Mes, Anio, UsuarioActual.CveEmpresa) AndAlso ObjVentas.DtResultados.Rows.Count > 0 Then RowCierre = ObjVentas.DtResultados.Rows(0) End If If RowCierre IsNot Nothing Then If ObjVentas.UpdateCierreComisionVendedor(CveVendedor, Mes, Anio, Porcentaje) Then Alert("El porcentaje de comisiones se guardo correctamente.", TipoMensaje.MsgInformacion) Else Alert("Ocurrió un error al guardar el porcentaje de comisiones.", TipoMensaje.MsgError) End If Else If ObjVentas.AddCierreComisionVendedor(CveVendedor, Mes, Anio, Porcentaje) Then Alert("El porcentaje de comisiones se guardo correctamente.", TipoMensaje.MsgInformacion) Else Alert("Ocurrió un error al guardar el porcentaje de comisiones.", TipoMensaje.MsgError) End If End If Catch ex As Exception OnError("Ocurrió un error al asginar el porcentaje de la comisión", ex) End Try ObjVentas.Dispose() UpPorcentajeComisiones.Update() End Sub Protected Sub DdlVendedorPorcentaje_SelectedIndexChanged(sender As Object, e As EventArgs) CargaPorcentajeComisiones() End Sub Protected Sub DdlMes_SelectedIndexChanged(sender As Object, e As EventArgs) CargaPorcentajeComisiones() End Sub Protected Sub CargaPorcentajeComisiones() Dim CveVendedor As Integer = DdlVendedorPorcentaje.SelectedValue.ToEntero() Dim Mes As Integer = DdlMes.SelectedValue.ToEntero() Dim Anio As Integer = TxtAnio.Text.ToEntero() Dim RowCierre As DataRow = Nothing Dim ObjVentas As New ClsVentas If ObjVentas.GetCierreComisionVendedor(CveVendedor, Mes, Anio, UsuarioActual.CveEmpresa) AndAlso ObjVentas.DtResultados.Rows.Count > 0 Then RowCierre = ObjVentas.DtResultados.Rows(0) End If ObjVentas.Dispose() If RowCierre IsNot Nothing Then TxtPorcentajeComision.Text = (RowCierre("PorcentajeComision").ToString().ToDecimal() * 100).FormatoNumero(0) Else TxtPorcentajeComision.Text = "0" End If UpPorcentajeComisiones.Update() End Sub End Class