# ************************************************************ # 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