Commit inicial Ventas Productivo

This commit is contained in:
JORGE LUIS CAUDILLO ESPARZA
2019-08-14 16:40:54 -07:00
commit c35cf91883
13328 changed files with 3711549 additions and 0 deletions

View File

@@ -0,0 +1,331 @@
Option Explicit On
Option Strict On
Imports System.Data
Imports System.Drawing
Imports Extensiones
Imports Microsoft.Reporting.WebForms
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Partial Class Ventas_RepVentasUtilidad
Inherits ClsPaginas
#Region "P R O P I E D A D E S "
Private Property DtVentas As DataTable
Get
Return DirectCast(ViewState("DtVentas"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtVentas") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
DtVentas = Nothing
CargaCombos()
CargaDatos()
End If
End Sub
#Region " INICIALIZA VALORES "
Private Sub CargaCombos()
txtFechaI.Text = Now.FirstDayOfMonth.ToShortDateString
txtFechaF.Text = Now.LastDayOfMonth.ToShortDateString
'Carga Clientes
DdlClientes.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa)
DdlClientes.DataBind()
'CargaSubProyectos
DdlSubProyecto.DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa)
DdlSubProyecto.DataBind()
'Carga Vendedor
DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa)
DdlVendedor.DataBind()
If UsuarioActual.CveVendedor > 0 AndAlso Not UsuarioActual.TienePermisoProceso(263) Then
DdlVendedor.SelectedValuesIfExistM(UsuarioActual.CveVendedor.ToString())
DdlVendedor.Attributes.Add("disabled", "disabled")
DdlVendedor.Enabled = False
End If
'Cargo Clasificaciones
DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa)
DdlClasificacion.DataBind()
'Carga Productos
DdlPS.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1")
If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then
DdlPS.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue)
DdlPS.SelectedText = "Todos"
DdlPS.SelectedValue = "-1"
Else
DdlPS.ddl.Items.Clear()
DdlPS.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa)
DdlPS.ddl.DataBind()
DdlPS.ddl.Items.Insert(0, New ListItem("Todos", "-1"))
End If
Dim CveSubProyecto = If(Request("CveSubProyecto") IsNot Nothing, Request("CveSubProyecto").ToString, "-1").ToString
Dim CveVendedor = If(Request("CveVendedor") IsNot Nothing AndAlso Request("CveVendedor") <> "", Request("CveVendedor"), "-1").ToString
Dim CveCliente = If(Request("CveCliente") IsNot Nothing AndAlso Request("CveCliente") <> "", Request("CveCliente"), "-1").ToString
Dim CveGpo = If(Request("CveGpo") IsNot Nothing AndAlso Request("CveGpo") <> "", Request("CveGpo"), "-1").ToString
Dim Gpo = If(Request("Gpo") IsNot Nothing AndAlso Request("Gpo") <> "", Request("Gpo"), "-1").ToString
Dim FechaI = If(Request("FechaI") IsNot Nothing, Request("FechaI").ToString, "-1").ToString
Dim FechaF = If(Request("FechaF") IsNot Nothing, Request("FechaF").ToString, "-1").ToString
Dim CveClasificacion = If(Request("CveClasificacion") IsNot Nothing AndAlso Request("CveClasificacion") <> "", Request("CveClasificacion"), "-1").ToString
Dim CvePS = If(Request("CvePS") IsNot Nothing AndAlso Request("CvePS") <> "", Request("CvePS"), "-1").ToString
DdlSubProyecto.SelectedValuesIfExistM(CveSubProyecto)
DdlVendedor.SelectedValuesIfExistM(CveVendedor)
DdlClientes.SelectedValueExist(CveCliente)
DdlClasificacion.SelectedValueExist(CveClasificacion)
DdlPS.SelectedValue = CvePS
If CvePS.ToEntero > 0 AndAlso GlobalDTPS(UsuarioActual.CveEmpresa, CvePS.ToEntero).Rows.Count > 0 Then
DdlPS.SelectedText = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS.ToEntero).Rows(0)("PSCodigo").ToString
Else
DdlPS.SelectedText = "Todos"
End If
txtFechaI.Text = FechaI
txtFechaF.Text = FechaF
Select Case Gpo.ToEntero
Case 1
txtFechaF.Text = $"31/12/{CveGpo}"
Case 2
Dim Mes = CveGpo.Substring(5, 2)
Dim DiaFinal = ""
If Mes = "02" Then DiaFinal = "28" Else If Mes.Contiene("01", "03", "05", "07", "08", "10", "12") Then DiaFinal = "31" Else DiaFinal = "30"
txtFechaI.Text = $"01/{CveGpo.Substring(5, 2)}/{CveGpo.Substring(0, 4)}"
If txtFechaI.Text.ToDate.FirstDayOfMonth = FechaI.ToDate.FirstDayOfMonth Then
txtFechaI.Text = FechaI.ToDate.ToShortDateString
End If
txtFechaF.Text = $"{DiaFinal}/{CveGpo.Substring(5, 2)}/{CveGpo.Substring(0, 4)}"
Case 3
txtFechaI.Text = CveGpo
txtFechaF.Text = CveGpo
End Select
End Sub
#End Region
#Region " CARGA DATOS "
Protected Sub BtnConsultar_Click(sender As Object, e As System.EventArgs) Handles BtnConsultar.Click
CargaDatos()
UPDatos.Update()
UpIndicador.Update()
End Sub
Private Sub CargaDatos()
Dim ObjVentas As New ClsVentas()
Dim FechaI As Date = txtFechaI.Text.ToDate
Dim FechaF As Date = txtFechaF.Text.ToDate
If txtFechaI.Text = "" Then FechaI = MinFecha
If txtFechaF.Text = "" Then FechaF = MaxFecha
Dim Sucursales As String = IIf(DdlSubProyecto.GetSelectedValuesM = "", "-1", DdlSubProyecto.GetSelectedValuesM).ToString
Dim Vendedores As String = IIf(DdlVendedor.GetSelectedValuesM = "", "-1", DdlVendedor.GetSelectedValuesM).ToString
If ObjVentas.GetReporteVentasUtilidad(Vendedores, DdlClientes.SelectedValue.ToEntero, Sucursales, FechaI, FechaF, UsuarioActual.CveEmpresa, DdlPS.SelectedValue.ToEntero, DdlClasificacion.SelectedValue.ToEntero) Then
DtVentas = ObjVentas.DtResultados
GvDatos.DataSource = ObjVentas.DtResultados
GvDatos.DataBind()
ObjVentas.Dispose()
End If
Dim Neto As Double = ObjVentas.Neto
If ObjVentas.Neto >= 0 Then
LblNombreNeto.Text = "Utilidad"
DivClaseNeto.Attributes.Add("class", "dashboard-stat dashboard-stat-v2 green")
LblNetoIndicador.Attributes.Add("data-original-title", "Utilidad")
LblNeto.Text = ObjVentas.Neto.ToString("N2")
LblPorNeto.Text = ObjVentas.PorNeto.ToString("N2")
Else
If ObjVentas.Neto < 0 Then
Neto = (ObjVentas.Neto * (-1))
End If
LblNombreNeto.Text = "Pérdida"
DivClaseNeto.Attributes.Add("class", "dashboard-stat dashboard-stat-v2 red")
LblNetoIndicador.Attributes.Add("data-original-title", "Pérdida")
LblNeto.Text = Neto.ToString("N2")
LblPorNeto.Text = ObjVentas.PorNeto.ToString("N2")
End If
End Sub
Protected Sub GvDatos_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatos.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.RowIndex = 0 Then
e.Row.Cells(0).Text = "Total General"
e.Row.BackColor = ColorTranslator.FromHtml("#95A5A6")
End If
If Not e.Row.RowIndex = 0 AndAlso e.Row.DBCampo("CveVenta") <> "" Then
e.Row.Cells(0).BackColor = ColorTranslator.FromHtml("#e9e9e9")
e.Row.Cells(1).BackColor = ColorTranslator.FromHtml("#e9e9e9")
e.Row.Cells(2).BackColor = ColorTranslator.FromHtml("#e9e9e9")
e.Row.Cells(3).BackColor = ColorTranslator.FromHtml("#e9e9e9")
e.Row.Cells(4).BackColor = ColorTranslator.FromHtml("#f1f1f1")
e.Row.Cells(5).BackColor = ColorTranslator.FromHtml("#f1f1f1")
e.Row.Cells(6).BackColor = ColorTranslator.FromHtml("#f1f1f1")
e.Row.Cells(7).BackColor = ColorTranslator.FromHtml("#f1f1f1")
e.Row.Cells(4).BackColor = ColorTranslator.FromHtml("#fafafa")
e.Row.Cells(5).BackColor = ColorTranslator.FromHtml("#fafafa")
e.Row.Cells(6).BackColor = ColorTranslator.FromHtml("#fafafa")
e.Row.Cells(7).BackColor = ColorTranslator.FromHtml("#fafafa")
End If
If e.Row.DBCampo("CveMovimiento") = "" Then
e.Row.Cells(3).Text = ""
End If
If e.Row.DBCampo("CveVenta") = "" Then
e.Row.CssClass = "Totales"
End If
If e.Row.DBCampo("CveVenta") = "" Then
e.Row.Cells(7).Text = ""
End If
Dim Liga As String = String.Format("/Ventas/RepVentasUtilidadDetalle.aspx?CveVenta={0}&CveVendedor={1}&FechaI={2:d}&FechaF={3:d}&CveCliente={4}&Orden={5}&CveSubProyecto={6}&CvePS={7}&CveClasificacion={8}",
e.Row.DBCampo("CveVenta"), e.Row.DBCampo("CveVendedor"), e.Row.DBCampo("FechaI").ToDate, e.Row.DBCampo("FechaF").ToDate, e.Row.DBCampo("CveCliente"), e.Row.DBCampo("Orden"), e.Row.DBCampo("CveSubProyecto"), e.Row.DBCampo("CvePS"), e.Row.DBCampo("CveClasificacion"))
e.Row.FCHyperLink("HLCosto").NavigateUrl = Liga
e.Row.FCHyperLink("HlGanancia").NavigateUrl = Liga
e.Row.FCHyperLink("HlPorGanancia").NavigateUrl = Liga
e.Row.FCHyperLink("HlPerdida").NavigateUrl = Liga
e.Row.FCHyperLink("HlPorPerdida").NavigateUrl = Liga
If e.Row.DBCampo("Perdida").ToDouble > 0 Then
e.Row.FCHyperLink("HlPerdida").ForeColor = Color.DarkRed
e.Row.FCHyperLink("HlPorPerdida").ForeColor = Color.DarkRed
End If
End If
End Sub
Private Sub OrdenaDatos()
If (GvDatos.Rows.Count > 0) Then
GvDatos.UseAccessibleHeader = True
GvDatos.HeaderRow.TableSection = TableRowSection.TableHeader
RegistraScript("OrdenarGV();")
End If
End Sub
Protected Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As EventArgs)
If DdlPS.UsaWebService Then
DdlPS.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue)
DdlPS.SelectedText = "Todos"
DdlPS.SelectedValue = "-1"
Else
DdlPS.ddl.Items.Clear()
DdlPS.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, DdlClasificacion.SelectedValue.ToEntero())
DdlPS.ddl.DataBind()
DdlPS.ddl.Items.Insert(0, New ListItem("Todos", "-1"))
End If
End Sub
#End Region
#Region " EXPORTAR EXCEL - PDF "
Protected Sub ImgExcel_Click(sender As Object, e As System.EventArgs) Handles ImgExcel.Click
GenerarPDFCrystal("EXCEL")
End Sub
Private Sub ImgImprimir_Click(sender As Object, e As EventArgs) Handles ImgImprimir.Click
'GenerarPDF()
GenerarPDFCrystal()
End Sub
Private Sub GenerarPDF(Optional Formato As String = "PDF")
Dim ObjVentas As New ClsVentas()
Dim FechaI As Date = txtFechaI.Text.ToDate
Dim FechaF As Date = txtFechaF.Text.ToDate
If txtFechaI.Text = "" Then FechaI = MinFecha
If txtFechaF.Text = "" Then FechaF = MaxFecha
Dim Cliente = If(DdlClientes.SelectedValue = "", "", $"&emsp;<b>Cliente:</b> {DdlClientes.SelectedItem.Text}")
Dim Sucursal = If(DdlSubProyecto.GetSelectedText = "", "", $"&emsp;<b>Sucursal:</b> {DdlSubProyecto.GetSelectedText}")
Dim Vendedor = If(DdlVendedor.GetSelectedText = "", "", $"&emsp;<b>Vendedor:</b> {DdlVendedor.GetSelectedText}")
Dim PS = If(DdlPS.SelectedValue = "-1", "", $"&emsp;<b>P.S.:</b> {DdlPS.SelectedText}")
Dim Clasificacion = If(DdlClasificacion.SelectedValue = "-1", "", $"&emsp;<b>Clasificacion:</b> {DdlClasificacion.SelectedItem.Text}")
' Dim Grupo = DdlGrupo.SelectedItem.Text
Dim FechaIn As String = $"&emsp;<b>Fecha Inicio:</b> {txtFechaI.Text}"
Dim FechaFn As String = $"&emsp;<b>Fecha Fin:</b> {txtFechaF.Text}"
If txtFechaI.Text = "" Then FechaIn = ""
If txtFechaF.Text = "" Then FechaFn = ""
'Dim Registro = If(DdlUsuario.SelectedValue = "-1", "", $"&emsp;<b>Registró:</b> {DdlUsuario.SelectedItem.Text}")
' Dim Responsable = If(DdlResponsable.SelectedValue = "-1", "", $"&emsp;<b>Responsable:</b> {DdlResponsable.SelectedItem.Text}")
Dim Sucursales As String = IIf(DdlSubProyecto.GetSelectedValuesM = "", "-1", DdlSubProyecto.GetSelectedValuesM).ToString
Dim Vendedores As String = IIf(DdlVendedor.GetSelectedValuesM = "", "-1", DdlVendedor.GetSelectedValuesM).ToString
If ObjVentas.GetReporteVentasUtilidad(Vendedores, DdlClientes.SelectedValue.ToEntero, Sucursales, FechaI, FechaF, UsuarioActual.CveEmpresa, DdlPS.SelectedValue.ToEntero, DdlClasificacion.SelectedValue.ToEntero) Then
Dim FechaInicio As String = txtFechaI.Text
Dim FechaFin As String = txtFechaF.Text
If txtFechaI.Text = "" Then FechaInicio = "-1"
If txtFechaF.Text = "" Then FechaFin = "-1"
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
Dim dt As DataTable = ObjVentas.DtResultados
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("FechaInicio", FechaInicio))
params.Add(New ReportParameter("FechaFin", FechaFin))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString))
params.Add(New ReportParameter("AgrupadoPor", $"{Cliente}{Sucursal}{Vendedor}{PS}{Clasificacion}{FechaIn}{FechaFn}"))
params.Add(New ReportParameter("Neto", LblNeto.Text))
params.Add(New ReportParameter("PorNeto", LblPorNeto.Text + " %"))
params.Add(New ReportParameter("UtilidadPerdida", LblNombreNeto.Text))
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
ImprimirPDF("Empresas/Grales/Formatos/RepVentasUtilidad.rdlc", dt, params, "RepVentasUtilidad", Formato)
Else
Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia)
End If
End Sub
Private Sub GenerarPDFCrystal(Optional Formato As String = "PDF")
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
Dim Sucursal = If(DdlSubProyecto.GetSelectedText = "", "", $"&emsp;<b>Sucursal:</b> {DdlSubProyecto.GetSelectedText}")
Dim FechaIn As String = $"&emsp;<b>Fecha Inicio:</b> {txtFechaI.Text}"
Dim FechaFn As String = $"&emsp;<b>Fecha Fin:</b> {txtFechaF.Text}"
Dim Cliente = If(DdlClientes.SelectedValue = "-1", "", $"&emsp;<b>Cliente:</b> {DdlClientes.SelectedItem.Text}")
Dim Vendedor = If(DdlVendedor.GetSelectedText = "", "", $"&emsp;<b>Vendedor:</b> {DdlVendedor.GetSelectedText}")
Dim PS = If(DdlPS.SelectedValue = "-1", "", $"&emsp;<b>P.S.:</b> {DdlPS.SelectedText}")
Dim Clasificacion = If(DdlClasificacion.SelectedValue = "-1", "", $"&emsp;<b>Clasificacion:</b> {DdlClasificacion.SelectedItem.Text}")
Dim lista = New List(Of CrystalParametro)
lista.Add(New CrystalParametro("Empresa", UsuarioActual.Empresa.Empresa))
lista.Add(New CrystalParametro("AgrupadoPor", $"{Sucursal}{FechaIn}{FechaFn}{Cliente}{Vendedor}{PS}{Clasificacion}"))
lista.Add(New CrystalParametro("UtilidadPerdida", LblNombreNeto.Text))
lista.Add(New CrystalParametro("Neto", LblNeto.Text))
lista.Add(New CrystalParametro("PorNeto", LblPorNeto.Text + " %"))
lista.Add(New CrystalParametro("UsuarioImprimio", UsuarioActual.Usuario))
If Imagen.Exists Then
lista.Add(New CrystalParametro("ImagenPath", logouri))
Else
lista.Add(New CrystalParametro("ImagenPath", ""))
End If
ImprimirbytesPDF(ImprimirPDFCrystal(Server.MapPath("~/Empresas/Grales/Formatos/RepVentaUtilidad.rpt"), DtVentas, lista, "RepVentasUtilidades", Formato), "RepVentasUtilidades", Formato)
End Sub
#End Region
End Class