//create the disbursement
        public static DisbursementModel CreateDisbursement(DisbursementModel dism, out string error)
        {
            // initialize the error variable to return only blank if there is no error
            error = "";
            //initialize the entities , dibursement
            LUSSISEntities entities = new LUSSISEntities();
            disbursement   disb     = new disbursement();

            try
            {
                //add the data to the disbursement  database
                disb.reqid = dism.Reqid;
                disb.ackby = dism.Ackby;
                disb       = entities.disbursements.Add(disb);
                entities.SaveChanges();
                //get the newly added disbursement
                dism = GetDisbursementByDisbursementId(disb.disid, out error);
            }

            catch (NullReferenceException)
            {
                error = ConError.Status.NOTFOUND;
            }
            catch (Exception e)
            {
                error = e.Message;
            }
            return(dism);
        }
        // update the disbursement
        public static DisbursementModel UpdateDisbursement(DisbursementModel dism, out string error)
        {
            error = "";
            // declare and initialize new LUSSISEntities to perform update
            LUSSISEntities entities = new LUSSISEntities();
            disbursement   ndism    = new disbursement();

            try
            {
                // finding the inventory object using Inventory API model
                ndism = entities.disbursements.Where(p => p.disid == dism.Disid).First <disbursement>();

                // transfering data from API model to DB Model
                ndism.disid = dism.Disid;
                ndism.reqid = dism.Reqid;
                ndism.ackby = dism.Ackby;

                // saving the update
                entities.SaveChanges();

                // return the updated model
                dism = GetDisbursementByDisbursementId(ndism.disid, out error);
            }
            catch (NullReferenceException)
            {
                error = ConError.Status.NOTFOUND;
            }
            catch (Exception e)
            {
                error = e.Message;
            }
            return(dism);
        }
Beispiel #3
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();

                }
            }
        }
        // Convert From Auto Generated DB Model to APIModel for Requisition
        private static DisbursementModel CovertDBDisbursementtoAPIDisbursement(disbursement disb)
        {
            DisbursementModel reqm = new DisbursementModel(disb.disid, disb.reqid, disb.ackby, disb.requisition.reqdate,
                                                           disb.requisition.status, disb.requisition.collectionpoint.cpname, disb.user.username,
                                                           disb.user.department.deptname, new List <DisbursementDetailsModel>());

            return(reqm);
        }
        //Create new Disbursement with Detials
        public static DisbursementModel CreateDisbursementwithDetails(DisbursementModel disb, List <DisbursementDetailsModel> disdm, out string error)
        {
            // initialize the error variable to return only blank if there is no error
            error = "";
            //initialize the entities , dibursement and disbursement list
            LUSSISEntities            entities = new LUSSISEntities();
            disbursement              dis      = new disbursement();
            List <disbursementdetail> dbdlist  = new List <disbursementdetail>();

            try
            {
                // add the data to the disbursement
                dis.reqid = disb.Reqid;
                dis.ackby = disb.Ackby;
                dis       = entities.disbursements.Add(dis);
                entities.SaveChanges();
                // add the arrary data to the disbursement details list
                foreach (DisbursementDetailsModel dbdm in disdm)
                {
                    disbursementdetail dbm = new disbursementdetail
                    {
                        disid  = dis.disid,
                        itemid = dbdm.Itemid,
                        qty    = dbdm.Qty
                    };
                    dbm = entities.disbursementdetails.Add(dbm);
                    entities.SaveChanges();
                    dbdlist.Add(dbm);
                }
                //get the added disbursement
                disb = GetDisbursementByDisbursementId(dis.disid, out error);
            }
            catch (NullReferenceException)
            {
                error = ConError.Status.NOTFOUND;
            }
            catch (Exception e)
            {
                error = e.Message;
            }
            return(disb);
        }
 public void createEmergencyDisbursement(List<DisbursementDetails> DBList, string depName)
 {
     disbursement d = new disbursement();
     d.disbursementId = "DB"+sFacade.getCodeGeneratorValue_Lingna("DB");
     d.departmentId = departmentFacade.getDepartment_Lingna(depName).departmentId;
     d.date = Convert.ToDateTime(System.DateTime.Now.ToShortDateString());
     d.deliveryDate = Convert.ToDateTime(System.DateTime.Now.ToShortDateString());
     d.status = "Completed";
     dFacade.createDisbursement(d);
     foreach(DisbursementDetails ds in DBList)
     {
         disbursementDetail n = new disbursementDetail();
         n.deliveredQty = ds.DeliveredQty;
         n.disbursementId = d.disbursementId;
         n.itemId = ds.ItemId;
         n.requestQty = ds.RequestedQty;
         cataFacade.updateStockAfterDisbursement_Lingna(ds.DeliveredQty, ds.ItemId);
         dFacade.createDisbursementDetail(n, d);
     }
     sFacade.updateCodeGeneratorValue_Lingna("DB");
 }
        // to get the Disbursement by the DisbursementId
        public static DisbursementModel GetDisbursementByDisbursementId(int disid, out string error)
        {
            LUSSISEntities entities = new LUSSISEntities();

            error = "";

            disbursement      disbursement = new disbursement();
            DisbursementModel dism         = new DisbursementModel();

            try
            {
                disbursement = entities.disbursements.Where(p => p.disid == disid).FirstOrDefault <disbursement>();
                dism         = CovertDBDisbursementtoAPIDisbursementwithDetails(disbursement);
            }
            catch (NullReferenceException)
            {
                error = ConError.Status.NOTFOUND;
            }
            catch (Exception e)
            {
                error = e.Message;
            }
            return(dism);
        }
Beispiel #8
0
 public void createDisbursementDetail(disbursementDetail dd, disbursement d)
 {
     var dis = ctx.disbursements.First(o => o.disbursementId == d.disbursementId);
     dis.disbursementDetails.Add(dd);
     ctx.SaveChanges();
 }
Beispiel #9
0
 public void createDisbursement(disbursement d)
 {
     ctx.disbursements.Add(d);
     ctx.SaveChanges();
 }
Beispiel #10
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();
        }
Beispiel #11
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();
            }
        }
        // Convert From Auto Generated DB Model to APIModel for Requsition with Requisition Details data
        private static DisbursementModel CovertDBDisbursementtoAPIDisbursementwithDetails(disbursement disb)
        {
            List <DisbursementDetailsModel> reqdm = new List <DisbursementDetailsModel>();

            foreach (disbursementdetail rqdm in disb.disbursementdetails)
            {
                reqdm.Add(new DisbursementDetailsModel(rqdm.disid, rqdm.itemid, rqdm.item.description, rqdm.qty, rqdm.item.category.name, rqdm.item.uom));
            }
            DisbursementModel reqm = new DisbursementModel(disb.disid, disb.reqid, disb.ackby, disb.requisition.reqdate,
                                                           disb.requisition.status, disb.requisition.collectionpoint.cpname, disb.user.username,
                                                           disb.user.department.deptname, reqdm);

            return(reqm);
        }
Beispiel #13
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();
        }