示例#1
0
 public Decimal GetPrecio(ProductInfo producto, BatchInfo partida, ETipoFacturacion tipo)
 {
     if (Productos == null)
     {
         LoadChilds(typeof(ProductoProveedor), false);
     }
     return(_base.ProviderBase.GetPrecio(producto, partida, tipo));
 }
        public Decimal GetPrecio(ProductInfo producto, BatchInfo partida, ETipoFacturacion tipo)
        {
            long oid_producto = (producto != null) ? producto.Oid : partida.OidProducto;

            producto = (producto != null) ? producto : ProductInfo.Get(oid_producto, false, true);
            ProductoProveedorInfo producto_prov = _producto_proveedores_list.GetItemByProducto(oid_producto);

            Decimal precio = producto.GetPrecioCompra(producto_prov, partida, tipo);

            return(precio);
        }
示例#3
0
        public virtual bool CheckStock(ETipoFacturacion saleType, long oidProduct, decimal amount, decimal reserved_amount = 0)
        {
            Stocks product_stock = Stocks.GetByProductList(oidProduct);

            switch (saleType)
            {
            case ETipoFacturacion.Peso: return(product_stock.TotalKgs() + reserved_amount >= amount);

            case ETipoFacturacion.Unidad: return(product_stock.TotalUds() + reserved_amount >= amount);

            case ETipoFacturacion.Unitaria: return(product_stock.TotalUds() + reserved_amount >= amount);
            }

            return(false);
        }
示例#4
0
        public Decimal GetPrecio(ProductInfo producto, BatchInfo partida, ETipoFacturacion tipo)
        {
            if (Productos == null)
            {
                LoadChilds(typeof(ProductoCliente), false);
            }

            long oid_producto = (producto != null) ? producto.Oid : partida.OidProducto;

            producto = (producto != null) ? producto : ProductInfo.Get(oid_producto, false, true);
            ProductoClienteInfo producto_cliente = Productos.GetByProducto(oid_producto);

            Decimal precio = producto.GetPrecioVenta(producto_cliente, partida, tipo);

            return(precio);
        }
示例#5
0
        public virtual bool CheckStock(ETipoFacturacion saleType, decimal amount, out ProductInfo noStockProduct)
        {
            noStockProduct = this;

            if (IsKit)
            {
                ProductInfo product = null;
                if (Components == null || Components.Count == 0)
                {
                    LoadChilds(typeof(Kit), false);
                }

                foreach (KitInfo item in Components)
                {
                    product = ProductInfo.Get(item.OidProduct, false);

                    if (!product.CheckStock(saleType, amount * item.Amount, out noStockProduct))
                    {
                        noStockProduct = product;
                        return(false);
                    }
                }

                noStockProduct = null;
                return(true);
            }
            else
            {
                noStockProduct = this;

                StockList stock = StockList.GetListByProducto(Oid, false, false);

                switch (saleType)
                {
                case ETipoFacturacion.Peso: return(stock.TotalKgs() >= amount);

                case ETipoFacturacion.Unidad: return(stock.TotalUds() >= amount);

                case ETipoFacturacion.Unitaria: return(stock.TotalUds() >= amount);
                }

                return(false);
            }
        }
示例#6
0
        internal static Decimal GetPrecioCliente(ProductoClienteInfo productoCliente, BatchInfo partida, ProductInfo producto, ETipoFacturacion tipo)
        {
            Decimal          precio          = 0;
            ETipoFacturacion tipoFacturacion = tipo;

            if (productoCliente != null)
            {
                precio          = (productoCliente.ETipoDescuento == ETipoDescuento.Precio) ? productoCliente.Precio : producto.PrecioVenta;
                tipoFacturacion = productoCliente.ETipoFacturacion;
            }
            else
            {
                precio          = producto.PrecioVenta;
                tipoFacturacion = producto.ETipoFacturacion;
            }

            Decimal kilosBulto = (partida != null) ? partida.KilosPorBulto : producto.KilosBulto;

            kilosBulto = (kilosBulto == 0) ? 1 : kilosBulto;

            switch (tipo)
            {
            case ETipoFacturacion.Peso:

                if (tipoFacturacion != ETipoFacturacion.Peso)
                {
                    precio = precio * kilosBulto;
                }

                break;

            default:

                if (tipoFacturacion == ETipoFacturacion.Peso)
                {
                    precio = precio / kilosBulto;
                }

                break;
            }

            return(Decimal.Round(precio, Common.ModulePrincipal.GetNDecimalesPreciosSetting()));
        }
        internal static Decimal GetPrecioProveedor(ProductoProveedorInfo productoProveedor, BatchInfo partida, ProductInfo producto, ETipoFacturacion tipo)
        {
            Decimal          precio          = 0;
            ETipoFacturacion tipoFacturacion = tipo;

            if (productoProveedor != null)
            {
                precio          = (productoProveedor.ETipoDescuento == ETipoDescuento.Precio) ? productoProveedor.Precio : producto.PrecioCompra;
                tipoFacturacion = productoProveedor.ETipoFacturacion;
            }
            else
            {
                precio          = producto.PrecioCompra;
                tipoFacturacion = producto.ETipoFacturacion;
            }

            Decimal kilosBulto = (partida != null) ? partida.KilosPorBulto : producto.KilosBulto;

            kilosBulto = (kilosBulto == 0) ? 1 : kilosBulto;

            switch (tipo)
            {
            case ETipoFacturacion.Peso:

                if (tipoFacturacion != ETipoFacturacion.Peso)
                {
                    precio = precio * kilosBulto;
                }

                break;

            default:

                if (tipoFacturacion == ETipoFacturacion.Peso)
                {
                    precio = precio / kilosBulto;
                }

                break;
            }

            return(Decimal.Round(precio, 2));
        }
示例#8
0
 public virtual Decimal GetPrecioVenta(ProductoClienteInfo productoCliente, BatchInfo batch, ETipoFacturacion tipo)
 {
     return(ProductoClienteInfo.GetPrecioCliente(productoCliente, this, batch, tipo));
 }
示例#9
0
 public virtual Decimal GetPrecioCompra(ProductoProveedorInfo productoProveedor, BatchInfo batch, ETipoFacturacion tipo)
 {
     return(ProductoProveedorInfo.GetPrecioProveedor(productoProveedor, this, batch, tipo));
 }
 public static void SetDefaultTipoFacturacionSetting(ETipoFacturacion value)
 {
     SettingsMng.Instance.SchemaSettings.SetValue(Settings.Default.SETTING_NAME_DEFAULT_TIPO_FACTURACION, ((long)value).ToString());
 }
 public static Decimal GetPrecioCliente(ProductoClienteInfo productoCliente, ProductInfo producto, BatchInfo partida, ETipoFacturacion tipo)
 {
     return(ClientProductBase.GetPrecioCliente(productoCliente, partida, producto, tipo));
 }
示例#12
0
 public static Decimal GetPrecioProveedor(ProductoProveedorInfo productoProveedor, ProductInfo producto, BatchInfo partida, ETipoFacturacion tipo)
 {
     return(ProductoProveedorBase.GetPrecioProveedor(productoProveedor, partida, producto, tipo));
 }
 public OutputInvoiceLine GetItemByProduct(long oidProduct, ETipoFacturacion saleWay)
 {
     return(this.FirstOrDefault(x => x.OidProducto == oidProduct && x.ETipoFacturacion == saleWay));
 }
 public OutputInvoiceLine GetItemByBatch(long oidBatch, ETipoFacturacion saleWay)
 {
     return(this.FirstOrDefault(x => x.OidPartida == oidBatch && x.ETipoFacturacion == saleWay));
 }