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