Files
SIG/Ventas/RepComisionesJAM.aspx.cs
2024-01-20 18:42:54 -07:00

374 lines
20 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
using System.Data;
using Extensiones;
using Microsoft.Reporting.WebForms;
using System.Web.UI;
public partial class Ventas_RepComisionesJAM : ClsPaginas
{
#region PROPIEDADES
private DataTable DtDatos
{
get { return DtDatos = (DataTable)ViewState["DtDatos"]; }
set { ViewState["DtDatos"] = value; }
}
#endregion
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
InicializaValores();
}
}
private void InicializaValores()
{
txtFechaI.Text = String.Format("01/{0}/{1}", NowADS().Month, NowADS().Year);
txtFechaF.Text = String.Format("{0}/{1}/{2}", NowADS().AddMonths(1).FirstDayOfMonth().AddDays(-1).Day, NowADS().Month, NowADS().Year);
if (UsuarioActual.CveUsuario == 1835) // usuario de alejandra alvarez
{
DdlSubProyecto.DataSource = get_GlobalDTSubProyectos(-1, CveEmpresa: UsuarioActual.CveEmpresa);
}
else
{
DdlSubProyecto.DataSource = get_GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1);
}
DdlSubProyecto.Items.Insert(0, new ListItem("Todos", "-1"));
DdlSubProyecto.DataBind();
DdlCliente.setEsWebService(true);
DdlCliente.Attributes.Add("data-metodo", "getcliente");
DdlCliente.SelectedValue = "-1";
DdlCliente.SelectedText = "Todos";
DdlVendedor.DataSource = get_GlobalDTVendedores(UsuarioActual.CveEmpresa);
DdlVendedor.Items.Insert(0, new ListItem("Todos", "-1"));
DdlVendedor.DataBind();
if( UsuarioActual.CveVendedor > 0 && !UsuarioActual.TienePermisoProceso(263))
{
DdlVendedor.SelectedValueExist(UsuarioActual.CveVendedor.ToString());
DdlVendedor.Attributes.Add("disabled", "disabled");
DdlVendedor.Enabled = false;
}
GvDatos.Columns[15].Visible = UsuarioActual.TienePermisoProceso(201);
GvDatos.Columns[21].Visible = UsuarioActual.TienePermisoProceso(311);
GvDatos.Columns[22].Visible = UsuarioActual.TienePermisoProceso(311);
divProforma.Visible = UsuarioActual.TienePermisoProceso(311);
}
private void Consulta()
{
ClsVentas ObjVenta = new ClsVentas();
if (ObjVenta.GetRepComisiones(txtFechaI.Text.ToDate(), txtFechaF.Text.ToDate(), DdlSubProyecto.SelectedValue.ToEntero(), DdlVendedor.SelectedValue.ToEntero(), DdlCliente.SelectedValue.ToEntero(),
UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, DdlTipoSaldo.SelectedValue.ToEntero(),ChkEsquemaNuevo.Checked))
{
GvDatos.DataSource = ObjVenta.DtResultados;
DtDatos = ObjVenta.DtResultados;
}
ObjVenta.Dispose();
GvDatos.DataBind();
UpDatos.Update();
}
protected void BtnConsultar_Click(object sender, EventArgs e)
{
Consulta();
}
protected void GvDatos_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.RowIndex == 0)
{
e.Row.CssClass = "Totales";
//e.Row.Cells[0].Text = "Total";
}
else if (e.Row.DBCampo("CveVendedor").ToEntero() < 1)
{
e.Row.CssClass = "SubTotales";
//e.Row.Cells[0].Text = e.Row.DBCampo("SubProyecto").ToString();
}
else if (e.Row.DBCampo("CveVenta").ToEntero() < 1)
{
e.Row.CssClass = "SubTotales2";
//e.Row.Cells[0].Text = e.Row.DBCampo("Vendedor").ToString();
}
else
{
if (e.Row.DBCampo("Transaccion").ToString() == "Pago" && ChkEsquemaNuevo.Checked)
{
e.Row.FCLinkButton("LnkInfo").Visible = true;
if (!Convert.ToBoolean(e.Row.DataKey("TieneCategoriaValida")) && e.Row.DataKey("Comision").ToDouble() == 0)
{
e.Row.FCLinkButton("LnkInfo").ToolTip = $"No se encuentra dentro de alguna categoria que de comision ni alguno de los productos especiales. La categoria del producto es: {get_GlobalDTGralCategorias(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Categoria", $"CveCategoria = { e.Row.DataKey("CveCategoria").ToString()}")}. % Precio Publico: {e.Row.DataKey("PorcentajePrecioPublico").ToString()}. Dias Pago: {e.Row.DataKey("DiasPago").ToString()}.";
}
else if (Convert.ToBoolean(e.Row.DataKey("TieneCategoriaValida")) && e.Row.DataKey("Comision").ToDouble() > 0)
{
e.Row.FCLinkButton("LnkInfo").ToolTip = $"El producto obtuvo la comision porque se encuentra en la categoria: {get_GlobalDTGralCategorias(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Categoria", $"CveCategoria = {e.Row.DataKey("CveCategoria").ToString()}")} y esta dentro de los rangos de precio publico y dias validos. % Precio Publico: {e.Row.DataKey("PorcentajePrecioPublico").ToString()}. Dias Pago: {e.Row.DataKey("DiasPago").ToString()}.";
}
else if (Convert.ToBoolean(e.Row.DataKey("TieneCategoriaValida")) && e.Row.DataKey("Comision").ToDouble() == 0)
{
e.Row.FCLinkButton("LnkInfo").ToolTip = $"El producto se encuentra en la categoria: {get_GlobalDTGralCategorias(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Categoria", $"CveCategoria = {e.Row.DataKey("CveCategoria").ToString()}")} que da comision, pero no se encuentra dentro de los rangos de precio publico y dias validos. % Precio Publico: {e.Row.DataKey("PorcentajePrecioPublico").ToString()}. Dias Pago: {e.Row.DataKey("DiasPago").ToString()}.";
}
else if (e.Row.DataKey("Comision").ToDouble() > 0)
{
e.Row.FCLinkButton("LnkInfo").ToolTip = $"El producto obtuvo comision porque esta dentro de los de las comisiones especiales. La categoria del producto es: {get_GlobalDTGralCategorias(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Categoria", $"CveCategoria = { e.Row.DataKey("CveCategoria").ToString()}")}. El producto es: <b>{e.Row.DataKey("CodigoPS").ToString()}</b>. % Precio Publico: {e.Row.DataKey("PorcentajePrecioPublico").ToString()}. Dias Pago: {e.Row.DataKey("DiasPago").ToString()}.";
}
}
else
{
e.Row.FCLinkButton("LnkInfo").Visible = false;
}
e.Row.Cells[23].ToolTip = string.Format("Utilidad:{0}", e.Row.DBCampo("UtilidadDetalle").FormatoNumero());
//e.Row.FCLabel("LblCostoDolares").Visible = false;
//if (e.Row.DBCampo("CveMoneda").ToEntero() != 1)
//{
// e.Row.Cells[15].Text = $"{e.Row.DBCampo("Costo").FormatoNumero()} <br> {e.Row.DBCampo("CostoDolares").FormatoNumero()}";
// //e.Row.FCLabel("LblCostoDolares").Visible = false;
//}
//else
//{
// e.Row.Cells[13].Text = "";
//}
}
}
}
public override void VerifyRenderingInServerForm(Control control)
{
//base.VerifyRenderingInServerForm(control);
}
protected void LnkExcel_Click(object sender, EventArgs e)
{
GvDatos.ExportToExcelG("Reporte de Comisiones", "Reporte de Comisiones",UsuarioActual);
//GenerarPDFCrystal("EXCEL");
}
public void MergeRows(GridView gridView)
{
for (int rowIndex = gridView.Rows.Count - 2; rowIndex > 0; rowIndex--)
{
GridViewRow row = gridView.Rows[rowIndex];
GridViewRow previousRow = gridView.Rows[rowIndex + 1];
if (row.DataKey("CveVendedor").ToString().ToEntero() > 0 && row.DataKey("CveSubProyecto").ToString().ToEntero() > 0)
{
if (row.DataKey("CveCliente").ToString().ToEntero() == previousRow.DataKey("CveCliente").ToString().ToEntero())
{
row.Cells[0].RowSpan = previousRow.Cells[0].RowSpan < 2 ? 2 :
previousRow.Cells[0].RowSpan + 1;
previousRow.Cells[0].Visible = false;
DtDatos.Rows[rowIndex]["Nombre"] = "";
}
if (row.DataKey("CveVenta").ToString().ToEntero() == previousRow.DataKey("CveVenta").ToString().ToEntero())
{
row.Cells[3].RowSpan = previousRow.Cells[3].RowSpan < 2 ? 2 :
previousRow.Cells[3].RowSpan + 1;
previousRow.Cells[3].Visible = false;
DtDatos.Rows[rowIndex]["SerieFolio"] = "";
row.Cells[4].RowSpan = previousRow.Cells[4].RowSpan < 2 ? 2 :
previousRow.Cells[4].RowSpan + 1;
previousRow.Cells[4].Visible = false;
DtDatos.Rows[rowIndex]["Saldo"] = DBNull.Value;
row.Cells[5].RowSpan = previousRow.Cells[5].RowSpan < 2 ? 2 :
previousRow.Cells[5].RowSpan + 1;
previousRow.Cells[5].Visible = false;
DtDatos.Rows[rowIndex]["FechaDocumento"] = DBNull.Value;
row.Cells[10].RowSpan = previousRow.Cells[10].RowSpan < 2 ? 2 :
previousRow.Cells[10].RowSpan + 1;
previousRow.Cells[10].Visible = false;
DtDatos.Rows[rowIndex]["SubTotal"] = DBNull.Value;
//row.Cells[11].RowSpan = previousRow.Cells[11].RowSpan < 2 ? 2 :
//previousRow.Cells[11].RowSpan + 1;
//previousRow.Cells[11].Visible = false;
//DtDatos.Rows[rowIndex]["IVA"] = DBNull.Value;
}
if (row.DataKey("Transaccion").ToString() == "Pago")
{
if (row.DataKey("CveIE").ToString().ToEntero() == previousRow.DataKey("CveIE").ToString().ToEntero() && row.DataKey("Transaccion").ToString() == previousRow.DataKey("Transaccion").ToString())
{
row.Cells[1].RowSpan = previousRow.Cells[1].RowSpan < 2 ? 2 :
previousRow.Cells[1].RowSpan + 1;
previousRow.Cells[1].Visible = false;
DtDatos.Rows[rowIndex]["Transaccion"] = "";
row.Cells[2].RowSpan = previousRow.Cells[2].RowSpan < 2 ? 2 :
previousRow.Cells[2].RowSpan + 1;
previousRow.Cells[2].Visible = false;
DtDatos.Rows[rowIndex]["FolioPago"] = "";
}
if (row.DataKey("CveIE").ToString().ToEntero() == previousRow.DataKey("CveIE").ToString().ToEntero() && row.DataKey("CveVenta").ToString().ToEntero() == previousRow.DataKey("CveVenta").ToString().ToEntero())
{
row.Cells[6].RowSpan = previousRow.Cells[6].RowSpan < 2 ? 2 :
previousRow.Cells[6].RowSpan + 1;
previousRow.Cells[6].Visible = false;
DtDatos.Rows[rowIndex]["FechaPago"] = DBNull.Value;
row.Cells[7].RowSpan = previousRow.Cells[7].RowSpan < 2 ? 2 :
previousRow.Cells[7].RowSpan + 1;
previousRow.Cells[7].Visible = false;
DtDatos.Rows[rowIndex]["DiasPago"] = DBNull.Value;
row.Cells[11].RowSpan = previousRow.Cells[11].RowSpan < 2 ? 2 :
previousRow.Cells[11].RowSpan + 1;
previousRow.Cells[11].Visible = false;
DtDatos.Rows[rowIndex]["SubTotalPago"] = DBNull.Value;
row.Cells[10].RowSpan = previousRow.Cells[10].RowSpan < 2 ? 2 :
previousRow.Cells[10].RowSpan + 1;
previousRow.Cells[10].Visible = false;
DtDatos.Rows[rowIndex]["SubTotal"] = DBNull.Value;
row.Cells[9].RowSpan = previousRow.Cells[9].RowSpan < 2 ? 2 :
previousRow.Cells[9].RowSpan + 1;
previousRow.Cells[9].Visible = false;
DtDatos.Rows[rowIndex]["TotDias"] = DBNull.Value;
}
}
else if (row.DataKey("Transaccion").ToString() == "Nota Crédito" || row.DataKey("Transaccion").ToString() == "Devolución")
{
row.Cells[2].Text = "";
if (row.DataKey("CveVenta").ToString().ToEntero() == previousRow.DataKey("CveVenta").ToString().ToEntero() && row.DataKey("Transaccion").ToString() == previousRow.DataKey("Transaccion").ToString())
{
row.Cells[1].RowSpan = previousRow.Cells[1].RowSpan < 2 ? 2 :
previousRow.Cells[1].RowSpan + 1;
previousRow.Cells[1].Visible = false;
DtDatos.Rows[rowIndex]["Transaccion"] = "";
row.Cells[2].RowSpan = previousRow.Cells[2].RowSpan < 2 ? 2 :
previousRow.Cells[2].RowSpan + 1;
previousRow.Cells[2].Visible = false;
DtDatos.Rows[rowIndex]["FolioPago"] = "";
row.Cells[6].RowSpan = previousRow.Cells[6].RowSpan < 2 ? 2 :
previousRow.Cells[6].RowSpan + 1;
previousRow.Cells[6].Visible = false;
DtDatos.Rows[rowIndex]["FechaPago"] = DBNull.Value;
row.Cells[7].RowSpan = previousRow.Cells[7].RowSpan < 2 ? 2 :
previousRow.Cells[7].RowSpan + 1;
previousRow.Cells[7].Visible = false;
DtDatos.Rows[rowIndex]["DiasPago"] = DBNull.Value;
row.Cells[9].RowSpan = previousRow.Cells[9].RowSpan < 2 ? 2 :
previousRow.Cells[9].RowSpan + 1;
previousRow.Cells[9].Visible = false;
DtDatos.Rows[rowIndex]["TotDias"] = DBNull.Value;
row.Cells[10].RowSpan = previousRow.Cells[10].RowSpan < 2 ? 2 :
previousRow.Cells[10].RowSpan + 1;
previousRow.Cells[10].Visible = false;
DtDatos.Rows[rowIndex]["SubTotal"] = DBNull.Value;
row.Cells[11].RowSpan = previousRow.Cells[11].RowSpan < 2 ? 2 :
previousRow.Cells[11].RowSpan + 1;
previousRow.Cells[11].Visible = false;
DtDatos.Rows[rowIndex]["SubTotalPago"] = DBNull.Value;
}
}
}
}
}
protected void GvDatos_PreRender(object sender, EventArgs e)
{
MergeRows(GvDatos);
}
private void GenerarPDFCrystal(string Formato = "PDF")
{
System.IO.FileInfo Imagen = new System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png");
var logouri = string.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa);
var Sucursal = DdlSubProyecto.SelectedValue == "-1" ? "" : String.Format("Cliente: {0} ", DdlSubProyecto.SelectedItem.Text);
var Cliente = DdlCliente.SelectedValue == "-1" ? "" : String.Format("Cliente: {0} ", DdlCliente.SelectedText);
var Vendedor = DdlVendedor.SelectedValue == "-1" ? "" : String.Format("Vendedor: {0} ", DdlVendedor.SelectedItem.Text);
var TipoSaldo = DdlTipoSaldo.SelectedValue == "-1" ? "" : String.Format("Tipo Saldo: {0} ", DdlTipoSaldo.SelectedItem.Text);
string FechaIn = String.Format("Fecha Inicio: {0} ", txtFechaI.Text);
string FechaFn = String.Format("Fecha Fin: {0} ", txtFechaF.Text);
var lista = new List<CrystalParametro>();
lista.Add(new CrystalParametro("Empresa", UsuarioActual.Empresa.Empresa));
lista.Add(new CrystalParametro("Filtros", String.Format("{0}{1}{2}{3}{4}{5}", Sucursal, Cliente, Vendedor, FechaIn, FechaFn, TipoSaldo)));
lista.Add(new CrystalParametro("UsuarioImprimio", UsuarioActual.Nombre));
lista.Add(new CrystalParametro("FechaImpresion", NowADS().ToString()));
string PermisoCosto = "";
if (UsuarioActual.TienePermisoProceso(201)) { PermisoCosto = "1";} else { PermisoCosto = "0"; }
lista.Add(new CrystalParametro("PermisoCosto", PermisoCosto));
if (Imagen.Exists)
{
lista.Add(new CrystalParametro("ImagenPath", logouri));
}
else
{
lista.Add(new CrystalParametro("ImagenPath", ""));
}
ImprimirbytesPDF(ImprimirPDFCrystal(Server.MapPath("~/Empresas/119/Formatos/RepComisionesJAM.rpt"), DtDatos, lista, "RepComisionesJAM", Formato), "RepComisionesJAM", Formato);
}
protected void LnkInfo_Click(object sender, EventArgs e)
{
GridViewRow gvRow = (GridViewRow)(((LinkButton)sender).NamingContainer);
if (!Convert.ToBoolean(gvRow.DataKey("TieneCategoriaValida")) && gvRow.DataKey("Comision").ToDouble() == 0)
{
LblInfo.Text = $"No se encuentra dentro de alguna categoria que de comision ni alguno de los productos especiales.<br/> La categoria del producto es: <b>{get_GlobalDTGralCategorias(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Categoria", $"CveCategoria = { gvRow.DataKey("CveCategoria").ToString()}")}</b>. <br/> % Precio Publico: <b>{gvRow.DataKey("PorcentajePrecioPublico").ToString()}</b> <br/> Dias Pago: <b>{gvRow.DataKey("DiasPago").ToString()}</b>";
}
else if (Convert.ToBoolean(gvRow.DataKey("TieneCategoriaValida")) && gvRow.DataKey("Comision").ToDouble() > 0)
{
LblInfo.Text = $"El producto obtuvo la comision porque se encuentra en la categoria: <b>{get_GlobalDTGralCategorias(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Categoria", $"CveCategoria = {gvRow.DataKey("CveCategoria").ToString()}")}</b> y esta dentro de los rangos de precio publico y dias validos. <br/> % Precio Publico: <b>{gvRow.DataKey("PorcentajePrecioPublico").ToString()}</b> <br/> Dias Pago: <b>{gvRow.DataKey("DiasPago").ToString()}</b>";
}
else if (Convert.ToBoolean(gvRow.DataKey("TieneCategoriaValida")) && gvRow.DataKey("Comision").ToDouble() == 0)
{
LblInfo.Text = $"El producto se encuentra en la categoria: <b>{get_GlobalDTGralCategorias(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Categoria", $"CveCategoria = {gvRow.DataKey("CveCategoria").ToString()}")}</b> que da comision, pero no se encuentra dentro de los rangos de precio publico y dias validos. <br/> % Precio Publico: <b>{gvRow.DataKey("PorcentajePrecioPublico").ToString()}</b> <br/> Dias Pago: <b>{gvRow.DataKey("DiasPago").ToString()}</b>";
}
else if (gvRow.DataKey("Comision").ToDouble() > 0)
{
LblInfo.Text = $"El producto obtuvo comision porque esta dentro de los de las comisiones especiales. <br/>La categoria del producto es: <b>{get_GlobalDTGralCategorias(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Categoria", $"CveCategoria = { gvRow.DataKey("CveCategoria").ToString()}")}</b>.<br/> El producto es: <b>{gvRow.DataKey("CodigoPS").ToString()}</b>. <br/> % Precio Publico: <b>{gvRow.DataKey("PorcentajePrecioPublico").ToString()}</b> <br/> Dias Pago: <b>{gvRow.DataKey("DiasPago").ToString()}</b>";
}
RegistraScript("$('#DModalInfo').modal();");
UpModalInformacion.Update();
}
}