/// <summary> /// Método delegado para el evento bindeo de datos con la lista de costos adicionales /// </summary> /// <param name="sender">Objeto que desencadeno el evento</param> /// <param name="e">Argumento asociados al evento</param> protected void grvCostosAdicionales_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { DetalleTransaccionBO detalle = (DetalleTransaccionBO)e.Row.DataItem; Label label = (Label)e.Row.FindControl("lblTipoRenglon"); label.Text = detalle.TipoRenglon.ToString(); } }
/// <summary> /// Agrega un costo adicional a la factura /// </summary> public void AgregarCostoAdicional() { //RI0024, Validación de precio mayor a cero if (this.vista.Precio <= 0) { throw new Exception("El precio unitario del costo adicional debe de ser mayor a cero"); } if (string.IsNullOrEmpty(this.vista.DescripcionProductoServicio)) { throw new Exception("El producto o servicio es obligatorio."); } IGeneradorPaquetesFacturacionBR generador = this.ObtenerGeneradorPaquetes(this.vista.TipoContrato.GetValueOrDefault()); DetalleTransaccionBO detalle = new DetalleTransaccionBO() { ProductoServicio = new ProductoServicioBO() }; int?id = this.vista.CostosAdicionales .Select(it => (int?)it.Id) .Max(); if (!id.HasValue) { id = 0; } id++; detalle.Id = id; detalle.Cantidad = 1; detalle.UnidadMedida = generador.UnidadMedida; detalle.CostoUnitario = generador.Costo; detalle.AplicaIVA = true; detalle.Articulo = new Basicos.BO.ArticuloBO(); //SC0030 detalle.Articulo.Nombre = String.Format("{0}: {1}", this.vista.Concepto, this.vista.Descripcion != null ? this.vista.Descripcion.ToUpper() : null); detalle.PrecioUnitario = this.vista.Precio; detalle.DescuentoUnitario = 0M; detalle.RetencionUnitaria = 0M; detalle.TipoRenglon = this.vista.Concepto; detalle.ProductoServicio.Id = this.vista.ProductoServicioId; detalle.ProductoServicio.NombreCorto = this.vista.ClaveProductoServicio; detalle.ProductoServicio.Nombre = this.vista.DescripcionProductoServicio; detalle.Activo = true; this.vista.CostosAdicionales.Add(detalle); this.vista.MostrarListaCostosAdicionales(); this.Limpiar(); }
/// <summary> /// Elimina un costo adicional a la factura /// </summary> /// <param name="id">Id del costo adicional a eliminar</param> public void EliminarCostoAdicional(int id) { DetalleTransaccionBO detalle = this.vista.CostosAdicionales .Where(it => it.Id == id) .FirstOrDefault(); if (detalle != null) { this.vista.CostosAdicionales.Remove(detalle); } this.vista.MostrarListaCostosAdicionales(); }
/// <summary> /// Método delegado para el evento de bindeo de datos con el repeater /// </summary> /// <param name="sender">Objeto que desencadeno el evento</param> /// <param name="e">Argumento asociados al evento</param> protected void rptLineas_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { DetalleTransaccionBO detalleTransaccion = e.Item.DataItem as DetalleTransaccionBO; Label lblNoLinea = (Label)e.Item.FindControl("lblNoLinea"); lblNoLinea.Text = String.Format("LÍNEA #{0}", ++this.numeroLinea); if (detalleTransaccion.TipoRenglon != null) { TextBox txtTipoRenglon = (TextBox)e.Item.FindControl("txtTipoRenglon"); txtTipoRenglon.Text = detalleTransaccion.TipoRenglon.ToString(); } } }
/// <summary> /// Agrega un costo adicional a la factura /// </summary> public void AgregarCostoAdicional() { //RI0024, Validación de precio mayor a cero if (this.vista.Precio <= 0) { throw new Exception("El precio unitario del costo adicional debe de ser mayor a cero"); } if (string.IsNullOrEmpty(this.vista.DescripcionProductoServicio)) { throw new Exception("El producto o servicio es obligatorio."); } IGeneradorPaquetesFacturacionBR generador = this.ObtenerGeneradorPaquetes(this.vista.TipoContrato.GetValueOrDefault()); DetalleTransaccionBO detalle = new DetalleTransaccionBO() { ProductoServicio = new ProductoServicioBO() }; int?id = this.vista.CostosAdicionales .Select(it => (int?)it.Id) .Max(); if (!id.HasValue) { id = 0; } id++; detalle.Id = id; detalle.Cantidad = 1; detalle.UnidadMedida = generador.UnidadMedida; detalle.CostoUnitario = generador.Costo; detalle.AplicaIVA = true; detalle.Articulo = new Basicos.BO.ArticuloBO(); //SC0030 detalle.Articulo.Nombre = String.Format("{0}: {1}", this.vista.Concepto, this.vista.Descripcion != null ? this.vista.Descripcion.ToUpper() : null); detalle.Articulo.NombreCorto = this.vista.ClaveProductoServicio; detalle.PrecioUnitario = this.vista.Precio; detalle.DescuentoUnitario = 0M; detalle.RetencionUnitaria = 0M; detalle.TipoRenglon = this.vista.Concepto; detalle.ProductoServicio.Id = this.vista.ProductoServicioId; detalle.ProductoServicio.NombreCorto = this.vista.ClaveProductoServicio; detalle.ProductoServicio.Nombre = this.vista.DescripcionProductoServicio; detalle.Activo = true; this.vista.CostosAdicionales.Add(detalle); this.vista.MostrarListaCostosAdicionales(); this.Limpiar(); #region [Agregar costo adicional a la sesión] //CargoAdicionalModel CostoAdicional = new CargoAdicionalModel(); //CostoAdicional.LineaCostoAdicionalID = id; //CostoAdicional.Modificable = true; //CostoAdicional.TipoRenglon= Convert.ToInt32(this.vista.Concepto); //CostoAdicional.Cantidad = 1; //CostoAdicional.AplicaIVA = true; //CostoAdicional.PrecioUnitario = generador.Costo; //CostoAdicional.DescuentoUnitario = 0M; //CostoAdicional.RetencionUnitario = 0M; //CostoAdicional.ClaveProductoServicio = this.vista.ClaveProductoServicio; //CostoAdicional.Activo = true; //CostoAdicional.Estatus = "N"; //List<LineasFacturaModel> linea = this.vista.LineaCostoFacturaModel as List<LineasFacturaModel>; //List<LineasFacturaModel> linea = this.vista.LineaCostoFacturaModel as List<LineasFacturaModel>; //foreach(LineasFacturaModel elemento in linea) //{ // if (elemento.PagoContratoPSLID == this.vista.PagoContratoID) { // if (elemento.CargosAdicionales == null) // elemento.CargosAdicionales = new List<CargoAdicionalModel>(); // elemento.CargosAdicionales.Add(CostoAdicional); // } //} //this.vista.LineaCostoFacturaModel = linea; //this.vista.MostrarCostoAdicionalFactura(this.vista.PagoContratoID); #endregion }