Example #1
0
 public void RejectWRO(Guid wroId)
 {
     using (var context = new SCMSEntities())
     {
         using (TransactionScope scope = new TransactionScope())
         {
             try
             {
                 var wrnItems = context.WarehouseReleaseItems.Where(w => w.WarehouseReleaseId == wroId).ToList();
                 foreach (var wrnItem in wrnItems)
                 {
                     string itemCategory = context.Inventories.FirstOrDefault(p => p.Id == wrnItem.InventoryId).Item.ItemCategory.CategoryCode;
                     if (itemCategory.Equals("A"))
                     {
                         wrnItem.Quantity = 1;
                         Model.Asset ass = context.Assets.FirstOrDefault(p => p.Id == wrnItem.AssetId);
                         ass.IsReleased     = false;
                         ass.CurrentOwnerId = null;
                         ((IObjectContextAdapter)context).ObjectContext.ObjectStateManager.ChangeObjectState(ass, System.Data.EntityState.Modified);
                     }
                     Model.Inventory inv = context.Inventories.First(p => p.Id == wrnItem.InventoryId);
                     inv.Quantity += (Int64)wrnItem.Quantity;
                     ((IObjectContextAdapter)context).ObjectContext.ObjectStateManager.ChangeObjectState(inv, System.Data.EntityState.Modified);
                 }
                 context.SaveChanges();
                 SessionData.CurrentSession.ReleaseOrderList     = null;
                 SessionData.CurrentSession.ReleaseOrderItemList = null;
                 SessionData.CurrentSession.AssetList            = null;
                 SessionData.CurrentSession.InventoryList        = null;
                 scope.Complete();
             }
             catch (Exception ex) { scope.Dispose(); throw ex; }
         }
     }
 }
Example #2
0
 public bool IsROrderDeleted(Guid ROId)
 {
     using (var context = new SCMSEntities())
     {
         var RO = context.WarehouseReleases.FirstOrDefault(p => p.Id == ROId);
         foreach (var item in RO.WarehouseReleaseItems)
         {
             string itemCategory = context.Inventories.FirstOrDefault(p => p.Id == item.InventoryId).Item.ItemCategory.CategoryCode;
             if (itemCategory.Equals("A"))
             {
                 item.Quantity = 1;
                 Model.Asset ass = context.Assets.FirstOrDefault(p => p.Id == item.AssetId);
                 ass.IsReleased     = false;
                 ass.CurrentOwnerId = null;
                 ((IObjectContextAdapter)context).ObjectContext.ObjectStateManager.ChangeObjectState(ass, System.Data.EntityState.Modified);
             }
             Model.Inventory inv = context.Inventories.First(p => p.Id == item.InventoryId);
             inv.Quantity += (Int64)item.Quantity;
             ((IObjectContextAdapter)context).ObjectContext.ObjectStateManager.ChangeObjectState(inv, System.Data.EntityState.Modified);
         }
         context.WarehouseReleases.Remove(RO);
         int affectedRecords = context.SaveChanges();
         SessionData.CurrentSession.ReleaseOrderList     = null;
         SessionData.CurrentSession.ReleaseOrderItemList = null;
         SessionData.CurrentSession.AssetList            = null;
         SessionData.CurrentSession.InventoryList        = null;
         return(affectedRecords > 0 ? true : false);
     }
 }
Example #3
0
 public bool IsWRNItemDeleted(Guid wrnItemId)
 {
     using (var context = new SCMSEntities())
     {
         Model.WarehouseReleaseItem wrnitm = context.WarehouseReleaseItems.FirstOrDefault(p => p.Id == wrnItemId);
         string itemCategory = context.Inventories.FirstOrDefault(p => p.Id == wrnitm.InventoryId).Item.ItemCategory.CategoryCode;
         if (itemCategory.Equals("A"))
         {
             wrnitm.Quantity = 1;
             Model.Asset ass = context.Assets.FirstOrDefault(p => p.Id == wrnitm.AssetId);
             ass.IsReleased     = false;
             ass.CurrentOwnerId = null;
             ((IObjectContextAdapter)context).ObjectContext.ObjectStateManager.ChangeObjectState(ass, System.Data.EntityState.Modified);
         }
         Model.Inventory inv = context.Inventories.First(p => p.Id == wrnitm.InventoryId);
         inv.Quantity += (Int64)wrnitm.Quantity;
         ((IObjectContextAdapter)context).ObjectContext.ObjectStateManager.ChangeObjectState(inv, System.Data.EntityState.Modified);
         context.WarehouseReleaseItems.Remove(wrnitm);
         int affectedColumns = context.SaveChanges();
         SessionData.CurrentSession.ReleaseOrderList     = null;
         SessionData.CurrentSession.ReleaseOrderItemList = null;
         SessionData.CurrentSession.AssetList            = null;
         SessionData.CurrentSession.InventoryList        = null;
         return(affectedColumns > 0 ? true : false);
     }
 }
Example #4
0
        protected void Awake()
        {
            _selectedButtonSprite   = Resources.Load <Sprite>("UI/Textures/button_yellow_02");
            _deselectedButtonSprite = Resources.Load <Sprite>("UI/Textures/button_brown_01");
            _switchButtonTransforms.Add(ItemType.Equipment,
                                        equipmentsButton.button.GetComponent <RectTransform>());
            _switchButtonTransforms.Add(ItemType.Consumable,
                                        consumablesButton.button.GetComponent <RectTransform>());
            _switchButtonTransforms.Add(ItemType.Costume,
                                        costumesButton.button.GetComponent <RectTransform>());
            _switchButtonTransforms.Add(ItemType.Material,
                                        materialsButton.button.GetComponent <RectTransform>());

            consumablesButton.text.text         = L10nManager.Localize("UI_CONSUMABLES");
            consumablesButton.selectedText.text = L10nManager.Localize("UI_CONSUMABLES");
            costumesButton.text.text            = L10nManager.Localize("UI_COSTUME");
            costumesButton.selectedText.text    = L10nManager.Localize("UI_COSTUME");
            equipmentsButton.text.text          = L10nManager.Localize("UI_EQUIPMENTS");
            equipmentsButton.selectedText.text  = L10nManager.Localize("UI_EQUIPMENTS");
            materialsButton.text.text           = L10nManager.Localize("UI_MATERIALS");
            materialsButton.selectedText.text   = L10nManager.Localize("UI_MATERIALS");

            SharedModel = new Model.Inventory();
            SharedModel.State.Subscribe(SubscribeState).AddTo(gameObject);
            SharedModel.SelectedItemView.Subscribe(SubscribeSelectedItemView).AddTo(gameObject);

            scroll.OnClick
            .Subscribe(cell => SharedModel.SubscribeItemOnClick(cell.View))
            .AddTo(gameObject);

            scroll.OnDoubleClick
            .Subscribe(cell =>
            {
                SharedModel.DeselectItemView();
                OnDoubleClickItemView.OnNext(cell.View);
            })
            .AddTo(gameObject);

            consumablesButton.button.OnClickAsObservable().Subscribe(_ =>
            {
                AudioController.PlayClick();
                SharedModel.State.Value = ItemType.Consumable;
            }).AddTo(gameObject);
            costumesButton.button.OnClickAsObservable().Subscribe(_ =>
            {
                AudioController.PlayClick();
                SharedModel.State.Value = ItemType.Costume;
            }).AddTo(gameObject);
            equipmentsButton.button.OnClickAsObservable().Subscribe(_ =>
            {
                AudioController.PlayClick();
                SharedModel.State.Value = ItemType.Equipment;
            }).AddTo(gameObject);
            materialsButton.button.OnClickAsObservable().Subscribe(_ =>
            {
                AudioController.PlayClick();
                SharedModel.State.Value = ItemType.Material;
            }).AddTo(gameObject);
        }
Example #5
0
        public InventoryControl(Model.Inventory I)
        {
            InitializeComponent();
            IEnumerable <UserControl> items = I.InventorySet.Select(x => x.Generator.generate(x));

            items.Select(x => x.Anchor = AnchorStyles.Left);
            items.Select(x => x.Parent = ItemPanel);
        }
Example #6
0
        public bool IsAssetRegistered(Model.Asset assetEntity)
        {
            using (var context = new SCMSEntities())
            {
                using (TransactionScope scope = new TransactionScope())
                {
                    try
                    {
                        assetEntity.IsAssigned = false;
                        assetEntity.Id         = Guid.NewGuid();
                        //if (assetEntity.UseLifeSpan)
                        //    assetEntity.DepreciationType = "Straight Line";
                        context.Assets.Add(assetEntity);
                        if (context.Inventories.Count(p => p.ItemId == assetEntity.ItemId && p.WareHouseId == assetEntity.CurrentWareHouseId) > 0)
                        {
                            Model.Inventory invt = context.Inventories.FirstOrDefault(p => p.ItemId == assetEntity.ItemId && p.WareHouseId == assetEntity.CurrentWareHouseId);
                            invt.Quantity += 1;
                            ((IObjectContextAdapter)context).ObjectContext.ObjectStateManager.ChangeObjectState(invt, System.Data.EntityState.Modified);
                        }
                        else
                        {
                            Model.Inventory newinvetoryEntity = new Model.Inventory()
                            {
                                Id = Guid.NewGuid(), ItemId = (Guid)assetEntity.ItemId, Quantity = 1, CountryProgrammeId = assetEntity.CountryProgramId, WareHouseId = (Guid)assetEntity.CurrentWareHouseId
                            };
                            context.Inventories.Add(newinvetoryEntity);
                        }

                        if (assetEntity.IsFleet)
                        {
                            SessionData.CurrentSession.FleetDetailsList = null;
                            context.FleetDetails.Add(new FleetDetail()
                            {
                                Id = Guid.NewGuid(), CountryProgrammeId = assetEntity.CountryProgramId, AssetId = assetEntity.Id, IssueDate = DateTime.Now
                            });
                        }

                        if (assetEntity.DepreciationType == "Zero Percentage")
                        {
                            if (!(context.SaveChanges() > 0))
                            {
                                scope.Dispose(); return(false);
                            }
                            else
                            {
                                scope.Complete(); return(true);
                            }
                        }
                        else
                        {
                            assetEntity.DepreciationPeriods = assetEntity.Lifespan * 12;
                        }
                        return(this.IsDepreciationComputed(context, scope, assetEntity));
                    }
                    catch (Exception ex) { scope.Dispose(); throw ex; }
                }
            }
        }
Example #7
0
 public ActionResult LoadEditConsumables(Guid iventId)
 {
     Model.Inventory model = SessionData.CurrentSession.InventoryList.FirstOrDefault(p => p.Id == iventId);
     model.Items       = new SelectList(ORService.GetItems("C"), "Id", "Name");
     model.Inventories = invetService.GetInventoryList(categoryCode: "C");
     model.Warehouses  = new SelectList(SessionData.CurrentSession.WarehouseList, "Id", "Name");
     ViewBag.Action    = "EditInventory";
     return(View("LoadOtherConsumables", model));
 }
Example #8
0
 public bool IsGRNVerified(GoodsReceivedNote GRNentity)
 {
     using (var context = new SCMSEntities())
     {
         using (TransactionScope scope = new TransactionScope())
         {
             foreach (GoodsReceivedNoteItem item in GRNentity.ItemColl)
             {
                 GoodsReceivedNoteItem grit = context.GoodsReceivedNoteItems.FirstOrDefault(p => p.Id == item.Id);
                 if (context.Inventories.Count(p => p.ItemId == grit.PurchaseOrderItem.Item.Id && p.WareHouseId == grit.GoodsReceivedNote.WareHouseId) > 0)
                 {
                     if (grit.PurchaseOrderItem.Item.ItemCategory.CategoryCode == "C")
                     {
                         Model.Inventory invt = context.Inventories.FirstOrDefault(p => p.ItemId == grit.PurchaseOrderItem.Item.Id && p.WareHouseId == grit.GoodsReceivedNote.WareHouseId);
                         invt.Quantity += (long)item.QuantityDelivered;
                         ((IObjectContextAdapter)context).ObjectContext.ObjectStateManager.ChangeObjectState(invt, System.Data.EntityState.Modified);
                     }
                 }
                 else
                 {
                     long qty = 0;
                     if (grit.PurchaseOrderItem.Item.ItemCategory.CategoryCode == "C")
                     {
                         qty = (long)item.QuantityDelivered;
                     }
                     Model.Inventory newinvetoryEntity =
                         new Model.Inventory()
                     {
                         Id = Guid.NewGuid(), ItemId = grit.PurchaseOrderItem.Item.Id, Quantity = qty, CountryProgrammeId = GRNentity.CountryProgrammeId, WareHouseId = (Guid)grit.GoodsReceivedNote.WareHouseId
                     };
                     context.Inventories.Add(newinvetoryEntity);
                 }
                 Model.GoodsReceivedNoteItem grnitm = context.GoodsReceivedNoteItems.FirstOrDefault(p => p.Id == item.Id);
                 grnitm.QuantityDamaged = item.QuantityDamaged; grnitm.QuantityDelivered = item.QuantityDelivered;
                 ((IObjectContextAdapter)context).ObjectContext.ObjectStateManager.ChangeObjectState(grnitm, System.Data.EntityState.Modified);
                 context.SaveChanges();
             }
             Model.GoodsReceivedNote grn = context.GoodsReceivedNotes.FirstOrDefault(p => p.Id == GRNentity.Id);
             grn.Verified            = true;
             grn.ApprovedOn          = DateTime.Now;
             grn.ReceptionApprovedBy = GRNentity.ReceptionApprovedBy;
             ((IObjectContextAdapter)context).ObjectContext.ObjectStateManager.ChangeObjectState(grn, System.Data.EntityState.Modified);
             if (context.SaveChanges() > 0)
             {
                 scope.Complete(); return(true);
             }
             else
             {
                 scope.Dispose(); return(false);
             }
         }
     }
 }
Example #9
0
 public ActionResult EditInventory(Model.Inventory model)
 {
     using (var context = new SCMSEntities())
     {
         context.Inventories.Attach(model);
         ((IObjectContextAdapter)context).ObjectContext.ObjectStateManager.ChangeObjectState(model, System.Data.EntityState.Modified);
         context.SaveChanges();
         ModelState.Clear();
         SessionData.CurrentSession.InventoryList = null;
         return(LoadOtherConsumables());
     }
 }
Example #10
0
        public ActionResult IsQtyenough(Model.CheckAvailableQty bc)
        {
            if (bc.assetid != null)
            {
                if (SessionData.CurrentSession.AssetList.FirstOrDefault(p => p.Id == bc.assetid).IsReleased)
                {
                    ViewBag.Html = "0~ " + Resources.WRFormController_String_ItemAlreadyReleased; return(View("HTMLResponses"));
                }
            }

            Model.Inventory entity = SessionData.CurrentSession.InventoryList.First(p => p.Id == bc.InventoryId);
            ViewBag.Html = bc.releasedQty <= entity.Quantity ? "1" : "0~ " + string.Format(Resources.WRFormController_String_ItemsLeftInStock, (Int64)entity.Quantity, entity.Item.Name);
            return(View("HTMLResponses"));
        }
Example #11
0
        public bool IsAssetDisposed(Model.Asset AssetEntity)
        {
            using (var context = new SCMSEntities())
            {
                Model.Asset aset = context.Assets.FirstOrDefault(p => p.Id == AssetEntity.Id);
                aset.IsDesposed = true;
                aset.ActionType = AssetEntity.ActionType;
                ((IObjectContextAdapter)context).ObjectContext.ObjectStateManager.ChangeObjectState(aset, System.Data.EntityState.Modified);

                Model.Inventory inv = context.Inventories.FirstOrDefault(p => p.ItemId == aset.ItemId & p.WareHouseId == aset.CurrentWareHouseId);
                inv.Quantity -= 1;
                ((IObjectContextAdapter)context).ObjectContext.ObjectStateManager.ChangeObjectState(inv, System.Data.EntityState.Modified);
                return(context.SaveChanges() > 0 ? true : false);
            }
        }
Example #12
0
        public View.Inventory Build(Model.Inventory inventory)
        {
            List <View.InventoryItem> inventoryItems = new List <View.InventoryItem>();

            if (inventory.InventoryItems != null)
            {
                inventoryItems = inventory.InventoryItems.Select(x => inventoryItemViewBuilder.Build(x)).ToList();
            }

            return(new View.Inventory
            {
                InventoryGuid = inventory.InventoryGuid,
                Organization = inventory.Organization == null ? null : organizationViewBuilder.Build(inventory.Organization),
                InventoryItems = inventoryItems,
                CreatedOn = inventory.CreatedOn.ToString(),
                UpdatedOn = inventory.UpdatedOn.ToString()
            });
        }
Example #13
0
        public ActionResult SaveOtherConsumables(Model.Inventory model)
        {
            model.CountryProgrammeId = countryProg.Id;
            if (!gRNService.IsInventoryUpdated(model))
            {
                ViewBag.Response = 0;
                ViewBag.Action   = "SaveOtherConsumables";
                ViewBag.msg      = Resources.Global_String_AnErrorOccurred;
                model.Items      = new SelectList(ORService.GetItems(), "Id", "Name");
                return(View("LoadOtherConsumables", model));
            }

            ViewBag.Response = 1;
            ViewBag.msg      = Resources.Global_String_ProcessCompleted;
            ModelState.Clear();
            SessionData.CurrentSession.InventoryList = null;
            return(LoadOtherConsumables());
        }
Example #14
0
        private bool AddItems(Model.WarehouseRelease wrEntity, Model.WarehouseReleaseItem entity, SCMSEntities context, TransactionScope scope, bool sendmail = false)
        {
            string itemCategory = context.Inventories.FirstOrDefault(p => p.Id == entity.InventoryId).Item.ItemCategory.CategoryCode;

            if (wrEntity == null)
            {
                wrEntity = context.WarehouseReleases.FirstOrDefault(w => w.Id == entity.WarehouseReleaseId);
            }
            entity.Id = Guid.NewGuid();
            if (itemCategory.Equals("C"))
            {
                entity.AssetId = Guid.Empty; context.WarehouseReleaseItems.Add(entity);
            }
            else
            {
                entity.Quantity = 1;
                Model.Asset ass = context.Assets.FirstOrDefault(p => p.Id == entity.AssetId);
                ass.IsReleased     = true;
                ass.CurrentOwnerId = wrEntity.ReceivedBy;
                ((IObjectContextAdapter)context).ObjectContext.ObjectStateManager.ChangeObjectState(ass, System.Data.EntityState.Modified);
                context.WarehouseReleaseItems.Add(entity);
            }
            Model.Inventory inv = context.Inventories.First(p => p.Id == entity.InventoryId);
            inv.Quantity -= (Int64)entity.Quantity;
            ((IObjectContextAdapter)context).ObjectContext.ObjectStateManager.ChangeObjectState(inv, System.Data.EntityState.Modified);

            if ((context.SaveChanges() > 0))
            {
                SessionData.CurrentSession.ReleaseOrderList     = null;
                SessionData.CurrentSession.ReleaseOrderItemList = null;
                SessionData.CurrentSession.AssetList            = null;
                SessionData.CurrentSession.InventoryList        = null;
                if (sendmail)
                {
                    NotificationServicee.SendNotification(NotificationServicee.GetApproverEmailAddress(1, NotificationHelper.wrnCode), NotificationHelper.wrnMsgBody, NotificationHelper.wrnsubject);
                }
                scope.Complete();
                return(true);
            }
            else
            {
                scope.Dispose(); return(false);
            }
        }
Example #15
0
 public bool IsInventoryUpdated(Inventory InventEntity)
 {
     using (var context = new SCMSEntities())
     {
         if (context.Inventories.Count(p => p.ItemId == InventEntity.ItemId && p.WareHouseId == InventEntity.WareHouseId) > 0)
         {
             Model.Inventory invt = context.Inventories.FirstOrDefault(p => p.ItemId == InventEntity.ItemId && p.WareHouseId == InventEntity.WareHouseId);
             invt.Quantity += (long)InventEntity.Quantity;
             ((IObjectContextAdapter)context).ObjectContext.ObjectStateManager.ChangeObjectState(invt, System.Data.EntityState.Modified);
         }
         else
         {
             Model.Inventory newinvetoryEntity = new Model.Inventory()
             {
                 Id = Guid.NewGuid(), ItemId = InventEntity.ItemId, Quantity = (long)InventEntity.Quantity, CountryProgrammeId = InventEntity.CountryProgrammeId, WareHouseId = InventEntity.WareHouseId
             };
             context.Inventories.Add(newinvetoryEntity);
         }
         return(context.SaveChanges() > 0 ? true : false);
     }
 }
Example #16
0
 public static ViewWayBill prepareWB(Guid wbId)
 {
     using (var db = new SCMSEntities())
     {
         WayBill     entitymodel = db.WayBills.First(p => p.Id == wbId);
         ViewWayBill model       = new ViewWayBill();
         model.EntityWBill = entitymodel;
         WarehouseRelease wrn = model.EntityWBill.WarehouseRelease;
         model.issuer           = db.VStaffDetails.FirstOrDefault(p => p.StaffID == entitymodel.PreparedBy);
         model.consignee        = db.VStaffDetails.FirstOrDefault(p => p.StaffID == entitymodel.Consignee);
         model.ReceivedBy       = db.VStaffDetails.FirstOrDefault(p => p.StaffID == entitymodel.ReceivedBy);
         model.OrrignWH         = db.WareHouses.FirstOrDefault(p => p.Id == entitymodel.IssuerWarehouse);
         model.destinationWH    = db.WareHouses.FirstOrDefault(p => p.Id == entitymodel.DestinationWarehouse);
         model.DestnationOfiice = db.CountrySubOffices.FirstOrDefault(p => p.Id == entitymodel.DestinationOffice);
         Model.Location         loc = model.destinationWH.Location;
         Model.CountrySubOffice cso = model.destinationWH.CountrySubOffice;
         model.OrignSOfiice = db.CountrySubOffices.First(p => p.Id == entitymodel.IssuingOffice);
         Model.Location l   = model.OrignSOfiice.Location;
         Model.Location lok = model.DestnationOfiice.Location;
         List <WarehouseReleaseItem> writems = entitymodel.WarehouseRelease.WarehouseReleaseItems.ToList();
         foreach (WarehouseReleaseItem item in writems)
         {
             Model.Inventory     inv = item.Inventory;
             Model.Item          it  = inv.Item;
             Model.ItemCategory  ic  = it.ItemCategory;
             Model.UnitOfMeasure u   = it.UnitOfMeasure;
             Model.Asset         ast = item.Asset;
         }
         model.WRItems = writems;
         //dummies
         var person = entitymodel.Staff.Person;
         if (entitymodel.Staff1 != null)
         {
             person = entitymodel.Staff1.Person;
         }
         return(model);
     }
 }
Example #17
0
        public ActionResult WBReceive()
        {
            using (var db = new SCMSEntities())
            {
                WarehouseRelease            wrn  = db.WarehouseReleases.FirstOrDefault <WarehouseRelease>();
                List <WarehouseReleaseItem> itmz = wrn != null?wrn.WarehouseReleaseItems.ToList() : new List <WarehouseReleaseItem>();

                foreach (WarehouseReleaseItem item in itmz)
                {
                    Model.Inventory     iv  = item.Inventory;
                    Model.Item          it  = iv.Item;
                    Model.ItemCategory  itc = it.ItemCategory;
                    Model.Asset         ast = item.Asset;
                    Model.UnitOfMeasure u   = it.UnitOfMeasure;
                }
                //Use this to populate items on load for any changes in the stolen code
                //WayBill wb = db.WayBills.First(p => p.Id == new Guid("0D88562F-BBEC-4722-941B-91FC4D82BB1C"));
                //List<WarehouseReleaseItem> wrnn = db.WarehouseReleases.FirstOrDefault(p => p.Id == wb.WRNId).WarehouseReleaseItems.ToList();
                //foreach (WarehouseReleaseItem item in wrnn)
                //{
                //    Model.Asset ass = item.Asset;
                //    Model.Inventory iv = item.Inventory;
                //    Model.Item it = iv.Item;
                //    Model.ItemCategory ic = it.ItemCategory;
                //    Model.UnitOfMeasure u = it.UnitOfMeasure;
                //}

                var model = new ReceiveWB()
                {
                    EntityWBill   = new WayBill(),
                    IssuingOffice = new SelectList(WBService.GetSubOffices(countryProg.Id), "Id", "Name"),
                    WBlist        = new SelectList(WBService.GetWayBillsNotReceived(countryProg.Id), "Id", "RefNumber"),
                    WRItems       = new List <WarehouseReleaseItem>()//wrnn
                };
                return(View(model));
            }
        }
Example #18
0
        internal virtual void AddInventory(smART.Model.ScaleDetails modelScaleDetails, smART.Model.smARTDBContext dbContext)
        {
            try {
                //If status is close then add inventory record
                if (modelScaleDetails.Scale != null && modelScaleDetails.Scale.Ticket_Status.ToLower().Equals("close") && modelScaleDetails.Apply_To_Item != null)
                {
                    decimal qty               = 0;
                    decimal oldNetWeight      = 0;
                    decimal newCurrentBalance = 0;

                    //Get all scale inventory item by ticket id & item id
                    IQueryable <smART.Model.Inventory> inventories = dbContext.Set <smART.Model.Inventory>().AsQueryable().Where(i => i.Scale_Ticket_ID.ID == modelScaleDetails.Scale.ID &&
                                                                                                                                 i.Item_ID.ID == modelScaleDetails.Apply_To_Item.ID &&
                                                                                                                                 i.Trans_Type == "Scale ticket" &&
                                                                                                                                 i.Active_Ind == true);

                    //Get current balance from Item Master
                    smART.Model.Item item = dbContext.M_Item.FirstOrDefault(i => i.ID == modelScaleDetails.Apply_To_Item.ID);

                    oldNetWeight = modelScaleDetails.Old_Net_Weight;

                    if (item != null)
                    {
                        newCurrentBalance = item.Current_Balance;
                        smART.Model.Inventory newInventory = new Model.Inventory();

                        //If item inventory exists then add diffrence inventory entry
                        if (inventories != null && inventories.Count() >= 1)
                        {
                            //Check item inventory already exist with same scale ticket.
                            smART.Model.Inventory inventory = inventories.FirstOrDefault();

                            //Same item update with same qty.
                            if (modelScaleDetails.NetWeight == oldNetWeight)
                            {
                                return;
                            }

                            if (modelScaleDetails.NetWeight > oldNetWeight)
                            {
                                newInventory.Impact = "Add";
                                qty = modelScaleDetails.NetWeight - oldNetWeight;
                                newCurrentBalance += qty;
                            }
                            else
                            {
                                newInventory.Impact = "Subtract";
                                qty = oldNetWeight - modelScaleDetails.NetWeight;
                                newCurrentBalance -= qty;
                            }
                        }

                        //If item inventory not exists then add item inventory entry
                        else
                        {
                            qty = modelScaleDetails.NetWeight;

                            if (modelScaleDetails.Scale.Ticket_Type.ToLower().Equals("receiving ticket"))
                            {
                                newInventory.Impact = "Add";
                                newCurrentBalance  += qty;
                            }
                            else
                            {
                                newInventory.Impact = "Subtract";
                                newCurrentBalance  -= qty;
                            }
                        }

                        newInventory.Created_By      = modelScaleDetails.Created_By;
                        newInventory.Created_Date    = modelScaleDetails.Created_Date;
                        newInventory.Item_ID         = modelScaleDetails.Apply_To_Item;
                        newInventory.Party_ID        = modelScaleDetails.Scale.Party_ID;
                        newInventory.Quantity        = qty;
                        newInventory.Scale_Ticket_ID = modelScaleDetails.Scale;
                        newInventory.Trans_Date      = DateTime.Now;
                        newInventory.Trans_Type      = "Scale ticket";
                        newInventory.Active_Ind      = true;
                        newInventory.Balance         = newCurrentBalance;
                        dbContext.T_Inventory.Add(newInventory);

                        //Update Item current balance in Item Master
                        item.Current_Balance   = newCurrentBalance;
                        item.Last_Updated_Date = DateTime.Now;
                        item.Updated_By        = modelScaleDetails.Updated_By;
                        dbContext.Entry <smART.Model.Item>(item);
                    }
                }
            }
            catch (Exception ex) {
                bool rethrow;
                rethrow = BusinessRuleExceptionHandler.HandleException(ref ex, modelScaleDetails.Updated_By, modelScaleDetails.GetType().Name, modelScaleDetails.ID.ToString());
                if (rethrow)
                {
                    throw ex;
                }
            }
        }
Example #19
0
 public virtual IComponentView generate(Model.Inventory comp) => new InventoryView(comp);
Example #20
0
 private void OnDestroy()
 {
     SharedModel.Dispose();
     SharedModel = null;
 }
Example #21
0
        public async Task <IActionResult> Sync([FromBody] View.Device request)
        {
            var client = await GetClient();

            var organization = client.Organization;

            if (client.Role != "AppAdmin" && client.Role != "OrgAdmin")
            {
                throw new BadRequestException("Client", "Client does not have permission to access this resource.");
            }

            if (client.Role == "AppAdmin")
            {
                if (request == null || string.IsNullOrEmpty(request.Organization.OrganizationGuid))
                {
                    throw new BadRequestException("Organization", "Please provice an organization to continue.");
                }

                var appAdminOrganization = await db.Organizations.FirstOrDefaultAsync(x => x.OrganizationGuid == request.Organization.OrganizationGuid);

                if (appAdminOrganization == null)
                {
                    throw new BadRequestException("Organization", "Organization does not exist.");
                }

                organization = appAdminOrganization;
            }

            if (string.IsNullOrEmpty(request.DeviceName))
            {
                throw new BadRequestException("deviceName", "Device name required to complete request");
            }

            var syncdDevicesCount = await db.Devices.Where(x => x.Organization == organization).CountAsync();

            var maxDevicesCount = organization.MaxDevices;

            if (syncdDevicesCount >= maxDevicesCount)
            {
                throw new BadRequestException("Organization", "Maximum devices synced according to license.");
            }

            var deviceNameExists = await db.Devices
                                   .AnyAsync(x => x.DeviceName == request.DeviceName && x.Organization == organization);

            if (deviceNameExists)
            {
                throw new BadRequestException("deviceName", "Device already exists with that name");
            }

            var deviceGuid = Guid.NewGuid();
            var password   = passwordService.GenerateSecurePassword();

            var identity = new Identity
            {
                UserName = deviceGuid.ToString(),
                Email    = string.Format("{0}@{0}.com", deviceGuid.ToString())
            };

            var result = await identityManager.CreateAsync(identity, password);

            if (!result.Succeeded)
            {
                throw new BadRequestException("Device", "Unable to sync device");
            }

            try
            {
                List <Model.InventoryItem> inventoryItems = await db.OrganizationItems
                                                            .Where(x => x.Organization == organization)
                                                            .Select(x => new Model.InventoryItem
                {
                    Item     = x.Item,
                    Quantity = 0
                }).ToListAsync();

                var inventory = new Model.Inventory
                {
                    Organization   = organization,
                    InventoryItems = inventoryItems
                };

                var device = new Model.Device
                {
                    DeviceGuid   = deviceGuid.ToString(),
                    Organization = organization,
                    Inventory    = inventory,
                    DeviceName   = request.DeviceName
                };

                db.Devices.Add(device);

                await db.SaveChangesAsync();

                var deviceView = deviceViewBuilder.Build(device);
                deviceView.Password = password;
                return(StatusCode(200, deviceView));
            } catch
            {
                await identityManager.DeleteAsync(identity);

                throw new BadRequestException("Device", "Unable to sync device");
            }
        }
Example #22
0
 public int InventoryUpt(Model.Inventory Model)
 {
     throw new NotImplementedException();
 }