private bool sendDiscrepanciesToDatabase(List <Discrepency> dList, bool monthly) { try { if (monthly) { EFBroker_Discrepancy.MonthlyInventoryCheck(dList); } else { EFBroker_Discrepancy.SaveDiscrepencies(dList); } return(true); } catch (Exception e) { return(false); } }
protected void BtnSubmit_Click(object sender, EventArgs e) { List <Discrepency> dList = new List <Discrepency>(); bool complete = true; bool monthly = false; foreach (GridViewRow row in gvDiscrepancies.Rows) { string itemCode = (row.FindControl("lblItemCode") as Label).Text; string stock = (row.FindControl("lblStock") as Label).Text; string actual = (row.FindControl("lblActual") as Label).Text; int adj = Int32.Parse(actual) - Int32.Parse(stock); string remarks = (row.FindControl("txtRemarks") as TextBox).Text; if (!ValidatorUtil.isEmpty(remarks)) { if (remarks.Length <= maxChars) { //update item table if any adjustment at disubrsement point if (Session["ItemToUpdate"] != null) { if ((bool)Session["ItemToUpdate"]) { Item i = EFBroker_Item.GetItembyItemCode(itemCode); i.BalanceQty = (adj * -1) + i.BalanceQty; EFBroker_Item.UpdateItem(i); } } List <PriceList> plHistory = EFBroker_PriceList.GetPriceListByItemCode(itemCode); List <PriceList> itemPrices = new List <PriceList>(); foreach (PriceList pl in plHistory) { //Get only currently active suppliers for an item if (pl.TenderYear == DateTime.Now.Year.ToString()) { itemPrices.Add(pl); } } decimal totalPrice = 0; foreach (PriceList pl in itemPrices) { totalPrice += (decimal)pl.Price; } decimal averageUnitPrice = totalPrice / itemPrices.Count; Discrepency d = new Discrepency(); d.ItemCode = itemCode; if (Session["empID"] != null) { int empID = (int)Session["empID"]; d.RequestedBy = empID; } else { Utility.logout(); } d.AdjustmentQty = adj; d.Remarks = remarks; d.Date = DateTime.Now; if (Session["monthly"] != null) { if ((bool)Session["monthly"] == true) { d.Status = "Monthly"; monthly = true; } else { d.Status = "Pending"; monthly = false; } } else { d.Status = "Pending"; } d.TotalDiscrepencyAmount = adj * averageUnitPrice; if (d.TotalDiscrepencyAmount < 250) { d.ApprovedBy = EFBroker_DeptEmployee.GetEmployeeListByRole("Store Supervisor")[0].EmpID; } else { d.ApprovedBy = EFBroker_DeptEmployee.GetEmployeeListByRole("Store Manager")[0].EmpID; } dList.Add(d); } else { lblErrorCharLimit.Text = "Make sure all remarks are under 100 characters long"; row.BackColor = Color.Yellow; complete = false; break; } } else { lblRequired.Text = "Please state the cause of discrepancies for all items in Remarks"; complete = false; break; } } if (complete) { if (monthly) { EFBroker_Discrepancy.MonthlyInventoryCheck(dList); } else { EFBroker_Discrepancy.SaveDiscrepencies(dList); } //bool informSupervisor = false; //bool informManager = false; informSupervisor = false; informManager = false; foreach (Discrepency d in dList) { if (Math.Abs((decimal)d.TotalDiscrepencyAmount) < 250) { informSupervisor = true; } else { informManager = true; } } Session["discrepancyList"] = null; Session["discrepancyDisplay"] = null; Session["RetrievalShortfallItemList"] = null; Session["RetrievalID"] = null; Session["monthly"] = null; Session["ItemToUpdate"] = null; ThreadStart emailThreadStart = new ThreadStart(DiscrepancyMailNotification); Thread emailThread = new Thread(emailThreadStart); emailThread.Start(); string destination = ""; if (Session["empRole"] != null) { string role = (string)Session["empRole"]; if (role == "Store Supervisor" || role == "Store Manager") { destination = "PurchaseOrderList.aspx"; } else if (role == "Store Clerk") { destination = "RequisitionListClerk.aspx"; } else { Utility.logout(); } } else { Utility.logout(); } Utility.AlertMessageThenRedirect("Discrepancies successfully reported", destination); } }