الانتقال إلى المحتوى
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.

عندي مشكلة فى الكود ومرفق الكود (ora-01403)

Featured Replies

بتاريخ:

 

الكود مستخدم لترحيل يومية مبيعات اليوم بالكامل على قيد واحد 

ولكنه لا يكتمل وجربت معاه كل شيئ

ارجو المساعدة وشكرا 

 

when_button_pressed : 

-----------------------------------------------------------------


DECLARE
   v_day_state              NUMBER (10);
   a                        NUMBER;
   v                        NUMBER;


   CURSOR aa
   IS
      SELECT customer_account_id, RESET
        FROM sell_bill
       WHERE sell_bill.sell_type = 2
         AND sell_date = TO_CHAR (:block2.date1, 'dd-mm-yyyy')
         AND period_id = :GLOBAL.period_id
         AND branch_id = :GLOBAL.branch_id;


   v_kaid_id                NUMBER (10);
   v_period_id              NUMBER (10);
   v_daily_id               NUMBER (10);
   v_daily_id1              NUMBER (10);
   v_daily_id2              NUMBER (10);
   v_daily_id3              NUMBER (10);
   box_account_id           NUMBER (20);
   box_account_name         VARCHAR2 (200);
   box_main_account_id      NUMBER (20);
   box_main_account_name    VARCHAR2 (200);
   v_branch_id              NUMBER (10);
   v_branch_name            VARCHAR2 (200);
   nk_account_id            NUMBER (20);
   nk_account_name          VARCHAR2 (200);
   tw_account_id            NUMBER (20);
   tw_account_name          VARCHAR2 (200);
   sh_account_id            NUMBER (20);
   sh_account_name          VARCHAR2 (200);
   erad_main_account_id     NUMBER (20);
   erad_main_account_name   VARCHAR2 (200);
   v_sum_total              NUMBER (20, 5);
   v_sum_nk                 NUMBER (20, 5);
   v_sum_tw                 NUMBER (20, 5);
   v_sum_sh                 NUMBER (20, 5);
   count_v_sum_nk           NUMBER (10);
   count_v_sum_tw           NUMBER (10);
   count_v_sum_sh           NUMBER (10);
   v_customer_account_id    NUMBER (25);
   bill_total               NUMBER (25, 5);
   v_main_id                NUMBER (25);
   v_main_name              VARCHAR2 (300);
   v_account_id             NUMBER (25);
   v_account_name           VARCHAR2 (300);
   v_daily_customer         NUMBER (25);
   v_length                 NUMBER (20);
   v_sum_paid               NUMBER (20, 5);
BEGIN
-------------------


   -------------------
   SELECT branch_id, branch_name
     INTO v_branch_id, v_branch_name
     FROM branches;


   SELECT DISTINCT (day_state)
              INTO v_day_state
              FROM sell_bill
             WHERE sell_date = TO_CHAR (:block2.date1, 'dd-mm-yyyy')
               AND period_id = :GLOBAL.period_id
               AND branch_id = :GLOBAL.branch_id;


--to_char(sysdate,'dd-mm-yyyy','nls_calendar=''arabic hijrah''');
   IF v_day_state > '0'
   THEN
      a := SHOW_ALERT ('DAY_CLOSED_BEFORE');
      RAISE form_trigger_failure;
   END IF;


                                   ------ Insert Kaid hearder ------------------
---- Max kaid id----
   SELECT NVL (MAX (kaid_id), 0) + 1
     INTO v_kaid_id
     FROM kaid
    WHERE period_id = :GLOBAL.period_id AND branch_id = :GLOBAL.branch_id;


--- Close  Day ---
   UPDATE sell_bill
      SET day_state = '1',
          sell_bill.kaid_id = v_kaid_id
    WHERE sell_bill.sell_date = TO_CHAR (:block2.date1, 'dd-mm-yyyy')
      AND period_id = :GLOBAL.period_id
      AND branch_id = :GLOBAL.branch_id;


--to_char(sysdate,'dd-mm-yyyy','nls_calendar=''arabic hijrah''');
   COMMIT;


   ----------


   --- Current Year Period------
   SELECT period_id
     INTO v_period_id
     FROM periods
    WHERE periods.period_id = (SELECT MAX (period_id)
                                 FROM periods
                                WHERE periods.period_state = 1);


--------------
   INSERT INTO kaid
               (kaid_id,
                kaid_date,
                kaid_notes,
                state, worker_id, kaid_year, period_id, kaid_type,
                kaid_entry, sanad_sarf_id, sanad_qabd_id, sanad_type,
                sanad_type_name, branch_id, branch_name, sell_id, sell_type,
                sell_type_name
               )
        VALUES (v_kaid_id,
                TO_CHAR (SYSDATE,
                         'dd-mm-yyyy',
                         'nls_calendar=''arabic hijrah'''
                        ),
                   ' إيراد مبيعات الأعلاف النقدية عن اليوم'
                || ' --- '
                || :block2.date1,
                '', '1', '', v_period_id, '1',
                :GLOBAL.user_id, '0', '0', '',
                '', v_branch_id, v_branch_name, '', '',
                ''
               );


   COMMIT;


--message('Kaid Saved'||v_kaid_id);
--message('Kaid Saved'||v_kaid_id);


   --- Insert kaid Details---------
    --------Insert Madeen  Daily account --------------    حساب الصندوق  --
---max daily_id
   SELECT NVL (MAX (daily_id), 0) + 1, NVL (MAX (daily_id), 0) + 2,
          NVL (MAX (daily_id), 0) + 3, NVL (MAX (daily_id), 0) + 4
     INTO v_daily_id, v_daily_id1,
          v_daily_id2, v_daily_id3
     FROM daily
    WHERE period_id = :GLOBAL.period_id AND branch_id = :GLOBAL.branch_id;


---Select total sell_bill
   SELECT sum_total, sum_paid
     INTO v_sum_total, v_sum_paid
     FROM sell_bill_totals
    WHERE sell_bill_totals.sell_date = TO_CHAR (:block2.date1, 'dd-mm-yyyy');


--to_char(sysdate,'dd-mm-yyyy','nls_calendar=''arabic hijrah''');
--message(v_sum_total);
--message(v_sum_total);


   --select main_id,main_name,account_id,account_name
--into box_main_account_id,box_main_account_name,box_account_id,box_account_name
   box_main_account_id := '1206';
   box_main_account_name := 'نقدية بالصندوق';
   box_account_id := '120601';
   box_account_name := 'الصندوق الرئيسي للجمعية';


   INSERT INTO daily
               (daily_id, main_id, main_name,
                account_id, account_name, madeen, daen, notes,
                kaid_id, period_id, open_madeen, open_daen, branch_id
               )
        VALUES (v_daily_id, box_main_account_id, box_main_account_name,
                box_account_id, box_account_name, v_sum_paid, '0', '',
                v_kaid_id, v_period_id, '0', '0', v_branch_id
               );


   COMMIT;
--message('First Deatils Madeen Saved');
--message('First Deatils Madeen Saved');


   ---------Insert daen Daily Account -----------
--- NKHALAA ERAD
   nk_account_id := '4101';
   nk_account_name := 'مبيعات النخالة الحيوانية';
--- TASMEEN WAFI ERAD
   tw_account_id := '4102';
   tw_account_name := ' مبيعات علف التسمين وافي';
--- SHAEEIR ERAD
   sh_account_id := '4103';
   sh_account_name := ' مبيعات الشعير ';
--------------
   erad_main_account_id := '41';
   erad_main_account_name := 'إيرادات مشروع الأعلاف';


   ------------------ INSERT NKHALAA ERAD  نخالة
   --message('Start Other Side');
   --message('Start Other Side');
   SELECT COUNT (sum_total)
     INTO count_v_sum_nk
     FROM product_sum_sales
    WHERE product_id = '101'
      AND product_sum_sales.sell_date = TO_CHAR (:block2.date1, 'dd-mm-yyyy');


   IF count_v_sum_nk > 0
   THEN
      SELECT NVL (sum_total, 0)
        INTO v_sum_nk
        FROM product_sum_sales
       WHERE product_id = '101'
         AND product_sum_sales.sell_date =
                                         TO_CHAR (:block2.date1, 'dd-mm-yyyy');


--exception when no_data_found then
--v_sum_nk:=0;
--to_char(sysdate,'dd-mm-yyyy','nls_calendar=''arabic hijrah''');
      INSERT INTO daily
                  (daily_id, main_id, main_name,
                   account_id, account_name, madeen, daen, notes,
                   kaid_id, period_id, open_madeen, open_daen, branch_id
                  )
           VALUES (v_daily_id1, erad_main_account_id, erad_main_account_name,
                   nk_account_id, nk_account_name, '0', v_sum_nk, '',
                   v_kaid_id, v_period_id, '0', '0', v_branch_id
                  );


      COMMIT;
   ELSE
      NULL;
   END IF;


   ------------------ INSERT Tasmeen Wafi ERAD
   SELECT COUNT (sum_total)
     INTO count_v_sum_tw
     FROM product_sum_sales
    WHERE product_id = '102'
      AND product_sum_sales.sell_date = TO_CHAR (:block2.date1, 'dd-mm-yyyy');


   IF count_v_sum_tw > '0'
   THEN
      SELECT NVL (sum_total, 0)
        INTO v_sum_tw
        FROM product_sum_sales
       WHERE product_id = '102'
         AND product_sum_sales.sell_date =
                                         TO_CHAR (:block2.date1, 'dd-mm-yyyy');


-- exception when no_data_found then
--v_sum_tw:=0;
--to_char(sysdate,'dd-mm-yyyy','nls_calendar=''arabic hijrah''');


      ---- message(v_sum_tw);
       ---message(v_sum_tw);
      INSERT INTO daily
                  (daily_id, main_id, main_name,
                   account_id, account_name, madeen, daen, notes,
                   kaid_id, period_id, open_madeen, open_daen, branch_id
                  )
           VALUES (v_daily_id2, erad_main_account_id, erad_main_account_name,
                   tw_account_id, tw_account_name, '0', v_sum_tw, '',
                   v_kaid_id, v_period_id, '0', '0', v_branch_id
                  );


      COMMIT;
   ELSE
      NULL;
   END IF;


   ------------------ INSERT  Shaeer ERAD
   SELECT COUNT (sum_total)
     INTO count_v_sum_sh
     FROM product_sum_sales
    WHERE product_id = '103'
      AND product_sum_sales.sell_date = TO_CHAR (:block2.date1, 'dd-mm-yyyy');


   IF count_v_sum_sh > '0'
   THEN
      SELECT NVL (sum_total, 0)
        INTO v_sum_sh
        FROM product_sum_sales
       WHERE product_id = '103'
         AND product_sum_sales.sell_date =
                                         TO_CHAR (:block2.date1, 'dd-mm-yyyy');


--exception when no_data_found then
--v_sum_sh:=0;
--to_char(sysdate,'dd-mm-yyyy','nls_calendar=''arabic hijrah''');


      --   message(v_sum_sh);
            --  message(v_sum_sh);
      INSERT INTO daily
                  (daily_id, main_id, main_name,
                   account_id, account_name, madeen, daen, notes,
                   kaid_id, period_id, open_madeen, open_daen, branch_id
                  )
           VALUES (v_daily_id3, erad_main_account_id, erad_main_account_name,
                   sh_account_id, sh_account_name, '0', v_sum_sh, '',
                   v_kaid_id, v_period_id, '0', '0', v_branch_id
                  );


      COMMIT;
   ELSE
      NULL;
   END IF;


   MESSAGE ('1');
   MESSAGE ('1');


   OPEN aa;


   LOOP
      FETCH aa
       INTO v_customer_account_id, bill_total;


      EXIT WHEN aa%NOTFOUND;


      BEGIN
         MESSAGE ('2');
         MESSAGE ('2');
      EXCEPTION
         WHEN NO_DATA_FOUND
         THEN
            NULL;
      END;


      SELECT NVL (MAX (daily_id), 0) + 1
        INTO v_daily_customer
        FROM daily
       WHERE period_id = :GLOBAL.period_id;


      SELECT main_id, main_name, account_id, account_name
        INTO v_main_id, v_main_name, v_account_id, v_account_name
        FROM accounts
       WHERE accounts.account_id = v_customer_account_id;


      MESSAGE ('3');
      MESSAGE ('3');


      INSERT INTO daily
                  (daily_id, main_id, main_name, account_id,
                   account_name, madeen, daen, notes, kaid_id,
                   period_id, open_madeen, open_daen, branch_id
                  )
           VALUES (v_daily_customer, v_main_id, v_main_name, v_account_id,
                   v_account_name, bill_total, '0', '', v_kaid_id,
                   :GLOBAL.period_id, '0', '0', v_branch_id
                  );
   END LOOP;


   COMMIT;


   CLOSE aa;


   COMMIT;
   v := SHOW_ALERT ('trans_ok');
END;

 

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

بتاريخ:

ايه اللي بيحصل يا باشا لما ترن الكود , ايه الايرور , بيقف فين بالظبط ؟

 

ويا ريت الـ  DDL الخاص باي جداول ليها علاقة بالموضوع عشان نعرف ن TEST

تم تعديل بواسطة eslam elbyaly

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

المشكلة انه لما يرحل الداتا يقوم باضافة صنف لم اقم باضافته فى هذه السنة المالية 

 

المشكلة فى الـ cursor لم يحصل على بيانات 

بتاريخ:

كده مش هنعرف نتست حاجة لان مفيش جداول ومفيش داتا .

انت جربت السيليكت بتاعت الكرسور لوحدها ؟ بتجيب داتا ؟

الجزء ده ملوش معني

BEGIN
         MESSAGE ('2');
         MESSAGE ('2');
      EXCEPTION
         WHEN NO_DATA_FOUND
         THEN
            NULL
;
      END;

ايه علاقة الـ no_data_found بالـ message

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

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

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

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.