675 lines
19 KiB
SQL
675 lines
19 KiB
SQL
-- To be imported
|
|
--Forward Curves
|
|
--Mtm formula LINKED TO physical contract
|
|
|
|
|
|
|
|
-- All counterparties
|
|
SELECT
|
|
C.Id AS SupplierId,
|
|
C.Name,
|
|
C.Description,
|
|
C.Address,
|
|
C.City,
|
|
C.ZipCode,
|
|
C.Type,
|
|
C2.CountryName,
|
|
L.LocationName
|
|
FROM counterpart.Company AS C
|
|
LEFT JOIN geo.Location AS L ON C.LocationId = L.Id
|
|
LEFT JOIN geo.Country AS C2 ON C.CountryId = C2.Id
|
|
|
|
|
|
-- All counterparties for import
|
|
SELECT
|
|
--ROW_NUMBER() OVER (ORDER BY C.name) AS code,
|
|
C.Name,
|
|
'' AS tax_identifier,
|
|
'' AS vat_code,
|
|
'' AS address_name,
|
|
CASE REPLACE(LTRIM(RTRIM(C.Address)),'"','')
|
|
WHEN '0' THEN ''
|
|
WHEN '.' THEN ''
|
|
WHEN 'a' THEN ''
|
|
ELSE REPLACE(LTRIM(RTRIM(C.Address)),'"','') END
|
|
AS street,
|
|
ISNULL(L.LocationName,'') AS city,
|
|
C.ZipCode AS zip,
|
|
C2.IsoCode2 AS country_code,
|
|
'' AS subdivision_code
|
|
FROM counterpart.Company AS C
|
|
LEFT JOIN geo.Location AS L ON C.LocationId = L.Id
|
|
LEFT JOIN geo.Country AS C2 ON C.CountryId = C2.Id
|
|
ORDER BY c.Name
|
|
|
|
|
|
-- Supplier used in purchase contracts
|
|
SELECT DISTINCT
|
|
C.Id AS SupplierId,
|
|
C.Name,
|
|
C.Description,
|
|
C.Address,
|
|
C.City,
|
|
C.ZipCode,
|
|
C.Type,
|
|
C2.CountryName,
|
|
L.LocationName
|
|
FROM dbo.Deal AS D
|
|
LEFT JOIN counterpart.Company AS C ON D.CounterpartId = C.Id
|
|
LEFT JOIN geo.Location AS L ON C.LocationId = L.Id
|
|
LEFT JOIN geo.Country AS C2 ON C.CountryId = C2.Id
|
|
WHERE 1=1
|
|
AND D.Status <> 'Cancelled'
|
|
AND D.BuyOrSell = 1
|
|
|
|
|
|
|
|
-- Customers used in sale contracts
|
|
SELECT DISTINCT
|
|
C.Id AS CustomerId,
|
|
C.Name,
|
|
C.Description,
|
|
C.Address,
|
|
C.City,
|
|
C.ZipCode,
|
|
C.Type,
|
|
C2.CountryName,
|
|
L.LocationName
|
|
FROM dbo.Deal AS D
|
|
LEFT JOIN counterpart.Company AS C ON D.CounterpartId = C.Id
|
|
LEFT JOIN geo.Location AS L ON C.LocationId = L.Id
|
|
LEFT JOIN geo.Country AS C2 ON C.CountryId = C2.Id
|
|
WHERE 1=1
|
|
AND D.Status <> 'Cancelled'
|
|
AND D.BuyOrSell <> 1
|
|
|
|
|
|
-- Type de produits tradé -> Desk
|
|
SELECT
|
|
D.Id AS DeskId,
|
|
D.Caption AS Desk,
|
|
D.Description AS Description,
|
|
D.DeskType,
|
|
D.IsDefaultDesk,
|
|
D.DefaultUnitReference,
|
|
D.ActualMT,
|
|
D.QuantityPrecision,
|
|
D.ActualM3,
|
|
D.MT2BBLPrecision
|
|
FROM profiles.Desk AS D
|
|
|
|
|
|
-- Book: utilisé pour classer les deals FY (projection)
|
|
SELECT
|
|
B.Id AS BookId,
|
|
B.Caption AS Book,
|
|
B.Description AS Description,
|
|
D.Caption AS Desk,
|
|
B.Year,
|
|
B.IsActive
|
|
FROM Book AS B
|
|
INNER JOIN profiles.Desk AS D ON B.DeskId = D.Id
|
|
ORDER BY B.Year
|
|
|
|
|
|
-- Lien entre company (supplier, client...) et le produits tradé
|
|
SELECT
|
|
C.Name,
|
|
D.Caption
|
|
FROM dbo.CompanyDeskAndTradingUnit AS CDATU
|
|
INNER JOIN counterpart.Company AS C ON CDATU.CompanyId = C.Id
|
|
INNER JOIN profiles.Desk AS D ON CDATU.DeskId = D.Id
|
|
|
|
|
|
-- Users
|
|
SELECT
|
|
XU.Id AS UserId,
|
|
XU.FirstName,
|
|
XU.LastName,
|
|
XU.Login AS LoginName,
|
|
D.Caption AS Desk,
|
|
D.Description AS DeskDescription,
|
|
P.Caption AS ProfileName,
|
|
P.Description AS ProfileDescription,
|
|
XU.IsAdmin,
|
|
XU.IsActive,
|
|
XU.IsSystemAdministrator
|
|
FROM profiles.XUser AS XU
|
|
INNER JOIN profiles.Desk AS D ON XU.DeskId = D.Id
|
|
INNER JOIN profiles.Profile AS P ON XU.ProfileId = P.Id
|
|
WHERE 1=1
|
|
AND XU.Login NOT IN ('Sylvain.Duvernay','Nicolas.Vignon', 'Walter.Marques', 'Katia.Savtsenko', 'Arnaud.Chevallier')
|
|
|
|
|
|
-- Security Group
|
|
SELECT *
|
|
FROM profiles.Profile AS P
|
|
|
|
|
|
-- Strategy and related book
|
|
SELECT
|
|
S.Id AS StrategyId,
|
|
S.Caption AS StrageyName,
|
|
S.Description AS StrategyDescription,
|
|
B.Caption AS Book,
|
|
B.Year AS YearBook,
|
|
S.IsActive
|
|
FROM dbo.Strategy AS S
|
|
INNER JOIN dbo.Book AS B ON S.BookId = B.Id
|
|
ORDER BY B.Year DESC
|
|
|
|
|
|
-- Product Type
|
|
SELECT
|
|
PT.Id AS ProductTypeId,
|
|
PT.Caption AS ProductType,
|
|
PT.Description
|
|
FROM dbo.ProductType AS PT
|
|
|
|
|
|
-- Product Familly
|
|
SELECT
|
|
PF.Id AS ProductFamilyId,
|
|
PF.Caption AS ProductFamily,
|
|
PF.Description,
|
|
PT.Caption AS ProductType
|
|
FROM dbo.ProductFamily AS PF
|
|
INNER JOIN ProductType AS PT ON PF.ProductTypeId = PT.Id
|
|
|
|
-- Product
|
|
SELECT
|
|
P.Id AS ProductId,
|
|
P.ProductName,
|
|
PF.Caption AS ProductFamily,
|
|
PT.Caption AS ProductType,
|
|
P.DegreeApi,
|
|
p.Density,
|
|
P.Mt2BblFactor,
|
|
P.Density20,
|
|
P.Basis
|
|
FROM dbo.Product AS P
|
|
INNER JOIN dbo.ProductFamily AS PF ON P.FamilyId = PF.Id
|
|
INNER JOIN dbo.ProductType AS PT ON PF.ProductTypeId = PT.Id
|
|
|
|
|
|
-- Product Polluant
|
|
SELECT
|
|
PP.Id AS PolluantId,
|
|
PP.PollutantName,
|
|
PP.EmissionFactor,
|
|
P.ProductName
|
|
FROM dbo.ProductPollutant AS PP
|
|
INNER JOIN dbo.Product AS P ON PP.ProductId = P.Id
|
|
|
|
-- Continent
|
|
SELECT
|
|
C.Id AS ContinentId,
|
|
C.ContinentName
|
|
FROM geo.Continent AS C
|
|
|
|
-- Country
|
|
SELECT
|
|
C.Id AS CountryId,
|
|
C.CountryName,
|
|
C.IsoCode2,
|
|
C.IsoCode3,
|
|
C2.ContinentName,
|
|
C.BoundNorth,
|
|
C.BoundEast,
|
|
C.BoundSouth,
|
|
C.BoundWest
|
|
FROM geo.Country AS C
|
|
INNER JOIN geo.Continent AS C2 ON C.ContinentId = C2.Id
|
|
|
|
|
|
|
|
-- Incoterm
|
|
SELECT
|
|
BD.Id AS IncotermId,
|
|
BD.Caption AS IncotermAbbr,
|
|
Bd.Description AS Incoterm
|
|
FROM dbo.BaseDefinition AS BD
|
|
WHERE BD.ClassType = 'Incoterm'
|
|
|
|
|
|
|
|
-- Payment Term Type
|
|
SELECT
|
|
BD.Id AS PayTermSecurityTypeId,
|
|
BD.Caption AS PayTermSecurityTypeAbbr,
|
|
Bd.Description AS PayTermSecurityType
|
|
FROM dbo.BaseDefinition AS BD
|
|
WHERE BD.ClassType = 'PayTermSecurityType'
|
|
|
|
|
|
SELECT BD.Caption, DPT.PayTermRangeSize, COUNT(*)
|
|
FROM dbo.DealPaymentTerm AS DPT
|
|
INNER JOIN dbo.Deal AS D ON DPT.DealId = D.Id
|
|
INNER JOIN dbo.BaseDefinition AS BD ON D.PayTermSecurityTypeId = BD.Id
|
|
WHERE 1=1
|
|
AND DPT.PayTermRangeSize > 0
|
|
GROUP BY BD.Caption, DPT.PayTermRangeSize
|
|
ORDER BY 3 DESC
|
|
|
|
|
|
|
|
|
|
-- Delivery Period (no relation with time dimension)
|
|
SELECT
|
|
BD.Id AS DeliveryPeriodId,
|
|
BD.Caption AS DeliveryPeriodAbbr,
|
|
Bd.Description AS DeliveryPeriod
|
|
FROM dbo.BaseDefinition AS BD
|
|
WHERE BD.ClassType = 'DeliveryPeriod'
|
|
|
|
|
|
-- Basis Document Type
|
|
SELECT
|
|
BD.Id AS BasisDocumentId,
|
|
BD.Caption AS BasisDocumentAbbr,
|
|
Bd.Description AS BasisDocument
|
|
FROM dbo.BaseDefinition AS BD
|
|
WHERE BD.ClassType = 'BasisDocumentType'
|
|
|
|
|
|
|
|
-- BusinessArea
|
|
SELECT
|
|
BD.Id AS BusinessAreaId,
|
|
BD.Caption AS BusinessAreaAbbr,
|
|
Bd.Description AS BusinessArea
|
|
FROM dbo.BaseDefinition AS BD
|
|
WHERE BD.ClassType = 'BusinessArea'
|
|
|
|
|
|
|
|
|
|
-- CostGroup
|
|
SELECT
|
|
BD.Id AS CostGroupId,
|
|
BD.Caption AS CostGroupAbbr,
|
|
Bd.Description AS CostGroup
|
|
FROM dbo.BaseDefinition AS BD
|
|
WHERE BD.ClassType = 'CostGroup'
|
|
|
|
-- CostType
|
|
SELECT
|
|
--BD.Id AS CostTypeId,
|
|
BD.Caption AS [code],
|
|
Bd.Description AS [name],
|
|
'SERVICES' AS [category],
|
|
'Mt' AS [uom],
|
|
0 as [sale_price],
|
|
0 as [cost_price],
|
|
'' AS [description]
|
|
FROM dbo.BaseDefinition AS BD
|
|
WHERE BD.ClassType = 'CostType'
|
|
ORDER BY 1
|
|
|
|
|
|
-- Jurisdiction
|
|
SELECT
|
|
BD.Id AS JurisdictionId,
|
|
BD.Caption AS JurisdictionAbbr,
|
|
Bd.Description AS Jurisdiction
|
|
FROM dbo.BaseDefinition AS BD
|
|
WHERE BD.ClassType = 'Jurisdiction'
|
|
|
|
|
|
-- Exchange
|
|
SELECT
|
|
BD.Id AS ExchangeId,
|
|
BD.Caption AS ExchangeAbbr,
|
|
Bd.Description AS Exchange
|
|
FROM dbo.BaseDefinition AS BD
|
|
WHERE BD.ClassType = 'Exchange'
|
|
|
|
|
|
-- Quotation/Price Provider
|
|
SELECT
|
|
BD.Id AS SourceId,
|
|
BD.Caption AS SourceAbbr,
|
|
Bd.Description AS Source
|
|
FROM dbo.BaseDefinition AS BD
|
|
WHERE BD.ClassType = 'QuoteSource'
|
|
|
|
|
|
|
|
-- Terminal
|
|
SELECT
|
|
T.Id AS TerminalId,
|
|
T.TerminalName,
|
|
L.LocationName,
|
|
C.Name AS TerminalOwner
|
|
FROM dbo.Terminal AS T
|
|
INNER JOIN geo.Location AS L ON T.LocationId = L.Id
|
|
INNER JOIN counterpart.Company AS C ON T.OwnerId = C.Id
|
|
|
|
|
|
-- Vessel
|
|
SELECT
|
|
T.Id AS VesselId,
|
|
T.TransporterName,
|
|
T.TransportType,
|
|
T.Draught,
|
|
T.BuildingYear,
|
|
c.Name AS VesselOwner,
|
|
C2.CountryName AS Flag,
|
|
T.ImoNB,
|
|
T.CharterType,
|
|
T.DeadWeightMT
|
|
FROM dbo.Transporter AS T
|
|
LEFT JOIN counterpart.Company AS C ON T.OwnerId = C.Id
|
|
LEFT JOIN geo.Country AS C2 ON T.FlagId = C2.Id
|
|
|
|
-- Vessel for insert in TradOn (CSV file structure)
|
|
SELECT
|
|
(SELECT STRING_AGG(
|
|
UPPER(LEFT(value, 1)) + LOWER(SUBSTRING(value, 2, LEN(value))),
|
|
' '
|
|
)
|
|
FROM STRING_SPLIT(T.TransporterName, ' ')
|
|
) AS vessel_name,
|
|
T.BuildingYear AS vessel_year,
|
|
T.ImoNB AS vessel_imo
|
|
FROM dbo.Transporter AS T
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- All EUCLID Locations
|
|
SELECT
|
|
L.Id AS LocationId,
|
|
L.LocationName,
|
|
L.CoordinateX,
|
|
L.CoordinateY,
|
|
C.CountryName,
|
|
C2.ContinentName,
|
|
BD.ClassType,
|
|
BD.Caption
|
|
FROM geo.Location AS L
|
|
INNER JOIN geo.Country AS C ON L.CountryId = C.Id
|
|
INNER JOIN geo.Continent AS C2 ON C.ContinentId = C2.Id
|
|
INNER JOIN dbo.BaseDefinition AS BD ON L.TypeId = BD.Id
|
|
|
|
|
|
-- Stock Locations (supplier) - CSV file structure
|
|
SELECT DISTINCT
|
|
LTRIM(RTRIM(LOA.LocationName)) AS [name],
|
|
'supplier' AS [type],
|
|
LOA.CoordinateX AS [lat],
|
|
LOA.CoordinateY AS [lon]
|
|
|
|
FROM dbo.Deal AS D
|
|
LEFT JOIN geo.Location AS LOA ON D.LoadLocationId = LOA.Id
|
|
LEFT JOIN geo.Country AS C_L ON LOA.CountryId = C_L.Id
|
|
--LEFT JOIN geo.Location AS DIS ON D.DeliveryLocationId = DIS.Id
|
|
--LEFT JOIN geo.Country AS C_D ON DIS.CountryId = C_D.Id
|
|
WHERE D.Status <> 'Cancelled'
|
|
AND ISNULL(LOA.LocationName, '') <> ''
|
|
AND LOA.Id <> '8855ED73-344C-4F8D-B4D6-DD214D3B7E61'
|
|
ORDER BY 2
|
|
|
|
|
|
-- Stock locations (customer) - CSV file structure
|
|
SELECT DISTINCT
|
|
LTRIM(RTRIM(DIS.LocationName)) AS [name],
|
|
'customer' AS [type],
|
|
DIS.CoordinateX AS [lat],
|
|
DIS.CoordinateY AS [lon]
|
|
FROM dbo.Deal AS D
|
|
LEFT JOIN geo.Location AS DIS ON D.DeliveryLocationId = DIS.Id
|
|
LEFT JOIN geo.Country AS C_D ON DIS.CountryId = C_D.Id
|
|
|
|
WHERE D.Status <> 'Cancelled'
|
|
AND LTRIM(RTRIM(DIS.LocationName)) <> ''
|
|
|
|
|
|
|
|
-- Purchase contracts
|
|
;WITH PaymentTerm AS (
|
|
SELECT D.Id AS DealId, BD.Caption, DPT.PayTermRangeSize
|
|
FROM dbo.DealPaymentTerm AS DPT
|
|
INNER JOIN dbo.Deal AS D ON DPT.DealId = D.Id
|
|
LEFT JOIN dbo.BaseDefinition AS BD ON D.PayTermSecurityTypeId = BD.Id
|
|
WHERE 1=1
|
|
AND DPT.PayTermRangeSize > 0
|
|
GROUP BY D.Id , BD.Caption, DPT.PayTermRangeSize
|
|
)
|
|
SELECT
|
|
D.Id AS source_id
|
|
, D.Id AS source_line_id
|
|
, D.Reference AS number
|
|
, ISNULL(D.OtherReference, '') AS reference
|
|
, ISNULL(D.ContractNumber, '') AS our_reference
|
|
, C.name AS party_name
|
|
, 'USD' AS currency_code
|
|
, CAST(D.Date AS DATE) AS purchase_date
|
|
|
|
, CASE
|
|
WHEN PT.Caption = 'Open account' THEN CONCAT( 'NET ' , PT.PayTermRangeSize )
|
|
WHEN PT.Caption = 'LC Doc' THEN CONCAT( 'LC ', PT.PayTermRangeSize, ' DAYS')
|
|
ELSE CONCAT( 'NET ' , PT.PayTermRangeSize )
|
|
END AS payment_term
|
|
, '' AS warehouse_code
|
|
, 'NCSW' AS weight_basis --'NCSW'
|
|
|
|
, ROUND(D.QuantityToleranceMinusPercent,2) AS tol_min_pct
|
|
, ROUND(D.QuantityTolerancePlusPercent,2) AS tol_max_pct
|
|
, D.QuantityToleranceMin AS tol_min_qty
|
|
, D.QuantityToleranceMax AS tol_max_qty
|
|
, ISNULL(LOA.LocationName, '') AS from_location_name
|
|
, ISNULL(DIS.LocationName, '') AS to_location_name
|
|
, ISNULL(INCO.Caption, '') AS incoterm_name
|
|
, 'manual' AS invoice_method
|
|
,'' AS [description]
|
|
, CONCAT( D.Reference , ' / ' , B.Description , ' / ' , S.Caption) AS [comment]
|
|
, 'line' AS line_type
|
|
, CASE
|
|
WHEN ISNULL(C2.CountryName,'') <> '' THEN CONCAT('H2SO4','-',C2.CountryName)
|
|
ELSE 'H2SO4'
|
|
END AS line_product_code
|
|
, ISNULL(C2.CountryName,'') AS origin
|
|
, ROUND(D.Quantity , 2) AS line_quantity
|
|
, 'Mt' AS line_unit_code
|
|
, ISNULL(PRICE.AvgPrice,0) AS line_price
|
|
, CONCAT(
|
|
D.Quantity , ' Mt of sulphuric acid - ',
|
|
CASE
|
|
WHEN ISNULL(D.CommodityBasis, 0) = 0 THEN 'Tel-quel'
|
|
ELSE CAST(D.CommodityBasis AS VARCHAR(MAX)) + '%'
|
|
END) AS line_description
|
|
, cast(D.DeliveryDateFrom AS DATE) AS line_from_del
|
|
, cast(D.DeliveryDateTo AS DATE) AS line_to_del
|
|
, 'bldate' AS pricing_trigger
|
|
, CAST(D.EstimatedDateOfBL AS DATE) AS pricing_estimated_date
|
|
|
|
, ISNULL( CONCAT( TRD.FirstName, ' ', TRD.LastName) , '') AS trader
|
|
, ISNULL( CONCAT( OP.FirstName, ' ', OP.LastName) , '') AS operator
|
|
|
|
, ISNULL(D.CommodityBasis, 0) AS concentration
|
|
, B.Description AS book
|
|
, S.Caption AS strategy
|
|
, ISNULL(BD.Caption , 'Laycan') AS period_at
|
|
, ISNULL(D.Demurrage, '') AS demurrage
|
|
, D.LaytimeHours AS laytime_hours
|
|
, D.NoticeOfReadinessExtraHours AS nor_extra_hours
|
|
, ISNULL(D.PumpingHourlyMTRate,0) AS pumping_rate
|
|
, D.UseOnlyMinAndMax AS use_only_min_max
|
|
, D.DropRemainingQuantity AS drop_remaining_quantity
|
|
FROM dbo.Deal AS D
|
|
LEFT JOIN dbo.Book AS B ON D.BookId = B.Id
|
|
LEFT JOIN dbo.ProductContainer AS PC ON D.Id = PC.Id
|
|
LEFT JOIN geo.Location AS LOA ON D.LoadLocationId = LOA.Id
|
|
LEFT JOIN geo.Country AS C_L ON LOA.CountryId = C_L.Id
|
|
LEFT JOIN geo.Location AS DIS ON D.DeliveryLocationId = DIS.Id
|
|
LEFT JOIN geo.Country AS C_D ON DIS.CountryId = C_D.Id
|
|
LEFT JOIN counterpart.Company AS C ON D.CounterpartId = C.Id
|
|
LEFT JOIN geo.Country AS C_CP ON C.CountryId = C_CP.Id
|
|
LEFT JOIN dbo.Product AS P ON D.ProductId = P.Id
|
|
LEFT JOIN dbo.BaseDefinition AS INCO ON D.IncotermId = INCO.Id
|
|
LEFT JOIN dbo.Strategy AS S ON D.StrategyId = S.Id
|
|
LEFT JOIN PaymentTerm AS PT ON D.Id = PT.DealId
|
|
LEFT JOIN (
|
|
SELECT DealId, AVG(MvTPrice) AS AvgPrice
|
|
FROM [singa].[VW_MVT_PRICING]
|
|
GROUP BY DealId) AS PRICE ON D.Id = PRICE.DealId
|
|
LEFT JOIN profiles.XUser AS TRD ON D.TraderId = TRD.Id
|
|
LEFT JOIN profiles.XUser AS OP ON D.OperatorId = OP.Id
|
|
LEFT JOIN dbo.BaseDefinition AS BD ON D.DeliveryPeriodId = BD.Id
|
|
LEFT JOIN geo.Country AS C2 ON D.CountryOfOriginId = C2.Id
|
|
WHERE 1=1
|
|
AND D.Status <> 'Cancelled'
|
|
AND D.BuyOrSell = 1 -- Purchase contracts
|
|
AND ISNULL(D.OtherReference, '') NOT LIKE '%ACCT Matching%'
|
|
AND B.Description LIKE '%2025%'
|
|
--AND D.Reference = 2093
|
|
ORDER BY 3,1
|
|
|
|
|
|
|
|
-- Purchase contract costs
|
|
SELECT
|
|
|
|
D.Reference AS contract_number,
|
|
LTRIM(RTRIM( ISNULL(D.OtherReference, '') )) AS contract_ref,
|
|
1 AS line_sequence,
|
|
CASE
|
|
WHEN CT.Caption = 'Commision' THEN 'Commission'
|
|
WHEN CT.Caption = 'Freight' THEN 'Maritime Freight'
|
|
ELSE CT.Caption
|
|
END AS product,
|
|
LTRIM(RTRIM( ISNULL(C.Name , 'TBD Supplier') )) AS supplier,
|
|
ER.CurrencyCode AS currency,
|
|
CASE ER.IsRevenue
|
|
WHEN 1 THEN 'REC'
|
|
ELSE 'PAY'
|
|
END AS p_r,
|
|
'Per qt' AS mode,
|
|
ROUND (
|
|
(IIF(PFE.Quantity IS NULL, PFE.WeightBalance / 100, 1) * PFE.OutputPriceValue),
|
|
2 ) AS price,
|
|
ER.UnitReference AS unit
|
|
|
|
FROM dbo.Deal AS D
|
|
LEFT JOIN dbo.Book AS B ON D.BookId = B.Id
|
|
INNER JOIN dbo.ExpenseRevenue AS ER ON D.Id = ER.DealId
|
|
INNER JOIN dbo.PriceFormulaElement AS PFE ON PFE.ExpenseRevenueId = ER.Id
|
|
INNER JOIN dbo.BaseDefinition AS CT ON ER.CostTypeId = CT.Id
|
|
LEFT JOIN counterpart.Company AS C ON ER.CounterpartId = c.Id
|
|
WHERE 1=1
|
|
AND D.Status <> 'Cancelled'
|
|
AND D.BuyOrSell = 1 -- Purchase contracts
|
|
AND ISNULL(D.OtherReference, '') NOT LIKE '%ACCT Matching%'
|
|
AND B.Description LIKE '%2025%'
|
|
AND ER.FormulaGroup NOT IN (1,2) -- Not Price or MtM
|
|
ORDER BY 2
|
|
|
|
|
|
|
|
-- Sale contracts - Copy/Paste results of this query in CSV file
|
|
;WITH PaymentTerm AS (
|
|
SELECT D.Id AS DealId, BD.Caption, DPT.PayTermRangeSize
|
|
FROM dbo.DealPaymentTerm AS DPT
|
|
INNER JOIN dbo.Deal AS D ON DPT.DealId = D.Id
|
|
LEFT JOIN dbo.BaseDefinition AS BD ON D.PayTermSecurityTypeId = BD.Id
|
|
WHERE 1=1
|
|
AND DPT.PayTermRangeSize > 0
|
|
GROUP BY D.Id , BD.Caption, DPT.PayTermRangeSize
|
|
)
|
|
|
|
SELECT
|
|
D.Id AS source_id
|
|
, D.Id AS source_line_id
|
|
, D.Reference AS number
|
|
, ISNULL(D.OtherReference, '') AS reference
|
|
, ISNULL(D.ContractNumber, '') AS our_reference
|
|
, C.name AS party_name
|
|
, 'USD' AS currency_code
|
|
, CAST(D.Date AS DATE) AS sale_date
|
|
|
|
, CASE
|
|
WHEN PT.Caption = 'Open account' THEN CONCAT( 'NET ' , PT.PayTermRangeSize )
|
|
WHEN PT.Caption = 'LC Doc' THEN CONCAT( 'LC ', PT.PayTermRangeSize, ' DAYS')
|
|
ELSE CONCAT( 'NET ' , PT.PayTermRangeSize )
|
|
END AS payment_term
|
|
|
|
, '' AS warehouse_code
|
|
, 'NCSW' AS weight_basis
|
|
, ROUND(D.QuantityToleranceMinusPercent,2) AS tol_min_pct
|
|
, ROUND(D.QuantityTolerancePlusPercent,2) AS tol_max_pct
|
|
, D.QuantityToleranceMin AS tol_min_qty
|
|
, D.QuantityToleranceMax AS tol_max_qty
|
|
|
|
, ISNULL(LOA.LocationName, '') AS from_location_name
|
|
, ISNULL(DIS.LocationName, '') AS to_location_name
|
|
, ISNULL(INCO.Caption, '') AS incoterm_name
|
|
, 'manual' AS invoice_method
|
|
,'' AS [description]
|
|
, CONCAT( D.Reference , ' / ' , B.Description , ' / ' , S.Caption) AS [comment]
|
|
, 'line' AS line_type
|
|
, CASE
|
|
WHEN ISNULL(C2.CountryName,'') <> '' THEN CONCAT('H2SO4','-',C2.CountryName)
|
|
ELSE 'H2SO4'
|
|
END AS line_product_code
|
|
, ISNULL(C2.CountryName,'') AS origin
|
|
, ROUND(D.Quantity , 2) AS line_quantity
|
|
, 'Mt' AS line_unit_code
|
|
, ISNULL(PRICE.AvgPrice,0) AS line_price
|
|
, CONCAT(
|
|
D.Quantity , ' Mt of sulphuric acid - ',
|
|
CASE
|
|
WHEN ISNULL(D.CommodityBasis, 0) = 0 THEN 'Tel-quel'
|
|
ELSE CAST(D.CommodityBasis AS VARCHAR(MAX)) + '%'
|
|
END) AS line_description
|
|
, cast(D.DeliveryDateFrom AS DATE) AS line_from_del
|
|
, cast(D.DeliveryDateTo AS DATE) AS line_to_del
|
|
, 'bldate' AS pricing_trigger
|
|
, CAST(D.EstimatedDateOfBL AS DATE) AS pricing_estimated_date
|
|
|
|
, ISNULL( CONCAT( TRD.FirstName, ' ', TRD.LastName) , '') AS trader
|
|
, ISNULL( CONCAT( OP.FirstName, ' ', OP.LastName) , '') AS operator
|
|
|
|
, ISNULL(D.CommodityBasis, 0) AS concentration
|
|
, B.Description AS book
|
|
, S.Caption AS strategy
|
|
, ISNULL(BD.Caption , 'Laycan') AS period_at
|
|
, ISNULL(D.Demurrage, '') AS demurrage
|
|
, D.LaytimeHours AS laytime_hours
|
|
, D.NoticeOfReadinessExtraHours AS nor_extra_hours
|
|
, ISNULL(D.PumpingHourlyMTRate,0) AS pumping_rate
|
|
, D.UseOnlyMinAndMax AS use_only_min_max
|
|
, D.DropRemainingQuantity AS drop_remaining_quantity
|
|
FROM dbo.Deal AS D
|
|
LEFT JOIN dbo.Book AS B ON D.BookId = B.Id
|
|
LEFT JOIN dbo.ProductContainer AS PC ON D.Id = PC.Id
|
|
LEFT JOIN geo.Location AS LOA ON D.LoadLocationId = LOA.Id
|
|
LEFT JOIN geo.Country AS C_L ON LOA.CountryId = C_L.Id
|
|
LEFT JOIN geo.Location AS DIS ON D.DeliveryLocationId = DIS.Id
|
|
LEFT JOIN geo.Country AS C_D ON DIS.CountryId = C_D.Id
|
|
LEFT JOIN counterpart.Company AS C ON D.CounterpartId = C.Id
|
|
LEFT JOIN geo.Country AS C_CP ON C.CountryId = C_CP.Id
|
|
LEFT JOIN dbo.Product AS P ON D.ProductId = P.Id
|
|
LEFT JOIN dbo.BaseDefinition AS INCO ON D.IncotermId = INCO.Id
|
|
LEFT JOIN dbo.Strategy AS S ON D.StrategyId = S.Id
|
|
LEFT JOIN PaymentTerm AS PT ON D.Id = PT.DealId
|
|
LEFT JOIN (
|
|
SELECT DealId, AVG(MvTPrice) AS AvgPrice
|
|
FROM [singa].[VW_MVT_PRICING]
|
|
GROUP BY DealId) AS PRICE ON D.Id = PRICE.DealId
|
|
LEFT JOIN profiles.XUser AS TRD ON D.TraderId = TRD.Id
|
|
LEFT JOIN profiles.XUser AS OP ON D.OperatorId = OP.Id
|
|
LEFT JOIN dbo.BaseDefinition AS BD ON D.DeliveryPeriodId = BD.Id
|
|
LEFT JOIN geo.Country AS C2 ON D.CountryOfOriginId = C2.Id
|
|
WHERE 1=1
|
|
AND D.Status <> 'Cancelled'
|
|
AND D.BuyOrSell = -1 -- Sale contracts
|
|
AND ISNULL(D.OtherReference, '') NOT LIKE '%ACCT Matching%'
|
|
AND B.Description LIKE '%2025%'
|
|
ORDER BY 2,1
|
|
|
|
|