Exemplo n.º 1
0
        public void UpdateModel(int id, EditDetailRincian viewModel)
        {
            MemoDetailGarmentPurchasingModel existDb = DbSet
                                                       .Include(d => d.MemoDetailGarmentPurchasingDetail)
                                                       .Single(memoDetail => memoDetail.Id == id && !memoDetail.IsDeleted);


            existDb.MemoId                = viewModel.MemoId;
            existDb.Remarks               = viewModel.Remarks;
            existDb.MemoNo                = viewModel.MemoNo;
            existDb.MemoDate              = viewModel.MemoDate;
            existDb.AccountingBookId      = viewModel.AccountingBookId;
            existDb.AccountingBookType    = viewModel.AccountingBookType;
            existDb.GarmentCurrenciesId   = viewModel.GarmentCurrenciesId;
            existDb.GarmentCurrenciesCode = viewModel.GarmentCurrenciesCode;
            existDb.GarmentCurrenciesRate = viewModel.GarmentCurrenciesRate;
            existDb.IsPosted              = viewModel.IsPosted;

            EntityExtension.FlagForUpdate(existDb, _identityService.Username, UserAgent);
            DbSet.Update(existDb);

            foreach (var existRow in existDb.MemoDetailGarmentPurchasingDetail)
            {
                EditDetailRincianItems itemModel = viewModel.Items.FirstOrDefault(p => p.Id.Equals(existRow.Id));
                if (itemModel == null)
                {
                    EntityExtension.FlagForDelete(existRow, _identityService.Username, UserAgent);
                }
                else
                {
                    existRow.GarmentDeliveryOrderId = itemModel.GarmentDeliveryOrderId;
                    existRow.GarmentDeliveryOrderNo = itemModel.GarmentDeliveryOrderNo;
                    existRow.RemarksDetail          = itemModel.RemarksDetail;
                    existRow.PaymentRate            = itemModel.PaymentRate;
                    existRow.PurchasingRate         = itemModel.PurchasingRate;
                    existRow.MemoAmount             = itemModel.MemoAmount;
                    existRow.MemoIdrAmount          = itemModel.MemoIdrAmount;

                    EntityExtension.FlagForUpdate(existRow, _identityService.Username, UserAgent);
                }
            }

            _dbContext.MemoDetailGarmentPurchasingDetails.UpdateRange(existDb.MemoDetailGarmentPurchasingDetail);

            foreach (var item in viewModel.Items)
            {
                if (item.Id == 0)
                {
                    MemoDetailGarmentPurchasingDetailModel model = new MemoDetailGarmentPurchasingDetailModel();

                    model.GarmentDeliveryOrderId = item.GarmentDeliveryOrderId;
                    model.GarmentDeliveryOrderNo = item.GarmentDeliveryOrderNo;
                    model.RemarksDetail          = item.RemarksDetail;
                    model.PaymentRate            = item.PaymentRate;
                    model.PurchasingRate         = item.PurchasingRate;
                    model.MemoAmount             = item.MemoAmount;
                    model.MemoIdrAmount          = item.MemoIdrAmount;
                    model.MemoDetailId           = id;

                    EntityExtension.FlagForCreate(model, _identityService.Username, UserAgent);
                    DbSetDetail.Add(model);
                }
            }
        }
        //public void CreateModel(MemoDetailGarmentPurchasingModel model)
        //{
        //    EntityExtension.FlagForCreate(model, _identityService.Username, UserAgent);


        //    foreach (var item in model.MemoDetailGarmentPurchasingDetail)
        //    {
        //        EntityExtension.FlagForCreate(item, _identityService.Username, UserAgent);
        //    }
        //    DbSet.Add(model);
        //}

        public async Task <int> CreateAsync(MemoDetailGarmentPurchasingViewModel viewModel)
        {
            try
            {
                var memo  = _dbContext.MemoGarmentPurchasings.FirstOrDefault(entity => entity.Id == viewModel.MemoId);
                var model = new MemoDetailGarmentPurchasingModel()
                {
                    AccountingBookId      = memo.AccountingBookId,
                    AccountingBookType    = memo.AccountingBookType,
                    GarmentCurrenciesCode = memo.GarmentCurrenciesCode,
                    GarmentCurrenciesId   = memo.GarmentCurrenciesId,
                    GarmentCurrenciesRate = memo.GarmentCurrenciesRate,
                    MemoDate = memo.MemoDate,
                    MemoId   = viewModel.MemoId,
                    MemoNo   = memo.MemoNo,
                    Remarks  = viewModel.Remarks
                };
                EntityExtension.FlagForCreate(model, _identityService.Username, UserAgent);
                _dbContext.MemoDetailGarmentPurchasings.Add(model);
                await _dbContext.SaveChangesAsync();

                foreach (var item in viewModel.MemoDetailGarmentPurchasingDispositions)
                {
                    var memoItem = new MemoDetailGarmentPurchasingDispositionModel()
                    {
                        DispositionId = item.Disposition.DispositionId,
                        DispositionNo = item.Disposition.DispositionNo,
                        MemoDetailGarmentPurchasingId = model.Id
                    };
                    EntityExtension.FlagForCreate(memoItem, _identityService.Username, UserAgent);
                    _dbContext.MemoDetailGarmentPurchasingDispositions.Add(memoItem);
                    await _dbContext.SaveChangesAsync();

                    foreach (var detail in item.Disposition.MemoDetails)
                    {
                        var memoDetail = new MemoDetailGarmentPurchasingDetailModel()
                        {
                            GarmentDeliveryOrderId = detail.GarmentDeliveryOrderId,
                            GarmentDeliveryOrderNo = detail.GarmentDeliveryOrderNo,
                            MemoAmount             = (int)detail.MemoAmount,
                            MemoDispositionId      = memoItem.Id,
                            RemarksDetail          = detail.RemarksDetail,
                            MemoDetailId           = model.Id,
                            MemoId         = memo.Id,
                            PaymentRate    = detail.PaymentRate,
                            PurchasingRate = detail.PurchasingRate,
                            SupplierCode   = detail.SupplierCode,
                            SupplierName   = detail.SupplierName,
                            BillsNo        = detail.BillsNo,
                            InternalNoteNo = detail.InternalNoteNo,
                            CurrencyCode   = detail.CurrencyCode,
                            PaymentBills   = detail.PaymentBills,
                            PurchaseAmount = detail.PurchaseAmount
                        };

                        EntityExtension.FlagForCreate(memoDetail, _identityService.Username, UserAgent);
                        _dbContext.MemoDetailGarmentPurchasingDetails.Add(memoDetail);
                        await _dbContext.SaveChangesAsync();
                    }
                }
                return(await _dbContext.SaveChangesAsync());
            }
            catch (Exception e)
            {
                throw e;
            }
        }