@@ -512,11 +528,13 @@
// success:function(data) {
$('#content').loader('hide');
var parsedData = JSON.parse(data);
- if (parsedData.length === 0) {
+console.log(parsedData);
+ if (parsedData['details'].length === 0) {
console.log("No data available");
// Reset all relevant fields and table
$('#IgrshowTitle').text('');
$("#IGRNO1").val('');
+ $("#PONO1").val('');
$("#txtIGRLineItem").val('');
$('#printLink').attr('href', '#');
$('.help-block').text('');
@@ -540,11 +558,12 @@
var trIGRHTML = '';
- $.each(parsedData, function(i, item) {
+ $.each(parsedData['details'], function(i, item) {
if (igr == item.IGRNO) {
console.log(item);
$('#IgrshowTitle').text(" ( " + item.IGRNO + " ) ");
$("#IGRNO1").val(item.IGRNO);
+ $("#PONO1").val(item.PONO);
$("#txtIGRLineItem").val(item.IGRItemNo);
var baseUrl = 'purchaseorder/CreatePOPrint';
var newUrl = baseUrl + '?PONO=' + item.PONO + '&ReqType=' + item.POType;
@@ -650,6 +669,11 @@
$("#tbleIGRAppend").empty();
$("#tbleIGRAppend").append(trIGRHTML);
+ if (parsedData['files'].length !== 0) {
+ $.each(parsedData['files'], function(i, item) {
+ appendExistingFilesFileds(item)
+ });
+ }
}
});
});
@@ -675,6 +699,7 @@
$('#draftIGR').click(function(){
$('#content').loader('show');
var igrno = $("#IGRNO1").val();
+ var pono = $("#PONO1").val();
var status = 0;
var tableData = [];
$('#tbleIGRAppend tr').each(function(index) {
@@ -694,8 +719,12 @@
};
tableData.push(rowData);
});
+
var formData = new FormData();
+ // file_name[]
+ // emp_file[]
formData.append('igr', igrno);
+ formData.append('po', pono);
formData.append('mrc', $("#MaterialRcvdDate").val());
formData.append('invdate', $("#Invoice_Date").val());
formData.append('vehicle_no', $('#Vehicle_No').val());
@@ -704,6 +733,16 @@
formData.append('status', status);
formData.append('tableData', JSON.stringify(tableData));
formData.append('MasterFile', $('#MasterFile')[0].files[0]);
+ formData.append('file_name[]', $('#file_name').val());
+ var empFiles = $('#emp_file')[0] ? $('#emp_file')[0].files : null;
+ if (empFiles) {
+ for (var i = 0; i < empFiles.length; i++) {
+ formData.append('emp_file[]', empFiles[i]);
+ console.log(empFiles[i]);
+ }
+ }else{
+ console.log("ajax call");
+ }
$.ajax({
data: formData,
type: "POST",
@@ -720,6 +759,7 @@
$('#generateIGR').click(function(){
$('#content').loader('show');
var igrno = $("#IGRNO1").val();
+ var pono = $("#PONO1").val();
var status = 1;
var tableData = [];
$('#tbleIGRAppend tr').each(function(index) {
@@ -741,6 +781,7 @@
});
var formData = new FormData();
formData.append('igr', igrno);
+ formData.append('po', pono);
formData.append('mrc', $("#MaterialRcvdDate").val());
formData.append('invdate', $("#Invoice_Date").val());
formData.append('vehicle_no', $('#Vehicle_No').val());
@@ -749,7 +790,16 @@
formData.append('status', status);
formData.append('tableData', JSON.stringify(tableData));
formData.append('MasterFile', $('#MasterFile')[0].files[0]);
-
+ formData.append('file_name[]', $('#file_name').val());
+ var empFiles = $('#emp_file')[0] ? $('#emp_file')[0].files : null;
+ if (empFiles) {
+ for (var i = 0; i < empFiles.length; i++) {
+ formData.append('emp_file[]', empFiles[i]);
+ console.log(empFiles[i]);
+ }
+ }else{
+ console.log("ajax call");
+ }
$.ajax({
data: formData,
type:"POST",
@@ -1023,10 +1073,10 @@ $("#hidebillno").val(Billno);
function deleteBill(Billno,i){
$.ajax({
data: {
- Billno: Billno,
+ id: Billno,
},
type: "POST",
- url: "deleteBillFile",
+ url: "deleteAdditionalFile",
success: function(data) {
if (data) {
alert(data);
@@ -1498,4 +1548,100 @@ $(document).ready(function() {
.dataTables_wrapper .col-sm-3 .dt-buttons {
float: right;
}
-
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/public/uploads/POfiles/SECLIENT.jpg b/public/uploads/POfiles/SECLIENT.jpg
new file mode 100644
index 00000000..c67d3006
Binary files /dev/null and b/public/uploads/POfiles/SECLIENT.jpg differ
diff --git a/public/uploads/POfiles/SupplierBills.png b/public/uploads/POfiles/SupplierBills.png
new file mode 100644
index 00000000..19bc537a
Binary files /dev/null and b/public/uploads/POfiles/SupplierBills.png differ
diff --git a/public/uploads/POfiles/WorkPlace2.jpeg b/public/uploads/POfiles/WorkPlace2.jpeg
new file mode 100644
index 00000000..7e956107
Binary files /dev/null and b/public/uploads/POfiles/WorkPlace2.jpeg differ
diff --git a/public/uploads/POfiles/WorkPlace2_1.jpeg b/public/uploads/POfiles/WorkPlace2_1.jpeg
new file mode 100644
index 00000000..7e956107
Binary files /dev/null and b/public/uploads/POfiles/WorkPlace2_1.jpeg differ
diff --git a/public/uploads/POfiles/WorkPlace2_2.jpeg b/public/uploads/POfiles/WorkPlace2_2.jpeg
new file mode 100644
index 00000000..7e956107
Binary files /dev/null and b/public/uploads/POfiles/WorkPlace2_2.jpeg differ
diff --git a/public/uploads/POfiles/WorkPlace3.jpeg b/public/uploads/POfiles/WorkPlace3.jpeg
new file mode 100644
index 00000000..07259d7b
Binary files /dev/null and b/public/uploads/POfiles/WorkPlace3.jpeg differ
diff --git a/public/uploads/POfiles/ria_test.sql b/public/uploads/POfiles/ria_test.sql
new file mode 100644
index 00000000..2ea36b6a
--- /dev/null
+++ b/public/uploads/POfiles/ria_test.sql
@@ -0,0 +1,1171 @@
+# ************************************************************
+# 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
+