Busco um desenvolvedor PHP com experiência em Laravel para auxiliar na transcrição e refatoração de funcionalidades existentes de um projeto PHP/MySQL para uma nova arquitetura em Laravel com PostgreSQL. O objetivo principal é converter um conjunto de instruções SQL que utilizam tabelas temporárias, para um formato orientado a objetos e independente de banco de dados dentro do framework Laravel. Os trechos de SQL fornecido é um exemplo de funcionalidade envolvida. É Crucial que o profissional tenha a capacidade de entender a lógica de negócios por trás das queries e implementá-la de forma otimizada e escalável no novo ambiente. A entrega deste projeto é urgente, com necessidade de finalização até amanhã.
create temporary table tbl_user_movement_to_import_temp
select
i.Iduser_import_movement,
i.userid, i.complete_name, ub.idbenefit, b.idbenefit_operator, b.idbenefit_type
,case when(i.Idbenefit = b.idbenefit)
then if(
i.error = '', '410', Concat(
i.error,'|410'))
else if(
i.error = '', '412', Concat(
i.error,'|412'))
end as error
from
tbl_user_movement_to_import i
inner join tbl_user_benefit ub on
i.userid =
ub.userid And ub.deleted = 0 #para pegar todos os benefícios ativos do usuário
inner join tbl_benefit b on b.idbenefit_operator = i.idbenefit_operator AND b.idbenefit_type = i.idbenefit_type AND ub.idbenefit = b.idbenefit
WHERE
i.idimport = '$id_to_import' AND
i.event = 1 AND (
i.error = '' Or
i.error = '301');
drop temporary table if exists tbl_user_movement_to_import_temp;
create temporary table if not exists tbl_user_movement_to_import_temp
(
iduser_import_movement int
,userid int
,complete_name varchar(255)
,idcompany_user int
,idjobtitle_user int
,idoffice_user int
,salary_amount decimal(13,2)
,idbenefit_import int
,idbenefit_user_eligibility int
,idcompany_eligibility varchar(255)
,idjobtitle_eligibility varchar(255)
,salary_min decimal(10,2)
,salary_max decimal(10,2)
,idoffice_eligibility varchar(255)
,idbenefit_eligibility int
,company_eligibility tinyint(1)
,jobtitle_eligibility tinyint(1)
,office_eligibility tinyint(1)
,salary_eligibility tinyint(1)
,benefit_eligibility tinyint(1)
,error varchar(255)
);
insert into tbl_user_movement_to_import_temp
select
i.iduser_import_movement
,
u.userid
,u.complete_name
,u.idcompany AS idcompany_user
,u.idjobtitle As idjobtitle_user
,u.idoffice as idoffice_user
,case when u.Salary_amount is null then 0 else u.salary_amount END salary_amount
,i.idbenefit AS idbenefit_import
,be.idbenefit AS idbenefit_user_eligibility
,be.idcompany AS idcompany_eligibility
,be.idjobtitle AS idjobtitle_eligibility
,be.salary_min
,be.salary_max
,be.idoffice As idoffice_eligibility
,be.idbenefit_eligibility
,case when be.Idcompany is null or be.idcompany = '' Or be.idcompany = '0' or locate(u.Idcompany, be.idcompany) != 0 then 1 else 0 end company_eligibility
,case when be.Idjobtitle is null or be.idjobtitle = '' Or be.idjobtitle = '0' or locate(u.Idjobtitle, be.idjobtitle) != 0 then 1 else 0 end jobtitle_eligibility
,case when be.Idoffice is null or be.idoffice = '' Or be.idoffice = '0' or locate(u.Idoffice, be.idoffice) != 0 then 1 else 0 end office_eligibility
,case
when (if(be.Salary_min is null, 0, be.Salary_min)) = 0 and (if(be.Salary_max is null, 0, be.Salary_max)) = 0
then 1
when (if(be.Salary_max is null, 0, be.Salary_max)) = 0 and (if(be.Salary_min is null, 0, be.Salary_min)) > 0 and ( if(u.Salary_amount is null, 0, u.Salary_amount) >= be.salary_min )
then 1
when (if(be.Salary_min is null, 0, be.Salary_min)) = 0 and (if(be.Salary_max is null, 0, be.Salary_max)) > 0 and ( if(u.Salary_amount is null, 0, u.Salary_amount) <= be.salary_max )
then 1
when be.salary_min > 0 And be.salary_max > 0 and ( if(u.Salary_amount is null, 0, u.salary_amount) ) BETWEEN be.salary_min And be.salary_max
then 1
else 0
end as salary_eligibility
,case when i.Idbenefit is not null and i.Idbenefit = be.idbenefit then 1 else 0 end benefit_eligibility
,'' as error
from
tbl_user_movement_to_import i
inner join tbl_user u on
i.Userid =
u.userid
left join tbl_user_benefit b on
u.userid =
b.userid AND i.idbenefit = b.idbenefit And b.deleted = 0
left join tbl_benefit_eligibility be on be.idorganization = $idorganization AND
be.active = 1 AND be.deleted = 0
WHERE
i.idimport = '$id_to_import' AND
i.event = 1 AND (
i.error = '' OR
i.error = '301')
Prazo de Entrega: Não estabelecido