1172 lines
50 KiB
SQL
Executable File
1172 lines
50 KiB
SQL
Executable File
# ************************************************************
|
|
# Antares - SQL Client
|
|
# Version 0.7.27
|
|
#
|
|
# https://antares-sql.app/
|
|
# https://github.com/antares-sql/antares
|
|
#
|
|
# Host: undefined (MySQL Community Server 5.7.44)
|
|
# Database: ria_prod
|
|
# Generation time: 2024-07-25T13:09:07+05:30
|
|
# ************************************************************
|
|
|
|
|
|
|
|
# Dump of routines
|
|
# ------------------------------------------------------------
|
|
|
|
/*!50003 DROP PROCEDURE IF EXISTS GetAllProducts*/;;
|
|
/*!50003 SET @OLD_SQL_MODE=@@SQL_MODE*/;;
|
|
/*!50003 SET SQL_MODE="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"*/;;
|
|
DELIMITER ;;
|
|
/*!50003 CREATE*/ /*!50020 DEFINER=`dbroot`@`%`*/ /*!50003 PROCEDURE `GetAllProducts`()
|
|
NO SQL
|
|
BEGIN
|
|
SELECT * FROM t_costcenter_master;
|
|
END*/;;
|
|
DELIMITER ;
|
|
/*!50003 SET SQL_MODE=@OLD_SQL_MODE*/;
|
|
/*!50003 DROP PROCEDURE IF EXISTS P_FINAL_PAYROLL_DATA*/;;
|
|
/*!50003 SET @OLD_SQL_MODE=@@SQL_MODE*/;;
|
|
/*!50003 SET SQL_MODE="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"*/;;
|
|
DELIMITER ;;
|
|
/*!50003 CREATE*/ /*!50020 DEFINER=`dbroot`@`%`*/ /*!50003 PROCEDURE `P_FINAL_PAYROLL_DATA`(IN `P_PayOn` VARCHAR(7), IN `EmployeeID` VARCHAR(20))
|
|
NO SQL
|
|
BEGIN
|
|
|
|
DECLARE LOCAL_NoofDaysWorked DECIMAL(4,2) DEFAULT 0;
|
|
DECLARE LOCAL_LOP DECIMAL(4,2) DEFAULT 0;
|
|
DECLARE LOCAL_Paid DECIMAL(4,2) DEFAULT 0;
|
|
|
|
DECLARE LOCAL_ActualSalary DECIMAL(19,2) DEFAULT 0;
|
|
DECLARE LOCAL_PerDaySalary DECIMAL(19,2) DEFAULT 0;
|
|
DECLARE LOCAL_WorkedSalary DECIMAL(19,2) DEFAULT 0;
|
|
DECLARE LOCAL_BasicPlusDA DECIMAL(19,2) DEFAULT 0;
|
|
DECLARE LOCAL_HRA DECIMAL(19,2) DEFAULT 0;
|
|
DECLARE LOCAL_HRA_AMOUNT DECIMAL(19,2) DEFAULT 0;
|
|
DECLARE LOCAL_HRA_ORIGINAL DECIMAL(19,2) DEFAULT 0;
|
|
DECLARE LOCAL_Perday_HRA DECIMAL(19,2) DEFAULT 0;
|
|
DECLARE LOCAL_PerHr_Salary DECIMAL(19,2) DEFAULT 0;
|
|
DECLARE LOCAL_OTWages decimal(19,2) DEFAULT 0;
|
|
DECLARE LOCAL_OTperHours INT(11) DEFAULT 0;
|
|
DECLARE LOCAL_OTSalary decimal(19,2) DEFAULT 0;
|
|
DECLARE LOCAL_ESIGrossSalary decimal(19,2) DEFAULT 0;
|
|
DECLARE LOCAL_EmployeeESI decimal(19,2) DEFAULT 0;
|
|
DECLARE LOCAL_PF decimal(19,2) DEFAULT 0;
|
|
DECLARE LOCAL_TotalDeduction decimal(19,2) DEFAULT 0;
|
|
DECLARE LOCAL_SalaryAsPerPF decimal(19,2) DEFAULT 0;
|
|
DECLARE LOCAL_FoodAllowance decimal(19,2) DEFAULT 0;
|
|
DECLARE LOCAL_Incentive decimal(19,2) DEFAULT 0;
|
|
DECLARE LOCAL_FestivalBonus decimal(19,2) DEFAULT 0;
|
|
DECLARE LOCAL_TotalSalary decimal(19,2) DEFAULT 0;
|
|
|
|
DECLARE LOCAL_Manual_due VARCHAR(10) DEFAULT 0;
|
|
DECLARE LOCAL_BalancedAdvance decimal(19,2) DEFAULT 0;
|
|
DECLARE LOCAL_lessAdvance decimal(19,2) DEFAULT 0;
|
|
DECLARE LOCAL_BankAccountNumber VARCHAR(50) DEFAULT 'NULL';
|
|
DECLARE LOCAL_PFNumber VARCHAR(50) DEFAULT 'NULL';
|
|
DECLARE LOCAL_ESINumber VARCHAR(50) DEFAULT 'NULL';
|
|
DECLARE LOCAL_UANNO VARCHAR(50) DEFAULT 'NULL';
|
|
|
|
DECLARE LOCAL_MONTH VARCHAR(8) DEFAULT 'NULL';
|
|
DECLARE LOCAL_sundays INT(2) DEFAULT 0;
|
|
DECLARE LOCAL_MONTH_DAYS INT(3) DEFAULT 0;
|
|
DECLARE LOCAL_OTHER_DEDUCTIONS VARCHAR(6) DEFAULT 0;
|
|
DECLARE LOCAL_LOAN_BALANCE VARCHAR(6) DEFAULT 0;
|
|
DECLARE LOCAL_ALLOWANCES VARCHAR(6)DEFAULT 0;
|
|
DECLARE LOCAL_HRA_WORKED DECIMAL(19,2) DEFAULT 0;
|
|
DECLARE LOCAL_HRA_OT DECIMAL(19,2) DEFAULT 0;
|
|
DECLARE LOCAL_PayOn VARCHAR(8) DEFAULT 0;
|
|
DECLARE LOCAL_EmpID VARCHAR(20) DEFAULT 0;
|
|
DECLARE DCOUNT INT DEFAULT 0;
|
|
DECLARE ACOUNT INT DEFAULT 0;
|
|
DECLARE LOCAL_Advance VARCHAR(10) DEFAULT 0;
|
|
DECLARE LOCAL_CompanyPF DECIMAL(19,2) DEFAULT 0;
|
|
DECLARE LOCAL_CompanyESI DECIMAL(19,2) DEFAULT 0;
|
|
DECLARE LOCAL_TotalCompCon DECIMAL(19,2) DEFAULT 0;
|
|
|
|
DECLARE LOCAL_Loan_ID INT(11) DEFAULT 0;
|
|
DECLARE LOCAL_Loan_Amount DECIMAL(19,2) DEFAULT 0;
|
|
DECLARE LOCAL_is_Active INT(2) DEFAULT 0;
|
|
DECLARE LOCAL_Initial_Loan_Amount DECIMAL(19,2) DEFAULT 0;
|
|
DECLARE LOCAL_Monthly_due DECIMAL(19,2) DEFAULT 0;
|
|
DECLARE LOCAL_Due_start_date1 VARCHAR(20) DEFAULT '';
|
|
DECLARE LOCAL_Due_start_date VARCHAR(20) DEFAULT '';
|
|
DECLARE LOCAL_Loan_issued_on VARCHAR(20) DEFAULT '';
|
|
DECLARE LOCAL_No_of_dues INT(5) DEFAULT 0;
|
|
DECLARE LOCAL_Remaing_Due INT(5) DEFAULT 0;
|
|
DECLARE LOCAL_Paid_Due INT(5) DEFAULT 0;
|
|
DECLARE LOCAL_Paid_Amount DECIMAL(19,2) DEFAULT 0;
|
|
DECLARE LOCAL_LAST_INSERTED_DUE DECIMAL(19,2) DEFAULT 0;
|
|
DECLARE CHECKNUM INT DEFAULT 1;
|
|
|
|
|
|
SELECT Days_worked,LOP_Days,Paid_leave INTO LOCAL_NoofDaysWorked,LOCAL_LOP,LOCAL_Paid FROM t_monthly_pay_inputs WHERE Month_Year=P_PayOn AND EmpID=EmployeeID;
|
|
|
|
SET LOCAL_MONTH=P_PayOn;
|
|
|
|
SET LOCAL_MONTH=SUBSTR(LOCAL_MONTH,1,2);
|
|
|
|
|
|
set @y=SUBSTR(P_PayOn,4);
|
|
set @m=LOCAL_MONTH;
|
|
|
|
set @thismonth = concat(@y,'-',@m,'-','01');
|
|
|
|
select substr(last_day(@thismonth),9) INTO LOCAL_MONTH_DAYS;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
set @y=SUBSTR(P_PayOn,4);
|
|
set @m=LOCAL_MONTH;
|
|
set @thismonth = concat(@y,'-',@m,'-','01');
|
|
SET @GivenDate = DATE(@thismonth);
|
|
SELECT COUNT(1) WeekendDays INTO LOCAL_sundays FROM
|
|
(SELECT dt FROM (SELECT DISTINCT (MAKEDATE(YEAR(@GivenDate),1) +
|
|
INTERVAL (MONTH(@GivenDate)-1) MONTH + INTERVAL (x*y+z-1) DAY) dt FROM
|
|
(SELECT 1 x UNION SELECT 2 UNION SELECT 3
|
|
UNION SELECT 4 UNION SELECT 5 UNION SELECT 6
|
|
UNION SELECT 7 UNION SELECT 8) A,
|
|
(SELECT 1 y UNION SELECT 2 UNION SELECT 3 UNION SELECT 4) B,
|
|
(SELECT 0 z UNION SELECT 1 UNION SELECT 2 UNION SELECT 3) C) AA
|
|
WHERE MONTH(@GivenDate) = MONTH(dt)) cal
|
|
WHERE DAYOFWEEK(dt) IN (1);
|
|
|
|
|
|
|
|
|
|
SELECT
|
|
Basic_Pay, HRA_Rate,HRA_Amount
|
|
INTO LOCAL_BasicPlusDA , LOCAL_HRA,LOCAL_HRA_AMOUNT FROM
|
|
t_emp_pay_data
|
|
WHERE
|
|
EmpID = EmployeeID;
|
|
|
|
SET LOCAL_ActualSalary = LOCAL_BasicPlusDA + LOCAL_HRA_AMOUNT;
|
|
|
|
|
|
|
|
SET LOCAL_PerDaySalary = LOCAL_BasicPlusDA / LOCAL_MONTH_DAYS;
|
|
SET LOCAL_PerHr_Salary = LOCAL_PerDaySalary/8;
|
|
SET LOCAL_Perday_HRA= LOCAL_HRA_AMOUNT / LOCAL_MONTH_DAYS;
|
|
|
|
SET LOCAL_WorkedSalary = (LOCAL_NoofDaysWorked + LOCAL_Paid )* LOCAL_PerDaySalary;
|
|
|
|
SET LOCAL_HRA_ORIGINAL =0;
|
|
SELECT
|
|
HRA_Rate
|
|
INTO LOCAL_HRA_ORIGINAL FROM
|
|
t_emp_pay_data
|
|
WHERE
|
|
EmpID = EmployeeID;
|
|
|
|
SET LOCAL_HRA_WORKED= LOCAL_Perday_HRA * (LOCAL_NoofDaysWorked + LOCAL_Paid);
|
|
|
|
|
|
SELECT
|
|
OT_Hrs_Worked
|
|
INTO LOCAL_OTperHours FROM
|
|
t_monthly_pay_inputs
|
|
WHERE
|
|
Month_Year = P_PayOn
|
|
AND EmpID = EmployeeID;
|
|
|
|
|
|
|
|
SET LOCAL_OTSalary = ((LOCAL_ActualSalary/LOCAL_MONTH_DAYS)/8) * LOCAL_OTperHours;
|
|
|
|
|
|
|
|
SET LOCAL_ESIGrossSalary = LOCAL_WorkedSalary + LOCAL_HRA_WORKED + LOCAL_OTSalary;
|
|
|
|
|
|
SELECT
|
|
PF_Rate
|
|
INTO LOCAL_PF FROM
|
|
t_emp_pay_data
|
|
WHERE
|
|
EmpID = EmployeeID;
|
|
SET LOCAL_PF= LOCAL_WorkedSalary * (LOCAL_PF / 100);
|
|
SET LOCAL_CompanyPF = LOCAL_WorkedSalary * (13.15/100);
|
|
SELECT
|
|
ESI_Rate
|
|
INTO LOCAL_EmployeeESI FROM
|
|
t_emp_pay_data
|
|
WHERE
|
|
EmpID = EmployeeID;
|
|
|
|
IF (LOCAL_ActualSalary < 21000.00) THEN
|
|
SET LOCAL_EmployeeESI = (LOCAL_ESIGrossSalary) * (LOCAL_EmployeeESI / 100);
|
|
SET LOCAL_CompanyESI = (LOCAL_ESIGrossSalary) * (4.75 / 100);
|
|
ELSE
|
|
SET LOCAL_EmployeeESI = 0.00;
|
|
SET LOCAL_CompanyESI = 0.00;
|
|
END IF;
|
|
SET LOCAL_TotalCompCon = LOCAL_CompanyPF + LOCAL_CompanyESI;
|
|
SELECT
|
|
Other_Deductions
|
|
INTO LOCAL_OTHER_DEDUCTIONS FROM
|
|
t_monthly_pay_inputs
|
|
WHERE
|
|
Month_Year = P_PayOn
|
|
AND EmpID = EmployeeID;
|
|
SET LOCAL_TotalDeduction = LOCAL_PF + LOCAL_EmployeeESI+LOCAL_OTHER_DEDUCTIONS;
|
|
SET LOCAL_TotalDeduction=ROUND(LOCAL_TotalDeduction);
|
|
|
|
|
|
SET LOCAL_SalaryAsPerPF = LOCAL_ESIGrossSalary - LOCAL_TotalDeduction;
|
|
|
|
SELECT
|
|
Allowances
|
|
INTO LOCAL_ALLOWANCES FROM
|
|
t_emp_pay_data
|
|
WHERE
|
|
EmpID = EmployeeID;
|
|
SELECT
|
|
Food_Allowances
|
|
INTO LOCAL_FoodAllowance FROM
|
|
t_emp_pay_data
|
|
WHERE
|
|
EmpID = EmployeeID;
|
|
SET LOCAL_FoodAllowance = (LOCAL_FoodAllowance * LOCAL_NoofDaysWorked );
|
|
|
|
SELECT
|
|
Incentives,Festival_Bonus
|
|
INTO LOCAL_Incentive,LOCAL_FestivalBonus FROM
|
|
t_monthly_pay_inputs
|
|
WHERE
|
|
Month_Year = P_PayOn
|
|
AND EmpID = EmployeeID;
|
|
|
|
SET LOCAL_TotalSalary = LOCAL_SalaryAsPerPF + LOCAL_Incentive + LOCAL_FoodAllowance + LOCAL_ALLOWANCES + LOCAL_FestivalBonus;
|
|
|
|
|
|
|
|
|
|
SELECT
|
|
Loan_Recovered
|
|
INTO LOCAL_Manual_due FROM
|
|
t_monthly_pay_inputs
|
|
WHERE
|
|
Month_Year = P_PayOn
|
|
AND EmpID = EmployeeID;
|
|
|
|
|
|
|
|
|
|
|
|
SELECT Loan_ID,Loan_Amount,Loan_Issued_Date,Monthly_Due,Due_Start_Date,No_of_Dues,Remaining_Due,Paid_Due,Paid_Amount,is_Active
|
|
INTO LOCAL_Loan_ID,LOCAL_Initial_Loan_Amount,LOCAL_Loan_issued_on,LOCAL_Monthly_due,LOCAL_Due_start_date1,LOCAL_No_of_dues,LOCAL_Remaing_Due,LOCAL_Paid_Due,LOCAL_Paid_Amount,LOCAL_is_Active FROM t_loan_master WHERE EmpID=EmployeeID AND is_Active = 1;
|
|
|
|
|
|
|
|
|
|
IF LOCAL_Initial_Loan_Amount != 0 THEN
|
|
SET LOCAL_Loan_Amount=LOCAL_Initial_Loan_Amount - LOCAL_Paid_Amount;
|
|
IF LOCAL_Loan_Amount != 0 THEN
|
|
|
|
|
|
|
|
|
|
|
|
IF LOCAL_Manual_due != 'NA' THEN
|
|
|
|
|
|
|
|
SET LOCAL_Due_start_date = concat(substr(LOCAL_Due_start_date1,6,2),'-',substr(LOCAL_Due_start_date1,1,4));
|
|
|
|
SET ACOUNT=(SELECT COUNT(*) FROM t_payroll WHERE PayOn=P_PayOn AND EmpID=EmployeeID);
|
|
IF ACOUNT =0 THEN
|
|
|
|
|
|
IF ((LOCAL_Remaing_Due != LOCAL_No_of_dues AND LOCAL_Paid_Due != 0) )THEN
|
|
|
|
IF (LOCAL_Manual_due != 0) THEN
|
|
|
|
IF (LOCAL_Manual_due <= LOCAL_Loan_Amount) THEN
|
|
|
|
SET LOCAL_TotalSalary = LOCAL_TotalSalary - LOCAL_Manual_due;
|
|
SET LOCAL_Loan_Amount = LOCAL_Loan_Amount - LOCAL_Manual_due;
|
|
SET LOCAL_Remaing_Due = LOCAL_Remaing_Due - 1;
|
|
SET LOCAL_Paid_Due = LOCAL_Paid_Due + 1;
|
|
SET LOCAL_Advance=LOCAL_Manual_due;
|
|
SET LOCAL_Paid_Amount=LOCAL_Paid_Amount + LOCAL_Advance;
|
|
|
|
ELSEIF(LOCAL_Manual_due >= LOCAL_Loan_Amount) THEN
|
|
|
|
SET LOCAL_TotalSalary = LOCAL_TotalSalary - LOCAL_Loan_Amount;
|
|
SET LOCAL_Advance=LOCAL_Loan_Amount;
|
|
SET LOCAL_Paid_Amount=LOCAL_Paid_Amount + LOCAL_Advance;
|
|
SET LOCAL_Loan_Amount = LOCAL_Loan_Amount - LOCAL_Loan_Amount;
|
|
SET LOCAL_Remaing_Due = LOCAL_Remaing_Due - 1;
|
|
SET LOCAL_Paid_Due = LOCAL_Paid_Due + 1;
|
|
|
|
|
|
END IF;
|
|
|
|
ELSE IF (LOCAL_Manual_due = 0) THEN
|
|
IF (LOCAL_Monthly_due <= LOCAL_Loan_Amount) THEN
|
|
|
|
SET LOCAL_TotalSalary = LOCAL_TotalSalary - LOCAL_Monthly_due;
|
|
SET LOCAL_Loan_Amount = LOCAL_Loan_Amount - LOCAL_Monthly_due;
|
|
SET LOCAL_Remaing_Due = LOCAL_Remaing_Due - 1;
|
|
SET LOCAL_Paid_Due = LOCAL_Paid_Due + 1;
|
|
SET LOCAL_Advance=LOCAL_Monthly_due;
|
|
SET LOCAL_Paid_Amount=LOCAL_Paid_Amount + LOCAL_Advance;
|
|
|
|
ELSEIF(LOCAL_Monthly_due >= LOCAL_Loan_Amount) THEN
|
|
|
|
SET LOCAL_TotalSalary = LOCAL_TotalSalary - LOCAL_Loan_Amount;
|
|
SET LOCAL_Advance=LOCAL_Loan_Amount;
|
|
SET LOCAL_Paid_Amount=LOCAL_Paid_Amount + LOCAL_Advance;
|
|
|
|
|
|
SET LOCAL_Loan_Amount = LOCAL_Loan_Amount - LOCAL_Loan_Amount;
|
|
|
|
SET LOCAL_Remaing_Due = LOCAL_Remaing_Due - 1;
|
|
SET LOCAL_Paid_Due = LOCAL_Paid_Due + 1;
|
|
|
|
|
|
END IF;
|
|
END IF;
|
|
END IF;
|
|
|
|
ELSEIF((LOCAL_Remaing_Due = LOCAL_No_of_dues) AND (LOCAL_Paid_Due = 0) AND (LOCAL_Due_start_date = P_PayOn)) THEN
|
|
|
|
IF (LOCAL_Manual_due != 0) THEN
|
|
|
|
SET LOCAL_TotalSalary = LOCAL_TotalSalary - LOCAL_Manual_due;
|
|
SET LOCAL_Loan_Amount = LOCAL_Loan_Amount - LOCAL_Manual_due;
|
|
SET LOCAL_Remaing_Due = LOCAL_Remaing_Due - 1;
|
|
SET LOCAL_Paid_Due = LOCAL_Paid_Due + 1;
|
|
SET LOCAL_Advance=LOCAL_Manual_due;
|
|
SET LOCAL_Paid_Amount=LOCAL_Paid_Amount + LOCAL_Advance;
|
|
|
|
ELSE
|
|
|
|
SET LOCAL_TotalSalary = LOCAL_TotalSalary - LOCAL_Monthly_due;
|
|
SET LOCAL_Loan_Amount = LOCAL_Loan_Amount - LOCAL_Monthly_due;
|
|
SET LOCAL_Remaing_Due = LOCAL_Remaing_Due - 1;
|
|
SET LOCAL_Paid_Due = LOCAL_Paid_Due + 1;
|
|
SET LOCAL_Advance=LOCAL_Monthly_due;
|
|
SET LOCAL_Paid_Amount=LOCAL_Paid_Amount + LOCAL_Advance;
|
|
|
|
END IF;
|
|
|
|
END IF;
|
|
SET LOCAL_BalancedAdvance=LOCAL_Loan_Amount;
|
|
ELSE
|
|
|
|
SELECT Advance INTO LOCAL_LAST_INSERTED_DUE FROM t_payroll WHERE PayOn = P_PayOn AND EmpID = EmployeeID;
|
|
IF (LOCAL_LAST_INSERTED_DUE = LOCAL_Monthly_due) THEN
|
|
IF (LOCAL_Manual_due = 0) THEN
|
|
SET LOCAL_TotalSalary = LOCAL_TotalSalary - LOCAL_Monthly_due;
|
|
SET LOCAL_BalancedAdvance=LOCAL_Loan_Amount;
|
|
ELSEIF (LOCAL_Manual_due != 0) THEN
|
|
SET LOCAL_Paid_Amount=LOCAL_Paid_Amount - LOCAL_LAST_INSERTED_DUE;
|
|
SET LOCAL_Loan_Amount=LOCAL_Loan_Amount + LOCAL_LAST_INSERTED_DUE;
|
|
IF (LOCAL_Manual_due >= LOCAL_Loan_Amount) THEN
|
|
SET LOCAL_Paid_Amount=LOCAL_Paid_Amount + LOCAL_Loan_Amount;
|
|
SET LOCAL_Loan_Amount=LOCAL_Loan_Amount - LOCAL_Loan_Amount;
|
|
SET LOCAL_TotalSalary = LOCAL_TotalSalary - LOCAL_Loan_Amount;
|
|
|
|
|
|
SET LOCAL_BalancedAdvance=LOCAL_Loan_Amount;
|
|
|
|
SET LOCAL_LAST_INSERTED_DUE=LOCAL_Loan_Amount;
|
|
ELSEIF(LOCAL_Manual_due <= LOCAL_Loan_Amount) THEN
|
|
SET LOCAL_Paid_Amount=LOCAL_Paid_Amount + LOCAL_Manual_due;
|
|
SET LOCAL_Loan_Amount=LOCAL_Loan_Amount - LOCAL_Manual_due;
|
|
SET LOCAL_TotalSalary = LOCAL_TotalSalary - LOCAL_Manual_due;
|
|
SET LOCAL_BalancedAdvance=LOCAL_Loan_Amount;
|
|
SET LOCAL_LAST_INSERTED_DUE=LOCAL_Manual_due;
|
|
|
|
|
|
END IF;
|
|
END IF;
|
|
ELSEIF((LOCAL_LAST_INSERTED_DUE != LOCAL_Monthly_due) AND (LOCAL_LAST_INSERTED_DUE != 0))THEN
|
|
IF (LOCAL_Manual_due != 0) THEN
|
|
SET LOCAL_Paid_Amount=LOCAL_Paid_Amount - LOCAL_LAST_INSERTED_DUE;
|
|
SET LOCAL_Loan_Amount=LOCAL_Loan_Amount + LOCAL_LAST_INSERTED_DUE;
|
|
IF (LOCAL_Manual_due >= LOCAL_Loan_Amount)THEN
|
|
SET LOCAL_TotalSalary = LOCAL_TotalSalary - LOCAL_Loan_Amount;
|
|
SET LOCAL_Paid_Amount=LOCAL_Paid_Amount + LOCAL_Loan_Amount;
|
|
SET LOCAL_Loan_Amount=LOCAL_Loan_Amount - LOCAL_Loan_Amount;
|
|
SET LOCAL_BalancedAdvance=LOCAL_Loan_Amount;
|
|
|
|
SET LOCAL_LAST_INSERTED_DUE = LOCAL_Loan_Amount;
|
|
ELSEIF(LOCAL_Manual_due <= LOCAL_Loan_Amount)THEN
|
|
SET LOCAL_TotalSalary = LOCAL_TotalSalary - LOCAL_Manual_due;
|
|
SET LOCAL_Paid_Amount=LOCAL_Paid_Amount + LOCAL_Manual_due;
|
|
SET LOCAL_Loan_Amount=LOCAL_Loan_Amount - LOCAL_Manual_due;
|
|
SET LOCAL_BalancedAdvance=LOCAL_Manual_due;
|
|
SET LOCAL_LAST_INSERTED_DUE = LOCAL_Manual_due;
|
|
END IF;
|
|
ELSEIF(LOCAL_Manual_due = 0)THEN
|
|
SET LOCAL_Paid_Amount=LOCAL_Paid_Amount - LOCAL_LAST_INSERTED_DUE;
|
|
SET LOCAL_Loan_Amount=LOCAL_Loan_Amount + LOCAL_LAST_INSERTED_DUE;
|
|
IF (LOCAL_Monthly_due >= LOCAL_Loan_Amount)THEN
|
|
SET LOCAL_TotalSalary = LOCAL_TotalSalary - LOCAL_Loan_Amount;
|
|
SET LOCAL_Paid_Amount=LOCAL_Paid_Amount + LOCAL_Loan_Amount;
|
|
SET LOCAL_Loan_Amount=LOCAL_Loan_Amount - LOCAL_Loan_Amount;
|
|
SET LOCAL_BalancedAdvance=LOCAL_Loan_Amount;
|
|
SET LOCAL_LAST_INSERTED_DUE = LOCAL_Loan_Amount;
|
|
ELSEIF(LOCAL_Monthly_due <= LOCAL_Loan_Amount) THEN
|
|
SET LOCAL_TotalSalary = LOCAL_TotalSalary - LOCAL_Monthly_due;
|
|
SET LOCAL_Paid_Amount=LOCAL_Paid_Amount + LOCAL_Monthly_due;
|
|
SET LOCAL_Loan_Amount=LOCAL_Loan_Amount - LOCAL_Monthly_due;
|
|
SET LOCAL_BalancedAdvance=LOCAL_Loan_Amount;
|
|
SET LOCAL_LAST_INSERTED_DUE = LOCAL_Monthly_due;
|
|
END IF;
|
|
END IF;
|
|
ELSEIF((LOCAL_LAST_INSERTED_DUE != LOCAL_Monthly_due) AND (LOCAL_LAST_INSERTED_DUE = 0))THEN
|
|
IF (LOCAL_Manual_due != 0) THEN
|
|
SET LOCAL_Paid_Amount=LOCAL_Paid_Amount - LOCAL_LAST_INSERTED_DUE;
|
|
SET LOCAL_Loan_Amount=LOCAL_Loan_Amount + LOCAL_LAST_INSERTED_DUE;
|
|
IF(LOCAL_Manual_due >= LOCAL_Loan_Amount)THEN
|
|
SET LOCAL_TotalSalary = LOCAL_TotalSalary - LOCAL_Loan_Amount;
|
|
SET LOCAL_Paid_Amount=LOCAL_Paid_Amount + LOCAL_Loan_Amount;
|
|
SET LOCAL_Loan_Amount=LOCAL_Loan_Amount - LOCAL_Loan_Amount;
|
|
SET LOCAL_BalancedAdvance=LOCAL_Loan_Amount;
|
|
SET LOCAL_LAST_INSERTED_DUE = LOCAL_Loan_Amount;
|
|
SET LOCAL_Remaing_Due = LOCAL_Remaing_Due - 1;
|
|
SET LOCAL_Paid_Due = LOCAL_Paid_Due + 1;
|
|
ELSEIF(LOCAL_Manual_due <= LOCAL_Loan_Amount)THEN
|
|
SET LOCAL_TotalSalary = LOCAL_TotalSalary - LOCAL_Manual_due;
|
|
SET LOCAL_Paid_Amount=LOCAL_Paid_Amount + LOCAL_Manual_due;
|
|
SET LOCAL_Loan_Amount=LOCAL_Loan_Amount - LOCAL_Manual_due;
|
|
SET LOCAL_BalancedAdvance=LOCAL_Manual_due;
|
|
SET LOCAL_LAST_INSERTED_DUE = LOCAL_Manual_due;
|
|
SET LOCAL_Remaing_Due = LOCAL_Remaing_Due - 1;
|
|
SET LOCAL_Paid_Due = LOCAL_Paid_Due + 1;
|
|
END IF;
|
|
ELSEIF(LOCAL_Manual_due = 0)THEN
|
|
SET LOCAL_Paid_Amount=LOCAL_Paid_Amount - LOCAL_LAST_INSERTED_DUE;
|
|
SET LOCAL_Loan_Amount = LOCAL_Loan_Amount + LOCAL_LAST_INSERTED_DUE;
|
|
IF (LOCAL_No_of_dues != LOCAL_Remaing_Due) THEN
|
|
IF(LOCAL_Monthly_due >= LOCAL_Loan_Amount)THEN
|
|
SET LOCAL_TotalSalary = LOCAL_TotalSalary - LOCAL_Loan_Amount;
|
|
SET LOCAL_Paid_Amount=LOCAL_Paid_Amount + LOCAL_Loan_Amount;
|
|
SET LOCAL_Loan_Amount = LOCAL_Loan_Amount - LOCAL_Loan_Amount;
|
|
SET LOCAL_BalancedAdvance=LOCAL_Loan_Amount ;
|
|
SET LOCAL_LAST_INSERTED_DUE = LOCAL_Loan_Amount;
|
|
SET LOCAL_Remaing_Due = LOCAL_Remaing_Due - 1;
|
|
SET LOCAL_Paid_Due = LOCAL_Paid_Due + 1;
|
|
ELSEIF(LOCAL_Monthly_due <= LOCAL_Loan_Amount)THEN
|
|
SET LOCAL_TotalSalary = LOCAL_TotalSalary - LOCAL_Monthly_due;
|
|
SET LOCAL_Paid_Amount=LOCAL_Paid_Amount + LOCAL_Monthly_due;
|
|
SET LOCAL_Loan_Amount = LOCAL_Loan_Amount - LOCAL_Monthly_due;
|
|
SET LOCAL_BalancedAdvance=LOCAL_Loan_Amount ;
|
|
SET LOCAL_LAST_INSERTED_DUE = LOCAL_Monthly_due;
|
|
SET LOCAL_Remaing_Due = LOCAL_Remaing_Due - 1;
|
|
SET LOCAL_Paid_Due = LOCAL_Paid_Due + 1;
|
|
END IF;
|
|
ELSEIF(LOCAL_No_of_dues = LOCAL_Remaing_Due)THEN
|
|
SET LOCAL_TotalSalary = LOCAL_TotalSalary;
|
|
SET LOCAL_Paid_Amount=LOCAL_Paid_Amount;
|
|
SET LOCAL_Loan_Amount = LOCAL_Loan_Amount;
|
|
SET LOCAL_BalancedAdvance=LOCAL_Loan_Amount ;
|
|
SET LOCAL_LAST_INSERTED_DUE = 0.00;
|
|
SET LOCAL_Remaing_Due = LOCAL_Remaing_Due;
|
|
SET LOCAL_Paid_Due = LOCAL_Paid_Due;
|
|
END IF;
|
|
|
|
END IF;
|
|
END IF;
|
|
END IF;
|
|
ELSE
|
|
|
|
|
|
SELECT Advance INTO LOCAL_LAST_INSERTED_DUE FROM t_payroll WHERE PayOn = P_PayOn AND EmpID = EmployeeID;
|
|
IF LOCAL_LAST_INSERTED_DUE != 0 THEN
|
|
SET LOCAL_TotalSalary = LOCAL_TotalSalary ;
|
|
SET LOCAL_Loan_Amount = LOCAL_Loan_Amount + LOCAL_LAST_INSERTED_DUE;
|
|
SET LOCAL_Remaing_Due = LOCAL_Remaing_Due + 1;
|
|
SET LOCAL_Paid_Due = LOCAL_Paid_Due - 1;
|
|
SET LOCAL_Paid_Amount=LOCAL_Paid_Amount - LOCAL_LAST_INSERTED_DUE;
|
|
SET LOCAL_LAST_INSERTED_DUE =0.00;
|
|
SET LOCAL_BalancedAdvance=LOCAL_Loan_Amount;
|
|
ELSEIF (LOCAL_LAST_INSERTED_DUE = 0 OR LOCAL_LAST_INSERTED_DUE = '' ) THEN
|
|
SET LOCAL_BalancedAdvance=LOCAL_Loan_Amount;
|
|
SET LOCAL_TotalSalary = LOCAL_TotalSalary ;
|
|
SET LOCAL_Remaing_Due = LOCAL_Remaing_Due;
|
|
SET LOCAL_Paid_Due = LOCAL_Paid_Due;
|
|
SET LOCAL_Paid_Amount=LOCAL_Paid_Amount;
|
|
SET LOCAL_LAST_INSERTED_DUE =0.00;
|
|
END IF;
|
|
|
|
END IF;
|
|
ELSE
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SET LOCAL_is_Active = 0;
|
|
|
|
END IF;
|
|
END IF;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SELECT
|
|
BankAccountNo, PFNO, ESI, UANO
|
|
INTO LOCAL_BankAccountNumber , LOCAL_PFNumber , LOCAL_ESINumber , LOCAL_UANNO FROM
|
|
t_employee_details
|
|
WHERE
|
|
EmpID = EmployeeID;
|
|
|
|
SELECT
|
|
PayOn, EmpID
|
|
INTO LOCAL_PayOn , LOCAL_EmpID FROM
|
|
t_payroll
|
|
WHERE
|
|
PayOn = P_PayOn AND EmpID = EmployeeID;
|
|
|
|
SET LOCAL_lessAdvance= LOCAL_TotalSalary;
|
|
|
|
|
|
|
|
SET DCOUNT=(SELECT COUNT(*) FROM t_payroll WHERE PayOn=P_PayOn AND EmpID=EmployeeID);
|
|
IF DCOUNT >0 THEN
|
|
|
|
UPDATE t_payroll SET NoofDaysWorked=LOCAL_NoofDaysWorked,LOP=LOCAL_LOP,ActualSalary=LOCAL_ActualSalary,PerDaySalary=LOCAL_PerDaySalary,WorkedSalary=LOCAL_WorkedSalary,BasicPlusDA=LOCAL_BasicPlusDA,HRA=LOCAL_HRA_WORKED,OTWages=LOCAL_OTWages,OTperHours=LOCAL_OTperHours,OTSalary=LOCAL_OTSalary,ESIGrossSalary=LOCAL_ESIGrossSalary,EmployeeESI=LOCAL_EmployeeESI,PF=LOCAL_PF,OtherDeductions=LOCAL_OTHER_DEDUCTIONS,TotalDeduction=LOCAL_TotalDeduction,SalaryAsPerPF=LOCAL_SalaryAsPerPF,FoodAllowance=LOCAL_FoodAllowance,Incentive=LOCAL_Incentive,TotalSalary=LOCAL_TotalSalary,Advance=LOCAL_LAST_INSERTED_DUE,BalanceAdvance=LOCAL_BalancedAdvance,LessAdvance=LOCAL_lessAdvance,Other_allowances=LOCAL_ALLOWANCES,Remarks='Updated Payroll',BankAccountNumber=LOCAL_BankAccountNumber,PFNumber=LOCAL_PFNumber,ESINumber=LOCAL_ESINumber,UANNO=LOCAL_UANNO WHERE PayOn=P_PayOn AND EmpID=EmployeeID;
|
|
UPDATE t_loan_master SET Paid_Due=LOCAL_Paid_Due,Remaining_Due=LOCAL_Remaing_Due,Paid_Amount=LOCAL_Paid_Amount WHERE EmpID = EmployeeID;
|
|
|
|
ELSE
|
|
|
|
IF (LOCAL_Initial_Loan_Amount = LOCAL_Paid_Amount)THEN
|
|
SET LOCAL_is_Active = 0;
|
|
END IF;
|
|
|
|
|
|
UPDATE t_loan_master SET Loan_Amount=LOCAL_Initial_Loan_Amount,Loan_Issued_Date=LOCAL_Loan_issued_on,Paid_Due=LOCAL_Paid_Due,Remaining_Due=LOCAL_Remaing_Due,Monthly_Due=LOCAL_Monthly_due,Due_Start_Date=LOCAL_Due_start_date1,No_of_Dues=LOCAL_No_of_dues,Paid_Amount=LOCAL_Paid_Amount,is_Active=LOCAL_is_Active WHERE EmpID = EmployeeID AND Loan_ID = LOCAL_Loan_ID;
|
|
|
|
IF ((LOCAL_Loan_ID > 0) AND (LOCAL_Manual_due != 'NA'))THEN
|
|
INSERT INTO t_loan_history (Loan_ID,Due_Amount,Balance_Amount,Due_Date) VALUES(LOCAL_Loan_ID,LOCAL_Advance,LOCAL_BalancedAdvance,P_PayOn);
|
|
END IF;
|
|
|
|
|
|
INSERT INTO t_payroll(PayOn,EmpID,TotalCalDays,NoofDaysWorked,LOP,Paid_Leave,ActualSalary,PerDaySalary,WorkedSalary,BasicPlusDA,HRA,OTWages,OTperHours,OTSalary,ESIGrossSalary,EmployeeESI,PF,CompanyESI,CompanyPF,TotalCompCon,OtherDeductions,TotalDeduction,SalaryAsPerPF,FoodAllowance,Incentive,Festival_Bonus,TotalSalary,Advance,BalanceAdvance,LessAdvance,Other_allowances
|
|
,Remarks,BankAccountNumber,PFNumber,ESINumber,UANNO) VALUES (P_PayOn,EmployeeID,LOCAL_MONTH_DAYS,LOCAL_NoofDaysWorked,LOCAL_LOP,LOCAL_Paid,LOCAL_ActualSalary,LOCAL_PerDaySalary,LOCAL_WorkedSalary,LOCAL_BasicPlusDA,LOCAL_HRA_WORKED,LOCAL_OTWages,LOCAL_OTperHours,LOCAL_OTSalary,LOCAL_ESIGrossSalary,LOCAL_EmployeeESI,LOCAL_PF,LOCAL_CompanyESI,LOCAL_CompanyPF,LOCAL_TotalCompCon,LOCAL_OTHER_DEDUCTIONS,LOCAL_TotalDeduction,LOCAL_SalaryAsPerPF,LOCAL_FoodAllowance,LOCAL_Incentive,LOCAL_FestivalBonus,LOCAL_TotalSalary,LOCAL_Advance,LOCAL_BalancedAdvance,LOCAL_lessAdvance,LOCAL_ALLOWANCES,'REMARKS for PAYROLL(SP)',LOCAL_BankAccountNumber,LOCAL_PFNumber,LOCAL_ESINumber,LOCAL_UANNO);
|
|
|
|
|
|
|
|
|
|
END IF;
|
|
|
|
END*/;;
|
|
DELIMITER ;
|
|
/*!50003 SET SQL_MODE=@OLD_SQL_MODE*/;
|
|
/*!50003 DROP PROCEDURE IF EXISTS P_GET_AllPOCREATION*/;;
|
|
/*!50003 SET @OLD_SQL_MODE=@@SQL_MODE*/;;
|
|
/*!50003 SET SQL_MODE="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"*/;;
|
|
DELIMITER ;;
|
|
/*!50003 CREATE*/ /*!50020 DEFINER=`dbroot`@`%`*/ /*!50003 PROCEDURE `P_GET_AllPOCREATION`(IN `USER_ID` VARCHAR(20))
|
|
NO SQL
|
|
BEGIN
|
|
DECLARE REQ_NO VARCHAR(10);
|
|
DECLARE LOCAL_COUNT int;
|
|
DECLARE exit_loop BOOLEAN;
|
|
DECLARE Total_COUNT VARCHAR(10);
|
|
DECLARE Po_COUNT VARCHAR(10);
|
|
DECLARE Partial_COUNT VARCHAR(10);
|
|
DECLARE ReqList CURSOR FOR Select ReqNo from POCREATIONLIST;
|
|
DECLARE CONTINUE HANDLER FOR NOT FOUND SET exit_loop = TRUE;
|
|
|
|
DROP table IF EXISTS POCREATIONLIST;
|
|
CREATE TEMPORARY TABLE POCREATIONLIST (
|
|
ID INT NOT NULL auto_increment PRIMARY KEY,TotalNoofLineItems varchar(20) null,PolineItems varchar(20),
|
|
PartilallyLineItems varchar(20) null,newLineItem varchar(20) null
|
|
) ENGINE=MEMORY AS (
|
|
select Mast.ReqNo,Mast.Requestedby,Mast.ReqType,Mast.Status,Mast.CreatedDate,Line.Materialcode,St.StatusName
|
|
from t_requestion_master as Mast
|
|
join t_requestion_details Line on Line.ReqNo = Mast.ReqNo
|
|
join t_status St on St.StatusCode = Mast.Status where Requestedby in (select EmpID from tbl_users where userId=USER_ID));
|
|
|
|
OPEN ReqList;
|
|
ReqList_loop: LOOP
|
|
FETCH ReqList INTO REQ_NO;
|
|
|
|
SELECT count(*) as count INTO Total_COUNT from POCREATIONLIST WHERE ReqNo=REQ_NO ;
|
|
SELECT count(*) as count INTO Po_COUNT from POCREATIONLIST WHERE ReqNo=REQ_NO and status in ('ST022','ST049','ST050') ;
|
|
SELECT count(*) as count INTO Partial_COUNT from POCREATIONLIST WHERE ReqNo=REQ_NO and status ='ST023' ;
|
|
SELECT count(*) as count INTO LOCAL_COUNT from POCREATIONLIST WHERE ReqNo=REQ_NO and status ='ST003' ;
|
|
|
|
|
|
|
|
update POCREATIONLIST set TotalNoofLineItems=Total_COUNT ,PolineItems=Po_COUNT, PartilallyLineItems= Partial_COUNT,
|
|
newLineItem=LOCAL_COUNT where ReqNo= REQ_NO;
|
|
|
|
IF exit_loop THEN
|
|
LEAVE ReqList_loop;
|
|
END IF;
|
|
END LOOP ReqList_loop;
|
|
|
|
CLOSE ReqList;
|
|
|
|
select * from POCREATIONLIST;
|
|
|
|
END*/;;
|
|
DELIMITER ;
|
|
/*!50003 SET SQL_MODE=@OLD_SQL_MODE*/;
|
|
/*!50003 DROP PROCEDURE IF EXISTS P_GET_AllREQUISTION*/;;
|
|
/*!50003 SET @OLD_SQL_MODE=@@SQL_MODE*/;;
|
|
/*!50003 SET SQL_MODE="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"*/;;
|
|
DELIMITER ;;
|
|
/*!50003 CREATE*/ /*!50020 DEFINER=`dbroot`@`%`*/ /*!50003 PROCEDURE `P_GET_AllREQUISTION`(IN `USER_ID` VARCHAR(20))
|
|
NO SQL
|
|
BEGIN
|
|
DECLARE REQ_NO VARCHAR(10);
|
|
DECLARE LOCAL_COUNT int;
|
|
DECLARE exit_loop BOOLEAN;
|
|
DECLARE Total_COUNT VARCHAR(10);
|
|
DECLARE Po_COUNT VARCHAR(10);
|
|
DECLARE Partial_COUNT VARCHAR(10);
|
|
DECLARE ReqList CURSOR FOR Select ReqNo from POREQUISTIONLIST;
|
|
DECLARE CONTINUE HANDLER FOR NOT FOUND SET exit_loop = TRUE;
|
|
|
|
DROP table IF EXISTS POREQUISTIONLIST;
|
|
CREATE TEMPORARY TABLE POREQUISTIONLIST (
|
|
ID INT NOT NULL auto_increment PRIMARY KEY,TotalNoofLineItems varchar(20) null,PolineItems varchar(20),
|
|
PartilallyLineItems varchar(20) null,newLineItem varchar(20) null
|
|
) ENGINE=MEMORY AS (
|
|
select distinct Mast.ReqNo,Mast.Requestedby,Mast.ReqType,Mast.Status,Mast.CreatedDate,St.StatusName
|
|
from t_requestion_master as Mast
|
|
join t_requestion_details Line on Line.ReqNo = Mast.ReqNo
|
|
join t_status St on St.StatusCode = Mast.Status where Requestedby in
|
|
(select EmpID from tbl_users where userId=USER_ID));
|
|
|
|
|
|
|
|
DROP table IF EXISTS POTEMP;
|
|
CREATE TEMPORARY TABLE POTEMP (
|
|
ID INT NOT NULL auto_increment PRIMARY KEY
|
|
) ENGINE=MEMORY AS (
|
|
select Line.ReqNo,Mast.Requestedby,Mast.ReqType,Line.Status,Mast.CreatedDate,St.StatusName
|
|
from t_requestion_master as Mast
|
|
join t_requestion_details Line on Line.ReqNo = Mast.ReqNo
|
|
join t_status St on St.StatusCode = Mast.Status where Requestedby in
|
|
(select EmpID from tbl_users where userId=USER_ID));
|
|
|
|
OPEN ReqList;
|
|
ReqList_loop: LOOP
|
|
FETCH ReqList INTO REQ_NO;
|
|
|
|
SELECT count(*) as count INTO Total_COUNT from POTEMP WHERE ReqNo=REQ_NO ;
|
|
SELECT count(*) as count INTO Po_COUNT from POTEMP WHERE ReqNo=REQ_NO and status ='ST022' ;
|
|
SELECT count(*) as count INTO Partial_COUNT from POTEMP WHERE ReqNo=REQ_NO and status ='ST023' ;
|
|
SELECT count(*) as count INTO LOCAL_COUNT from POTEMP WHERE ReqNo=REQ_NO and status ='ST003' ;
|
|
|
|
|
|
|
|
update POREQUISTIONLIST set TotalNoofLineItems=Total_COUNT ,PolineItems=Po_COUNT, PartilallyLineItems= Partial_COUNT,
|
|
newLineItem=LOCAL_COUNT where ReqNo= REQ_NO;
|
|
|
|
IF exit_loop THEN
|
|
LEAVE ReqList_loop;
|
|
END IF;
|
|
END LOOP ReqList_loop;
|
|
|
|
CLOSE ReqList;
|
|
|
|
select distinct ReqNo,Requestedby,ReqType,Status,CreatedDate,StatusName,TotalNoofLineItems, PolineItems,PartilallyLineItems,newLineItem from POREQUISTIONLIST;
|
|
|
|
END*/;;
|
|
DELIMITER ;
|
|
/*!50003 SET SQL_MODE=@OLD_SQL_MODE*/;
|
|
/*!50003 DROP PROCEDURE IF EXISTS P_GET_AllSTOREREQUISTION*/;;
|
|
/*!50003 SET @OLD_SQL_MODE=@@SQL_MODE*/;;
|
|
/*!50003 SET SQL_MODE="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"*/;;
|
|
DELIMITER ;;
|
|
/*!50003 CREATE*/ /*!50020 DEFINER=`dbroot`@`%`*/ /*!50003 PROCEDURE `P_GET_AllSTOREREQUISTION`(IN `USER_ID` VARCHAR(20))
|
|
NO SQL
|
|
BEGIN
|
|
DECLARE STOREREQ_NO VARCHAR(10);
|
|
DECLARE exit_loop BOOLEAN;
|
|
DECLARE Total_COUNT int;
|
|
DECLARE Pending_COUNT int;
|
|
DECLARE Issue_COUNT int;
|
|
DECLARE ReqList CURSOR FOR Select StoreReqNo from STOREREQUISTIONLIST;
|
|
DECLARE CONTINUE HANDLER FOR NOT FOUND SET exit_loop = TRUE;
|
|
|
|
DROP table IF EXISTS STOREREQUISTIONLIST;
|
|
CREATE TEMPORARY TABLE STOREREQUISTIONLIST (
|
|
ID INT NOT NULL auto_increment PRIMARY KEY,TotalNoofLineItems varchar(20) null,PendingItems varchar(20) null, IssuesItems varchar(20) null
|
|
) ENGINE=MEMORY AS (
|
|
select distinct Str.StoreReqNo,Str.Requestedby,Str.ReqDate,Str.Status,Str.Comments as Remarks,St.StatusName from t_store_requestion_Master Str
|
|
join t_store_requestion_details De on De.StoreReqNo = Str.StoreReqNo
|
|
join t_status St on St.StatusCode = Str.Status
|
|
join tbl_users Us on Us.userId =Str.CreatedBy
|
|
where Us.userId=USER_ID);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
OPEN ReqList;
|
|
ReqList_loop: LOOP
|
|
FETCH ReqList INTO STOREREQ_NO;
|
|
|
|
SELECT count(*) as count INTO Total_COUNT from t_store_requestion_details WHERE StoreReqNo=STOREREQ_NO ;
|
|
SELECT count(*) as count INTO Pending_COUNT from t_store_requestion_details WHERE StoreReqNo=STOREREQ_NO and status ='ST034' ;
|
|
SELECT count(*) as count INTO Issue_COUNT from t_store_requestion_details WHERE StoreReqNo=STOREREQ_NO and status ='ST037' ;
|
|
|
|
|
|
update STOREREQUISTIONLIST set TotalNoofLineItems = Total_COUNT ,PendingItems=Pending_COUNT, IssuesItems =Issue_COUNT
|
|
where StoreReqNo= STOREREQ_NO;
|
|
|
|
IF exit_loop THEN
|
|
|
|
LEAVE ReqList_loop;
|
|
END IF;
|
|
END LOOP ReqList_loop;
|
|
CLOSE ReqList;
|
|
select * from STOREREQUISTIONLIST;
|
|
END*/;;
|
|
DELIMITER ;
|
|
/*!50003 SET SQL_MODE=@OLD_SQL_MODE*/;
|
|
/*!50003 DROP PROCEDURE IF EXISTS P_GET_REQUISTIONLIST*/;;
|
|
/*!50003 SET @OLD_SQL_MODE=@@SQL_MODE*/;;
|
|
/*!50003 SET SQL_MODE="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"*/;;
|
|
DELIMITER ;;
|
|
/*!50003 CREATE*/ /*!50020 DEFINER=`dbroot`@`%`*/ /*!50003 PROCEDURE `P_GET_REQUISTIONLIST`(IN `REQNO` VARCHAR(20))
|
|
NO SQL
|
|
BEGIN
|
|
|
|
|
|
DROP table IF EXISTS POREQUISTIONLIST;
|
|
DROP table IF EXISTS PARTIALPOREQUISTIONLIST;
|
|
|
|
CREATE TEMPORARY TABLE POREQUISTIONLIST (
|
|
ID INT NOT NULL auto_increment PRIMARY KEY
|
|
) ENGINE=MEMORY AS (
|
|
SELECT ReqNo, Req.MaterialCode, MaterialName,
|
|
UOM, Req.Quantity FROM t_requestion_details Req
|
|
JOIN t_materialmaster mat ON Req.MaterialCode = mat.MaterialCode
|
|
WHERE Req.ReqNo IN (REQNO)
|
|
and Req.status not in('ST022','ST023','ST049','ST050','ST053'));
|
|
|
|
|
|
CREATE TEMPORARY TABLE PARTIALPOREQUISTIONLIST (
|
|
ID INT NOT NULL auto_increment PRIMARY KEY
|
|
) ENGINE=MEMORY AS (
|
|
SELECT distinct Req.ReqNo, Req.MaterialCode, MaterialName,
|
|
UOM, (Req.Quantity - Line.Quantity) as Quantity FROM t_requestion_details Req
|
|
left JOIN t_materialmaster mat ON Req.MaterialCode = mat.MaterialCode
|
|
left join t_purchaseorder_lineItem Line on Line.ReqNo = Req.ReqNo and Line.MaterialCode = Req.MaterialCode
|
|
WHERE Req.ReqNo IN (REQNO)
|
|
|
|
and Req.status in('ST023'));
|
|
|
|
|
|
|
|
SET @strSearchSQL = 'INSERT INTO POREQUISTIONLIST(ReqNo,MaterialCode,MaterialName,UOM,Quantity) SELECT ReqNo,MaterialCode,MaterialName,UOM,Quantity from PARTIALPOREQUISTIONLIST
|
|
';
|
|
|
|
PREPARE stmt FROM @strSearchSQL;
|
|
EXECUTE stmt;
|
|
DEALLOCATE PREPARE stmt;
|
|
|
|
|
|
|
|
|
|
|
|
Select * from POREQUISTIONLIST;
|
|
END*/;;
|
|
DELIMITER ;
|
|
/*!50003 SET SQL_MODE=@OLD_SQL_MODE*/;
|
|
/*!50003 DROP PROCEDURE IF EXISTS P_GET_REQUISTITEMLIST*/;;
|
|
/*!50003 SET @OLD_SQL_MODE=@@SQL_MODE*/;;
|
|
/*!50003 SET SQL_MODE="NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER"*/;;
|
|
DELIMITER ;;
|
|
/*!50003 CREATE*/ /*!50020 DEFINER=`dbroot`@`%`*/ /*!50003 PROCEDURE `P_GET_REQUISTITEMLIST`(IN `REQ_NO1` VARCHAR(20))
|
|
NO SQL
|
|
BEGIN
|
|
DECLARE Material_Code VARCHAR(10);
|
|
DECLARE exit_loop BOOLEAN;
|
|
DECLARE PO_Quantity VARCHAR(10);
|
|
DECLARE ReqsType VARCHAR(10);
|
|
|
|
|
|
DECLARE ReqList CURSOR FOR Select mcode from EDITREQUISTLIST;
|
|
DECLARE CONTINUE HANDLER FOR NOT FOUND SET exit_loop = TRUE;
|
|
|
|
select trim(ReqType) as ReqType INTO ReqsType from t_requestion_master where ReqNo=trim(REQ_NO1);
|
|
|
|
if ReqsType = 'SERVICE' then
|
|
|
|
DROP table IF EXISTS MAINREQUISTLIST;
|
|
CREATE TEMPORARY TABLE MAINREQUISTLIST (
|
|
ID INT NOT NULL auto_increment PRIMARY KEY,
|
|
POQUANTITY varchar(20) null
|
|
|
|
|
|
) ENGINE=MEMORY AS (select distinct Req.ItemNo,Req.ReqNo, Mat.MaterialCode,Mat.MaterialName,Mat.UOM, Req.Quantity,Po.Quantity as
|
|
POQTY,sta.StatusName from t_materialmaster Mat join t_requestion_details Req on Req.MaterialCode = Mat.MaterialCode
|
|
left join t_purchaseorder_lineItem Po on Po.ReqNo = Req.ReqNo and Po.ItemNo = Req.ItemNo
|
|
left join t_status sta on sta.StatusCode = Req.Status
|
|
where Req.ReqNo = REQ_NO1);
|
|
|
|
|
|
DROP table IF EXISTS EDITREQUISTLIST;
|
|
CREATE TEMPORARY TABLE EDITREQUISTLIST (
|
|
ID INT NOT NULL auto_increment PRIMARY KEY
|
|
|
|
) ENGINE=MEMORY AS (select distinct Req.ItemNo as mcode,Req.ReqNo, Req.MaterialCode,Mat.MaterialName,Mat.UOM,Req.Quantity, Po.Quantity as POQuantity ,sta.StatusName
|
|
from t_requestion_details Req join t_materialmaster Mat on Req.MaterialCode = Mat.MaterialCode
|
|
left join t_purchaseorder_lineItem Po on Po.ReqNo = Req.ReqNo and Po.ItemNo = Req.ItemNo
|
|
left join t_purchaseorder_master POMast on POMast.PONO = Po.PONO
|
|
left join t_status sta on sta.StatusCode = Req.Status
|
|
where Req.ReqNo =REQ_NO1
|
|
and INstr(Po.PONO,'.') <= 0
|
|
group by Req.ItemNo);
|
|
|
|
|
|
OPEN ReqList;
|
|
ReqList_loop: LOOP
|
|
FETCH ReqList INTO Material_Code;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
update MAINREQUISTLIST set POQUANTITY= (SELECT ifnull(POQuantity,0) from EDITREQUISTLIST WHERE mcode= Material_Code)
|
|
where ItemNo= Material_Code;
|
|
|
|
|
|
IF exit_loop THEN
|
|
LEAVE ReqList_loop;
|
|
END IF;
|
|
END LOOP ReqList_loop;
|
|
|
|
CLOSE ReqList;
|
|
|
|
|
|
select distinct ItemNo,ReqNo, MaterialCode,MaterialName,UOM,Quantity,ifnull(POQUANTITY,0.00) as POQTY,StatusName from MAINREQUISTLIST;
|
|
|
|
else
|
|
|
|
DROP table IF EXISTS MAINREQUISTLIST;
|
|
CREATE TEMPORARY TABLE MAINREQUISTLIST (
|
|
ID INT NOT NULL auto_increment PRIMARY KEY,
|
|
POQUANTITY varchar(20) null
|
|
|
|
|
|
) ENGINE=MEMORY AS (select distinct Req.ReqNo, Mat.MaterialCode,Mat.MaterialName,Mat.UOM, Req.Quantity,Po.Quantity as POQTY,sta.StatusName from t_materialmaster Mat join t_requestion_details Req on Req.MaterialCode = Mat.MaterialCode
|
|
left join t_purchaseorder_lineItem Po on Po.ReqNo = Req.ReqNo
|
|
left join t_status sta on sta.StatusCode = Req.Status
|
|
where Req.ReqNo = REQ_NO1);
|
|
|
|
|
|
DROP table IF EXISTS EDITREQUISTLIST;
|
|
CREATE TEMPORARY TABLE EDITREQUISTLIST (
|
|
ID INT NOT NULL auto_increment PRIMARY KEY
|
|
|
|
) ENGINE=MEMORY AS (select distinct Req.ReqNo, Req.MaterialCode as mcode,Req.MaterialCode,Mat.MaterialName,Mat.UOM,Req.Quantity, sum(Po.Quantity) as POQuantity ,sta.StatusName
|
|
from t_requestion_details Req join t_materialmaster Mat on Req.MaterialCode = Mat.MaterialCode
|
|
left join t_purchaseorder_lineItem Po on Po.ReqNo = Req.ReqNo and Po.MaterialCode = Req.MaterialCode
|
|
left join t_purchaseorder_master POMast on POMast.PONO = Po.PONO
|
|
left join t_status sta on sta.StatusCode = Req.Status
|
|
where Req.ReqNo = REQ_NO1 and Req.Status in ('ST022','ST023','ST053')
|
|
and INstr(Po.PONO,'.') <= 0
|
|
group by Req.MaterialCode);
|
|
|
|
|
|
OPEN ReqList;
|
|
ReqList_loop: LOOP
|
|
FETCH ReqList INTO Material_Code;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
update MAINREQUISTLIST set POQUANTITY= (SELECT ifnull(POQuantity,0) from EDITREQUISTLIST WHERE MaterialCode= Material_Code)
|
|
where MaterialCode= Material_Code;
|
|
|
|
|
|
IF exit_loop THEN
|
|
LEAVE ReqList_loop;
|
|
END IF;
|
|
END LOOP ReqList_loop;
|
|
|
|
CLOSE ReqList;
|
|
|
|
|
|
select distinct ReqNo, MaterialCode,MaterialName,UOM,Quantity,ifnull(POQUANTITY,0.00) as POQTY,StatusName from MAINREQUISTLIST;
|
|
|
|
end if;
|
|
|
|
END*/;;
|
|
DELIMITER ;
|
|
/*!50003 SET SQL_MODE=@OLD_SQL_MODE*/;
|
|
/*!50003 DROP PROCEDURE IF EXISTS P_PURCHASEORDER_DETAILS*/;;
|
|
/*!50003 SET @OLD_SQL_MODE=@@SQL_MODE*/;;
|
|
/*!50003 SET SQL_MODE="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"*/;;
|
|
DELIMITER ;;
|
|
/*!50003 CREATE*/ /*!50020 DEFINER=`dbroot`@`%`*/ /*!50003 PROCEDURE `P_PURCHASEORDER_DETAILS`()
|
|
NO SQL
|
|
BEGIN
|
|
DECLARE REQ_NO VARCHAR(10);
|
|
DECLARE LOCAL_COUNT int;
|
|
DECLARE exit_loop BOOLEAN;
|
|
DECLARE Total_COUNT VARCHAR(10);
|
|
DECLARE Po_COUNT VARCHAR(10);
|
|
DECLARE Partial_COUNT VARCHAR(10);
|
|
DECLARE ReqList CURSOR FOR Select ReqNo from POCREATIONLIST;
|
|
DECLARE CONTINUE HANDLER FOR NOT FOUND SET exit_loop = TRUE;
|
|
|
|
DROP table IF EXISTS POCREATIONLIST;
|
|
CREATE TEMPORARY TABLE POCREATIONLIST (
|
|
ID INT NOT NULL auto_increment PRIMARY KEY,TotalNoofLineItems varchar(20) null,PolineItems varchar(20),
|
|
PartilallyLineItems varchar(20) null,newLineItem varchar(20) null
|
|
) ENGINE=MEMORY AS (
|
|
SELECT REQ.ReqNo,ReqType,Requestedby,EMP.FirstName,EMP.Designation,
|
|
STAT.StatusCode ,STAT.StatusName,ReqDate,DEPT.DEPCode,DEPT.DepartmentName
|
|
|
|
|
|
FROM t_requestion_master REQ
|
|
|
|
JOIN t_employee_details EMP ON REQ.Requestedby = EMP.EmpID
|
|
JOIN t_departmentdetails DEPT ON EMP.Departmentcode = DEPT.DEPCode
|
|
JOIN t_status STAT on REQ.Status = STAT.StatusCode
|
|
where REQ.Status IN ('ST004','ST023'));
|
|
|
|
DROP table IF EXISTS POTEMP;
|
|
CREATE TEMPORARY TABLE POTEMP (
|
|
ID INT NOT NULL auto_increment PRIMARY KEY
|
|
) ENGINE=MEMORY AS (
|
|
SELECT REQ.ReqNo,ReqType,Requestedby,EMP.FirstName,EMP.Designation,
|
|
STAT.StatusCode ,STAT.StatusName,ReqDate,DEPT.DEPCode,DEPT.DepartmentName
|
|
,ReqDetail.MaterialCode ,
|
|
ReqDetail.Status
|
|
FROM t_requestion_master REQ
|
|
join t_requestion_details ReqDetail on REQ.ReqNo = ReqDetail.ReqNo
|
|
JOIN t_employee_details EMP ON REQ.Requestedby = EMP.EmpID
|
|
JOIN t_departmentdetails DEPT ON EMP.Departmentcode = DEPT.DEPCode
|
|
JOIN t_status STAT on REQ.Status = STAT.StatusCode
|
|
where REQ.Status IN ('ST004','ST023'));
|
|
|
|
OPEN ReqList;
|
|
ReqList_loop: LOOP
|
|
FETCH ReqList INTO REQ_NO;
|
|
|
|
SELECT count(*) as count INTO Total_COUNT from POTEMP WHERE ReqNo=REQ_NO ;
|
|
SELECT count(*) as count INTO Po_COUNT from POTEMP WHERE ReqNo=REQ_NO and Status in ('ST022','ST053','ST056') ;
|
|
SELECT count(*) as count INTO Partial_COUNT from POTEMP WHERE ReqNo=REQ_NO and Status ='ST023' ;
|
|
SELECT count(*) as count INTO LOCAL_COUNT from POTEMP WHERE ReqNo=REQ_NO and Status='ST003' ;
|
|
|
|
SET SQL_SAFE_UPDATES = 0;
|
|
update POCREATIONLIST set TotalNoofLineItems=Total_COUNT ,PolineItems=Po_COUNT, PartilallyLineItems= Partial_COUNT,
|
|
newLineItem=LOCAL_COUNT where ReqNo= REQ_NO;
|
|
|
|
IF exit_loop THEN
|
|
LEAVE ReqList_loop;
|
|
END IF;
|
|
END LOOP ReqList_loop;
|
|
|
|
CLOSE ReqList;
|
|
|
|
select * from POCREATIONLIST order by ReqDate desc ;
|
|
|
|
END*/;;
|
|
DELIMITER ;
|
|
/*!50003 SET SQL_MODE=@OLD_SQL_MODE*/;
|
|
/*!50003 DROP PROCEDURE IF EXISTS P_REQUISTIONPOCOUNT*/;;
|
|
/*!50003 SET @OLD_SQL_MODE=@@SQL_MODE*/;;
|
|
/*!50003 SET SQL_MODE="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"*/;;
|
|
DELIMITER ;;
|
|
/*!50003 CREATE*/ /*!50020 DEFINER=`dbroot`@`%`*/ /*!50003 PROCEDURE `P_REQUISTIONPOCOUNT`(IN `REQNO` VARCHAR(20))
|
|
NO SQL
|
|
BEGIN
|
|
DECLARE REQ_NO VARCHAR(10);
|
|
DECLARE LOCAL_COUNT int;
|
|
DECLARE exit_loop BOOLEAN;
|
|
DECLARE Total_COUNT VARCHAR(10);
|
|
DECLARE Po_COUNT VARCHAR(10);
|
|
DECLARE Partial_COUNT VARCHAR(10);
|
|
|
|
|
|
|
|
DROP table IF EXISTS POCREATIONLIST;
|
|
CREATE TEMPORARY TABLE POCREATIONLIST (
|
|
ID INT NOT NULL auto_increment PRIMARY KEY,TotalNoofLineItems varchar(20) null,PolineItems varchar(20),
|
|
PartilallyLineItems varchar(20) null,newLineItem varchar(20) null
|
|
) ENGINE=MEMORY AS (
|
|
select ReqNo,Mat.MaterialCode,Mat.MaterialName,Mat.UOM,Quantity,st.StatusName
|
|
from t_requestion_details Req join t_materialmaster Mat on
|
|
Req.MaterialCode = Mat.MaterialCode
|
|
join t_status st on st.StatusCode = Req.Status
|
|
where ReqNo=REQNO);
|
|
|
|
|
|
|
|
select * from POCREATIONLIST;
|
|
|
|
END*/;;
|
|
DELIMITER ;
|
|
/*!50003 SET SQL_MODE=@OLD_SQL_MODE*/;
|
|
/*!50003 DROP PROCEDURE IF EXISTS P_UPDATE_REQUISTIONSTATUS*/;;
|
|
/*!50003 SET @OLD_SQL_MODE=@@SQL_MODE*/;;
|
|
/*!50003 SET SQL_MODE="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"*/;;
|
|
DELIMITER ;;
|
|
/*!50003 CREATE*/ /*!50020 DEFINER=`dbroot`@`%`*/ /*!50003 PROCEDURE `P_UPDATE_REQUISTIONSTATUS`()
|
|
NO SQL
|
|
BEGIN
|
|
DECLARE REQ_NO VARCHAR(10);
|
|
DECLARE LOCAL_COUNT int;
|
|
DECLARE Partial_COUNT int;
|
|
DECLARE exit_loop BOOLEAN;
|
|
DECLARE ReqList CURSOR FOR Select ReqNo from t_requestion_master where status != 'ST024';
|
|
DECLARE CONTINUE HANDLER FOR NOT FOUND SET exit_loop = TRUE;
|
|
|
|
|
|
|
|
|
|
|
|
OPEN ReqList;
|
|
ReqList_loop: LOOP
|
|
FETCH ReqList INTO REQ_NO;
|
|
|
|
SELECT count(*) as count INTO LOCAL_COUNT from t_requestion_details WHERE ReqNo=REQ_NO AND status !='ST022' ;
|
|
SELECT count(*) as cnt INTO Partial_COUNT from t_requestion_details WHERE ReqNo=REQ_NO AND status ='ST023' ;
|
|
if LOCAL_COUNT = 0 then
|
|
UPDATE t_requestion_master SET status='ST005' WHERE ReqNo=REQ_NO;
|
|
|
|
end if;
|
|
|
|
if Partial_COUNT > 0 then
|
|
UPDATE t_requestion_master SET status='ST023' WHERE ReqNo=REQ_NO;
|
|
end if;
|
|
|
|
IF exit_loop THEN
|
|
CLOSE ReqList;
|
|
LEAVE ReqList_loop;
|
|
END IF;
|
|
END LOOP ReqList_loop;
|
|
|
|
|
|
UPDATE t_requestion_details REQ
|
|
left JOIN t_purchaseorder_lineItem line ON REQ.ReqNo = line.ReqNo
|
|
and REQ.MaterialCode = line.MaterialCode
|
|
left JOIN t_purchaseorder_master PO ON PO.PONO = line.PONO
|
|
SET REQ.Status = (CASE WHEN REQ.Quantity = line.Quantity THEN 'ST022'
|
|
WHEN
|
|
(REQ.Quantity > line.Quantity and line.Quantity is not null) THEN 'ST023'
|
|
|
|
END) ,
|
|
REQ.updatedOn= CURRENT_TIMESTAMP
|
|
WHERE PO.Status in ('ST014','ST015') ;
|
|
|
|
|
|
|
|
END*/;;
|
|
DELIMITER ;
|
|
/*!50003 SET SQL_MODE=@OLD_SQL_MODE*/;
|
|
/*!50003 DROP PROCEDURE IF EXISTS P_UPDATE_REQUISTIONSTATUS_New*/;;
|
|
/*!50003 SET @OLD_SQL_MODE=@@SQL_MODE*/;;
|
|
/*!50003 SET SQL_MODE="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"*/;;
|
|
DELIMITER ;;
|
|
/*!50003 CREATE*/ /*!50020 DEFINER=`dbroot`@`%`*/ /*!50003 PROCEDURE `P_UPDATE_REQUISTIONSTATUS_New`()
|
|
NO SQL
|
|
BEGIN
|
|
DECLARE REQ_NO VARCHAR(10);
|
|
DECLARE LOCAL_COUNT int;
|
|
DECLARE Partial_COUNT int;
|
|
DECLARE exit_loop BOOLEAN;
|
|
DECLARE ReqList CURSOR FOR Select ReqNo from t_requestion_master where status not in('ST024','ST030') ;
|
|
DECLARE CONTINUE HANDLER FOR NOT FOUND SET exit_loop = TRUE;
|
|
|
|
|
|
DROP table IF EXISTS POQUANTITYLIST;
|
|
|
|
CREATE TEMPORARY TABLE POQUANTITYLIST (
|
|
ID INT NOT NULL auto_increment PRIMARY KEY,status varchar(10) null
|
|
) ENGINE=MEMORY AS (
|
|
select distinct li.ReqNo,sum(li.Quantity) as Quantity,li.MaterialCode
|
|
from
|
|
t_purchaseorder_lineItem li
|
|
left join t_purchaseorder_master PO ON PO.PONO = li.PONO
|
|
|
|
group by
|
|
li.ReqNo,li.MaterialCode order by ReqNo);
|
|
|
|
|
|
|
|
|
|
|
|
UPDATE t_requestion_details REQ
|
|
left JOIN POQUANTITYLIST line ON REQ.ReqNo = line.ReqNo
|
|
and REQ.MaterialCode = line.MaterialCode
|
|
SET REQ.Status = (CASE WHEN (REQ.Quantity <= line.Quantity and line.Quantity is not null ) THEN 'ST022'
|
|
WHEN
|
|
(REQ.Quantity > line.Quantity and line.Quantity is not null ) THEN 'ST023'
|
|
else 'ST003'
|
|
END) ,
|
|
REQ.updatedOn= CURRENT_TIMESTAMP where REQ.Status not in ('ST049','ST050','ST053','ST054') ;
|
|
|
|
|
|
OPEN ReqList;
|
|
ReqList_loop: LOOP
|
|
FETCH ReqList INTO REQ_NO;
|
|
|
|
SELECT count(*) as count INTO LOCAL_COUNT from t_requestion_details WHERE ReqNo=REQ_NO AND status !='ST022' ;
|
|
SELECT count(*) as count INTO Partial_COUNT from t_requestion_details WHERE ReqNo=REQ_NO AND status in('ST023');
|
|
if LOCAL_COUNT = 0 then
|
|
UPDATE t_requestion_master SET status='ST005' WHERE ReqNo=REQ_NO;
|
|
|
|
elseif Partial_COUNT > 0 then
|
|
UPDATE t_requestion_master SET status='ST023' WHERE ReqNo=REQ_NO;
|
|
end if;
|
|
|
|
IF exit_loop THEN
|
|
CLOSE ReqList;
|
|
LEAVE ReqList_loop;
|
|
END IF;
|
|
END LOOP ReqList_loop;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
END*/;;
|
|
DELIMITER ;
|
|
/*!50003 SET SQL_MODE=@OLD_SQL_MODE*/;
|
|
|
|
|
|
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
|
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
|
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
|
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
|
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
|
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
|
|
|
# Dump completed on 2024-07-25T13:09:13+05:30
|
|
|