Ejemplo n.º 1
0
        public JsonResult ThemPhieuBuDinhMuc(int storeid, List <BukhoModel> products)
        {
            {
                var tblorder = new tbl_TransferOrder
                {
                    SysHotelID  = CommService.GetHotelId(),
                    CreatorID   = CommService.GetUserId(),
                    DateCreated = DateTime.Now,
                    Status      = 1,
                    SupplierID  = 0,
                    OrderCode   = service.GetTransferCode(),
                    //  SupplierCode = order.SoChungTu,
                    InputDate = DateTime.Today,
                };
                List <tbl_TransferOrderDetail> listDetail = new List <tbl_TransferOrderDetail>();

                var product = service.GetallProducts();
                var cate    = service.GetAllCategories();
                foreach (var item in products)
                {
                    var p1 = product.FirstOrDefault(p => p.Id == item.ProductId);
                    var c  = cate.FirstOrDefault(p => p.Id == p1?.ProductCateID);
                    listDetail.Add(new tbl_TransferOrderDetail
                    {
                        SysHotelID    = CommService.GetHotelId(),
                        item          = p1 != null ? p1.Name : "",
                        catalogitemid = p1?.ProductCateID,
                        catalogitem   = c != null ? c.Name : "",
                        DateCreated   = DateTime.Now,
                        CreatorID     = CommService.GetUserId(),
                        quantity      = item.Quantity,
                        itemid        = item.ProductId,
                        StoreID       = item.StoreId,
                        FromStoreId   = storeid,
                        Price         = Convert.ToInt32(p1?.PriceOrder),
                    });
                }
                var msg = "";
                var rs  = service.StoreTransfer(tblorder, listDetail);
                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));
            }
        }
Ejemplo n.º 2
0
        public JsonResult Add(Order order, List <OrderDetail> orderdetails)
        {
            var tblorder = new tbl_TransferOrder
            {
                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 = DateTime.ParseExact(order.NgayChungTu, "dd/MM/yyyy", CultureInfo.InvariantCulture)
            };
            List <tbl_TransferOrderDetail> listDetail = new List <tbl_TransferOrderDetail>();

            foreach (var item in orderdetails)
            {
                listDetail.Add(new tbl_TransferOrderDetail
                {
                    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,
                    FromStoreId   = order.SrcStoreId,
                    Price         = item.Price,
                });
            }
            var msg = "";
            var rs  = service.StoreTransfer(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));
        }
Ejemplo n.º 3
0
        public bool StoreTransfer(tbl_TransferOrder order, List <tbl_TransferOrderDetail> orderDetails)
        {
            using (var db = _connectionData.OpenDbConnection())
            {
                using (var ts = db.OpenTransaction())
                {
                    try
                    {
                        order.Id = Convert.ToInt32(db.Insert(order, true));
                        foreach (var item in orderDetails)
                        {
                            item.TransferID = order.Id;
                        }
                        var srcStoreId = orderDetails.FirstOrDefault().FromStoreId;
                        foreach (var item in orderDetails)
                        {
                            var product =
                                db.Select <tbl_Product>(
                                    p => p.SysHotelID == CommService.GetHotelId() && p.Id == item.itemid)
                                .FirstOrDefault();
                            var srcStoreProduct = db.Select <tbl_StoreProduct>(
                                p => p.productid == item.itemid && p.storeid == srcStoreId).FirstOrDefault();
                            if (srcStoreProduct == null || srcStoreProduct.quantity == 0)
                            {
                                continue;
                            }

                            item.quantity = srcStoreProduct.quantity > item.quantity
                                ? item.quantity
                                : srcStoreProduct.quantity;

                            db.Insert(item);
                            srcStoreProduct.quantity = srcStoreProduct.quantity - item.quantity;
                            db.Update(srcStoreProduct);
                            var existItem =
                                db.Select <tbl_StoreProduct>(
                                    p => p.productid == item.itemid && p.storeid == item.StoreID).FirstOrDefault();
                            if (existItem == null)
                            {
                                existItem = new tbl_StoreProduct
                                {
                                    quantity    = item.quantity,
                                    SysHotelID  = CommService.GetHotelId(),
                                    datecreated = DateTime.Now,
                                    productid   = item.itemid,
                                    unitid      = product.UnitID,
                                    storeid     = item.StoreID
                                };
                                var id = db.Insert(existItem, true);
                                //Thêm bản ghi Log
                                var log = new tbl_StoreProductLog
                                {
                                    typeImportExport = 3,
                                    SysHotelID       = CommService.GetHotelId(),
                                    datecreated      = DateTime.Now,
                                    storeid          = item.StoreID,
                                    productid        = item.itemid,
                                    storeproductid   = Convert.ToInt32(id),
                                    unitid           = product.UnitID,
                                    quantity         = item.quantity,
                                    fromstoreid      = srcStoreId
                                };
                                db.Insert(log);
                            }
                            else
                            {
                                var log = new tbl_StoreProductLog
                                {
                                    typeImportExport = 3,
                                    SysHotelID       = CommService.GetHotelId(),
                                    datecreated      = DateTime.Now,
                                    storeid          = item.StoreID,
                                    productid        = item.itemid,
                                    storeproductid   = existItem.Id,
                                    unitid           = product.UnitID,
                                    quantity         = item.quantity,
                                    fromstoreid      = srcStoreId
                                };
                                db.Insert(log);
                                existItem.quantity = existItem.quantity + item.quantity;
                                db.Update(existItem);
                            }
                        }
                        ts.Commit();
                        return(true);
                    }
                    catch (Exception)
                    {
                        ts.Rollback();
                        return(false);
                    }
                }
            }
        }
Ejemplo n.º 4
0
        public bool StoreTransfer(tbl_TransferOrder order, List <tbl_TransferOrderDetail> orderDetails, ref string msg)
        {
            using (var db = _connectionData.OpenDbConnection())
            {
                using (var ts = db.OpenTransaction())
                {
                    try
                    {
                        order.Id = Convert.ToInt32(db.Insert(order, true));
                        foreach (var item in orderDetails)
                        {
                            item.TransferID = order.Id;
                        }
                        db.InsertAll(orderDetails);
                        //Cập nhật tồn kho:
                        //Group theo StoreId
                        var srcStoreId = orderDetails.FirstOrDefault().FromStoreId;
                        var storeId    = orderDetails.FirstOrDefault().StoreID;
                        //  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)
                        {
                            //trừ tồn kho Kho gốc
                            var srcStoreProduct = db.Select <tbl_StoreProduct>(
                                p => p.productid == item.ProductId && p.storeid == srcStoreId).FirstOrDefault();

                            var product =
                                db.Select <tbl_Product>(
                                    p => p.SysHotelID == CommService.GetHotelId() && p.Id == item.ProductId)
                                .FirstOrDefault();

                            if (srcStoreProduct == null || srcStoreProduct.quantity < item.Total)
                            {
                                //  var product =
                                msg = "Tạo phiếu lỗi. Sản phẩm " + product.Name + " không đủ số lượng trong kho nguồn";
                                ts.Rollback();
                                return(false);
                            }
                            srcStoreProduct.quantity = srcStoreProduct.quantity - item.Total;
                            db.Update(srcStoreProduct);
                            var existItem =
                                db.Select <tbl_StoreProduct>(
                                    p => p.productid == item.ProductId && p.storeid == storeId).FirstOrDefault();
                            if (existItem == null)
                            {
                                existItem = new tbl_StoreProduct
                                {
                                    quantity    = item.Total,
                                    SysHotelID  = CommService.GetHotelId(),
                                    datecreated = DateTime.Now,
                                    productid   = item.ProductId,
                                    unitid      = product.UnitID,
                                    storeid     = storeId
                                };
                                var id = db.Insert(existItem, true);
                                //Thêm bản ghi Log
                                var log = new tbl_StoreProductLog
                                {
                                    typeImportExport = 3,
                                    SysHotelID       = CommService.GetHotelId(),
                                    datecreated      = DateTime.Now,
                                    storeid          = storeId,
                                    productid        = item.ProductId,
                                    storeproductid   = Convert.ToInt32(id),
                                    unitid           = product.UnitID,
                                    quantity         = item.Total,
                                    fromstoreid      = srcStoreId
                                };
                                db.Insert(log);
                            }
                            else
                            {
                                var log = new tbl_StoreProductLog
                                {
                                    typeImportExport = 3,
                                    SysHotelID       = CommService.GetHotelId(),
                                    datecreated      = DateTime.Now,
                                    storeid          = storeId,
                                    productid        = item.ProductId,
                                    storeproductid   = existItem.Id,
                                    unitid           = product.UnitID,
                                    quantity         = item.Total,
                                    fromstoreid      = srcStoreId
                                };
                                db.Insert(log);
                                existItem.quantity = existItem.quantity + item.Total;
                                db.Update(existItem);
                            }
                        }


                        ts.Commit();
                        return(true);
                    }
                    catch (Exception)
                    {
                        ts.Rollback();
                        return(false);
                    }
                }
            }
        }