الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

كيف يمكن تحديث رصيد مخزن عند تنفيذ حركة صرف او حركة شراء

Featured Replies

بتاريخ:

كيف يتم تحديث رصيد اصناف المخزن فى جدول تكويد الاصناف

عند حذف حركة صرف او حركة شراء  من جدول حركات المخزن

بتاريخ:

السلام عليكم ورحمة الله 

 

 

 

 تحديث رصيد اصناف المخزن فى جدول تكويد الاصناف

 

رصيد الصنف لا يجب أن يكون ضمن بيانات جدول تكويد الأصناف 

 

يفضل انشاء جدول مستقل لتكويد الأصناف ( رمز الصنف - وصف الصنف - وحدة القياس -  ... )

جدول ارصدة الأصناف

 

 رقم المخزن أو المستودع - رمز الصنف  - اجمالي حركات الإضافة - اجمالي حركات الصرف  + .... 

 

 

لتحديث الرصيد مع كل حركة تتم على الصنف انشيء database trigger مع كل جدول حركة 

ومعالجة حالات ال insert - update - datele

 

وتوجد مشاركات سابقة بالمنتدى  بأمثلة عن طريقة التعامل مع ال database trigger

منها

 

 

أريد طريقة أنه اذا تم بيع أي بضاعة يتم عملية الطرح بشكل تلقائي

http://www.araboug.org/ib/index.php?showtopic=45643

 

مشكلة فاتورة المبيعات و التأثير على رصيد الصنف بالمخزن

http://www.araboug.org/ib/index.php?showtopic=27120

بتاريخ:
  • كاتب الموضوع

جزاك الله خيرا

بتاريخ:

ده database trigger الخاص بجدول Details في فاتورة المبيعات:-

CREATE OR REPLACE TRIGGER upd_balance
   AFTER DELETE OR INSERT OR UPDATE
   OF ITEM_QTY
   ON SALE_DTL    FOR EACH ROW
BEGIN
 

   IF DELETING
   THEN
      UPDATE ITEMS_STORE
      SET BALANCE = BALANCE+NVL(:OLD.ITEM_QTY,0)
      WHERE ITEM_ID=:OLD.ITEM_ID
        AND STORE_ID=:OLD.STORE_ID;
   ELSIF INSERTING
   THEN
      UPDATE ITEMS_STORE
      SET BALANCE = BALANCE-NVL(:NEW.ITEM_QTY,0)
      WHERE ITEM_ID=:NEW.ITEM_ID
        AND STORE_ID=:NEW.STORE_ID;
   ELSIF UPDATING
   THEN
      UPDATE ITEMS_STORE
      SET BALANCE = (BALANCE+NVL(:OLD.ITEM_QTY,0))-NVL(:NEW.ITEM_QTY,0)
      WHERE ITEM_ID=:OLD.ITEM_ID
        AND STORE_ID=:OLD.STORE_ID;
   END IF;
END;

تم تعديل بواسطة Ahmad.Hasan

بتاريخ:

وده الخاص بالمشتريات :-

CREATE OR REPLACE TRIGGER upd_balance_pur
   AFTER DELETE OR INSERT OR UPDATE OF item_qty
   ON purchasing_dtl
   FOR EACH ROW
BEGIN
   IF DELETING
   THEN
      UPDATE items_store
         SET balance = balance - NVL (:OLD.item_qty, 0)
       WHERE item_id = :OLD.item_id AND store_id = :OLD.store_id;
   ELSIF INSERTING
   THEN
      DECLARE
         cnt   NUMBER;
      BEGIN
         SELECT COUNT (*)
           INTO cnt
           FROM items_store
          WHERE item_id = :NEW.item_id AND store_id = :NEW.store_id;

         IF cnt > 0
         THEN
            UPDATE items_store
               SET balance = balance + NVL (:NEW.item_qty, 0)
             WHERE item_id = :NEW.item_id AND store_id = :NEW.store_id;
         ELSE
            INSERT INTO items_store
                        (store_id, item_id, balance, balance_limit,
                         creation_date, last_update_date,
                         last_updated_by, created_by, seq
                        )
                 VALUES (:NEW.store_id, :NEW.item_id, :NEW.item_qty, 0,
                         :NEW.creation_date, :NEW.last_update_date,
                         :NEW.last_updated_by, :NEW.created_by, NULL
                        );
         END IF;
      END;
   ELSIF UPDATING
   THEN
      UPDATE items_store
         SET balance =
                   (balance - NVL (:OLD.item_qty, 0)) + NVL (:NEW.item_qty, 0)
       WHERE item_id = :OLD.item_id AND store_id = :OLD.store_id;
   END IF;
END;

/

تم تعديل بواسطة Ahmad.Hasan

  • بعد 3 أسابيع...
بتاريخ:

الحل لهذه المشكلة هو عمل جدول واحد لكل حركات الصنف من وارد ومنصرف ومبيعات وعمل عمود لرمز الصنف وعمود وحدة الصنف وعمود الوارد وعمود الصرف بحيث اذا كنت تريد معرفة رصيد الصنف تقوم بطرح عمود المنصرف من عمود الوارد حسب رمز الصنف

واذ حبيت ضيف عمود نوع الحركة مثل 1 امر توريد 2 فاتورة مشتريات 3 امر صرف 4 فاتورة مبيعات

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.