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(); }
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(); }
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); //******************************************************************* } }
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); } }