botton to post or cancel selected transaction
declare
v_commit number :=0;
v_show_alert varchar2(100);
v_current_record varchar2(100) ;
v_new_transaction_serial number(4);
v_allded_code number(3);
v_allded_type number(1);
v_terminal varchar2(50);
v_start_date date;
v_last_date date;
v_amount number(15,3);
v_notes varchar2(100);
v_validate number(1);
begin
first_record;
loop
if :hrs_tempallded_trans.staff_id is null or :system.record_status != 'QUERY' then
v_validate := 1;
break;
end if;
exit when :SYSTEM.LAST_RECORD = 'TRUE';
next_record;
end loop;
if v_validate = 1 then
if :parameter.p_lang_id = 2 then
show_usr_msg('Please Save All The Transactions First',1);
else
show_usr_msg('ÇáÑÌÇÁ ÍÝÙ ßá ÇáÍÑßÇÊ ÇæáÇ',1);
end if;
raise form_trigger_failure;
end if;
if :parameter.p_lang_id = 1 then
set_alert_property('commit_alr', alert_message_text, 'åá ÇäÊ ãÊÇßÏ ãä ÊÑÍíá ÇáÍÑßÉ¿');
else
set_alert_property('commit_alr', alert_message_text, 'The Transaction Will Be Poseted, Are You Sure?' );
end if;
v_show_alert := show_alert('commit_alr');
if v_show_alert = alert_button2 then
return;
end if;
v_current_record := :system.cursor_record;
go_block('hrs_tempallded_trans');
first_record;
loop
if :hrs_tempallded_trans.is_selected = 1 and :hrs_tempallded_trans.is_posted != 1 then
select allded_code , allded_type, to_date(month||'/1/'||year,'mm/dd/yyyy')start_date, last_day(to_date(month||'/1/'||year,'mm/dd/yyyy')) last_date, AMOUNT
into v_allded_code , v_allded_type, v_start_date, v_last_date , v_amount
from hrs_temp_allded a ,hrs_tempallded_trans b
where a.temp_allded_code= b.temp_allded_code
and staff_id = :hrs_tempallded_trans.staff_id
and month = :hrs_tempallded_trans.month
and year = :hrs_tempallded_trans.year;
begin
select nvl(max(transaction_serial),0)+1 new_transaction_serial
into v_new_transaction_serial
from hrs_allded_transactions
where staff_id = :hrs_tempallded_trans.staff_id;
exception when no_data_found then
v_new_transaction_serial := 1;
end;
v_terminal := :hrs_tempallded_trans.terminal;
if :toolbar_block.primary_lang_id = 1 then
v_notes := 'åí ÍÑßÉ ÈÏá ÂáíÉ äÇÊÌÉ Úä ÊÑÍíá ÈÏá ãÄÞÊ : '|| v_new_transaction_serial;
else
v_notes := 'Auto Allowance Depend On Posted Temporary Allowance : '|| v_new_transaction_serial;
end if;
:hrs_tempallded_trans.is_posted :=1;
INSERT INTO hrs_allded_transactions
(staff_id, transaction_serial, transaction_date,
allded_code, allded_type, new_frequency_type, end_date,
new_amount, active_start_date, letter_no, notes, user_id,
pc_name, new_allded_frequency, is_active, is_auto
)
VALUES (:hrs_tempallded_trans.staff_id, v_new_transaction_serial, SYSDATE,
v_allded_code, v_allded_type, 1, v_last_date,
v_amount, v_start_date, NULL, v_notes, :parameter.p_user_id,
v_terminal, 1, 1, 1
);
:hrs_tempallded_trans.allded_serial := v_new_transaction_serial;
:system.message_level:= 5;
commit;
v_commit := v_commit + 1;
:system.message_level:= 1;
end if;
exit when :SYSTEM.LAST_RECORD = 'TRUE';
if :hrs_tempallded_trans.is_posted = 1 then
set_item_property('hrs_tempallded_trans.staff_id',update_allowed, property_false); --to handle is_selected when the record posted
set_item_property('hrs_tempallded_trans.amount',update_allowed, property_false);
set_block_property('hrs_tempallded_trans',delete_allowed, property_false);
else
set_item_property('hrs_tempallded_trans.staff_id',update_allowed, property_true); --to handle is_selected when the record posted
set_item_property('hrs_tempallded_trans.amount',update_allowed, property_true);
set_block_property('hrs_tempallded_trans',delete_allowed, property_true);
end if;
next_record;
end loop;
go_record(v_current_record);
if v_commit > 0 then
if :parameter.p_lang_id = 2 then
show_usr_msg('The Transaction Has Been Posted Successfully',3);
else
show_usr_msg('Êã ÊÑÍíá ÇáÍÑßÉ ÈäÌÇÍ',3);
end if;
else
if :parameter.p_lang_id = 2 then
show_usr_msg('Please Select Valid Transaction ',3);
else
show_usr_msg('ÇáÑÌÇÁ ÇÎÊíÇÑ ÚÍÑßÉ ÛíÑ ãÑÍáÉ',3);
end if;
end if;
end;
declare
v_commit number :=0;
v_show_alert varchar2(100);
v_current_record varchar2(100);
begin
if :parameter.p_lang_id = 1 then
set_alert_property('commit_alr', alert_message_text, 'åá ÇäÊ ãÊÇßÏ ãä ÇáÛÇÁ ÇáÊÑÍíá¿');
else
set_alert_property('commit_alr', alert_message_text, 'The Transaction Will Be Cancelled , Are You Sure?' );
end if;
v_show_alert := show_alert('commit_alr');
if v_show_alert = alert_button2 then
return;
end if;
v_current_record := :system.cursor_record;
go_block('hrs_tempallded_trans');
first_record;
loop
if :hrs_tempallded_trans.is_selected = 1 and :hrs_tempallded_trans.is_posted = 1 then
:hrs_tempallded_trans.is_posted :=0;
delete from hrs_allded_transactions
where staff_id = :hrs_tempallded_trans.staff_id
and transaction_serial = :hrs_tempallded_trans.allded_serial;
:hrs_tempallded_trans.allded_serial := null;
:system.message_level:= 5;
commit;
v_commit := v_commit + 1;
:system.message_level:= 1;
end if;
exit when :system.last_record = 'TRUE';
if :hrs_tempallded_trans.is_posted = 1 then
set_item_property('hrs_tempallded_trans.staff_id',update_allowed, property_false); --to handle is_selected when the record posted
set_item_property('hrs_tempallded_trans.amount',update_allowed, property_false);
set_block_property('hrs_tempallded_trans',delete_allowed, property_false);
else
set_item_property('hrs_tempallded_trans.staff_id',update_allowed, property_true); --to handle is_selected when the record posted
set_item_property('hrs_tempallded_trans.amount',update_allowed, property_true);
set_block_property('hrs_tempallded_trans',delete_allowed, property_true);
end if;
next_record;
end loop;
go_record(v_current_record);
if v_commit > 0 then
if :parameter.p_lang_id = 2 then
show_usr_msg('The Transaction Has Been Cancelled Successfully',3);
else
show_usr_msg('Êã ÅáÛÇÁ ÇáÍÑßÉ ÈäÌÇÍ',3);
end if;
else
if :parameter.p_lang_id = 2 then
show_usr_msg('Please Select Valid Transaction ',3);
else
show_usr_msg('ÇáÑÌÇÁ ÇÎÊíÇÑ ÍÑßÉ ãÑÍáÉ',3);
end if;
end if;
end;