abdeen-ahmad
3/9/2016 - 10:30 AM

botton to post or cancel selected transaction

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;