truncate table dbt_list_type1;

drop procedure if exists lt1_stock_io_sum_bal;
DELIMITER //
create procedure lt1_stock_io_sum_bal( _listToken varchar(21), _sdate varchar(8), _edate varchar(8), 
_s1 varchar(32), _e1 varchar(32), _s2 varchar(32), _e2 varchar(32), 
_s3 varchar(32), _e3 varchar(32), _s4 varchar(32), _e4 varchar(32), 
_having varchar(386), _orderby varchar(64), 
_branch int, _storage int, _member_company_id int, _lt_filter int)

SQL SECURITY INVOKER
BEGIN

Declare _sbal_date varchar(8);
Declare _ebal_date varchar(8);

Declare _sbet1 varchar(64);
Declare _ebet1 varchar(64);
Declare _sbet2 varchar(64);
Declare _ebet2 varchar(64);
Declare _sbet3 varchar(64);
Declare _ebet3 varchar(64);


if _is_first_date(_sdate) then
	set _sbal_date = '19000101';
	set _ebal_date = '19000101';
else
	set _sbal_date = _sdate;
	set _ebal_date = _edate;
end if;

if _s1 != '' and _e1 != '' then
	set _sbet1 = _s1;
	set _ebet1 = _e1;
else
	set _sbet1 = '!';
	set _ebet1 = '힣';
end if;

if _s2 != '' and _e2 != '' then
	set _sbet2 = _s2;
	set _ebet2 = _e2;
else
	set _sbet2 = '!';
	set _ebet2 = '힣';
end if;


if _s3 != '' and _e3 != '' then
	set _sbet3 = _s3;
	set _ebet3 = _e3;
else
	set _sbet3 = '!';
	set _ebet3 = '힣';
end if;

insert into dbt_list_type1
	( created_on, list_token, h_id, id, c1, c2, c3,
		d1, d2, d3, d4, d5,
        d6, c4, c5, order_by )
select unix_timestamp(), _listToken, item_id, item_id, item_code, item_name, sub_name,
    begin_bal_qty, in_sum_qty, out_sum_qty, end_bal_qty, (bad_end_bal_qty - bad_begin_bal_qty),
    bad_end_bal_qty, igroup_name, igroup_code, item_code
from dbr_bal_item as mx
    inner join dbr_item as itm on itm.id = mx.item_id
    inner join dbr_igroup as igr  on igr.id = itm.igroup_id
where yyyy_mm = _curr_month(_sdate) and storage_id = _storage
	and igroup_code between _sbet1 and _ebet1
order by item_code asc;

END;
//
DELIMITER ;