Exemple #1
0
        public static async Task <int> AddExpenditure(ExpenditureModel expenditure)
        {
            try
            {
                var addExpenditureSql =
                    @"INSERT INTO Expenditure (Name, Type, Amount, BillDate, Notes) VALUES (@Name, @Type, @Amount, @BillDate, @Notes);
                                        SELECT CAST(SCOPE_IDENTITY() as int)";
                var addExpenditureItemsSql = @"INSERT INTO [ExpenditureItems] (ExpenditureId, Name, Quantity, UnitPrice, TotalPrice)
                                        VALUES (@ExpenditureId, @Name, @Quantity, @UnitPrice, @TotalPrice)";

                using (var connection = OpenConnection())
                {
                    var expenditureId = connection.Query <int>(addExpenditureSql, expenditure).Single();
                    if (expenditure.ExpenditureItems != null)
                    {
                        foreach (var expenditureItem in expenditure.ExpenditureItems)
                        {
                            expenditureItem.ExpenditureId = expenditureId;
                            connection.Execute(addExpenditureItemsSql, expenditureItem);
                        }
                    }
                    return(expenditureId);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #2
0
        public async Task <ErrorCodeLib.Models.ResultModel> PUT([FromBody] ExpenditureModel model)
        {
            var result = new ErrorCodeLib.Models.ResultModel();

            if (model.id == null)
            {
                result = ErrorCode.PARAMETER_REQUIRED(new string[] { "id" }, "cht");
                return(result);
            }

            //檢查expenditure
            var exist_expenditure = _repo_expenditure.FindById(Convert.ToInt32(model.id));

            if (exist_expenditure == null)
            {
                result = ErrorCode.DB_ERROR_NOT_FOUND(null, "id", "cht");
                return(result);
            }

            //檢查project
            var exist_project = _repo_project.FindById(Convert.ToInt32(model.project_id));

            if (exist_project == null)
            {
                result = ErrorCode.DB_ERROR_NOT_FOUND(null, "project_id", "cht");
                return(result);
            }

            //檢查partner
            var exist_partner = _repo_partner.FindById(Convert.ToInt32(model.partner_id));

            if (exist_partner == null)
            {
                result = ErrorCode.DB_ERROR_NOT_FOUND(null, "partner_id", "cht");
                return(result);
            }

            //檢查item
            var exist_item = _repo_item.FindById(Convert.ToInt32(model.item_id));

            if (exist_item == null)
            {
                result = ErrorCode.DB_ERROR_NOT_FOUND(null, "item_id", "cht");
                return(result);
            }

            model.updated = DateTime.Now;

            _repo_expenditure.Update(model);

            var exception_save = _unitOfWork.Save();

            if (exception_save != null)
            {
                result = ErrorCode.CUSTOM_ERROR(exception_save.Message, "DB ERROR", 500, "cht");
            }

            result = ErrorCode.SUCCESS(null, "修改成功", "cht");
            return(result);
        }
        public void AddExpenditure()
        {
            //var expenditure = new ExpenditureModel()
            //{
            //    Name = "Shop Advance",
            //    Amount = 150000,
            //    BillDate = new DateTime(2020, 06, 01),
            //    Type = ExpenditureTypeEnum.Shop,
            //    Notes = "Advance amount gave to the shop owner"
            //};

            var items = new List <ExpenditureItemsModel>();

            items.Add(new ExpenditureItemsModel()
            {
                Name      = "Sun screen lotion",
                Quantity  = 5,
                UnitPrice = 10
            });

            var expenditure = new ExpenditureModel()
            {
                Name             = "Nykaa",
                BillDate         = DateTime.UtcNow,
                Type             = ExpenditureTypeEnum.Products,
                ExpenditureItems = items,
                Notes            = "Product bought to use for the customers",
                Amount           = items.Sum(i => i.TotalPrice)
            };

            Expenditure.AddExpenditure(expenditure);
        }
        public ActionResult Edit(ExpenditureModel model)
        {
            if (ModelState.IsValid)
            {
                Expenditure.UpdateExpenditure(model);
                return(RedirectToAction("Index"));
            }
            ViewBag.parishUsers  = GetParishUsersSelectList(0);
            ViewBag.expenseTypes = GetExpenseTypesSelectList(0);

            return(View());
        }
        public ActionResult Edit(int id = 0)
        {
            var model = new ExpenditureModel();

            if (id > 0)
            {
                model = Expenditure.GetExpenditureById(id);
            }

            ViewBag.parishUsers  = GetParishUsersSelectList(0);
            ViewBag.expenseTypes = GetExpenseTypesSelectList(0);
            return(View(model));
        }
        public IActionResult Get(int id)
        {
            try
            {
                ExpenditureModel result = _unitOfWork.ExpenditureRepository.GetById(id);
                return(Ok(result));
            }
            catch (System.Exception)
            {
                return(BadRequest());

                throw;
            }
        }
        public IActionResult Delete([FromBody] ExpenditureModel attachment)
        {
            try
            {
                _unitOfWork.AttachmentRepository.Delete(attachment);
                _unitOfWork.Save();
                return(Ok(success));
            }
            catch (System.Exception)
            {
                return(BadRequest());

                throw;
            }
        }
        public IActionResult Update([FromBody] ExpenditureModel expenditure)
        {
            try
            {
                _unitOfWork.ExpenditureRepository.Update(expenditure);
                _unitOfWork.Save();
                return(Ok(success));
            }
            catch (System.Exception)
            {
                return(BadRequest());

                throw;
            }
        }
        public IActionResult Delete(int id)
        {
            try
            {
                ExpenditureModel result = _unitOfWork.ExpenditureRepository.GetById(id);
                _unitOfWork.ExpenditureRepository.Delete(result);
                _unitOfWork.Save();
                return(Ok(success));
            }
            catch (System.Exception)
            {
                return(BadRequest());

                throw;
            }
        }
Exemple #10
0
        public async Task <ErrorCodeLib.Models.ResultModel> POST([FromBody] ExpenditureModel model)
        {
            var result = new ErrorCodeLib.Models.ResultModel();

            //檢查project
            var exist_project = _repo_project.FindById(Convert.ToInt32(model.project_id));

            if (exist_project == null)
            {
                result = ErrorCode.DB_ERROR_NOT_FOUND(null, "project_id", "cht");
                return(result);
            }

            //檢查partner
            var exist_partner = _repo_partner.FindById(Convert.ToInt32(model.partner_id));

            if (exist_partner == null)
            {
                result = ErrorCode.DB_ERROR_NOT_FOUND(null, "partner_id", "cht");
                return(result);
            }

            //檢查item
            var exist_item = _repo_item.FindById(Convert.ToInt32(model.item_id));

            if (exist_item == null)
            {
                result = ErrorCode.DB_ERROR_NOT_FOUND(null, "item_id", "cht");
                return(result);
            }
            model.created = DateTime.Now;

            _repo_expenditure.Create(model);
            var exception_save = _unitOfWork.Save();

            if (exception_save != null)
            {
                result = ErrorCode.CUSTOM_ERROR(exception_save.Message, "DB ERROR", 500, "cht");
            }
            var output = new
            {
                model.id
            };

            result = ErrorCode.SUCCESS(null, "新增成功", "cht");
            return(result);
        }
        public void UpdateExpenditure(ExpenditureModel expenditure)
        {
            var model = mapper.Map <ExpenditureModel, Expens>(expenditure);

            if (model.ID > 0)
            {
                DB.Expenses.Attach(model);
                var entry = DB.Entry(model);
                entry.State = EntityState.Modified;
                DB.SaveChanges();
            }
            else
            {
                DB.Expenses.Add(model);
                DB.SaveChanges();
            }
        }
Exemple #12
0
        private static async Task <ExpenditureModel> GetExpenditureElements(IDbConnection connection, ExpenditureModel expenditure)
        {
            var expenditureItems =
                connection.Query <ExpenditureItemsModel>(getExpenditureItemsSql, new { @ExpenditureId = expenditure.Id }).ToList();

            expenditure.ExpenditureItems = expenditureItems;
            return(expenditure);
        }
 public void CreateNewExpenditure(ExpenditureModel expenditure)
 {
 }