Exemplo n.º 1
0
        public bool Delete(string Id, ref string msg)
        {
            bool result = true;

            using (NuWebContext cxt = new NuWebContext())
            {
                try
                {
                    //if (IsCanDelete(Id))
                    {
                        I_Work_Order itemDelete = (from tb in cxt.I_Work_Order
                                                   where tb.Id == Id
                                                   select tb).FirstOrDefault();
                        if (itemDelete != null)
                        {
                            itemDelete.Status = (int)Commons.EStatus.Deleted;

                            var listWOD = (from wod in cxt.I_Work_Order_Detail
                                           where wod.WorkOrderId.Equals(itemDelete.Id)
                                           select wod).ToList();
                            listWOD.ForEach(x => x.Status = (int)Commons.EStatus.Deleted);

                            cxt.SaveChanges();
                        }
                    }
                    //else
                    //{
                    //    msg = "This Work Order has been in used. Can't Delete";
                    //    result = false;
                    //}
                }
                catch (Exception ex)
                {
                    _logger.Error(ex);
                    result = false;
                }
                finally
                {
                    if (cxt != null)
                    {
                        cxt.Dispose();
                    }
                }
            }
            return(result);
        }
Exemplo n.º 2
0
        public bool Insert(WorkOrderModels model, ref string msg)
        {
            bool result = true;

            using (NuWebContext cxt = new NuWebContext())
            {
                using (var transaction = cxt.Database.BeginTransaction())
                {
                    try
                    {
                        I_Work_Order item = new I_Work_Order();
                        item.Id = Guid.NewGuid().ToString();

                        item.StoreId       = model.StoreId;
                        item.Code          = CommonHelper.GetGenNo(Commons.ETableZipCode.WorkOrder, model.StoreId);
                        item.WODate        = model.WODate;
                        item.DateCompleted = model.DateCompleted;
                        item.Total         = model.Total;
                        item.Status        = model.Status;
                        item.Note          = model.Note;

                        item.CreatedBy    = model.CreatedBy;
                        item.CreatedDate  = model.CreatedDate;
                        item.ModifierBy   = model.ModifierBy;
                        item.ModifierDate = model.ModifierDate;
                        item.IsActived    = model.IsActived;
                        //=================
                        List <I_Work_Order_Detail> ListInsert = new List <I_Work_Order_Detail>();
                        foreach (var WODetail in model.ListItem)
                        {
                            ListInsert.Add(new I_Work_Order_Detail
                            {
                                Id           = Guid.NewGuid().ToString(),
                                WorkOrderId  = item.Id,
                                IngredientId = WODetail.IngredientId,
                                Qty          = WODetail.Qty,

                                UnitPrice            = WODetail.UnitPrice,
                                Amount               = WODetail.Qty * WODetail.UnitPrice,
                                ReceiptNoteQty       = 0,
                                ReturnReceiptNoteQty = 0,

                                BaseQty = WODetail.Qty * (WODetail.IngReceivingQty == 0 ? 1 : WODetail.IngReceivingQty),
                                Status  = (int)Commons.EStatus.Actived
                            });
                            //lstInventory.Add(new InventoryModels()
                            //{
                            //    StoreId = model.StoreID,
                            //    IngredientId = WODetail.IngredientId,
                            //    Price = WODetail.UnitPrice,
                            //    Quantity = WODetail.Qty * (WODetail.IngReceivingQty == 0 ? 1 : WODetail.IngReceivingQty)
                            //});
                        }

                        cxt.I_Work_Order.Add(item);
                        cxt.I_Work_Order_Detail.AddRange(ListInsert);
                        cxt.SaveChanges();
                        transaction.Commit();

                        //Update inventory
                        //var isUpdateInentoryPO = _inventoryFactory.UpdateInventoryForPO(lstInventory);
                        //_logger.Info(string.Format("UpdateInventoryForPO: [{0}]", isUpdateInentoryPO));
                    }
                    catch (Exception ex)
                    {
                        _logger.Error(ex);
                        result = false;
                        transaction.Rollback();
                    }
                    finally
                    {
                        if (cxt != null)
                        {
                            cxt.Dispose();
                        }
                    }
                }
            }
            return(result);
        }