nikolasd
10/26/2017 - 11:42 AM

Ενημέρωση τιμών και αξιών σε παραστατικά Ενδοδιακίνησης

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