public void Should_Success_Get_Data_PaymentOrderMemoLoader()
        {
            var dbContext = _dbContext(GetCurrentMethod());
            var facade    = new PurchasingDispositionFacade(ServiceProvider, dbContext);

            var bankExpenditureNote = new BankExpenditureNoteModel()
            {
                Id = 1, SupplierImport = false, CurrencyCode = "IDR"
            };
            var bankExpenditureNoteDetail = new BankExpenditureNoteDetailModel()
            {
                Id = 1, BankExpenditureNoteId = 1, UnitPaymentOrderNo = "Test"
            };
            var unitPaymentOrder = new UnitPaymentOrder()
            {
                Id = 1, UPONo = "Test", CurrencyCode = "IDR", DivisionId = "1", UseVat = true, UseIncomeTax = true
            };

            dbContext.BankExpenditureNotes.Add(bankExpenditureNote);
            dbContext.BankExpenditureNoteDetails.Add(bankExpenditureNoteDetail);
            dbContext.UnitPaymentOrders.Add(unitPaymentOrder);
            dbContext.SaveChanges();

            var Response  = facade.GetUnitPaymentOrderMemoLoader("Test", 1, false, "IDR");
            var Response2 = facade.GetUnitPaymentOrderMemoLoader("", 1, false, "");

            Assert.NotNull(Response);
            Assert.NotNull(Response2);
        }
        private PurchasingDispositionDataUtil _dataUtil(PurchasingDispositionFacade facade, string testName)
        {
            var serviceProvider = new Mock <IServiceProvider>();

            serviceProvider
            .Setup(x => x.GetService(typeof(IdentityService)))
            .Returns(new IdentityService()
            {
                Token = "Token", Username = "******"
            });

            serviceProvider
            .Setup(x => x.GetService(typeof(IHttpClientService)))
            .Returns(new HttpClientTestService());

            PurchaseRequestFacade       purchaseRequestFacade       = new PurchaseRequestFacade(serviceProvider.Object, _dbContext(testName));
            PurchaseRequestItemDataUtil purchaseRequestItemDataUtil = new PurchaseRequestItemDataUtil();
            PurchaseRequestDataUtil     purchaseRequestDataUtil     = new PurchaseRequestDataUtil(purchaseRequestItemDataUtil, purchaseRequestFacade);

            InternalPurchaseOrderFacade       internalPurchaseOrderFacade       = new InternalPurchaseOrderFacade(serviceProvider.Object, _dbContext(testName));
            InternalPurchaseOrderItemDataUtil internalPurchaseOrderItemDataUtil = new InternalPurchaseOrderItemDataUtil();
            InternalPurchaseOrderDataUtil     internalPurchaseOrderDataUtil     = new InternalPurchaseOrderDataUtil(internalPurchaseOrderItemDataUtil, internalPurchaseOrderFacade, purchaseRequestDataUtil);

            ExternalPurchaseOrderFacade         externalPurchaseOrderFacade         = new ExternalPurchaseOrderFacade(serviceProvider.Object, _dbContext(testName));
            ExternalPurchaseOrderDetailDataUtil externalPurchaseOrderDetailDataUtil = new ExternalPurchaseOrderDetailDataUtil();
            ExternalPurchaseOrderItemDataUtil   externalPurchaseOrderItemDataUtil   = new ExternalPurchaseOrderItemDataUtil(externalPurchaseOrderDetailDataUtil);
            ExternalPurchaseOrderDataUtil       externalPurchaseOrderDataUtil       = new ExternalPurchaseOrderDataUtil(externalPurchaseOrderFacade, internalPurchaseOrderDataUtil, externalPurchaseOrderItemDataUtil);


            return(new PurchasingDispositionDataUtil(facade, externalPurchaseOrderDataUtil));
        }
        public async void Should_Error_Delete_Data()
        {
            PurchasingDispositionFacade facade = new PurchasingDispositionFacade(ServiceProvider, _dbContext(GetCurrentMethod()));

            Exception e = await Assert.ThrowsAsync <Exception>(async() => facade.Delete(0, USERNAME));

            Assert.NotNull(e.Message);
        }
        public async void Should_Success_Get_Data_By_DispositonNo()
        {
            var facade = new PurchasingDispositionFacade(ServiceProvider, _dbContext(GetCurrentMethod()));
            var model  = await _dataUtil(facade, GetCurrentMethod()).GetTestData();

            var Response = facade.ReadByDisposition(model.DispositionNo);

            Assert.NotNull(Response);
        }
        public async void Should_Success_Delete_Data()
        {
            PurchasingDispositionFacade facade = new PurchasingDispositionFacade(ServiceProvider, _dbContext(GetCurrentMethod()));
            var Data = await _dataUtil(facade, GetCurrentMethod()).GetTestData();

            int Deleted = facade.Delete((int)Data.Id, USERNAME);

            Assert.True(Deleted > 0);
        }
Exemple #6
0
        public async Task Should_Success_Get_Data_By_Id()
        {
            PurchasingDispositionFacade facade = new PurchasingDispositionFacade(ServiceProvider, _dbContext(GetCurrentMethod()));
            var model = await _dataUtil(facade, GetCurrentMethod()).GetTestData();

            var Response = facade.ReadModelById((int)model.Id);

            Assert.NotNull(Response);
        }
        public async void Should_Success_Get_Data()
        {
            PurchasingDispositionFacade facade = new PurchasingDispositionFacade(ServiceProvider, _dbContext(GetCurrentMethod()));

            await _dataUtil(facade, GetCurrentMethod()).GetTestData();

            var Response = facade.Read();

            Assert.NotEqual(Response.Item1.Count, 0);
        }
        public async Task Should_Success_Get_Data_Optimized()
        {
            PurchasingDispositionFacade facade = new PurchasingDispositionFacade(ServiceProvider, _dbContext(GetCurrentMethod()));

            await _dataUtil(facade, GetCurrentMethod()).GetTestData();

            var Response = facade.ReadOptimized();

            Assert.NotEmpty(Response.Item1);
        }
        public async void Should_Success_Create_Data()
        {
            PurchasingDispositionFacade facade = new PurchasingDispositionFacade(ServiceProvider, _dbContext(GetCurrentMethod()));
            var modelLocalSupplier             = _dataUtil(facade, GetCurrentMethod()).GetNewData();
            var ResponseLocalSupplier          = await facade.Create(modelLocalSupplier, USERNAME, 7);

            Assert.NotEqual(ResponseLocalSupplier, 0);

            var modelImportSupplier    = _dataUtil(facade, GetCurrentMethod()).GetNewData();
            var ResponseImportSupplier = await facade.Create(modelImportSupplier, USERNAME, 7);

            Assert.NotEqual(ResponseImportSupplier, 0);
        }
        public async void Should_Error_Update_Data()
        {
            PurchasingDispositionFacade facade = new PurchasingDispositionFacade(ServiceProvider, _dbContext(GetCurrentMethod()));
            var model = await _dataUtil(facade, GetCurrentMethod()).GetTestData();

            Exception errorInvalidId = await Assert.ThrowsAsync <Exception>(async() => await facade.Update(0, model, USERNAME));

            Assert.NotNull(errorInvalidId.Message);

            model.Items = null;
            Exception errorNullItems = await Assert.ThrowsAsync <Exception>(async() => await facade.Update((int)model.Id, model, USERNAME));

            Assert.NotNull(errorNullItems.Message);
        }
        public async void Should_Success_Get_Data_Disposition()
        {
            PurchasingDispositionFacade facade = new PurchasingDispositionFacade(ServiceProvider, _dbContext(GetCurrentMethod()));
            var model          = _dataUtil(facade, GetCurrentMethod()).GetNewData();
            var ResponseCreate = await facade.Create(model, USERNAME, 7);

            var epoId = "";

            foreach (var epo in model.Items)
            {
                epoId = epo.EPOId; break;
            }
            var Response = facade.ReadDisposition(null, "{}", epoId);

            Assert.NotEqual(Response.Count, 0);
        }
        public async void Should_Success_Update_Position()
        {
            PurchasingDispositionFacade facade = new PurchasingDispositionFacade(ServiceProvider, _dbContext(GetCurrentMethod()));
            var prepData = await _dataUtil(facade, GetCurrentMethod()).GetTestData();

            PurchasingDispositionUpdatePositionPostedViewModel data = new PurchasingDispositionUpdatePositionPostedViewModel()
            {
                Position = Lib.Enums.ExpeditionPosition.CASHIER_DIVISION,
                PurchasingDispositionNoes = new List <string>()
                {
                    prepData.DispositionNo
                }
            };
            PurchasingDispositionUpdatePositionPostedViewModel nullModel = new PurchasingDispositionUpdatePositionPostedViewModel();

            Assert.True(nullModel.Validate(null).Count() > 0);
            int updated = await facade.UpdatePosition(data, USERNAME);

            Assert.True(updated > 0);
        }
        public void Should_Success_Get_Data_DispositionMemoLoader()
        {
            var dbContext = _dbContext(GetCurrentMethod());
            var facade    = new PurchasingDispositionFacade(ServiceProvider, dbContext);

            var Response = facade.GetDispositionMemoLoader(0);

            Assert.Null(Response);

            var purhcasingDisposition = new PurchasingDisposition()
            {
                Id = 1, CurrencyCode = "IDR"
            };
            var purchasingDispositionItem = new PurchasingDispositionItem()
            {
                PurchasingDispositionId = 1, UseVat = true, UseIncomeTax = true, EPONo = "1"
            };
            var unitPaymentOrder = new UnitPaymentOrder()
            {
                Id = 1
            };
            var unitPaymentOrderItem = new UnitPaymentOrderItem()
            {
                Id = 1, UPOId = 1
            };
            var unitPaymentOrderDetail = new UnitPaymentOrderDetail()
            {
                EPONo = "1", UPOItemId = 1
            };

            dbContext.PurchasingDispositions.Add(purhcasingDisposition);
            dbContext.PurchasingDispositionItems.Add(purchasingDispositionItem);
            dbContext.UnitPaymentOrders.Add(unitPaymentOrder);
            dbContext.UnitPaymentOrderItems.Add(unitPaymentOrderItem);
            dbContext.UnitPaymentOrderDetails.Add(unitPaymentOrderDetail);
            dbContext.SaveChanges();

            var Response2 = facade.GetDispositionMemoLoader(1);

            Assert.NotNull(Response2);
        }
        public async Task Should_Success_Create_Data()
        {
            PurchasingDispositionFacade facade = new PurchasingDispositionFacade(ServiceProvider, _dbContext(GetCurrentMethod()));
            var modelLocalSupplier             = await _dataUtil(facade, GetCurrentMethod()).GetNewData();

            var ResponseLocalSupplier = await facade.Create(modelLocalSupplier, USERNAME, 7);

            Assert.NotEqual(0, ResponseLocalSupplier);

            var modelImportSupplier = await _dataUtil(facade, GetCurrentMethod()).GetNewData();

            var ResponseImportSupplier = await facade.Create(modelImportSupplier, USERNAME, 7);

            Assert.NotEqual(0, ResponseImportSupplier);

            var modelDivisionGarment = await _dataUtil(facade, GetCurrentMethod()).GetNewData();

            modelDivisionGarment.DivisionName = "GARMENT";
            var ResponseDivisionGarment = await facade.Create(modelDivisionGarment, USERNAME, 7);

            Assert.NotEqual(0, ResponseLocalSupplier);
        }
        public async void Should_Success_Get_Data_TotalPaidPrice()
        {
            PurchasingDispositionFacade facade = new PurchasingDispositionFacade(ServiceProvider, _dbContext(GetCurrentMethod()));

            await _dataUtil(facade, GetCurrentMethod()).GetTestData();

            var Response = facade.Read();
            var data     = Response.Item1.Select(x => new PurchasingDispositionViewModel()
            {
                Active              = x.Active,
                Amount              = x.Amount,
                Bank                = x.Bank,
                Calculation         = x.Calculation,
                ConfirmationOrderNo = x.ConfirmationOrderNo,
                CreatedAgent        = x.CreatedAgent,
                CreatedBy           = x.CreatedBy,
                CreatedUtc          = x.CreatedUtc,
                Currency            = new Lib.ViewModels.IntegrationViewModel.CurrencyViewModel()
                {
                    code = x.CurrencyCode,
                    _id  = x.CurrencyId
                },
                Id            = x.Id,
                DispositionNo = x.DispositionNo,
                //Investation = x.Investation,
                //InvoiceNo = x.InvoiceNo,
                IsDeleted         = x.IsDeleted,
                LastModifiedAgent = x.LastModifiedAgent,
                LastModifiedBy    = x.LastModifiedBy,
                LastModifiedUtc   = x.LastModifiedUtc,
                PaymentDueDate    = x.PaymentDueDate,
                PaymentMethod     = x.PaymentMethod,
                Position          = x.Position,
                ProformaNo        = x.ProformaNo,
                Remark            = x.Remark,
                Supplier          = new Lib.ViewModels.IntegrationViewModel.SupplierViewModel()
                {
                    code = x.SupplierCode,
                    name = x.SupplierName,
                    _id  = x.SupplierId
                },
                Items = x.Items.Select(y => new PurchasingDispositionItemViewModel()
                {
                    Active       = y.Active,
                    CreatedAgent = y.CreatedAgent,
                    CreatedBy    = y.CreatedBy,
                    CreatedUtc   = y.CreatedUtc,
                    EPOId        = y.EPOId,
                    EPONo        = y.EPONo,
                    Id           = y.Id,
                    IncomeTax    = new Lib.ViewModels.IntegrationViewModel.IncomeTaxViewModel()
                    {
                        name = y.IncomeTaxName,
                        rate = y.IncomeTaxRate.ToString(),
                        _id  = y.IncomeTaxId
                    },
                    UseVat            = y.UseVat,
                    UseIncomeTax      = y.UseIncomeTax,
                    LastModifiedUtc   = y.LastModifiedUtc,
                    LastModifiedBy    = y.LastModifiedBy,
                    LastModifiedAgent = y.LastModifiedAgent,
                    IsDeleted         = y.IsDeleted,
                    Details           = y.Details.Select(z => new PurchasingDispositionDetailViewModel()
                    {
                        Active            = z.Active,
                        IsDeleted         = z.IsDeleted,
                        LastModifiedAgent = z.LastModifiedAgent,
                        Category          = new Lib.ViewModels.IntegrationViewModel.CategoryViewModel()
                        {
                            code = z.CategoryCode,
                            name = z.CategoryName,
                            _id  = z.CategoryId
                        },
                        Unit = new Lib.ViewModels.IntegrationViewModel.UnitViewModel()
                        {
                            name = z.UnitName,
                            code = z.UnitCode,
                            _id  = z.UnitId
                        },
                        Product = new Lib.ViewModels.IntegrationViewModel.ProductViewModel()
                        {
                            _id  = z.ProductId,
                            code = z.ProductCode,
                            name = z.ProductName
                        },
                        PRNo         = z.PRNo,
                        PRId         = z.PRId,
                        PriceTotal   = z.PriceTotal,
                        PaidQuantity = z.PaidQuantity,
                        CreatedAgent = z.CreatedAgent,
                        CreatedBy    = z.CreatedBy,
                        CreatedUtc   = z.CreatedUtc,
                        DealQuantity = z.DealQuantity,
                        DealUom      = new Lib.ViewModels.IntegrationViewModel.UomViewModel()
                        {
                            unit = z.DealUomUnit,
                            _id  = z.DealUomId
                        },
                        Id = z.Id,
                        PricePerDealUnit = z.PricePerDealUnit,
                        PaidPrice        = z.PaidPrice,
                        LastModifiedUtc  = z.LastModifiedUtc,
                        LastModifiedBy   = z.LastModifiedBy
                    }).ToList()
                }).ToList()
            }).ToList();
            var totalPaidPriceResponse = facade.GetTotalPaidPrice(data);

            Assert.NotEqual(totalPaidPriceResponse.Count, 0);
        }
 public PurchasingDispositionDataUtil(PurchasingDispositionFacade facade, ExternalPurchaseOrderDataUtil externalPurchaseOrderDataUtil)
 {
     this.facade = facade;
     this.externalPurchaseOrderDataUtil = externalPurchaseOrderDataUtil;
 }
        public async void Should_Success_Update_Data()
        {
            PurchasingDispositionFacade facade = new PurchasingDispositionFacade(ServiceProvider, _dbContext(GetCurrentMethod()));
            var model = await _dataUtil(facade, GetCurrentMethod()).GetTestData();

            var modelItem   = _dataUtil(facade, GetCurrentMethod()).GetNewData().Items.First();
            var modelDetail = modelItem.Details.First();

            //model.Items.Clear();
            modelItem.EPONo = "test";
            var ResponseAdd1 = await facade.Update((int)model.Id, model, USERNAME);

            Assert.NotEqual(ResponseAdd1, 0);

            var dispoItem =
                new PurchasingDispositionItem
            {
                EPOId         = modelItem.EPOId,
                EPONo         = modelItem.EPONo,
                IncomeTaxId   = "1",
                IncomeTaxName = "tax",
                IncomeTaxRate = 1,
                UseIncomeTax  = true,
                UseVat        = true,
                Details       = new List <PurchasingDispositionDetail>
                {
                    new PurchasingDispositionDetail
                    {
                        //EPODetailId=modelDetail.EPODetailId,
                        CategoryCode     = "test",
                        CategoryId       = "1",
                        CategoryName     = "test",
                        DealQuantity     = 10,
                        PaidQuantity     = 1000,
                        DealUomId        = "1",
                        DealUomUnit      = "test",
                        PaidPrice        = 1000,
                        PricePerDealUnit = 100,
                        PriceTotal       = 10000,
                        PRId             = "1",
                        PRNo             = "test",
                        ProductCode      = "test",
                        ProductName      = "test",
                        ProductId        = "1",
                        UnitName         = "test",
                        UnitCode         = "test",
                        UnitId           = "1",
                    }
                }
            };
            var dispoDetail = new PurchasingDispositionDetail
            {
                //EPODetailId = modelDetail.EPODetailId,
                CategoryCode     = "test",
                CategoryId       = "1",
                CategoryName     = "test",
                DealQuantity     = 10,
                PaidQuantity     = 1000,
                DealUomId        = "1",
                DealUomUnit      = "test",
                PaidPrice        = 1000,
                PricePerDealUnit = 100,
                PriceTotal       = 10000,
                PRId             = "1",
                PRNo             = "test",
                ProductCode      = "test",
                ProductName      = "test",
                ProductId        = "1",
            };

            model.Items.First().Details.Add(dispoDetail);
            var ResponseAddDetail = await facade.Update((int)model.Id, model, USERNAME);

            Assert.NotEqual(ResponseAddDetail, 0);

            var ResponseAddDetail2 = await facade.Update((int)model.Id, model, USERNAME);

            Assert.NotEqual(ResponseAddDetail2, 0);

            model.Items.First().Details.Remove(modelDetail);
            var ResponseAddDetail1 = await facade.Update((int)model.Id, model, USERNAME);

            Assert.NotEqual(ResponseAddDetail1, 0);

            model.Items.Add(dispoItem);
            var ResponseAdd = await facade.Update((int)model.Id, model, USERNAME);

            Assert.NotEqual(ResponseAdd, 0);


            model.Items.Remove(modelItem);
            var ResponseAdd2 = await facade.Update((int)model.Id, model, USERNAME);

            Assert.NotEqual(ResponseAdd2, 0);
        }