Exemplo n.º 1
0
        public Receipt CreateReceipt(PurchasedItem[] purchasedItems)
        {
            var distinctItems  = purchasedItems.GroupBy(i => new { i.Description, i.SaleTax, i.FinalPrice });
            var receiptDetails = new List <ReceiptDetail>();

            foreach (var item in distinctItems)
            {
                var detail = new ReceiptDetail()
                {
                    Quantity    = item.Count(),
                    Description = item.Key.Description,
                    Price       = item.Sum(i => i.FinalPrice)
                };

                receiptDetails.Add(detail);
            }

            var salesTaxes = purchasedItems.Select(p => p.SaleTax).Sum();
            var total      = purchasedItems.Select(p => p.FinalPrice).Sum();

            return(new Receipt()
            {
                Details = receiptDetails.ToArray(),
                PurchasedItems = purchasedItems,
                SalesTaxes = salesTaxes,
                Total = total
            });
        }
        public void Input2()
        {
            //Arrange
            decimal importedBoxOfChocolatesPriceExpected = 10.50m;
            decimal importedBottleOfPerfumePriceExpected = 54.65m;
            decimal salesTaxExpected = 7.65m;
            decimal totalExpected    = 65.15m;

            string[] inputLines = new string[]
            {
                "1 imported box of chocolates at 10.00",
                "1 imported bottle of perfume at 47.50"
            };

            //Act
            ShoppingBasket       shoppingBasket = _shoppingBasketCreator.CreateShoppingBasket(inputLines, _productCategories);
            IList <TaxedProduct> taxedProducts  = _taxCalculator.ApplyTaxes(shoppingBasket);
            ReceiptDetail        receiptDetail  = _receiptDetailCreator.CreateReceiptDetail(taxedProducts);

            //Assert
            Assert.AreEqual($"1 imported box of chocolates: {importedBoxOfChocolatesPriceExpected}{Environment.NewLine}" +
                            $"1 imported bottle of perfume: {importedBottleOfPerfumePriceExpected}{Environment.NewLine}" +
                            $"Sales Taxes: {salesTaxExpected}{Environment.NewLine}" +
                            $"Total: {totalExpected}{Environment.NewLine}", receiptDetail.Receipt);
        }
        public void Input1()
        {
            //Arrange
            decimal bookPriceExpected         = 12.49m;
            decimal musicCdPriceExpected      = 16.49m;
            decimal chocolateBarPriceExpected = 0.85m;
            decimal salesTaxExpected          = 1.50m;
            decimal totalExpected             = 29.83m;

            string[] inputLines = new string[]
            {
                "1 book at 12.49",
                "1 music CD at 14.99",
                "1 chocolate bar at 0.85"
            };

            //Act
            ShoppingBasket       shoppingBasket = _shoppingBasketCreator.CreateShoppingBasket(inputLines, _productCategories);
            IList <TaxedProduct> taxedProducts  = _taxCalculator.ApplyTaxes(shoppingBasket);
            ReceiptDetail        receiptDetail  = _receiptDetailCreator.CreateReceiptDetail(taxedProducts);

            //Assert
            Assert.AreEqual($"1 book: {bookPriceExpected}{Environment.NewLine}" +
                            $"1 music CD: {musicCdPriceExpected}{Environment.NewLine}" +
                            $"1 chocolate bar: {chocolateBarPriceExpected}{Environment.NewLine}" +
                            $"Sales Taxes: {salesTaxExpected}{Environment.NewLine}" +
                            $"Total: {totalExpected}{Environment.NewLine}", receiptDetail.Receipt);
        }
        public void Input3()
        {
            //Arrange
            decimal importedBottleOfPerfumePriceExpected = 32.19m;
            decimal bottleOfPerfumePriceExpected         = 20.89m;
            decimal packetOfHeadachePillsPriceExpected   = 9.75m;
            decimal boxOfImportedChocolatesPriceExpected = 11.85m;
            decimal salesTaxExpected = 6.70m;
            decimal totalExpected    = 74.68m;

            string[] inputLines = new string[]
            {
                "1 imported bottle of perfume at 27.99",
                "1 bottle of perfume at 18.99",
                "1 packet of headache pills at 9.75",
                "1 box of imported chocolates at 11.25"
            };

            //Act
            ShoppingBasket       shoppingBasket = _shoppingBasketCreator.CreateShoppingBasket(inputLines, _productCategories);
            IList <TaxedProduct> taxedProducts  = _taxCalculator.ApplyTaxes(shoppingBasket);
            ReceiptDetail        receiptDetail  = _receiptDetailCreator.CreateReceiptDetail(taxedProducts);

            //Assert
            Assert.AreEqual($"1 imported bottle of perfume: {importedBottleOfPerfumePriceExpected}{Environment.NewLine}" +
                            $"1 bottle of perfume: {bottleOfPerfumePriceExpected}{Environment.NewLine}" +
                            $"1 packet of headache pills: {packetOfHeadachePillsPriceExpected}{Environment.NewLine}" +
                            $"1 imported box of chocolates: {boxOfImportedChocolatesPriceExpected}{Environment.NewLine}" +
                            $"Sales Taxes: {salesTaxExpected}{Environment.NewLine}" +
                            $"Total: {totalExpected}{Environment.NewLine}", receiptDetail.Receipt);
        }
Exemplo n.º 5
0
        public bool AddDetail(CartDetails cartdetail, UserAccount user)
        {
            try
            {
                using (var db = new DBContext())
                {
                    var    receipt = db.Receipts.FirstOrDefault(x => x.Email == user.Email);
                    double total   = Int32.Parse(cartdetail.price.Replace(".", "").Replace("đ", "")) * cartdetail.Quantity;
                    if (receipt != null)
                    {
                        ReceiptDetail detail = new ReceiptDetail()
                        {
                            ReceiptId = receipt.ReceiptId,
                            Name      = cartdetail.Name,
                            Type      = cartdetail.type,
                            Quantity  = cartdetail.Quantity,
                            Price     = cartdetail.price,
                            Total     = total
                        };
                        var cartid     = cartdetail.CartId;
                        var cartdelete = db.CartDetails.FirstOrDefault(x => x.CartId == cartid);


                        db.CartDetails.Remove(cartdelete);
                        db.ReceiptDetails.Add(detail);
                        db.SaveChanges();
                        return(true);
                    }
                }
            }
            catch (Exception e) { }
            return(false);
        }
    public IList <ReceiptDetail> PopulateReceiptDetailList()
    {
        IList <ReceiptDetail> receiptDetailList = new List <ReceiptDetail>();

        for (int i = 0; i < this.GV_List.Rows.Count; i++)
        {
            GridViewRow row = this.GV_List.Rows[i];

            HiddenField hfId            = (HiddenField)row.FindControl("hfId");
            HiddenField hfOrderDetailId = (HiddenField)row.FindControl("hfOrderDetailId");
            TextBox     tbHuId          = (TextBox)row.FindControl("tbHuId");
            TextBox     tbHuReceiveQty  = (TextBox)row.FindControl("tbHuReceiveQty");
            TextBox     tbReceiveQty    = (TextBox)row.FindControl("tbReceiveQty");
            TextBox     tbRejectQty     = (TextBox)row.FindControl("tbRejectQty");
            TextBox     tbScrapQty      = (TextBox)row.FindControl("tbScrapQty");
            decimal     reveiveQty      = tbHuId.Text != string.Empty ? (tbHuReceiveQty.Text.Trim() != string.Empty ? Decimal.Parse(tbHuReceiveQty.Text.Trim()) : 0) : (tbReceiveQty.Text.Trim() != string.Empty ? Decimal.Parse(tbReceiveQty.Text.Trim()) : 0);
            decimal     rejectQty       = tbRejectQty.Text.Trim() == string.Empty ? 0 : Decimal.Parse(tbRejectQty.Text.Trim());
            decimal     scrapQty        = tbScrapQty.Text.Trim() == string.Empty ? 0 : Decimal.Parse(tbScrapQty.Text.Trim());
            if (reveiveQty != 0 || rejectQty != 0 || scrapQty != 0)
            {
                ReceiptDetail receiptDetail = new ReceiptDetail();
                receiptDetail.OrderLocationTransaction = TheOrderLocationTransactionMgr.LoadOrderLocationTransaction(Int32.Parse(hfId.Value));

                receiptDetail.ReceivedQty = reveiveQty;
                receiptDetail.RejectedQty = rejectQty;
                receiptDetail.ScrapQty    = scrapQty;
                receiptDetail.HuId        = tbHuId.Text.Trim() == string.Empty ? null : tbHuId.Text.Trim();
                receiptDetailList.Add(receiptDetail);
            }
        }
        return(receiptDetailList);
    }
        public void CreateReceiptDetail_2TaxedProducts_CorrectReceipt()
        {
            //Arrange
            decimal musicCdGrossAmount = 16.49m;
            decimal bookGrossAmount    = 14.99m;
            decimal total      = musicCdGrossAmount + bookGrossAmount;
            decimal salesTaxes = 4.00m;
            IList <TaxedProduct> taxedProducts = new List <TaxedProduct>()
            {
                new TaxedProduct(
                    new FlatTaxDecorator(
                        new Product(1, 14.99m, "1 music CD", "music CD", false, CategoryType.Other),
                        "Basic Sales Tax", 0.1m), musicCdGrossAmount),
                new TaxedProduct(
                    new FlatTaxDecorator(
                        new Product(1, 12.49m, "1 book", "book", false, CategoryType.Books),
                        "Another tax", 0.2m), bookGrossAmount)
            };

            //Act
            ReceiptDetail receiptDetail = _receiptDetailCreator.CreateReceiptDetail(taxedProducts);

            //Assert
            Assert.AreEqual($"1 music CD: {musicCdGrossAmount}{Environment.NewLine}" +
                            $"1 book: {bookGrossAmount}{Environment.NewLine}" +
                            $"Sales Taxes: {salesTaxes}{Environment.NewLine}" +
                            $"Total: {total}{Environment.NewLine}", receiptDetail.Receipt);
            Assert.AreEqual(2, receiptDetail.TaxedProducts.Count);
            Assert.AreEqual("1 music CD, Basic Sales Tax", receiptDetail.TaxedProducts.First().Product.GetDescription());
            Assert.AreEqual("1 book, Another tax", receiptDetail.TaxedProducts.Last().Product.GetDescription());
        }
Exemplo n.º 8
0
        public String update(ReceiptDetail p, String userId)
        {
            String re = "", sql = "";

            chkNull(p);
            sql = "Update " + rcpD.table + " Set " +
                  " " + rcpD.item_id + "='" + p.item_id + "' " +
                  "," + rcpD.job_code + "='" + p.job_code.Replace("'", "''") + "' " +
                  "," + rcpD.receipt_id + "='" + p.receipt_id.Replace("'", "''") + "' " +
                  "," + rcpD.remark + "='" + p.remark.Replace("'", "''") + "' " +
                  "," + rcpD.date_modi + "=now() " +
                  "," + rcpD.user_modi + "='" + userId.Replace("'", "''") + "' " +
                  "," + rcpD.job_id + "='" + p.job_id.Replace("'", "''") + "' " +
                  "," + rcpD.amount + "='" + p.amount.Replace("'", "''") + "' " +
                  "," + rcpD.item_name_t + "='" + p.item_name_t.Replace("'", "''") + "' " +
                  "," + rcpD.billing_detail_id + "='" + p.billing_detail_id.Replace("'", "''") + "' " +
                  "," + rcpD.price + "='" + p.price.Replace("'", "''") + "' " +
                  "," + rcpD.qty + "='" + p.qty.Replace("'", "''") + "' " +
                  //"," + rcpD.item_name_t + "='" + p.item_name_t.Replace("'", "''") + "' " +
                  "Where " + rcpD.pkField + "='" + p.receipt_detail_id + "'"
            ;

            try
            {
                re = conn.ExecuteNonQuery(conn.conn, sql);
            }
            catch (Exception ex)
            {
                sql = ex.Message + " " + ex.InnerException;
            }
            return(re);
        }
Exemplo n.º 9
0
        /// <summary>
        /// Thêm Hóa đơn nhập chi tiết
        /// </summary>
        /// <param name="receiptId">Mã hóa đơn nhập</param>
        /// <param name="productId">Mã mặt hàng</param>
        /// <param name="quantity">Số lượng nhập</param>
        /// <param name="price">Thành tiền</param>
        /// <param name="total"></param>
        private void InsertReceiptDetails(string receiptId, string productId, int quantity, int price, int total)
        {
            var receiptDetail = new ReceiptDetail()
            {
                ReceiptID = receiptId,
                ProductID = productId,
                Quantity  = quantity,
                Price     = price,
                Active    = true,
                Total     = total,
            };

            try
            {
                _receiptDetailService.Add(receiptDetail);
            }
            catch (SqlException ex)
            {
                MessageBoxHelper.ShowMessageBoxError(ex.Message);
            }
            catch (Exception ex)
            {
                MessageBoxHelper.ShowMessageBoxError(ex.Message);
            }
        }
Exemplo n.º 10
0
        static void Main(string[] args)
        {
            try
            {
                #region Bootstrap

                IConfigurationRoot configuration = GetConfigurationRoot();
                var         configurationHelper  = new ConfigurationHelper(configuration);
                TaxSettings taxSettings          = configurationHelper.GetTaxSettings();
                IList <Tax> taxes         = taxSettings.GetAllTaxes();
                var         taxCalculator = new TaxCalculator(taxes);
                IDictionary <string, CategoryType> productCategories = configurationHelper.GetProductCategories();
                var shoppingBasketCreator = new ShoppingBasketCreator();
                var receiptDetailCreator  = new ReceiptDetailCreator();
                var receiptDeatilPrinter  = new ReceiptDeatilPrinter();

                #endregion

                string[]             inputLines     = GetInputLines(configuration);
                ShoppingBasket       shoppingBasket = shoppingBasketCreator.CreateShoppingBasket(inputLines, productCategories);
                IList <TaxedProduct> taxedProducts  = taxCalculator.ApplyTaxes(shoppingBasket);
                ReceiptDetail        receiptDetail  = receiptDetailCreator.CreateReceiptDetail(taxedProducts);
                receiptDeatilPrinter.Print(receiptDetail);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                Console.ReadLine();
            }
        }
Exemplo n.º 11
0
        private void chkNull(ReceiptDetail p)
        {
            int     chk  = 0;
            Decimal chk1 = 0;

            p.date_modi   = p.date_modi == null ? "" : p.date_modi;
            p.date_cancel = p.date_cancel == null ? "" : p.date_cancel;
            p.user_create = p.user_create == null ? "" : p.user_create;
            p.user_modi   = p.user_modi == null ? "" : p.user_modi;
            p.user_cancel = p.user_cancel == null ? "" : p.user_cancel;
            p.item_id     = p.item_id == null ? "" : p.item_id;
            p.item_name_t = p.item_name_t == null ? "" : p.item_name_t;
            p.job_code    = p.job_code == null ? "" : p.job_code;
            p.remark      = p.remark == null ? "" : p.remark;

            p.receipt_id        = int.TryParse(p.receipt_id, out chk) ? chk.ToString() : "0";
            p.item_id           = int.TryParse(p.item_id, out chk) ? chk.ToString() : "0";
            p.job_id            = int.TryParse(p.job_id, out chk) ? chk.ToString() : "0";
            p.item_id           = int.TryParse(p.item_id, out chk) ? chk.ToString() : "0";
            p.billing_detail_id = int.TryParse(p.billing_detail_id, out chk) ? chk.ToString() : "0";

            p.amount = Decimal.TryParse(p.amount, out chk1) ? chk1.ToString() : "0";
            p.qty    = Decimal.TryParse(p.qty, out chk1) ? chk1.ToString() : "0";
            p.price  = Decimal.TryParse(p.price, out chk1) ? chk1.ToString() : "0";
        }
Exemplo n.º 12
0
        private async Task <bool> CreateReceiptDetail(ReceiptDetail receiptDetail)
        {
            try
            {
                if (!await _unitOfWork.Receipts.IsExist(s => s.ReceiptID == receiptDetail.ReceiptID) || !await _unitOfWork.Stocks.IsExist(s => s.StockID == receiptDetail.StockID))
                {
                    return(false);
                }
                Stock st = await _unitOfWork.Stocks.FindById((int)receiptDetail.StockID);

                if (st.StockQuantity < receiptDetail.SoldQuantity)
                {
                    return(false);
                }
                st.StockQuantity -= receiptDetail.SoldQuantity;
                Receipt rc = await _unitOfWork.Receipts.FindById((int)receiptDetail.ReceiptID);

                rc.TotalAmount += receiptDetail.SoldQuantity * st.Price;
                await _unitOfWork.ReceiptDetails.Create(receiptDetail);

                return(true);
            }
            catch (Exception)
            {
                _unitOfWork.Dispose();
                return(false);
            }
        }
Exemplo n.º 13
0
        public IList <ReceiptDetail> CreateReceiptDetail(Receipt receipt, OrderLocationTransaction inOrderLocationTransaction, IList <Hu> huList)
        {
            IList <ReceiptDetail> receiptDetailList = new List <ReceiptDetail>();

            foreach (Hu hu in huList)
            {
                ReceiptDetail receiptDetail = new ReceiptDetail();
                receiptDetail.Receipt = receipt;
                receiptDetail.OrderLocationTransaction = inOrderLocationTransaction;
                receiptDetail.HuId  = hu.HuId;
                receiptDetail.LotNo = hu.LotNo;

                //根据hu的质量标记判断是正品还是次品
                if (hu.QualityLevel == BusinessConstants.CODE_MASTER_ITEM_QUALITY_LEVEL_VALUE_1)
                {
                    //先乘Hu.UnitQty转为基本单位,在除outOrderLocationTransaction.UnitQty转为订单单位。
                    receiptDetail.ReceivedQty = hu.Qty * hu.UnitQty / inOrderLocationTransaction.UnitQty;
                }
                else if (hu.QualityLevel == BusinessConstants.CODE_MASTER_ITEM_QUALITY_LEVEL_VALUE_2)
                {
                    receiptDetail.RejectedQty = hu.Qty * hu.UnitQty / inOrderLocationTransaction.UnitQty;
                }
                else
                {
                    throw new TechnicalException("hu quality level:" + hu.QualityLevel + " not valided");
                }

                this.CreateReceiptDetail(receiptDetail);

                receiptDetailList.Add(receiptDetail);
                receipt.AddReceiptDetail(receiptDetail);
            }

            return(receiptDetailList);
        }
Exemplo n.º 14
0
        public ActionResult Cancel(int ReceiptDetailID)
        {
            ReceiptDetail receiptDetail         = info.GetReceiptDetailByReceiptDetailID(ReceiptDetailID);
            Receipt       receipt               = info.GetReceiptByReceiptID(receiptDetail.ReceiptID).SingleOrDefault();
            IEnumerable <ReceiptDetail> details = info.GetReceiptDetailByReceiptID(receipt.ReceiptID);

            info.UpdateReceiptDetail(ReceiptDetailID, "Cancel");
            int temp1 = 0, temp2 = 0; // số status confirm, cancel
            int n = details.Count();

            foreach (ReceiptDetail detail in details)
            {
                if (detail.Status == "Confirm")
                {
                    temp1++;
                }
                else if (detail.Status == "Cancel")
                {
                    temp2++;
                }
            }
            if ((temp1 + temp2) == n) // status cuối cùng
            {
                if (temp1 != 0)       // có status confirm
                {
                    info.UpdateReceipt(receipt.ReceiptID, "Confirm");
                }
                return(RedirectToAction("GetAllReceiptWaitToConfirm"));
            }
            else
            {
                return(RedirectToAction("GetReceiptDetailByReceiptID", new { ReceiptID = receiptDetail.ReceiptID }));
            }
        }
Exemplo n.º 15
0
        public ActionResult Confirm(int ReceiptDetailID)
        {
            ReceiptDetail receiptDetail = info.GetReceiptDetailByReceiptDetailID(ReceiptDetailID);

            info.UpdateReceiptDetail(ReceiptDetailID, "Confirm");
            Receipt receipt = info.GetReceiptByReceiptID(receiptDetail.ReceiptID).SingleOrDefault();
            IEnumerable <ReceiptDetail> details = info.GetReceiptDetailByReceiptID(receipt.ReceiptID);
            int n    = details.Count();
            int temp = 0;

            foreach (ReceiptDetail detail in details)
            {
                if (detail.Status == "Confirm" || detail.Status == "Cancel")
                {
                    temp++;
                }
            }
            if (temp == n) // status cuối cùng trong phiếu nhập
            {
                info.UpdateReceipt(receipt.ReceiptID, "Confirm");
                return(RedirectToAction("GetAllReceiptWaitToConfirm"));
            }
            else
            {
                return(RedirectToAction("GetReceiptDetailByReceiptID", new { ReceiptID = receiptDetail.ReceiptID }));
            }
        }
Exemplo n.º 16
0
        /// <summary>
        /// Thêm Hóa đơn nhập chi tiết
        /// </summary>
        /// <param name="receiptId">Mã hóa đơn nhập</param>
        /// <param name="productId">Mã mặt hàng</param>
        /// <param name="quantityReceipt">Số lượng nhập</param>
        /// <param name="price">Thành tiền</param>
        /// <param name="total"></param>
        private void InsertReceiptDetails(string receiptId, string productId, int quantityReceipt, int price, int total)
        {
            var receiptDetail = new ReceiptDetail()
            {
                ReceiptID = receiptId,
                ProductID = productId,
                Quantity  = quantityReceipt,
                Price     = price,
                Active    = true,
                Total     = total,
            };

            try
            {
                _receiptDetailService.Add(receiptDetail);
            }
            catch (SqlException ex)
            {
                messagebox.InnerHtml = string.Format("<div class='alert alert-danger'>" +
                                                     "<strong>Lỗi!</strong> {0} .</div>", ex.Message);
            }
            catch (Exception ex)
            {
                messagebox.InnerHtml = string.Format("<div class='alert alert-danger'>" +
                                                     "<strong>Lỗi!</strong> {0} .</div>", ex.Message);
            }
        }
Exemplo n.º 17
0
        private void BatchProcess(IList <DssImportHistory> dssImportHistoryList)
        {
            if (dssImportHistoryList == null || dssImportHistoryList.Count == 0)
            {
                return;
            }

            IList <string> itemList  = dssImportHistoryList.Select(d => d.data1).Distinct().ToList <string>();
            IList <string> shiftList = dssImportHistoryList.Select(d => d.ShiftCode).Distinct().ToList <string>();

            var query = from d in dssImportHistoryList
                        group d by new { d.ProdLine, d.ShiftCode, Item = d.ItemCode } into g
                select new { g.Key, list = g.ToList <DssImportHistory>(), Qty = g.Sum(d => d.Qty) };

            foreach (var q in query)
            {
                string  prodLine             = q.Key.ProdLine;
                string  shiftCode            = q.Key.ShiftCode;
                string  itemCode             = q.Key.Item;
                decimal qty                  = q.Qty;
                List <DssImportHistory> list = q.list;

                if (list == null || list.Count == 0)
                {
                    continue;
                }

                OrderDetail orderDetail = null;
                Receipt     receipt     = null;
                IList <OrderLocationTransaction> orderLocationTransactionList = this.GetOrderLocationTransaction(prodLine, shiftCode, itemCode);
                IList <ReceiptDetail>            receiptDetailList            = new List <ReceiptDetail>();
                if (orderLocationTransactionList != null && orderLocationTransactionList.Count > 0)
                {
                    ReceiptDetail receiptDetail = new ReceiptDetail();
                    receiptDetail.OrderLocationTransaction = orderLocationTransactionList[0];
                    orderDetail = orderLocationTransactionList[0].OrderDetail;

                    receipt = this.BuildReceipt(orderLocationTransactionList[0], list);

                    //write db
                    try
                    {
                        ReceiveWo(list, orderDetail, receipt);
                    }
                    catch (Exception ex)
                    {
                        continue;
                    }
                }
                else
                {
                    foreach (var dssImportHistory in q.list)
                    {
                        dssImportHistory.Memo = "No FG find for prodLine " + prodLine + ",shift " + shiftCode + ",item " + itemCode;
                        dssImportHistory.ErrorCount++;
                    }
                    this.dssImportHistoryMgr.UpdateDssImportHistory(q.list);
                }
            }
        }
Exemplo n.º 18
0
 public static void updateReceiptDetail(this ReceiptDetail receiptDetail, ReceiptDetailViewModel receiptDetailVm)
 {
     receiptDetail.ReceiptID = receiptDetailVm.ReceiptID;
     receiptDetail.ProductID = receiptDetailVm.ProductID;
     receiptDetail.Quantity  = receiptDetailVm.Quantity;
     receiptDetail.Price     = receiptDetailVm.Price;
 }
Exemplo n.º 19
0
        public ActionResult Payment(string ten, string diachi, string sdt, string email)
        {
            var     user = (User)Session[FashionShop.Common.CommonConstants.USER_SESSION];
            Receipt re   = new Receipt();

            re.diaChiGiaoHang = diachi;
            re.soDienThoai    = sdt;
            re.username       = user.username;
            re.tinhTrang      = "Chưa giao hàng";
            try
            {
                ReceiptDao dao  = new ReceiptDao();
                var        ma   = dao.Insert(re);
                var        cart = (List <CartItem>)Session[Common.CommonConstants.CART_SESSION];
                foreach (var item in cart)
                {
                    ReceiptDetail detail = new ReceiptDetail();
                    detail.maHoaDon      = ma;
                    detail.maSanPham     = item.product.maSanPham;
                    detail.size          = item.size;
                    detail.soLuongDatMua = item.soLuong;
                    detail.thanhTien     = (long)(item.soLuong * int.Parse(item.product.giaSanPham.ToString()));
                    dao.InsertDetail(detail);
                }
            }
            catch (Exception ex)
            {
                return(View("Error"));
            }
            return(View("Success"));
        }
Exemplo n.º 20
0
        public async Task <IHttpActionResult> GetReceiptID(int postid)
        {
            ReceiptDetail result = new ReceiptDetail();
            var           orders = await db.Orders.Include(ord => ord.Student)
                                   .Where(o => o.PostUserId == postid)
                                   .Where(o => o.State == OrderState.待结账).ToListAsync();

            if (orders.Count() > 0)
            {
                List <OrderVMForAccount> details = new List <OrderVMForAccount>();
                foreach (var order in orders)
                {
                    var ds = db.OrderDetails.Where(d => d.OrderId == order.Id).Include(d => d.Product).Select(d => new OrderVMForAccount()
                    {
                        ActualPay   = d.ActualPay,
                        Debt        = d.Debt,
                        Discount    = d.Discount,
                        ProductName = d.Product.ProductName,
                        OrderDate   = order.OrderDate,
                        StudentName = order.Student.Name,
                        TradeNo     = order.TradeNO,
                        Channel     = order.Channel.ToString()
                    }).ToList();
                    details.AddRange(ds);
                }
                result.Orders = details;
            }

            result.Fees = null;

            return(Ok(result));
        }
Exemplo n.º 21
0
        public String insert(ReceiptDetail p, String userId)
        {
            String re = "", sql = "";

            p.active = "1";
            //p.ssdata_id = "";
            chkNull(p);
            sql = "Insert Into " + rcpD.table + "(" + rcpD.item_id + "," + rcpD.receipt_id + "," + rcpD.job_code + "," +
                  rcpD.active + "," + rcpD.remark + ", " + rcpD.job_id + ", " +
                  rcpD.date_create + ", " + rcpD.date_modi + ", " + rcpD.date_cancel + ", " +
                  rcpD.user_create + ", " + rcpD.user_modi + ", " + rcpD.user_cancel + "," +
                  rcpD.amount + "," + rcpD.item_name_t + "," +
                  rcpD.qty + "," + rcpD.price + "," + rcpD.billing_detail_id + " " +
                  ") " +
                  "Values ('" + p.item_id + "','" + p.receipt_id + "','" + p.job_code + "'," +
                  "'" + p.active + "','" + p.remark + "','" + p.job_id + "', " +
                  "now(),'" + p.date_modi + "','" + p.date_cancel + "', " +
                  "'" + userId + "','" + p.user_modi + "','" + p.user_cancel + "'," +
                  "'" + p.amount + "','" + p.item_name_t + "'," +
                  "'" + p.qty + "','" + p.price + "','" + p.billing_detail_id + "' " +
                  ")";

            try
            {
                re = conn.ExecuteNonQuery(conn.conn, sql);
            }
            catch (Exception ex)
            {
                sql = ex.Message + " " + ex.InnerException;
            }
            return(re);
        }
Exemplo n.º 22
0
        private void initConfig()
        {
            rcpD = new ReceiptDetail();
            rcpD.receipt_detail_id = "receipt_detail_id";
            rcpD.receipt_id        = "receipt_id";
            rcpD.item_id           = "item_id";
            rcpD.job_id            = "job_id";
            rcpD.job_code          = "job_code";
            rcpD.amount            = "amount";
            rcpD.active            = "active";
            rcpD.remark            = "remark";
            rcpD.date_create       = "date_create";
            rcpD.date_modi         = "date_modi";
            rcpD.date_cancel       = "date_cancel";
            rcpD.user_create       = "user_create";
            rcpD.user_modi         = "user_modi";
            rcpD.user_cancel       = "user_cancel";
            rcpD.item_name_t       = "item_name_t";
            rcpD.qty               = "qty";
            rcpD.price             = "price";
            rcpD.billing_detail_id = "billing_detail_id";
            //rcpD.price = "price";

            rcpD.table   = "t_receipt_detail";
            rcpD.pkField = "receipt_detail_id";

            lexpn = new List <ReceiptDetail>();
        }
Exemplo n.º 23
0
        public override void CreateReceiptDetail(ReceiptDetail receiptDetail)
        {
            #region 记录发货明细上的收货数量
            OrderLocationTransaction inOrderLocationTransaction = receiptDetail.OrderLocationTransaction;
            OrderDetail orderDetail = inOrderLocationTransaction.OrderDetail;
            OrderHead   orderHead   = orderDetail.OrderHead;
            if (receiptDetail.ReceivedInProcessLocationDetail != null)
            {
                //如果已经在收货时做过匹配,直接把收货数记录到匹配的InProcessLocationDetail记录上
                InProcessLocationDetail inProcessLocationDetail = this.inProcessLocationDetailMgr.LoadInProcessLocationDetail(receiptDetail.ReceivedInProcessLocationDetail.Id);
                if (inProcessLocationDetail.ReceivedQty.HasValue)
                {
                    inProcessLocationDetail.ReceivedQty += receiptDetail.ReceivedQty;
                }
                else
                {
                    inProcessLocationDetail.ReceivedQty = receiptDetail.ReceivedQty;
                }
                this.inProcessLocationDetailMgr.UpdateInProcessLocationDetail(inProcessLocationDetail);
            }
            else if (orderHead.Type != BusinessConstants.CODE_MASTER_ORDER_TYPE_VALUE_PRODUCTION) //生产不需要记录收货数量
            {
                #region 找到对应的发货单IpNo
                OrderLocationTransaction outOrderLocationTransaction = this.orderLocationTransactionMgr.GetOrderLocationTransaction(orderDetail.Id, BusinessConstants.IO_TYPE_OUT)[0];

                DetachedCriteria criteria = DetachedCriteria.For <ReceiptInProcessLocation>();
                criteria.SetProjection(Projections.Property("InProcessLocation.IpNo"));
                criteria.Add(Expression.Eq("Receipt.ReceiptNo", receiptDetail.Receipt.ReceiptNo));

                IList  list = this.criteriaMgr.FindAll(criteria);
                string ipNo = (string)list[0];
                #endregion

                IList <InProcessLocationDetail> inProcessLocationDetailList = this.inProcessLocationDetailMgr.GetInProcessLocationDetail(ipNo, outOrderLocationTransaction.Id);
                if (inProcessLocationDetailList == null || inProcessLocationDetailList.Count == 0)
                {
                    throw new TechnicalException("can't find InProcessLocationDetail by ipno and outOrderLocationTransactionId");
                }
                else if (inProcessLocationDetailList.Count == 1)
                {
                    if (inProcessLocationDetailList[0].ReceivedQty.HasValue)
                    {
                        inProcessLocationDetailList[0].ReceivedQty += receiptDetail.ReceivedQty;
                    }
                    else
                    {
                        inProcessLocationDetailList[0].ReceivedQty = receiptDetail.ReceivedQty;
                    }
                    this.inProcessLocationDetailMgr.UpdateInProcessLocationDetail(inProcessLocationDetailList[0]);
                }
                else
                {
                    throw new NotImplementedException("Find serverl InProcessLocationDetails by ipno and outOrderLocationTransactionId, not impl yet.");
                }
            }
            #endregion

            this.entityDao.CreateReceiptDetail(receiptDetail);
        }
Exemplo n.º 24
0
 public async static Task SaveReceiptDetail(ReceiptDetail itemPara, ReceiptDetail oldItem)
 {
     using (var db = new SalesContext())
     {
         db.Entry(itemPara).State = EntityState.Modified;
         await UpdateDatabase(db);
     }
 }
        public ActionResult DeleteConfirmed(int id)
        {
            ReceiptDetail receiptDetail = db.ReceiptDetails.Find(id);

            db.ReceiptDetails.Remove(receiptDetail);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Exemplo n.º 26
0
        public void DeleteById(int id)
        {
            ReceiptDetail e = _receiptDetailRepository.FindById(id);

            if (e != null)
            {
                _receiptDetailRepository.Delete(e);
            }
        }
Exemplo n.º 27
0
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            ReceiptDetail receiptDetail = await db.ReceiptDetails.FindAsync(id);

            db.ReceiptDetails.Remove(receiptDetail);
            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
Exemplo n.º 28
0
        public ActionResult DeleteDetail(int bookID)
        {
            ReceiptDetail a = db.ReceiptDetails.Where(s => s.BookID == bookID).FirstOrDefault();

            db.ReceiptDetails.Remove(a);
            db.SaveChanges();

            return(RedirectToAction("CreateReceiptDetails"));
        }
Exemplo n.º 29
0
        private void BtnPrnRcp_Click(object sender, EventArgs e)
        {
            //throw new NotImplementedException();
            if (MessageBox.Show("ต้องการ บันทึกช้อมูล ", "", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.OK)
            {
                setReceipt();
                String re = xC.accDB.rcpDB.insertReceipt(rcp, xC.userId);
                int    chk = 0, chkD = 0;
                if (int.TryParse(re, out chk))
                {
                    foreach (Row rowB in grfBill.Rows)
                    {
                        if (rowB[colBitmId] == null)
                        {
                            continue;
                        }

                        Decimal       amtE = 0, amtI = 0;
                        ReceiptDetail rcpD = new ReceiptDetail();
                        Decimal.TryParse(rowB[colBExpn] != null ? rowB[colBExpn].ToString() : "0", out amtE);
                        Decimal.TryParse(rowB[colBimcome] != null ? rowB[colBimcome].ToString() : "0", out amtI);
                        amtE += amtI;

                        rcpD.receipt_detail_id = "";
                        rcpD.receipt_id        = rcp.receipt_id;
                        rcpD.item_id           = rowB[colBitmId].ToString();
                        rcpD.job_id            = jim.job_import_id;
                        rcpD.job_code          = "";
                        rcpD.amount            = amtE.ToString();
                        rcpD.active            = "1";
                        rcpD.remark            = "";
                        rcpD.date_create       = "";
                        rcpD.date_modi         = "";
                        rcpD.date_cancel       = "";
                        rcpD.user_create       = "";
                        rcpD.user_modi         = "";
                        rcpD.user_cancel       = "";
                        rcpD.item_name_t       = rowB[colBItmNameT].ToString();
                        rcpD.qty               = "0";
                        rcpD.price             = "0";
                        rcpD.billing_detail_id = "";
                        String re1 = "";
                        re1 = xC.accDB.rcpdDB.insertReceiptDetail(rcpD, xC.userId);
                        if (int.TryParse(re1, out chk))
                        {
                            chkD++;
                        }
                    }
                    if (chkD == (grfBill.Rows.Count - 1))
                    {
                        txtRcpCode.Value = rcp.receipt_code;
                        btnPrnRcp.Image  = Resources.accept_database24;
                    }
                }
            }
        }
Exemplo n.º 30
0
        public void Print(ReceiptDetail receiptDetail)
        {
            if (receiptDetail == null)
            {
                throw new ArgumentNullException(nameof(receiptDetail));
            }

            Console.WriteLine(receiptDetail.Receipt);
            Console.ReadLine();
        }
Exemplo n.º 31
0
        protected ReceiptDetail GetObject(DataRow dr)
        {
            ReceiptDetail objReceiptDetail = new ReceiptDetail();
            objReceiptDetail.Id = (dr["Id"] == DBNull.Value) ? 0 : (Int64)dr["Id"];
            objReceiptDetail.ReceiptMasterId = (dr["ReceiptMasterId"] == DBNull.Value) ? 0 : (Int64)dr["ReceiptMasterId"];
            objReceiptDetail.BillMasterId = (dr["BillMasterId"] == DBNull.Value) ? 0 : (Int64)dr["BillMasterId"];
            objReceiptDetail.BillDetailId = (dr["BillDetailId"] == DBNull.Value) ? 0 : (Int64)dr["BillDetailId"];
            objReceiptDetail.BillAmount = (dr["BillAmount"] == DBNull.Value) ? 0 : (Decimal)dr["BillAmount"];
            objReceiptDetail.PaymentAmount = (dr["PaymentAmount"] == DBNull.Value) ? 0 : (Decimal)dr["PaymentAmount"];
            objReceiptDetail.Due = (dr["Due"] == DBNull.Value) ? 0 : (Decimal)dr["Due"];

            return objReceiptDetail;
        }