commit
This commit is contained in:
91
SQL/Contracts with MTM info.sql
Normal file
91
SQL/Contracts with MTM info.sql
Normal file
@@ -0,0 +1,91 @@
|
||||
-- Contracts with an MtM strategy, pricing_component details, and latest valuation snapshot
|
||||
SELECT
|
||||
'Purchase' AS side,
|
||||
pp.number AS contract,
|
||||
pl.quantity AS contracted_qty,
|
||||
ms.name AS strategy_name,
|
||||
msc.name AS scenario_name,
|
||||
msc.valuation_date,
|
||||
msc.use_last_price,
|
||||
cur.symbol AS strategy_currency,
|
||||
-- MtM component (pricing_component linked via strategy)
|
||||
pc_mtm.price_source_type AS component_price_source,
|
||||
pc_mtm.ratio AS component_ratio_pct,
|
||||
ft.name AS component_fix_type,
|
||||
pi.price_desc AS component_curve,
|
||||
pc_cal.name AS component_calendar,
|
||||
pc_mtm.auto AS component_auto,
|
||||
pc_mtm.fallback AS component_fallback,
|
||||
-- Latest valuation (physical price row)
|
||||
vv.date AS last_valuation_date,
|
||||
vv.price AS last_valuation_price,
|
||||
vv.quantity AS last_valuation_qty,
|
||||
vv.amount AS last_valuation_amount,
|
||||
vv.mtm AS portfolio_mtm
|
||||
FROM purchase_strategy ps
|
||||
JOIN purchase_line pl ON pl.id = ps.line
|
||||
JOIN purchase_purchase pp ON pp.id = pl.purchase
|
||||
JOIN mtm_strategy ms ON ms.id = ps.strategy
|
||||
JOIN mtm_scenario msc ON msc.id = ms.scenario
|
||||
JOIN currency_currency cur ON cur.id = ms.currency
|
||||
LEFT JOIN pricing_component pc_mtm ON pc_mtm.strategy = ms.id
|
||||
LEFT JOIN price_fixtype ft ON ft.id = pc_mtm.fix_type
|
||||
LEFT JOIN price_price pi ON pi.id = pc_mtm.price_index
|
||||
LEFT JOIN price_calendar pc_cal ON pc_cal.id = pc_mtm.calendar
|
||||
LEFT JOIN LATERAL (
|
||||
SELECT date, price, quantity, amount, mtm
|
||||
FROM valuation_valuation
|
||||
WHERE line = pl.id
|
||||
AND type = 'pur. priced'
|
||||
AND reference = 'Purchase/Physic'
|
||||
ORDER BY date DESC
|
||||
LIMIT 1
|
||||
) vv ON TRUE
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
'Sale',
|
||||
ss.number,
|
||||
sl.quantity,
|
||||
ms.name,
|
||||
msc.name,
|
||||
msc.valuation_date,
|
||||
msc.use_last_price,
|
||||
cur.symbol,
|
||||
pc_mtm.price_source_type,
|
||||
pc_mtm.ratio,
|
||||
ft.name,
|
||||
pi.price_desc,
|
||||
pc_cal.name,
|
||||
pc_mtm.auto,
|
||||
pc_mtm.fallback,
|
||||
vv.date,
|
||||
vv.price,
|
||||
vv.quantity,
|
||||
vv.amount,
|
||||
vv.mtm
|
||||
FROM sale_strategy sa
|
||||
JOIN sale_line sl ON sl.id = sa.sale_line
|
||||
JOIN sale_sale ss ON ss.id = sl.sale
|
||||
JOIN mtm_strategy ms ON ms.id = sa.strategy
|
||||
JOIN mtm_scenario msc ON msc.id = ms.scenario
|
||||
JOIN currency_currency cur ON cur.id = ms.currency
|
||||
LEFT JOIN pricing_component pc_mtm ON pc_mtm.strategy = ms.id
|
||||
LEFT JOIN price_fixtype ft ON ft.id = pc_mtm.fix_type
|
||||
LEFT JOIN price_price pi ON pi.id = pc_mtm.price_index
|
||||
LEFT JOIN price_calendar pc_cal ON pc_cal.id = pc_mtm.calendar
|
||||
LEFT JOIN LATERAL (
|
||||
SELECT date, price, quantity, amount, mtm
|
||||
FROM valuation_valuation
|
||||
WHERE line = sl.id
|
||||
AND type = 'sale priced'
|
||||
AND reference = 'Sale/Physic'
|
||||
ORDER BY date DESC
|
||||
LIMIT 1
|
||||
) vv ON TRUE
|
||||
|
||||
ORDER BY side, contract;
|
||||
|
||||
|
||||
select * from price_price
|
||||
450
SQL/Risk Management.sql
Normal file
450
SQL/Risk Management.sql
Normal file
@@ -0,0 +1,450 @@
|
||||
|
||||
|
||||
-- This shows where each lot currently stands across the full chain
|
||||
SELECT
|
||||
pp.name AS supplier,
|
||||
pur.number AS purchase_contract,
|
||||
pur.state AS contract_state,
|
||||
si.number AS shipment,
|
||||
si.state AS shipment_state,
|
||||
pur.invoice_state AS invoice_state,
|
||||
COUNT(l.id) AS lots,
|
||||
SUM(l.lot_qt) AS quantity
|
||||
FROM lot_lot l
|
||||
LEFT JOIN stock_shipment_in si ON si.id = l.lot_shipment_in
|
||||
LEFT JOIN purchase_line pl ON pl.id = l.line
|
||||
LEFT JOIN purchase_purchase pur ON pur.id = pl.purchase
|
||||
LEFT JOIN party_party pp ON pp.id = pur.party
|
||||
GROUP BY pp.name, pur.number, pur.state, si.number, si.state, pur.invoice_state
|
||||
ORDER BY pp.name, pur.number;
|
||||
|
||||
-- This shows the details of each lot that is still in draft shipment, to see where they are in the chain and what is missing
|
||||
SELECT
|
||||
pp.name AS supplier,
|
||||
prod.name AS product,
|
||||
pur.number AS purchase_contract,
|
||||
si.number AS shipment_number,
|
||||
tv.vessel_name AS vessel,
|
||||
si.planned_date,
|
||||
si.eta,
|
||||
si.etd,
|
||||
si.cargo_mode,
|
||||
si.transport_type,
|
||||
si.bl_number,
|
||||
l.id AS lot_id,
|
||||
pl.quantity AS contracted_qty,
|
||||
u.name AS unit,
|
||||
pl.unit_price,
|
||||
cur.code AS currency,
|
||||
pl.price_type,
|
||||
l.lot_pur_inv_state,
|
||||
l.lot_sale_inv_state
|
||||
FROM lot_lot l
|
||||
JOIN stock_shipment_in si ON si.id = l.lot_shipment_in
|
||||
JOIN purchase_line pl ON pl.id = l.line
|
||||
JOIN purchase_purchase pur ON pur.id = pl.purchase
|
||||
JOIN party_party pp ON pp.id = pur.party
|
||||
JOIN product_product prd ON prd.id = l.lot_product
|
||||
JOIN product_template prod ON prod.id = prd.template
|
||||
JOIN currency_currency cur ON cur.id = pur.currency
|
||||
LEFT JOIN product_uom u ON u.id = pl.unit
|
||||
LEFT JOIN trade_vessel tv ON tv.id = si.vessel
|
||||
WHERE si.state = 'draft'
|
||||
ORDER BY si.planned_date, pp.name, si.number, l.id;
|
||||
|
||||
-- This shows all the contracts that are fixed price
|
||||
SELECT
|
||||
'Purchase' AS side,
|
||||
pur.number AS contract,
|
||||
pur.state AS contract_state,
|
||||
pp.name AS counterparty,
|
||||
prod.name AS product,
|
||||
pl.from_del,
|
||||
pl.to_del,
|
||||
pl.quantity AS contracted_qty,
|
||||
u.name AS unit,
|
||||
pl.unit_price AS fixed_price,
|
||||
cur.code AS currency
|
||||
FROM purchase_line pl
|
||||
JOIN purchase_purchase pur ON pur.id = pl.purchase
|
||||
JOIN party_party pp ON pp.id = pur.party
|
||||
JOIN product_product prd ON prd.id = pl.product
|
||||
JOIN product_template prod ON prod.id = prd.template
|
||||
JOIN currency_currency cur ON cur.id = pur.currency
|
||||
LEFT JOIN product_uom u ON u.id = pl.unit
|
||||
WHERE pl.type = 'line' AND pl.price_type = 'priced'
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
'Sale' AS side,
|
||||
s.number,
|
||||
s.state,
|
||||
pp.name,
|
||||
prod.name,
|
||||
sl.from_del,
|
||||
sl.to_del,
|
||||
sl.quantity,
|
||||
u.name,
|
||||
sl.unit_price,
|
||||
cur.code
|
||||
FROM sale_line sl
|
||||
JOIN sale_sale s ON s.id = sl.sale
|
||||
JOIN party_party pp ON pp.id = s.party
|
||||
JOIN product_product prd ON prd.id = sl.product
|
||||
JOIN product_template prod ON prod.id = prd.template
|
||||
JOIN currency_currency cur ON cur.id = s.currency
|
||||
LEFT JOIN product_uom u ON u.id = sl.unit
|
||||
WHERE sl.type = 'line' AND sl.price_type = 'priced'
|
||||
ORDER BY side, contract;
|
||||
|
||||
|
||||
|
||||
WITH
|
||||
|
||||
-- Last fixation state per purchase line
|
||||
pur_fix AS (
|
||||
SELECT DISTINCT ON (line)
|
||||
line,
|
||||
fixed_qt,
|
||||
fixed_qt_price,
|
||||
unfixed_qt,
|
||||
unfixed_qt_price AS unfixed_price
|
||||
FROM pricing_pricing
|
||||
WHERE line IS NOT NULL
|
||||
ORDER BY line, last DESC NULLS LAST, pricing_date DESC
|
||||
),
|
||||
|
||||
-- Last fixation state per sale line ← mirrors pur_fix exactly
|
||||
sale_fix AS (
|
||||
SELECT DISTINCT ON (sale_line)
|
||||
sale_line,
|
||||
fixed_qt,
|
||||
fixed_qt_price,
|
||||
unfixed_qt,
|
||||
unfixed_qt_price AS unfixed_price
|
||||
FROM pricing_pricing
|
||||
WHERE sale_line IS NOT NULL
|
||||
ORDER BY sale_line, last DESC NULLS LAST, pricing_date DESC
|
||||
),
|
||||
|
||||
-- Most recent market price per price index
|
||||
last_mkt AS (
|
||||
SELECT DISTINCT ON (price)
|
||||
price AS price_index_id,
|
||||
price_date AS last_market_date,
|
||||
price_value AS last_market_price
|
||||
FROM price_price_value
|
||||
ORDER BY price, price_date DESC
|
||||
),
|
||||
|
||||
-- Next scheduled fixing date per purchase line
|
||||
pur_next_fix AS (
|
||||
SELECT DISTINCT ON (line)
|
||||
line,
|
||||
estimated_date AS next_fixing_date,
|
||||
trigger AS fixing_trigger
|
||||
FROM pricing_estimated
|
||||
WHERE line IS NOT NULL
|
||||
AND estimated_date >= CURRENT_DATE
|
||||
ORDER BY line, estimated_date ASC
|
||||
),
|
||||
|
||||
-- Next scheduled fixing date per sale line
|
||||
sale_next_fix AS (
|
||||
SELECT DISTINCT ON (sale_line)
|
||||
sale_line,
|
||||
estimated_date AS next_fixing_date,
|
||||
trigger AS fixing_trigger
|
||||
FROM pricing_estimated
|
||||
WHERE sale_line IS NOT NULL
|
||||
AND estimated_date >= CURRENT_DATE
|
||||
ORDER BY sale_line, estimated_date ASC
|
||||
)
|
||||
|
||||
SELECT
|
||||
'Purchase' AS side,
|
||||
pur.number AS contract,
|
||||
pur.state AS contract_state,
|
||||
pp.name AS counterparty,
|
||||
prod.name AS product,
|
||||
pl.from_del,
|
||||
pl.to_del,
|
||||
pl.quantity AS contracted_qty,
|
||||
u.name AS unit,
|
||||
cur.symbol AS currency,
|
||||
pi2.price_desc AS price_index,
|
||||
nf.fixing_trigger,
|
||||
nf.next_fixing_date,
|
||||
COALESCE(pf.fixed_qt, 0) AS fixed_qty,
|
||||
COALESCE(pf.fixed_qt_price, 0) AS avg_fixed_price,
|
||||
pl.quantity - COALESCE(pf.fixed_qt, 0) AS unfixed_qty,
|
||||
COALESCE(lm.last_market_price, pf.unfixed_price) AS unfixed_market_price,
|
||||
lm.last_market_date,
|
||||
lm.last_market_price
|
||||
|
||||
FROM purchase_line pl
|
||||
JOIN purchase_purchase pur ON pur.id = pl.purchase
|
||||
JOIN party_party pp ON pp.id = pur.party
|
||||
JOIN product_product prd ON prd.id = pl.product
|
||||
JOIN product_template prod ON prod.id = prd.template
|
||||
JOIN currency_currency cur ON cur.id = pur.currency
|
||||
LEFT JOIN product_uom u ON u.id = pl.unit
|
||||
LEFT JOIN pricing_component pc ON pc.line = pl.id
|
||||
LEFT JOIN price_price pi2 ON pi2.id = pc.price_index
|
||||
LEFT JOIN last_mkt lm ON lm.price_index_id = pc.price_index
|
||||
LEFT JOIN pur_fix pf ON pf.line = pl.id
|
||||
LEFT JOIN pur_next_fix nf ON nf.line = pl.id
|
||||
WHERE pl.type = 'line' AND pl.price_type = 'basis'
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
'Sale' AS side,
|
||||
s.number,
|
||||
s.state,
|
||||
pp.name,
|
||||
prod.name,
|
||||
sl.from_del,
|
||||
sl.to_del,
|
||||
sl.quantity,
|
||||
u.name,
|
||||
cur.symbol,
|
||||
pi2.price_desc,
|
||||
nf.fixing_trigger,
|
||||
nf.next_fixing_date,
|
||||
COALESCE(sf.fixed_qt, 0) AS fixed_qty,
|
||||
COALESCE(sf.fixed_qt_price, 0) AS avg_fixed_price,
|
||||
sl.quantity - COALESCE(sf.fixed_qt, 0) AS unfixed_qty,
|
||||
COALESCE(lm.last_market_price, sf.unfixed_price) AS unfixed_market_price,
|
||||
lm.last_market_date,
|
||||
lm.last_market_price
|
||||
|
||||
FROM sale_line sl
|
||||
JOIN sale_sale s ON s.id = sl.sale
|
||||
JOIN party_party pp ON pp.id = s.party
|
||||
JOIN product_product prd ON prd.id = sl.product
|
||||
JOIN product_template prod ON prod.id = prd.template
|
||||
JOIN currency_currency cur ON cur.id = s.currency
|
||||
LEFT JOIN product_uom u ON u.id = sl.unit
|
||||
LEFT JOIN pricing_component pc ON pc.sale_line = sl.id
|
||||
LEFT JOIN price_price pi2 ON pi2.id = pc.price_index
|
||||
LEFT JOIN last_mkt lm ON lm.price_index_id = pc.price_index
|
||||
LEFT JOIN sale_fix sf ON sf.sale_line = sl.id
|
||||
LEFT JOIN sale_next_fix nf ON nf.sale_line = sl.id
|
||||
WHERE sl.type = 'line' AND sl.price_type = 'basis'
|
||||
|
||||
ORDER BY side, contract;
|
||||
|
||||
|
||||
|
||||
-- MtM strategy, component details, and last valuation per contract (purchase and sale)
|
||||
-- Columns:
|
||||
-- strategy_name / scenario_name / valuation_date → MtM setup header
|
||||
-- component_* → from pricing_component linked via strategy (MtM strategy-level components)
|
||||
-- pricing_* → from pricing_component linked via line/sale_line (contract fixation setup)
|
||||
-- vv_* → latest snapshot from valuation_valuation (price = contract price, amount = contract value)
|
||||
-- vvl_* → current state from valuation_valuation_line (same structure, always most recent)
|
||||
WITH
|
||||
|
||||
-- Latest valuation_valuation row per purchase line (physical price row only)
|
||||
last_vv_pur AS (
|
||||
SELECT DISTINCT ON (line)
|
||||
line,
|
||||
date AS vv_date,
|
||||
price AS vv_price,
|
||||
quantity AS vv_quantity,
|
||||
amount AS vv_amount,
|
||||
base_amount AS vv_base_amount,
|
||||
rate AS vv_rate
|
||||
FROM valuation_valuation
|
||||
WHERE line IS NOT NULL
|
||||
AND type = 'pur. priced'
|
||||
AND reference = 'Purchase/Physic'
|
||||
ORDER BY line, date DESC
|
||||
),
|
||||
|
||||
-- Latest valuation_valuation row per sale line
|
||||
last_vv_sale AS (
|
||||
SELECT DISTINCT ON (sale_line)
|
||||
sale_line,
|
||||
date AS vv_date,
|
||||
price AS vv_price,
|
||||
quantity AS vv_quantity,
|
||||
amount AS vv_amount,
|
||||
base_amount AS vv_base_amount,
|
||||
rate AS vv_rate
|
||||
FROM valuation_valuation
|
||||
WHERE sale_line IS NOT NULL
|
||||
AND type = 'sale priced'
|
||||
AND reference = 'Sale/Physic'
|
||||
ORDER BY sale_line, date DESC
|
||||
),
|
||||
|
||||
-- valuation_valuation_line per purchase line (current state)
|
||||
last_vvl_pur AS (
|
||||
SELECT DISTINCT ON (line)
|
||||
line,
|
||||
date AS vvl_date,
|
||||
price AS vvl_price,
|
||||
quantity AS vvl_quantity,
|
||||
amount AS vvl_amount,
|
||||
base_amount AS vvl_base_amount,
|
||||
rate AS vvl_rate
|
||||
FROM valuation_valuation_line
|
||||
WHERE line IS NOT NULL
|
||||
AND type = 'pur. priced'
|
||||
AND reference = 'Purchase/Physic'
|
||||
ORDER BY line, date DESC
|
||||
),
|
||||
|
||||
-- valuation_valuation_line per sale line (current state)
|
||||
last_vvl_sale AS (
|
||||
SELECT DISTINCT ON (sale_line)
|
||||
sale_line,
|
||||
date AS vvl_date,
|
||||
price AS vvl_price,
|
||||
quantity AS vvl_quantity,
|
||||
amount AS vvl_amount,
|
||||
base_amount AS vvl_base_amount,
|
||||
rate AS vvl_rate
|
||||
FROM valuation_valuation_line
|
||||
WHERE sale_line IS NOT NULL
|
||||
AND type = 'sale priced'
|
||||
AND reference = 'Sale/Physic'
|
||||
ORDER BY sale_line, date DESC
|
||||
)
|
||||
|
||||
SELECT
|
||||
'Purchase' AS side,
|
||||
pur.number AS contract,
|
||||
pur.state AS contract_state,
|
||||
pp.name AS counterparty,
|
||||
prod.name AS product,
|
||||
pl.from_del,
|
||||
pl.to_del,
|
||||
pl.quantity AS contracted_qty,
|
||||
u.name AS unit,
|
||||
-- Strategy
|
||||
ms.name AS strategy_name,
|
||||
ms_cur.symbol AS strategy_currency,
|
||||
-- Scenario
|
||||
msc.name AS scenario_name,
|
||||
msc.valuation_date,
|
||||
msc.use_last_price,
|
||||
cal.name AS scenario_calendar,
|
||||
-- MtM component (pricing_component linked via strategy)
|
||||
pc_mtm.price_source_type AS component_price_source,
|
||||
pc_mtm.ratio AS component_ratio_pct,
|
||||
ft.name AS component_fix_type,
|
||||
pi2.price_desc AS component_curve,
|
||||
pc_mtm_cal.name AS component_calendar,
|
||||
pc_mtm.auto AS component_auto,
|
||||
pc_mtm.fallback AS component_fallback,
|
||||
-- Pricing component (fixation setup — independent of MtM, already populated)
|
||||
pc_idx.price_desc AS pricing_curve,
|
||||
pc_ft.name AS pricing_fix_type,
|
||||
pc.price_source_type AS pricing_source_type,
|
||||
pc.ratio AS pricing_ratio_pct,
|
||||
pc_cal.name AS pricing_calendar,
|
||||
-- Last valuation snapshot (valuation_valuation — most recent run)
|
||||
vv.vv_date AS last_valuation_date,
|
||||
vv.vv_price AS last_valuation_price,
|
||||
vv.vv_quantity AS last_valuation_qty,
|
||||
vv.vv_amount AS last_valuation_amount,
|
||||
vv.vv_base_amount AS last_valuation_base_amount,
|
||||
vv.vv_rate AS last_valuation_rate,
|
||||
-- Current valuation state (valuation_valuation_line — always latest)
|
||||
vvl.vvl_date AS current_valuation_date,
|
||||
vvl.vvl_price AS current_valuation_price,
|
||||
vvl.vvl_quantity AS current_valuation_qty,
|
||||
vvl.vvl_amount AS current_valuation_amount,
|
||||
vvl.vvl_base_amount AS current_valuation_base_amount,
|
||||
vvl.vvl_rate AS current_valuation_rate
|
||||
FROM purchase_strategy ps
|
||||
JOIN purchase_line pl ON pl.id = ps.line
|
||||
JOIN purchase_purchase pur ON pur.id = pl.purchase
|
||||
JOIN party_party pp ON pp.id = pur.party
|
||||
JOIN product_product prd ON prd.id = pl.product
|
||||
JOIN product_template prod ON prod.id = prd.template
|
||||
LEFT JOIN product_uom u ON u.id = pl.unit
|
||||
JOIN mtm_strategy ms ON ms.id = ps.strategy
|
||||
JOIN mtm_scenario msc ON msc.id = ms.scenario
|
||||
LEFT JOIN currency_currency ms_cur ON ms_cur.id = ms.currency
|
||||
LEFT JOIN price_calendar cal ON cal.id = msc.calendar
|
||||
LEFT JOIN pricing_component pc_mtm ON pc_mtm.strategy = ms.id
|
||||
LEFT JOIN price_fixtype ft ON ft.id = pc_mtm.fix_type
|
||||
LEFT JOIN price_price pi2 ON pi2.id = pc_mtm.price_index
|
||||
LEFT JOIN price_calendar pc_mtm_cal ON pc_mtm_cal.id = pc_mtm.calendar
|
||||
LEFT JOIN pricing_component pc ON pc.line = pl.id
|
||||
LEFT JOIN price_price pc_idx ON pc_idx.id = pc.price_index
|
||||
LEFT JOIN price_fixtype pc_ft ON pc_ft.id = pc.fix_type
|
||||
LEFT JOIN price_calendar pc_cal ON pc_cal.id = pc.calendar
|
||||
LEFT JOIN last_vv_pur vv ON vv.line = pl.id
|
||||
LEFT JOIN last_vvl_pur vvl ON vvl.line = pl.id
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
'Sale' AS side,
|
||||
s.number,
|
||||
s.state,
|
||||
pp.name,
|
||||
prod.name,
|
||||
sl.from_del,
|
||||
sl.to_del,
|
||||
sl.quantity,
|
||||
u.name,
|
||||
ms.name,
|
||||
ms_cur.symbol,
|
||||
msc.name,
|
||||
msc.valuation_date,
|
||||
msc.use_last_price,
|
||||
cal.name,
|
||||
pc_mtm.price_source_type,
|
||||
pc_mtm.ratio,
|
||||
ft.name,
|
||||
pi2.price_desc,
|
||||
pc_mtm_cal.name,
|
||||
pc_mtm.auto,
|
||||
pc_mtm.fallback,
|
||||
pc_idx.price_desc,
|
||||
pc_ft.name,
|
||||
pc.price_source_type,
|
||||
pc.ratio,
|
||||
pc_cal.name,
|
||||
vv.vv_date,
|
||||
vv.vv_price,
|
||||
vv.vv_quantity,
|
||||
vv.vv_amount,
|
||||
vv.vv_base_amount,
|
||||
vv.vv_rate,
|
||||
vvl.vvl_date,
|
||||
vvl.vvl_price,
|
||||
vvl.vvl_quantity,
|
||||
vvl.vvl_amount,
|
||||
vvl.vvl_base_amount,
|
||||
vvl.vvl_rate
|
||||
FROM sale_strategy ss
|
||||
JOIN sale_line sl ON sl.id = ss.sale_line
|
||||
JOIN sale_sale s ON s.id = sl.sale
|
||||
JOIN party_party pp ON pp.id = s.party
|
||||
JOIN product_product prd ON prd.id = sl.product
|
||||
JOIN product_template prod ON prod.id = prd.template
|
||||
LEFT JOIN product_uom u ON u.id = sl.unit
|
||||
JOIN mtm_strategy ms ON ms.id = ss.strategy
|
||||
JOIN mtm_scenario msc ON msc.id = ms.scenario
|
||||
LEFT JOIN currency_currency ms_cur ON ms_cur.id = ms.currency
|
||||
LEFT JOIN price_calendar cal ON cal.id = msc.calendar
|
||||
LEFT JOIN pricing_component pc_mtm ON pc_mtm.strategy = ms.id
|
||||
LEFT JOIN price_fixtype ft ON ft.id = pc_mtm.fix_type
|
||||
LEFT JOIN price_price pi2 ON pi2.id = pc_mtm.price_index
|
||||
LEFT JOIN price_calendar pc_mtm_cal ON pc_mtm_cal.id = pc_mtm.calendar
|
||||
LEFT JOIN pricing_component pc ON pc.sale_line = sl.id
|
||||
LEFT JOIN price_price pc_idx ON pc_idx.id = pc.price_index
|
||||
LEFT JOIN price_fixtype pc_ft ON pc_ft.id = pc.fix_type
|
||||
LEFT JOIN price_calendar pc_cal ON pc_cal.id = pc.calendar
|
||||
LEFT JOIN last_vv_sale vv ON vv.sale_line = sl.id
|
||||
LEFT JOIN last_vvl_sale vvl ON vvl.sale_line = sl.id
|
||||
|
||||
ORDER BY side, contract;
|
||||
Reference in New Issue
Block a user