public async Task <PaymentDispositionNoteModel> GetTestData()
        {
            PaymentDispositionNoteModel model = GetNewData();
            await Service.CreateAsync(model);

            return(await Service.ReadByIdAsync(model.Id));
        }
        public Task <int> AutoRevertFromPaymentDisposition(PaymentDispositionNoteModel model)
        {
            var nominal = model.Items.Sum(item => (decimal)item.TotalPaid * (decimal)model.CurrencyRate);
            var dailyBankTransactionModel = new DailyBankTransactionModel()
            {
                AccountBankAccountName    = model.BankAccountName,
                AccountBankAccountNumber  = model.BankAccountNumber,
                AccountBankCode           = model.BankCode,
                AccountBankCurrencyCode   = model.BankCurrencyCode,
                AccountBankCurrencyId     = model.BankCurrencyId,
                AccountBankCurrencySymbol = model.BankCurrencyCode,
                AccountBankId             = model.BankId,
                AccountBankName           = model.BankName,
                Date          = model.PaymentDate,
                Nominal       = nominal,
                ReferenceNo   = model.PaymentDispositionNo,
                ReferenceType = "Pembayaran Disposisi",
                Remark        = model.CurrencyCode != "IDR" ? $"Pembayaran atas {model.BankCurrencyCode} dengan nominal {string.Format("{0:n}", nominal)} dan kurs {model.CurrencyCode}" : "",
                SourceType    = model.TransactionType,
                SupplierCode  = model.SupplierCode,
                SupplierId    = model.SupplierId,
                SupplierName  = model.SupplierName,
                Status        = "IN"
            };

            return(_dailyBankTransactionService.CreateAsync(dailyBankTransactionModel));
        }
Пример #3
0
        public Task <int> AutoRevertFromPaymentDisposition(PaymentDispositionNoteModel model)
        {
            var dailyBankTransactionModel = new DailyBankTransactionModel()
            {
                AccountBankAccountName    = model.BankAccountName,
                AccountBankAccountNumber  = model.BankAccountNumber,
                AccountBankCode           = model.BankCode,
                AccountBankCurrencyCode   = model.CurrencyCode,
                AccountBankCurrencyId     = model.CurrencyId,
                AccountBankCurrencySymbol = model.CurrencyCode,
                AccountBankId             = model.BankId,
                AccountBankName           = model.BankName,
                Date         = model.PaymentDate,
                Nominal      = model.Items.Sum(item => (decimal)item.TotalPaid * (decimal)model.CurrencyRate),
                ReferenceNo  = model.PaymentDispositionNo,
                Remark       = "Auto Generate Disposition Payment",
                SourceType   = model.TransactionType,
                SupplierCode = model.SupplierCode,
                SupplierId   = model.SupplierId,
                SupplierName = model.SupplierName,
                Status       = "IN"
            };

            return(_dailyBankTransactionService.CreateAsync(dailyBankTransactionModel));
        }
        public async Task <IActionResult> Put([FromRoute] int id, [FromBody] PaymentDispositionNoteViewModel viewModel)
        {
            try
            {
                VerifyUser();

                ValidateService.Validate(viewModel);
                PaymentDispositionNoteModel model = Mapper.Map <PaymentDispositionNoteModel>(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));
            }
        }
        public async Task Should_Success_Auto_Revert_Disposition_Payment()
        {
            var serviceProviderMock = new Mock <IServiceProvider>();

            serviceProviderMock.Setup(serviceProvider => serviceProvider.GetService(typeof(IDailyBankTransactionService))).Returns(new DailyBankTransactionServiceHelper());
            var service = new AutoDailyBankTransactionService(serviceProviderMock.Object);

            var dispositionModel = new PaymentDispositionNoteModel()
            {
                PaymentDate = DateTimeOffset.Now,
                Items       = new List <PaymentDispositionNoteItemModel>()
                {
                    new PaymentDispositionNoteItemModel()
                    {
                        Details = new List <PaymentDispositionNoteDetailModel>()
                        {
                            new PaymentDispositionNoteDetailModel()
                        }
                    }
                }
            };
            var result = await service.AutoRevertFromPaymentDisposition(dispositionModel);

            Assert.NotEqual(0, result);
        }
        public async Task <ActionResult> Post([FromBody] PaymentDispositionNoteViewModel viewModel)
        {
            try
            {
                VerifyUser();

                ValidateService.Validate(viewModel);
                viewModel.BankAccountCOA = viewModel.AccountBank.AccountCOA;
                PaymentDispositionNoteModel model = Mapper.Map <PaymentDispositionNoteModel>(viewModel);
                model.FixFailAutoMapper(viewModel.AccountBank.BankCode);
                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 Should_Success_Update_Data()
        {
            PaymentDispositionNoteService service = new PaymentDispositionNoteService(GetServiceProvider().Object, _dbContext(GetCurrentMethod()));


            PaymentDispositionNoteModel 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);

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

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

            newModel2.Id = model2.Id;

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

            Assert.NotEqual(0, Response);
        }
Пример #8
0
        public async Task <int> CreateAsync(PaymentDispositionNoteModel model)
        {
            model.PaymentDispositionNo = await GenerateNo(model, 7);

            CreateModel(model);
            return(await DbContext.SaveChangesAsync());
        }
        public async Task Should_Success_Create_Data()
        {
            PaymentDispositionNoteService service = new PaymentDispositionNoteService(GetServiceProvider().Object, _dbContext(GetCurrentMethod()));
            PaymentDispositionNoteModel   model   = _dataUtil(service, GetCurrentMethod()).GetNewData();
            var Response = await service.CreateAsync(model);

            Assert.NotEqual(0, Response);
        }
        public void Should_Success_Map_Payment_Disposition()
        {
            var mapper = new MapperConfiguration(configuration => configuration.AddProfile <PaymentDispositionNoteProfile>()).CreateMapper();
            var model  = new PaymentDispositionNoteModel();
            var vm     = mapper.Map <PaymentDispositionNoteViewModel>(model);

            Assert.True(true);
        }
        public async Task <PaymentDispositionNoteViewModel> GetPDFDataIDRNONIDR()
        {
            PaymentDispositionNoteModel     model     = GetNewData();
            PaymentDispositionNoteViewModel viewModel = GetNewDataViewModelIDRNONIDR();
            await Service.CreateAsync(model);

            return(viewModel);
        }
        public async Task Should_Success_Get_Data_By_Id()
        {
            PaymentDispositionNoteService service = new PaymentDispositionNoteService(GetServiceProvider().Object, _dbContext(GetCurrentMethod()));
            PaymentDispositionNoteModel   model   = await _dataUtil(service, GetCurrentMethod()).GetTestData();

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

            Assert.NotNull(Response);
        }
Пример #13
0
        public async Task <int> CreateAsync(PaymentDispositionNoteModel model)
        {
            model.PaymentDispositionNo = await GenerateNo(model, 7);

            CreateModel(model);
            await _autoDailyBankTransactionService.AutoCreateFromPaymentDisposition(model);

            return(await DbContext.SaveChangesAsync());
        }
Пример #14
0
        public async Task <int> UpdateAsync(int id, PaymentDispositionNoteModel model)
        {
            var existingModel = DbSet
                                .Include(d => d.Items)
                                .ThenInclude(d => d.Details)
                                .Single(dispo => dispo.Id == id && !dispo.IsDeleted);

            UpdateModel(id, model);
            //await _autoDailyBankTransactionService.AutoRevertFromPaymentDisposition(existingModel);
            //await _autoDailyBankTransactionService.AutoCreateFromPaymentDisposition(model);
            return(await DbContext.SaveChangesAsync());
        }
        public async Task Should_Success_Get_Report_Xls()
        {
            PaymentDispositionNoteService service = new PaymentDispositionNoteService(GetServiceProvider().Object, _dbContext(GetCurrentMethod()));
            PaymentDispositionNoteModel   model   = _dataUtil(service, GetCurrentMethod()).GetNewData();

            var xls = service.GetXls(new List <ReportDto>()
            {
                new ReportDto(1, "", DateTimeOffset.Now, 1, "", DateTimeOffset.Now, DateTimeOffset.Now, 1, "", 1, "", 1, "", false, "", 1, "", 1, "", 1, 1, "")
            });

            Assert.NotNull(xls);
        }
        public async Task Should_Success_Get_Data_Details_By_EPOId()
        {
            PaymentDispositionNoteService service = new PaymentDispositionNoteService(GetServiceProvider().Object, _dbContext(GetCurrentMethod()));
            PaymentDispositionNoteModel   model   = await _dataUtil(service, GetCurrentMethod()).GetTestData();

            var item     = model.Items.First();
            var detail   = item.Details.First();
            var epoId    = detail.EPOId;
            var Response = service.ReadDetailsByEPOId(detail.EPOId);

            Assert.NotNull(Response);
        }
Пример #17
0
        public async Task <int> CreateAsync(PaymentDispositionNoteModel model)
        {
            model.PaymentDispositionNo = await GetDocumentNo("K", model.BankCode, IdentityService.Username);

            if (model.BankCurrencyCode != "IDR")
            {
                var garmentCurrency = await GetGarmentCurrency(model.BankCurrencyCode);

                model.CurrencyRate = garmentCurrency.Rate.GetValueOrDefault();
            }

            CreateModel(model);
            //await _autoDailyBankTransactionService.AutoCreateFromPaymentDisposition(model);
            return(await DbContext.SaveChangesAsync());
        }
Пример #18
0
        public void UpdateModel(int id, PaymentDispositionNoteModel model)
        {
            PaymentDispositionNoteModel exist = DbSet
                                                .Include(d => d.Items)
                                                .ThenInclude(d => d.Details)
                                                .Single(dispo => dispo.Id == id && !dispo.IsDeleted);


            exist.BGCheckNumber = model.BGCheckNumber;
            exist.PaymentDate   = model.PaymentDate;

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

                if (itemModel == null)
                {
                    PurchasingDispositionExpeditionModel expedition = DbContext.PurchasingDispositionExpeditions.FirstOrDefault(ex => ex.Id.Equals(item.PurchasingDispositionExpeditionId));
                    expedition.IsPaid = false;
                    expedition.BankExpenditureNoteNo   = null;
                    expedition.BankExpenditureNoteDate = DateTimeOffset.MinValue;

                    EntityExtension.FlagForDelete(item, IdentityService.Username, UserAgent, true);

                    foreach (var detail in item.Details)
                    {
                        EntityExtension.FlagForDelete(detail, IdentityService.Username, UserAgent, true);
                        //DbContext.PaymentDispositionNoteDetails.Update(detail);
                    }

                    //DbContext.PaymentDispositionNoteItems.Update(item);
                }
                else
                {
                    EntityExtension.FlagForUpdate(item, IdentityService.Username, UserAgent);

                    foreach (var detail in DbContext.PaymentDispositionNoteDetails.AsNoTracking().Where(p => p.PaymentDispositionNoteItemId == item.Id))
                    {
                        EntityExtension.FlagForUpdate(detail, IdentityService.Username, UserAgent);
                    }
                }
            }

            EntityExtension.FlagForUpdate(exist, IdentityService.Username, UserAgent);
            //DbSet.Update(exist);
        }
        public async Task Should_Success_Get_Report()
        {
            try
            {
                PaymentDispositionNoteService service = new PaymentDispositionNoteService(GetServiceProvider().Object, _dbContext(GetCurrentMethod()));
                PaymentDispositionNoteModel   model   = _dataUtil(service, GetCurrentMethod()).GetNewData();
                await service.CreateAsync(model);

                var item   = model.Items.FirstOrDefault();
                var result = service.GetReport(model.Id, item.DispositionId, model.SupplierId, item.DivisionId, DateTimeOffset.MinValue, DateTimeOffset.MaxValue);

                Assert.NotEmpty(result);
            }
            catch (Exception e)
            {
            }
        }
Пример #20
0
 public void CreateModel(PaymentDispositionNoteModel model)
 {
     EntityExtension.FlagForCreate(model, IdentityService.Username, UserAgent);
     foreach (var item in model.Items)
     {
         PurchasingDispositionExpeditionModel expedition = DbContext.PurchasingDispositionExpeditions.FirstOrDefault(ex => ex.Id.Equals(item.PurchasingDispositionExpeditionId));
         EntityExtension.FlagForCreate(item, IdentityService.Username, UserAgent);
         expedition.IsPaid = true;
         expedition.BankExpenditureNoteNo   = model.PaymentDispositionNo;
         expedition.BankExpenditureNoteDate = model.PaymentDate;
         foreach (var detail in item.Details)
         {
             EntityExtension.FlagForCreate(detail, IdentityService.Username, UserAgent);
         }
     }
     DbSet.Add(model);
 }
        public async Task <PaymentDispositionNotePostDto> GetNewPostDto()
        {
            PaymentDispositionNoteModel model = GetNewData();
            await Service.CreateAsync(model);

            var read = await Service.ReadByIdAsync((int)model.Id);

            return(new PaymentDispositionNotePostDto
            {
                ListIds = new List <PaymentDispositionNotePostIdDto>
                {
                    new PaymentDispositionNotePostIdDto {
                        Id = read.Id
                    }
                }
            });
        }
Пример #22
0
        public async Task DeleteModel(int id)
        {
            PaymentDispositionNoteModel model = await ReadByIdAsync(id);

            foreach (var item in model.Items)
            {
                PurchasingDispositionExpeditionModel expedition = DbContext.PurchasingDispositionExpeditions.FirstOrDefault(ex => ex.Id.Equals(item.PurchasingDispositionExpeditionId));
                EntityExtension.FlagForDelete(item, IdentityService.Username, UserAgent, true);
                expedition.IsPaid = false;
                expedition.BankExpenditureNoteNo   = null;
                expedition.BankExpenditureNoteDate = DateTimeOffset.MinValue;
                foreach (var detail in item.Details)
                {
                    EntityExtension.FlagForDelete(detail, IdentityService.Username, UserAgent, true);
                }
            }
            EntityExtension.FlagForDelete(model, IdentityService.Username, UserAgent, true);
            DbSet.Update(model);
        }
Пример #23
0
        public Task <int> AutoCreateFromPaymentDisposition(PaymentDispositionNoteModel model)
        {
            var nominal = model.Items.Sum(item => Math.Round((decimal)item.SupplierPayment, 2));
            var dailyBankTransactionModel = new DailyBankTransactionModel()
            {
                AccountBankAccountName    = model.BankAccountName,
                AccountBankAccountNumber  = model.BankAccountNumber,
                AccountBankCode           = model.BankCode,
                AccountBankCurrencyCode   = model.BankCurrencyCode,
                AccountBankCurrencyId     = model.BankCurrencyId,
                AccountBankCurrencySymbol = model.BankCurrencyCode,
                AccountBankId             = model.BankId,
                AccountBankName           = model.BankName,
                Date          = model.PaymentDate,
                Nominal       = nominal,
                CurrencyRate  = (decimal)model.CurrencyRate,
                ReferenceNo   = model.PaymentDispositionNo,
                ReferenceType = "Pembayaran Disposisi",
                Remark        = model.CurrencyCode != "IDR" ? $"Pembayaran atas {model.BankCurrencyCode} dengan nominal {string.Format("{0:n}", nominal)} dan kurs {model.CurrencyCode}" : "",
                SourceType    = model.TransactionType,
                SupplierCode  = model.SupplierCode,
                SupplierId    = model.SupplierId,
                SupplierName  = model.SupplierName,
                Status        = "OUT",
                IsPosted      = true
            };

            if (model.BankCurrencyCode != "IDR")
            {
                dailyBankTransactionModel.Nominal      = Math.Round(nominal * (decimal)model.CurrencyRate, 2);
                dailyBankTransactionModel.NominalValas = nominal;
            }
            else if (model.CurrencyCode != "IDR")
            {
                dailyBankTransactionModel.Nominal = Math.Round(nominal * (decimal)model.CurrencyRate, 2);
            }

            return(_dailyBankTransactionService.CreateAsync(dailyBankTransactionModel));
        }
Пример #24
0
        async Task <string> GenerateNo(PaymentDispositionNoteModel model, int clientTimeZoneOffset)
        {
            DateTimeOffset Now   = model.PaymentDate;
            string         Year  = Now.ToOffset(new TimeSpan(clientTimeZoneOffset, 0, 0)).ToString("yy");
            string         Month = Now.ToOffset(new TimeSpan(clientTimeZoneOffset, 0, 0)).ToString("MM");
            string         Day   = Now.ToOffset(new TimeSpan(clientTimeZoneOffset, 0, 0)).ToString("dd");
            //PD + 2 digit tahun + 2 digit bulan + 2 digit tgl + 3 digit urut
            string no      = $"PD-{Year}-{Month}-{Day}-";
            int    Padding = 3;

            var lastNo = await this.DbSet.Where(w => w.PaymentDispositionNo.StartsWith(no) && !w.IsDeleted).OrderByDescending(o => o.PaymentDispositionNo).FirstOrDefaultAsync();

            no = $"{no}";

            if (lastNo == null)
            {
                return(no + "1".PadLeft(Padding, '0'));
            }
            else
            {
                int lastNoNumber = Int32.Parse(lastNo.PaymentDispositionNo.Replace(no, "")) + 1;
                return(no + lastNoNumber.ToString().PadLeft(Padding, '0'));
            }
        }
Пример #25
0
        public async Task <int> AutoJournalFromDisposition(PaymentDispositionNoteModel model, string Username, string UserAgent)
        {
            await Task.Delay(1000);

            return(await Task.FromResult(1));
        }
Пример #26
0
 public async Task <int> UpdateAsync(int id, PaymentDispositionNoteModel model)
 {
     UpdateModel(id, model);
     return(await DbContext.SaveChangesAsync());
 }
Пример #27
0
        public async Task <int> AutoRevertFromPaymentDisposition(PaymentDispositionNoteModel model)
        {
            await Task.Delay(1000);

            return(await Task.FromResult(1));
        }
        public async Task Should_Success_AutoJournalFromDisposition()
        {
            //Setup
            var dbContext           = GetDbContext(GetCurrentMethod());
            var serviceProviderMock = GetServiceProvider();

            serviceProviderMock.Setup(s => s.GetService(typeof(FinanceDbContext))).Returns(dbContext);
            serviceProviderMock
            .Setup(x => x.GetService(typeof(IHttpClientService)))
            .Returns(new JournalHttpClientTestService());
            Mock <IJournalTransactionService> journalTransactionServiceMock = new Mock <IJournalTransactionService>();

            serviceProviderMock
            .Setup(x => x.GetService(typeof(IJournalTransactionService)))
            .Returns(journalTransactionServiceMock.Object);

            var masterCOAServiceMock = new MasterCOAService(serviceProviderMock.Object);

            serviceProviderMock
            .Setup(x => x.GetService(typeof(IMasterCOAService)))
            .Returns(masterCOAServiceMock);
            var service = new AutoJournalService(dbContext, serviceProviderMock.Object);

            long   nowTicks  = DateTimeOffset.Now.Ticks;
            string nowTicksA = $"{nowTicks}a";
            string nowTicksB = $"{nowTicks}b";
            PaymentDispositionNoteModel dispositionNoteModel = new PaymentDispositionNoteModel()
            {
                SupplierImport    = true,
                SupplierCode      = nowTicksA,
                SupplierName      = nowTicksA,
                SupplierId        = 1,
                BankCurrencyCode  = nowTicksA,
                BankCurrencyId    = 1,
                BankCurrencyRate  = 1,
                BankAccountName   = nowTicksA,
                BankAccountNumber = nowTicksA,
                BankCode          = nowTicksA,
                BankId            = 1,
                BankName          = nowTicksA,
                BankAccountCOA    = nowTicksA,
                TransactionType   = "Any",
                BGCheckNumber     = nowTicksA,
                Amount            = 1000,
                PaymentDate       = DateTimeOffset.Now,

                Items = new List <PaymentDispositionNoteItemModel>
                {
                    new PaymentDispositionNoteItemModel
                    {
                        PurchasingDispositionExpeditionId = 1,
                        CategoryCode    = "CategoryId",
                        CategoryId      = 1,
                        CategoryName    = "CategoryName",
                        DispositionDate = DateTimeOffset.Now,
                        DispositionId   = 1,
                        DispositionNo   = "DispositionNo",
                        DivisionCode    = "DivisionCode",
                        DivisionId      = 1,
                        DivisionName    = "DivisionName",
                        DPP             = 1000,
                        VatValue        = 100,
                        IncomeTaxValue  = 0,
                        ProformaNo      = "ProformaNo",
                        TotalPaid       = 1100,
                        Details         = new List <PaymentDispositionNoteDetailModel>
                        {
                            new PaymentDispositionNoteDetailModel
                            {
                                ProductCode = "ProductCode",
                                Price       = 1000,
                                ProductId   = 1,
                                ProductName = "ProductName",
                                UnitCode    = "UnitCode",
                                UnitId      = 1,
                                UnitName    = "UnitName",
                                UomId       = 1,
                                UomUnit     = "UomUnit",
                                Quantity    = 1,
                                PurchasingDispositionDetailId         = 1,
                                PurchasingDispositionExpeditionItemId = 1,
                                EPOId = "EPOId"
                            }
                        }
                    },
                    new PaymentDispositionNoteItemModel
                    {
                        PurchasingDispositionExpeditionId = 1,
                        CategoryCode    = "CategoryId",
                        CategoryId      = 1,
                        CategoryName    = "CategoryName",
                        DispositionDate = DateTimeOffset.Now,
                        DispositionId   = 1,
                        DispositionNo   = "DispositionNo",
                        DivisionCode    = "DivisionCode",
                        DivisionId      = 1,
                        DivisionName    = "DivisionName",
                        DPP             = 1000,
                        VatValue        = 0,
                        IncomeTaxValue  = 0,
                        ProformaNo      = "ProformaNo",
                        TotalPaid       = 1000,
                        SupplierPayment = 500,
                        Details         = new List <PaymentDispositionNoteDetailModel>
                        {
                            new PaymentDispositionNoteDetailModel
                            {
                                ProductCode = "ProductCode",
                                Price       = 1000,
                                ProductId   = 1,
                                ProductName = "ProductName",
                                UnitCode    = "UnitCode",
                                UnitId      = 1,
                                UnitName    = "UnitName",
                                UomId       = 1,
                                UomUnit     = "UomUnit",
                                Quantity    = 1,
                                PurchasingDispositionDetailId         = 1,
                                PurchasingDispositionExpeditionItemId = 1,
                                EPOId = "EPOId"
                            },
                            new PaymentDispositionNoteDetailModel
                            {
                                ProductCode = "ProductCode",
                                Price       = 1000,
                                ProductId   = 1,
                                ProductName = "ProductName",
                                UnitCode    = "UnitCode2",
                                UnitId      = 1,
                                UnitName    = "UnitName",
                                UomId       = 1,
                                UomUnit     = "UomUnit",
                                Quantity    = 1,
                                PurchasingDispositionDetailId         = 1,
                                PurchasingDispositionExpeditionItemId = 1,
                                EPOId = "EPOId"
                            }
                        }
                    }
                }
            };

            //Act
            var result = await service.AutoJournalFromDisposition(dispositionNoteModel, "Username", "UserAgent");

            dispositionNoteModel.SupplierImport = false;
            var result2 = await service.AutoJournalFromDisposition(dispositionNoteModel, "Username", "UserAgent");

            //Assert
            Assert.Equal(0, result);
            Assert.Equal(0, result2);
        }