示例#1
0
        public void createDibursement(Disbursement disbursement)
        {
            if (disbursement.DisbursementDetailsCollection.Count != 0)
            {
                disbursement dis = new disbursement();
                dis.disbursementId = disbursement.DisbursementId;
                dis.departmentId = disbursement.DepartmentId;
                dis.date = disbursement.Date;
                dis.status = disbursement.Status;
                dis.deliveryDate = disbursement.Date;
                ctx.disbursements.Add(dis);
                ctx.SaveChanges();

                List<DisbursementDetails> disD = disbursement.DisbursementDetailsCollection;

                foreach (DisbursementDetails ds in disD)
                {
                    disbursementDetail dl = new disbursementDetail();
                    dl.disbursementId = disbursement.DisbursementId;
                    dl.itemId = ds.ItemId;
                    dl.requestQty = ds.RequestedQty;
                    dl.deliveredQty = 0;

                    ctx.disbursementDetails.Add(dl);
                    ctx.SaveChanges();

                }
            }
        }
示例#2
0
        protected void Generatebtn_Click(object sender, EventArgs e)
        {
            Department department = departmentCollection.Find(d => d.DepartmentName == DepartmentDropDownList.SelectedValue);
            if(PendingRadioButton.Checked==true)
            {
                DisbursementPanel.Visible = false;
                disbursement = viewDisbursementController.selectPendingDisbursement(department.DepartmentId);
                if (disbursement != null)
                {
                    Session["disbursement"] = disbursement;
                    CompleteDetailsGridView.DataSource = disbursement.DisbursementDetailsCollection;
                    CompleteDetailsGridView.DataBind();
                    CompleteDetailsGridView.ForeColor = Color.Black;
                    CollectionPointLabel1.Text = disbursement.CollectionPointName;
                    RepresentativeLabel1.Text = disbursement.RepresentativeName;
                    DepartmentLabel1.Text = disbursement.DepartmentName;
                    DateLabel1.Text = disbursement.Date.ToString();
                    CompleteDeliveryPanel.Visible = true;
                    DisbursementDetailsPanel.Visible = false;
                    DisbursementPanel.Visible = false;
                    //ErrorMessageLabel.Visible = false;
                }
                else
                {
                    CompleteDeliveryPanel.Visible = false;
                    //ErrorMessageLabel.Text = "No records found.";
                    //ErrorMessageLabel.Visible = true;
                    this.Message("No records found.");
                }

            }
            else
            {
                disbursementCollection = viewDisbursementController.selectDepartment(department.DepartmentId);
                DisbursementPanel.Visible = true;
                DisbursementDetailsPanel.Visible = false;
                CompleteDeliveryPanel.Visible = false;
                if (disbursementCollection.Count != 0)
                {   DisbursementGridView.DataSource = disbursementCollection;
                    DisbursementGridView.DataBind();
                    CompleteDeliveryPanel.Visible = false;
                    DisbursementDetailsPanel.Visible = false;
                    DisbursementPanel.Visible = true;
                    //ErrorMessageLabel.Visible = false;
                }
                else
                {
                    DisbursementPanel.Visible = false;
                    //ErrorMessageLabel.Text = "No records found.";
                    //ErrorMessageLabel.Visible = true;
                    this.Message("No records found.");
                }
            }
        }
        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;
            }
        }
 public void selectCompleteDelivery(Disbursement disbursement)
 {
     completeDeliveryController = new CompleteDeliveryController();
     completeDeliveryController.completeDelivery(disbursement);
 }
        public void completeDelivery(Disbursement disbursement)
        {
            List<DisbursementDetails> disbursementDetailsCollection = disbursement.DisbursementDetailsCollection;

            requisitionFacade.updateDisbursment(disbursementDetailsCollection, disbursement.DisbursementId);

            foreach (DisbursementDetails disbursementDetails in disbursementDetailsCollection)
            {
                catalogueFacade.updateStock(disbursementDetails.ItemId, disbursementDetails.DeliveredQty);

                List<DisbursementHelper> disbursementHelperCollection = requisitionFacade.getRequisitionsForCompleteDisbursement(disbursementDetails.ItemId,disbursement.DepartmentId);
                if (disbursementHelperCollection.Count > 0)
                {
                    foreach (DisbursementHelper d in disbursementHelperCollection)
                    {
                        if (disbursementDetails.DeliveredQty > 0)
                        {
                            int req = d.RequestedQty - d.DeliveredQty;
                            if (disbursementDetails.DeliveredQty<=req)
                            {
                                d.DeliveredQty = d.DeliveredQty+disbursementDetails.DeliveredQty;
                                disbursementDetails.DeliveredQty -= disbursementDetails.DeliveredQty;
                            }
                            else
                            {
                                d.DeliveredQty = d.DeliveredQty+req;
                                disbursementDetails.DeliveredQty -= req;
                            }

                            requisitionFacade.updateRequisitionDelivery(d, disbursementDetails.ItemId);
                        }
                        else
                        {
                            break;
                        }
                    }
                }
            }

            requisitionFacade.updateDisbursementRequisitions(disbursement.DepartmentId);

            string subject = "Disbursement Update";

            string bodyStart = "<HTML>"
                          + "<HEAD>"
                          + "</HEAD>"
                          + "<BODY>"
                          + "<BR/>"
                          + "<P>Dear ";

            string body = "";

            userFacade = new UserFacade();

            List<User> userCollection = userFacade.getUsersWithRole("departmentHead",disbursement.DepartmentId);

            body = ",</P><BR/><P>Disbursement update for Disbursement Id : "+disbursement.DisbursementId+" delivered on date : "+disbursement.DeliveryDate+" </P>"
                + "<BR/>"
                + "<P>The details are :- </P>"
                + "<UL>";

            NotifyUserController notifyUserController;

            List<DisbursementDetails> disbursementDetailCol = disbursement.DisbursementDetailsCollection;
            foreach (DisbursementDetails disdetail in disbursementDetailCol)
            {
                body = body + "<LI>" + disdetail.ItemName + "    " + disdetail.RequestedQty + "     "+ disdetail.DeliveredQty+"</LI>";
            }

            body = body + "</UL>"
            + "<BR/>"
            + "<P>From,</P>"
            + "<P>SSIS.</P>"
            + "</BODY>"
            + "</HTML>";

            notifyUserController = new NotifyUserController();

            foreach (User user in userCollection)
            {
                notifyUserController.sendEmail(user.Email, subject, bodyStart + user.UserName + body);
            }
        }
示例#6
0
 public void cdselectCompleteDelivery(Disbursement disbursement)
 {
     ViewDisbursementController viewDisbursementController = new ViewDisbursementController();
     viewDisbursementController.selectCompleteDelivery(disbursement);
 }
示例#7
0
        public List<Disbursement> getDisbursementWithStatus(string status, string departmentId)
        {
            List<Disbursement> disburesementCollection = new List<Disbursement>();

            try
            {

                var di = (from disb in ctx.disbursements
                           from u in ctx.users
                           where
                             disb.departmentId == departmentId &&
                             disb.status == status &&
                             u.departmentId==departmentId &&
                             u.status == "Active" &&
                             u.role.name == "departmentRepresentative"
                           select new
                           {
                               disId = disb.disbursementId,
                               depId = disb.departmentId,
                               dt = disb.date,
                               deldate = disb.deliveryDate,
                               status = disb.status,
                               depName = u.department.name,
                               col = disb.department.collectionPoint.address,
                               uname = u.name
                           });

                foreach(var dis in di)
                {
                    Disbursement ds = new Disbursement();
                    ds.DisbursementId = dis.disId;
                    ds.DepartmentId = dis.depId;
                    ds.DepartmentName = dis.depName;
                    ds.Date = (DateTime)dis.dt.Value;
                    ds.CollectionPointName = dis.col;
                    ds.RepresentativeName = dis.uname;
                    if (dis.deldate != null)
                    {
                        ds.DeliveryDate = (DateTime)dis.deldate.Value;
                    }
                    ds.Status = dis.status;

                    disburesementCollection.Add(ds);
                }
            }
            catch (Exception exception)
            {
                errorobj.WriteErrorLog("RequisitionFacade-getDisbursementWithStatus():::" + exception.ToString());
                disburesementCollection = new List<Disbursement>();
            }

            return disburesementCollection;
        }
示例#8
0
        public List<Disbursement> getDisbursementWithStatus(string status)
        {
            List<Disbursement> disburesementCollection = new List<Disbursement>();

            try
            {
                IEnumerable<disbursement> disC = from dis in ctx.disbursements
                                                 where dis.status == status
                                                 select dis;

                foreach(disbursement d in disC)
                {
                    Disbursement disbursement = new Disbursement();
                    disbursement.DisbursementId = d.disbursementId;
                    disbursement.DepartmentId = d.departmentId;
                    disbursement.Date = (DateTime)d.date.Value;
                    disbursement.DeliveryDate = (DateTime)d.deliveryDate.Value;
                    disbursement.Status = d.status;

                    disburesementCollection.Add(disbursement);
                }
            }
            catch (Exception exception)
            {
                errorobj.WriteErrorLog("RequisitionFacade-getDisbursementWithStatus():::" + exception.ToString());
                disburesementCollection = new List<Disbursement>();
            }

            return disburesementCollection;
        }
示例#9
0
        public Disbursement getDisbursementWithDetails(string status, string departmentId)
        {
            Disbursement ds = new Disbursement();

            try
            {
                var dis = (from disb in ctx.disbursements
                                    from u in ctx.users
                                    where
                                      disb.departmentId == departmentId &&
                                      u.departmentId == departmentId &&
                                      disb.status == status &&
                                      u.status == "Active" &&
                                      u.role.name == "departmentRepresentative"
                                    select new
                                    {
                                        disId = disb.disbursementId,
                                        depId = disb.departmentId,
                                        dt = disb.date,
                                        deldate = disb.deliveryDate,
                                        status = disb.status,
                                        depName = u.department.name,
                                        col = disb.department.collectionPoint.address,
                                        uname = u.name
                                    }).FirstOrDefault();

                if (dis != null)
                {
                    ds = new Disbursement();
                    ds.DisbursementId = dis.disId;
                    ds.DepartmentId = dis.depId;
                    ds.DepartmentName = dis.depName;
                    ds.Date = (DateTime)dis.dt.Value;
                    ds.CollectionPointName = dis.col;
                    ds.RepresentativeName = dis.uname;
                    if (dis.deldate != null)
                    {
                        ds.DeliveryDate = (DateTime)dis.deldate.Value;
                    }
                    ds.Status = dis.status;

                    ds.DisbursementDetailsCollection = getDisbursementDetails(ds.DisbursementId);
                }
                else
                {
                    ds = null;
                }
            }
            catch (Exception exception)
            {
                errorobj.WriteErrorLog("RequisitionFacade-getDisbursementWithStatus():::" + exception.ToString());
                ds = null;
            }

            return ds;
        }