Pylon SQL - Ενημέρωση τιμών και αξιών σε παραστατικά Ενδοδιακίνησης
-- Ενημέρωση γραμμών με τιμές (τελευταία υπολογιζομένη τιμή κόστους)
UPDATE HEWENTLINES
SET HEPRICE = ROUND((SELECT
CASE
WHEN ISNULL(purprc.HEITEMCOST, 0) = 0 THEN lines.HEPRICE
ELSE purprc.HEITEMCOST
END AS newprice
FROM HEDOCENTRIES doc,
HEWENTLINES lines,
HEITEMS ite,
HEITEMCOSTPRICES purprc,
HEDOCSERIES ser
WHERE doc.HEID = lines.HEDENTID
AND lines.HEITEMID = ite.HEID
AND ite.HEID = purprc.HEITEMID
AND doc.HECOMPID = lines.HECOMPID
AND doc.HECOMPID = ite.HECOMPID
AND doc.HECOMPID = ser.HECOMPID
AND doc.HEDCSRID = ser.HEID
AND doc.HEDCSRTYPE = ser.HESERIESTYPE
AND ser.HESERIESTYPE = 2
AND purprc.HEDATE = (SELECT
MAX(HEDATE)
FROM HEITEMCOSTPRICES
WHERE HEITEMID = purprc.HEITEMID)
AND ser.HECODE LIKE 'ΕΝΔ-%'
AND lines.heid = HEWENTLINES.HEID)
, 3)
WHERE HEID IN (SELECT
lines.HEID
FROM HEDOCENTRIES doc,
HEWENTLINES lines,
HEITEMS ite,
HEITEMCOSTPRICES purprc,
HEDOCSERIES ser
WHERE doc.HEID = lines.HEDENTID
AND lines.HEITEMID = ite.HEID
AND ite.HEID = purprc.HEITEMID
AND doc.HECOMPID = lines.HECOMPID
AND doc.HECOMPID = ite.HECOMPID
AND doc.HECOMPID = ser.HECOMPID
AND doc.HEDCSRID = ser.HEID
AND doc.HEDCSRTYPE = ser.HESERIESTYPE
AND ser.HESERIESTYPE = 2
AND purprc.HEDATE = (SELECT
MAX(HEDATE)
FROM HEITEMCOSTPRICES
WHERE HEITEMID = purprc.HEITEMID)
AND ser.HECODE LIKE 'ΕΝΔ-%')
-- Ενημέρωση Γραμμών με αξίες
UPDATE HEWENTLINES
SET HEBTOTALVAL = ROUND((HEAQTY * HEPRICE), 2)
WHERE HEID IN (SELECT
lines.HEID
FROM HEDOCENTRIES doc,
HEWENTLINES lines,
HEITEMS ite,
HEITEMCOSTPRICES purprc,
HEDOCSERIES ser
WHERE doc.HEID = lines.HEDENTID
AND lines.HEITEMID = ite.HEID
AND ite.HEID = purprc.HEITEMID
AND doc.HECOMPID = lines.HECOMPID
AND doc.HECOMPID = ite.HECOMPID
AND doc.HECOMPID = ser.HECOMPID
AND doc.HEDCSRID = ser.HEID
AND doc.HEDCSRTYPE = ser.HESERIESTYPE
AND ser.HESERIESTYPE = 2
AND purprc.HEDATE = (SELECT
MAX(HEDATE)
FROM HEITEMCOSTPRICES
WHERE HEITEMID = purprc.HEITEMID)
AND ser.HECODE LIKE 'ΕΝΔ-%')
-- Ενημέρωση Παραστατικών με συνολική αξία γραμμών
UPDATE HEDOCENTRIES
SET HEBTOTALVAL = ROUND((SELECT
SUM(HEBTOTALVAL)
FROM HEWENTLINES
WHERE hedentid = HEDOCENTRIES.HEID)
, 2)
WHERE hedoccode LIKE 'ΕΝΔ-%'
AND hebtotalval = 0