public static void delete(tbl_PurchaseOrder po)
        {
            RMSDBEntities db = DBContext.getInstance();

            db.tbl_PurchaseOrder.Remove(po);
            db.SaveChanges();
        }
        public static void insert(tbl_PurchaseOrder po)
        {
            RMSDBEntities db = DBContext.getInstance();

            db.tbl_PurchaseOrder.Add(po);
            db.SaveChanges();
        }
Example #3
0
        public string SaveUpdatePurchaseOrder(PurchaseOrderModel model)
        {
            string          msg    = "";
            ShomaRMEntities db     = new ShomaRMEntities();
            int             userid = ShomaRM.Models.ShomaGroupWebSession.CurrentUser != null ? ShomaRM.Models.ShomaGroupWebSession.CurrentUser.UserID : 0;

            if (model.POID == 0)
            {
                var SavePurchaseOrder = new tbl_PurchaseOrder()
                {
                    PropertyID   = model.PropertyID,
                    OrderNumber  = model.OrderNumber,
                    Vendor       = model.Vendor,
                    PODesc       = model.PODesc,
                    PODate       = model.PODate,
                    TotalAmount  = model.TotalAmount,
                    Route        = model.Route,
                    ApprovedDate = model.ApprovedDate,
                    ApprovedBy   = model.ApprovedBy,
                    CanceledDate = model.CanceledDate,
                    CanceledBy   = model.CanceledBy,
                    CreatedBy    = userid,
                    CreatedDate  = Convert.ToDateTime(DateTime.Now.ToString("MM/dd/yyyy"))
                };
                db.tbl_PurchaseOrder.Add(SavePurchaseOrder);
                db.SaveChanges();
                msg = "Purchase Order Save Successfully";
            }
            else
            {
                var UpdatePurchaseOrder = db.tbl_PurchaseOrder.Where(co => co.POID == model.POID).FirstOrDefault();

                if (UpdatePurchaseOrder != null)
                {
                    UpdatePurchaseOrder.PropertyID   = model.PropertyID;
                    UpdatePurchaseOrder.OrderNumber  = model.OrderNumber;
                    UpdatePurchaseOrder.Vendor       = model.Vendor;
                    UpdatePurchaseOrder.PODesc       = model.PODesc;
                    UpdatePurchaseOrder.TotalAmount  = model.TotalAmount;
                    UpdatePurchaseOrder.Route        = model.Route;
                    UpdatePurchaseOrder.ApprovedDate = model.ApprovedDate;
                    UpdatePurchaseOrder.ApprovedBy   = model.ApprovedBy;
                    UpdatePurchaseOrder.CanceledDate = model.CanceledDate;
                    UpdatePurchaseOrder.CanceledBy   = model.CanceledBy;

                    db.SaveChanges();
                    msg = "Purchase Order Updated Successfully";
                }
            }
            db.Dispose();
            return(msg);
        }
        public JsonResult ThemPhieuXuat(Order order, List <OrderDetail> orderdetails)
        {
            var tblorder = new tbl_PurchaseOrder
            {
                SysHotelID   = CommService.GetHotelId(),
                CreatorID    = CommService.GetUserId(),
                DateCreated  = DateTime.Now,
                Status       = 1,
                SupplierID   = 0,
                OrderCode    = order.SoPhieu,
                SupplierCode = order.SoChungTu,
                InputDate    = Share.Todate(order.NgayNhapHD),
                DatePayment  = Share.Todate(order.NgayChungTu),
                TypeOrder    = 2
            };
            List <tbl_PurchaseOrderDetail> listDetail = new List <tbl_PurchaseOrderDetail>();

            foreach (var item in orderdetails)
            {
                listDetail.Add(new tbl_PurchaseOrderDetail
                {
                    SysHotelID      = CommService.GetHotelId(),
                    item            = item.ProductName,
                    catalogitemid   = item.CateId,
                    catalogitem     = item.CateName,
                    DateCreated     = DateTime.Now,
                    CreatorID       = CommService.GetUserId(),
                    quantity        = item.Quantity,
                    itemid          = item.ProductId,
                    StoreID         = order.StoreId,
                    Price           = item.Price,
                    ManufactureDate = Share.Todate(item.NgaySanXuat),
                    ExpirationDate  = Share.Todate(item.HanSuDung),
                });
            }
            var msg = "";
            var rs  = service.Xuatkho(tblorder, listDetail, ref msg);

            if (string.IsNullOrEmpty(msg))
            {
                msg = "Tạo phiếu lỗi";
            }
            return(Json(new { ResponseCode = (rs ? "01" : "00"), Message = (rs ? "Tạo phiếu thành công" : msg) }, JsonRequestBehavior.AllowGet));

            return(null);
        }
        public JsonResult GetPOByDocID(string DOCID)
        {
            tbl_PurchaseOrder PO = TransactionBL.GetOrderByDocID(DOCID);

            return(Json(new { PostingDate = PO.PostingDate.Value.ToString("dd/MM/yyyy"), VendorID = PO.VendorID }, JsonRequestBehavior.AllowGet));
        }
Example #6
0
        public void AcceptPO(Dictionary <string, string> dictPO, string docid)
        {
            tbl_PurchaseOrder PO = Context.PurchaseOrder.Get(e => e.DocumentID == docid && e.POStatus == "Open").FirstOrDefault();
            List <tbl_PurchaseOrder_Detail> lstPODetail = Context.PurchaseOrderDetail.Get(e => e.DocumentID == docid).ToList();
            bool isChanged = false;

            tbl_StockReceive stockRecieve = new tbl_StockReceive();

            stockRecieve.DocumentID   = docid;
            stockRecieve.PONumber     = docid;
            stockRecieve.CompanyID    = PO.CompanyID;
            stockRecieve.LocationID   = PO.LocationID;
            stockRecieve.StorageID    = PO.StorageID;
            stockRecieve.DocumentDate = PO.DocumentDate;
            stockRecieve.PostingDate  = PO.PostingDate;
            stockRecieve.VendorID     = PO.VendorID;
            stockRecieve.Amount       = PO.Amount;
            stockRecieve.Discount     = PO.Discount;
            stockRecieve.NetValue     = PO.NetValue;
            stockRecieve.UserID       = PO.UserID;
            stockRecieve.AddDate      = PO.AddDate;
            stockRecieve.Dataid       = PO.Dataid;
            Context.StockReceive.Insert(stockRecieve);
            Context.StockReceive.Save();

            foreach (tbl_PurchaseOrder_Detail POD in lstPODetail)
            {
                decimal qty = Convert.ToDecimal(dictPO[POD.MaterialID]);
                if (POD.TranQty != qty)
                {
                    isChanged = true;
                }
                tbl_StockReceive_Detail srd = new tbl_StockReceive_Detail();
                srd.DocumentID   = POD.DocumentID;
                srd.CompanyID    = POD.CompanyID;
                srd.LocationID   = POD.LocationID;
                srd.StorageID    = POD.StorageID;
                srd.DocumentDate = POD.DocumentDate;
                srd.PostingType  = POD.PostingType;
                srd.PostingDate  = POD.PostingDate;
                srd.VendorID     = POD.VendorID;
                srd.Counter      = POD.Counter;
                srd.CategoryID   = POD.CategoryID;
                srd.MaterialID   = POD.MaterialID;
                srd.UOM          = POD.UOM;
                srd.TranQty      = qty;
                srd.BaseQty      = qty;
                srd.CreditQty    = POD.CreditQty;
                srd.Cost         = POD.Cost;
                srd.DiscountRate = POD.DiscountRate;
                srd.Amount       = POD.Amount;
                srd.CreditAmount = POD.CreditAmount;
                srd.UserID       = POD.UserID;
                srd.PostKey      = POD.PostKey;
                srd.AddDate      = DateTime.Now;
                srd.UpdDate      = DateTime.Now;
                srd.Dataid       = POD.Dataid;
                srd.OrderQty     = qty;
                Context.StockReceiveDetail.Insert(srd);
            }
            Context.StockReceiveDetail.Save();
            if (isChanged)
            {
                PO.POStatus = "Pending";
            }
            else
            {
                PO.POStatus = "Complete";
            }

            Context.PurchaseOrder.Update(PO);
            Context.PurchaseOrder.Save();
        }
Example #7
0
        public tbl_PurchaseOrder GetOrderByDocID(string docid)
        {
            tbl_PurchaseOrder PO = Context.PurchaseOrder.Get(e => e.DocumentID == docid).FirstOrDefault();

            return(PO);
        }
        public PurchaseOrderViewModel AddPurchaseOrder(PurchaseOrderViewModel entity)
        {
            var data = new tbl_PurchaseOrder
            {
                PurchaseOrderId   = entity.purchaseOrderId,
                PurchaseOrderCode = reference.ConfirmReferenceNo((int)ReferenceTypesEnum.PurchaseOrder, 1),
                OrderedDate       = DateTime.Now,
                VendorId          = entity.vendorId,
                IsActive          = entity.isActive,
                CreatedOn         = DateTime.Now,
                CreatedBy         = "admin",
                ModifiedOn        = DateTime.Now,
                ModifiedBy        = "admin"
            };

            context.tbl_PurchaseOrder.Add(data);

            List <tbl_PurchaseOrderDetail> lstdetails = new List <tbl_PurchaseOrderDetail>();;

            foreach (var item in entity.details)
            {
                if (item.quantity > 0)
                {
                    var details = new tbl_PurchaseOrderDetail
                    {
                        CostPrice             = item.costPrice,
                        Quantity              = item.quantity,
                        PurchaseOrderId       = data.PurchaseOrderId,
                        ProductId             = item.productId,
                        ModifiedBy            = entity.createdBy,
                        ModifiedOn            = DateTime.Now,
                        PurchaseOrderDetailId = item.purchaseOrderDetailId,
                    };
                    lstdetails.Add(details);
                }
            }
            context.tbl_PurchaseOrderDetail.AddRange(lstdetails);

            //foreach (var items in entity.details)
            //{

            //var duplicate = context.tbl_PurchaseOrderDetail.Where(c => c.PurchaseOrderDetailId >= 1).SingleOrDefault();
            //if (lstdetails != null) {
            //    //var duplicate = from c in context.tbl_PurchaseOrderDetail
            //    //                join d in context.tbl_Stock on c.PurchaseOrderDetailId equals d.PurchaseOrderDetailId
            //    //                where c.PurchaseOrderDetailId == d.PurchaseOrderDetailId
            //    //                select new tbl_Stock
            //    //                {
            //    //                    ProductId = c.ProductId,
            //    //                    QuantitySupplied = c.Quantity,
            //    //                    SellingPrice = c.CostPrice
            //    //                };

            //    //var duplicate = context.tbl_PurchaseOrderDetail.Where(c => c.PurchaseOrderDetailId >= 1).SingleOrDefault();
            //    var ven = new tbl_Stock
            //    {
            //        ProductId = duplicate.ProductId,
            //        PurchaseOrderDetailId = duplicate.PurchaseOrderDetailId,
            //        QuantitySupplied = duplicate.Quantity,
            //        //SellingPrice
            //    };

            //    context.tbl_Stock.Add(ven);
            //}
            ////}

            context.SaveChanges();
            return(entity);
        }
 public bool Xuatkho(tbl_PurchaseOrder order, List <tbl_PurchaseOrderDetail> orderDetails, ref string msg)
 {
     using (var db = _connectionData.OpenDbConnection())
     {
         // using (var ts = new TransactionScope())
         var tran = db.OpenTransaction();
         {
             try
             {
                 order.Id = Convert.ToInt32(db.Insert(order, true));
                 foreach (var item in orderDetails)
                 {
                     item.PurchaseID = order.Id;
                 }
                 db.InsertAll(orderDetails);
                 //Cập nhật tồn kho:
                 //Group theo StoreId
                 var storeIds = orderDetails.Select(p => p.StoreID).Distinct().ToList();
                 foreach (var storeId in storeIds)
                 {
                     var orderByStore = orderDetails.Where(p => p.StoreID == storeId);
                     //Group theo sản phẩm
                     var productGroup = orderByStore.GroupBy(p => p.itemid, (key, g) => new
                     {
                         ProductId = key,
                         Total     = g.Sum(p => p.quantity)
                     });
                     foreach (var item in productGroup)
                     {
                         var product =
                             db.Select <tbl_Product>(
                                 p => p.SysHotelID == CommService.GetHotelId() && p.Id == item.ProductId)
                             .FirstOrDefault();
                         var existItem =
                             db.Select <tbl_StoreProduct>(
                                 p => p.productid == item.ProductId && p.storeid == storeId).FirstOrDefault();
                         if (existItem == null || existItem.quantity < item.Total)
                         {
                             msg = "Tạo phiếu không thành công. Sản phẩm " + product.Name + " không đủ hàng";
                             tran.Rollback();
                             return(false);
                         }
                         else
                         {
                             var log = new tbl_StoreProductLog
                             {
                                 typeImportExport = 2,
                                 SysHotelID       = CommService.GetHotelId(),
                                 datecreated      = DateTime.Now,
                                 storeid          = storeId,
                                 productid        = item.ProductId,
                                 storeproductid   = existItem.Id,
                                 unitid           = product.UnitID,
                                 quantity         = item.Total,
                             };
                             db.Insert(log);
                             existItem.quantity = existItem.quantity - item.Total;
                             db.Update(existItem);
                         }
                     }
                 }
                 tran.Commit();
                 return(true);
             }
             catch (Exception)
             {
                 tran.Rollback();
                 return(false);
             }
         }
     }
 }