public async Task <ActionResult> Post([FromBody] PurchasingDispositionVerificationViewModel viewModel)
        {
            try
            {
                VerifyUser();
                ValidateService.Validate(viewModel);

                await Service.PurchasingDispositionVerification(viewModel);

                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 (AggregateException ex)
            {
                string message = string.Join(',', ex.InnerExceptions.Select(x => x.Message));
                Dictionary <string, object> Result =
                    new ResultFormatter(ApiVersion, General.INTERNAL_ERROR_STATUS_CODE, message)
                    .Fail();
                return(StatusCode(General.INTERNAL_ERROR_STATUS_CODE, 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 void Should_Success_Validate_Wrong_Verify_Date_VM_Verification_Disposition()
        {
            PurchasingDispositionVerificationViewModel vm = new PurchasingDispositionVerificationViewModel()
            {
                DispositionNo  = "DispositionNo",
                Id             = 1,
                Reason         = "Reason",
                SubmitPosition = ExpeditionPosition.SEND_TO_PURCHASING_DIVISION,
                VerifyDate     = DateTimeOffset.UtcNow.AddDays(1)
            };

            Assert.True(vm.Validate(null).Count() > 0);
        }
        public void Should_No_Error_Validate_VM_Verification_Disposition()
        {
            PurchasingDispositionExpeditionService     service = new PurchasingDispositionExpeditionService(GetServiceProvider().Object, _dbContext(GetCurrentMethod()));
            PurchasingDispositionVerificationViewModel vm      = new PurchasingDispositionVerificationViewModel()
            {
                DispositionNo  = "DispositionNo",
                Id             = 1,
                Reason         = "Reason",
                SubmitPosition = ExpeditionPosition.SEND_TO_PURCHASING_DIVISION,
                VerifyDate     = DateTimeOffset.UtcNow
            };

            Assert.True(vm.Validate(null).Count() == 0);
        }
        public async Task Should_Fail_Post_Disposition_Verification()
        {
            PurchasingDispositionExpeditionService service = new PurchasingDispositionExpeditionService(GetServiceProvider().Object, _dbContext(GetCurrentMethod()));
            PurchasingDispositionExpeditionModel   model   = await _dataUtil(service).GetTestData();

            PurchasingDispositionVerificationViewModel data = new PurchasingDispositionVerificationViewModel()
            {
                DispositionNo  = model.DispositionNo,
                Id             = 0,
                Reason         = "Reason",
                SubmitPosition = ExpeditionPosition.SEND_TO_PURCHASING_DIVISION,
                VerifyDate     = DateTimeOffset.UtcNow
            };
            await Assert.ThrowsAnyAsync <Exception>(() => service.PurchasingDispositionVerification(null));
        }
        public async Task Should_Success_Post_Disposition_Verification_Create_Purchasing()
        {
            PurchasingDispositionExpeditionService service = new PurchasingDispositionExpeditionService(GetServiceProvider().Object, _dbContext(GetCurrentMethod()));
            PurchasingDispositionExpeditionModel   model   = await _dataUtil(service).GetTestData();

            PurchasingDispositionVerificationViewModel data = new PurchasingDispositionVerificationViewModel()
            {
                DispositionNo  = model.DispositionNo,
                Id             = 0,
                Reason         = "Reason",
                SubmitPosition = ExpeditionPosition.SEND_TO_PURCHASING_DIVISION,
                VerifyDate     = DateTimeOffset.UtcNow
            };
            var response = await service.PurchasingDispositionVerification(data);

            Assert.NotEqual(0, response);
        }
Пример #6
0
        public async Task Should_Success_Get_All_Data()
        {
            PurchasingDispositionExpeditionService service = new PurchasingDispositionExpeditionService(GetServiceProvider().Object, _dbContext(GetCurrentMethod()));
            PurchasingDispositionExpeditionModel   model   = await _dataUtil(service).GetTestData();

            PurchasingDispositionVerificationViewModel data = new PurchasingDispositionVerificationViewModel()
            {
                DispositionNo  = model.DispositionNo,
                Id             = 0,
                Reason         = "Reason",
                SubmitPosition = ExpeditionPosition.SEND_TO_PURCHASING_DIVISION,
                VerifyDate     = DateTimeOffset.UtcNow
            };
            await service.PurchasingDispositionVerification(data);

            DateTimeOffset tomorrow = DateTimeOffset.UtcNow.AddDays(1);
            PaymentDispositionNotVerifiedReportService report = new PaymentDispositionNotVerifiedReportService(GetServiceProvider().Object, _dbContext(GetCurrentMethod()));
            var response = report.GetReport("", "", "", model.VerifyDate.GetValueOrDefault().AddDays(-30), tomorrow, 1, 25, "{}", 7, "notHistory");

            Assert.NotNull(response.Item1);
        }
Пример #7
0
        public async Task Should_Success_GenerateExcel_WithDateIsNull()
        {
            PurchasingDispositionExpeditionService service = new PurchasingDispositionExpeditionService(GetServiceProvider().Object, _dbContext(GetCurrentMethod()));
            PurchasingDispositionExpeditionModel   model   = await _dataUtil(service).GetTestData();

            PurchasingDispositionVerificationViewModel data = new PurchasingDispositionVerificationViewModel()
            {
                DispositionNo  = model.DispositionNo,
                Id             = 0,
                Reason         = "Reason",
                SubmitPosition = ExpeditionPosition.SEND_TO_PURCHASING_DIVISION,
                VerifyDate     = DateTimeOffset.UtcNow
            };
            await service.PurchasingDispositionVerification(data);

            PaymentDispositionNotVerifiedReportService report = new PaymentDispositionNotVerifiedReportService(GetServiceProvider().Object, _dbContext(GetCurrentMethod()));

            var reportResponse = report.GenerateExcel("", "", "", null, null, 7, "history");

            Assert.NotNull(reportResponse);
        }
        public async Task <int> PurchasingDispositionVerification(PurchasingDispositionVerificationViewModel data)
        {
            int updated = 0;

            using (var transaction = DbContext.Database.BeginTransaction())
            {
                try
                {
                    PurchasingDispositionExpeditionModel model;
                    if (data.Id == 0)
                    {
                        model = DbContext.PurchasingDispositionExpeditions.OrderByDescending(x => x.LastModifiedUtc).First(x => x.DispositionNo == data.DispositionNo);
                    }
                    else
                    {
                        model = DbContext.PurchasingDispositionExpeditions.Single(x => x.Id == data.Id);
                    }


                    if (data.SubmitPosition == ExpeditionPosition.SEND_TO_PURCHASING_DIVISION)
                    {
                        model.DispositionNo = data.DispositionNo;
                        model.VerifyDate    = data.VerifyDate;
                        model.SendToPurchasingDivisionBy   = IdentityService.Username;
                        model.SendToPurchasingDivisionDate = data.VerifyDate;
                        model.Position          = ExpeditionPosition.SEND_TO_PURCHASING_DIVISION;
                        model.Active            = false;
                        model.NotVerifiedReason = data.Reason;

                        model.SendToCashierDivisionBy   = null;
                        model.SendToCashierDivisionDate = DateTimeOffset.MinValue;


                        EntityExtension.FlagForUpdate(model, IdentityService.Username, UserAgent);
                        updated = await DbContext.SaveChangesAsync();

                        UpdateDispositionPosition(new List <string>()
                        {
                            model.DispositionNo
                        }, ExpeditionPosition.SEND_TO_PURCHASING_DIVISION);
                    }
                    else if (data.SubmitPosition == ExpeditionPosition.SEND_TO_CASHIER_DIVISION)
                    {
                        model.DispositionNo             = data.DispositionNo;
                        model.VerifyDate                = data.VerifyDate;
                        model.SendToCashierDivisionBy   = IdentityService.Username;
                        model.SendToCashierDivisionDate = data.VerifyDate;
                        model.Position = ExpeditionPosition.SEND_TO_CASHIER_DIVISION;
                        model.Active   = true;

                        model.SendToPurchasingDivisionBy   = null;
                        model.SendToPurchasingDivisionDate = DateTimeOffset.MinValue;
                        model.NotVerifiedReason            = null;

                        EntityExtension.FlagForUpdate(model, IdentityService.Username, UserAgent);
                        updated = await DbContext.SaveChangesAsync();

                        UpdateDispositionPosition(new List <string>()
                        {
                            model.DispositionNo
                        }, ExpeditionPosition.SEND_TO_CASHIER_DIVISION);
                    }


                    transaction.Commit();
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw e;
                }
            }

            return(updated);
        }
        public void Should_Success_Validate_All_Null_VM_Verification_Disposition()
        {
            PurchasingDispositionVerificationViewModel vm = new PurchasingDispositionVerificationViewModel();

            Assert.True(vm.Validate(null).Count() > 0);
        }