Пример #1
0
        //Purchase Order Confirm method. To validate Waiting order

        public void revalidationForReq(List <item> purchaseitemlist)
        {
            foreach (item x in purchaseitemlist)
            {
                int totalItemQuantity      = 0;
                var findRelevantRequistion = (from x1 in ctx.items
                                              from y1 in ctx.requisitions
                                              from z1 in ctx.requsiiton_item
                                              where x1.itemId == z1.itemId && y1.requisitionId == z1.requisitionId && y1.status == "PendingForOrder" && x1.itemId == x.itemId
                                              select y1).ToList();
                foreach (requisition req in findRelevantRequistion)
                {
                    var t2 = (from x1 in ctx.items
                              from y1 in ctx.requisitions
                              from z1 in ctx.requsiiton_item
                              where x1.itemId == x.itemId && x1.flag == "needReorderSoon" && y1.requisitionId == req.requisitionId && x1.itemId == z1.itemId && y1.requisitionId == z1.requisitionId
                              select z1.requestQty).FirstOrDefault();
                    totalItemQuantity = totalItemQuantity + t2;
                }

                var tiq = (from x2 in ctx.items
                           where x2.itemId == x.itemId
                           select x2).First();


                if (totalItemQuantity <= tiq.balance)
                {
                    foreach (requisition req in findRelevantRequistion)
                    {
                        var t2 = (from x1 in ctx.items
                                  from y1 in ctx.requisitions
                                  from z1 in ctx.requsiiton_item
                                  where x1.flag == "needReorderSoon" && y1.requisitionId == req.requisitionId && x1.itemId == z1.itemId && y1.requisitionId == z1.requisitionId
                                  select x1.itemId);
                        int flag = t2.Count();

                        if (flag < 2)
                        {
                            var m = (
                                from y1 in ctx.requisitions
                                where y1.requisitionId == req.requisitionId
                                select y1).First();
                            m.status = "WaitingCollection";

                            //add disbursement
                            // date and time
                            var coltime = (from m2 in ctx.collectionPoints
                                           from m4 in ctx.departments
                                           where m2.collectionPointId == m4.collectionPointId && m4.departmentId == req.departmentId
                                           select new { m2, m4 }).First();
                            string   collectiontime = coltime.m2.time;
                            DateTime dt             = DateTime.Now;
                            int      weeknow        = Convert.ToInt32(DateTime.Now.DayOfWeek);
                            int      dayspan        = (-1) * weeknow + 5;
                            DateTime dt2            = dt.AddMonths(1);
                            DateTime friday         = DateTime.Now.AddDays(dayspan);
                            string   nhd            = (friday.ToShortDateString() + " " + collectiontime);
                            DateTime myDatefriday   = Convert.ToDateTime(nhd);
                            // date and time

                            /// update disbursement list
                            disbursement di = new disbursement();
                            di.departmentId = req.departmentId;
                            di.collectDate  = myDatefriday;
                            di.status       = "WaitingCollection";
                            ctx.disbursements.Add(di);
                            ctx.SaveChanges();
                            //updte disbursement list



                            //get particular requistion item list
                            List <itemValidate> itemidlistAvailable = new List <itemValidate>();
                            var n = (from x1 in ctx.requisitions
                                     from y in ctx.items
                                     from z in ctx.requsiiton_item
                                     where x1.requisitionId == z.requisitionId && y.itemId == z.itemId && x1.requisitionId == req.requisitionId
                                     select new itemValidate
                            {
                                Itemid = z.itemId,
                                RequestQty = z.requestQty,
                                StockBalance = y.balance,
                                Itemreorderlevel = y.reorderlevel
                            }).ToList();
                            itemidlistAvailable = n;
                            //get particular requistion item list

                            foreach (itemValidate mx in itemidlistAvailable)
                            {
                                disbursement_item disbi = new disbursement_item();
                                disbi.disbursementId = di.disbursementId;
                                disbi.itemId         = mx.Itemid;
                                disbi.collectQty     = mx.RequestQty;
                                ctx.disbursement_item.Add(disbi);
                            }



                            ///update disbursement list

                            //add disbursement
                            var t3 = (from x1 in ctx.items
                                      from y1 in ctx.requisitions
                                      from z1 in ctx.requsiiton_item
                                      where x1.itemId == x.itemId && x1.flag == "needReorderSoon" && y1.requisitionId == req.requisitionId && x1.itemId == z1.itemId && y1.requisitionId == z1.requisitionId
                                      select z1.requestQty).First();
                            var u = (from x1 in ctx.items
                                     where x1.itemId == x.itemId
                                     select x1).First();
                            u.balance = u.balance - t3;
                        }
                        else
                        {
                            var t3 = (from x1 in ctx.items
                                      from y1 in ctx.requisitions
                                      from z1 in ctx.requsiiton_item
                                      where x1.itemId == x.itemId && x1.flag == "needReorderSoon" && y1.requisitionId == req.requisitionId && x1.itemId == z1.itemId && y1.requisitionId == z1.requisitionId
                                      select z1.requestQty).First();
                            var u = (from x1 in ctx.items
                                     where x1.itemId == x.itemId
                                     select x1).First();
                            u.balance = u.balance - t3;
                        }
                    }
                    var m3 = (from z1 in ctx.items
                              where z1.itemId == x.itemId
                              select z1).First();
                    m3.flag = "NULL";
                }
                var u1 = (from x1 in ctx.items
                          where x1.itemId == x.itemId
                          select x1).First();
                u1.balance = u1.balance;
                ctx.SaveChanges();
            }
        }
Пример #2
0
        public void approveRequisition(int x)
        {
            List<itemValidate> itemidlistAvailable = new List<itemValidate>();
            var n = (from x1 in luse.requisitions
                     from y in luse.items
                     from z in luse.requsiiton_item
                     where x1.requisitionId == z.requisitionId && y.itemId == z.itemId && x1.requisitionId == x && y.flag != "needReorderSoon"
                     select new itemValidate
                     {
                         Itemid = z.itemId,
                         RequestQty = z.requestQty,
                         StockBalance = y.balance,
                         Itemreorderlevel = y.reorderlevel
                     }).ToList();
            itemidlistAvailable = n;
            List<itemValidate> itemidlistNotAvailable = new List<itemValidate>();
            var m = (from x1 in luse.requisitions
                     from y in luse.items
                     from z in luse.requsiiton_item
                     where x1.requisitionId == z.requisitionId && y.itemId == z.itemId && x1.requisitionId == x && y.flag == "needReorderSoon"
                     select new itemValidate
                     {
                         Itemid = z.itemId,
                         Itemreorderlevel = y.reorderlevel,
                         RequestQty = z.requestQty,
                         StockBalance = y.balance
                     }).ToList();
            itemidlistNotAvailable = m;
            foreach (itemValidate i in itemidlistAvailable)
            {

                if (i.StockBalance < i.Itemreorderlevel)
                {
                    var u = (from x1 in luse.items
                             where x1.itemId == i.Itemid
                             select x1).First();
                    u.status = "stockout";
                }
            }
            foreach (itemValidate x5 in itemidlistNotAvailable)
            {
                if (x5.StockBalance < x5.Itemreorderlevel)
                {
                    var u = (from x1 in luse.items
                             where x1.itemId == x5.Itemid
                             select x1).First();
                    u.status = "stockout";
                }
            }
            /// update disbursement list
            if (itemidlistNotAvailable.Count == 0)
            {
                var m0 = (from l in luse.requisitions
                         where l.requisitionId == x
                         select l).First();
                m0.status = "WaitingCollection";
                m0.status_dept = "Approved";
                var deptobj = (from m1 in luse.requisitions
                                      where m1.requisitionId == x
                                      select m1).First();
                string dept = deptobj.departmentId;
                var coltime = (from m2 in luse.collectionPoints
                               from m3 in luse.departments
                                   where m2.collectionPointId == m3.collectionPointId && m3.departmentId == dept
                                   select new {m2,m3}).First();
                string collectiontime = coltime.m2.time;
                DateTime dt = DateTime.Now;
                int weeknow = Convert.ToInt32(DateTime.Now.DayOfWeek);
                int dayspan = (-1) * weeknow + 5;
                DateTime dt2 = dt.AddMonths(1);
                DateTime friday = DateTime.Now.AddDays(dayspan);
                string nhd = (friday.ToShortDateString() + " " + collectiontime);
                DateTime myDatefriday = Convert.ToDateTime(nhd);
              /// update disbursement list
                disbursement di = new disbursement();
                    di.departmentId = dept;
                    di.collectDate = myDatefriday;
                    di.status = "WaitingCollection";
                    luse.disbursements.Add(di);
                luse.SaveChanges();
                foreach (itemValidate mx in itemidlistAvailable)
                {
                    disbursement_item disbi = new disbursement_item();
                    disbi.disbursementId = di.disbursementId;
                    disbi.itemId = mx.Itemid;
                    disbi.collectQty = mx.RequestQty;
                    luse.disbursement_item.Add(disbi);
                }

                ///update disbursement list

            }
            else
            {
                var m1 = (from l in luse.requisitions
                         where l.requisitionId == x
                         select l).First();
                m1.status = "PendingForOrder";
                m1.status_dept = "Approved";
            }
            luse.SaveChanges();
        }
Пример #3
0
        public void approveRequisition(int x)
        {
            List <itemValidate> itemidlistAvailable = new List <itemValidate>();
            var n = (from x1 in luse.requisitions
                     from y in luse.items
                     from z in luse.requsiiton_item
                     where x1.requisitionId == z.requisitionId && y.itemId == z.itemId && x1.requisitionId == x && y.flag != "needReorderSoon"
                     select new itemValidate
            {
                Itemid = z.itemId,
                RequestQty = z.requestQty,
                StockBalance = y.balance,
                Itemreorderlevel = y.reorderlevel
            }).ToList();

            itemidlistAvailable = n;
            List <itemValidate> itemidlistNotAvailable = new List <itemValidate>();
            var m = (from x1 in luse.requisitions
                     from y in luse.items
                     from z in luse.requsiiton_item
                     where x1.requisitionId == z.requisitionId && y.itemId == z.itemId && x1.requisitionId == x && y.flag == "needReorderSoon"
                     select new itemValidate
            {
                Itemid = z.itemId,
                Itemreorderlevel = y.reorderlevel,
                RequestQty = z.requestQty,
                StockBalance = y.balance
            }).ToList();

            itemidlistNotAvailable = m;
            foreach (itemValidate i in itemidlistAvailable)
            {
                if (i.StockBalance < i.Itemreorderlevel)
                {
                    var u = (from x1 in luse.items
                             where x1.itemId == i.Itemid
                             select x1).First();
                    u.status = "stockout";
                }
            }
            foreach (itemValidate x5 in itemidlistNotAvailable)
            {
                if (x5.StockBalance < x5.Itemreorderlevel)
                {
                    var u = (from x1 in luse.items
                             where x1.itemId == x5.Itemid
                             select x1).First();
                    u.status = "stockout";
                }
            }
            /// update disbursement list
            if (itemidlistNotAvailable.Count == 0)
            {
                var m0 = (from l in luse.requisitions
                          where l.requisitionId == x
                          select l).First();
                m0.status      = "WaitingCollection";
                m0.status_dept = "Approved";
                var deptobj = (from m1 in luse.requisitions
                               where m1.requisitionId == x
                               select m1).First();
                string dept    = deptobj.departmentId;
                var    coltime = (from m2 in luse.collectionPoints
                                  from m3 in luse.departments
                                  where m2.collectionPointId == m3.collectionPointId && m3.departmentId == dept
                                  select new { m2, m3 }).First();
                string   collectiontime = coltime.m2.time;
                DateTime dt             = DateTime.Now;
                int      weeknow        = Convert.ToInt32(DateTime.Now.DayOfWeek);
                int      dayspan        = (-1) * weeknow + 5;
                DateTime dt2            = dt.AddMonths(1);
                DateTime friday         = DateTime.Now.AddDays(dayspan);
                string   nhd            = (friday.ToShortDateString() + " " + collectiontime);
                DateTime myDatefriday   = Convert.ToDateTime(nhd);
                /// update disbursement list
                disbursement di = new disbursement();
                di.departmentId = dept;
                di.collectDate  = myDatefriday;
                di.status       = "WaitingCollection";
                luse.disbursements.Add(di);
                luse.SaveChanges();
                foreach (itemValidate mx in itemidlistAvailable)
                {
                    disbursement_item disbi = new disbursement_item();
                    disbi.disbursementId = di.disbursementId;
                    disbi.itemId         = mx.Itemid;
                    disbi.collectQty     = mx.RequestQty;
                    luse.disbursement_item.Add(disbi);
                }



                ///update disbursement list
            }
            else
            {
                var m1 = (from l in luse.requisitions
                          where l.requisitionId == x
                          select l).First();
                m1.status      = "PendingForOrder";
                m1.status_dept = "Approved";
            }
            luse.SaveChanges();
        }