public Decimal GetDescuento(ProductInfo producto, BatchInfo partida)
        {
            long oid_producto = (producto != null) ? producto.Oid : partida.Oid;
            ProductoProveedorInfo producto_cliente = _producto_proveedores_list.GetItemByProducto(oid_producto);

            return(ProductoProveedorInfo.GetDescuentoProveedor(producto_cliente, 0));
        }
        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);
        }
        internal static Decimal GetDescuentoProveedor(ProductoProveedorInfo productoProveedor, Decimal pDescuento)
        {
            Decimal p_descuento = pDescuento;

            if (productoProveedor != null)
            {
                p_descuento = (productoProveedor.ETipoDescuento == ETipoDescuento.Porcentaje) ? productoProveedor.PDescuento : pDescuento;
            }

            return(Decimal.Round(p_descuento, 2));
        }
        internal void CopyValues(ProductoProveedorInfo source)
        {
            if (source == null)
            {
                return;
            }

            _record.CopyValues(source._base.Record);

            _p_impuestos  = source.PImpuestos;
            _oid_familia  = source.OidFamilia;
            _familia      = source.Familia;
            _producto     = source.Producto;
            _precio_venta = source.PrecioVenta;
            _ayuda        = source.Ayuda;
        }
        internal static string SELECT(long oid, ETipoAcreedor providerType, bool lockTable)
        {
            string query = string.Empty;

            QueryConditions conditions = new QueryConditions
            {
                TipoAcreedor = new ETipoAcreedor[1] {
                    providerType
                },
                ProductoProveedor = ProductoProveedorInfo.New(oid)
            };

            query = SELECT(conditions, lockTable);

            return(query);
        }
        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));
        }
Beispiel #7
0
 public virtual Decimal GetDescuentoCompra(ProductoProveedorInfo productoProveedor, Decimal pDescuento)
 {
     return(ProductoProveedorInfo.GetDescuentoProveedor(productoProveedor, pDescuento));
 }
Beispiel #8
0
 public virtual Decimal GetPrecioCompra(ProductoProveedorInfo productoProveedor, BatchInfo batch, ETipoFacturacion tipo)
 {
     return(ProductoProveedorInfo.GetPrecioProveedor(productoProveedor, this, batch, tipo));
 }