예제 #1
0
        public override async Task <ActionResult> HandleAsync(Guid id, CancellationToken cancellationToken = default)
        {
            await _repo.DeletePurchaseItem(id);

            await _repo.Save();

            return(Ok());
        }
예제 #2
0
        public void Save(Purchase purchase)
        {
            Transaction tx = null;

            try
            {
                using (var em = EntityManagerFactory.CreateInstance(ds))
                {
                    tx = em.BeginTransaction();

                    Guid ID = Guid.NewGuid();

                    string[] columns = { "ID",            "PurchaseCode", "PurchaseDate", "SupplierId",    "PaymentMethod", "Status", "Notes", "GrandTotal",
                                         "AmountInWords", "DueDate",      "PrintCounter", "TermOfPayment",
                                         "CreatedDate",   "CreatedBy" };

                    object[] values = { ID,                               purchase.Code,                        purchase.Date.ToShortDateString(), purchase.SupplierId,    purchase.PaymentMethod,
                                        purchase.Status == true?1:0,      purchase.Notes,                       purchase.GrandTotal,
                                        purchase.AmountInWords,           purchase.DueDate.ToShortDateString(), purchase.PrintCounter,             purchase.TermOfPayment,
                                        DateTime.Now.ToShortDateString(), Store.ActiveUser };

                    var q = new Query().Select(columns).From(tableName).Insert(values);

                    em.ExecuteNonQuery(q.ToSql(), tx);

                    foreach (var purchaseItems in purchase.PurchaseItems)
                    {
                        purchaseItems.PurchaseId = ID;

                        purchaseItemRepository.Save(em, tx, purchaseItems);

                        //update product
                        productQtyRepository.UpdateQtyIn(Store.ActiveMonth, Store.ActiveYear, purchaseItems.ProductId, purchaseItems.Qty, true);
                    }

                    recordCounterRepository.UpdatePurchaseCounter(purchase.Date.Month, purchase.Date.Year);

                    tx.Commit();
                }
            }
            catch (Exception ex)
            {
                tx.Rollback();
                throw ex;
            }
        }
예제 #3
0
        public override async Task <ActionResult> HandleAsync([FromBody] UpdatePurchaseItemRequest request, CancellationToken cancellationToken = default)
        {
            var PurchaseItem = new PurchaseItem
            {
                Id         = request.Id,
                ProductId  = request.ProductId,
                PurchaseId = request.PurchaseId,
                UOM        = (Core.UnitOfMeasure)request.UOM,
                Notes      = request.Notes,
                Price      = request.Price,
                Quantity   = request.Quantity
            };

            _repo.UpdatePurchaseItem(PurchaseItem);
            await _repo.Save();

            return(Ok(PurchaseItem));
        }
 public void Save()
 {
     repository.Save();
 }