Esempio n. 1
0
        private void butAgregar_Click(object sender, System.EventArgs e)
        {
            //definir logica para agregar un nuevo concepto de comision para la unidad de venta seleccionada y
            //el vendedor seleccionado. tener en cuenta que solo se puede agregar un nuevo concepto para mes
            //de inicio y de fin distinto a los que ya están agregados, y que tampoco se crucen los periodos.
            DsComisionesVendedorUVenta ds = (DsComisionesVendedorUVenta)Session["dsComisionesVendedorUVenta"];

            DsComisionesVendedorUVenta.DatosRow dr = ds.Datos.NewDatosRow();

            dr.VendedorID    = Utiles.Validaciones.obtieneEntero(this.txtVendedorID.Text);
            dr.UnidadVentaID = Utiles.Validaciones.obtieneEntero(this.txtUVentaID.Text);

            dr.ConceptoComisionEntidadID = 0;
            dr.ConceptoComisionID        = 0;
            dr.BaseCalculoID             = 0;
            dr.ComisionImporteFijo       = 0;
            dr.ComisionPorcentaje        = 0;
            dr.EntidadComisionID         = 0;
            dr.EstadoComisionID          = 1;
            dr.FechaAlta   = DateTime.Now;
            dr.MesDesde    = 0;
            dr.MesHasta    = 0;
            dr.TipoImporte = "ImporteFijo";
            dr.ComisionVendedorUVentaID = 0;

            ds.Datos.AddDatosRow(dr);
            Session["dsComisionesVendedorUVenta"] = ds;

            int iNewItemIndex = this.dtgComisiones.Items.Count;

            this.dtgComisiones.DataSource    = ds;
            this.dtgComisiones.EditItemIndex = iNewItemIndex;
            this.dtgComisiones.DataBind();
        }
Esempio n. 2
0
        private void BindGrilla()
        {
            SisPackController.AdministrarGrillas.Configurar(this.dtgComisiones, "ComisionVendedorUVentaID", this.CantidadOpciones);
            this.dtgComisiones.AllowPaging = false;

            if (Session["dsComisionesVendedorUVenta"] == null)
            {
                IComisionVendedorUVenta comisionVendedorUVenta = ComisionVendedorUVentaFactory.GetComisionVendedorUVenta();
                comisionVendedorUVenta.VendedorID    = Utiles.Validaciones.obtieneEntero(this.txtVendedorID.Text);
                comisionVendedorUVenta.UnidadVentaID = Utiles.Validaciones.obtieneEntero(this.txtUVentaID.Text);
                //comisionVendedorUVenta.Consultar();
                this.dsComisionesVendedorUVenta = comisionVendedorUVenta.GetComisionesVendedorUVentaDataSet();

                foreach (DsComisionesVendedorUVenta.DatosRow dr in this.dsComisionesVendedorUVenta.Datos)
                {
                    dr.TipoImporte = dr.IsComisionPorcentajeNull() ? "ImporteFijo" : "Porcentaje";
                }
            }
            else
            {
                this.dsComisionesVendedorUVenta = (DsComisionesVendedorUVenta)Session["dsComisionesVendedorUVenta"];
                if (this.dtgComisiones.EditItemIndex != -1)
                {
                    DataGridItem item = this.dtgComisiones.Items[this.dtgComisiones.EditItemIndex];
                    DsComisionesVendedorUVenta.DatosRow dr = (DsComisionesVendedorUVenta.DatosRow) this.dsComisionesVendedorUVenta.Datos.Rows[item.DataSetIndex];

                    RadioButton rbt = (RadioButton)item.FindControl("rbtPorcentaje");
                    dr.TipoImporte = rbt.Checked ? "Porcentaje" : "ImporteFijo";

                    TextBox porcentaje = (TextBox)item.FindControl("txtPorcentaje");
                    try
                    { dr.ComisionPorcentaje = porcentaje.Text != "" ? Convert.ToDouble(porcentaje.Text) : 0; }
                    catch (Exception) {}

                    DropDownList ddl      = (DropDownList)item.FindControl("ddlBaseCalculo");
                    string       selValue = ddl.SelectedValue;
                    dr.BaseCalculoID = selValue == "" ? 0 : Convert.ToInt32(selValue);

                    TextBox txtMesDesde = (TextBox)item.FindControl("txtMesDesde");
                    dr.MesDesde = Utiles.Validaciones.obtieneEntero(txtMesDesde.Text);

                    TextBox txtMesHasta = (TextBox)item.FindControl("txtMesHasta");
                    dr.MesHasta = Utiles.Validaciones.obtieneEntero(txtMesHasta.Text);

                    TextBox impFijo = (TextBox)item.FindControl("txtImporteFijo");

                    try
                    { dr.ComisionImporteFijo = impFijo.Text != "" ? Convert.ToDouble(impFijo.Text) : 0; }
                    catch (Exception) {}
                }
            }

            Session["dsComisionesVendedorUVenta"] = this.dsComisionesVendedorUVenta;
            this.dtgComisiones.DataSource         = this.dsComisionesVendedorUVenta;
            this.dtgComisiones.CurrentPageIndex   = 0;
            this.dtgComisiones.DataBind();
        }
Esempio n. 3
0
        private void dtgComisiones_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.EditItem)
            {
                RadioButton rbtPorcentaje = (RadioButton)e.Item.FindControl("rbtPorcentaje");
                rbtPorcentaje.Attributes.Add("onclick", "ChangeTipoImporte();");

                RadioButton rbtImporteFijo = (RadioButton)e.Item.FindControl("rbtImporteFijo");
                rbtImporteFijo.Attributes.Add("onclick", "ChangeTipoImporte();");

                DropDownList ddlConceptoComision = (DropDownList)e.Item.FindControl("ddlConceptoComision");
                ddlConceptoComision.Attributes.Add("onchange", "ChangeConceptoComision();");

                DropDownList ddlEntidadComision = (DropDownList)e.Item.FindControl("ddlEntidadComision");
                ddlEntidadComision.Attributes.Add("onchange", "ChangeEntidadComision();");

                DropDownList ddlBaseCalculo = (DropDownList)e.Item.FindControl("ddlBaseCalculo");
                SisPackController.LlenarCombos.BaseCalculo(ddlBaseCalculo, this.TraducirTexto("Combos.ElijaBaseCalculo"));

                PlaceHolder ph = (PlaceHolder)e.Item.FindControl("phValidBaseCalculo");
                ph.Controls.Add(GenerarValidadores.Requerido("txtPorcentaje", this.TraducirTexto("Errores.Obligatorios.Porcentaje"), false, "ReqPorcentaje"));
                ph.Controls.Add(GenerarValidadores.Porcentaje("txtPorcentaje", this.TraducirTexto("Errores.Invalidos.Porcentaje"), false, "ValPorcentaje"));
                ph.Controls.Add(GenerarValidadores.Requerido("ddlBaseCalculo", this.TraducirTexto("Errores.Obligatorios.BaseCalculo"), false, "ReqBaseCalculo"));
                ph.Controls.Add(GenerarValidadores.Requerido("txtImporteFijo", this.TraducirTexto("Errores.Obligatorios.Importe"), false, "ReqImporteFijo"));
                ph.Controls.Add(GenerarValidadores.Decimal("txtImporteFijo", this.TraducirTexto("Errores.Invalidos.Importe"), false, "ValImporteFijo"));

                ph = (PlaceHolder)e.Item.FindControl("phValidMesDesde");
                ph.Controls.Add(GenerarValidadores.Requerido("txtMesDesde", this.TraducirTexto("Errores.Obligatorios.MesDesde")));

                ph = (PlaceHolder)e.Item.FindControl("phValidMesHasta");
                ph.Controls.Add(GenerarValidadores.Requerido("txtMesHasta", this.TraducirTexto("Errores.Obligatorios.MesHasta")));

                DsComisionesVendedorUVenta.DatosRow dr = (DsComisionesVendedorUVenta.DatosRow)((DataRowView)e.Item.DataItem).Row;

                rbtPorcentaje.Checked        = dr.TipoImporte == "Porcentaje";
                ddlBaseCalculo.SelectedValue = (dr.IsBaseCalculoIDNull() || dr.BaseCalculoID == 0) ? string.Empty : dr.BaseCalculoID.ToString();
                rbtImporteFijo.Checked       = dr.TipoImporte == "ImporteFijo";

                //*******************************************************************
                // agrego el botón de calendarios a cada item de la grilla
                //TextBox txtFechaInicioVigencia = (TextBox)e.Item.FindControl("txtFechaInicioVigencia");
                //TextBox txtFechaFinVigencia = (TextBox)e.Item.FindControl("txtFechaFinVigencia");

                //LiteralControl ctrlCalendarioFechaDesde = new LiteralControl("<a href=" + "\"javascript:OpenCalendario('" + txtFechaInicioVigencia.ClientID + "')\"><IMG height=\"24\" src=\"images/calendario1.gif\" width=\"24\" align=\"absBottom\" border=\"0\"></a>");
                //e.Item.Cells[4].Controls.Add(ctrlCalendarioFechaDesde);
                //LiteralControl ctrlCalendarioFechaHasta = new LiteralControl("<a href=" + "\"javascript:OpenCalendario('" + txtFechaFinVigencia.ClientID + "')\"><IMG height=\"24\" src=\"images/calendario1.gif\" width=\"24\" align=\"absBottom\" border=\"0\"></a>");
                //e.Item.Cells[5].Controls.Add(ctrlCalendarioFechaHasta);
                //*******************************************************************
            }
        }
Esempio n. 4
0
        protected void dtgComisiones_Update(object sender, DataGridCommandEventArgs e)
        {
            try
            {
                RadioButton rbtPorcentaje = (RadioButton)e.Item.FindControl("rbtPorcentaje");
                if (rbtPorcentaje.Checked)
                {
                    RequiredFieldValidator req = (RequiredFieldValidator)((PlaceHolder)e.Item.FindControl("phValidBaseCalculo")).FindControl("ReqPorcentaje");
                    req.Enabled = true;
                    req.Validate();
                    if (!req.IsValid)
                    {
                        return;
                    }

                    BaseValidator valPtj = (BaseValidator)((PlaceHolder)e.Item.FindControl("phValidBaseCalculo")).FindControl("ValPorcentaje");
                    valPtj.Enabled = true;
                    valPtj.Validate();
                    if (!valPtj.IsValid)
                    {
                        return;
                    }

                    req         = (RequiredFieldValidator)((PlaceHolder)e.Item.FindControl("phValidBaseCalculo")).FindControl("ReqBaseCalculo");
                    req.Enabled = true;
                    req.Validate();
                    if (!req.IsValid)
                    {
                        return;
                    }
                }
                else
                {
                    RequiredFieldValidator req = (RequiredFieldValidator)((PlaceHolder)e.Item.FindControl("phValidBaseCalculo")).FindControl("ReqImporteFijo");
                    req.Enabled = true;
                    req.Validate();
                    if (!req.IsValid)
                    {
                        return;
                    }

                    BaseValidator valImp = (BaseValidator)((PlaceHolder)e.Item.FindControl("phValidBaseCalculo")).FindControl("ValImporteFijo");
                    valImp.Enabled = true;
                    valImp.Validate();
                    if (!valImp.IsValid)
                    {
                        return;
                    }
                }

                Page.Validate();
                if (!Page.IsValid)
                {
                    return;
                }

                //this.dsComisionesVendedorUVenta = (DsComisionesVendedorUVenta)Session["dsComisionesVendedorUVenta"];
                this.dsComisionesVendedorUVenta = (DsComisionesVendedorUVenta)this.dtgComisiones.DataSource;
                DsComisionesVendedorUVenta.DatosRow dr = (DsComisionesVendedorUVenta.DatosRow) this.dsComisionesVendedorUVenta.Datos.Rows[e.Item.DataSetIndex];

                if (dr.MesDesde < 0)
                {
                    throw new Exception("El mes inicial no es válido");
                }

                if (dr.MesHasta < 0)
                {
                    throw new Exception("El mes hasta no es válido");
                }

                if (dr.MesDesde > dr.MesHasta)
                {
                    throw new Exception("El mes inicial no puede ser mayor que el final");
                }

                IComisionVendedorUVenta comisionVendedorUVenta = ComisionVendedorUVentaFactory.GetComisionVendedorUVenta();
                comisionVendedorUVenta.VendedorID = Utiles.Validaciones.obtieneEntero(this.txtVendedorID.Text);


                //comisionVendedorUVenta.ConceptoComisionEntidadID = Utiles.Validaciones.obtieneEntero(((DropDownList)e.Item.FindControl("ddlConceptoComisionEntidad")).SelectedValue);
                //comisionVendedorUVenta.ConceptoComisionEntidadID = dr.ConceptoComisionEntidadID;

                int ccID = 0;
                int ecID = 0;
                if (this.txtConceptoComisionID.Text == "")
                {
                    ccID = Utiles.Validaciones.obtieneEntero(((DropDownList)e.Item.FindControl("ddlConceptoComision")).SelectedValue);
                }
                else
                {
                    ccID = Utiles.Validaciones.obtieneEntero(this.txtConceptoComisionID.Text);
                }

                if (this.txtEntidadComisionID.Text == "")
                {
                    ecID = Utiles.Validaciones.obtieneEntero(((DropDownList)e.Item.FindControl("ddlEntidadComision")).SelectedValue);
                }
                else
                {
                    ecID = Utiles.Validaciones.obtieneEntero(this.txtEntidadComisionID.Text);
                }

                IConceptoComisionEntidad cce   = ConceptoComisionEntidadFactory.GetConceptoComisionEntidad();
                System.Data.DataRow[]    drCCE = (System.Data.DataRow[])cce.GetConceptosComisionesEntidadesDataSet().Datos.Select("ConceptoComisionID = " + ccID.ToString() + " AND EntidadComisionID=" + ecID.ToString());

                comisionVendedorUVenta.ConceptoComisionEntidadID = Convert.ToInt32(drCCE[0]["ConceptoComisionEntidadID"]);

                comisionVendedorUVenta.MesDesde = Utiles.Validaciones.obtieneEntero(((TextBox)e.Item.FindControl("txtMesDesde")).Text);
                comisionVendedorUVenta.MesHasta = Utiles.Validaciones.obtieneEntero(((TextBox)e.Item.FindControl("txtMesHasta")).Text);
                comisionVendedorUVenta.ComisionVendedorUVentaID = Utiles.Validaciones.obtieneEntero(((Label)e.Item.FindControl("lblComisionVendedorUVentaID")).Text);


                if (rbtPorcentaje.Checked)
                {
                    //comisionVendedorUVenta.ComisionPorcentaje = dr.IsComisionPorcentajeNull() ? 0 : dr.ComisionPorcentaje;
                    comisionVendedorUVenta.ComisionPorcentaje = Utiles.Validaciones.obtieneDouble(((TextBox)e.Item.FindControl("txtPorcentaje")).Text);
                    //comisionVendedorUVenta.BaseCalculoID = dr.IsBaseCalculoIDNull() || dr.ComisionPorcentaje == 0 ? 0 : dr.BaseCalculoID;
                    comisionVendedorUVenta.BaseCalculoID = Utiles.Validaciones.obtieneEntero(((DropDownList)e.Item.FindControl("ddlBaseCalculo")).SelectedValue);
                    //comisionVendedorUVenta.ComisionImporteFijo = 0;
                    comisionVendedorUVenta.ComisionImporteFijo = 0;

                    //control de que la suma de porcentajes para ese concepto de comision no supere el maximo permitido
                    System.Data.DataRow[] drConceptoComisionEntidad = (System.Data.DataRow[]) this.dsConceptosComisionesEntidades.Tables[0].Select("ConceptoComisionEntidadID=" + dr.ConceptoComisionEntidadID);
                    if (drConceptoComisionEntidad.Length > 0)
                    {
                        if (Convert.ToInt32(drConceptoComisionEntidad[0]["EntidadComisionID"]) != 8)                        //hacemos el control si la entidad no es Andesmar
                        {
                            if (drConceptoComisionEntidad[0]["PorcentajeMaximo"] != System.DBNull.Value)
                            {
                                double porcentajeMaximo   = Convert.ToDouble(drConceptoComisionEntidad[0]["PorcentajeMaximo"]);
                                int    conceptoComisionID = Convert.ToInt32(drConceptoComisionEntidad[0]["ConceptoComisionID"]);
                                double suma = 0;

                                if (comisionVendedorUVenta.BaseCalculoID == (int)NegociosSisPackInterface.SisPack.BaseCalculo.GananciaRedespacho &&
                                    (conceptoComisionID != (int)NegociosSisPackInterface.SisPack.ConceptoComision.Redespacho ||
                                     !(ecID == (int)NegociosSisPackInterface.SisPack.EntidadComision.Vendedor || ecID == (int)NegociosSisPackInterface.SisPack.EntidadComision.SupervisorGeneral ||
                                       ecID == (int)NegociosSisPackInterface.SisPack.EntidadComision.SupervisorRegional)))
                                {
                                    throw new Exception("La base de cálculo válida para el concepto " + NegociosSisPackInterface.SisPack.ConceptoComision.Redespacho.ToString() + " y la entidad " + NegociosSisPackInterface.SisPack.EntidadComision.Vendedor.ToString() + " es " + NegociosSisPackInterface.SisPack.BaseCalculo.GananciaRedespacho.ToString());
                                }

                                IConceptoComisionEntidad conceptoComisionEntidad = ConceptoComisionEntidadFactory.GetConceptoComisionEntidad();

                                foreach (DsComisionesVendedorUVenta.DatosRow drConceptoComisionVendedorUVenta in this.dsComisionesVendedorUVenta.Datos)
                                {
                                    conceptoComisionEntidad.ConceptoComisionEntidadID = drConceptoComisionVendedorUVenta.ConceptoComisionEntidadID;
                                    conceptoComisionEntidad.Consultar();

                                    if (((int)conceptoComisionEntidad.ConceptoComision) == conceptoComisionID && drConceptoComisionVendedorUVenta.ConceptoComisionEntidadID != dr.ConceptoComisionEntidadID)
                                    {
                                        suma += drConceptoComisionVendedorUVenta.IsComisionPorcentajeNull() ? 0 : drConceptoComisionVendedorUVenta.ComisionPorcentaje;
                                    }
                                }
                                suma += dr.IsComisionPorcentajeNull() ? 0 : dr.ComisionPorcentaje;
                                if (suma > porcentajeMaximo)
                                {
                                    ((ErrorWeb)this.phErrores.Controls[0]).setMensaje(this.TraducirTexto("Errores.Invalidos.SumaPorcentajes"));
                                    return;
                                }
                            }
                        }
                    }
                }
                else
                {
                    //comisionVendedorUVenta.ComisionImporteFijo = dr.IsComisionImporteFijoNull() ? 0 : dr.ComisionImporteFijo;
                    comisionVendedorUVenta.ComisionImporteFijo = Utiles.Validaciones.obtieneDouble(((TextBox)e.Item.FindControl("txtImporteFijo")).Text);
                    comisionVendedorUVenta.ComisionPorcentaje  = 0;
                    comisionVendedorUVenta.BaseCalculoID       = 0;

                    //control de que la suma de importes fijos para ese concepto de comision no supere el maximo permitido
                    System.Data.DataRow[] drConceptoComisionEntidad = (System.Data.DataRow[]) this.dsConceptosComisionesEntidades.Tables[0].Select("ConceptoComisionEntidadID=" + dr.ConceptoComisionEntidadID);
                    if (drConceptoComisionEntidad.Length > 0)
                    {
                        if (Convert.ToInt32(drConceptoComisionEntidad[0]["EntidadComisionID"]) != 8)                        //hacemos el control si la entidad no es Andesmar
                        {
                            if (drConceptoComisionEntidad[0]["ImporteFijoMaximo"] != System.DBNull.Value)
                            {
                                double importeFijoMaximo  = Convert.ToDouble(drConceptoComisionEntidad[0]["ImporteFijoMaximo"]);
                                int    conceptoComisionID = Convert.ToInt32(drConceptoComisionEntidad[0]["ConceptoComisionID"]);
                                double suma = 0;

                                IConceptoComisionEntidad conceptoComisionEntidad = ConceptoComisionEntidadFactory.GetConceptoComisionEntidad();

                                foreach (DsComisionesVendedorUVenta.DatosRow drConceptoComisionVendedorUVenta in this.dsComisionesVendedorUVenta.Datos)
                                {
                                    conceptoComisionEntidad.ConceptoComisionEntidadID = drConceptoComisionVendedorUVenta.ConceptoComisionEntidadID;
                                    conceptoComisionEntidad.Consultar();

                                    if (((int)conceptoComisionEntidad.ConceptoComision) == conceptoComisionID && drConceptoComisionVendedorUVenta.ConceptoComisionEntidadID != dr.ConceptoComisionEntidadID)
                                    {
                                        suma += drConceptoComisionVendedorUVenta.IsComisionImporteFijoNull() ? 0 : drConceptoComisionVendedorUVenta.ComisionImporteFijo;
                                    }
                                }
                                suma += dr.IsComisionImporteFijoNull() ? 0 : dr.ComisionImporteFijo;
                                if (suma > importeFijoMaximo)
                                {
                                    ((ErrorWeb)this.phErrores.Controls[0]).setMensaje(this.TraducirTexto("Errores.Invalidos.SumaImportes"));
                                    return;
                                }
                            }
                        }
                    }
                }
                if (comisionVendedorUVenta.EstadoComisionID == (int)NegociosSisPackInterface.SisPack.EstadoComision.Ninguno)
                {
                    comisionVendedorUVenta.EstadoComisionID = (int)NegociosSisPackInterface.SisPack.EstadoComision.Habilitada;
                }

                try
                {
                    char[]   separador = { ',' };
                    string[] UVentaSel = this.txtUVentaID.Text.Split(separador);

                    foreach (string unidadVta in UVentaSel)
                    {
                        comisionVendedorUVenta.UnidadVentaID = Convert.ToInt32(unidadVta);
                        comisionVendedorUVenta.Guardar(usuario);
                    }
                    this.dtgComisiones.EditItemIndex      = -1;
                    Session["dsComisionesVendedorUVenta"] = null;
                    this.BindGrilla();
                    this.txtConceptoComisionID.Text = "";
                    this.txtEntidadComisionID.Text  = "";
                }
                catch (Exception ex)
                {
                    ManejaErrores(ex);
                }
            }
            catch (Exception ex)
            {
                ManejaErrores(ex);
            }
        }