public ENVIService.ENVIClass_Result Workflow_PTTApproveL4(ENVIService.ENVIClass_ENVI dataENVI) { ENVIService.ENVIClass_Result result = new ENVIService.ENVIClass_Result(); var dataFacPTT = db.mTFacility.FirstOrDefault(w => w.cActive == "Y" && w.cDel == "N" && w.nLevel == 0 && w.CompanyID == 1 && w.sMappingCodePTT == dataENVI.FacilityCode); if (dataFacPTT != null) { var dataFacilityGC = db.mTFacility.FirstOrDefault(w => w.nLevel == 1 && w.cDel == "N" && w.cActive == "Y" && w.nHeaderID == dataFacPTT.ID); if (dataFacilityGC != null) { if (dataENVI.Quarter == 1 || dataENVI.Quarter == 2 || dataENVI.Quarter == 3 || dataENVI.Quarter == 4) { int nIndID = 0; switch (dataENVI.IndicatorCode) { case ENVIService.EPIClass_DataType.InidcatorCode.IntensityDenominator: nIndID = API_ENVI.DataType.nIndIntensityID; break; case ENVIService.EPIClass_DataType.InidcatorCode.Material: nIndID = API_ENVI.DataType.nIndMaterialID; break; case ENVIService.EPIClass_DataType.InidcatorCode.Water: nIndID = API_ENVI.DataType.nIndWaterID; break; case ENVIService.EPIClass_DataType.InidcatorCode.Waste: nIndID = API_ENVI.DataType.nIndWasteID; break; case ENVIService.EPIClass_DataType.InidcatorCode.Emission: nIndID = API_ENVI.DataType.nIndEmissionID; break; case ENVIService.EPIClass_DataType.InidcatorCode.Effluent: nIndID = API_ENVI.DataType.nIndEffluentID; break; case ENVIService.EPIClass_DataType.InidcatorCode.Spill: nIndID = API_ENVI.DataType.nIndSpillID; break; case ENVIService.EPIClass_DataType.InidcatorCode.Complaint: nIndID = API_ENVI.DataType.nIndComplaintID; break; case ENVIService.EPIClass_DataType.InidcatorCode.Compliance: nIndID = API_ENVI.DataType.nIndComplianceID; break; } if (nIndID != 0) { int nStatusApprove = 34; int[] arrAllowedStatus = new int[] { 30 };//Approve by PTT(L3) var dataTransfer = db.TEPI_TransferPTT.FirstOrDefault(w => w.nYear == dataENVI.Year && w.nIndicatorID == nIndID && w.nQuarter == dataENVI.Quarter && w.nFacilityID == dataFacilityGC.ID && arrAllowedStatus.Contains(w.nStatusID ?? 0)); if (dataTransfer != null) { //TEPI_TransferPTT dataTransfer.nStatusID = nStatusApprove; dataTransfer.dAction = DateTime.Now; //TEPI_TransferPTT_SubFacility List <int> lstSubFac = new List <int>(); var querySubFac = db.TEPI_TransferPTT_SubFacility.Where(w => w.nHeaderID == dataTransfer.nFacilityID && w.nYear == dataTransfer.nYear && w.nIndicatorID == dataTransfer.nIndicatorID && w.nQuarterID == dataTransfer.nQuarter).ToList(); foreach (var item in querySubFac) { lstSubFac.Add(item.nFacilityID); item.nStatusID = nStatusApprove; item.dAction = DateTime.Now; } #region TEPI_TransferPTT_Log TEPI_TransferPTT_Log tl = new TEPI_TransferPTT_Log(); tl.nYear = dataENVI.Year; tl.nFacilityID = dataFacilityGC.ID; tl.nIndicatorID = nIndID; tl.nQuarter = dataENVI.Quarter; tl.nStatusID = nStatusApprove; tl.nActionBy = -1; tl.dAction = DateTime.Now; tl.sRemark = dataENVI.Comment; db.TEPI_TransferPTT_Log.Add(tl); db.SaveChanges(); #endregion db.SaveChanges(); result.IsCompleted = true; } else { result.IsCompleted = false; result.Message = "Update Status Failed."; } } else { result.IsCompleted = false; result.Message = "Invalid Indicator Code."; } } else { result.IsCompleted = false; result.Message = "Invalid Quater."; } } else { result.IsCompleted = false; result.Message = "Not Found GC Facility"; } } else { result.IsCompleted = false; result.Message = "Not Found Facility Code."; } return(result); }
public ENVIService.ENVIClass_Result Workflow_PTTClearWF(ENVIService.ENVIClass_ENVI dataENVI) { ENVIService.ENVIClass_Result result = new ENVIService.ENVIClass_Result(); var dataFacPTT = db.mTFacility.FirstOrDefault(w => w.cActive == "Y" && w.cDel == "N" && w.nLevel == 0 && w.CompanyID == 1 && w.sMappingCodePTT == dataENVI.FacilityCode); if (dataFacPTT != null) { var dataFacilityGC = db.mTFacility.FirstOrDefault(w => w.nLevel == 1 && w.cDel == "N" && w.cActive == "Y" && w.nHeaderID == dataFacPTT.ID); if (dataFacilityGC != null) { if (dataENVI.Quarter == 1 || dataENVI.Quarter == 2 || dataENVI.Quarter == 3 || dataENVI.Quarter == 4) { int nIndID = 0; switch (dataENVI.IndicatorCode) { case ENVIService.EPIClass_DataType.InidcatorCode.IntensityDenominator: nIndID = API_ENVI.DataType.nIndIntensityID; break; case ENVIService.EPIClass_DataType.InidcatorCode.Material: nIndID = API_ENVI.DataType.nIndMaterialID; break; case ENVIService.EPIClass_DataType.InidcatorCode.Water: nIndID = API_ENVI.DataType.nIndWaterID; break; case ENVIService.EPIClass_DataType.InidcatorCode.Waste: nIndID = API_ENVI.DataType.nIndWasteID; break; case ENVIService.EPIClass_DataType.InidcatorCode.Emission: nIndID = API_ENVI.DataType.nIndEmissionID; break; case ENVIService.EPIClass_DataType.InidcatorCode.Effluent: nIndID = API_ENVI.DataType.nIndEffluentID; break; case ENVIService.EPIClass_DataType.InidcatorCode.Spill: nIndID = API_ENVI.DataType.nIndSpillID; break; case ENVIService.EPIClass_DataType.InidcatorCode.Complaint: nIndID = API_ENVI.DataType.nIndComplaintID; break; case ENVIService.EPIClass_DataType.InidcatorCode.Compliance: nIndID = API_ENVI.DataType.nIndComplianceID; break; } if (nIndID != 0) { int nStatusWaitingSubmit = 0; var dataTransfer = db.TEPI_TransferPTT.FirstOrDefault(w => w.nYear == dataENVI.Year && w.nIndicatorID == nIndID && w.nQuarter == dataENVI.Quarter && w.nFacilityID == dataFacilityGC.ID); if (dataTransfer != null) { //TEPI_TransferPTT dataTransfer.nStatusID = nStatusWaitingSubmit; dataTransfer.dAction = DateTime.Now; //TEPI_TransferPTT_SubFacility List <int> lstSubFac = new List <int>(); var querySubFac = db.TEPI_TransferPTT_SubFacility.Where(w => w.nHeaderID == dataTransfer.nFacilityID && w.nYear == dataTransfer.nYear && w.nIndicatorID == dataTransfer.nIndicatorID && w.nQuarterID == dataTransfer.nQuarter).ToList(); foreach (var item in querySubFac) { lstSubFac.Add(item.nFacilityID); item.nStatusID = nStatusWaitingSubmit; item.dAction = DateTime.Now; } #region TEPI_TransferPTT_Log TEPI_TransferPTT_Log tl = new TEPI_TransferPTT_Log(); tl.nYear = dataENVI.Year; tl.nFacilityID = dataFacilityGC.ID; tl.nIndicatorID = nIndID; tl.nQuarter = dataENVI.Quarter; tl.nStatusID = nStatusWaitingSubmit; tl.nActionBy = -1; tl.dAction = DateTime.Now; tl.sRemark = dataENVI.Comment; db.TEPI_TransferPTT_Log.Add(tl); db.SaveChanges(); #endregion #region TEPI_Workflow string sYear = dataENVI.Year + ""; var dataEPIFrom = db.TEPI_Forms.Where(w => w.IDIndicator == nIndID && w.sYear == sYear && lstSubFac.Contains(w.FacilityID ?? 0)).ToList(); foreach (var item in dataEPIFrom) { List <int> lstMonth = new List <int>(); switch (dataENVI.Quarter) { case 1: lstMonth.Add(1); lstMonth.Add(2); lstMonth.Add(3); break; case 2: lstMonth.Add(4); lstMonth.Add(5); lstMonth.Add(6); break; case 3: lstMonth.Add(7); lstMonth.Add(8); lstMonth.Add(9); break; case 4: lstMonth.Add(10); lstMonth.Add(11); lstMonth.Add(12); break; } var queryUpdateWF = db.TEPI_Workflow.Where(w => w.FormID == item.FormID && lstMonth.Contains(w.nMonth)).ToList(); foreach (var itemWF in queryUpdateWF) { if (itemWF.nHistoryStatusID == 26) //Completed (L3) >> Approved by PTT { itemWF.nHistoryStatusID = 5; //Approved by ENVI Corporate } } } #endregion db.SaveChanges(); result.IsCompleted = true; } else { result.IsCompleted = false; result.Message = "Update Status Failed."; } } else { result.IsCompleted = false; result.Message = "Invalid Indicator Code."; } } else { result.IsCompleted = false; result.Message = "Invalid Quater."; } } else { result.IsCompleted = false; result.Message = "Not Found GC Facility"; } } else { result.IsCompleted = false; result.Message = "Not Found Facility Code."; } return(result); }