بتاريخ: 11 نوفمبر 201411 سنة comment_256543 الكود مستخدم لترحيل يومية مبيعات اليوم بالكامل على قيد واحد ولكنه لا يكتمل وجربت معاه كل شيئ ارجو المساعدة وشكرا 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; تم تعديل 12 نوفمبر 201411 سنة بواسطة Ahmad.Hasan تقديم بلاغ
بتاريخ: 11 نوفمبر 201411 سنة comment_256547 ايه اللي بيحصل يا باشا لما ترن الكود , ايه الايرور , بيقف فين بالظبط ؟ ويا ريت الـ DDL الخاص باي جداول ليها علاقة بالموضوع عشان نعرف ن TEST تم تعديل 11 نوفمبر 201411 سنة بواسطة eslam elbyaly تقديم بلاغ
بتاريخ: 12 نوفمبر 201411 سنة كاتب الموضوع comment_256564 المشكلة انه لما يرحل الداتا يقوم باضافة صنف لم اقم باضافته فى هذه السنة المالية المشكلة فى الـ cursor لم يحصل على بيانات تقديم بلاغ
بتاريخ: 12 نوفمبر 201411 سنة comment_256581 كده مش هنعرف نتست حاجة لان مفيش جداول ومفيش داتا . انت جربت السيليكت بتاعت الكرسور لوحدها ؟ بتجيب داتا ؟ الجزء ده ملوش معني BEGIN MESSAGE ('2'); MESSAGE ('2'); EXCEPTION WHEN NO_DATA_FOUND THEN NULL; END; ايه علاقة الـ no_data_found بالـ message تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.