Exemplo n.º 1
0
        public IHttpActionResult Update(int id, [FromBody] ExpenditureParam param)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    int      userId  = 1; // UserHelper.GetCurrentUserId();
                    DateTime getDate = DateHelper.GetDateTime();

                    param.UpdatedDate = getDate;
                    param.UpdatedBy   = userId;

                    int result = _expenditureService.Update(id, param);
                    return(Ok(result));
                }
                else
                {
                    string errorResult = string.Join(" ", ModelState.Values.SelectMany(x => x.Errors).Select(x => x.ErrorMessage));
                    return(Content(HttpStatusCode.BadRequest, errorResult));
                }
            }
            catch (Exception ex)
            {
                if (ex.InnerException == null)
                {
                    return(Content(HttpStatusCode.InternalServerError, ex.Message));
                }
                else
                {
                    return(Content(HttpStatusCode.InternalServerError, ex.InnerException.Message));
                }
            }
        }
Exemplo n.º 2
0
        public int Update(int id, ExpenditureParam param)
        {
            var model = _expenditureRepository.Get(id);

            Validate.NotNull(model, "Expenditure name is not found.");

            var budget = _budgetRepository.Get(param.BudgetId);

            Validate.NotNull(budget, "Budget name is not found.");

            var modelDetail = _expenditureDetailRepository.GetByExpenditureIdExpenditureDetailId(id, param.ExpenditureDetailId);

            //isExist(id, param.ExpenditureDate);
            using (_unitOfWork)
            {
                var currentDate = _expenditureRepository.GetByExpenditureDate(param.ExpenditureDate);
                if (currentDate == null)
                {
                    Expenditure modelNew = new Expenditure(param.ExpenditureDate, param.Price, param.CreatedBy, param.CreatedDate);
                    _expenditureRepository.Insert(modelNew);

                    model = modelNew;
                }
                if (modelDetail != null)
                {
                    modelDetail.Update(param.ExpenditureName, param.ExpenditureDefinition, param.Price, model, budget, param.UpdatedBy, param.UpdatedDate);
                    _expenditureDetailRepository.Update(modelDetail);

                    //change total
                    var dataHeader  = _expenditureRepository.Get(modelDetail.ExpenditureId);
                    var totalPerDay = CalculateTotalPerDay(modelDetail.ExpenditureId);
                    var grandTotal  = dataHeader.Total + totalPerDay;

                    dataHeader.AddTotal(grandTotal);
                }
                else
                {
                    Validate.NotNull(modelDetail, "Expenditure Detail's id {1} with expenditure's id {0} is not found. ", model.Id, modelDetail.Id);
                }

                _unitOfWork.Commit();
            }
            return(model.Id);
        }
Exemplo n.º 3
0
        public int Add(ExpenditureParam param)
        {
            int id = 0;

            Validate.NotNull(param.ExpenditureName, "Expenditure name is required.");

            var budget = _budgetRepository.Get(param.BudgetId);

            Validate.NotNull(budget, "Budget name is not found.");

            Expenditure modelHeader = new Expenditure();

            using (_unitOfWork)
            {
                var currentData = _expenditureRepository.GetByExpenditureDate(param.ExpenditureDate);
                if (currentData == null)
                {
                    Expenditure model = new Expenditure(param.ExpenditureDate, param.Price, param.CreatedBy, param.CreatedDate);
                    _expenditureRepository.Insert(model);
                    id          = model.Id;
                    modelHeader = model;

                    //insert detail
                    ExpenditureDetail modelDetail = new ExpenditureDetail(param.ExpenditureName, param.ExpenditureDefinition, param.Price, model, budget, param.CreatedBy, param.CreatedDate);
                    _expenditureDetailRepository.Insert(modelDetail);
                }
                else
                {
                    //insert detail
                    ExpenditureDetail modelDetail = new ExpenditureDetail(param.ExpenditureName, param.ExpenditureDefinition, param.Price, modelHeader, budget, param.CreatedBy, param.CreatedDate);
                    _expenditureDetailRepository.Insert(modelDetail);

                    //add total
                    var dataHeader  = _expenditureRepository.Get(param.ExpenditureId);
                    var totalPerDay = CalculateTotalPerDay(param.ExpenditureId);

                    var grandTotal = dataHeader.Total + totalPerDay;
                    dataHeader.AddTotal(grandTotal);
                }

                _unitOfWork.Commit();
            }
            return(id);
        }