コード例 #1
0
        /** Update Department wise item list **/
        public bool updateDepartmentWiseList(String departmentName, String itemCode, int actualQty, int requiredQty, int retrievalID)
        {
            if (vailidateActulaQty(requiredQty, actualQty))
            {
                var q = (from sd in context.StationeryRetrievalDepts
                         where (sd.RetrievalID == retrievalID) && (sd.Department.DeptName.Equals(departmentName)) &&
                         (sd.ItemCode.Equals(itemCode)) && (sd.DeletedFlag == false)
                         select sd).FirstOrDefault();
                if (q != null)
                {
                    StationeryRetrievalDept updateStationeryRetrievalDept = (StationeryRetrievalDept)q;
                    updateStationeryRetrievalDept.ActualQty = actualQty;
                    try
                    {
                        context.SaveChanges();
                    }
                    catch (Exception ex)
                    {
                        errorState = true;
                        errorMsg   = "Failed to generate Stationery Retrieval Form";
                        throw new UpdateFailedException(errorMsg);
                    }
                }
            }
            else
            {
                errorState = true;
                errorMsg   = "The actual quantity cannot be greater than requested quantity";
                throw new UpdateFailedException(errorMsg);
            }

            return(errorState);
        }
コード例 #2
0
        /** Create Department wise Stationery retrieval list **/
        public void createDepartmentWiseList(List <RequestDetail> rdList, ArrayList itemList, int RetrievalID)
        {
            String itemCode;
            String deptCode;
            int    requestedQty;
            int    availableQty;
            int    actualQty;

            try
            {
                List <String> dpc      = rdList.Select(x => x.Request.Employee1.DeptCode.ToString()).Distinct().ToList();
                ArrayList     deptList = new ArrayList(dpc.ToArray());

                /**check the department for each item in Request detail**/
                foreach (var i in itemList)
                {
                    itemCode = i.ToString();
                    var avbQty = (from a in context.StationeryRetrievalDetails
                                  where a.ItemCode.Equals(itemCode) && (a.RetrievalID == RetrievalID)
                                  select a.AvailableQty).FirstOrDefault();;

                    availableQty = Convert.ToInt32(avbQty);


                    foreach (var d in deptList)
                    {
                        deptCode     = d.ToString();
                        requestedQty = 0;
                        actualQty    = 0;

                        foreach (RequestDetail rd in rdList)
                        {
                            if (rd.ItemCode.Equals(itemCode))
                            {
                                if (rd.Request.Employee1.Department.DeptCode.Equals(deptCode))
                                {
                                    requestedQty += Convert.ToInt32(rd.Quantity);
                                }
                            }
                        }

                        /** Distribute available quantity **/
                        if (!(requestedQty == 0))
                        {
                            if (!(availableQty <= 0))
                            {
                                if (requestedQty <= availableQty)
                                {
                                    actualQty = requestedQty;
                                }
                                else if (requestedQty > availableQty)
                                {
                                    actualQty = availableQty;
                                }
                                availableQty = availableQty - actualQty;
                            }

                            /** Create Department wise item list **/
                            StationeryRetrievalDept addStationeryRetrievalDept = new StationeryRetrievalDept();
                            addStationeryRetrievalDept.RetrievalID  = RetrievalID;
                            addStationeryRetrievalDept.DeptCode     = deptCode;
                            addStationeryRetrievalDept.ItemCode     = itemCode;
                            addStationeryRetrievalDept.RequestedQty = requestedQty;
                            addStationeryRetrievalDept.ActualQty    = actualQty;
                            addStationeryRetrievalDept.DeletedFlag  = false;
                            context.AddToStationeryRetrievalDepts(addStationeryRetrievalDept);
                            context.SaveChanges();
                        }
                    }
                }
            }


            catch (Exception ex)
            {
                errorState = true;
                errorMsg   = "Failed to generate Stationery Retrieval Form";
                throw new CreateFailedException(errorMsg);
            }
        }