/// <summary> /// Método para consultar los datos completos de un registro de comisión agencia. /// </summary> /// <returns>Retorna un booleando indicando si el registro de comisión agencia existe.</returns> public bool Consultar() { DsComisionesUVentas ds = this.GetComisionesUVentasDataSet(); if (ds == null) { return(false); } DsComisionesUVentas.DatosRow dr = ds.Datos.FindByUnidadVentaIDConceptoComisionEntidadID(this.UnidadVentaID, this.ConceptoComisionEntidadID); if (dr == null) { return(false); } this.FechaAlta = dr.FechaAlta; this.ComisionImporteFijo = dr.IsComisionImporteFijoNull() ? 0 : dr.ComisionImporteFijo; this.ComisionPorcentaje = dr.IsComisionPorcentajeNull() ? 0 : dr.ComisionPorcentaje; this.BaseCalculo = (SisPack.BaseCalculo)(dr.IsBaseCalculoIDNull() ? 0 : dr.BaseCalculoID); this.EstadoComision = (SisPack.EstadoComision)dr.EstadoComisionID; return(true); }
private void dtgComisiones_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) { 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.dsComisionesUVentas = (DsComisionesUVentas)Session["dsComisionesUV"]; DsComisionesUVentas.DatosRow dr = (DsComisionesUVentas.DatosRow) this.dsComisionesUVentas.Datos.Rows[e.Item.DataSetIndex]; IComisionUVenta comisionUVenta = ComisionUVentaFactory.GetComisionUVenta(); comisionUVenta.UnidadVentaID = Convert.ToInt32(this.txtUVentaID.Text); comisionUVenta.ConceptoComisionEntidadID = dr.ConceptoComisionEntidadID; if (rbtPorcentaje.Checked) { comisionUVenta.ComisionPorcentaje = dr.IsComisionPorcentajeNull() ? 0 : dr.ComisionPorcentaje; comisionUVenta.BaseCalculo = (NegociosSisPackInterface.SisPack.BaseCalculo)(dr.IsBaseCalculoIDNull() || dr.ComisionPorcentaje == 0 ? 0 : dr.BaseCalculoID); comisionUVenta.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; IConceptoComisionEntidad conceptoComisionEntidad = ConceptoComisionEntidadFactory.GetConceptoComisionEntidad(); foreach (DsComisionesUVentas.DatosRow drConceptoComisionUVenta in this.dsComisionesUVentas.Datos) { conceptoComisionEntidad.ConceptoComisionEntidadID = drConceptoComisionUVenta.ConceptoComisionEntidadID; conceptoComisionEntidad.Consultar(); if (((int)conceptoComisionEntidad.ConceptoComision) == conceptoComisionID && drConceptoComisionUVenta.ConceptoComisionEntidadID != dr.ConceptoComisionEntidadID && (int)conceptoComisionEntidad.EntidadComision != 8 /*8 = andesmar*/) { suma += drConceptoComisionUVenta.IsComisionPorcentajeNull() ? 0 : drConceptoComisionUVenta.ComisionPorcentaje; } } suma += dr.IsComisionPorcentajeNull() || (int)conceptoComisionEntidad.EntidadComision == 8 /*8 = andesmar*/ ? 0 : dr.ComisionPorcentaje; if (suma > porcentajeMaximo) { ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("La sumatoria de los porcentajes de comisión para el concepto es mayor que el máximo permitido."); return; } } } } } else { comisionUVenta.ComisionImporteFijo = dr.IsComisionImporteFijoNull() ? 0 : dr.ComisionImporteFijo; comisionUVenta.ComisionPorcentaje = 0; comisionUVenta.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=" + 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 (DsComisionesUVentas.DatosRow drConceptoComisionUVenta in this.dsComisionesUVentas.Datos) { conceptoComisionEntidad.ConceptoComisionEntidadID = drConceptoComisionUVenta.ConceptoComisionEntidadID; conceptoComisionEntidad.Consultar(); if (((int)conceptoComisionEntidad.ConceptoComision) == conceptoComisionID && drConceptoComisionUVenta.ConceptoComisionEntidadID != dr.ConceptoComisionEntidadID && (int)conceptoComisionEntidad.EntidadComision != 8 /*8 = andesmar*/) { suma += drConceptoComisionUVenta.IsComisionImporteFijoNull() ? 0 : drConceptoComisionUVenta.ComisionImporteFijo; } } suma += dr.IsComisionImporteFijoNull() || (int)conceptoComisionEntidad.EntidadComision == 8 /*8 = andesmar*/ ? 0 : dr.ComisionImporteFijo; if (suma > importeFijoMaximo) { ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("La sumatoria de los importes de comisión para el concepto es mayor que el máximo permitido."); return; } } } } } if (comisionUVenta.EstadoComision == NegociosSisPackInterface.SisPack.EstadoComision.Ninguno) { comisionUVenta.EstadoComision = NegociosSisPackInterface.SisPack.EstadoComision.Habilitada; } try { if (comisionUVenta.Guardar(usuario)) { this.dtgComisiones.EditItemIndex = -1; Session["dsComisionesUV"] = null; this.BindGrilla(); } else { string script = "<script language='javascript'>\n"; script += "alert('Los datos no se guardaron debido a errores.');\n"; script += "</script>"; Page.RegisterStartupScript("scriptError", script); } } 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); } }