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 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")); DsComisionMasivaAgencia.DatosRow dr = (DsComisionMasivaAgencia.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"; } }
private void dtgComisiones_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { RadioButton rbtPorcentaje = (RadioButton)e.Item.FindControl("rbtPorcentaje"); if (rbtPorcentaje.Checked) { if (((TextBox)e.Item.FindControl("txtPorcentaje")).Text == "0") { ((TextBox)e.Item.FindControl("txtPorcentaje")).Text = ""; } 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 { if (((TextBox)e.Item.FindControl("txtImporteFijo")).Text == "0") { ((TextBox)e.Item.FindControl("txtImporteFijo")).Text = ""; } 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.dsComisiones = (DsComisionMasivaAgencia)Session["dsComisiones"]; DsComisionMasivaAgencia.DatosRow dr = (DsComisionMasivaAgencia.DatosRow) this.dsComisiones.Datos.Rows[e.Item.DataSetIndex]; IComisionMasivaAgencia cce = ComisionMasivaAgenciaFactory.GetComisionMasivaAgencia(); cce.ConceptoComisionEntidadID = dr.ConceptoComisionEntidadID; System.Data.DataRow[] drCCE = (System.Data.DataRow[])cce.GetComisionesMasivasAgenciasDataSet().Datos.Select("ConceptoComisionEntidadID = " + cce.ConceptoComisionEntidadID.ToString()); //System.Data.DataRow[] drCCE = (System.Data.DataRow[])cce.GetComisionesMasivasAgenciasDataSet().Datos.Select("ConceptoComisionID = " + ccID.ToString() + " AND EntidadComisionID=" + ecID.ToString()); //GetConceptosComisionesEntidadesDataSet().Datos.Select("ConceptoComisionID = " + ccID.ToString() + " AND EntidadComisionID=" + ecID.ToString()); /*if (drCCE.Length > 0) * cce.ConceptoComisionEntidadID = Convert.ToInt32(drCCE[0]["ConceptoComisionEntidadID"]); * else * { * ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No es posible asignar comisiones a esta entidad ya que no se ha definido el concepto de comisión correspondiente."); * return; * }*/ if (rbtPorcentaje.Checked) { cce.ComisionPorcentaje = dr.IsComisionPorcentajeNull() ? 0 : dr.ComisionPorcentaje; cce.BaseCalculo = (NegociosSisPackInterface.SisPack.BaseCalculo)(dr.IsBaseCalculoIDNull() ? 0 : dr.BaseCalculoID); cce.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=" + cce.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; IComisionMasivaAgencia cceS = ComisionMasivaAgenciaFactory.GetComisionMasivaAgencia(); cceS.UnidadVentaID = Utiles.Validaciones.obtieneEntero(this.txtUnidadVentaID.Text); DsComisionMasivaAgencia dsComisionMasivaAgencia = cceS.GetComisionesMasivasAgenciasDataSet(); foreach (DsComisionMasivaAgencia.DatosRow drComisionMasivaAgencia in dsComisionMasivaAgencia.Datos) { IConceptoComisionEntidad conceptoComisionEntidad = ConceptoComisionEntidadFactory.GetConceptoComisionEntidad(); conceptoComisionEntidad.ConceptoComisionEntidadID = Convert.ToInt32(drComisionMasivaAgencia.ConceptoComisionEntidadID); conceptoComisionEntidad.Consultar(); if (((int)conceptoComisionEntidad.ConceptoComision) == conceptoComisionID && drComisionMasivaAgencia.ConceptoComisionEntidadID != Convert.ToInt32(drConceptoComisionEntidad[0]["ConceptoComisionEntidadID"])) { //&& comisionMasivaVendedorID != drComisionMasivaAgencia.ComisionMasivaVendedorID) suma += drComisionMasivaAgencia.IsComisionPorcentajeNull() ? 0 : drComisionMasivaAgencia.ComisionPorcentaje; } } suma += dr.IsComisionPorcentajeNull() ? 0 : dr.ComisionPorcentaje; if (suma > porcentajeMaximo) { ((ErrorWeb)this.phErrores.Controls[0]).setMensaje(this.TraducirTexto("Errores.Invalidos.SumaPorcentajes")); return; } } } } } else { cce.ComisionImporteFijo = dr.IsComisionImporteFijoNull() ? 0 : dr.ComisionImporteFijo; cce.ComisionPorcentaje = 0; cce.BaseCalculo = 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=" + cce.ConceptoComisionEntidadID); //System.Data.DataRow[] drConceptoComision = (System.Data.DataRow[]) this.dsConceptosComisiones.Tables[0].Select("ConceptoComisionID=" + dr.ConceptoComisionID); if (drConceptoComisionEntidad.Length > 0) { if (drConceptoComisionEntidad[0]["ImporteFijoMaximo"] != System.DBNull.Value) { double importeFijoMaximo = Convert.ToDouble(drConceptoComisionEntidad[0]["ImporteFijoMaximo"]); int conceptoComisionID = Convert.ToInt32(drConceptoComisionEntidad[0]["ConceptoComisionID"]); double suma = 0; IComisionMasivaAgencia cceS = ComisionMasivaAgenciaFactory.GetComisionMasivaAgencia(); cceS.UnidadVentaID = Utiles.Validaciones.obtieneEntero(this.txtUnidadVentaID.Text); DsComisionMasivaAgencia dsComisionMasivaAgencia = cceS.GetComisionesMasivasAgenciasDataSet(); foreach (DsComisionMasivaAgencia.DatosRow drComisionMasivaAgencia in dsComisionMasivaAgencia.Datos) { IConceptoComisionEntidad conceptoComisionEntidad = ConceptoComisionEntidadFactory.GetConceptoComisionEntidad(); conceptoComisionEntidad.ConceptoComisionEntidadID = Convert.ToInt32(drComisionMasivaAgencia.ConceptoComisionEntidadID); conceptoComisionEntidad.Consultar(); // if(((int)conceptoComisionEntidad.ConceptoComision )== conceptoComisionID)// && drComisionMasivaVendedor.ConceptoComisionEntidadID != Convert.ToInt32(drConceptoComisionEntidad[0]["ConceptoComisionEntidadID"])) if (((int)conceptoComisionEntidad.ConceptoComision) == conceptoComisionID && drComisionMasivaAgencia.ConceptoComisionEntidadID != Convert.ToInt32(drConceptoComisionEntidad[0]["ConceptoComisionEntidadID"])) { suma += drComisionMasivaAgencia.IsComisionImporteFijoNull() ? 0 : drComisionMasivaAgencia.ComisionImporteFijo; } } suma += dr.IsComisionImporteFijoNull() ? 0 : dr.ComisionImporteFijo; if (suma > importeFijoMaximo) { ((ErrorWeb)this.phErrores.Controls[0]).setMensaje(this.TraducirTexto("La sumatoria de los importes fijos de comisión para el concepto es mayor que el máximo permitido.")); return; } } } //control de que la suma de importes fijos para ese concepto de comision no supere el maximo permitido /*System.Data.DataRow[] drConceptoComision = (System.Data.DataRow[]) this.dsConceptosComisiones.Tables[0].Select("ConceptoComisionID=" + dr.ConceptoComisionID); * if(drConceptoComision.Length>0) * { * if(drConceptoComision[0]["ImporteFijoMaximo"] != System.DBNull.Value) * { * double importeFijoMaximo = Convert.ToDouble(drConceptoComision[0]["ImporteFijoMaximo"]); * int conceptoComisionID = Convert.ToInt32(drConceptoComision[0]["ConceptoComisionID"]); * double suma = 0; * foreach (DsConceptosComisionesEntidades.DatosRow drConceptoComisionEntidad in this.dsComisiones.Datos) * { * if(drConceptoComisionEntidad.ConceptoComisionID == conceptoComisionID && drConceptoComisionEntidad.EntidadComisionID != dr.EntidadComisionID && drConceptoComisionEntidad.EntidadComisionID != 8) * { * suma+= drConceptoComisionEntidad.IsComisionImporteFijoNull() ? 0 : drConceptoComisionEntidad.ComisionImporteFijo; * } * } * suma+= dr.IsComisionImporteFijoNull() || dr.EntidadComisionID == 8 ? 0 : dr.ComisionImporteFijo; * if(suma > importeFijoMaximo) * { * ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("La sumatoria de los importes fijos de comisión para el concepto es mayor que el máximo permitido."); * return; * } * } * }*/ } if (cce.EstadoComision == NegociosSisPackInterface.SisPack.EstadoComision.Ninguno) { cce.EstadoComision = NegociosSisPackInterface.SisPack.EstadoComision.Habilitada; } cce.UnidadVentaID = Convert.ToInt32(this.txtUnidadVentaID.Text); try { cce.Guardar(); this.dtgComisiones.EditItemIndex = -1; Session["dsComisiones"] = null; this.BindGrilla(); } catch (Exception ex) { string mensaje = ex.Message; try { mensaje = this.TraducirTexto(ex.Message); if (mensaje == "" || mensaje == null) { mensaje = ex.Message; } } catch (Exception) { mensaje = ex.Message; } ((ErrorWeb)this.phErrores.Controls[0]).setMensaje(mensaje); } }