/// <summary>
        /// Método para consultar los datos completos de un registro de comisión agencia unidad de venta.
        /// </summary>
        /// <returns>Retorna un booleando indicando si el registro de comisión agencia unidad de venta existe.</returns>
        public bool Consultar()
        {
            DsComisionesAgenciasUVenta ds = this.GetComisionesAgenciasUVentaDataSet();

            if (ds == null)
            {
                return(false);
            }

            //DsComisionesAgenciasUVenta.DatosRow dr = ds.Datos.FindByAgenciaIDUnidadVentaIDConceptoComisionEntidadID(this.AgenciaID, this.UnidadVentaID, this.ConceptoComisionEntidadID);
            DsComisionesAgenciasUVenta.DatosRow dr = null;

            try
            {
                dr = (DsComisionesAgenciasUVenta.DatosRow)ds.Datos.Select("AgenciaID=" + AgenciaID.ToString() + " and UnidadVentaID=" + UnidadVentaID.ToString() + " and ConceptoComisionEntidadID=" + ConceptoComisionEntidadID.ToString())[0];
            }
            catch
            {
                dr = null;
            }

            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);
        }
        /// <summary>
        /// Método para llenar el dataset de comisión agencia unidad de venta.
        /// Invoca al stored procedure ComisionesAgenciasUVentaALL.
        /// </summary>
        /// <returns>Retorna el dataset de comisiones definidas para una agencia y una unidad de venta.</returns>
        public DsComisionesAgenciasUVenta GetComisionesAgenciasUVentaDataSet()
        {
            DsComisionesAgenciasUVenta ds = new DsComisionesAgenciasUVenta();
            SqlParameter pAgenciaID       = new SqlParameter("@AgenciaID", this.AgenciaID);
            SqlParameter pUnidadVentaID   = new SqlParameter("@UnidadVentaID", this.UnidadVentaID);

            Config.Conexion.LlenarTypeDataSet(ds.Datos, System.Data.CommandType.StoredProcedure, "ComisionesAgenciasUVentaALL", pAgenciaID, pUnidadVentaID);

            return(ds);
        }
        private void BindGrilla()
        {
            SisPackController.AdministrarGrillas.Configurar(this.dtgComisiones, "ConceptoComisionEntidadID", this.CantidadOpciones);
            this.dtgComisiones.AllowPaging = false;

            if (Session["dsComisionesAgenciasUVenta"] == null)
            {
                IComisionAgenciaUVenta comisionAgenciaUVenta = ComisionAgenciaUVentaFactory.GetComisionAgenciaUVenta();
                comisionAgenciaUVenta.AgenciaID     = Convert.ToInt32(this.txtAgenciaID.Text);
                comisionAgenciaUVenta.UnidadVentaID = Convert.ToInt32(this.txtUVentaID.Text);
                comisionAgenciaUVenta.Consultar();
                this.dsComisionesAgenciasUVenta = comisionAgenciaUVenta.GetComisionesAgenciasUVentaDataSet();

                foreach (DsComisionesAgenciasUVenta.DatosRow dr in this.dsComisionesAgenciasUVenta.Datos)
                {
                    dr.TipoImporte = dr.IsComisionPorcentajeNull() ? "ImporteFijo" : "Porcentaje";
                }
            }
            else
            {
                this.dsComisionesAgenciasUVenta = (DsComisionesAgenciasUVenta)Session["dsComisionesAgenciasUVenta"];
                if (this.dtgComisiones.EditItemIndex != -1)
                {
                    DataGridItem item = this.dtgComisiones.Items[this.dtgComisiones.EditItemIndex];
                    DsComisionesAgenciasUVenta.DatosRow dr = (DsComisionesAgenciasUVenta.DatosRow) this.dsComisionesAgenciasUVenta.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 impFijo = (TextBox)item.FindControl("txtImporteFijo");
                    try
                    { dr.ComisionImporteFijo = impFijo.Text != "" ? Convert.ToDouble(impFijo.Text) : 0; }
                    catch (Exception) {}
                }
            }

            Session["dsComisionesAgenciasUVenta"] = this.dsComisionesAgenciasUVenta;
            this.dtgComisiones.DataSource         = this.dsComisionesAgenciasUVenta;
            this.dtgComisiones.CurrentPageIndex   = 0;
            this.dtgComisiones.DataBind();
        }
        public DsComisionesAgenciasUVenta GetComisionesAgenciasUVentaByPorcentajeMaximo()
        {
            DsComisionesAgenciasUVenta ds = new DsComisionesAgenciasUVenta();
            SqlParameter pAgenciaID       = new SqlParameter("@AgenciaID", this.AgenciaID);
            SqlParameter pUnidadVentaID   = new SqlParameter("@UnidadVentaID", this.UnidadVentaID);
            SqlParameter pPorcentaje      = new SqlParameter("@Porcentaje", Utiles.BaseDatos.DoubleToSql(this.ComisionPorcentaje));
            SqlParameter pImporteFijo     = new SqlParameter("@ImporteFijo", Utiles.BaseDatos.DoubleToSql(this.ComisionImporteFijo));

            if (this.AgenciaID != 0)
            {
                Config.Conexion.LlenarTypeDataSet(ds.Datos, System.Data.CommandType.StoredProcedure, "ComisionesAgenciaUVentaSELbyPorcentajeMaximo", pAgenciaID, pUnidadVentaID, pPorcentaje, pImporteFijo, new SqlParameter("@ConceptoFacturacionID", Utiles.BaseDatos.IntToSql(ConceptoFacturacionID)));
            }
            else
            {
                Config.Conexion.LlenarTypeDataSet(ds.Datos, System.Data.CommandType.StoredProcedure, "ComisionesAgenciasUVentaSELbyPorcentajeMaximo", pUnidadVentaID, pPorcentaje, pImporteFijo, new SqlParameter("@ConceptoFacturacionID", Utiles.BaseDatos.IntToSql(ConceptoFacturacionID)));
            }

            return(ds);
        }
        protected void dtgComisiones_Update(object sender, 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.dsComisionesAgenciasUVenta = (DsComisionesAgenciasUVenta)Session["dsComisionesAgenciasUVenta"];
            DsComisionesAgenciasUVenta.DatosRow dr = (DsComisionesAgenciasUVenta.DatosRow) this.dsComisionesAgenciasUVenta.Datos.Rows[e.Item.DataSetIndex];

            IComisionAgenciaUVenta comisionAgenciaUVenta = ComisionAgenciaUVentaFactory.GetComisionAgenciaUVenta();

            comisionAgenciaUVenta.AgenciaID = Convert.ToInt32(this.txtAgenciaID.Text);
            comisionAgenciaUVenta.ConceptoComisionEntidadID = dr.ConceptoComisionEntidadID;

            if (rbtPorcentaje.Checked)
            {
                comisionAgenciaUVenta.ComisionPorcentaje  = dr.IsComisionPorcentajeNull() ? 0 : dr.ComisionPorcentaje;
                comisionAgenciaUVenta.BaseCalculo         = (NegociosSisPackInterface.SisPack.BaseCalculo)(dr.IsBaseCalculoIDNull() || dr.ComisionPorcentaje == 0 ? 0 : dr.BaseCalculoID);
                comisionAgenciaUVenta.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 (DsComisionesAgenciasUVenta.DatosRow drConceptoComisionAgenciaUVenta in this.dsComisionesAgenciasUVenta.Datos)
                            {
                                conceptoComisionEntidad.ConceptoComisionEntidadID = drConceptoComisionAgenciaUVenta.ConceptoComisionEntidadID;
                                conceptoComisionEntidad.Consultar();

                                if (((int)conceptoComisionEntidad.ConceptoComision) == conceptoComisionID && drConceptoComisionAgenciaUVenta.ConceptoComisionEntidadID != dr.ConceptoComisionEntidadID && (int)conceptoComisionEntidad.EntidadComision != 8 /*8 = andesmar*/)
                                {
                                    suma += drConceptoComisionAgenciaUVenta.IsComisionPorcentajeNull() ? 0 : drConceptoComisionAgenciaUVenta.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
            {
                comisionAgenciaUVenta.ComisionImporteFijo = dr.IsComisionImporteFijoNull() ? 0 : dr.ComisionImporteFijo;
                comisionAgenciaUVenta.ComisionPorcentaje  = 0;
                comisionAgenciaUVenta.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 (DsComisionesAgenciasUVenta.DatosRow drConceptoComisionAgenciaUVenta in this.dsComisionesAgenciasUVenta.Datos)
                            {
                                conceptoComisionEntidad.ConceptoComisionEntidadID = drConceptoComisionAgenciaUVenta.ConceptoComisionEntidadID;
                                conceptoComisionEntidad.Consultar();

                                if (((int)conceptoComisionEntidad.ConceptoComision) == conceptoComisionID && drConceptoComisionAgenciaUVenta.ConceptoComisionEntidadID != dr.ConceptoComisionEntidadID && (int)conceptoComisionEntidad.EntidadComision != 8 /*8 = andesmar*/)
                                {
                                    suma += drConceptoComisionAgenciaUVenta.IsComisionImporteFijoNull() ? 0 : drConceptoComisionAgenciaUVenta.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 (comisionAgenciaUVenta.EstadoComision == NegociosSisPackInterface.SisPack.EstadoComision.Ninguno)
            {
                comisionAgenciaUVenta.EstadoComision = NegociosSisPackInterface.SisPack.EstadoComision.Habilitada;
            }

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

                foreach (string unidadVta in UVentaSel)
                {
                    comisionAgenciaUVenta.UnidadVentaID = Convert.ToInt32(unidadVta);
                    comisionAgenciaUVenta.Guardar(usuario);
                }
                this.dtgComisiones.EditItemIndex      = -1;
                Session["dsComisionesAgenciasUVenta"] = 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);
            }
        }
Exemplo n.º 6
0
        private void BindGrilla()
        {
            SisPackController.AdministrarGrillas.Configurar(this.dtgComisiones, "ConceptoComisionEntidadID", this.CantidadOpciones);
            dtgComisiones.AllowPaging = false;

            if (this.rbtClientesCorporativos.Checked == true)
            {
                this.dtgComisiones.Columns[5].Visible = true;
                this.dtgComisiones.Columns[6].Visible = false;

                IComisionCliente comisionCliente = ComisionClienteFactory.GetComisionCliente();
                comisionCliente.ClienteID = Convert.ToInt32(this.busqCliente.ClienteID);

                comisionCliente.UnidadVentaID       = Convert.ToInt32(this.ddlUnidadVenta.SelectedValue);
                comisionCliente.OrigenFleteID       = 0;   //this.txtOrigenID.Text==""? 0 :Convert.ToInt32(this.txtOrigenID.Text);
                comisionCliente.DestinoFleteID      = 0;   //this.txtDestinoID.Text==""? 0 :Convert.ToInt32(this.txtDestinoID.Text);
                comisionCliente.ZonaID              = 0;   //this.txtZonaID.Text==""? 0 :Convert.ToInt32(this.txtZonaID.Text);
                comisionCliente.AgrupacionDestinoID = 0;   //this.txtAgrDestinoID.Text==""? 0 :Convert.ToInt32(this.txtAgrDestinoID.Text);

                if (this.rbtPorcentaje.Checked == true)
                {
                    comisionCliente.ComisionPorcentaje = this.txtPorcentaje.Text == "" ? 0 : Convert.ToDouble(this.txtPorcentaje.Text);
                }
                else
                {
                    comisionCliente.ComisionPorcentaje = 0;
                }
                if (this.rbtImporteFijo.Checked == true)
                {
                    comisionCliente.ComisionImporteFijo = this.txtImporteFijo.Text == "" ? 0 : Convert.ToDouble(this.txtImporteFijo.Text);
                }
                else
                {
                    comisionCliente.ComisionImporteFijo = 0;
                }

                comisionCliente.ConceptoFacturacionID = Convert.ToInt32(ddlConceptoFacturacion.SelectedValue);

                this.dsComisionesClientes = comisionCliente.GetComisionesClientesUVentaByPorcentajeMaximo();

                foreach (DsComisionesClientes.DatosRow dr in this.dsComisionesClientes.Datos)
                {
                    dr.TipoImporte = dr.IsComisionPorcentajeNull() ? "ImporteFijo" : "Porcentaje";
                }

                Session["dsComisionesClientes"] = this.dsComisionesClientes;
                this.dtgComisiones.DataSource   = this.dsComisionesClientes;
            }
            else if (this.rbtClientesCorporativosTodos.Checked == true)
            {
                this.dtgComisiones.Columns[5].Visible = true;
                this.dtgComisiones.Columns[6].Visible = false;

                IComisionCliente comisionCliente = ComisionClienteFactory.GetComisionCliente();
                comisionCliente.ClienteID = 0;

                comisionCliente.UnidadVentaID       = Convert.ToInt32(this.ddlUnidadVenta.SelectedValue);
                comisionCliente.OrigenFleteID       = 0;   //this.txtOrigenID.Text==""? 0 :Convert.ToInt32(this.txtOrigenID.Text);
                comisionCliente.DestinoFleteID      = 0;   //this.txtDestinoID.Text==""? 0 :Convert.ToInt32(this.txtDestinoID.Text);
                comisionCliente.ZonaID              = 0;   //this.txtZonaID.Text==""? 0 :Convert.ToInt32(this.txtZonaID.Text);
                comisionCliente.AgrupacionDestinoID = 0;   //this.txtAgrDestinoID.Text==""? 0 :Convert.ToInt32(this.txtAgrDestinoID.Text);

                if (this.rbtPorcentaje.Checked == true)
                {
                    comisionCliente.ComisionPorcentaje = this.txtPorcentaje.Text == "" ? 0 : Convert.ToDouble(this.txtPorcentaje.Text);
                }
                else
                {
                    comisionCliente.ComisionPorcentaje = 0;
                }
                if (this.rbtImporteFijo.Checked == true)
                {
                    comisionCliente.ComisionImporteFijo = this.txtImporteFijo.Text == "" ? 0 : Convert.ToDouble(this.txtImporteFijo.Text);
                }
                else
                {
                    comisionCliente.ComisionImporteFijo = 0;
                }

                comisionCliente.ConceptoFacturacionID = Convert.ToInt32(ddlConceptoFacturacion.SelectedValue);

                this.dsComisionesClientes = comisionCliente.GetComisionesClientesUVentaByPorcentajeMaximo();

                foreach (DsComisionesClientes.DatosRow dr in this.dsComisionesClientes.Datos)
                {
                    dr.TipoImporte = dr.IsComisionPorcentajeNull() ? "ImporteFijo" : "Porcentaje";
                }

                Session["dsComisionesClientes"] = this.dsComisionesClientes;
                this.dtgComisiones.DataSource   = this.dsComisionesClientes;
            }
            else if (this.rbtClientesEventuales.Checked == true)
            {
                this.dtgComisiones.Columns[5].Visible = false;
                this.dtgComisiones.Columns[6].Visible = true;

                IComisionAgenciaUVenta comisionAgenciaUVenta = ComisionAgenciaUVentaFactory.GetComisionAgenciaUVenta();
                comisionAgenciaUVenta.AgenciaID = this.busqAgencia.AgenciaID == "" ? 0 : Convert.ToInt32(this.busqAgencia.AgenciaID);

                comisionAgenciaUVenta.UnidadVentaID = Convert.ToInt32(this.ddlUnidadVenta.SelectedValue);
                if (this.rbtPorcentaje.Checked == true)
                {
                    comisionAgenciaUVenta.ComisionPorcentaje = this.txtPorcentaje.Text == "" ? 0 : Convert.ToDouble(this.txtPorcentaje.Text);
                }
                else
                {
                    comisionAgenciaUVenta.ComisionPorcentaje = 0;
                }
                if (this.rbtImporteFijo.Checked == true)
                {
                    comisionAgenciaUVenta.ComisionImporteFijo = this.txtImporteFijo.Text == "" ? 0 : Convert.ToDouble(this.txtImporteFijo.Text);
                }
                else
                {
                    comisionAgenciaUVenta.ComisionImporteFijo = 0;
                }

                comisionAgenciaUVenta.ConceptoFacturacionID = Convert.ToInt32(ddlConceptoFacturacion.SelectedValue);

                this.dsComisionesAgenciasUV = comisionAgenciaUVenta.GetComisionesAgenciasUVentaByPorcentajeMaximo();

                foreach (DsComisionesAgenciasUVenta.DatosRow dr in this.dsComisionesAgenciasUV.Datos)
                {
                    dr.TipoImporte = dr.IsComisionPorcentajeNull() ? "ImporteFijo" : "Porcentaje";
                }

                Session["dsComisionesAgenciasUV"] = this.dsComisionesAgenciasUV;
                this.dtgComisiones.DataSource     = this.dsComisionesAgenciasUV;
            }

            this.dtgComisiones.CurrentPageIndex = 0;
            this.dtgComisiones.DataBind();
            this.busqCliente.ClienteID = "";
            this.busqAgencia.AgenciaID = "";
        }