SELECT
(SELECT SUM(CASE WHEN (VMV.DocumentType = '27') THEN LocalTAmount ELSE -LocalTAmount END)
FROM Storedocuments2 VMV2
INNER JOIN Storedocuments VMV ON (VMV.id = VMV2.Parent_ID AND (VMV.DocumentType = '27' or VMV.DocumentType = '29'))
WHERE VMV2.ProductionTask_ID = A.ProductionTask_ID
AND VMV.DocDate$DATE >= {$DateFrom} and VMV.DocDate$DATE < {$DateTo}
) AS MaterialAmount,
(SELECT MIN(VMV2.closingorder)
FROM Storedocuments2 VMV2
INNER JOIN Storedocuments VMV ON (VMV.id = VMV2.Parent_ID AND (VMV.DocumentType = '27' or VMV.DocumentType = '29'))
WHERE VMV2.ProductionTask_ID = A.ProductionTask_ID
AND VMV.DocDate$DATE >= {$DateFrom} and VMV.DocDate$DATE < {$DateTo}
) AS MaterialCompletePrices,
(SELECT SUM(FP2.MaterialExpenseAmount + FP2.ConsumablesAmount + FP2.PriceAmount)
FROM plmfinishedproducts FP
inner join plmfinishedproducts2 FP2 ON (FP2.Parent_ID = FP.ID)
WHERE (FP.JobOrder_ID = A.ID)
AND FP.DocDate$DATE >= {$DateFrom} and FP.DocDate$DATE < {$DateTo}
) AS FPAmount,
(SELECT SUM(FP2.materialexpenseamount)
FROM plmfinishedproducts FP
inner join plmfinishedproducts2 FP2 ON (FP2.Parent_ID = FP.ID)
WHERE (FP.JobOrder_ID = A.ID)
AND FP.DocDate$DATE >= {$DateFrom} and FP.DocDate$DATE < {$DateTo}
) AS FPMaterialExpense,
(SELECT SUM(FP2.consumablesamount)
FROM plmfinishedproducts FP
inner join plmfinishedproducts2 FP2 ON (FP2.Parent_ID = FP.ID)
WHERE (FP.JobOrder_ID = A.ID)
AND FP.DocDate$DATE >= {$DateFrom} and FP.DocDate$DATE < {$DateTo}
) AS FPConsumables,
(SELECT SUM(FP2.priceamount)
FROM plmfinishedproducts FP
inner join plmfinishedproducts2 FP2 ON (FP2.Parent_ID = FP.ID)
WHERE (FP.JobOrder_ID = A.ID)
AND FP.DocDate$DATE >= {$DateFrom} and FP.DocDate$DATE < {$DateTo}
) AS FPPrice,
(SELECT SUM(OP.SalaryCosts)
FROM PLMJONodes N
inner join PLMJOOutputItems MI on (N.ID = MI.Owner_ID)
inner join PLMJobOrdersRoutines RO on (MI.id = RO.parent_ID)
INNER JOIN PLMOperations OP on (RO.ID = OP.JobOrdersRoutines_ID)
WHERE (N.Parent_ID = A.ID)
AND OP.FinishedAt$Date >= {$DateFrom} and OP.FinishedAt$Date < {$DateTo}
) AS OPPrice,
(SELECT SUM(OP.OverheadCosts)
FROM PLMJONodes N
inner join PLMJOOutputItems MI on (N.ID = MI.Owner_ID)
inner join PLMJobOrdersRoutines RO on (MI.id = RO.parent_ID)
INNER JOIN PLMOperations OP on (RO.ID = OP.JobOrdersRoutines_ID)
WHERE (N.Parent_ID = A.ID)
AND OP.FinishedAt$Date >= {$DateFrom} and OP.FinishedAt$Date < {$DateTo}
) AS OPOverheadCosts,
(SELECT SUM(OP.GeneralExpense)
FROM PLMJONodes N
inner join PLMJOOutputItems MI on (N.ID = MI.Owner_ID)
inner join PLMJobOrdersRoutines RO on (MI.id = RO.parent_ID)
INNER JOIN PLMOperations OP on (RO.ID = OP.JobOrdersRoutines_ID)
WHERE (N.Parent_ID = A.ID)
AND OP.FinishedAt$Date >= {$DateFrom} and OP.FinishedAt$Date < {$DateTo}
) AS OPGeneralExpense,
(SELECT COUNT(OP.ID)
FROM PLMJONodes N
inner join PLMJOOutputItems MI on (N.ID = MI.Owner_ID)
inner join PLMJobOrdersRoutines RO on (MI.id = RO.parent_ID)
INNER JOIN PLMOperations OP on (RO.ID = OP.JobOrdersRoutines_ID)
WHERE (N.Parent_ID = A.ID)
AND OP.FinishedAt$Date >= {$DateFrom} and OP.FinishedAt$Date < {$DateTo}
AND OP.aggregateworkticket_id is null
) AS OPCountNotAWT,
(SELECT SUM(AWT.amount)
FROM PLMAggregateWorkTickets AWT
WHERE (AWT.JobOrder_ID = A.ID)
AND AWT.DocDate$DATE >= {$DateFrom} and AWT.DocDate$DATE < {$DateTo}
) AS AWTAmount,
(SELECT SUM(BIP.amount)
FROM PLMBalanceinProcessProduces BIP
WHERE (BIP.JobOrder_ID = A.ID)
AND BIP.DocDate$DATE >= {$DateFrom} and BIP.DocDate$DATE < {$DateTo}
) AS BIPAmount,
(SELECT SUM(COO.RealMaterialPrice)+SUM(COO.RealWorkPrice)
FROM PLMCooperations COO
WHERE (COO.JobOrder_ID = A.ID)
AND COO.DocDate$DATE >= {$DateFrom} and COO.DocDate$DATE < {$DateTo}
) AS COOAmount,
(SELECT SUM(PHV2.LocalTAmount)
FROM Storedocuments2 PHV2
INNER JOIN Storedocuments PHV ON (PHV.id = PHV2.Parent_ID AND PHV.DocumentType = '28')
WHERE PHV2.ProductionTask_ID = A.ProductionTask_ID
AND PHV.DocDate$DATE >= {$DateFrom} and PHV.DocDate$DATE < {$DateTo}
) AS ProductReceptionsAmount,
(SELECT MIN(PHV2.closingorder)
FROM Storedocuments2 PHV2
INNER JOIN Storedocuments PHV ON (PHV.id = PHV2.Parent_ID AND PHV.DocumentType = '28')
WHERE PHV2.ProductionTask_ID = A.ProductionTask_ID
AND PHV.DocDate$DATE >= {$DateFrom} and PHV.DocDate$DATE < {$DateTo}
) AS ProductReceptionsClosing
{ANDFIELDS}
FROM
PLMJobOrders A
WHERE
A.ProductionTask_ID = :ProductionTask_ID