Exemple #1
0
        private void LlenarComboConceptos()
        {
            try
            {
                IConceptoFacturacion agencia = ConceptoFacturacionFactory.GetConceptoFacturacion();
                Session["dsConceptosDetalle"] = new DataSet();
                //agencia.CategoriaConceptoFacturacionID = Utiles.Validaciones.obtieneEntero(this.txtCategoriaConceptoFacturacionID.Text);
                dsConceptoFacturacion ds = agencia.GetAll();//.GetAgenciasZonasModALL(Utiles.Validaciones.obtieneEntero(this.txtCategoriaConceptoFacturacionID.Text), usuario);

                ddlConceptosFacturacion.DataSource = (dsConceptoFacturacion.ConceptoFacturacionRow[])ds.ConceptoFacturacion.Select();
                //ddlServicios.DataValueField = "ServicioTransporteID";
                ddlConceptosFacturacion.DataValueField = "ConceptoFacturacionID";
                ddlConceptosFacturacion.DataTextField  = "Descripcion";
                ddlConceptosFacturacion.DataBind();

                Session["dsConceptosDetalle"] = ds;
            }
            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;
                }
                ((SisPacK.ErrorWeb) this.phErrores.Controls[0]).setMensaje(mensaje);
            }
        }
Exemple #2
0
 private void CargarDatosConcepto()
 {
     try
     {
         // Reviso si es un concepto que lleva stock
         IConceptoFacturacion concepto = ConceptoFacturacionFactory.GetConceptoFacturacion();
         concepto.GetOne(ConceptoFacturacionID ?? 0);
         if (concepto.ConceptoFacturacionId != null)
         {
             if (concepto.LlevaStock ?? false)
             {
                 // Busco los datos del concepto y el stock de las agencias
                 lblConcepto.Text = concepto.Descripcion;
                 BindGrid(0);
             }
             else
             {
                 ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("El concepto de facturación no maneja stock");
             }
         }
         else
         {
             Response.Redirect("ConceptosFacturacionConsul.aspx");
         }
     }
     catch
     {
         ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("Error al cargar stock del conceptos de facturación");
     }
 }
        public IConceptoFacturacion GetConceptoFacturacion(Int32 ConceptoID)
        {
            IConceptoFacturacion concepto = ConceptoFacturacionFactory.GetConceptoFacturacion();

            concepto.GetOne(ConceptoID);
            return(concepto);
        }
Exemple #4
0
        private void CargarConceptosFacturacion()
        {
            IConceptoFacturacion conceptos = ConceptoFacturacionFactory.GetConceptoFacturacion();

            ddlConceptoFacturacion.DataSource     = conceptos.GetAll();
            ddlConceptoFacturacion.DataValueField = "ConceptoFacturacionId";
            ddlConceptoFacturacion.DataTextField  = "Descripcion";
            ddlConceptoFacturacion.DataBind();
            ddlConceptoFacturacion.Items.Insert(0, new ListItem("Todos", "0"));
            ddlConceptoFacturacion.Items.Insert(1, new ListItem("Ninguno", "-1"));
        }
Exemple #5
0
        private void CargarDatos()
        {
            try
            {
                // Reviso si es un concepto que lleva stock
                IConceptoFacturacion concepto = ConceptoFacturacionFactory.GetConceptoFacturacion();
                concepto.GetOne(ConceptoFacturacionID ?? 0);
                // Cargo los datos del concepto de facturación
                if (concepto.ConceptoFacturacionId != null)
                {
                    if (concepto.LlevaStock ?? false)
                    {
                        lblConcepto.Text = concepto.Descripcion;
                    }
                    else
                    {
                        ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("El concepto de facturación no maneja stock");
                        DesactivarControlesIngresoDatos();
                    }
                }
                else
                {
                    Response.Redirect("ConceptosFacturacionConsul.aspx");
                }

                // Cargo los datos de la agencia
                if (AgenciaID != null)
                {
                    IAgencia agencia = AgenciaFactory.GetAgencia();
                    agencia.AgenciaID = AgenciaID ?? 0;
                    if (agencia.ConsultarBasicoByAgenciaID())
                    {
                        lblAgencia.Text = agencia.RazonSocial;
                    }
                    else
                    {
                        ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se encontraron datos de la agencia");
                        DesactivarControlesIngresoDatos();
                    }
                }
                else
                {
                    Response.Redirect("ConceptosFacturacionStockAgenciasConsul.aspx?ConceptoFacturableID=" + ConceptoFacturacionID.ToString());
                }

                CargarDatosStock();
            }
            catch
            {
                ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("Error al cargar datos del concepto de facturación");
                DesactivarControlesIngresoDatos();
            }
        }
Exemple #6
0
        protected void grid_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            try
            {
                // Doy de baja el registro
                IConceptoFacturacion concepto = ConceptoFacturacionFactory.GetConceptoFacturacion();
                concepto.Delete(Convert.ToInt32(e.Keys["ConceptoFacturacionId"]));

                // Cargo la grilla nuevamente
                BindGrid(grid.PageIndex);
            }
            catch
            {
                ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("Error al eliminar el concepto de facturación");
            }
        }
Exemple #7
0
        private void BindGridConceptosFacturacion(int currenPage)
        {
            try
            {
                SisPackController.AdministrarGrillas.Configurar(this.gvConceptosFacturacion, 100);

                IConceptoFacturacion  concepto = ConceptoFacturacionFactory.GetConceptoFacturacion();
                dsConceptoFacturacion ds       = concepto.GetListConceptosParaEmisionByAgenciaID(AgenciaID, true, TipoClienteID);
                gvConceptosFacturacion.DataSource = ds.Concepto;
                gvConceptosFacturacion.PageIndex  = currenPage;
                gvConceptosFacturacion.DataBind();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #8
0
        protected void Page_Load(object sender, EventArgs e)
        {
            #region IsAuthenticated
            if (Session["Usuario"] != null)
            {
                usuario = (IUsuarios)Session["Usuario"];
            }

            if (User.Identity.IsAuthenticated)
            {
                string       sOpcion = "ClienteConceptosFacturacion";
                SisPacK.Menu oMenu   = (SisPacK.Menu) this.FindControl("Menu1");
                this.ValidarSeguridad(oMenu, sOpcion);
            }
            #endregion

            if (ConceptoFacturacionID != null)
            {
                // Reviso si estoy en un postback
                if (IsPostBack == false)
                {
                    // No estoy en un postback.
                    datosConceptoFacturacion = ConceptoFacturacionFactory.GetConceptoFacturacion();
                    datosConceptoFacturacion.ConceptoFacturacionId = ConceptoFacturacionID;
                    datosConceptoFacturacion.GetOne(ConceptoFacturacionID ?? 0);
                    datosConceptoFacturacion.GetClientes();
                    Session["datosClientes_ConceptoFacturacion"] = datosConceptoFacturacion;

                    BindGrid();
                    CargarDatosConcepto();
                }
                else
                {
                    // Estoy en un postback
                    datosConceptoFacturacion = (IConceptoFacturacion)Session["datosClientes_ConceptoFacturacion"];
                    ConfigurarGrillaClientes();
                }
            }
            else
            {
                Response.Redirect("ConceptosFacturacionConsul.aspx");
            }
        }
Exemple #9
0
        private void BindGrid(Int32 currentPage)
        {
            try
            {
                // Configuro la grilla
                SisPackController.AdministrarGrillas.Configurar(grid, this.CantidadOpciones);

                // busco los datos
                IConceptoFacturacion  tarifario = ConceptoFacturacionFactory.GetConceptoFacturacion();
                dsConceptoFacturacion ds        = tarifario.GetByFilter(txtTarifarioDescrip.Text);

                // Cargo los datos en la grilla
                grid.PageIndex  = currentPage;
                grid.DataSource = ds.ConceptoFacturacion;
                grid.DataBind();
            }
            catch
            {
                ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("Error al cargar listado de conceptos de facturación");
            }
        }
Exemple #10
0
        private void BindGridConceptosFacturacion(int currenPage)
        {
            string ddlcliente      = Request.Form["ddlTipoCliente"];
            string ddlTipoClientes = ddlTipoCliente.Value;

            try
            {
                SisPackController.AdministrarGrillas.Configurar(this.gvConceptosFacturacion2, this.CantidadOpciones);

                if (Session["dtConceptoFacturacion"] == null)
                {
                    /*Recargar la grilla completa. */
                    IConceptoFacturacion concepto = ConceptoFacturacionFactory.GetConceptoFacturacion();
                    dsConceptoFacturacion = concepto.GetListConceptosParaEmisionByAgenciaID(AgenciaConectadaID, false, Convert.ToInt32(ddlTipoCliente.Value));
                    dtConceptoFacturacion = dsConceptoFacturacion.Concepto;
                }
                else
                {
                    /*No se realiza nuevamente la consulta*/
                    this.dtConceptoFacturacion = (dsConceptoFacturacion.ConceptoDataTable)Session["dtConceptoFacturacion"];
                }

                /* Almacenar los datos para posteriores operaciones. */
                Session["dtConceptoFacturacion"]   = dtConceptoFacturacion;
                gvConceptosFacturacion2.DataSource = dtConceptoFacturacion;
                gvConceptosFacturacion2.PageIndex  = currenPage;
                gvConceptosFacturacion2.DataBind();

                errores.Visible = false;
                errores.Text    = "";
            }
            catch (Exception ex)
            {
                string script = string.Empty;
                errores.Visible = true;
                errores.Text    = ex.Message;
                ScriptManager.RegisterClientScriptBlock(this.upd1, upd1.GetType(), "muestraMensaje4", script, true);
                return;
            }
        }
Exemple #11
0
        protected void ddlConceptoFacturacion_SelectedIndexChanged(object sender, EventArgs e)
        {
            GridViewRow          item = gvConceptosFacturacion2.Rows[gvConceptosFacturacion2.EditIndex];
            DropDownList         ddl  = (DropDownList)item.FindControl("ddlConceptoFacturacion");
            IConceptoFacturacion conceptoFacturacion = ConceptoFacturacionFactory.GetConceptoFacturacion();

            conceptoFacturacion.GetOne(ddl.SelectedValue == "" ? 0 : Convert.ToInt32(ddl.SelectedValue));
            // Si tiene tarifario por horas o dias, habilitar el textbox de horas/dias
            if ((conceptoFacturacion.TipoTarifarioConceptoFacturableID == (int)NegociosSisPackInterface.SisPack.TipoTarifarioConceptoFacturable.Tarifariosporhoras) || (conceptoFacturacion.TipoTarifarioConceptoFacturableID == (int)NegociosSisPackInterface.SisPack.TipoTarifarioConceptoFacturable.Tarifariospordías))
            {
                TextBox txtHorasDias = (TextBox)item.FindControl("txtHorasDias");
                txtHorasDias.Enabled   = true;
                txtHorasDias.BackColor = System.Drawing.Color.White;
            }

            // Si debe ingresar datos obligatorios
            if ((conceptoFacturacion.RequiereDatosObligatorio ?? false) == true)
            {
                TextBox txtNroPrecinto = (TextBox)item.FindControl("txtNroPrecinto");
                txtNroPrecinto.Enabled   = true;
                txtNroPrecinto.BackColor = System.Drawing.Color.White;
            }
        }
 private void CargarDatosConcepto()
 {
     try
     {
         // Reviso si es un concepto que lleva stock
         IConceptoFacturacion concepto = ConceptoFacturacionFactory.GetConceptoFacturacion();
         concepto.GetOne(ConceptoFacturacionID ?? 0);
         if (concepto.ConceptoFacturacionId != null)
         {
             if (concepto.LlevaStock ?? false)
             {
                 // Busco los datos del concepto y el stock
                 IConceptoFacturacionStock stock = ConceptoFacturacionStockFactory.GetConceptoFacturacionStock();
                 stock.ConceptoFacturacionID = ConceptoFacturacionID;
                 stock.GetStockAdministracionByConcepto();
                 lblConcepto.Text = stock.DescripcionConceptoFacturacion;
                 lblStock.Text    = stock.Stock.ToString();
             }
             else
             {
                 ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("El concepto de facturación no maneja stock");
                 lblConcepto.Text = concepto.Descripcion;
                 lblStock.Text    = "El concepto de facturación no maneja stock";
                 btnRegistrarMovimientoStock.Visible = false;
             }
         }
         else
         {
             Response.Redirect("ConceptosFacturacionConsul.aspx");
         }
     }
     catch
     {
         ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("Error al cargar stock del conceptos de facturación");
     }
 }
        protected void Page_Load(object sender, EventArgs e)
        {
            #region IsAuthenticated
            if (Session["Usuario"] != null)
            {
                usuario = (IUsuarios)Session["Usuario"];
            }

            if (User.Identity.IsAuthenticated)
            {
                string sOpcion = "ConceptosFacturacion";
                SisPacK.Menu oMenu = (SisPacK.Menu)this.FindControl("Menu1");
                this.ValidarSeguridad(oMenu, sOpcion);
            }
            #endregion

            if (IsPostBack == false)
            {
                DatosConceptoFacturacion = ConceptoFacturacionFactory.GetConceptoFacturacion();

                // Cargo los combos
                CargarCombos();

                // Reviso si estoy actualizando o modificando un registro existente
                if (ConceptoFacturacionId == null)
                {
                    // Estoy agregando un registro. 
                    // Genero el listado de empresas
                    DatosConceptoFacturacion.GetEmpresas();
                }
                else
                {
                    // Estoy modificando un registro existente
                    // Busco el registro
                    DatosConceptoFacturacion.GetOne(ConceptoFacturacionId ?? 0);
                    // Cargo el listado de empresas
                    DatosConceptoFacturacion.GetEmpresas();

                    // Cargo los controles con los datos
                    CargarDatos();
                }

                // Cargo el grid de empresas
                BindGridEmpresas();
            }
            else
            {
                if (Session["DatosConceptoFacturacion"] != null)
                {
                    DatosConceptoFacturacion = (IConceptoFacturacion)Session["DatosConceptoFacturacion"];
                }
                else
                {
                    DatosConceptoFacturacion = ConceptoFacturacionFactory.GetConceptoFacturacion();
                }

                ConfigurarGrillaEmpresas();
            }

            Session["DatosConceptoFacturacion"] = DatosConceptoFacturacion;
        }
        //DsOrdenRetiroImprimir.DatosRow dsoRdenes;
        #region Page_Load
        private void Page_Load(object sender, System.EventArgs e)
        {
            //TextWriterTraceListener myListener = new TextWriterTraceListener("TextWriterOutput2.log", "myListener");
            //myListener.WriteLine("Inicia Load de Imprimirguiablanco.aspx.");

            DsGuiaFacturaImpresion ds = (DsGuiaFacturaImpresion)Session["DatosGuia"];
            //DsOrdenRetiroImprimir dsoRdenes = (DsOrdenRetiroImprimir)Session["imprimirOrden"];

            DsHojaRutaRepartidor dsoRdenes = (DsHojaRutaRepartidor)Session["imprimirOrden"];

            DsOrdenRetiroImprimir.DatosRow dsOrdenR;
            int    cantCopias    = 0;
            string nombreArchivo = "";
            //SFE. Codigo barras AFIP
            string  nombreArchivoCBAFIP          = "";
            Boolean EsReImpresion                = false;
            bool    esFacturaRemito              = false;
            Boolean EsFacturaConceptoFacturacion = false;
            string  textoDorso      = "";
            bool    esGuiaRendicion = false;
            string  tipoGuia        = "";

            // Obtengo el texto del dorso de la guía
            //IGuiaDorso guiaDorso = GuiaDorsoFactory.GetGuiaDorso();
            //guiaDorso.UnidadNegocioID = UnidadNegocioID;
            //guiaDorso.Consultar();
            //string textoDorso = guiaDorso.Texto;

            // Obtengo el texto del dorso de la guía por la empresa de facturacion
            IGuia guia = GuiaFactory.GetGuia();

            if (ds != null)
            {
                double pesototal50  = ds.Datos[0].PesoTotal != null ? ds.Datos[0].PesoTotal : 0; // ds.Datos[0].;
                double pesoButlos50 = ds.Datos[0].PesoBulto != null ? ds.Datos[0].PesoBulto : 0;
                string canBul       = ds.Datos[0].IsCantidadBultosTotalNull()?"0": ds.Datos[0].CantidadBultosTotal.ToString();
                string remito       = ds.Datos[0].IsRemitoClienteNroNull() ? "0" : ds.Datos[0].RemitoClienteNro.ToString();
                string DomicilioRem = ds.Datos[0].IsDireccionRemitenteNull()?"N/A": ds.Datos[0].DireccionRemitente.ToString();
                string remi         = ds.Datos[0].IsNombreRemitenteNull() ? "" : ds.Datos[0].NombreRemitente.ToString();
                if (remi == "")
                {
                    remi = ds.Datos[0].IsNombreEmpresaRemitenteNull() ? "" : ds.Datos[0].NombreEmpresaRemitente.ToString();
                }
                string doc = ds.Datos[0].IsCUITEmpresaNull() ? "" : ds.Datos[0].CUITEmpresa.ToString();
                if (pesototal50 > 50 || pesoButlos50 > 50)//mayor a 50
                {
                    System.Web.UI.Control impresion;
                    impresion = Page.LoadControl("uc/ImprimirDeclaracionJuradaEV.ascx");

                    GuiaDominio gd   = new GuiaDominio();
                    string      text = gd.getTextoDorso(0).ToString();
                    textoDorso = text;

                    /* inicio declaracion jurada*/
                    //string existeDJ = gd.GetDeclaracionJurada(ds.Datos[0].GuiaID).ToString();

                    //if (existeDJ == "")//es para que no re imprima la declaracion jurada que se emitio
                    //    //FQuiroga 26/11
                    //{
                    //    //declaracion jurada
                    //    if (ds.Datos[0].EsFleteCobrar == true && remito == "0")
                    //    {//si es un fpd y pesa mas de 50 y no tiene remito
                    //     //tiene que gaurda el numero de declaracion jurada

                    //        string DJ = gd.GuiaDCINS(ds.Datos[0].GuiaID).ToString();
                    //        LlenarControlDJ(impresion, remi, DomicilioRem, pesototal50, canBul, doc, DJ);
                    //        phImpresion.Controls.Add(impresion);

                    //        // hago un salto de página
                    //        LiteralControl lt = new LiteralControl("<br style='page-break-after: always'>");
                    //        // no hace salto de página para la última hoja...
                    //        phImpresion.Controls.Add(lt);

                    //    }
                    //    if ((ds.Datos[0].TipoGuia == "B" || ds.Datos[0].TipoGuia == "A") && remito == "0")
                    //    {//eventuales sin remito
                    //        string DJ = gd.GuiaDCINS(ds.Datos[0].GuiaID).ToString();                                                                 //tiene que guardar declaracion
                    //        LlenarControlDJ(impresion, remi, DomicilioRem, pesototal50, canBul, doc, DJ);
                    //        phImpresion.Controls.Add(impresion);

                    //        // hago un salto de página
                    //        LiteralControl lt = new LiteralControl("<br style='page-break-after: always'>");
                    //        // no hace salto de página para la última hoja...
                    //        phImpresion.Controls.Add(lt);
                    //    }
                    //}
                    /* fin declaracion jurada*/
                }
                else
                {
                    //34 y35 bultos
                    IEmpresaFacturacion empresa = EmpresaFacturacionFactory.GetEmpresaFacturacion();
                    try
                    {
                        empresa.EmpresaFacturacionID = ds.Datos[0].EmpresaFacturacionID;
                    }
                    catch (Exception)
                    {
                        throw new Exception("No se configuró la empresa de facturacion para la agencia emisora de la guia.");
                    }
                    empresa.Consultar();
                    textoDorso = empresa.Texto;
                }

                // SFE: Imprimir la leyenda "Guia Rendicion" y el Nro de Rendicion si es Guia de Rendicion
                // IGuia guia = GuiaFactory.GetGuia();
                guia.GuiaID = ds.Datos[0].GuiaID;
                guia.ConsultarCompletoByGuiaID();
                //if (ds.Datos.Rows[0].IsEsFacturaConceptoFacturacionNull() == false && dr.EsFacturaConceptoFacturacion

                //if (|| (ds.Datos.Rows[0].IsNull("EsFacturaConceptoFacturacion") == false && Convert.ToBoolean( ds.Datos.Rows[0]["EsFacturaConceptoFacturacion"]
                Boolean _esFacturaConceptoFacturacion = false;

                try
                {
                    _esFacturaConceptoFacturacion = Convert.ToBoolean(ds.Datos.Rows[0]["EsFacturaConceptoFacturacion"]);
                }
                catch
                {
                    _esFacturaConceptoFacturacion = false;
                }

                esGuiaRendicion = false;
                string nroRendicionGuia = "";

                if (_esFacturaConceptoFacturacion == false)
                {
                    guia.GuiaID = ds.Datos[0].GuiaID;
                    guia.ConsultarCompletoByGuiaID();
                    if (guia.ClasificacionGuiaID == NegociosSisPackInterface.SisPack.ClasificacionGuia.Rendicion)
                    {
                        esGuiaRendicion  = true;
                        nroRendicionGuia = guia.GetNroRendicionGuia();
                        if (nroRendicionGuia != "")
                        {
                            nroRendicionGuia = "Nro de Rendición: " + nroRendicionGuia;
                        }

                        ds.Datos[0].Observaciones = nroRendicionGuia;
                    }
                    // SFE: Imprimir la leyenda "Guia Rendicion" y el Nro de Rendicion si es Guia de Rendicion
                }
            }
            if (dsoRdenes != null)
            {
                IEmpresaFacturacion empresa = EmpresaFacturacionFactory.GetEmpresaFacturacion();
                empresa.EmpresaFacturacionID = 1;// Convert.ToInt32(dsoRdenes.Ordenes.Rows.Datos[0].EmpresaFacturacion.ToString());
                empresa.Consultar();
                textoDorso = empresa.Texto;
                //cargo las ordenes de retiro
                DsOrdenRetiroImprimir dsOrdenes2 = new DsOrdenRetiroImprimir();
                IOrdenRetiro          ordenes    = OrdenRetiroFactory.GetOrdenRetiroFactory();
                string todas = "";
                foreach (DsHojaRutaRepartidor.OrdenesRow dsss in dsoRdenes.Ordenes.Rows)
                {
                    if (todas == "")
                    {
                        todas = dsss.OrdenRetiroID;
                    }
                    else
                    {
                        todas = todas + "," + dsss.OrdenRetiroID;
                    }
                }
                dsOrdenes2 = ordenes.GetOrdenRetiroPrint(todas);
                foreach (DsOrdenRetiroImprimir.DatosRow drOrd in dsOrdenes2.Datos)
                {
                    System.Web.UI.Control impresion;
                    impresion = Page.LoadControl("uc/ImprimirOrdenRetiro.ascx");
                    LlenarControlOrdenes(drOrd, impresion, nombreArchivo);

                    phImpresion.Controls.Add(impresion);

                    // hago un salto de página
                    LiteralControl lt = new LiteralControl("<br style='page-break-after: always'>");
                    // no hace salto de página para la última hoja...
                    phImpresion.Controls.Add(lt);
                }
            }

            //if (dsConcepto != null) {
            //    try
            //    {
            //        _esFacturaConceptoFacturacion = Convert.ToBoolean(dsoRdenes.Datos.Rows[0]["EsFacturaConceptoFacturacion"]);
            //    }
            //    catch
            //    {
            //        _esFacturaConceptoFacturacion = false;
            //    }

            //    foreach (DsGuiaFacturaImpresion.DatosRow drCon in dsConcepto.Datos.Rows)
            //    {
            //        System.Web.UI.Control impresion;
            //        impresion = Page.LoadControl("uc/ImprimirGuiaBlanco.ascx");

            //        LlenarControl(drCon, impresion, nombreArchivo);

            //        phImpresion.Controls.Add(impresion);

            //        // hago un salto de página
            //        LiteralControl lt = new LiteralControl("<br style='page-break-after: always'>");
            //        // no hace salto de página para la última hoja...
            //        phImpresion.Controls.Add(lt);

            //        if (drCon.IsEsFacturaConceptoFacturacionNull() == false && drCon.EsFacturaConceptoFacturacion)
            //        {
            //            EsFacturaConceptoFacturacion = true;
            //            // Se trata de una factura de un concepto de facturación.
            //            // 16/10/2013. Se solicito que si se trata de un concepto de facturacion se impriman la cantidad de cuerpos que se definen en el ABM de conceptos de facturacion.
            //            IConceptoFacturacion concepto = ConceptoFacturacionFactory.GetConceptoFacturacion();
            //            concepto.GetOne(148);
            //            if (concepto.CantCuerposImprGuia > 0)
            //            {
            //                cantCopias = concepto.CantCuerposImprGuia ?? 0;
            //            }
            //            else
            //            {
            //                IFactura factura = FacturaFactory.GetFactura();
            //                cantCopias = factura.GetCantCuerposImprFacturaRemito();
            //                factura = null;
            //            }
            //        }
            //    }

            //}
            // }Cargo los comprobantes
            if (ds != null)
            {
                int ComprobanteActual = 1;
                foreach (DsGuiaFacturaImpresion.DatosRow dr in ds.Datos.Rows)
                {
                    // Reviso si se paso la cantidad de copias a imprimir o hay que obtenerlo de los parametros
                    if (Request.QueryString["CantCopias"] == "" || Request.QueryString["CantCopias"] == null)
                    {
                        // No se paso la cantidad de copias a imprimir.
                        // Obtengo de los parámetros generales cuántas copias del cuerpo se deben imprimir en la agencia origen

                        /* VSA 01-09-2009 Permitir parametrizar la cantidad de copias a imprimir para la guía */
                        // Reviso si se trata de una guía o factura
                        if (dr.IsEsFacturaConceptoFacturacionNull() == false && dr.EsFacturaConceptoFacturacion)
                        {
                            EsFacturaConceptoFacturacion = true;
                            // Se trata de una factura de un concepto de facturación.
                            // 16/10/2013. Se solicito que si se trata de un concepto de facturacion se impriman la cantidad de cuerpos que se definen en el ABM de conceptos de facturacion.
                            IConceptoFacturacion concepto = ConceptoFacturacionFactory.GetConceptoFacturacion();
                            concepto.GetOne(dr.ConceptoFacturacionID);
                            if (concepto.CantCuerposImprGuia > 0)
                            {
                                cantCopias = concepto.CantCuerposImprGuia ?? 0;
                            }
                            else
                            {
                                IFactura factura = FacturaFactory.GetFactura();
                                cantCopias = factura.GetCantCuerposImprFacturaRemito();
                                factura    = null;
                            }
                        }
                        else if (dr.IsEsFacturaRemitoNull() || dr.EsFacturaRemito == false)
                        {
                            // Se trata de una guía
                            // Verifico si en el campo "CantidadCopiasImprimir" viene asignada la cantidad de copias, si es asi, es porque se llamo desde la Hoja de Ruta del Repartidor y se esta reimprimiendo una guia desde ese modulo
                            // Si no se debe buscar en la base la cantidad de copias a imprimir.
                            if (((DsGuiaFacturaImpresion.DatosRow)ds.Datos.Rows[0]).IsCantidadCopiasImprimirNull())
                            {
                                // Debo buscar en la base la cantidad de copias a imprimir.
                                IGuia cantAImprGuia = GuiaFactory.GetGuia();
                                cantAImprGuia.GuiaID          = ((DsGuiaFacturaImpresion.DatosRow)ds.Datos.Rows[0]).GuiaID;
                                cantAImprGuia.UnidadNegocioID = UnidadNegocioID;
                                cantCopias    = cantAImprGuia.GetCantCuerposImprGuia();
                                cantAImprGuia = null;
                            }
                            else
                            {
                                //Viene asignada la cantidad de copias, se llamo desde la Hoja de Ruta del Repartidor y se esta reimprimiendo una guia desde ese modulo
                                try
                                {
                                    cantCopias = ((DsGuiaFacturaImpresion.DatosRow)ds.Datos.Rows[0]).CantidadCopiasImprimir;
                                }
                                catch { cantCopias = 1; }
                            }
                            esFacturaRemito = false;
                        }
                        else
                        {
                            // Se trata de una factura
                            IFactura factura = FacturaFactory.GetFactura();
                            cantCopias      = factura.GetCantCuerposImprFacturaRemito();
                            factura         = null;
                            esFacturaRemito = true;
                        }
                    }
                    else
                    {
                        // Si se paso la cantidad de copias a imprimir
                        cantCopias    = Utiles.Validaciones.obtieneEntero(Request.QueryString["CantCopias"]);
                        EsReImpresion = true;

                        // Reviso si se trata de una guía o factura
                        if (dr.IsEsFacturaRemitoNull() || dr.EsFacturaRemito == false)
                        {
                            esFacturaRemito = false;
                        }
                        else if (dr.IsEsFacturaConceptoFacturacionNull() == false && dr.EsFacturaConceptoFacturacion)
                        {
                            // Se trata de una factura de un concepto de facturación
                            EsFacturaConceptoFacturacion = true;
                        }
                        else
                        {
                            esFacturaRemito = true;
                        }
                        if (dr.IsEsFacturaConceptoFacturacionNull() == false && dr.EsFacturaConceptoFacturacion)
                        {
                            // Se trata de una factura de un concepto de facturación
                            EsFacturaConceptoFacturacion = true;
                        }
                    }

                    //}
                    // Cargo las copias del comprobante que se esta procesando
                    for (int i = 0; i < cantCopias; i++)
                    {
                        System.Web.UI.Control impresion;
                        if (guia.ClasificacionGuiaID == NegociosSisPackInterface.SisPack.ClasificacionGuia.UnidadLogistica)
                        {
                            impresion = Page.LoadControl("uc/ImprimirGuiaUnidadLogistica.ascx");
                        }
                        else
                        {
                            impresion = Page.LoadControl("uc/ImprimirGuiaBlanco.ascx");
                        }
                        LlenarControl(dr, impresion, nombreArchivo);
                        // cargo el control de impresión...
                        impresion.ID = "ImpreBlanco" + i.ToString();

                        // Creo la imagen del CB
                        if (i == 0)
                        {
                            nombreArchivo = CrearImagenCB(((IGuiaImpresion)impresion).TipoGuia, ((IGuiaImpresion)impresion).NroSucursal, ((IGuiaImpresion)impresion).NroGuia);

                            // SFE: Codigo Barras AFIP
                            nombreArchivoCBAFIP = CrearImagenCBAFIP(((IGuiaImpresion)impresion).TipoGuia, ((IGuiaImpresion)impresion).NroSucursal, ((IGuiaImpresion)impresion).NumeroCAI, ((IGuiaImpresion)impresion).FechaVencimientoCAI);
                        }
                        // Termino de cargar los datos
                        ((IGuiaImpresion)impresion).RutaCodigoBarras = nombreArchivo + "-" + this.AgenciaConectadaID.ToString();

                        // SFE: Codigo Barras AFIP.
                        ((IGuiaImpresion)impresion).RutaCodigoBarrasAFIP = nombreArchivoCBAFIP + "-" + this.AgenciaConectadaID.ToString();

                        if (EsReImpresion == false)
                        {
                            ((IGuiaImpresion)impresion).DescripcionFormulario = ObtenerDescripcion(i + 1, EsFacturaConceptoFacturacion);
                            ((IGuiaImpresion)impresion).EsReimpresion         = false;
                        }
                        else
                        {
                            ((IGuiaImpresion)impresion).DescripcionFormulario = ObtenerDescripcion(3, EsFacturaConceptoFacturacion);
                            ((IGuiaImpresion)impresion).EsReimpresion         = true;
                        }
                        ((IGuiaImpresion)impresion).TextoDorso      = textoDorso;
                        ((IGuiaImpresion)impresion).EsGuiaRendicion = esGuiaRendicion;
                        ((IGuiaImpresion)impresion).EsFacturaRemito = esFacturaRemito;
                        ((IGuiaImpresion)impresion).EsFacturaConceptoFacturacion = EsFacturaConceptoFacturacion;
                        phImpresion.Controls.Add(impresion);

                        // hago un salto de página
                        //tipoGuia = dr.IsTipoGuiaNull() ? "" : dr.TipoGuia;
                        //System.Web.HttpBrowserCapabilities browser = Request.Browser;
                        //string name = browser.Browser;
                        //float version = (float)(browser.MajorVersion + browser.MinorVersion);
                        //if ((name != "Chrome" && version >= 8) && (name != "Firefox" && version >= 8) && (name == "IE" && version > 8) && (tipoGuia == "R"))
                        //{
                        LiteralControl lt = new LiteralControl("<br style='page-break-after: always'>");
                        // no hace salto de página para la última hoja...
                        if (i + 1 < cantCopias || ComprobanteActual < ds.Datos.Rows.Count)
                        {
                            phImpresion.Controls.Add(lt);
                        }
                        //}
                    }
                    ComprobanteActual++;
                }

                //myListener.WriteLine("Finaliza Load de Imprimirguiablanco.aspx.");
                //myListener.Flush();
            }
        }
Exemple #15
0
        private void GuardarConcepto(GridViewCommandEventArgs e)
        {
            try
            {
                GridViewRow item         = this.gvConceptosFacturacion2.Rows[this.gvConceptosFacturacion2.EditIndex];
                TextBox     CodigoBarras = (TextBox)item.FindControl("txtCodigoBarrasConcepto");

                //para que valide que el CB ingresado no corresponde a una unidad de venta FQ18/01/2015
                ICodigoBarras cb = CodigoBarrasFactory.GetCodigoBarras();
                if (cb.validaCBProducto(CodigoBarras.Text) > 0)
                {
                    string script = string.Empty;

                    errores.Visible = true;
                    errores.Text    = ("El código de barras " + CodigoBarras.Text + " no es válido para esta sección ya que está vinculado a una Unidad de Venta o Servicio. Debe ingresarlo en la sección de Codigo de Barras");
                    ScriptManager.RegisterClientScriptBlock(this.upd1, upd1.GetType(), "muestraMensaje4", script, true);
                    return;
                }

                /* Obtener los datos de la grilla. */
                dtConceptoFacturacion = (dsConceptoFacturacion.ConceptoDataTable)Session["dtConceptoFacturacion"];

                /* Posicionarse en el registro deseado. */
                dsConceptoFacturacion.ConceptoRow dr;
                dr = (dsConceptoFacturacion.ConceptoRow)dtConceptoFacturacion.Rows[Convert.ToInt32(e.CommandArgument)];

                IConceptoFacturacion conceptoFacturacion = ConceptoFacturacionFactory.GetConceptoFacturacion();
                //conceptoFacturacion.ConceptoFacturacionId = dr.ConceptoFacturacionID;

                DropDownList concepto = (DropDownList)item.FindControl("ddlConceptoFacturacion");
                string       selValue = concepto.SelectedValue;
                dr.ConceptoFacturacionID = selValue == "" ? 0 : Convert.ToInt32(selValue);
                dr.Descripcion           = concepto.SelectedItem.Text.Trim();

                if (dr.ConceptoFacturacionID == 0)
                {
                    string script = string.Empty;
                    script         += "alert('Debe seleccionar un concepto de facturación.');\n";
                    errores.Visible = true;
                    errores.Text    = " El código de barras " + CodigoBarras.Text + " no es válido.";
                    ScriptManager.RegisterClientScriptBlock(this.upd1, upd1.GetType(), "muestraMensaje4", script, true);

                    return;
                }

                ICodigoBarras codigoBarra = CodigoBarrasFactory.GetCodigoBarras();
                if (CodigoBarras.Text.Length > 0 && CodigoBarras.Text != string.Empty)
                {
                    txtClienteIDD.Text = "0";
                    int ClienteCoorporativoID = Convert.ToInt32(txtClienteIDD.Text);
                    // valida que el codigo se haya asignado a la agencia o al cliente
                    if (codigoBarra.ValidarCodigoBarras(CodigoBarras.Text, AgenciaConectadaID, ClienteCoorporativoID) == false)
                    {
                        string script = string.Empty;

                        errores.Visible = true;
                        errores.Text    = " El código de barras " + CodigoBarras.Text + " no es válido.";

                        ScriptManager.RegisterClientScriptBlock(this.upd1, upd1.GetType(), "muestraMensaje4", script, true);
                        return;
                    }

                    // valida que no se ingrese el mismo codigo mas de una vez
                    if ((this.dtConceptoFacturacion.Select("CodigoBarras like '" + CodigoBarras.Text + "'").Length > 0) && CodigoBarras.Text != string.Empty)
                    {
                        string script = string.Empty;

                        errores.Visible = true;
                        errores.Text    = "a se ha ingresado el código de barras " + CodigoBarras.Text + ".";

                        ScriptManager.RegisterClientScriptBlock(this.upd1, upd1.GetType(), "muestraMensaje4", script, true);
                        return;
                    }
                }
                conceptoFacturacion.GetOne(dr.ConceptoFacturacionID);
                TextBox NroPrecinto = (TextBox)item.FindControl("txtNroPrecinto");
                TextBox HorasDias   = (TextBox)item.FindControl("txtHorasDias");

                if (((conceptoFacturacion.RequiereDatosObligatorio ?? false) == true) && (NroPrecinto.Text == string.Empty))
                {
                    string script = string.Empty;
                    // script += "alert('Debe ingresar un número de precinto para el servicio.');\n";

                    //((ErrorWeb)this.phErrores.Controls[0]).setMensaje("Debe ingresar un número de precinto para el servicio.");
                    errores.Visible = true;
                    errores.Text    = "Debe ingresar un número de precinto para el servicio.";

                    ScriptManager.RegisterClientScriptBlock(this.upd1, upd1.GetType(), "muestraMensaje4", script, true);
                    return;
                }


                // Si tiene tarifario por horas o dias, habilitar el textbox de horas/dias
                if (((conceptoFacturacion.TipoTarifarioConceptoFacturableID == (int)NegociosSisPackInterface.SisPack.TipoTarifarioConceptoFacturable.Tarifariosporhoras) || (conceptoFacturacion.TipoTarifarioConceptoFacturableID == (int)NegociosSisPackInterface.SisPack.TipoTarifarioConceptoFacturable.Tarifariospordías)) && (HorasDias.Text == string.Empty))
                {
                    string script = string.Empty;
                    // script += "alert('Debe ingresar la cantidad de horas o días para el servicio.');\n";

                    //  ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("Debe ingresar la cantidad de horas o días para el servicio.");
                    errores.Text = "Debe ingresar la cantidad de horas o días para el servicio.";
                    ScriptManager.RegisterClientScriptBlock(this.upd1, upd1.GetType(), "muestraMensaje4", script, true);
                    return;
                }

                dr.HorasDias    = HorasDias.Text.Trim().Equals("") ? 0 : Utiles.Validaciones.obtieneEntero(HorasDias.Text.Trim());
                dr.NroPrecinto  = NroPrecinto.Text.Trim().Equals("") ? string.Empty : NroPrecinto.Text.Trim();
                dr.CodigoBarras = CodigoBarras.Text.Trim().Equals("") ? string.Empty : CodigoBarras.Text.Trim();
                dtConceptoFacturacion[Convert.ToInt32(e.CommandArgument)].HorasDias                         = dr.HorasDias;
                dtConceptoFacturacion[Convert.ToInt32(e.CommandArgument)].Descripcion                       = dr.Descripcion;
                dtConceptoFacturacion[Convert.ToInt32(e.CommandArgument)].NroPrecinto                       = dr.NroPrecinto;
                dtConceptoFacturacion[Convert.ToInt32(e.CommandArgument)].CodigoBarras                      = dr.CodigoBarras;
                dtConceptoFacturacion[Convert.ToInt32(e.CommandArgument)].ConceptoFacturacionID             = dr.ConceptoFacturacionID;
                dtConceptoFacturacion[Convert.ToInt32(e.CommandArgument)].TipoTarifarioConceptoFacturableID = conceptoFacturacion.TipoTarifarioConceptoFacturableID ?? 0;
                dtConceptoFacturacion[Convert.ToInt32(e.CommandArgument)].RequiereDatosObligatorio          = conceptoFacturacion.RequiereDatosObligatorio ?? false;
                dtConceptoFacturacion[Convert.ToInt32(e.CommandArgument)].EsNuevo = false;

                if (dr.RequiereDatosObligatorio)
                {
                    //Inserto el tipo de bulto Bolsa de seguridad
                    if (ddlTipoBulto.Items.FindByValue("3") == null)
                    {
                        ddlTipoBulto.Items.Add(new ListItem("Bolsa de Seguridad", "3"));
                        ddlTipoBulto.DataBind();
                        ddlTipoBulto.SelectedValue = "3";
                        ddlTipoBulto.Enabled       = false;
                    }
                }

                dr = null;
                conceptoFacturacion = null;

                gvConceptosFacturacion2.EditIndex = -1;
                Session["dtConceptoFacturacion"]  = dtConceptoFacturacion;
                BindGridConceptosFacturacion(gvConceptosFacturacion2.PageIndex);
                butNuevoConcepto.Enabled = true;
                //butIngresoConceptos.Enabled = true;

                errores.Visible = false;
                errores.Text    = "";
            }
            catch (Exception ex)
            {
                string script = string.Empty;
                errores.Visible = true;
                errores.Text    = ex.Message;
                ScriptManager.RegisterClientScriptBlock(this.upd1, upd1.GetType(), "muestraMensaje4", script, true);
                return;
                //                ((ErrorWeb)this.phErrores.Controls[0]).setMensaje(ex.Message);
            }
        }
Exemple #16
0
        private void CargarConceptosModalidadEntrega()
        {
            try
            {
                IConceptoFacturacion  concepto           = ConceptoFacturacionFactory.GetConceptoFacturacion();
                dsConceptoFacturacion dsConceptosAgregar = new dsConceptoFacturacion();

                if (Session["dtConceptoFacturacionModalidadEntrega"] == null)
                {
                    /*Recargar la session. */
                    //el 0 cambiarlo por el tipo de cliente real
                    dsConceptosAgregar = concepto.GetListConceptosParaEmisionModalidadEntregaByAgenciaID(AgenciaConectadaID, 0);
                }
                else
                {
                    /*No se realiza nuevamente la consulta*/
                    dsConceptosAgregar = (dsConceptoFacturacion)Session["dtConceptoFacturacionModalidadEntrega"];
                }

                // Recorro cada concepto a agregar
                foreach (dsConceptoFacturacion.ConceptoRow item in dsConceptosAgregar.Concepto)
                {
                    if (dtConceptoFacturacion != null)
                    {
                        // Desarrollo de Emision de Conceptos con Codigos de Barras. Se permite repetir el concepto
                        /*Por cada fila ver que no este ya en sesion el código de barras, y agregarla*/
                        //if (dtConceptoFacturacion.Select("CodigoBarras like '" + (item.CodigoBarras).ToString().Trim() + "'").Length == 0)
                        //{
                        //Si no esta lo agrego
                        dsConceptoFacturacion.ConceptoRow dr = dsConceptosAgregar.Concepto.NewConceptoRow();

                        /* Inicializar los valores */
                        dr.ConceptoFacturacionID = item.ConceptoFacturacionID;
                        dr.Cantidad    = item.Cantidad;
                        dr.NroPrecinto = item.NroPrecinto;
                        //dr.HorasDias = item.HorasDias;
                        dr.Descripcion  = item.Descripcion;
                        dr.CodigoBarras = item.CodigoBarras;
                        dtConceptoFacturacion.AddConceptoRow(item.ConceptoFacturacionID, item.Descripcion, 0, 0, 0, item.NroPrecinto, item.TipoTarifarioConceptoFacturableID, item.RequiereDatosObligatorio, 0, false, item.CodigoBarras);
                        dtConceptoFacturacion.AcceptChanges();
                        Session["dtConceptoFacturacion"] = dtConceptoFacturacion;

                        dr = null;
                        //}
                    }
                    // Esta variable es para que no todas las agencias vayan al servidor cuando cambia la modalidad de entrega, solo van a cargar los que tienen al menos un concepto de facturacion que se carga con la modalidad de entrega.
                    txtCargarConceptosEnModalidadEntrega.Text = "1";
                }
                /*Cargar en session el resultado final*/
                //Session["dtConceptoFacturacion"] = dtConceptoFacturacion;
                /*Bindear la grilla*/
                BindGridConceptosFacturacion(0);
                errores.Visible = false;
                errores.Text    = "";
            }
            catch (Exception ex)
            {
                string script = string.Empty;
                errores.Visible = true;
                errores.Text    = (ex.Message);
                ScriptManager.RegisterClientScriptBlock(this.upd1, upd1.GetType(), "muestraMensaje4", script, true);
                return;
            }
        }
Exemple #17
0
        private Boolean ValidarEmision()
        {
            // Valido los datos
            rfvConceptoFacturacionGuardar.Validate();
            if (rfvConceptoFacturacionGuardar.IsValid == false)
            {
                return(false);
            }

            IConceptoFacturacion datosConcepto = ConceptoFacturacionFactory.GetConceptoFacturacion();

            datosConcepto.GetOne(Convert.ToInt32(ddlConceptoFacturacion.SelectedValue));

            if (datosConcepto.AsociarAGuia ?? false)
            {
                cvNroGuia.Validate();
                if (cvNroGuia.IsValid == false)
                {
                    return(false);
                }
            }

            if ((datosConcepto.TieneValorFijo ?? false) == false)
            {
                rfvTopeGuardar.Validate();
                if (rfvTopeGuardar.IsValid == false)
                {
                    return(false);
                }
            }

            if (rbtTarjetaDeCredito.Checked)
            {
                validPagoEnDestino.Validate();
                if (validPagoEnDestino.IsValid == false)
                {
                    return(false);
                }

                rfvNroLote.Validate();
                if (rfvNroLote.IsValid == false)
                {
                    return(false);
                }

                rfvNroCupon.Validate();
                if (rfvNroCupon.IsValid == false)
                {
                    return(false);
                }
            }
            else if (rbtCtaCte.Checked)
            {
                validCtaCte.Validate();
                if (validCtaCte.IsValid == false)
                {
                    return(false);
                }
            }

            if (ClienteFacturacion1.ValidarGuardar() == false)
            {
                return(false);
            }

            // Busco el listado de conceptos que puede emitir el cliente
            datosConcepto.GetListConceptosClientesByCliente(ClienteFacturacion1.ClienteCorporativoID ?? 0);

            // Reviso si el concepto de facturación tiene algun dato obligatorio para el cliente
            if ((from c in datosConcepto.LstConceptoClientes
                 where c.ConceptoFacturacionID == datosConcepto.ConceptoFacturacionId
                 select c).FirstOrDefault() != null)
            {
                // Busco el concepto
                IConceptoFacturacionCliente concepto = (from c in datosConcepto.LstConceptoClientes
                                                        where c.ConceptoFacturacionID == datosConcepto.ConceptoFacturacionId
                                                        select c).FirstOrDefault();
                // Es obligatorio el Nro de remito
                if (concepto.EsObligatorioNroRemito == true)
                {
                    rfvNroRemitoCliente.Enabled = true;
                    rfvNroRemitoCliente.Validate();
                    if (rfvNroRemitoCliente.IsValid == false)
                    {
                        //rfvNroRemitoCliente.Enabled = true;
                        return(false);
                    }
                }

                // Es obligatorio el Nro de Factura
                if (concepto.EsObligatorioNroFactura == true)
                {
                    rfvNroFacturaCliente.Enabled = true;
                    rfvNroFacturaCliente.Validate();
                    if (rfvNroFacturaCliente.IsValid == false)
                    {
                        return(false);
                    }
                }

                // Es obligatorio el Nro de Hoja de Ruta
                if (concepto.EsObligatorioHojaRuta == true)
                {
                    rfvNroHojaRutaCliente.Enabled = true;
                    rfvNroHojaRutaCliente.Validate();
                    if (rfvNroHojaRutaCliente.IsValid == false)
                    {
                        return(false);
                    }
                }
            }

            // Los datos son válidos
            return(true);
        }
        protected void dtgComisiones_Update(object sender, DataGridCommandEventArgs e)
        {
            this.dsComisionesAgencias = (DsComisionesAgencias)Session["dsComisionesAgenciasMasivo"];
            DsComisionesAgencias.DatosRow dr = (DsComisionesAgencias.DatosRow) this.dsComisionesAgencias.Datos.Rows[e.Item.DataSetIndex];

            RadioButton rbtPorcentaje = (RadioButton)e.Item.FindControl("rbtPorcentaje");

            if (rbtPorcentaje.Checked)
            {
                RequiredFieldValidator req;
                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;
                }

                if (dr.ConfigurarConceptoComision)
                {
                    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;
            }

            IComisionAgencia comisionAgencia = ComisionAgenciaFactory.GetComisionAgencia();

            for (int j = lstAgencia.Items.Count - 1; j >= 0; j--)
            {
                if (lstAgencia.Items[j].Selected)
                {
                    comisionAgencia.AgenciasID.Add(Utiles.Validaciones.obtieneEntero(lstAgencia.Items[j].Value));
                }
            }

            comisionAgencia.ConceptoComisionEntidadID = dr.ConceptoComisionEntidadID;

            if (rbtPorcentaje.Checked)
            {
                comisionAgencia.ComisionPorcentaje  = dr.IsComisionPorcentajeNull() ? 0 : dr.ComisionPorcentaje;
                comisionAgencia.BaseCalculo         = (NegociosSisPackInterface.SisPack.BaseCalculo)(dr.IsBaseCalculoIDNull() || dr.ComisionPorcentaje == 0 ? 0 : dr.BaseCalculoID);
                comisionAgencia.ComisionImporteFijo = 0;

                //control de que la suma de porcentajes para ese concepto de comision no supere el maximo permitido
                if (dr.ConfigurarConceptoComision)
                {
                    //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 (DsComisionesAgencias.DatosRow drConceptoComisionAgencia in this.dsComisionesAgencias.Datos)
                                {
                                    conceptoComisionEntidad.ConceptoComisionEntidadID = drConceptoComisionAgencia.ConceptoComisionEntidadID;
                                    conceptoComisionEntidad.Consultar();

                                    if (((int)conceptoComisionEntidad.ConceptoComision) == conceptoComisionID && drConceptoComisionAgencia.ConceptoComisionEntidadID != dr.ConceptoComisionEntidadID && (int)conceptoComisionEntidad.EntidadComision != 8 /*8 = andesmar*/)
                                    {
                                        suma += drConceptoComisionAgencia.IsComisionPorcentajeNull() ? 0 : drConceptoComisionAgencia.ComisionPorcentaje;
                                    }
                                }
                                suma += dr.IsComisionPorcentajeNull() || (int)conceptoComisionEntidad.EntidadComision == 8 /*8 = andesmar*/ ? 0 : dr.ComisionPorcentaje;
                                if (suma > porcentajeMaximo)
                                {
                                    ((SisPacK.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
                {
                    IConceptoFacturacion conceptoFacturacion = ConceptoFacturacionFactory.GetConceptoFacturacion();
                    conceptoFacturacion.GetOne(dr.ConceptoFacturacionID);

                    if (conceptoFacturacion.PorcentajeMaximoComision != null)
                    {
                        double porcentajeMaximo      = conceptoFacturacion.PorcentajeMaximoComision ?? 0;
                        int    conceptoFacturacionID = dr.ConceptoFacturacionID;
                        double suma = 0;

                        IConceptoComisionEntidad conceptoComisionEntidad = ConceptoComisionEntidadFactory.GetConceptoComisionEntidad();

                        foreach (DsComisionesAgencias.DatosRow drConceptoComisionAgencia in this.dsComisionesAgencias.Datos)
                        {
                            conceptoComisionEntidad.ConceptoComisionEntidadID = drConceptoComisionAgencia.ConceptoComisionEntidadID;
                            conceptoComisionEntidad.Consultar();

                            if (conceptoComisionEntidad.ConceptoFacturacionID == conceptoFacturacionID && drConceptoComisionAgencia.ConceptoComisionEntidadID != dr.ConceptoComisionEntidadID && (int)conceptoComisionEntidad.EntidadComision != 8 /*8 = andesmar*/)
                            {
                                suma += drConceptoComisionAgencia.IsComisionPorcentajeNull() ? 0 : drConceptoComisionAgencia.ComisionPorcentaje;
                            }
                        }
                        suma += dr.IsComisionPorcentajeNull() || (int)conceptoComisionEntidad.EntidadComision == 8 /*8 = andesmar*/ ? 0 : dr.ComisionPorcentaje;
                        if (suma > porcentajeMaximo)
                        {
                            ((SisPacK.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
            {
                comisionAgencia.ComisionImporteFijo = dr.IsComisionImporteFijoNull() ? 0 : dr.ComisionImporteFijo;
                comisionAgencia.ComisionPorcentaje  = 0;
                comisionAgencia.BaseCalculo         = 0;

                //control de que la suma de importes fijos para ese concepto de comision no supere el maximo permitido
                if (dr.ConfigurarConceptoComision)
                {
                    //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 (DsComisionesAgencias.DatosRow drConceptoComisionAgencia in this.dsComisionesAgencias.Datos)
                                {
                                    conceptoComisionEntidad.ConceptoComisionEntidadID = drConceptoComisionAgencia.ConceptoComisionEntidadID;
                                    conceptoComisionEntidad.Consultar();

                                    if (((int)conceptoComisionEntidad.ConceptoComision) == conceptoComisionID && drConceptoComisionAgencia.ConceptoComisionEntidadID != dr.ConceptoComisionEntidadID && (int)conceptoComisionEntidad.EntidadComision != 8 /*8 = andesmar*/)
                                    {
                                        suma += drConceptoComisionAgencia.IsComisionImporteFijoNull() ? 0 : drConceptoComisionAgencia.ComisionImporteFijo;
                                    }
                                }
                                suma += dr.IsComisionImporteFijoNull() || (int)conceptoComisionEntidad.EntidadComision == 8 /*8 = andesmar*/ ? 0 : dr.ComisionImporteFijo;
                                if (suma > importeFijoMaximo)
                                {
                                    ((SisPacK.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;
                                }
                            }
                        }
                    }
                }
                else
                {
                    // control de que la suma de porcentajes para ese concepto de facturación no supere el maximo permitido
                    IConceptoFacturacion conceptoFacturacion = ConceptoFacturacionFactory.GetConceptoFacturacion();
                    conceptoFacturacion.GetOne(dr.ConceptoFacturacionID);


                    if (conceptoFacturacion.ImporteMaximoComision != null)
                    {
                        double importeFijoMaximo     = conceptoFacturacion.ImporteMaximoComision ?? 0;
                        int    conceptoFacturacionID = dr.ConceptoFacturacionID;
                        double suma = 0;

                        IConceptoComisionEntidad conceptoComisionEntidad = ConceptoComisionEntidadFactory.GetConceptoComisionEntidad();

                        foreach (DsComisionesAgencias.DatosRow drConceptoComisionAgencia in this.dsComisionesAgencias.Datos)
                        {
                            conceptoComisionEntidad.ConceptoComisionEntidadID = drConceptoComisionAgencia.ConceptoComisionEntidadID;
                            conceptoComisionEntidad.Consultar();

                            if (conceptoComisionEntidad.ConceptoFacturacionID == conceptoFacturacionID && drConceptoComisionAgencia.ConceptoComisionEntidadID != dr.ConceptoComisionEntidadID && (int)conceptoComisionEntidad.EntidadComision != 8 /*8 = andesmar*/)
                            {
                                suma += drConceptoComisionAgencia.IsComisionImporteFijoNull() ? 0 : drConceptoComisionAgencia.ComisionImporteFijo;
                            }
                        }
                        suma += dr.IsComisionImporteFijoNull() || (int)conceptoComisionEntidad.EntidadComision == 8 /*8 = andesmar*/ ? 0 : dr.ComisionImporteFijo;
                        if (suma > importeFijoMaximo)
                        {
                            ((SisPacK.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 (comisionAgencia.EstadoComision == NegociosSisPackInterface.SisPack.EstadoComision.Ninguno)
            {
                comisionAgencia.EstadoComision = NegociosSisPackInterface.SisPack.EstadoComision.Habilitada;
            }

            try
            {
                string script = "";
                if (comisionAgencia.GuardarMasivo(usuario))
                {
                    this.dtgComisiones.EditItemIndex      = -1;
                    Session["dsComisionesAgenciasMasivo"] = null;
                    this.BindGrilla();
                    this.txtRazonSocialBusqueda.Text = string.Empty;
                    BuscarAgencias();

                    script += "			alert('Los datos se guardaron correctamente.');\n";;
                    ScriptManager.RegisterClientScriptBlock(this.UpdatePanel1,
                                                            UpdatePanel1.GetType(),
                                                            "muestraMensaje",
                                                            script,
                                                            true);
                }
                else
                {
                    script += "			alert('Los datos no se guardaron debido a errores.');\n";;
                    ScriptManager.RegisterClientScriptBlock(this.UpdatePanel1,
                                                            UpdatePanel1.GetType(),
                                                            "muestraMensaje",
                                                            script,
                                                            true);
                }
            }
            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;
                }
                ((SisPacK.ErrorWeb) this.phErrores.Controls[0]).setMensaje(mensaje);
            }
        }
        protected void dtgComisiones_Update(object sender, DataGridCommandEventArgs e)
        {
            try
            {
                RadioButton rbtPorcentaje          = (RadioButton)e.Item.FindControl("rbtPorcentaje");
                RadioButton rbtConceptoComision    = (RadioButton)e.Item.FindControl("rbtConceptoComision");
                RadioButton rbtConceptoFacturacion = (RadioButton)e.Item.FindControl("rbtConceptoFacturacion");

                if (rbtConceptoComision.Checked)
                {
                    RequiredFieldValidator reqddlEntidadComision = (RequiredFieldValidator)((PlaceHolder)e.Item.FindControl("phValidConceptoComision")).FindControl("reqddlEntidadComision");
                    reqddlEntidadComision.Enabled = true;
                    reqddlEntidadComision.Validate();
                    if (reqddlEntidadComision.IsValid == false)
                    {
                        //reqddlEntidadComision.Enabled = false;
                        return;
                    }
                }
                else
                {
                    RequiredFieldValidator reqddlConceptoFacturacion = (RequiredFieldValidator)((PlaceHolder)e.Item.FindControl("phValidConceptoComision")).FindControl("reqddlConceptoFacturacion");
                    reqddlConceptoFacturacion.Enabled = true;
                    reqddlConceptoFacturacion.Validate();
                    if (reqddlConceptoFacturacion.IsValid == false)
                    {
                        //reqddlConceptoFacturacion.Enabled = false;
                        return;
                    }
                }

                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;
                    }

                    if (rbtConceptoComision.Checked)
                    {
                        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 = (DsConceptosComisionesEntidades)Session["dsComisiones"];
                DsConceptosComisionesEntidades.DatosRow dr = (DsConceptosComisionesEntidades.DatosRow) this.dsComisiones.Datos.Rows[e.Item.DataSetIndex];

                IConceptoComisionEntidad cce = ConceptoComisionEntidadFactory.GetConceptoComisionEntidad();
                cce.ConceptoComisionEntidadID = dr.ConceptoComisionEntidadID;
                cce.ConceptoComision          = (NegociosSisPackInterface.SisPack.ConceptoComision)dr.ConceptoComisionID;
                cce.ConceptoFacturacionID     = dr.ConceptoFacturacionID;
                cce.EntidadComision           = (NegociosSisPackInterface.SisPack.EntidadComision)dr.EntidadComisionID;

                if (rbtPorcentaje.Checked)
                {
                    cce.ComisionPorcentaje  = dr.IsComisionPorcentajeNull() ? 0 : dr.ComisionPorcentaje;
                    cce.BaseCalculo         = (NegociosSisPackInterface.SisPack.BaseCalculo)(dr.IsBaseCalculoIDNull() ? 0 : dr.BaseCalculoID);
                    cce.ComisionImporteFijo = 0;

                    if (cce.BaseCalculo == NegociosSisPackInterface.SisPack.BaseCalculo.GananciaRedespacho &&
                        (
                            cce.ConceptoComision != NegociosSisPackInterface.SisPack.ConceptoComision.Redespacho ||
                            !(cce.EntidadComision == NegociosSisPackInterface.SisPack.EntidadComision.Vendedor ||
                              cce.EntidadComision == NegociosSisPackInterface.SisPack.EntidadComision.SupervisorGeneral ||
                              cce.EntidadComision == 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());
                    }

                    //control de que la suma de porcentajes para ese concepto de comision no supere el maximo permitido
                    if (dr.ConfigurarConceptoComision)
                    {
                        System.Data.DataRow[] drConceptoComision = (System.Data.DataRow[]) this.dsConceptosComisiones.Tables[0].Select("ConceptoComisionID=" + dr.ConceptoComisionID);
                        if (drConceptoComision.Length > 0)
                        {
                            if (Convert.ToInt32(dr.EntidadComisionID) != 8 && Convert.ToInt32(dr.EntidadComisionID) != 9) //hacemos el control si la entidad no es Andesmar
                            {
                                if (drConceptoComision[0]["PorcentajeMaximo"] != System.DBNull.Value)
                                {
                                    double porcentajeMaximo   = Convert.ToDouble(drConceptoComision[0]["PorcentajeMaximo"]);
                                    int    conceptoComisionID = Convert.ToInt32(drConceptoComision[0]["ConceptoComisionID"]);
                                    double suma = 0;
                                    foreach (DsConceptosComisionesEntidades.DatosRow drConceptoComisionEntidad in this.dsComisiones.Datos)
                                    {
                                        if (drConceptoComisionEntidad.IsConceptoComisionIDNull() == false && drConceptoComisionEntidad.ConceptoComisionID == conceptoComisionID && drConceptoComisionEntidad.EntidadComisionID != dr.EntidadComisionID && drConceptoComisionEntidad.EntidadComisionID != 8 /*8 = andesmar*/)
                                        {
                                            suma += drConceptoComisionEntidad.IsComisionPorcentajeNull() ? 0 : drConceptoComisionEntidad.ComisionPorcentaje;
                                        }
                                    }
                                    suma += dr.IsComisionPorcentajeNull() || dr.EntidadComisionID == 8 /*8 = andesmar*/ || dr.EntidadComisionID == 9 ? 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
                    {
                        //control de que la suma de porcentajes para ese concepto de facturación no supere el maximo permitido
                        IConceptoFacturacion conceptoFacturacion = ConceptoFacturacionFactory.GetConceptoFacturacion();
                        conceptoFacturacion.GetOne(dr.ConceptoFacturacionID);
                        if (Convert.ToInt32(dr.EntidadComisionID) != 8 && Convert.ToInt32(dr.EntidadComisionID) != 9) //hacemos el control si la entidad no es Andesmar
                        {
                            if (conceptoFacturacion.PorcentajeMaximoComision != null)
                            {
                                double porcentajeMaximo      = conceptoFacturacion.PorcentajeMaximoComision ?? 0;
                                int    conceptoFacturacionID = dr.ConceptoFacturacionID;
                                double suma = 0;
                                foreach (DsConceptosComisionesEntidades.DatosRow drConceptoComisionEntidad in this.dsComisiones.Datos)
                                {
                                    if (drConceptoComisionEntidad.IsConceptoFacturacionIDNull() == false && drConceptoComisionEntidad.ConceptoFacturacionID == conceptoFacturacionID && drConceptoComisionEntidad.EntidadComisionID != dr.EntidadComisionID && drConceptoComisionEntidad.EntidadComisionID != 8 /*8 = andesmar*/)
                                    {
                                        suma += drConceptoComisionEntidad.IsComisionPorcentajeNull() ? 0 : drConceptoComisionEntidad.ComisionPorcentaje;
                                    }
                                }
                                suma += dr.IsComisionPorcentajeNull() || dr.EntidadComisionID == 8 /*8 = andesmar*/ || dr.EntidadComisionID == 9 ? 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
                {
                    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
                    if (dr.ConfigurarConceptoComision)
                    {
                        System.Data.DataRow[] drConceptoComision = (System.Data.DataRow[]) this.dsConceptosComisiones.Tables[0].Select("ConceptoComisionID=" + dr.ConceptoComisionID);
                        if (drConceptoComision.Length > 0)
                        {
                            if (Convert.ToInt32(dr.EntidadComisionID) != 8 && Convert.ToInt32(dr.EntidadComisionID) != 9) //hacemos el control si la entidad no es Andesmar
                            {
                                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.IsConceptoComisionIDNull() == false && drConceptoComisionEntidad.ConceptoComisionID == conceptoComisionID && drConceptoComisionEntidad.EntidadComisionID != dr.EntidadComisionID && drConceptoComisionEntidad.EntidadComisionID != 8 /*8 = andesmar*/)
                                        {
                                            suma += drConceptoComisionEntidad.IsComisionImporteFijoNull() ? 0 : drConceptoComisionEntidad.ComisionImporteFijo;
                                        }
                                    }
                                    suma += dr.IsComisionImporteFijoNull() || dr.EntidadComisionID == 8 /*8 = andesmar*/ || dr.EntidadComisionID == 9 ? 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;
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        // control de que la suma de porcentajes para ese concepto de facturación no supere el maximo permitido
                        IConceptoFacturacion conceptoFacturacion = ConceptoFacturacionFactory.GetConceptoFacturacion();
                        conceptoFacturacion.GetOne(dr.ConceptoFacturacionID);

                        if (Convert.ToInt32(dr.EntidadComisionID) != 8 && Convert.ToInt32(dr.EntidadComisionID) != 9) //hacemos el control si la entidad no es Andesmar
                        {
                            if (conceptoFacturacion.ImporteMaximoComision != null)
                            {
                                double importeFijoMaximo  = conceptoFacturacion.ImporteMaximoComision ?? 0;
                                int    conceptoComisionID = dr.ConceptoFacturacionID;
                                double suma = 0;
                                foreach (DsConceptosComisionesEntidades.DatosRow drConceptoComisionEntidad in this.dsComisiones.Datos)
                                {
                                    if (drConceptoComisionEntidad.IsConceptoFacturacionIDNull() == false && drConceptoComisionEntidad.ConceptoFacturacionID == conceptoComisionID && drConceptoComisionEntidad.EntidadComisionID != dr.EntidadComisionID && drConceptoComisionEntidad.EntidadComisionID != 8 /*8 = andesmar*/)
                                    {
                                        suma += drConceptoComisionEntidad.IsComisionImporteFijoNull() ? 0 : drConceptoComisionEntidad.ComisionImporteFijo;
                                    }
                                }
                                suma += dr.IsComisionImporteFijoNull() || dr.EntidadComisionID == 8 /*8 = andesmar*/ || dr.EntidadComisionID == 9 ? 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;
                }

                try
                {
                    cce.Guardar(usuario);
                    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);
                }
            }
            catch (Exception ex)
            {
                ManejaErrores(ex);
            }
        }