/// <summary>
        /// Método que recupera las zonas de un tarifario, a partir de la coleccion de zonas.
        /// Primero se tiene que haber consultado el tarifario y llenado las colecciones.
        /// </summary>
        /// <returns>Retorna un dataset no tipado</returns>
        public DataView GetZonasDataSet()
        {
            DataSet   ds = new DataSet();
            DataTable dt = new DataTable();
            DataRow   dr;

            dt.Columns.Add(new DataColumn("TarifarioFleteZonaID"));
            dt.Columns.Add(new DataColumn("ZonaID"));
            dt.Columns.Add(new DataColumn("ZonaDescrip"));
            dt.Columns.Add(new DataColumn("ImporteKgExcedente"));
            dt.Columns.Add(new DataColumn("KmDesde", System.Type.GetType("System.Int32")));
            dt.Columns.Add(new DataColumn("KmHasta"));

            for (int i = 0; i < ZonasCol.getCount(); i++)
            {
                dr = dt.NewRow();
                ITarifarioFleteZona zona = ZonasCol.GetTarifarioFleteZona(i);
                dr[0] = zona.TarifarioFleteZonaID;
                dr[1] = zona.Zona.ZonaID;
                dr[2] = zona.Zona.ZonaDescrip;
                dr[3] = zona.ImporteKgExcedente;
                dr[4] = zona.Zona.KmDesde;
                dr[5] = zona.Zona.KmHasta;
                dt.Rows.Add(dr);
            }
            ds.Tables.Add(dt);

            ds.Tables[0].DefaultView.Sort = "KmDesde";
            return(ds.Tables[0].DefaultView);
        }
Example #2
0
        protected void  dtgZonasTarifario_Update(Object sender, DataGridCommandEventArgs e)
        {
            string importe = "";

            importe = ((TextBox)e.Item.FindControl("txtKgExcTari")).Text;
            BaseValidator          valImporteExcTar = (RegularExpressionValidator)((PlaceHolder)e.Item.FindControl("phValidKgExcTari")).FindControl("valImporteExcTar");
            RequiredFieldValidator reqImporteExcTar = (RequiredFieldValidator)((PlaceHolder)e.Item.FindControl("phValidKgExcTari")).FindControl("reqImporteExcTar");

            valImporteExcTar.Enabled = true;
            reqImporteExcTar.Enabled = true;
            valImporteExcTar.Validate();
            reqImporteExcTar.Validate();
            if (!valImporteExcTar.IsValid || !reqImporteExcTar.IsValid)
            {
                return;
            }
            int key = Convert.ToInt32(dtgZonasTarifario.DataKeys[(int)e.Item.ItemIndex]);
            ITarifarioFleteZona oTariZona = tariFlete.ZonasCol.GetTarifarioFleteZonaByFleteZonaID(key);

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

            usuarioConectato.Login = this.usuarioConectadoID;
            usuarioConectato.ConsultarByLogin();

            oTariZona.Guardar(usuarioConectato.UsuarioID);
            dtgZonasTarifario.EditItemIndex = -1;
            this.BindGridZonasTarif(0);
            this.SetearPorTarifarioReferencia();

            this.chkZonasTarifTodas.Checked = false;
        }
        public ITarifarioFleteZona GetTarifarioFleteZonaByFleteZonaID(int fleteZonaID)
        {
            ITarifarioFleteZona oTariZona = null;

            for (int i = 0; i < this.tarifariosFleteZona.Count; i++)
            {
                oTariZona = (ITarifarioFleteZona)tarifariosFleteZona[i];
                if (oTariZona.TarifarioFleteZonaID == fleteZonaID)
                {
                    break;
                }
            }
            return(oTariZona);
        }
        ///
        ///

        /*public DsTarifariosFleteZona GetTarifariosFleteZonaUNegocioDataSet(int uNegocioID)
         * {
         *      DsTarifariosFleteZona ds = new DsTarifariosFleteZona();
         *      SqlParameter pTarifarioFleteID = new SqlParameter("@TarifarioFleteID", Utiles.BaseDatos.IntToSql(this.TarifarioFleteID));
         *      SqlParameter pUNegocioID = new SqlParameter("@UnidadNegocioID", Utiles.BaseDatos.IntToSql(uNegocioID));
         *      Config.Conexion.LlenarTypeDataSet(ds.Datos, System.Data.CommandType.StoredProcedure, "TarifariosFleteZonaALL", pTarifarioFleteID, pUNegocioID);
         *      return ds;
         * }*/
        /// <summary>
        /// Método para sacar de la coleccion un objeto TarifarioFleteZona.
        /// </summary>
        /// <param name="tariZona"></param>
        /// <returns>Retorna true si pudo removerlo y false si no tuvo éxito la operacion.</returns>
        public bool DeleteByFleteZonaID(int clave, int usuarioID, System.Data.SqlClient.SqlTransaction transaccion)
        {
            try
            {
                ITarifarioFleteZona oTariZona = this.GetTarifarioFleteZonaByFleteZonaID(clave);
                if (oTariZona.Eliminar(usuarioID, transaccion))
                {
                    tarifariosFleteZona.Remove(oTariZona);
                }
                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
                //return false;
            }
        }
        /// <summary>
        /// Metodo que consulta todos los importes para las distintas zonas de un tarifario en especial.
        /// </summary>
        /// <returns></returns>
        public bool Consultar()
        {
            DsTarifariosFleteZona ds = this.GetTarifariosFleteZonaDataSet();

            if (ds == null)
            {
                return(false);
            }
            DsTarifariosFleteZona.DatosRow dr = null;
            for (int i = 0; i < ds.Datos.Rows.Count; i++)
            {
                dr = (DsTarifariosFleteZona.DatosRow)ds.Datos.Rows[i];
                ITarifarioFleteZona oTarifarioFleteZona = (ITarifarioFleteZona)this.AddTarifarioFleteZona();
                oTarifarioFleteZona.Cargar(dr);
            }
            return(true);
        }
        public void ValidateImportes(object source, System.Web.UI.WebControls.ServerValidateEventArgs args)
        {
            if (tariFlete.ValorizacionTarifario == SisPack.ValorizacionTarifario.Bulto_Kilogramo)
            {
                ITarifariosFleteZonaTopeCol zonasTopes = tariFlete.ZonasTopesCol;
                ITarifariosFleteTopeCol     tariTopes  = tariFlete.TopesCol;
                ITarifariosFleteZonaCol     tariZonas  = tariFlete.ZonasCol;

                TextBox txt1, txt2;
                //Se lo agregué para poder probar los validadores agregados a los text
                string mje = "Error en la ";
                for (int i = 0; i < tariTopes.getCount(); i++)
                {
                    ITarifarioFleteTope oTope = (ITarifarioFleteTope)tariTopes.GetTarifarioFleteTope(i);

                    for (int j = 0; j < tariZonas.getCount(); j++)
                    {
                        ITarifarioFleteZona     oZona     = (ITarifarioFleteZona)tariZonas.GetTarifarioFleteZona(j);
                        ITarifarioFleteZonaTope oZonaTope = zonasTopes.ConsultarExiste(oTope.TarifarioFleteTopeID, oZona.TarifarioFleteZonaID);

                        if (oZonaTope != null)
                        {
                            txt1 = (TextBox)this.FindControl("txtImporte_" + oZona.Zona.ZonaID + "_" + oTope.Tope.TopeID);
                            txt2 = (TextBox)this.FindControl("txtImporteBulto_" + oZona.Zona.ZonaID + "_" + oTope.Tope.TopeID);
                            if ((txt1.Text.Trim() == "" & txt2.Text.Trim() != "") || (txt1.Text.Trim() != "" & txt2.Text.Trim() == ""))
                            {
                                mje += ((ITarifarioFleteZona)tariZonas.GetTarifarioFleteZona(j)).Zona.ZonaDescrip + ", Tope " + ((ITarifarioFleteTope)tariTopes.GetTarifarioFleteTope(i)).Tope.TopeKgHasta + "; ";
                            }
                        }
                    }
                }
                if (mje != "Error en la ")
                {
                    args.IsValid = false;
                    ((CustomValidator)source).ErrorMessage = "Debe ingresar o borrar los dos valores para una combinacion: " + mje;                     //"Debe seleccionar tope y zona para asignar importes";
                    return;
                }
                args.IsValid = true;
            }
        }
        public void CargarTablaImportes(bool edit)
        {
            ITarifariosFleteZonaTopeCol zonasTopes = tariFlete.ZonasTopesCol;
            ITarifariosFleteTopeCol     tariTopes  = tariFlete.TopesCol;
            ITarifariosFleteZonaCol     tariZonas  = tariFlete.ZonasCol;

            if (zonasTopes.getCount() > 0)
            {
                HtmlTable     tblTabla = (HtmlTable)FindControl("tblImportesTarifario");
                HtmlTableRow  rowFila  = new HtmlTableRow();
                HtmlTableCell celCelda = new HtmlTableCell();

                TextBox     txt1, txt2;
                Label       lbl1, lbl2;
                PlaceHolder ph1, ph2;

                celCelda.InnerText = "";
                celCelda.Attributes.Add("Class", "TituloGrilla");
                rowFila.Cells.Add(celCelda);

                for (int i = 0; i < tariZonas.getCount(); i++)
                {
                    celCelda = new HtmlTableCell();
                    celCelda.Attributes.Add("Class", "TituloGrillaFijo");
                    if (tariFlete.ValorizacionTarifario == SisPack.ValorizacionTarifario.Bulto_Kilogramo)
                    {
                        celCelda.Attributes.Add("Colspan", "2");
                    }
                    celCelda.InnerText = ((ITarifarioFleteZona)tariZonas.GetTarifarioFleteZona(i)).Zona.ZonaDescrip;
                    rowFila.Controls.Add(celCelda);
                }
                tblTabla.Rows.Add(rowFila);
                //Si la valorizacion del Tarifario es Bulto-kilogramo agrego los subtitulos Primer Bulto y Bulto Exc
                if (tariFlete.ValorizacionTarifario == SisPack.ValorizacionTarifario.Bulto_Kilogramo)
                {
                    rowFila = new HtmlTableRow();

                    celCelda           = new HtmlTableCell();
                    celCelda.InnerText = "";
                    celCelda.Attributes.Add("Class", "TituloGrilla");
                    rowFila.Cells.Add(celCelda);

                    for (int i = 0; i < tariZonas.getCount(); i++)
                    {
                        celCelda = new HtmlTableCell();
                        celCelda.Attributes.Add("Class", "TituloGrillaFijo");
                        celCelda.Attributes.Add("Colspan", "1");
                        celCelda.InnerText = "Primer Bulto";
                        rowFila.Controls.Add(celCelda);

                        celCelda = new HtmlTableCell();
                        celCelda.Attributes.Add("Class", "TituloGrillaFijo");
                        celCelda.Attributes.Add("Colspan", "1");
                        celCelda.InnerText = "Bulto Exc";
                        rowFila.Controls.Add(celCelda);
                    }
                    tblTabla.Rows.Add(rowFila);
                }
                for (int i = 0; i < tariTopes.getCount(); i++)
                {
                    ITarifarioFleteTope oTope = (ITarifarioFleteTope)tariTopes.GetTarifarioFleteTope(i);

                    rowFila            = new HtmlTableRow();
                    celCelda           = new HtmlTableCell();
                    celCelda.InnerText = oTope.Tope.TopeKgHasta.ToString();
                    celCelda.Attributes.Add("Class", "TituloGrilla");
                    rowFila.Cells.Add(celCelda);

                    for (int j = 0; j < tariZonas.getCount(); j++)
                    {
                        ITarifarioFleteZona     oZona     = (ITarifarioFleteZona)tariZonas.GetTarifarioFleteZona(j);
                        ITarifarioFleteZonaTope oZonaTope = zonasTopes.ConsultarExiste(oTope.TarifarioFleteTopeID, oZona.TarifarioFleteZonaID);

                        celCelda           = new HtmlTableCell();
                        celCelda.InnerText = "";

                        HtmlTableCell celCelda1 = new HtmlTableCell();
                        celCelda1.InnerText = "";

                        if (oZonaTope != null)
                        {
                            if (edit)
                            {
                                txt1                 = new TextBox();
                                txt1.CssClass        = "CampoChicoFijo";
                                txt1.ID              = "txtImporte_" + oZona.Zona.ZonaID + "_" + oTope.Tope.TopeID;
                                txt1.EnableViewState = false;
                                txt1.Text            = oZonaTope.Importe.ToString("0.###");
                                txt1.MaxLength       = 12;
                                celCelda.Controls.Add(txt1);

                                ph1 = new PlaceHolder();
                                ph1.Controls.Add(GenerarValidadores.DecimalPositivo(txt1.ID, this.TraducirTexto("Errores.Invalidos.Importe"), true, "valImporte_" + oZona.Zona.ZonaID + "_" + oTope.Tope.TopeID));
                                celCelda.Controls.Add(ph1);
                                //rowFila.Cells.Add(celCelda);

                                if (tariFlete.ValorizacionTarifario == SisPack.ValorizacionTarifario.Bulto_Kilogramo)
                                {
                                    txt2                 = new TextBox();
                                    txt2.CssClass        = "CampoChicoFijo";
                                    txt2.ID              = "txtImporteBulto_" + oZona.Zona.ZonaID + "_" + oTope.Tope.TopeID;
                                    txt2.EnableViewState = false;
                                    txt2.Text            = oZonaTope.ImporteBultoExc.ToString("0.###");
                                    txt2.MaxLength       = 12;
                                    celCelda1.Controls.Add(txt2);

                                    ph2 = new PlaceHolder();                                    //VER
                                    ph2.Controls.Add(GenerarValidadores.DecimalPositivo(txt2.ID, this.TraducirTexto("Errores.Invalidos.Importe"), true, "valImporteBulto_" + oZona.Zona.ZonaID + "_" + oTope.Tope.TopeID));
                                    celCelda1.Controls.Add(ph2);
                                    //rowFila.Cells.Add(celCelda1);
                                }
                            }
                            else
                            {
                                lbl1          = new Label();
                                lbl1.CssClass = "TextoChicoFijo";
                                lbl1.ID       = "lblImporte_" + oZona.Zona.ZonaID + "_" + oTope.Tope.TopeID;
                                lbl1.Text     = oZonaTope.Importe.ToString("0.###");
                                /*SFE Mostrar en la tabla el texto "/Kg" si es Kilogramo Variable o "%" si es Por Valor Declarado*/
                                if (tariFlete.ValorizacionTarifario == SisPack.ValorizacionTarifario.Kilogramo)
                                {
                                    if (oTope.KgVariable)
                                    {
                                        lbl1.Text = lbl1.Text + "  / Kg.";
                                    }
                                }
                                else if (tariFlete.ValorizacionTarifario == SisPack.ValorizacionTarifario.ValorDeclarado)
                                {
                                    lbl1.Text = lbl1.Text + "  %";
                                }

                                celCelda.Controls.Add(lbl1);
                                //rowFila.Cells.Add(celCelda);

                                if (tariFlete.ValorizacionTarifario == SisPack.ValorizacionTarifario.Bulto_Kilogramo)
                                {
                                    //HtmlTableCell celCelda1 = new HtmlTableCell();
                                    //celCelda1.InnerText = "";
                                    lbl2          = new Label();
                                    lbl2.CssClass = "TextoChicoFijo";
                                    lbl2.ID       = "lblImporteBulto_" + oZona.Zona.ZonaID + "_" + oTope.Tope.TopeID;
                                    lbl2.Text     = oZonaTope.ImporteBultoExc.ToString("0.###");
                                    celCelda1.Controls.Add(lbl2);

                                    //rowFila.Cells.Add(celCelda1);
                                }
                            }
                        }
                        rowFila.Cells.Add(celCelda);
                        if (tariFlete.ValorizacionTarifario == SisPack.ValorizacionTarifario.Bulto_Kilogramo)
                        {
                            rowFila.Cells.Add(celCelda1);
                        }
                    }
                    tblTabla.Rows.Add(rowFila);
                }
                if ((this.txtAccion.Text == "E") || (this.txtAccion.Text == "G"))
                {
                    this.SetearBotones("GuardarCancelar");
                }
                else
                {
                    this.SetearBotones("Editar");
                }
            }
            else
            {
                this.SetearBotones("Ninguno");
            }
        }
        public bool GuardarImportesTabla()
        {
            ITarifariosFleteZonaTopeCol zonasTopes = tariFlete.ZonasTopesCol;
            ITarifariosFleteTopeCol     tariTopes  = tariFlete.TopesCol;
            ITarifariosFleteZonaCol     tariZonas  = tariFlete.ZonasCol;

            TextBox txt1, txt2;

            //Se lo agregué para poder probar los validadores agregados a los text

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

                for (int j = 0; j < tariZonas.getCount(); j++)
                {
                    ITarifarioFleteZona     oZona     = (ITarifarioFleteZona)tariZonas.GetTarifarioFleteZona(j);
                    ITarifarioFleteZonaTope oZonaTope = zonasTopes.ConsultarExiste(oTope.TarifarioFleteTopeID, oZona.TarifarioFleteZonaID);

                    if (oZonaTope != null)
                    {
                        txt1 = (TextBox)this.FindControl("txtImporte_" + oZona.Zona.ZonaID + "_" + oTope.Tope.TopeID);
                        if (txt1.Text.Trim() == "")
                        {
                            // Guardamos el usuario que ejecuta la acción.
                            IUsuarios usuarioConectado = NegociosSisPackFactory.UsuariosFactory.GetUsuario();
                            usuarioConectado.Login = this.UsuarioConectadoID;
                            usuarioConectado.ConsultarByLogin();

                            if (oZonaTope.Eliminar(usuarioConectado.UsuarioID))
                            {
                                zonasTopes.RemoveTarifarioFleteZonaTope(oZonaTope);
                            }
                        }
                        else
                        {
                            oZonaTope.Importe = Convert.ToDouble(txt1.Text);
                            if (tariFlete.ValorizacionTarifario == SisPack.ValorizacionTarifario.Bulto_Kilogramo)
                            {
                                txt2 = (TextBox)this.FindControl("txtImporteBulto_" + oZona.Zona.ZonaID + "_" + oTope.Tope.TopeID);
                                oZonaTope.ImporteBultoExc = Convert.ToDouble(txt2.Text);
                            }
                        }
                    }
                }
            }
            // Obtenemos el usuario que graba el tope.
            IUsuarios usuarioConectado2 = NegociosSisPackFactory.UsuariosFactory.GetUsuario();

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

            if (zonasTopes.Guardar(usuarioConectado2.UsuarioID))
            {
                Session["tarifario"] = this.tariFlete;
                return(true);
            }
            else
            {
                return(false);
            }
        }
        public static bool RecalcularImportesTarifarioCliente(ITarifarioClienteFlete tariFleteNuevo, int usuarioID)
        {
            ITarifarioFleteZona tariZonaRef = TarifarioFleteZonaFactory.GetTarifarioFleteZona();

            tariZonaRef.TarifarioFleteZonaID = tariFleteNuevo.TarifarioFleteZonaReferenciaID;
            tariZonaRef.Consultar();

            //ITarifarioFlete
            ITarifariosFleteZonaTopeCol zonasTopes = TarifarioFleteZonaTopeColFactory.GetTarifarioFleteZonaTopeCol();

            zonasTopes.TarifarioFleteID = tariZonaRef.TarifarioFleteID;
            zonasTopes.Consultar();

            bool esPorcentaje;

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

            //Iterar por la coleccion de importes de topes y asignar el importe que corresponda.
            ITarifariosClienteFleteTopeCol topesCol = tariFleteNuevo.TopesCol;


            for (int i = 0; i < topesCol.getCount(); i++)
            {
                //Recuperar el importe de referencia de la coleccion de topes
                ITarifarioClienteFleteTope oTope = topesCol.GetTarifarioFleteTope(i);
                //ITarifarioFleteZona oZona = zonasCol.GetTarifarioFleteZona(i);
                ITarifarioFleteZonaTope oZonaTope = zonasTopes.ConsultarExisteByZonaTopeID(oTope.Tope.TopeID, tariZonaRef.Zona.ZonaID);
                //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)) ;
                            oTope.Importe = oZonaTope.Importe + (oZonaTope.Importe * (tariFleteNuevo.PorcentajeAjuste / 100));
                            if (tariFleteNuevo.ValorizacionTarifario == SisPack.ValorizacionTarifario.Bulto_Kilogramo)
                            {
                                oTope.ImporteBultoExc = oZonaTope.ImporteBultoExc + (oZonaTope.ImporteBultoExc * (tariFleteNuevo.PorcentajeAjuste / 100));
                            }
                        }
                        else
                        {
                            oTope.Importe = oZonaTope.Importe - (oZonaTope.Importe * (tariFleteNuevo.PorcentajeAjuste / 100));
                            if (oTope.Importe < 0)
                            {
                                oTope.Importe = 0;
                            }
                            if (tariFleteNuevo.ValorizacionTarifario == SisPack.ValorizacionTarifario.Bulto_Kilogramo)
                            {
                                oTope.ImporteBultoExc = oZonaTope.ImporteBultoExc - (oZonaTope.ImporteBultoExc * (tariFleteNuevo.PorcentajeAjuste / 100));
                                if (oTope.ImporteBultoExc < 0)
                                {
                                    oTope.ImporteBultoExc = 0;
                                }
                            }
                        }
                    }
                    else
                    {
                        if (tariFleteNuevo.FactorAjuste == "+")
                        {
                            oTope.Importe = oZonaTope.Importe + tariFleteNuevo.ImporteAjuste;
                            if (tariFleteNuevo.ValorizacionTarifario == SisPack.ValorizacionTarifario.Bulto_Kilogramo)
                            {
                                oTope.ImporteBultoExc = oZonaTope.ImporteBultoExc + tariFleteNuevo.ImporteAjuste;
                            }
                        }
                        else
                        {
                            oTope.Importe = oZonaTope.Importe - tariFleteNuevo.ImporteAjuste;
                            if (oTope.Importe < 0)
                            {
                                oTope.Importe = 0;
                            }
                            if (tariFleteNuevo.ValorizacionTarifario == SisPack.ValorizacionTarifario.Bulto_Kilogramo)
                            {
                                oTope.ImporteBultoExc = oZonaTope.ImporteBultoExc - tariFleteNuevo.ImporteAjuste;
                                if (oTope.ImporteBultoExc < 0)
                                {
                                    oTope.ImporteBultoExc = 0;
                                }
                            }
                        }
                    }
                }
                else
                {
                    oTope.Importe = oZonaTope.Importe;
                    if (tariFleteNuevo.ValorizacionTarifario == SisPack.ValorizacionTarifario.Bulto_Kilogramo)
                    {
                        oTope.ImporteBultoExc = oZonaTope.ImporteBultoExc;
                    }
                }
            }

            try
            {
                if (tariFleteNuevo.Guardar(usuarioID))
                {
                    if (tariFleteNuevo.TopesCol.Guardar(usuarioID))
                    {
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception)
            {
                return(false);
            }
        }
        /// <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);
            }
        }
Example #12
0
        private void butZonas_Click(object sender, System.EventArgs e)
        {
            ITarifariosFleteZonaCol tariZonas = tariFlete.ZonasCol;

            tariZonas.TarifarioFleteID = tariFlete.TarifarioFleteID;
            double importe;
            bool   isOK = true;

            foreach (DataGridItem item in dtgZonasDisponibles.Items)
            {
                if (((CheckBox)item.FindControl("chkZonaDisp")).Checked)
                {
                    /*SFE No requerir el excedente si es Valorizacion por Valor Declarado*/
                    if ((tariFlete.TarifarioFleteRefID == 0) && (tariFlete.ValorizacionTarifario != SisPack.ValorizacionTarifario.ValorDeclarado))
                    {
                        BaseValidator          valImporteExc = (RegularExpressionValidator)((PlaceHolder)item.FindControl("phValidKgExc")).FindControl("valImporteExc");
                        RequiredFieldValidator reqImporteExc = (RequiredFieldValidator)((PlaceHolder)item.FindControl("phValidKgExc")).FindControl("reqImporteExc");
                        valImporteExc.Enabled = true;
                        reqImporteExc.Enabled = true;
                        valImporteExc.Validate();
                        reqImporteExc.Validate();
                        if (!valImporteExc.IsValid || !reqImporteExc.IsValid)
                        {
                            isOK = false;
                        }
                    }
                }
            }
            if (!isOK)
            {
                return;
            }
            foreach (DataGridItem item in dtgZonasDisponibles.Items)
            {
                if (((CheckBox)item.FindControl("chkZonaDisp")).Checked)
                {
                    importe = Utiles.Validaciones.obtieneDouble(((TextBox)item.FindControl("txtKgExc")).Text);
                    ITarifarioFleteZona oTariZona = tariZonas.AddTarifarioFleteZona();
                    oTariZona.Zona.ZonaID      = Convert.ToInt32(dtgZonasDisponibles.DataKeys[item.DataSetIndex]);
                    oTariZona.Zona.ZonaDescrip = ((Label)item.FindControl("lblZonaDescripDisp")).Text;
                    oTariZona.Zona.KmDesde     = Convert.ToInt32(((TextBox)item.FindControl("txtKmDesdeDisp")).Text);
                    /*SFE No requerir el excedente si es Valorizacion por Valor Declarado*/
                    if ((tariFlete.TarifarioFleteRefID != 0) && (tariFlete.ValorizacionTarifario != SisPack.ValorizacionTarifario.ValorDeclarado))
                    {
                        //oTariZona.ImporteKgExcedente =  CalcularImporte(importe);
                        oTariZona.ImporteKgExcedente = AdministrarTarifarios.CalcularImporte(importe, tariFlete.FactorAjuste, tariFlete.PorcentajeAjuste, tariFlete.ImporteAjusteKgExcedente);
                    }
                    else
                    {
                        oTariZona.ImporteKgExcedente = importe;
                    }
                }
            }
            try
            {
                // Obtenemos el usuario que graba el tope.
                IUsuarios usuarioConectado = UsuariosFactory.GetUsuario();
                usuarioConectado.Login = this.UsuarioConectadoID;
                usuarioConectado.ConsultarByLogin();

                tariZonas.Guardar(usuarioConectado.UsuarioID);
                this.BindGridZonasDisp(0);
                this.BindGridZonasTarif(0);
                this.SetearPorTarifarioReferencia();
            }
            catch (Exception ex)
            {
                throw ex;
            }

            Session["tarifario"] = tariFlete;
        }
Example #13
0
        public void ValidateZonasTopes(object source, System.Web.UI.WebControls.ServerValidateEventArgs args)
        {
            this.topesTMP = null;
            this.zonasTMP = null;
            int topeID, tariToID;
            int zonaID, tariZoID;

            this.topesTMP = TarifariosFleteTopeColFactory.GetTarifariosFleteTopeCol();
            this.zonasTMP = TarifariosFleteZonaColFactory.getTarifarioFleteZonaCol();
            ITarifariosFleteZonaTopeCol zonasTopes = tariFlete.ZonasTopesCol;

            bool pri = true;

            foreach (DataGridItem itemTope in this.dtgTopesTarifario.Items)
            {
                if (((CheckBox)itemTope.FindControl("chkTopeTari")).Checked)
                {
                    tariToID = Convert.ToInt32(dtgTopesTarifario.DataKeys[itemTope.DataSetIndex]);
                    topeID   = Convert.ToInt32(((TextBox)itemTope.FindControl("txtTopeID")).Text);

                    if (zonasTMP.getCount() > 0)
                    {
                        pri = false;
                    }

                    foreach (DataGridItem itemZona in this.dtgZonasTarifario.Items)
                    {
                        if (((CheckBox)itemZona.FindControl("chkZonaTari")).Checked)
                        {
                            //Chequear que no exista para esa zona y ese tope un importe asignado.
                            //topeID = Convert.ToInt32(dtgTopesTarifario.DataKeys[itemTope.DataSetIndex]);
                            tariZoID = Convert.ToInt32(dtgZonasTarifario.DataKeys[itemZona.DataSetIndex]);
                            zonaID   = Convert.ToInt32(((TextBox)itemZona.FindControl("txtZonaID")).Text);

                            if (zonasTopes.ConsultarExiste(tariToID, tariZoID) != null)
                            {
                                args.IsValid = false;
                                ((CustomValidator)source).ErrorMessage = "Ya existe un importe para la zona " + ((Label)itemZona.FindControl("lblZonaDescripTari")).Text + " y el tope " + ((Label)itemTope.FindControl("lblTopeKgHastaTari")).Text;
                                return;
                            }
                            if (pri)
                            {
                                if (itemZona.FindControl("lblZonaDescripTari") != null)
                                {
                                    ITarifarioFleteZona zona = zonasTMP.AddTarifarioFleteZona();
                                    zona.TarifarioFleteID     = tariFlete.TarifarioFleteID;
                                    zona.TarifarioFleteZonaID = Convert.ToInt32(dtgZonasTarifario.DataKeys[itemZona.DataSetIndex]);
                                    zona.Zona.ZonaDescrip     = ((Label)itemZona.FindControl("lblZonaDescripTari")).Text;
                                    zona.Zona.ZonaID          = zonaID;                           //Convert.ToInt32(((TextBox)itemZona.FindControl("txtZonaID")).Text);
                                }
                            }
                        }
                    }
                    if (itemTope.FindControl("lblVolumenTari") != null)
                    {
                        ITarifarioFleteTope tope = topesTMP.AddTarifarioFleteTope();
                        tope.TarifarioFleteID     = tariFlete.TarifarioFleteID;
                        tope.TarifarioFleteTopeID = Convert.ToInt32(dtgTopesTarifario.DataKeys[itemTope.DataSetIndex]);
                        tope.Tope.TopeKgHasta     = Convert.ToInt32(((Label)itemTope.FindControl("lblTopeKgHastaTari")).Text);
                        tope.Cm3Hasta             = Convert.ToDouble(((Label)itemTope.FindControl("lblVolumenTari")).Text);
                        tope.Tope.TopeID          = topeID;                //Convert.ToInt32(((TextBox)itemTope.FindControl("txtTopeID")).Text);
                    }
                }
            }
            if ((this.topesTMP.getCount() == 0) || (this.zonasTMP.getCount() == 0))
            {
                args.IsValid = false;
                ((CustomValidator)source).ErrorMessage = TraducirTexto("Errores.Obligatorios.ZonaTope");                 //"Debe seleccionar tope y zona para asignar importes";
                return;
            }
            args.IsValid = true;
        }