示例#1
0
        public async Task <ActionResult> Post([FromBody] VbVerificationViewModel viewModel)
        {
            try
            {
                VerifyUser();

                await _service.CreateAsync(viewModel);

                var result = new ResultFormatter(ApiVersion, General.CREATED_STATUS_CODE, General.OK_MESSAGE).Ok();

                return(Created(String.Concat(Request.Path, "/", 0), result));
            }
            catch (ServiceValidationException e)
            {
                var result = new ResultFormatter(ApiVersion, General.BAD_REQUEST_STATUS_CODE, General.BAD_REQUEST_MESSAGE).Fail(e);
                return(BadRequest(result));
            }
            catch (Exception e)
            {
                var result =
                    new ResultFormatter(ApiVersion, General.INTERNAL_ERROR_STATUS_CODE, e.Message)
                    .Fail();
                return(StatusCode(General.INTERNAL_ERROR_STATUS_CODE, result));
            }
        }
        public async Task Should_Success_CreateAsync_with_DataNotVerified()
        {
            //Setup
            var dbContext = GetDbContext(GetCurrentAsyncMethod());

            VbVerificationService vbVerificationService = new VbVerificationService(dbContext, GetServiceProvider().Object);

            VbVerificationViewModel viewModel = _vbVerificationDataUtil(vbVerificationService, dbContext).Get_NotVerified_VbVerificationViewModel();
            RealizationVbModel      data      = await _vbVerificationDataUtil(vbVerificationService, dbContext).GetTestData_RealizationVbModel();

            //Act
            var Response = await vbVerificationService.CreateAsync(viewModel);

            //Assert
            Assert.NotEqual(0, Response);
        }
示例#3
0
        public async Task <VbVerificationViewModel> ReadById(int id)
        {
            var model = await _dbContext.RealizationVbs.Include(entity => entity.RealizationVbDetail).Where(entity => entity.Id == id).FirstOrDefaultAsync();

            var result = new VbVerificationViewModel()
            {
                numberVB = new NumberVBData()
                {
                    DetailItems = model.RealizationVbDetail.Select(s => new VbVerificationDetailViewModel()
                    {
                        DateSPB       = s.DateSPB,
                        NoSPB         = s.NoSPB,
                        SupplierName  = s.SupplierName,
                        PriceTotalSPB = s.PriceTotalSPB,
                        Date          = s.DateNonPO,
                        Remark        = s.Remark,
                        Amount        = s.AmountNonPO,
                        isGetPPn      = s.isGetPPn
                    }).ToList(),

                    Id = model.Id,
                    Amount_Realization = model.Amount,
                    Amount_Request     = model.Amount_VB,
                    Currency           = model.CurrencyCode,
                    DateEstimate       = model.DateEstimate,
                    DateRealization    = model.Date,
                    DateVB             = model.DateVB,
                    Diff              = model.DifferenceReqReal,
                    RequestVbName     = model.RequestVbName,
                    UnitName          = model.UnitName,
                    Usage             = model.UsageVBRequest,
                    VBNo              = model.VBNo,
                    VBNoRealize       = model.VBNoRealize,
                    VBRealizeCategory = model.VBRealizeCategory.Contains("NONPO") ? "Non PO" : "PO",
                    Amount_Vat        = model.VatAmount,
                    Status_ReqReal    = model.StatusReqReal
                },
                Reason        = model.Reason_NotVerified,
                Remark        = model.Reason_NotVerified,
                VerifyDate    = model.VerifiedDate,
                isVerified    = model.isVerified,
                isNotVeridied = model.isNotVeridied
            };

            return(result);
        }
示例#4
0
        public async Task <int> CreateAsync(VbVerificationViewModel viewmodel)
        {
            //using (var transaction = _dbContext.Database.BeginTransaction())
            //{

            var m = dbSet.SingleOrDefault(e => e.Id == viewmodel.numberVB.Id);

            EntityExtension.FlagForUpdate(m, _identityService.Username, UserAgent);
            m.isVerified    = viewmodel.isVerified;
            m.isNotVeridied = viewmodel.isNotVeridied;
            m.VerifiedName  = _identityService.Username;

            m.VerifiedDate = (DateTimeOffset)viewmodel.VerifyDate;

            if (string.IsNullOrEmpty(viewmodel.Reason))
            {
                m.Reason_NotVerified = "";
            }
            else
            {
                m.Reason_NotVerified = viewmodel.Reason;
            }

            //transaction.Commit();
            //}

            await _dbContext.SaveChangesAsync();

            if (m.isVerified)
            {
                await _expeditionService.VerifiedToCashier(m.Id);
            }
            else
            {
                await _expeditionService.Reject(m.Id, viewmodel.Reason);
            }

            return(m.Id);
        }