Realizado

Desenvolvimento Laravel: Transcrição de Funcionalidades Php/Mysql para Laravel

Publicado em 16 de Julho de 2025 dias na TI e Programação

Sobre este projeto

Aberto

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')

Categoria TI e Programação
Subcategoria Programação
Qual é o alcance do projeto? Alteração média

Prazo de Entrega: Não estabelecido

Habilidades necessárias

Outro projetos publicados por Roberto G.