Esempio n. 1
0
        public List<DisbursementDetails> getDisbursementDetails(string disbursementId)
        {
            List<DisbursementDetails> disbursementDetailsCollection = new List<DisbursementDetails>();

            try
            {
                var dsd = from d in ctx.disbursementDetails
                          join i in ctx.items
                          on d.itemId equals i.itemId
                          where d.disbursementId == disbursementId
                          select new
                          {
                              id = d.itemId,
                              des = i.description,
                              res = d.requestQty,
                              del = d.deliveredQty
                          };

                foreach (var d in dsd)
                {
                    DisbursementDetails disbursementDetails = new DisbursementDetails();
                    disbursementDetails.ItemId = d.id;
                    disbursementDetails.ItemName = d.des;
                    disbursementDetails.RequestedQty = Convert.ToInt32(d.res);
                    disbursementDetails.DeliveredQty = Convert.ToInt32(d.del);

                    disbursementDetailsCollection.Add(disbursementDetails);
                }
            }
            catch (Exception exception)
            {
                errorobj.WriteErrorLog("RequisitionFacade-getDisbursementDetails():::" + exception.ToString());
                disbursementDetailsCollection = null;
            }

            return disbursementDetailsCollection;
        }
        public int loadController()
        {
            try
            {
                List<Disbursement> disbursementCollection = requisitionFacade.getDisbursementWithStatus("Outstanding");
                if(disbursementCollection.Count>0)
                {
                    return 0;
                }
                else
                {
                    List<Item> itemCollection = catalogueFacade.getItems("Active");
                    List<Department> departmentCollection = departmentFacade.getDepartments();
                    disbursementCollection.Clear();
                    disbursementCollection = new List<Disbursement>();

                    codeGenerator codeG = helperFacade.getCode("disbursementId");
                    Hashtable depItems = new Hashtable();
                    foreach(Department d in departmentCollection)
                    {
                        Disbursement disbursement = new Disbursement();
                        string newId = CodeGeneratorHelper.returnCode(codeG.prefix,codeG.lastValue);
                        codeG.lastValue = Convert.ToInt32(newId.Substring(codeG.prefix.Length));
                        disbursement.DisbursementId = newId;
                        disbursement.DepartmentId = d.DepartmentId;
                        disbursement.Date = DateTime.Now;
                        disbursement.Status = "Outstanding";
                        List<DisbursementDetails> disbursementDetailsCollection = new List<DisbursementDetails>();
                        disbursement.DisbursementDetailsCollection = disbursementDetailsCollection;
                        disbursementCollection.Add(disbursement);
                        depItems.Add(d.DepartmentId, 0);
                    }

                    foreach(Item item in itemCollection)
                    {
                        foreach (Department d in departmentCollection)
                        {
                            depItems[d.DepartmentId]= 0;
                        }
                        List<DisbursementHelper> disbursementHelperCollection = requisitionFacade.getRequisitionsForDisbursement(item.ItemId);
                        if (disbursementHelperCollection.Count > 0)
                        {
                            foreach (DisbursementHelper d in disbursementHelperCollection)
                            {
                                if (item.StockBalance > 0)
                                {
                                    if (item.StockBalance >= d.RequestedQty)
                                    {
                                        depItems[d.DepartmentId] = Convert.ToInt32(depItems[d.DepartmentId]) + d.RequestedQty;
                                        item.StockBalance -= d.RequestedQty;
                                    }
                                    else
                                    {
                                        depItems[d.DepartmentId] = Convert.ToInt32(depItems[d.DepartmentId]) + item.StockBalance;
                                        item.StockBalance -= item.StockBalance;
                                    }
                                    d.Status = "In Progress";
                                    requisitionFacade.updateRequisitionStatus(d.RequisitionId,"In Progress");
                                }
                                else
                                {
                                    break;
                                }
                            }

                            foreach (Department d in departmentCollection)
                            {
                                if (Convert.ToInt32(depItems[d.DepartmentId]) > 0)
                                {
                                    DisbursementDetails disbursementDetails = new DisbursementDetails();
                                    disbursementDetails.ItemId = item.ItemId;
                                    disbursementDetails.RequestedQty = Convert.ToInt32(depItems[d.DepartmentId]);
                                    Disbursement disbursement = disbursementCollection.Find(e => e.DepartmentId == d.DepartmentId);
                                    List<DisbursementDetails> disbursementDetailsCollection = disbursement.DisbursementDetailsCollection;
                                    disbursementDetailsCollection.Add(disbursementDetails);
                                    disbursement.DisbursementDetailsCollection = disbursementDetailsCollection;
                                }
                            }
                        }
                    }

                    foreach(Disbursement disbursement in disbursementCollection)
                    {
                        requisitionFacade.createDibursement(disbursement);
                    }

                    helperFacade.updateCode(codeG);

                    return 1;
                }

            }
            catch (Exception exception)
            {
                errorobj.WriteErrorLog("GenerateDisbursementController-loadController():::" + exception.ToString());
                return -1;
            }
        }
        //lillte change for valide
        protected void btnAdd_Click(object sender, EventArgs e)
        {
            if (ddlItem.SelectedIndex != 0 && ddlDepartment.SelectedIndex != 0 && ddlCategory.SelectedIndex != 0)
            {
                if (Page.IsValid)
                {
                    //lblNoti.Text = string.Empty;
                    lblRequisitionItemList.Visible = true;
                    lblRequisitionItemList.Text = "Disbursement Item List";
                    dgvRequisitionItemList.Visible = true;
                    List<DisbursementDetails> DBList = new List<DisbursementDetails>();
                    bool flag = false;
                    if (Session["DBList"] != null)
                    {
                        DBList = (List<DisbursementDetails>)Session["DBList"];
                        foreach (DisbursementDetails db in DBList)
                        {
                            if (db.ItemId == ddlItem.SelectedValue)
                            {
                                //lblmsg.Text = "Cannot add the same item twice.";
                                this.Message("Cannot add the same item twice.");
                                flag = true;
                                return;
                            }
                        }
                    }
                    if (!flag)
                    {
                        DisbursementDetails dd = new DisbursementDetails();
                        dd.ItemId = ddlItem.SelectedValue;
                        dd.ItemName = eDController.getItem(ddlItem.SelectedValue).description;
                        dd.RequestedQty = Convert.ToInt32(txtQuantity.Text);
                        dd.DeliveredQty = dd.RequestedQty;
                        DBList.Add(dd);
                        Session["DBList"] = DBList;
                    }
                    btnSubmit.Visible = true;

                    dgvRequisitionItemList.DataSource = DBList;
                    dgvRequisitionItemList.DataBind();

                }

                else
                {
                    string itemId = ddlItem.SelectedValue;
                    int bal = Convert.ToInt32(eDController.getItem(itemId).stockBalance);
                    string itemName = eDController.getItem(itemId).description;
                    string txtmessage = "The are only " + bal + " for item-" + itemName;
                    this.Message(txtmessage);
                }
            }
            else
            {
                //lblmsg.Text = "Please select one item and department.";
                this.Message("Please select one item and department.");
            }
        }