Exemple #1
0
    //Generate short fall item list when Genereate Disbursement is clicked
    public List <RetrievalShortfallItem> CheckShortfall(int requisitionId, Dictionary <string, int> retrievedData)
    {
        RetrievalListDetailItemList = DisplayRetrievalListDetail(requisitionId);

        List <RetrievalShortfallItem> RetrievalShortfallItemList = new List <RetrievalShortfallItem>();

        foreach (KeyValuePair <string, int> kvp in retrievedData)
        {
            string itemCode     = kvp.Key;
            int    retrievedQty = kvp.Value;

            //Update Item Balance
            Item item = EFBroker_Item.GetItembyItemCode(itemCode);
            item.BalanceQty -= retrievedQty;
            EFBroker_Item.UpdateItem(item);

            foreach (RetrievalListDetailItem retListD in RetrievalListDetailItemList)
            {
                if (retListD.ItemCode == itemCode)
                {
                    if (retrievedQty < retListD.TotalRequestedQty)
                    {
                        RetrievalShortfallItem r = new RetrievalShortfallItem(retListD.Description, retrievedQty, retListD.ItemCode);
                        RetrievalShortfallItemList.Add(r);
                    }
                }
            }
        }
        return(RetrievalShortfallItemList);
    }
Exemple #2
0
    public static void ActivateItem(string itemCode)
    {
        Item item = EFBroker_Item.GetItembyItemCode(itemCode);

        item.ActiveStatus = "Y";
        EFBroker_Item.UpdateItem(item);
    }
Exemple #3
0
 public static void SaveDiscrepenciesWithItemUpdates(List <Discrepency> dList)
 {
     using (TransactionScope ts = new TransactionScope())
     {
         foreach (Discrepency d in dList)
         {
             Item i = EFBroker_Item.GetItembyItemCode(d.ItemCode);
             i.BalanceQty = i.BalanceQty + (d.AdjustmentQty * -1);
             EFBroker_Item.UpdateItem(i);
         }
         SaveDiscrepencies(dList);
         ts.Complete();
     }
 }
Exemple #4
0
    public static void UpdateItem(string itemCode, string categoryName, string description, int reorderLevel, int reorderQty, string unitOfMeasure, string bin)
    {
        Category category = EFBroker_Category.GetCategorybyName(categoryName);
        Item     i        = EFBroker_Item.GetItembyItemCode(itemCode);

        if (i != null)
        {
            i.CategoryID    = category.CategoryID;
            i.Description   = description;
            i.ReorderLevel  = reorderLevel;
            i.ReorderQty    = reorderQty;
            i.UnitOfMeasure = unitOfMeasure;
            i.Bin           = bin;
        }
        EFBroker_Item.UpdateItem(i);
        return;
    }
    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);
        }
    }