ria/public/uploads/POfiles/ria_test.sql

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