コード例 #1
0
        public ExpenditureDetailDTO(ExpenditureDetail model)
        {
            if (model == null)
            {
                return;
            }

            this.Id = model.Id;
            this.ExpenditureName       = model.ExpenditureName;
            this.ExpenditureDefinition = model.ExpenditureDefinition;
            this.Price       = model.Price;
            this.CreatedBy   = model.CreatedBy;
            this.CreatedDate = model.CreatedDate;
            this.UpdatedBy   = model.UpdatedBy;
            this.UpdatedDate = model.UpdatedDate;
            this.IsDeleted   = model.IsDeleted;

            this.ExpenditureId = model.ExpenditureId;

            if (model.Budget != null)
            {
                this.BudgetId   = model.Budget.Id;
                this.BudgetName = model.Budget.BudgetName;
            }
        }
コード例 #2
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);
        }
コード例 #3
0
 public void Update(ExpenditureDetail model)
 {
     _databaseContext.ExpenditureDetails.Attach(model);
     _databaseContext.Entry(model).State = EntityState.Modified;
 }
コード例 #4
0
 public void Insert(ExpenditureDetail model)
 {
     _databaseContext.ExpenditureDetails.Add(model);
 }
コード例 #5
0
 public static ExpenditureDetailDTO From(ExpenditureDetail model)
 {
     return(new ExpenditureDetailDTO(model));
 }