private void butGuardarImportes_Click(object sender, System.EventArgs e) { foreach (DataGridItem itemImporte in dtgImportes.Items) { for (int i = 0; i < tariZonas.getCount(); i++) { ITarifarioFleteZonaTope zonaTope = tariFlete.ZonasTopesCol.AddTarifarioFleteZonaTope(); zonaTope.TarifarioFleteTope.TarifarioFleteTopeID = Convert.ToInt32(dtgImportes.DataKeys[itemImporte.DataSetIndex]); zonaTope.TarifarioFleteZona.TarifarioFleteZonaID = tariZonas.GetTarifarioFleteZona(i).TarifarioFleteZonaID; zonaTope.Importe = Convert.ToDouble(((TextBox)itemImporte.FindControl("txtImporte")).Text); zonaTope.ImporteBultoExc = ((TextBox)itemImporte.FindControl("txtBultoExc")).Text == "" ? 0 : Convert.ToDouble(((TextBox)itemImporte.FindControl("txtBultoExc")).Text); } } try { tariFlete.ZonasTopesCol.TarifarioFleteID = tariFlete.TarifarioFleteID; // Asignamos el usuario que está efectuando la acción. IUsuarios usuarioConectato = UsuariosFactory.GetUsuario(); usuarioConectato.Login = this.UsuarioConectadoID; usuarioConectato.ConsultarByLogin(); tariFlete.ZonasTopesCol.Guardar(usuarioConectato.UsuarioID); } catch (Exception ex) { throw ex; } Session["tarifario"] = tariFlete; string script = "<script language='javascript'>\n"; script += "window.returnValue = true;\n window.close();\n"; script += "</script>"; Page.RegisterStartupScript("reg", script); }
public bool RemoveTarifarioFleteZonaTope(ITarifarioFleteZonaTope tariZonaTope) { try { tarifariosFleteZonaTope.Remove(tariZonaTope); return(true); } catch (Exception) { return(false); } }
/// <summary> /// Metodo que consulta todos los importes para las distintas zonas y topes de un tarifario en especial. /// </summary> /// <returns></returns> public bool Consultar() { ///Llenar un DataSet aplanado con todos los datos que necesito. DsTarifariosFleteZonaTopeCompleto ds = this.GetTarifarioFleteZonaTopeCompletoDataSet(); if (ds == null) { return(false); } DsTarifariosFleteZonaTopeCompleto.DatosRow dr = null; for (int i = 0; i < ds.Datos.Rows.Count; i++) { dr = (DsTarifariosFleteZonaTopeCompleto.DatosRow)ds.Datos.Rows[i]; ITarifarioFleteZonaTope oTarifarioFleteZonaTope = (ITarifarioFleteZonaTope)this.AddTarifarioFleteZonaTope(); oTarifarioFleteZonaTope.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); } }