Exemple #1
0
        public async Task <IActionResult> Put([FromRoute] int id, [FromBody] GarmentFinanceMemorialViewModel viewModel)
        {
            try
            {
                VerifyUser();

                ValidateService.Validate(viewModel);
                GarmentFinanceMemorialModel model = Mapper.Map <GarmentFinanceMemorialModel>(viewModel);
                await Service.UpdateAsync(id, model);

                return(NoContent());
            }
            catch (ServiceValidationException e)
            {
                Dictionary <string, object> Result =
                    new ResultFormatter(ApiVersion, General.BAD_REQUEST_STATUS_CODE, General.BAD_REQUEST_MESSAGE)
                    .Fail(e);
                return(BadRequest(Result));
            }
            catch (Exception e)
            {
                Dictionary <string, object> Result =
                    new ResultFormatter(ApiVersion, General.INTERNAL_ERROR_STATUS_CODE, e.Message)
                    .Fail();
                return(StatusCode(General.INTERNAL_ERROR_STATUS_CODE, Result));
            }
        }
Exemple #2
0
        public async Task <ActionResult> Post([FromBody] GarmentFinanceMemorialViewModel viewModel)
        {
            try
            {
                VerifyUser();

                ValidateService.Validate(viewModel);
                GarmentFinanceMemorialModel model = Mapper.Map <GarmentFinanceMemorialModel>(viewModel);
                await Service.CreateAsync(model);

                Dictionary <string, object> Result =
                    new ResultFormatter(ApiVersion, General.CREATED_STATUS_CODE, General.OK_MESSAGE)
                    .Ok();
                return(Created(String.Concat(Request.Path, "/", 0), Result));
            }
            catch (ServiceValidationException e)
            {
                Dictionary <string, object> Result =
                    new ResultFormatter(ApiVersion, General.BAD_REQUEST_STATUS_CODE, General.BAD_REQUEST_MESSAGE)
                    .Fail(e);
                return(BadRequest(Result));
            }
            catch (Exception e)
            {
                Dictionary <string, object> Result =
                    new ResultFormatter(ApiVersion, General.INTERNAL_ERROR_STATUS_CODE, e.Message)
                    .Fail();
                return(StatusCode(General.INTERNAL_ERROR_STATUS_CODE, Result));
            }
        }
        public async Task <GarmentFinanceMemorialModel> GetTestData()
        {
            GarmentFinanceMemorialModel model = GetNewData();
            await Service.CreateAsync(model);

            return(await Service.ReadByIdAsync(model.Id));
        }
Exemple #4
0
        public async Task Should_Success_Create_Data()
        {
            GarmentFinanceMemorialService service = new GarmentFinanceMemorialService(GetServiceProvider().Object, _dbContext(GetCurrentMethod()));
            GarmentFinanceMemorialModel   model   = _dataUtil(service, GetCurrentMethod()).GetNewData();
            var Response = await service.CreateAsync(model);

            Assert.NotEqual(0, Response);
        }
Exemple #5
0
        public async Task Should_Success_Get_Data_By_Id()
        {
            GarmentFinanceMemorialService service = new GarmentFinanceMemorialService(GetServiceProvider().Object, _dbContext(GetCurrentMethod()));
            GarmentFinanceMemorialModel   model   = await _dataUtil(service, GetCurrentMethod()).GetTestData();

            var Response = await service.ReadByIdAsync(model.Id);

            Assert.NotNull(Response);
        }
Exemple #6
0
        public async Task DeleteModel(int id)
        {
            GarmentFinanceMemorialModel model = await ReadByIdAsync(id);

            foreach (var item in model.Items)
            {
                EntityExtension.FlagForDelete(item, IdentityService.Username, UserAgent, true);
            }
            EntityExtension.FlagForDelete(model, IdentityService.Username, UserAgent, true);
            DbSet.Update(model);
        }
Exemple #7
0
        public async Task <int> CreateAsync(GarmentFinanceMemorialModel model)
        {
            model.MemorialNo = GenerateNo(model);

            EntityExtension.FlagForCreate(model, IdentityService.Username, UserAgent);
            foreach (var item in model.Items)
            {
                EntityExtension.FlagForCreate(item, IdentityService.Username, UserAgent);
            }
            DbSet.Add(model);
            return(await DbContext.SaveChangesAsync());
        }
Exemple #8
0
        public async Task Should_Success_Update_Data()
        {
            GarmentFinanceMemorialService service = new GarmentFinanceMemorialService(GetServiceProvider().Object, _dbContext(GetCurrentMethod()));


            GarmentFinanceMemorialModel model = await _dataUtil(service, GetCurrentMethod()).GetTestData();

            var newModel = await service.ReadByIdAsync(model.Id);

            //newModel.BGCheckNumber = "newBG";
            var Response1 = await service.UpdateAsync(newModel.Id, newModel);

            Assert.NotEqual(0, Response1);

            GarmentFinanceMemorialModel model2 = await _dataUtil(service, GetCurrentMethod()).GetTestData();

            //var newModel2 = await service.ReadByIdAsync(model.Id);
            GarmentFinanceMemorialModel newModel2 = new GarmentFinanceMemorialModel();

            newModel2.Id    = model2.Id;
            newModel2.Items = new List <GarmentFinanceMemorialItemModel> {
                model2.Items.First()
            };
            newModel2.Items.First().Credit = 100;
            newModel2.Items.First().Debit  = 100;
            var Response = await service.UpdateAsync(model2.Id, newModel2);

            Assert.NotEqual(0, Response);

            GarmentFinanceMemorialItemModel newItem = new GarmentFinanceMemorialItemModel
            {
                COAId   = 3,
                COACode = "no3",
                COAName = "Name",
                Debit   = 3,
                Credit  = 0
            };

            GarmentFinanceMemorialItemModel newItem2 = new GarmentFinanceMemorialItemModel
            {
                COAId   = 3,
                COACode = "no3",
                COAName = "Name",
                Credit  = 3,
                Debit   = 0
            };

            newModel2.Items.Add(newItem);
            newModel2.Items.Add(newItem2);
            var Response3 = await service.UpdateAsync(model2.Id, newModel2);

            Assert.NotEqual(0, Response);
        }
Exemple #9
0
        public async Task <int> UpdateAsync(int id, GarmentFinanceMemorialModel model)
        {
            var exist = DbSet
                        .Include(d => d.Items)
                        .Single(o => o.Id == id && !o.IsDeleted);

            if (exist.Date != model.Date)
            {
                exist.Date = model.Date;
            }
            if (exist.Remark != model.Remark)
            {
                exist.Remark = model.Remark;
            }
            if (exist.GarmentCurrencyRate != model.GarmentCurrencyRate)
            {
                exist.GarmentCurrencyRate = model.GarmentCurrencyRate;
            }

            foreach (var item in exist.Items)
            {
                GarmentFinanceMemorialItemModel itemModel = model.Items.FirstOrDefault(prop => prop.Id.Equals(item.Id));

                if (itemModel == null)
                {
                    EntityExtension.FlagForDelete(item, IdentityService.Username, UserAgent, true);
                }
                else
                {
                    if (item.Debit != itemModel.Debit)
                    {
                        item.Debit = itemModel.Debit;
                    }
                    if (item.Credit != itemModel.Credit)
                    {
                        item.Credit = itemModel.Credit;
                    }
                    EntityExtension.FlagForUpdate(item, IdentityService.Username, UserAgent);
                }
            }
            foreach (var newItem in model.Items)
            {
                if (newItem.Id <= 0)
                {
                    EntityExtension.FlagForCreate(newItem, IdentityService.Username, UserAgent);
                    exist.Items.Add(newItem);
                }
            }

            EntityExtension.FlagForUpdate(exist, IdentityService.Username, UserAgent);
            return(await DbContext.SaveChangesAsync());
        }
Exemple #10
0
        private string GenerateNo(GarmentFinanceMemorialModel model)
        {
            var    yy     = model.Date.ToString("yy");
            var    mm     = model.Date.ToString("MM");
            string prefix = yy + "/" + mm + "/E/";

            var lastNo = DbSet.Where(w => w.MemorialNo.StartsWith(prefix))
                         .OrderByDescending(o => o.MemorialNo)
                         .Select(s => int.Parse(s.MemorialNo.Replace(prefix, "")))
                         .FirstOrDefault();

            var curNo = $"{prefix}{(lastNo + 1).ToString("D3")}";

            return(curNo);
        }
Exemple #11
0
        public async Task <int> CreateAsync(GarmentFinanceMemorialDetailModel model)
        {
            EntityExtension.FlagForCreate(model, IdentityService.Username, UserAgent);
            foreach (var item in model.Items)
            {
                EntityExtension.FlagForCreate(item, IdentityService.Username, UserAgent);
            }
            foreach (var otherItem in model.OtherItems)
            {
                EntityExtension.FlagForCreate(otherItem, IdentityService.Username, UserAgent);
            }
            foreach (var rupiahItem in model.RupiahItems)
            {
                EntityExtension.FlagForCreate(rupiahItem, IdentityService.Username, UserAgent);
            }
            GarmentFinanceMemorialModel memorial = GarmentFinanceMemorialDbSet.FirstOrDefault(a => a.Id == model.MemorialId);

            memorial.IsUsed = true;
            DbSet.Add(model);
            return(await DbContext.SaveChangesAsync());
        }