DEV Community

Fatih Şahin
Fatih Şahin

Posted on

Ekran Kontrolü - Postgresql

DECLARE
  FORM_PER_START_DATE date;
  FORM_PER_END_DATE date;
  FORM_QTY numeric;
  WALBIL_SAVED_QTY numeric;
  SCREEN_QTY numeric;
  BEGIN

SELECT
START_DATE, END_DATE INTO FORM_PER_START_DATE, FORM_PER_END_DATE
FROM ZZZT_CAPASITY_REPORT_PER
WHERE
1=1
AND TO_DATE({DocDate} ,'DD.MM.YYYY') BETWEEN TO_DATE(START_DATE,'DD.MM.YYYY')
AND TO_DATE(END_DATE,'DD.MM.YYYY')
AND CAPASITY_REPORT_ID={ZZCapasityReportId};

SELECT
SUM(QTY) INTO FORM_QTY
FROM ZZZT_CAPASITY_REPORT
WHERE
1=1
AND CAPASITY_REPORT_ID={ZZCapasityReportId};

SELECT
SUM(OD.QTY) INTO WALBIL_SAVED_QTY
FROM INVT_ITEM_D OD
INNER JOIN INVT_ITEM_M OM ON OD.ITEM_M_ID = OM.ITEM_M_ID
WHERE
1=1
AND OM.PURCHASE_SALES=2
AND OM.ZZ_CAPASITY_REPORT_ID = {ZZCapasityReportId}
AND OM.ENTITY_ID = {EntityId}
AND OD.ITEM_ID IN (SELECT RI.ITEM_ID FROM ZZZT_CAPASITY_REPORT_ITEM RI WHERE RI.CAPASITY_REPORT_ID = {ZZCapasityReportId})
AND TO_DATE(OM.DOC_DATE,'DD.MM.YYYY') BETWEEN TO_DATE(FORM_PER_START_DATE,'DD.MM.YYYY')
AND TO_DATE(FORM_PER_END_DATE,'DD.MM.YYYY');

SELECT {OrderDCollection.Qty} INTO SCREEN_QTY FROM DUAL;

 OPEN :message FOR
    SELECT (CASE
             WHEN (COALESCE(WALBIL_SAVED_QTY,0)+SCREEN_QTY)>COALESCE(FORM_QTY,0) AND COALESCE(FORM_QTY,0)>0 
             THEN '🆔 150'||Chr(10)||
             '❌ '||{ZZCapasityReportDocNo}||' Belge Numaralı Kapasite Raporu için Max Sevk Limitine Ulaştınız.'||Chr(10)||
             '✅ Önceki: ' ||TO_CHAR(COALESCE(WALBIL_SAVED_QTY,0),'999G999G999')||Chr(10)||
             '✅ Kapasite: '||TO_CHAR(COALESCE(FORM_QTY,0),'999G999G999')||Chr(10)||
             '✅ Toplam Sipariş Miktar: '||TO_CHAR((COALESCE(WALBIL_SAVED_QTY,0)+SCREEN_QTY),'999G999G999')||Chr(10)||
             '✅ Fark:  '||TO_CHAR((COALESCE(FORM_QTY,0)-COALESCE(WALBIL_SAVED_QTY,0)-SCREEN_QTY),'999G999G999')
            ELSE
             ''
           END)
      FROM DUAL;
END;
Enter fullscreen mode Exit fullscreen mode

Top comments (0)