public ListaPrecioCliente ListaPrecioClienteGrabar(ListaPrecioCliente datoGraba) { RepositoryGenerico <ListaPrecioCliente> repository = new RepositoryGenerico <ListaPrecioCliente>(); ListaPrecioCliente dato; if (datoGraba.Id == -1) { dato = new ListaPrecioCliente(); } else { dato = repository.Obtener(datoGraba.Id); if (dato == null) { throw new ApplicationException("No existe Lista de Precio"); } } dato.Vigente = datoGraba.Vigente; dato.Descripcion = datoGraba.Descripcion; dato.Codigo = datoGraba.Codigo; dato.Precio = datoGraba.Precio; dato.ListaPrecio = this.ObtenerObjeto <ListaPrecio>(datoGraba.ListaPrecio.Id); repository.Actualizar(dato); return(dato); }
// GET api/listapreciocliente/5 public IHttpActionResult Get(int id) { try { ServiciosProductos servicio = new ServiciosProductos(); ListaPrecioCliente resp = servicio.ObtenerObjeto <ListaPrecioCliente>(id); if (resp == null) { return(NotFound()); } return(Ok(resp)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
// POST api/listapreciocliente public IHttpActionResult Post([FromBody] ListaPrecioCliente datos) { try { ServiciosProductos servicio = new ServiciosProductos(); ListaPrecioCliente resp = servicio.ListaPrecioClienteGrabar(datos); if (resp == null) { return(NotFound()); } return(Ok(resp)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public decimal ObtenerPrecioVentaDeArticulo(string pCodigoCliente, string pCodigoArticulo, string pCodigoAlmacen) { DateTime fechaProcesoVenta; string codigoClienteInterno; int cantidadDecimalPrecio; var configuracionGlobal = _IConfiguracionGlobalUnificado.UnificarConfiguracionGlobal(); if (configuracionGlobal == null) { LogFactory.CrearLog().LogWarning(Mensajes.advertencia_ConfiguracionGlobalInvalido); throw new ArgumentException(Mensajes.advertencia_ConfiguracionGlobalInvalido); } else { fechaProcesoVenta = configuracionGlobal.FechaProcesoVenta; codigoClienteInterno = configuracionGlobal.CodigoClienteInterno; cantidadDecimalPrecio = configuracionGlobal.CantidadDecimalPrecio; } Articulo articulo = _IRepositorioArticulo.ObtenerPorCodigo(pCodigoArticulo, pCodigoAlmacen); if (articulo != null) { //Obtener Lista Precio Clientes ListaPrecioCliente listaPrecioCliente = _IRepositorioListaPrecioCliente.ObtenerListaPrecioCliente(pCodigoCliente, pCodigoArticulo, pCodigoAlmacen, fechaProcesoVenta.ToString("yyyyMMdd")); //Obtener Lista Precio Inventarios ListaPrecioInventario listaPrecioInventario = _IRepositorioListaPrecioInventario.ObtenerListaPrecioInventario(pCodigoArticulo, pCodigoAlmacen); return(_IServicioDominioListaPrecios.ObtenerPrecioVentaArticulo(articulo, listaPrecioCliente, listaPrecioInventario, pCodigoCliente, codigoClienteInterno, cantidadDecimalPrecio)); } else { LogFactory.CrearLog().LogWarning(Mensajes.advertencia_ArticuloNoExiste, pCodigoArticulo); return(0); } }
public decimal ObtenerPrecioVentaArticulo(Articulo pArticulo, ListaPrecioCliente pListaPrecioCliente, ListaPrecioInventario pListaPrecioInventario, string pCodigoClienteDeListaPrecio, string pCodigoClienteInterno, int pCantidadDecimalPrecio) { //Validacion de Articulo if (pArticulo == null) { throw new InvalidOperationException(Mensajes.excepcion_ArticuloNoExisteEnServicioDominioListaPrecios); } ////Validacion Listas Precios Disponibles //if (pListaPrecioCliente == null && pListaPrecioInventario == null) // throw new InvalidOperationException(Mensajes.exception_CannotTransferMoneyWhenFromIsTheSameAsTo); //Validacion si articulo es habilitado if (!pArticulo.EsHabilitado) { throw new InvalidOperationException(Mensajes.excepcion_ArticuloNoHabilitadoEnServicioDominioListaPrecios); } //Precio por defecto decimal originalPrecioVenta = pArticulo.ArticuloDetalle.Precio; decimal nuevoPrecioVenta = 0; decimal precioVentaObtenido = originalPrecioVenta; //Valor por defecto //Lista Precio de Clientes----------- if (pListaPrecioCliente != null && pListaPrecioCliente.ListaPrecioClienteDetalles.Any()) { Nullable <int> modalidadDescuento = pListaPrecioCliente.ModalidadDescuento; decimal montoDescuento = pListaPrecioCliente.ListaPrecioClienteDetalles.FirstOrDefault().MontoDescuento; ////Validacion que no sea un cliente interno if (pCodigoClienteDeListaPrecio != pCodigoClienteInterno) { //descuento en monto if (modalidadDescuento == 1) { nuevoPrecioVenta = originalPrecioVenta - montoDescuento; } //descuento en porcentaje else if (modalidadDescuento == 3) { nuevoPrecioVenta = originalPrecioVenta - Math.Round(originalPrecioVenta * (montoDescuento / 100), pCantidadDecimalPrecio); } } if (nuevoPrecioVenta > 0) { precioVentaObtenido = nuevoPrecioVenta; } } //Lista Precio Inventario; if (pListaPrecioInventario != null && pListaPrecioInventario.ListaPrecioInventarioDetalles.Any()) { if (nuevoPrecioVenta == 0) { nuevoPrecioVenta = pListaPrecioInventario.ListaPrecioInventarioDetalles.FirstOrDefault().NuevoPrecioInventario; if (nuevoPrecioVenta > 0) { precioVentaObtenido = nuevoPrecioVenta; } } } return(precioVentaObtenido); }