void BindGrid(int currentPage)
        {
            //Llenar grilla
            SisPackController.AdministrarGrillas.Configurar(dtgTarifarios, "TarifarioID", this.CantidadOpciones);

            ITarifario oTarifario;

            if (this.Request.QueryString["Tipo"] == "Costo")
            {
                oTarifario = TarifarioReDespachoFactory.GetTarifarioRedespacho("C");
            }
            else
            {
                oTarifario = TarifarioReDespachoFactory.GetTarifarioRedespacho("V");
            }

            DsTarifariosCostoRedespacho ds = (DsTarifariosCostoRedespacho)oTarifario.GetTarifariosDataSet();

            if (Convert.ToInt32(Session["valorizacion"]) > 0)           //if (ddlValorizacion.SelectedIndex > 0)
            {
                ddlValorizacion.SelectedIndex = Convert.ToInt32(Session["valorizacion"]);
                //dtgTarifarios.DataSource = (DsTarifariosCostoRedespacho.DatosRow[]) ds.Datos.Select("UnidadNegocioID = " + this.UnidadNegocioID + " AND ValorizacionTarifarioID = "+ Convert.ToInt32(this.ddlValorizacion.SelectedValue) + " AND TarifarioDescrip LIKE " +  "'" + this.txtTarifarioDescrip.Text + "%'" ,"TarifarioDescrip");
                dtgTarifarios.DataSource = (DsTarifariosCostoRedespacho.DatosRow[])ds.Datos.Select("UnidadNegocioID = " + this.UnidadNegocioID + " AND ValorizacionTarifarioID = " + Convert.ToInt32(this.ddlValorizacion.SelectedValue) + " AND TarifarioDescrip LIKE " + "'" + this.txtTarifarioDescrip.Text + "%'", "TarifarioDescrip");
            }
            else
            {
                dtgTarifarios.DataSource = (DsTarifariosCostoRedespacho.DatosRow[])ds.Datos.Select("UnidadNegocioID = " + this.UnidadNegocioID + " AND TarifarioDescrip LIKE " + "'" + this.txtTarifarioDescrip.Text + "%'", "TarifarioDescrip");
            }

            dtgTarifarios.CurrentPageIndex = currentPage;
            dtgTarifarios.DataBind();
        }
        private void dtgTarifarios_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
        {
            // Obtenemos el usuario que ejecuta la acción.
            IUsuarios usuarioConectado = UsuariosFactory.GetUsuario();

            usuarioConectado.Login = this.UsuarioConectadoID;
            usuarioConectado.ConsultarByLogin();

            if (e.CommandName == "seleccionar")
            {
                string tarifarioID = Convert.ToString(dtgTarifarios.DataKeys[(int)e.Item.ItemIndex]);
                string tipo        = this.Request.QueryString["Tipo"];
                this.Response.Redirect("TarifarioRedespacho.aspx?TarifarioID=" + tarifarioID + "&Tipo=" + tipo);
            }
            else if (e.CommandName == "Delete")
            {
                string tipo;
                if (this.Request.QueryString["Tipo"] == "Costo")
                {
                    tipo = "C";
                }
                else
                {
                    tipo = "V";
                }

                ITarifario oTarifa = TarifarioReDespachoFactory.GetTarifarioRedespacho(tipo);
                oTarifa.TarifarioID = Convert.ToInt32(dtgTarifarios.DataKeys[(int)e.Item.ItemIndex]);
                try
                {
                    if (oTarifa.Eliminar(usuarioConectado.UsuarioID))
                    {
                        BindGrid(0);
                    }
                }
                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);
                }
            }
        }
示例#3
0
        private void BindGrid()
        {
            DsClientes ds = null;

            SisPackController.AdministrarGrillas.Configurar(this.dtgClientes, "ClienteID", this.CantidadOpciones);

            if (this.txtTipoTarifario.Text == "Cliente")
            {
                ITarifarioFlete tarifarioFlete = TarifarioFleteFactory.GetTarifarioFlete();
                tarifarioFlete.TarifarioFleteID = Convert.ToInt32(this.txtTarifarioID.Text);
                ds = tarifarioFlete.GetClientesByTarifarioID();
                this.dtgClientes.DataSource = ds;
                this.dtgClientes.DataBind();
            }
            else if (this.txtTipoTarifario.Text == "ClienteParticularesEspecificos")
            {
                ITarifarioClienteFlete tarifarioClienteFlete = TarifarioClienteFleteFactory.GetTarifarioClienteFlete();
                tarifarioClienteFlete.TarifarioClienteFleteID = Convert.ToInt32(this.txtTarifarioID.Text);
                ds = tarifarioClienteFlete.GetClientesByTarifarioID();
                this.dtgClientes.DataSource = ds;
                this.dtgClientes.DataBind();
            }
            else if (this.txtTipoTarifario.Text == "ClienteRetiroEntrega")
            {
                ITarifario tarifarioClienteRetiroEntrega = TarifarioFactory.GetTarifario("CRE");
                tarifarioClienteRetiroEntrega.TarifarioID = Convert.ToInt32(this.txtTarifarioID.Text);
                ds = (DsClientes)tarifarioClienteRetiroEntrega.GetClientesByTarifarioID();
                this.dtgClientes.DataSource = ds;
                this.dtgClientes.DataBind();
            }
            else if (txtTipoTarifario.Text == "VentaReDespacho")
            {
                ITarifario tarifarioReDespacho = TarifarioReDespachoFactory.GetTarifarioRedespacho("V");
                tarifarioReDespacho.TarifarioID = Utiles.Validaciones.obtieneEntero(txtTarifarioID.Text);
                ds = (DsClientes)tarifarioReDespacho.GetClientesByTarifarioID();
                dtgClientes.DataSource = ds.Datos;
                dtgClientes.DataBind();
            }
        }
示例#4
0
        private void CalcularImportes()
        {
            bool esValido = true;

            RequiredFieldValidator reqUnidadVenta = (RequiredFieldValidator)this.phValidUnidadVenta.FindControl("validUVenta");

            reqUnidadVenta.Enabled = true;
            reqUnidadVenta.Validate();
            if (!reqUnidadVenta.IsValid)
            {
                esValido = false;
            }

            RequiredFieldValidator reqME = (RequiredFieldValidator)this.phValidModalidadEntrega.FindControl("validME");

            reqME.Enabled = true;
            reqME.Validate();
            if (!reqME.IsValid)
            {
                esValido = false;
            }

            RequiredFieldValidator reqBultos = (RequiredFieldValidator)this.phValidBultos.FindControl("validBultos");

            reqBultos.Enabled = true;
            reqBultos.Validate();
            if (!reqBultos.IsValid)
            {
                esValido = false;
            }

            RequiredFieldValidator reqPeso = (RequiredFieldValidator)this.phValidPeso.FindControl("validPeso");

            reqPeso.Enabled = true;
            reqPeso.Validate();
            if (!reqPeso.IsValid)
            {
                esValido = false;
            }

            RequiredFieldValidator reqValorDeclarado = (RequiredFieldValidator)this.phValidUnidadVenta.FindControl("validDeclarado");

            reqValorDeclarado.Enabled = true;
            reqValorDeclarado.Validate();
            if (!reqValorDeclarado.IsValid)
            {
                esValido = false;
            }

            if (esValido)
            {
                double pesoAf   = (this.txtPesoTotalAforado.Text == "") ? 0 : Convert.ToDouble(this.txtPesoTotalAforado.Text);
                double pesoReal = (this.txtPeso.Text == "") ? 0 : Convert.ToDouble(this.txtPeso.Text);

                //Crear instancia de la que resuelve los calculos de los importes

                //Cargar los datos necesarios para calcular el importe del flete
                admGuiaO.PesoKgReal = pesoReal;
                if (this.txtAlto.Text != "" && this.txtAncho.Text != "" && this.txtLargo.Text != "")
                {
                    admGuiaO.VolumenTotal = Convert.ToDouble(this.txtAlto.Text) * Convert.ToDouble(this.txtAncho.Text) * Convert.ToDouble(this.txtLargo.Text);
                }

                double pesoAfM3 = 0;

                /*SFE: 22/03/2013. Valor de conversion a M3. Si se ingresa un valor en el campo de conversion, hay que calcular en base a esto*/
                if (txtM3.Text.Length > 0 && txtM3.Text.Trim() != string.Empty && txtM3.Text != "0")
                {
                    double valorConversionM3 = 0;

                    //Si es cliente corporativo, buscar el parametro para el convenio y la unidad de venta.
                    if (admGuiaO.ClienteCorpRemitente.ClienteID != 0 || (admGuiaO.ClienteCorpDestinatario.ClienteID != 0 && admGuiaO.AgenteGuiaPagoID == NegociosSisPackInterface.SisPack.TipoAgenteGuia.Destinatario))
                    {
                        admGuiaO.UnidadVentaID = Utiles.Validaciones.obtieneEntero(Request.Form[ddlUnidadVenta.UniqueID]);
                        valorConversionM3      = admGuiaO.ObtenerValorConversionM3ClienteCorp();
                        //Si no está definido, buscar el parámetro por Unidad de Venta.
                        if (valorConversionM3 == 0)
                        {
                            // Busco la Unidad de Venta y consulto si tiene definido un valor de conversion m3
                            int          uniVenta = Utiles.Validaciones.obtieneEntero(Request.Form[ddlUnidadVenta.UniqueID]);
                            IUnidadVenta uVenta   = UnidadVentaFactory.GetUnidadVenta();
                            uVenta.UnidadVentaID = uniVenta;
                            uVenta.Consultar();

                            if (uVenta.ValorConversionM3 != 0) //tiene definido un valor de conversion de m3, usarlos
                            {
                                valorConversionM3 = uVenta.ValorConversionM3;
                            }
                            else // si no esta definido a nivel de Unidad de Venta tengo que utilizar el de parámetro general
                            {
                                IParametroUNegocio paramMin = ParametroUNegocioFactory.GetParametroUNegocio();
                                paramMin.UnidadNegocioID = this.UnidadNegocioID;
                                paramMin.Parametro       = NegociosSisPackInterface.SisPack.Parametro.ValorConversionM3;
                                paramMin.Consultar();
                                valorConversionM3 = Convert.ToDouble(paramMin.ValorString);
                            }
                        }
                    }

                    //Si se encontró algun valor de conversion.
                    if (valorConversionM3 > 0)
                    {
                        admGuiaO.MetrosCubicos = Utiles.Validaciones.obtieneDouble(txtM3.Text);
                        pesoAfM3 = admGuiaO.MetrosCubicos * valorConversionM3;
                    }
                }

                double pesoTotalAforado = (pesoAf > pesoReal) ? pesoAf : pesoReal;
                if (pesoAfM3 > 0)
                {
                    if (pesoTotalAforado > pesoAfM3)
                    {
                        admGuiaO.PesoTotal = pesoTotalAforado;
                    }
                    else
                    {
                        admGuiaO.PesoTotal = pesoAfM3;
                    }
                }
                else
                {
                    admGuiaO.PesoTotal = (pesoAf > pesoReal) ? pesoAf : pesoReal;
                }

                admGuiaO.CantBultos = Convert.ToInt32(this.txtBultos.Text);

                admGuiaO.UnidadVentaID      = Utiles.Validaciones.obtieneEntero(Request.Form[ddlUnidadVenta.UniqueID]);
                admGuiaO.ModalidadEntregaID = Utiles.Validaciones.obtieneEntero(Request.Form[ddlModalidadEntrega.UniqueID]);

                admGuiaO.LimiteKg = 3000;
                admGuiaO.PorcentajeBonificacionAutorizacion = 0;
                admGuiaO.ImporteACobrarAutorizacion         = 0;

                admGuiaO.ValorDeclarado = Convert.ToDouble(this.txtValorDeclarado.Text);

                int modalidadEntregaID = Utiles.Validaciones.obtieneEntero(this.ddlModalidadEntrega.SelectedValue);

                //admGuiaO.UnidadNegocioID = this.UnidadNegocioID;
                IAgencia agencia = AgenciaFactory.GetAgencia();
                agencia.AgenciaByLocalidadSimulador(Utiles.Validaciones.obtieneEntero(ddlLocalidadRemitente), Utiles.Validaciones.obtieneEntero(ddlCodigoPostalRemitente), 1, 0, Utiles.Validaciones.obtieneEntero(this.ddlUnidadVenta.SelectedValue), modalidadEntregaID, 0, true);
                if (agencia.AgenciaID != 0)
                {
                    admGuiaO.AgenciaOrigenID = agencia.AgenciaID;
                }
                else
                {
                    throw new Exception("No es posible realizar el envío desde el origen seleccionado.");
                }


                agencia.AgenciaByLocalidadSimulador(Utiles.Validaciones.obtieneEntero(ddlLocalidadDestinatario), Utiles.Validaciones.obtieneEntero(ddlCodigoPostalDestinatario), 0, 1, Utiles.Validaciones.obtieneEntero(this.ddlUnidadVenta.SelectedValue), modalidadEntregaID, 0, true);
                if (agencia.AgenciaID != 0)
                {
                    admGuiaO.AgenciaDestinoID = agencia.AgenciaID;
                }
                else
                {
                    throw new Exception("No es posible realizar el envío hacia el destino seleccionado.");
                }

                int agenciaDestino = admGuiaO.AgenciaDestinoID;
                if (agenciaDestino > 0)
                {
                    admGuiaO.TipoDestinoID    = (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.Agencia;
                    admGuiaO.AgenciaDestinoID = agenciaDestino;
                }
                else if (agenciaDestino < 0)
                {
                    admGuiaO.TipoDestinoID    = (int)NegociosSisPackInterface.SisPack.TipoOrigenDestino.PuntoRecepcion;
                    admGuiaO.AgenciaDestinoID = agenciaDestino * -1;
                }

                //Por si hay que calcular comision de contrareembolso
                admGuiaO.ImporteCRGuia = 0;//(this.txtImporteContraReembolso.Text== "")? 0 : Convert.ToDouble(this.txtImporteContraReembolso.Text);
                //admGuiaO.ImporteCRGuia = admGuiaO.ValorDeclarado;

                admGuiaO.PagaEntregaEnDomicilio        = false;//this.chkPagaEnDomicilio.Checked;
                admGuiaO.PromocionServicioTransporteID = 0;

                admGuiaO.BonificacionAgencia = 0; //Utiles.Validaciones.obtieneEntero(this.txtBonificacionAgencia.Text);
                admGuiaO.UsuarioID           = 1; //this.usuario.UsuarioID;

                //esto le indica a AdminstracionGuias, que la agencia que calcula los importes
                //es automatizada, por lo tanto debe tener en cuenta el área de influencia
                admGuiaO.NoAutomatizada                 = false;
                admGuiaO.UnidadNegocioID                = 1;
                admGuiaO.ClienteCorp.ClienteID          = ClienteFacturacion1.ClienteCorporativoID ?? 0;
                admGuiaO.ClienteCorpRemitente.ClienteID = ClienteFacturacion1.ClienteCorporativoID ?? 0;
                admGuiaO.ClienteCorpRemitente.Nombre    = "";
                admGuiaO.ClienteCorpRemitente.DomicilioComercial.Localidad.LocalidadID        = Utiles.Validaciones.obtieneEntero(ddlLocalidadRemitente);
                admGuiaO.ClienteCorpRemitente.DomicilioGuia.Localidad.CodigoPostal            = CodPostalRemitente;
                admGuiaO.ClienteCorpRemitente.DomicilioGuia.Localidad.LocalidadID             = Utiles.Validaciones.obtieneEntero(ddlLocalidadRemitente);
                admGuiaO.ClienteCorpRemitente.DomicilioGuia.OCodigoPostal.CodigoPostalID      = Utiles.Validaciones.obtieneEntero(ddlCodigoPostalRemitente);
                admGuiaO.ClienteCorpRemitente.DomicilioComercial.OCodigoPostal.CodigoPostalID = Utiles.Validaciones.obtieneEntero(ddlCodigoPostalRemitente);

                admGuiaO.ClienteCorpDestinatario.ClienteID = ClienteFacturacion1.ClienteCorporativoID ?? 0;
                admGuiaO.ClienteCorpDestinatario.DomicilioComercial.Localidad.LocalidadID        = Utiles.Validaciones.obtieneEntero(ddlLocalidadDestinatario);
                admGuiaO.ClienteCorpDestinatario.DomicilioGuia.Localidad.CodigoPostal            = CodPostalDestinatario;
                admGuiaO.ClienteCorpDestinatario.DomicilioGuia.Localidad.LocalidadID             = Utiles.Validaciones.obtieneEntero(ddlLocalidadDestinatario);
                admGuiaO.ClienteCorpDestinatario.DomicilioGuia.OCodigoPostal.CodigoPostalID      = Utiles.Validaciones.obtieneEntero(ddlCodigoPostalDestinatario);
                admGuiaO.ClienteCorpDestinatario.DomicilioComercial.OCodigoPostal.CodigoPostalID = Utiles.Validaciones.obtieneEntero(ddlCodigoPostalDestinatario);
                admGuiaO.ClienteCorpDestinatario.Nombre = "";

                admGuiaO.RemiEsCorporativo = true;
                admGuiaO.DestEsCorporativo = true;
                admGuiaO.AgentePagoEsClienteCorporativo = true;
                admGuiaO.CalcularImportes();

                if (admGuiaO.TipoGuia == "A" || admGuiaO.TipoGuia == "E")
                {
                    this.lblImporteFlete.Text  = Formatos.Importe(admGuiaO.ImporteFlete);
                    this.lblImporteSeguro.Text = Formatos.Importe(admGuiaO.ImporteSeguro);
                    this.lblImporteRetiro.Text = Formatos.Importe(admGuiaO.ImporteRetiro);
                    //if(!this.chkPagaEnDomicilio.Checked)
                    this.lblImporteEntrega.Text = Formatos.Importe(admGuiaO.ImporteEntrega);
                    //else
                    //	this.lblImporteEntrega.Text = "0";
                    this.lblImporteComisCR.Text      = Formatos.Importe(admGuiaO.ImporteComisCR);
                    this.lblImporteNeto.Text         = Formatos.Importe(admGuiaO.ImporteNetoTotal);
                    this.lblImporteIVAInscripto.Text = Formatos.Importe(admGuiaO.ImporteIVAInscripto);
                    //}
                }
                else
                {
                    this.lblImporteFlete.Text  = Formatos.Importe(admGuiaO.ImporteFlete + admGuiaO.ImporteFleteIVA); //+ admGuiaO.ImporteRedespachoIVA
                    this.lblImporteSeguro.Text = Formatos.Importe(admGuiaO.ImporteSeguro + admGuiaO.ImporteSeguroIVA);
                    this.lblImporteRetiro.Text = Formatos.Importe(admGuiaO.ImporteRetiro + admGuiaO.ImporteRetiroIVA);
                    //if(!this.chkPagaEnDomicilio.Checked)
                    this.lblImporteEntrega.Text = Formatos.Importe(admGuiaO.ImporteEntrega + admGuiaO.ImporteEntregaIVA);
                    //else
                    //	this.lblImporteEntrega.Text = "0";
                    this.lblImporteComisCR.Text      = Formatos.Importe(admGuiaO.ImporteComisCR + admGuiaO.ImporteComisCRIVA);
                    this.lblImporteIVAInscripto.Text = "";
                    this.lblImporteNeto.Text         = "";
                    //}
                }

                if (admGuiaO.TarifarioClienteFleteID > 0)
                {
                    ITarifarioClienteFlete tari = TarifarioClienteFleteFactory.GetTarifarioClienteFlete();
                    tari.TarifarioClienteFleteID = admGuiaO.TarifarioClienteFleteID;
                    tari.Consultar();
                    this.txtTarifarioFlete.Text = tari.TarifarioClienteFleteDescrip;
                }
                else if (admGuiaO.TarifarioFleteID > 0)
                {
                    ITarifarioFlete tari = TarifarioFleteFactory.GetTarifarioFlete();
                    tari.TarifarioFleteID = admGuiaO.TarifarioFleteID;
                    tari.Consultar();
                    this.txtTarifarioFlete.Text = tari.TarifarioFleteDescrip;
                }
                else if (admGuiaO.TarifarioVentaRedespachoID > 0)
                {
                    ITarifario tari = TarifarioReDespachoFactory.GetTarifarioRedespacho("V");
                    tari.TarifarioID = admGuiaO.TarifarioVentaRedespachoID;
                    tari.Consultar();
                    this.txtTarifarioFlete.Text = tari.TarifarioDescrip;
                }

                if (admGuiaO.TarifarioClienteRetiroID > 0)
                {
                    ITarifario tariRetiro = TarifarioFactory.GetTarifario("CRE");
                    tariRetiro.TarifarioID = admGuiaO.TarifarioClienteRetiroID;
                    tariRetiro.Consultar();
                    this.txtTarifarioRetiro.Text = tariRetiro.TarifarioDescrip;
                }
                else if (admGuiaO.TarifarioRetiroID > 0)
                {
                    ITarifario tariRetiro = TarifarioFactory.GetTarifario("RE");
                    tariRetiro.TarifarioID = admGuiaO.TarifarioRetiroID;
                    tariRetiro.Consultar();
                    this.txtTarifarioRetiro.Text = tariRetiro.TarifarioDescrip;
                }

                if (admGuiaO.TarifarioClienteEntregaID > 0)
                {
                    ITarifario tariEntrega = TarifarioFactory.GetTarifario("CRE");
                    tariEntrega.TarifarioID = admGuiaO.TarifarioClienteEntregaID;
                    tariEntrega.Consultar();
                    this.txtTarifarioEntrega.Text = tariEntrega.TarifarioDescrip;
                }
                else if (admGuiaO.TarifarioEntregaID > 0)
                {
                    ITarifario tariRetiro = TarifarioFactory.GetTarifario("RE");
                    tariRetiro.TarifarioID = admGuiaO.TarifarioEntregaID;
                    tariRetiro.Consultar();
                    this.txtTarifarioEntrega.Text = tariRetiro.TarifarioDescrip;
                }

                this.lblImporteRedondeo.Text    = Formatos.Importe(admGuiaO.ImporteRedondeo);
                this.lblImporteTotalCobrar.Text = Formatos.Importe(admGuiaO.ImporteTotalCobrar);
            }
        }
        public static bool RecalcularImportesTarifarioRedespacho(ITarifario tariNuevo, int usuarioID)
        {
            //if (Clienteflete)
            //else{}
            ITarifario         tariRef  = TarifarioReDespachoFactory.GetTarifarioRedespacho("C");
            ITarifariosTopeCol topesCol = tariNuevo.TopesCol;

            //Solo me interesa consultar los importes del tarifario de referencia
            //tariRef.TopesCol.TarifarioID = tariNuevo.TarifarioRefID;
            //tariRef.TopesCol.Consultar();
            tariRef.TarifarioID = tariNuevo.TarifarioRefID;
            tariRef.Consultar();


            bool esPorcentaje;

            if (tariNuevo.PorcentajeAjuste != 0)
            {
                esPorcentaje = true;
            }
            else
            {
                esPorcentaje = false;
            }
            //Calculo de importeKgExcedente para tarifario
            if (tariNuevo.FactorAjuste != "")
            {
                if (esPorcentaje)
                {
                    if (tariNuevo.FactorAjuste == "+")
                    {
                        tariNuevo.ImporteKgExcedente = tariRef.ImporteKgExcedente + (tariRef.ImporteKgExcedente * (tariNuevo.PorcentajeAjuste / 100));
                    }
                    else
                    {
                        tariNuevo.ImporteKgExcedente = tariRef.ImporteKgExcedente - (tariRef.ImporteKgExcedente * (tariNuevo.PorcentajeAjuste / 100));
                        if (tariNuevo.ImporteKgExcedente < 0)
                        {
                            tariNuevo.ImporteKgExcedente = 0;
                        }
                    }
                }
                else
                {
                    if (tariNuevo.FactorAjuste == "+")
                    {
                        tariNuevo.ImporteKgExcedente = tariRef.ImporteKgExcedente + tariNuevo.ImporteAjusteKgExcedente;
                    }
                    else
                    {
                        tariNuevo.ImporteKgExcedente = tariRef.ImporteKgExcedente - tariNuevo.ImporteAjusteKgExcedente;
                        if (tariNuevo.ImporteKgExcedente < 0)
                        {
                            tariNuevo.ImporteKgExcedente = 0;
                        }
                    }
                }
            }
            else
            {
                tariNuevo.ImporteKgExcedente = tariRef.ImporteKgExcedente;
            }

            //Iterar por la coleccion de importes de topes y asignar el importe que corresponda.



            for (int i = 0; i < topesCol.getCount(); i++)
            {
                //Recuperar el importe de Kg. Excedente del tope  de referencia
                ITarifarioTope oTope    = topesCol.GetTarifarioTope(i);
                ITarifarioTope oTopeRef = tariRef.TopesCol.GetTarifarioTopeByTopeID(oTope.Tope.TopeID);

                if (tariNuevo.FactorAjuste != "")
                {
                    if (esPorcentaje)
                    {
                        if (tariNuevo.FactorAjuste == "+")
                        {
                            oTope.Importe = oTopeRef.Importe + (oTopeRef.Importe * (tariNuevo.PorcentajeAjuste / 100));
                        }
                        else
                        {
                            oTope.Importe = oTopeRef.Importe - (oTopeRef.Importe * (tariNuevo.PorcentajeAjuste / 100));
                            if (oTope.Importe < 0)
                            {
                                oTope.Importe = 0;
                            }
                        }
                    }
                    else
                    {
                        if (tariNuevo.FactorAjuste == "+")
                        {
                            oTope.Importe = oTopeRef.Importe + tariNuevo.ImporteAjuste;
                        }
                        else
                        {
                            oTope.Importe = oTopeRef.Importe - tariNuevo.ImporteAjuste;
                            if (oTope.Importe < 0)
                            {
                                oTope.Importe = 0;
                            }
                        }
                    }
                }
                else
                {
                    oTope.Importe = oTopeRef.Importe;
                }
            }

            /*try
             * {
             *
             *              return true;
             *      else
             *              return false;
             * }
             * catch(Exception)
             * {
             *      return false;
             * }*/
            //Recalcular los importes del tarifario
            //Recorrer la col de zonastopes. Por cada Zona y tope, recuperar el importe del padre y aplicar
            try
            {
                if (tariNuevo.Guardar(usuarioID))
                {
                    if (tariNuevo.TopesCol.Guardar(usuarioID))
                    {
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception)
            {
                return(false);
            }
        }
        private void Page_Load(object sender, System.EventArgs e)
        {
            if (User.Identity.IsAuthenticated)
            {
                //this.SetCultura();
                string sOpcion = "";
                if (this.Request.QueryString["Tipo"] == "Costo")
                {
                    sOpcion = "abmTarifarioCostoRedespacho";
                }
                else
                {
                    sOpcion = "abmTarifarioVentaRedespacho";
                }

                Menu oMenu = (Menu)this.FindControl("Menu1");
                this.ValidarSeguridad(oMenu, sOpcion);
            }

            Page.RegisterStartupScript("init", SisPackController.GenerarJavaScripts.SetearFocoControl(this.txtTarifarioDescrip.ClientID));
            if (this.Request.QueryString["Tipo"] == "Costo")
            {
                this.tipoTarifario = "C";
                this.lblTarifarioRef.Attributes.Add("Style", "Display: none");
                this.ddlTarifarioReferencia.Attributes.Add("Style", "Display: none");
                //this.lblTarifarioRef.Visible=false;
                //this.ddlTarifarioReferencia.Visible=false;
            }
            else
            {
                this.tipoTarifario = "V";
            }
            if (!IsPostBack)
            {
                Session["tarifario"] = null;
                tarifarioCRD         = TarifarioReDespachoFactory.GetTarifarioRedespacho(this.tipoTarifario);
                if (this.Request.QueryString["TarifarioID"] != null)
                {
                    this.txtTarifarioID.Text = this.Request.QueryString["TarifarioID"];
                    tarifarioCRD.TarifarioID = Convert.ToInt32(Request.QueryString["TarifarioID"]);
                    //Consultar Tarifario, donde del txt recupera el ID y setea los valores.
                    tarifarioCRD.Consultar();
                }
                else
                {
                    this.tblTarifarioRef.Attributes.Add("Style", "Display: none");
                    this.tblVariacion.Attributes.Add("Style", "Display: none");
                }
                this.CargarCombos();


                if (tarifarioCRD.TarifarioID != 0)
                {
                    this.ConsultarTarifario();
                }

                Session["tarifario"] = tarifarioCRD;
            }
            this.SetearValidadores();


            /*SFE Mostrar u ocultar el importe minimo del valor declarado segun el la valorizacion del Tarifario*/
            RegistrarHabilitarImporteMinimo();
            /*SFE Mostrar Kg Excedente o Bulto Excedente dependiendo del tipo de Valorizacion del Tarifario*/
            RegistrarCambioBultoVariable();
            ddlValorizacion.Attributes.Add("onchange", "MostrarImporteMinimo();MostrarTextoBultoVariable();");

            if (Session["tarifario"] != null)
            {
                tarifarioCRD = (ITarifario)Session["tarifario"];
            }
            else
            {
                tarifarioCRD = TarifarioReDespachoFactory.GetTarifarioRedespacho(this.tipoTarifario);
            }

            if (tarifarioCRD.TieneTarifariosDerivados())            //VER solo para tarifarios de costo de redespacho
            {
                //VER.Si tiene tarifarios derivados y NO hay un tarifario gral.
                //Quizas sí habilitar el check de tarifario general.
                soloLectura = true;
            }
            else
            {
                soloLectura = false;
            }
            if (tarifarioCRD.TarifarioRefID > 0)
            {
                butGuardarTarifario.Attributes.Add("onclick", "return confirm('Si ha modificado la variación, se recalcularán los importes. Desea continuar?')");
            }

            RegistrarCambioTarifarioRef();
            RegistrarMostrarVariacion();
            ddlTarifarioReferencia.Attributes.Add("onchange", "CambiarComboValorizacion()");
            chkVariacionTarifario.Attributes.Add("onclick", "MostrarVariacion()");



            tarifarioCRD = (ITarifario)Session["tarifario"];
            if (tarifarioCRD.TarifarioID != 0)
            {
                this.LoadUCZonasTopes();
            }



            this.MostrarTablas();
            this.SetLecturaUC();
            //tarifarioCRD = (ITarifario) Session["tarifario"];

            this.AsignarNombrePagina();
        }