Files
SIG/Ventas/RepComisiones.aspx.vb
rrene 1c14bceea9 -- cambio de GlobalDTSubProyectos
- cambio en GlobalDTUsuarios
2024-08-01 05:46:28 -07:00

264 lines
10 KiB
VB.net

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(UsuarioActual.CveEmpresa)
DdlSubProyecto.DataBind()
InicializaValores()
End If
End Sub
#Region " INICIALIZA VALORES "
Private Sub InicializaValores()
txtFechaI.Text = FirstDayOfMonth(NowADS()).ToShortDateString
txtFechaF.Text = NowADS().LastDayOfMonth.ToShortDateString
TxtAnio.Text = NowADS().Year.ToString()
DdlMes.SelectedValueExist(NowADS().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_" & NowADS().ToShortDateString)
End Sub
#End Region
Protected Sub BtnGuardarPorcentajeComision_Click(sender As Object, e As EventArgs)
Dim RowCierre As DataRow = Nothing
Dim TieneError As Boolean = False
Dim ObjVentas As New ClsVentas
Try
ObjVentas.IniciaTransacSQL()
Dim Mes As Integer = DdlMes.SelectedValue.ToEntero()
Dim Anio As Integer = TxtAnio.Text.ToEntero()
For Each GvRow As GridViewRow In GvDatos.Rows
If GvRow.RowType = DataControlRowType.DataRow Then
If GvRow.DataKey("CveVendedor").ToEntero() > 0 Then
Dim Porcentaje As Decimal = GvRow.DataKey("Comision").ToDecimal() / 100
If ObjVentas.GetCierreComisionVendedor(GvRow.DataKey("CveVendedor").ToEntero(), Mes, Anio, UsuarioActual.CveEmpresa) Then
If ObjVentas.DtResultados.Rows.Count > 0 Then
RowCierre = ObjVentas.DtResultados.Rows(0)
End If
Else
TieneError = True
End If
If RowCierre IsNot Nothing Then
TieneError = Not ObjVentas.UpdateCierreComisionVendedor(GvRow.DataKey("CveVendedor").ToEntero(), Mes, Anio, Porcentaje)
Else
TieneError = Not ObjVentas.AddCierreComisionVendedor(GvRow.DataKey("CveVendedor").ToEntero(), Mes, Anio, Porcentaje)
End If
If TieneError Then
Exit For
End If
End If
RowCierre = Nothing
End If
Next
Catch ex As Exception
TieneError = True
OnError("Ocurrió un error al asginar el porcentaje de la comisión", ex)
End Try
If TieneError Then
ObjVentas.RollBack()
Alert("Ocurrió un error al guardar el porcentaje de comisiones.", TipoMensaje.MsgError)
Else
ObjVentas.Commit()
Alert("El porcentaje de comisiones se guardó correctamente.", TipoMensaje.MsgInformacion)
End If
ObjVentas.Dispose()
CargaDatos()
UPDatos.Update()
UpPorcentajeComisiones.Update()
End Sub
End Class