FHM09062601IBL - fix fn_numbering_klinik reference one.m_branch to one_lab.m_branch

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
sas.fajri
2026-06-15 16:06:38 +07:00
parent 0cf019ddf7
commit b7c752df84

View File

@@ -0,0 +1,92 @@
-- Fix fn_numbering_klinik: change one.m_branch reference to one_lab.m_branch
-- Caused "Table 'one.m_branch' doesn't exist" error on INSERT into one_klinik.order
DROP FUNCTION IF EXISTS `fn_numbering_klinik`;
DELIMITER $$
CREATE DEFINER=`root`@`localhost` FUNCTION `fn_numbering_klinik`(`type` char(30)) RETURNS varchar(25) CHARSET utf8mb4 COLLATE utf8mb4_general_ci
READS SQL DATA
begin declare number varchar(50);
declare prefix varchar(50);
declare prefix_date varchar(50);
declare sufix varchar(50);
declare counter int;
declare dgt int;
declare rst varchar(5);
declare udt datetime;
select S_NumberingPrefix, S_NumberingPrefixDate, S_NumberingSufix, S_NumberingCounter, S_NumberingDigit, S_NumberingReset,
S_NumberingLastUpdated
into prefix, prefix_date, sufix, counter, dgt, rst, udt
from s_numbering where S_NumberingType = type for update;
if rst = 'D' then
if date_format(udt, '%Y-%m-%d') <> date_format(now(), '%Y-%m-%d') then
set counter = 1;
end if;
elseif rst = 'M' then
if date_format(udt, '%Y-%m') <> date_format(now(), '%Y-%m') then
set counter = 1;
end if;
elseif rst = 'Y' then
if date_format(udt, '%Y') <> date_format(now(), '%Y') then
set counter = 1;
end if;
end if;
set number = '';
if prefix is not null and prefix <> '' then
set number = trim(prefix);
end if;
if prefix_date is not null and prefix_date <> '' then
set number = concat(trim(number),date_format(now(),prefix_date));
if type = 'P' then
set number = concat( prefix,fn_numbering_year(now()));
end if;
if type = 'L' then
set number = fn_get_prefix_nolab( now() );
end if;
/*if type = 'PAY' then
set number = concat( trim(prefix),fn_numbering_year(now()), fn_numbering_month(now()) );
end if;*/
end if;
if rst = 'X' then
set number = counter;
else
if type='PAY' then
/*set @s_counter = lpad(counter,dgt,'0');
set @xternal = (
select numberMapTarget
from number_map
where
numberMapOrigin = @s_counter
limit 0,1
);
set number = concat(trim(number), trim(@xternal) );*/
set number = concat(trim(number), lpad(counter,dgt,'0'));
else
set number = concat(trim(number), lpad(counter,dgt,'0'));
end if;
end if;
if sufix is not null and sufix <> '' then
set number = concat(trim(number),trim(sufix));
end if;
if type = 'K' then
set @branch_code = (select M_BranchCode from one_lab.m_branch where M_BranchIsActive = 'Y'
and M_BranchIsDefault = 'Y' limit 0,1 );
set number = concat(number,@branch_code);
end if;
update s_numbering set S_NumberingCounter = counter + 1, S_NumberingLastUpdated = NOW() where S_NumberingType=type;
return trim(number);
END$$
DELIMITER ;