Exemplo n.º 1
0
        public async Task <IActionResult> GetXlsMonitoringProductionStockFlow(string type, int unit, DateTime dateFrom, DateTime dateTo, string ro, int page = 1, int size = 25, string Order = "{}")
        {
            try
            {
                VerifyUser();
                GetXlsMonitoringProductionStockFlowQuery query = new GetXlsMonitoringProductionStockFlowQuery(page, size, Order, unit, ro, dateFrom, dateTo, type, WorkContext.Token);
                byte[] xlsInBytes;

                var xls = await Mediator.Send(query);

                string filename = "Laporan Flow Persediaan";

                if (dateFrom != null)
                {
                    filename += " " + ((DateTime)dateFrom).ToString("dd-MM-yyyy");
                }

                if (dateTo != null)
                {
                    filename += "_" + ((DateTime)dateTo).ToString("dd-MM-yyyy");
                }

                filename += ".xlsx";

                xlsInBytes = xls.ToArray();
                var file = File(xlsInBytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", filename);
                return(file);
            }
            catch (Exception e)
            {
                return(StatusCode((int)HttpStatusCode.InternalServerError, e.Message));
            }
        }
        public async Task Handle_StateUnderTest_ExpectedBehavior()
        {
            // Arrange
            GetXlsMonitoringProductionStockFlowQueryHandler unitUnderTest = CreateGetMonitoringProductionFlowQueryHandler();
            CancellationToken cancellationToken = CancellationToken.None;

            Guid guidLoading           = Guid.NewGuid();
            Guid guidLoadingItem       = Guid.NewGuid();
            Guid guidCuttingOut        = Guid.NewGuid();
            Guid guidCuttingOutItem    = Guid.NewGuid();
            Guid guidCuttingOutDetail  = Guid.NewGuid();
            Guid guidFinishingOut      = Guid.NewGuid();
            Guid guidFinishingOutItem  = Guid.NewGuid();
            Guid guidSewingOut         = Guid.NewGuid();
            Guid guidSewingOutItem     = Guid.NewGuid();
            Guid guidSewingIn          = Guid.NewGuid();
            Guid guidSewingInItem      = Guid.NewGuid();
            Guid guidSewingDO          = Guid.NewGuid();
            Guid guidSewingDOItem      = Guid.NewGuid();
            Guid guidCuttingIn         = Guid.NewGuid();
            Guid guidCuttingInItem     = Guid.NewGuid();
            Guid guidFinishingIn       = Guid.NewGuid();
            Guid guidFinishingInItem   = Guid.NewGuid();
            Guid guidAdjustment        = Guid.NewGuid();
            Guid guidAval              = Guid.NewGuid();
            Guid guidExpenditure       = Guid.NewGuid();
            Guid guidExpenditureReturn = Guid.NewGuid();
            Guid guidAdjustmentItem    = Guid.NewGuid();
            GetXlsMonitoringProductionStockFlowQuery getMonitoring = new GetXlsMonitoringProductionStockFlowQuery(1, 25, "{}", 1, "ro", DateTime.Now.AddDays(-5), DateTime.Now, "", "token");

            _mockGarmentLoadingItemRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentLoadingItemReadModel>
            {
                new GarmentLoadingItem(guidLoadingItem, guidLoading, new Guid(), new SizeId(1), "", new ProductId(1), "", "", "", 0, 0, 0, new UomId(1), "", "", 10).GetReadModel()
            }.AsQueryable());

            _mockGarmentLoadingRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentLoadingReadModel>
            {
                new GarmentLoading(guidLoading, "", new Guid(), "", new UnitDepartmentId(1), "", "", "ro", "", new UnitDepartmentId(1), "", "", DateTimeOffset.Now, new GarmentComodityId(1), "", "").GetReadModel()
            }.AsQueryable());

            _mockGarmentCuttingOutDetailRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentCuttingOutDetailReadModel>
            {
                new GarmentCuttingOutDetail(new Guid(), guidCuttingOutItem, new SizeId(1), "", "", 100, 100, new UomId(1), "", 10, 10).GetReadModel()
            }.AsQueryable());

            _mockGarmentCuttingOutItemRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentCuttingOutItemReadModel>
            {
                new GarmentCuttingOutItem(guidCuttingOutItem, new Guid(), new Guid(), guidCuttingOut, new ProductId(1), "", "", "", 100).GetReadModel()
            }.AsQueryable());
            _mockGarmentCuttingOutRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentCuttingOutReadModel>
            {
                new GarmentCuttingOut(guidCuttingOut, "", "SEWING", new UnitDepartmentId(1), "", "", DateTime.Now.AddDays(-1), "ro", "article", new UnitDepartmentId(1), "", "", new GarmentComodityId(1), "cm", "cmo").GetReadModel()
            }.AsQueryable());



            _mockGarmentFinishingOutItemRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentFinishingOutItemReadModel>
            {
                new GarmentFinishingOutItem(guidFinishingOutItem, guidFinishingOut, new Guid(), new Guid(), new ProductId(1), "", "", "", new SizeId(1), "", 10, new UomId(1), "", "", 10, 10, 10).GetReadModel()
            }.AsQueryable());

            _mockGarmentFinishingOutRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentFinishingOutReadModel>
            {
                new GarmentFinishingOut(guidFinishingOut, "", new UnitDepartmentId(1), "", "", "GUDANG JADI", DateTimeOffset.Now.AddDays(-1), "ro", "", new UnitDepartmentId(1), "", "", new GarmentComodityId(1), "", "", false).GetReadModel()
            }.AsQueryable());


            _mockGarmentSewingOutItemRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentSewingOutItemReadModel>
            {
                new GarmentSewingOutItem(guidSewingOutItem, guidSewingOut, new Guid(), new Guid(), new ProductId(1), "", "", "", new SizeId(1), "", 0, new UomId(1), "", "", 10, 100, 100).GetReadModel()
            }.AsQueryable());

            _mockGarmentSewingOutRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentSewingOutReadModel>
            {
                new GarmentSewingOut(guidSewingOut, "", new BuyerId(1), "", "", new UnitDepartmentId(1), "", "", "FINISHING", DateTimeOffset.Now, "ro", "", new UnitDepartmentId(1), "", "", new GarmentComodityId(1), "", "", true).GetReadModel()
            }.AsQueryable());

            _mockGarmentSewingDOItemRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentSewingDOItemReadModel>
            {
                new GarmentSewingDOItem(guidSewingDOItem, guidSewingDO, guidCuttingOutDetail, guidCuttingOutItem, new ProductId(1), "", "", "", new SizeId(1), "", 0, new UomId(1), "", "", 10, 100, 100).GetReadModel()
            }.AsQueryable());

            _mockGarmentSewingDORepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentSewingDOReadModel>
            {
                new GarmentSewingDO(guidSewingDO, "", guidCuttingOut, new UnitDepartmentId(1), "", "", new UnitDepartmentId(1), "", "", "ro", "", new GarmentComodityId(1), "", "", DateTimeOffset.Now).GetReadModel()
            }.AsQueryable());

            _mockGarmentCuttingInDetailRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentCuttingInDetailReadModel>
            {
                new GarmentCuttingInDetail(new Guid(), guidCuttingInItem, new Guid(), new Guid(), new Guid(), new ProductId(1), "", "", "", "Main Fabric", 10, new UomId(1), "", 10, new UomId(1), "", 10, 100, 100, 1, "").GetReadModel()
            }.AsQueryable());

            _mockGarmentCuttingInItemRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentCuttingInItemReadModel>
            {
                new GarmentCuttingInItem(guidCuttingInItem, guidCuttingIn, new Guid(), 1, "", guidSewingOut, "").GetReadModel()
            }.AsQueryable());

            _mockGarmentCuttingInRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentCuttingInReadModel>
            {
                new GarmentCuttingIn(guidCuttingIn, "", "Main Fabric", "", "ro", "", new UnitDepartmentId(1), "", "", DateTimeOffset.Now.AddDays(-1), 1).GetReadModel()
            }.AsQueryable());

            _mockGarmentFinishingInItemRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentFinishingInItemReadModel>
            {
                new GarmentFinishingInItem(guidFinishingInItem, guidFinishingIn, guidSewingOutItem, new Guid(), new Guid(), new SizeId(1), "", new ProductId(1), "", "", "", 8, 19, new UomId(1), "", "", 10, 10).GetReadModel()
            }.AsQueryable());

            _mockGarmentFinishingInRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentFinishingInReadModel>
            {
                new GarmentFinishingIn(guidFinishingIn, "", "PEMBELIAN", new UnitDepartmentId(1), "", "", "ro", "", new UnitDepartmentId(1), "", "", DateTimeOffset.Now, new GarmentComodityId(1), "", "", 2, "").GetReadModel()
            }.AsQueryable());

            _mockGarmentAdjustmentItemRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentAdjustmentItemReadModel>
            {
                new GarmentAdjustmentItem(guidAdjustmentItem, guidLoading, guidSewingDOItem, new Guid(), new Guid(), new Guid(), new SizeId(1), "", new ProductId(1), "", "", "", 8, 19, new UomId(1), "", "", 10).GetReadModel()
            }.AsQueryable());

            _mockGarmentAdjustmentRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentAdjustmentReadModel>
            {
                new GarmentAdjustment(guidAdjustment, "", "LOADING", "ro", "", new UnitDepartmentId(1), "", "", DateTimeOffset.Now, new GarmentComodityId(1), "", "", "").GetReadModel()
            }.AsQueryable());
            _mockGarmentAdjustmentItemRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentAdjustmentItemReadModel>
            {
                new GarmentAdjustmentItem(guidAdjustmentItem, guidLoading, guidSewingDOItem, new Guid(), new Guid(), new Guid(), new SizeId(1), "", new ProductId(1), "", "", "", 8, 19, new UomId(1), "", "", 10).GetReadModel()
            }.AsQueryable());

            _mockGarmentAdjustmentRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentAdjustmentReadModel>
            {
                new GarmentAdjustment(guidAdjustment, "", "SEWING", "ro", "", new UnitDepartmentId(1), "", "", DateTimeOffset.Now, new GarmentComodityId(1), "", "", "").GetReadModel()
            }.AsQueryable());
            _mockGarmentAdjustmentItemRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentAdjustmentItemReadModel>
            {
                new GarmentAdjustmentItem(guidAdjustmentItem, guidLoading, guidSewingDOItem, new Guid(), new Guid(), new Guid(), new SizeId(1), "", new ProductId(1), "", "", "", 8, 19, new UomId(1), "", "", 10).GetReadModel()
            }.AsQueryable());

            _mockGarmentAdjustmentRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentAdjustmentReadModel>
            {
                new GarmentAdjustment(guidAdjustment, "", "FINISHING", "ro", "", new UnitDepartmentId(1), "", "", DateTimeOffset.Now, new GarmentComodityId(1), "", "", "").GetReadModel()
            }.AsQueryable());
            _mockGarmentAdjustmentItemRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentAdjustmentItemReadModel>
            {
                new GarmentAdjustmentItem(guidAdjustmentItem, guidLoading, guidSewingDOItem, new Guid(), new Guid(), new Guid(), new SizeId(1), "", new ProductId(1), "", "", "", 8, 19, new UomId(1), "", "", 10).GetReadModel()
            }.AsQueryable());

            _mockGarmentAdjustmentRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentAdjustmentReadModel>
            {
                new GarmentAdjustment(guidAdjustment, "", "GUDANG JADI", "ro", "", new UnitDepartmentId(1), "", "", DateTimeOffset.Now, new GarmentComodityId(1), "", "", "").GetReadModel()
            }.AsQueryable());

            _mockGarmentSewingInItemRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentSewingInItemReadModel>
            {
                new GarmentSewingInItem(guidSewingInItem, guidSewingIn, guidSewingOutItem, new Guid(), guidLoadingItem, guidFinishingOutItem, new Guid(), new ProductId(1), "", "", "", new SizeId(1), "", 0, new UomId(1), "", "", 10, 100, 100).GetReadModel()
            }.AsQueryable());

            _mockGarmentSewingInRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentSewingInReadModel>
            {
                new GarmentSewingIn(guidSewingIn, "89", "FINISHING", guidLoading, "", new UnitDepartmentId(1), "", "", new UnitDepartmentId(1), "", "", "ro", "article", new GarmentComodityId(1), "", "", DateTimeOffset.Now).GetReadModel()
            }.AsQueryable());

            _mockGarmentAvalComponentItemRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentAvalComponentItemReadModel>
            {
                new GarmentAvalComponentItem(guidAval, guidAval, new Guid(), new Guid(), guidLoadingItem, new ProductId(1), "", "", "", "", 10, 0, new SizeId(1), "", 100, 100).GetReadModel()
            }.AsQueryable());

            _mockGarmentAvalComponentRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentAvalComponentReadModel>
            {
                new GarmentAvalComponent(guidAval, "", new UnitDepartmentId(1), "", "", "", "ro", "article", new GarmentComodityId(1), "", "", DateTimeOffset.Now).GetReadModel()
            }.AsQueryable());
            _mockGarmentExpenditureGoodItemRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentExpenditureGoodItemReadModel>
            {
                new GarmentExpenditureGoodItem(new Guid(), guidExpenditure, new Guid(), new SizeId(1), "", 100, 100, new UomId(1), "", "", 100, 100).GetReadModel()
            }.AsQueryable());

            _mockGarmentExpenditureGoodRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentExpenditureGoodReadModel>
            {
                new GarmentExpenditureGood(guidExpenditure, "np", "SAMPLE", new UnitDepartmentId(1), "", "", "ro", "article", new GarmentComodityId(1), "", "", new BuyerId(1), "", "", DateTimeOffset.Now, "", "", 9, "", true).GetReadModel()
            }.AsQueryable());
            _mockGarmentExpenditureGoodReturnItemRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentExpenditureGoodReturnItemReadModel>
            {
                new GarmentExpenditureGoodReturnItem(new Guid(), guidExpenditureReturn, guidExpenditure, new Guid(), new Guid(), new SizeId(1), "", 100, new UomId(1), "", "", 100, 100).GetReadModel()
            }.AsQueryable());

            _mockGarmentExpenditureGoodReturnRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentExpenditureGoodReturnReadModel>
            {
                new GarmentExpenditureGoodReturn(guidExpenditureReturn, "np", "SAMPLE", new UnitDepartmentId(1), "", "", "ro", "article", new GarmentComodityId(1), "", "", new BuyerId(1), "", "", DateTimeOffset.Now, "", "").GetReadModel()
            }.AsQueryable());
            _mockGarmentComodityPriceRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentComodityPriceReadModel>
            {
                new GarmentComodityPrice(guidExpenditureReturn, true, DateTimeOffset.Now.AddDays(-1), new UnitDepartmentId(1), "", "", new GarmentComodityId(1), "ccc", "dsd", 100).GetReadModel()
            }.AsQueryable());
            _mockGarmentComodityPriceRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentComodityPriceReadModel>
            {
                new GarmentComodityPrice(guidExpenditureReturn, true, DateTimeOffset.Now.AddDays(2), new UnitDepartmentId(1), "", "", new GarmentComodityId(1), "ccc", "dsd", 200).GetReadModel()
            }.AsQueryable());

            var guidGarmentPreparing = Guid.NewGuid();

            _mockGarmentPreparingRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentPreparingReadModel>
            {
                new GarmentPreparing(guidGarmentPreparing, 1, "uenNo", new Domain.GarmentPreparings.ValueObjects.UnitDepartmentId(1), "unitCode", "unitName", DateTimeOffset.Now, "roNo", "article", true, new BuyerId(1), null, null).GetReadModel()
            }.AsQueryable());

            var guidGarmentPreparingItem = Guid.NewGuid();

            _mockGarmentPreparingItemRepository
            .Setup(s => s.Query)
            .Returns(new List <GarmentPreparingItemReadModel>
            {
                new GarmentPreparingItem(guidGarmentPreparingItem, 1, new Domain.GarmentPreparings.ValueObjects.ProductId(1), "productCode", "productName", "designColor", 1, new Domain.GarmentPreparings.ValueObjects.UomId(1), "uomUnit", "fabricType", 1, 1, guidGarmentPreparing, null).GetReadModel()
            }.AsQueryable());

            // Act
            var result = await unitUnderTest.Handle(getMonitoring, cancellationToken);

            // Assert
            result.Should().NotBeNull();
        }