private void butAprobarTarifarios_Click(object sender, System.EventArgs e)
        {
            string mensaje = "";

            foreach (DataGridItem item in dtgTarifarios.Items)
            {
                if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
                {
                    if (((CheckBox)item.FindControl("chkTarifario")).Checked)
                    {
                        ITarifarioFlete oTarifario = TarifarioFleteFactory.GetTarifarioFlete();
                        oTarifario.TarifarioFleteID = Convert.ToInt32(dtgTarifarios.DataKeys[item.DataSetIndex]);
                        string mje = oTarifario.ValidarTarifario();
                        if (mje != "")
                        {
                            string nombre = (((Label)item.FindControl("lblDescripcion")).Text);
                            mensaje += "Tarifario " + nombre + ": " + mje + "<BR>";
                        }
                    }
                }
            }
            if (mensaje != "")
            {
                ((ErrorWeb)this.phErrores.Controls[0]).setMensaje(mensaje);
            }
            this.BindGrid(0);
        }
        void BindGrid(int currentPage)
        {
            //Llenar grilla
            SisPackController.AdministrarGrillas.Configurar(dtgTarifarios, "TarifarioFleteID", this.CantidadOpciones);

            ITarifarioFlete   oTarifario = TarifarioFleteFactory.GetTarifarioFlete();
            DsTarifariosFlete ds         = oTarifario.GetTarifariosFleteDataSet();

            if (ddlValorizacion.SelectedIndex > 0)
            {
                if (tipoTarifario == "Agencia")
                {
                    dtgTarifarios.DataSource = (DsTarifariosFlete.DatosRow[])ds.Datos.Select("UnidadNegocioID = " + this.UnidadNegocioID + " AND TipoTarifarioID = " + (int)NegociosSisPackInterface.SisPack.TipoTarifario.Agencia + " AND ValorizacionTarifarioID = " + Convert.ToInt32(this.ddlValorizacion.SelectedValue) + " AND EstadoTarifarioID<> " + (int)NegociosSisPackInterface.SisPack.EstadoTarifario.Aprobado + " AND TarifarioFleteDescrip LIKE " + "'" + this.txtTarifarioDescrip.Text + "%'", "TarifarioFleteDescrip");
                }
                else
                {
                    dtgTarifarios.DataSource = (DsTarifariosFlete.DatosRow[])ds.Datos.Select("UnidadNegocioID = " + this.UnidadNegocioID + " AND TipoTarifarioID = " + (int)NegociosSisPackInterface.SisPack.TipoTarifario.Cliente + " AND ValorizacionTarifarioID = " + Convert.ToInt32(this.ddlValorizacion.SelectedValue) + " AND EstadoTarifarioID<> " + (int)NegociosSisPackInterface.SisPack.EstadoTarifario.Aprobado + " AND TarifarioFleteDescrip LIKE " + "'" + this.txtTarifarioDescrip.Text + "%'", "TarifarioFleteDescrip");
                }
            }
            else
            {
                if (tipoTarifario == "Agencia")
                {
                    dtgTarifarios.DataSource = (DsTarifariosFlete.DatosRow[])ds.Datos.Select("UnidadNegocioID = " + this.UnidadNegocioID + " AND TipoTarifarioID = " + (int)NegociosSisPackInterface.SisPack.TipoTarifario.Agencia + " AND EstadoTarifarioID<>5 " + " AND TarifarioFleteDescrip LIKE " + "'" + this.txtTarifarioDescrip.Text + "%'", "TarifarioFleteDescrip");
                }
                else
                {
                    dtgTarifarios.DataSource = (DsTarifariosFlete.DatosRow[])ds.Datos.Select("UnidadNegocioID = " + this.UnidadNegocioID + " AND TipoTarifarioID = " + (int)NegociosSisPackInterface.SisPack.TipoTarifario.Cliente + " AND EstadoTarifarioID<>5 " + " AND TarifarioFleteDescrip LIKE " + "'" + this.txtTarifarioDescrip.Text + "%'", "TarifarioFleteDescrip");
                }
            }

            dtgTarifarios.CurrentPageIndex = currentPage;
            dtgTarifarios.DataBind();
        }
예제 #3
0
        /// <summary>
        /// Procedimiento para cargar los tarifarios de flete
        /// </summary>
        private void BindGridTarifarioFlete()
        {
            // Reviso si los datos estan cargados en memoria
            DsReporteTarifariosClientes dsTarifariosFletesCliente;

            if (Session["dsTarifariosFletesCliente"] == null)
            {
                // Los datos no estan cargados en memoria. Cargo los filtros
                string clientesSeleccionados         = ObtenerClientesSeleccionados();
                string unidadesVentasSeleccionadas   = ObtenerUnidadesVentasSeleccionadas();
                string TarifariosFletesSeleccionados = ObtenerTarifariosFleteSeleccionados();
                int    verDatosHistoricos            = 0;
                if (chkVerDatosHistoricos.Checked)
                {
                    verDatosHistoricos = 1;
                }
                System.DateTime fechaHasta = this.txtFechaHasta.Text.Equals("") ? Convert.ToDateTime("01/01/1900") : Convert.ToDateTime(this.txtFechaHasta.Text);
                int             cantDias   = this.txtCantDias.Text.Equals("") ? 0 : Convert.ToInt32(this.txtCantDias.Text);
                // Obtengo los datos
                ITarifarioFlete tarifarioFlete = TarifarioFleteFactory.GetTarifarioFlete();
                dsTarifariosFletesCliente = tarifarioFlete.ObtenerTarifariosFleteCliente(clientesSeleccionados, unidadesVentasSeleccionadas, TarifariosFletesSeleccionados, verDatosHistoricos, fechaHasta, cantDias);
                // Guardo los datos en memoria
                Session["dsTarifariosFletesCliente"] = dsTarifariosFletesCliente;
            }
            else
            {
                // Los datos estan cargados en memoria
                dsTarifariosFletesCliente = (DsReporteTarifariosClientes)Session["dsTarifariosFletesCliente"];
            }
            // Configuro la grilla
            SisPackController.AdministrarGrillas.Configurar(dtgTarifarioFlete, "ClienteId", 30);
            // Cargo los datos
            dtgTarifarioFlete.DataSource = dsTarifariosFletesCliente.TarifariosFlete;
            dtgTarifarioFlete.DataBind();
        }
예제 #4
0
        /// <summary>
        /// Procedimiento para cargar las listas
        /// </summary>
        private void LlenarListas()
        {
            // Cargo los clientes
            //LlenarCombos.Clientes(lstClientes, UnidadNegocioID);
            ICliente oCliente = ClienteFactory.GetCliente();

            lstClientes.DataSource     = oCliente.GetClientesConsultaDataSet().Datos.Select("", "RazonSocial");
            lstClientes.DataValueField = "ClienteID";
            lstClientes.DataTextField  = "RazonSocial";
            lstClientes.DataBind();
            // Cargo las unidades de venta
            LlenarCombos.UnidadesVenta(lstUnidadVenta);
            // Cargo los tarifarios de fletes
            ITarifarioFlete   tarifarioFlete     = TarifarioFleteFactory.GetTarifarioFlete();
            DsTarifariosFlete dsTarifariosFletes = tarifarioFlete.GetTarifariosFleteDataSet();

            lstTarifariosDeFletes.DataSource     = dsTarifariosFletes.Datos;
            lstTarifariosDeFletes.DataValueField = "TarifarioFleteID";
            lstTarifariosDeFletes.DataTextField  = "TarifarioFleteDescrip";
            lstTarifariosDeFletes.DataBind();
            // Cargo los tarifarios de retiro/entrega
            ITarifario tarifarioRetiroEntrega = TarifarioFactory.GetTarifario("");
            DsTarifarioClienteRetiroEntrega dsTarifarioRetiroEntrega = (DsTarifarioClienteRetiroEntrega)tarifarioRetiroEntrega.GetTarifariosDataSet();

            lstTarifariosRetiroEntrega.DataSource     = dsTarifarioRetiroEntrega.Datos;
            lstTarifariosRetiroEntrega.DataValueField = "TarifarioClienteRetiroEntregaID";
            lstTarifariosRetiroEntrega.DataTextField  = "TarifarioClienteRetiroEntregaDescrip";
            lstTarifariosRetiroEntrega.DataBind();
        }
        void BindGrid(int currentPage)
        {
            //Llenar grilla
            SisPackController.AdministrarGrillas.Configurar(dtgTarifarios, "TarifarioFleteID", this.CantidadOpciones);

            ITarifarioFlete   oTarifario = TarifarioFleteFactory.GetTarifarioFlete();
            DsTarifariosFlete ds         = oTarifario.GetTarifariosFleteDataSet();

            if (ddlValorizacion.SelectedIndex > 0)
            {
                if (tipoTarifario == "Agencia")
                {
                    dtgTarifarios.DataSource = (DsTarifariosFlete.DatosRow[])ds.Datos.Select("UnidadNegocioID = " + this.UnidadNegocioID + " AND tipoTarifarioID = " + (int)NegociosSisPackInterface.SisPack.TipoTarifario.Agencia + " AND ValorizacionTarifarioID = " + Convert.ToInt32(this.ddlValorizacion.SelectedValue) + " AND TarifarioFleteDescrip LIKE " + "'" + this.txtTarifarioDescrip.Text + "%'", "TarifarioFleteDescrip");
                }
                else if (tipoTarifario == "Cliente")
                {
                    dtgTarifarios.DataSource = (DsTarifariosFlete.DatosRow[])ds.Datos.Select("UnidadNegocioID = " + this.UnidadNegocioID + " AND tipoTarifarioID = " + (int)NegociosSisPackInterface.SisPack.TipoTarifario.Cliente + " AND ValorizacionTarifarioID = " + Convert.ToInt32(this.ddlValorizacion.SelectedValue) + " AND TarifarioFleteDescrip LIKE " + "'" + this.txtTarifarioDescrip.Text + "%'", "TarifarioFleteDescrip");
                }
                else
                {
                    dtgTarifarios.DataSource = (DsTarifariosFlete.DatosRow[])ds.Datos.Select("UnidadNegocioID = " + this.UnidadNegocioID + " AND tipoTarifarioID = " + (int)NegociosSisPackInterface.SisPack.TipoTarifario.ClienteEstandarizado + " AND ValorizacionTarifarioID = " + Convert.ToInt32(this.ddlValorizacion.SelectedValue) + " AND TarifarioFleteDescrip LIKE " + "'" + this.txtTarifarioDescrip.Text + "%'", "TarifarioFleteDescrip");
                }
            }
            else
            {
                if (tipoTarifario == "Agencia")
                {
                    dtgTarifarios.DataSource = (DsTarifariosFlete.DatosRow[])ds.Datos.Select("UnidadNegocioID = " + this.UnidadNegocioID + " AND tipoTarifarioID = " + (int)NegociosSisPackInterface.SisPack.TipoTarifario.Agencia + " AND TarifarioFleteDescrip LIKE " + "'" + this.txtTarifarioDescrip.Text + "%'", "TarifarioFleteDescrip");
                }
                else if (tipoTarifario == "Cliente")
                {
                    dtgTarifarios.DataSource = (DsTarifariosFlete.DatosRow[])ds.Datos.Select("UnidadNegocioID = " + this.UnidadNegocioID + " AND tipoTarifarioID = " + (int)NegociosSisPackInterface.SisPack.TipoTarifario.Cliente + " AND TarifarioFleteDescrip LIKE " + "'" + this.txtTarifarioDescrip.Text + "%'", "TarifarioFleteDescrip");
                }
                else
                {
                    dtgTarifarios.DataSource = (DsTarifariosFlete.DatosRow[])ds.Datos.Select("UnidadNegocioID = " + this.UnidadNegocioID + " AND tipoTarifarioID = " + (int)NegociosSisPackInterface.SisPack.TipoTarifario.ClienteEstandarizado + "  AND TarifarioFleteDescrip LIKE " + "'" + this.txtTarifarioDescrip.Text + "%'", "TarifarioFleteDescrip");
                }
            }

            dtgTarifarios.CurrentPageIndex = currentPage;
            try
            {
                dtgTarifarios.DataBind();
            }
            catch (Exception ex)
            {
                // Reviso si se produjo la excepción por que se cargo un número de página superior a la cantidad de páginas que hay
                if (ex.Message == "Invalid CurrentPageIndex value. It must be >= 0 and < the PageCount.")
                {
                    // La excepción se produjo por que se cargo un número de página superior a la cantidad de páginas
                    // vuelvo a cargar la grilla, pero mostrando la página 0
                    dtgTarifarios.CurrentPageIndex = 0;
                    dtgTarifarios.DataBind();
                }

                int a = 0;
                a++;
            }
            //{"Invalid CurrentPageIndex value. It must be >= 0 and < the PageCount." }
        }
        void BindGrid(int currentPage)
        {
            //Llenar grilla


            if (tipoTari == NegociosSisPackInterface.SisPack.TipoTarifario.Ninguno)
            {
                SisPackController.AdministrarGrillas.Configurar(dtgTarifarios, "TarifarioClienteFleteID", this.CantidadOpciones);
                ITarifarioClienteFlete   oTarifario = TarifarioClienteFleteFactory.GetTarifarioClienteFlete();
                DsTarifariosClienteFlete ds         = oTarifario.GetTarifariosClienteFleteDataSet();

                if (ddlValorizacion.SelectedIndex > 0)
                {
                    //dtgTarifarios.DataSource = (DsTarifariosClienteFlete.DatosRow[]) ds.Datos.Select("UnidadNegocioID = " + this.UnidadNegocioID + " AND ValorizacionTarifarioID = "+ Convert.ToInt32(this.ddlValorizacion.SelectedValue) + " AND TarifarioFleteDescrip LIKE " +  "'" + this.txtTarifarioDescrip.Text + "%'" ,"TarifarioFleteDescrip");
                    dtgTarifarios.DataSource = (DsTarifariosClienteFlete.DatosRow[])ds.Datos.Select("UnidadNegocioID = " + this.UnidadNegocioID + " AND EstadoTarifarioID=5 AND ValorizacionTarifarioID = " + Convert.ToInt32(this.ddlValorizacion.SelectedValue) + " AND TarifarioFleteDescrip LIKE " + "'" + this.txtTarifarioDescrip.Text + "%'", "TarifarioFleteDescrip");
                }
                else
                {
                    //dtgTarifarios.DataSource = (DsTarifariosClienteFlete.DatosRow[]) ds.Datos.Select("UnidadNegocioID = " + this.UnidadNegocioID + " AND TarifarioFleteDescrip LIKE " +  "'" + this.txtTarifarioDescrip.Text + "%'" ,"TarifarioFleteDescrip");
                    dtgTarifarios.DataSource = (DsTarifariosClienteFlete.DatosRow[])ds.Datos.Select("UnidadNegocioID = " + this.UnidadNegocioID + " AND EstadoTarifarioID=5 AND TarifarioFleteDescrip LIKE " + "'" + this.txtTarifarioDescrip.Text + "%'", "TarifarioFleteDescrip");
                }
            }
            //Si se trata de tarifarios de cliente con ZONAS
            else if (tipoTari == NegociosSisPackInterface.SisPack.TipoTarifario.Cliente)
            {
                SisPackController.AdministrarGrillas.Configurar(dtgTarifarios, "TarifarioFleteID", this.CantidadOpciones);
                ITarifarioFlete   oTarifario = TarifarioFleteFactory.GetTarifarioFlete();
                DsTarifariosFlete ds         = oTarifario.GetTarifariosFleteDataSet();

                if (ddlValorizacion.SelectedIndex > 0)
                {
                    dtgTarifarios.DataSource = (DsTarifariosFlete.DatosRow[])ds.Datos.Select("UnidadNegocioID = " + this.UnidadNegocioID + " AND EstadoTarifarioID=5" + "AND tipoTarifarioID = " + (int)NegociosSisPackInterface.SisPack.TipoTarifario.Cliente + " AND ValorizacionTarifarioID = " + Convert.ToInt32(this.ddlValorizacion.SelectedValue) + " AND TarifarioFleteDescrip LIKE " + "'" + this.txtTarifarioDescrip.Text + "%'", "TarifarioFleteDescrip");
                }
                else
                {
                    dtgTarifarios.DataSource = (DsTarifariosFlete.DatosRow[])ds.Datos.Select("UnidadNegocioID = " + this.UnidadNegocioID + " AND EstadoTarifarioID=5" + " AND tipoTarifarioID = " + (int)NegociosSisPackInterface.SisPack.TipoTarifario.Cliente + " AND TarifarioFleteDescrip LIKE " + "'" + this.txtTarifarioDescrip.Text + "%'", "TarifarioFleteDescrip");
                }
            }
            else
            {
                SisPackController.AdministrarGrillas.Configurar(dtgTarifarios, "TarifarioFleteID", this.CantidadOpciones);
                ITarifarioFlete   oTarifario = TarifarioFleteFactory.GetTarifarioFlete();
                DsTarifariosFlete ds         = oTarifario.GetTarifariosFleteDataSet();

                if (ddlValorizacion.SelectedIndex > 0)
                {
                    dtgTarifarios.DataSource = (DsTarifariosFlete.DatosRow[])ds.Datos.Select("UnidadNegocioID = " + this.UnidadNegocioID + " AND EstadoTarifarioID=5" + "AND tipoTarifarioID = " + (int)NegociosSisPackInterface.SisPack.TipoTarifario.ClienteEstandarizado + " AND ValorizacionTarifarioID = " + Convert.ToInt32(this.ddlValorizacion.SelectedValue) + " AND TarifarioFleteDescrip LIKE " + "'" + this.txtTarifarioDescrip.Text + "%'", "TarifarioFleteDescrip");
                }
                else
                {
                    dtgTarifarios.DataSource = (DsTarifariosFlete.DatosRow[])ds.Datos.Select("UnidadNegocioID = " + this.UnidadNegocioID + " AND EstadoTarifarioID=5" + " AND tipoTarifarioID = " + (int)NegociosSisPackInterface.SisPack.TipoTarifario.ClienteEstandarizado + " AND TarifarioFleteDescrip LIKE " + "'" + this.txtTarifarioDescrip.Text + "%'", "TarifarioFleteDescrip");
                }
            }
            dtgTarifarios.CurrentPageIndex = currentPage;
            dtgTarifarios.DataBind();
        }
예제 #7
0
        private void BindGrid()
        {
            SisPackController.AdministrarGrillas.Configurar(this.dtgUnidadesVenta, "UnidadVentaID", this.CantidadOpciones);
            ITarifarioFlete tarifarioFlete = TarifarioFleteFactory.GetTarifarioFlete();

            tarifarioFlete.TarifarioFleteID = Convert.ToInt32(this.txtTarifarioID.Text);
            DsUnidadesVenta ds = tarifarioFlete.GetUnidadesVentaByTarifarioID();

            this.dtgUnidadesVenta.DataSource = ds;
            this.dtgUnidadesVenta.DataBind();
        }
예제 #8
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();
            }
        }
예제 #9
0
        protected void Guardar(object sender, System.EventArgs e)
        {
            int TarifarioFleteID;

            for (int i = 0; i < dtgTarifarios.Items.Count; i++)
            {
                if (((System.Web.UI.WebControls.CheckBox)(dtgTarifarios.Items[i].FindControl("chkMarcado"))).Checked)
                {
                    TarifarioFleteID = Convert.ToInt32(dtgTarifarios.DataKeys[(int)dtgTarifarios.Items[i].ItemIndex]);

                    // Obtenemos el usuario que ejecuta la acción.
                    IUsuarios usuarioConectado = UsuariosFactory.GetUsuario();
                    usuarioConectado.Login = this.UsuarioConectadoID;
                    usuarioConectado.ConsultarByLogin();

                    ITarifarioFlete oTarifario = TarifarioFleteFactory.GetTarifarioFlete();
                    oTarifario.TarifarioFleteID = TarifarioFleteID;
                    oTarifario.GuardarTarifarioFleteGeneral(usuarioConectado.UsuarioID);
                }
            }
            this.BindGrid(0);
        }
        protected void dtgTarifarios_Delete(Object sender, DataGridCommandEventArgs e)
        {
            ITarifarioFlete oTarifa = TarifarioFleteFactory.GetTarifarioFlete();

            //			oTarifa.TarifarioFleteID = Convert.ToInt32(dtgTarifarios.DataKeys[(int)e.Item.ItemIndex]);
            oTarifa.TarifarioFleteID = Utiles.Validaciones.obtieneEntero(e.Item.Cells[5].Text);

            // Asignamos el usuario que está efectuando la acción.
            IUsuarios usuarioConectato = UsuariosFactory.GetUsuario();

            usuarioConectato.Login = this.UsuarioConectadoID;
            usuarioConectato.ConsultarByLogin();
            oTarifa.UsuarioID = usuarioConectato.UsuarioID;

            try
            {
                if (oTarifa.Eliminar())
                {
                    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);
            }
        }
예제 #11
0
        private void Page_Load(object sender, System.EventArgs e)
        {
            Page.RegisterStartupScript("init", SisPackController.GenerarJavaScripts.SetearFocoControl(this.txtTarifarioDescrip.ClientID));
            //"Cliente"
            tipoTarifario = this.Request.QueryString["TipoTarifario"];
//			butGuardarImportes.Attributes.Add("onclick", "window.document.getElementById('" + accion + "').value = 'G'; return confirm('Se eliminarán los importes que hayan quedado en blanco. Desea continuar?')");
            if (this.Request.QueryString["Modal"] != null)
            {
                modal = (this.Request.QueryString["Modal"] == "S");
            }
            else
            {
                modal = false;
            }
            if (!modal)
            {
                this.LoadUCMenu();
            }

            if (!IsPostBack)
            {
                /*if(this.Request.QueryString["SoloLectura"]!= null)
                 * {
                 *      if(this.Request.QueryString["SoloLectura"]== "N")
                 *              soloLectura = false;
                 *      else if(this.Request.QueryString["SoloLectura"]=="S")
                 *              soloLectura = true;
                 * }*/

                //Session["tarifario"] = null;
                tariFlete = TarifarioFleteFactory.GetTarifarioFlete();


                if (this.Request.QueryString["TarifarioFleteID"] != null)
                {
                    tariFlete.TarifarioFleteID = Convert.ToInt32(Request.QueryString["TarifarioFleteID"]);
                    tariFlete.Consultar();
                }
                else
                {
                    this.tblTarifarioRef.Attributes.Add("Style", "Display: none");
                    this.tblVariacion.Attributes.Add("Style", "Display: none");
                    this.tblDesvincularTarifario.Attributes.Add("Style", "Display: none");
                }

                this.CargarCombos();

                if (tariFlete.TarifarioFleteID > 0)
                {
                    this.ConsultarTarifario();
                }

                Session["tarifario"] = tariFlete;
            }

            this.SetearValidadores();

            //PAO:24/03/2005 - lo agregue porque cuando te volves con el back del IE, se muere la variable
            //de sesión
            if (Session["tarifario"] != null)
            {
                tariFlete = (ITarifarioFlete)Session["tarifario"];
            }
            else
            {
                tariFlete = TarifarioFleteFactory.GetTarifarioFlete();
            }

            //tariFlete = TarifarioFleteFactory.GetTarifarioFlete();
            //PAO:24/03/2005
            //
            if (tariFlete.TieneTarifariosDerivados() || tariFlete.AsociadoUnidadVenta())
            {
                //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 (tariFlete.TarifarioFleteRefID > 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()");

            /*SFE Mostrar u ocultar el importe minimo del valor declarado segun el la valorizacion del Tarifario*/
            RegistrarHabilitarImporteMinimo();
            ddlValorizacion.Attributes.Add("onchange", "MostrarImporteMinimo();");

            if (tariFlete.TarifarioFleteID != 0)
            {
                try
                {
                    this.LoadUCZonasTopes();
                }
                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);
                }
            }

            if (tariFlete.HayTarifarioGeneral() || tariFlete.TarifarioFleteRefID != 0)
            {
                chkTarifarioGeneral.Enabled = false;
            }
            this.MostrarTablas();
            //Esto es necesario cuando se carga la pagina cuando....ver si solo cuando se hace Postback
            this.SetLecturaUC();
            //this.butGuardarTarifario.Enabled=true;
            //Cambiar a que no sea siempre de solo lectura, sino que se setean los valores de
            //acuerdo a otros datos.

            //Si el tarifario tiene tarifarios derivados, no permitir realizar cambios
            //de otro modo sí:
            //Cambios: si no tiene tarif de referencia, habilitar modificr en importes y en todos
            //lados. Sino, dejar solo que se pueda modificar la parte del tarifario de referencia (no qué tarifario sino en cuanto)
            //y en el guardar, chequear que si es diferente la variación, recalcule los importes que ya posee (zonastopes) segun la modificacion

            /*if(soloLectura)
             * {
             *      this.SetearSoloLectura();
             * }*/

            //Muestro o no el check de Tarifario General dependiendo del tipo de tarifario cliente o agencia
            tariFlete = (ITarifarioFlete)Session["tarifario"];
            if (tariFlete.TipoTarifario == NegociosSisPackInterface.SisPack.TipoTarifario.Cliente || tipoTarifario == "Cliente" || tariFlete.TipoTarifario == NegociosSisPackInterface.SisPack.TipoTarifario.ClienteEstandarizado || tipoTarifario == "ClienteEstandarizado")
            {
                this.chkTarifarioGeneral.Visible = false;
                this.lblEsTarifarioGral.Visible  = false;
            }
            AsignarNombrePagina();
        }
예제 #12
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);
            }
        }
        /// <summary>
        /// Método que asigna un tarifario, los importes correspondientes para las
        /// zonas y topes que se le pasan como parámetro.
        /// El cálculo se realiza en base a la información que posee el tarifario, con respecto al
        /// tarifario de referncia y la variación a aplicar.
        /// </summary>
        /// <param name="tariFlete">Tarifario al que se asignan los importes</param>
        /// <param name="topesCol">Topes para los que se asignaran importes</param>
        /// <param name="zonasCol">Zonas para las que se asignaran importes</param>
        /// <param name="ok">Estado de la relación, si es OK pudo insertar todas las relaciones,
        /// si es ERR no pudo porque la base no lo tiene asociado</param>
        public static bool AsignarImportes(ITarifarioFlete tariFleteNuevo, ITarifariosFleteTopeCol topesCol, ITarifariosFleteZonaCol zonasCol, ArrayList ok, int usuarioID)
        {
            ITarifarioFlete tariRef = TarifarioFleteFactory.GetTarifarioFlete();

            //PAO
            //Inicializo el parámetro
            ok.Add("OK");
            //PAO
            //Solo me interesa consultar los importes del tarifario de referencia
            tariRef.ZonasTopesCol.TarifarioFleteID = tariFleteNuevo.TarifarioFleteRefID;
            tariRef.ZonasTopesCol.Consultar();
            bool esPorcentaje;

            if (tariFleteNuevo.PorcentajeAjuste != 0)
            {
                esPorcentaje = true;
            }
            else
            {
                esPorcentaje = false;
            }

            for (int i = 0; i < topesCol.getCount(); i++)
            {
                ITarifarioFleteTope oTope = (ITarifarioFleteTope)topesCol.GetTarifarioFleteTope(i);

                for (int j = 0; j < zonasCol.getCount(); j++)
                {
                    ITarifarioFleteZona oZona = (ITarifarioFleteZona)zonasCol.GetTarifarioFleteZona(j);

                    //Recupero el importe al cual voy a aplicarle la variacion.
                    ITarifarioFleteZonaTope oZonaTopeRef = TarifarioFleteZonaTopeFactory.GetTarifarioFleteZonaTope();
                    oZonaTopeRef = tariRef.ZonasTopesCol.ConsultarExisteByZonaTopeID(oTope.Tope.TopeID, oZona.Zona.ZonaID);
                    if (oZonaTopeRef != null)
                    {
                        //Agregar un objeto de la coleccion, para setear el importe
                        ITarifarioFleteZonaTope oZonaTopeNuevo = tariFleteNuevo.ZonasTopesCol.AddTarifarioFleteZonaTope();

                        //Asignar Ids
                        oZonaTopeNuevo.TarifarioFleteZona.TarifarioFleteZonaID = oZona.TarifarioFleteZonaID;
                        oZonaTopeNuevo.TarifarioFleteTope.TarifarioFleteTopeID = oTope.TarifarioFleteTopeID;

                        //Hacer el calculo segun corresponda...Si se trata de un porcentaje o
                        if (tariFleteNuevo.FactorAjuste != "")
                        {
                            if (esPorcentaje)
                            {
                                if (tariFleteNuevo.FactorAjuste == "+")
                                {
                                    oZonaTopeNuevo.Importe = oZonaTopeRef.Importe + (oZonaTopeRef.Importe * (tariFleteNuevo.PorcentajeAjuste / 100));
                                    //Nuevo Metodo de valorizacion de tarifarios Bulto-Kilogramo Bety
                                    if (tariFleteNuevo.ValorizacionTarifario == SisPack.ValorizacionTarifario.Bulto_Kilogramo)
                                    {
                                        oZonaTopeNuevo.ImporteBultoExc = oZonaTopeRef.ImporteBultoExc + (oZonaTopeRef.ImporteBultoExc * (tariFleteNuevo.PorcentajeAjuste / 100));
                                    }
                                }
                                else
                                {
                                    oZonaTopeNuevo.Importe = oZonaTopeRef.Importe - (oZonaTopeRef.Importe * (tariFleteNuevo.PorcentajeAjuste / 100));
                                    if (tariFleteNuevo.ValorizacionTarifario == SisPack.ValorizacionTarifario.Bulto_Kilogramo)
                                    {
                                        oZonaTopeNuevo.ImporteBultoExc = oZonaTopeRef.ImporteBultoExc - (oZonaTopeRef.ImporteBultoExc * (tariFleteNuevo.PorcentajeAjuste / 100));
                                        if (oZonaTopeNuevo.ImporteBultoExc < 0)
                                        {
                                            oZonaTopeNuevo.ImporteBultoExc = 0;
                                        }
                                    }
                                    if (oZonaTopeNuevo.Importe < 0)
                                    {
                                        oZonaTopeNuevo.Importe = 0;
                                    }
                                }
                            }
                            else
                            {
                                if (tariFleteNuevo.FactorAjuste == "+")
                                {
                                    oZonaTopeNuevo.Importe = oZonaTopeRef.Importe + tariFleteNuevo.ImporteAjuste;
                                    if (tariFleteNuevo.ValorizacionTarifario == SisPack.ValorizacionTarifario.Bulto_Kilogramo)
                                    {
                                        oZonaTopeNuevo.ImporteBultoExc = oZonaTopeRef.ImporteBultoExc + tariFleteNuevo.ImporteAjuste;
                                    }
                                }
                                else
                                {
                                    oZonaTopeNuevo.Importe = oZonaTopeRef.Importe - tariFleteNuevo.ImporteAjuste;
                                    if (tariFleteNuevo.ValorizacionTarifario == SisPack.ValorizacionTarifario.Bulto_Kilogramo)
                                    {
                                        oZonaTopeNuevo.ImporteBultoExc = oZonaTopeRef.ImporteBultoExc - tariFleteNuevo.ImporteAjuste;
                                        if (oZonaTopeNuevo.ImporteBultoExc < 0)
                                        {
                                            oZonaTopeNuevo.ImporteBultoExc = 0;
                                        }
                                    }
                                    if (oZonaTopeNuevo.Importe < 0)
                                    {
                                        oZonaTopeNuevo.Importe = 0;
                                    }
                                }
                            }
                        }
                        else
                        {
                            oZonaTopeNuevo.Importe = oZonaTopeRef.Importe;
                            if (tariFleteNuevo.ValorizacionTarifario == SisPack.ValorizacionTarifario.Bulto_Kilogramo)
                            {
                                oZonaTopeNuevo.ImporteBultoExc = oZonaTopeRef.ImporteBultoExc;
                            }
                        }
                    }
                    //PAO
                    else
                    {
                        //Marco la variable ok con ERR, para mostrarle al usuario que no existe esa relación
                        ok[0] = "ERR";
                    }
                    //PAO
                }
            }
            try
            {
                tariFleteNuevo.ZonasTopesCol.TarifarioFleteID = tariFleteNuevo.TarifarioFleteID;
                if (tariFleteNuevo.ZonasTopesCol.Guardar(usuarioID))
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception)
            {
                return(false);
            }
        }
        /// <summary>
        /// Método para recalcular importes: de zonas (Importe por Kg Excedente) e importes de zonas y topes
        /// </summary>
        /// <param name="tariFleteNuevo"></param>
        /// <returns>Devuelve un booleano indicando el éxito de la operación</returns>
        public static bool RecalcularImportes(ITarifarioFlete tariFleteNuevo, int usuarioID)
        {
            ITarifarioFlete             tariRef    = TarifarioFleteFactory.GetTarifarioFlete();
            ITarifariosFleteZonaTopeCol zonasTopes = tariFleteNuevo.ZonasTopesCol;

            //Solo me interesa consultar los importes del tarifario de referencia
            tariRef.ZonasTopesCol.TarifarioFleteID = tariFleteNuevo.TarifarioFleteRefID;
            tariRef.ZonasTopesCol.Consultar();

            tariRef.ZonasCol.TarifarioFleteID = tariFleteNuevo.TarifarioFleteRefID;
            tariRef.ZonasCol.Consultar();

            bool esPorcentaje;

            if (tariFleteNuevo.PorcentajeAjuste != 0)
            {
                esPorcentaje = true;
            }
            else
            {
                esPorcentaje = false;
            }

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

            ITarifariosFleteZonaCol zonasCol = tariFleteNuevo.ZonasCol;

            for (int i = 0; i < zonasCol.getCount(); i++)
            {
                //Recuperar el importe de Kg. Excedente de la zona de referencia
                ITarifarioFleteZona oZona    = zonasCol.GetTarifarioFleteZona(i);
                ITarifarioFleteZona oZonaRef = tariRef.ZonasCol.GetTarifarioFleteZonaByZonaID(oZona.Zona.ZonaID);

                if (tariFleteNuevo.FactorAjuste != "")
                {
                    if (esPorcentaje)
                    {
                        if (tariFleteNuevo.FactorAjuste == "+")
                        {
                            oZona.ImporteKgExcedente = oZonaRef.ImporteKgExcedente + (oZonaRef.ImporteKgExcedente * (tariFleteNuevo.PorcentajeAjuste / 100));
                        }
                        else
                        {
                            oZona.ImporteKgExcedente = oZonaRef.ImporteKgExcedente - (oZonaRef.ImporteKgExcedente * (tariFleteNuevo.PorcentajeAjuste / 100));
                            if (oZona.ImporteKgExcedente < 0)
                            {
                                oZona.ImporteKgExcedente = 0;
                            }
                        }
                    }
                    else
                    {
                        if (tariFleteNuevo.FactorAjuste == "+")
                        {                               //Modificacion del nuevo txtImporteAjusKgExcedente (Bety)
                            oZona.ImporteKgExcedente = oZonaRef.ImporteKgExcedente + tariFleteNuevo.ImporteAjusteKgExcedente;
                        }
                        else
                        {
                            oZona.ImporteKgExcedente = oZonaRef.ImporteKgExcedente - tariFleteNuevo.ImporteAjusteKgExcedente;
                            if (oZona.ImporteKgExcedente < 0)
                            {
                                oZona.ImporteKgExcedente = 0;
                            }
                        }
                    }
                }
                else
                {
                    oZona.ImporteKgExcedente = oZonaRef.ImporteKgExcedente;
                }
            }

            /*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
            for (int i = 0; i < zonasTopes.getCount(); i++)
            {
                ITarifarioFleteZonaTope oZonaTopeNuevo = (ITarifarioFleteZonaTope)zonasTopes.GetTarifarioFleteZonaTope(i);
                ITarifarioFleteZonaTope oZonaTopeRef   = tariRef.ZonasTopesCol.ConsultarExisteByZonaTopeID(oZonaTopeNuevo.TarifarioFleteTope.Tope.TopeID, oZonaTopeNuevo.TarifarioFleteZona.Zona.ZonaID);

                if (oZonaTopeRef != null)
                {
                    //Hacer el calculo segun corresponda...Si se trata de un porcentaje o de un importe fijo
                    if (tariFleteNuevo.FactorAjuste != "")
                    {
                        if (esPorcentaje)
                        {
                            if (tariFleteNuevo.FactorAjuste == "+")
                            {
                                oZonaTopeNuevo.Importe = oZonaTopeRef.Importe + (oZonaTopeRef.Importe * (tariFleteNuevo.PorcentajeAjuste / 100));
                                if (tariFleteNuevo.ValorizacionTarifario == SisPack.ValorizacionTarifario.Bulto_Kilogramo)
                                {
                                    oZonaTopeNuevo.ImporteBultoExc = oZonaTopeRef.ImporteBultoExc + (oZonaTopeRef.ImporteBultoExc * (tariFleteNuevo.PorcentajeAjuste / 100));
                                }
                            }
                            else
                            {
                                oZonaTopeNuevo.Importe = oZonaTopeRef.Importe - (oZonaTopeRef.Importe * (tariFleteNuevo.PorcentajeAjuste / 100));
                                if (tariFleteNuevo.ValorizacionTarifario == SisPack.ValorizacionTarifario.Bulto_Kilogramo)
                                {
                                    oZonaTopeNuevo.ImporteBultoExc = oZonaTopeRef.ImporteBultoExc - (oZonaTopeRef.ImporteBultoExc * (tariFleteNuevo.PorcentajeAjuste / 100));
                                    if (oZonaTopeNuevo.ImporteBultoExc < 0)
                                    {
                                        oZonaTopeNuevo.ImporteBultoExc = 0;
                                    }
                                }
                                if (oZonaTopeNuevo.Importe < 0)
                                {
                                    oZonaTopeNuevo.Importe = 0;
                                }
                            }
                        }
                        else
                        {
                            if (tariFleteNuevo.FactorAjuste == "+")
                            {
                                oZonaTopeNuevo.Importe = oZonaTopeRef.Importe + tariFleteNuevo.ImporteAjuste;
                                if (tariFleteNuevo.ValorizacionTarifario == SisPack.ValorizacionTarifario.Bulto_Kilogramo)
                                {
                                    oZonaTopeNuevo.ImporteBultoExc = oZonaTopeRef.ImporteBultoExc + tariFleteNuevo.ImporteAjuste;
                                }
                            }
                            else
                            {
                                oZonaTopeNuevo.Importe = oZonaTopeRef.Importe - tariFleteNuevo.ImporteAjuste;
                                if (tariFleteNuevo.ValorizacionTarifario == SisPack.ValorizacionTarifario.Bulto_Kilogramo)
                                {
                                    oZonaTopeNuevo.ImporteBultoExc = oZonaTopeRef.ImporteBultoExc - tariFleteNuevo.ImporteAjuste;
                                    if (oZonaTopeNuevo.ImporteBultoExc < 0)
                                    {
                                        oZonaTopeNuevo.ImporteBultoExc = 0;
                                    }
                                }
                                if (oZonaTopeNuevo.Importe < 0)
                                {
                                    oZonaTopeNuevo.Importe = 0;
                                }
                            }
                        }
                    }
                    else
                    {
                        oZonaTopeNuevo.Importe = oZonaTopeRef.Importe;
                        if (tariFleteNuevo.ValorizacionTarifario == SisPack.ValorizacionTarifario.Bulto_Kilogramo)
                        {
                            oZonaTopeNuevo.ImporteBultoExc = oZonaTopeRef.ImporteBultoExc;
                        }
                    }
                }
            }


            try
            {
                if (tariFleteNuevo.ZonasCol.Guardar(usuarioID))
                {
                    if (tariFleteNuevo.ZonasTopesCol.Guardar(usuarioID))
                    {
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception)
            {
                return(false);
            }
        }