示例#1
0
        public async Task <CreateProcessStatus> CreateInventoryByPackingSlipView(PackingSlipView view)
        {
            int count = 0;

            try
            {
                foreach (var item in view.PackingSlipDetailViews)
                {
                    var query = await(from e in _dbContext.Inventories
                                      where e.ItemId == item.ItemId &&
                                      e.PackingSlipDetailId == item.PackingSlipDetailId
                                      select e).FirstOrDefaultAsync <Inventory>();
                    if (query == null)
                    {
                        Inventory inventory = new Inventory();

                        applicationViewFactory.MapPackingSlipIntoInventoryEntity(ref inventory, item);

                        AddObject(inventory);
                        count++;
                    }
                }
                if (count == 0)
                {
                    return(CreateProcessStatus.AlreadyExists);
                }
                else
                {
                    return(CreateProcessStatus.Insert);
                }
            }
            catch (Exception ex) { throw new Exception(GetMyMethodName(), ex); }
        }
示例#2
0
        public IFluentInventory CreateInventoryByPackingSlipView(PackingSlipView view)
        {
            int count = 0;

            try
            {
                foreach (var item in view.PackingSlipDetailViews)
                {
                    Task <Inventory> inventoryTask = Task.Run(async() => await unitOfWork.inventoryRepository.FindEntityByExpression(e => e.ItemId == item.ItemId && e.PackingSlipDetailId == item.PackingSlipDetailId));
                    Task.WaitAll(inventoryTask);
                    if (inventoryTask.Result == null)
                    {
                        Inventory inventory = new Inventory();

                        applicationViewFactory.MapPackingSlipIntoInventoryEntity(ref inventory, item);

                        AddInventory(inventory);
                        count++;
                    }
                }
                if (count == 0)
                {
                    processStatus = CreateProcessStatus.AlreadyExists; return(this as IFluentInventory);
                }
                else
                {
                    return(this as IFluentInventory);
                }
            }
            catch (Exception ex) { throw new Exception("CreateInventoryByPackingSlipView", ex); }
        }
示例#3
0
        public IFluentPackingSlipDetail CreatePackingSlipDetailsByView(PackingSlipView view)
        {
            try
            {
                Task <PackingSlip> packingSlipTask = Task.Run(async() => await unitOfWork.packingSlipRepository.GetEntityBySlipDocument(view.SlipDocument));
                if (packingSlipTask.Result != null)
                {
                    long packingSlipId = view.PackingSlipId;

                    //TODO - send a list of ids and return back the views
                    foreach (var detailView in view.PackingSlipDetailViews)
                    {
                        detailView.PackingSlipId = packingSlipId;

                        PackingSlipDetail newDetail = new PackingSlipDetail();


                        newDetail = MapToEntity(detailView);

                        Task <IList <PackingSlipDetail> > listTask = Task.Run(async() => await unitOfWork.packingSlipDetailRepository.FindByExpression(e => e.ItemId == detailView.ItemId && e.PackingSlipId == newDetail.PackingSlipId));
                        Task.WaitAll(listTask);

                        if (listTask.Result == null)
                        {
                            //_dbContext.Set<PackingSlipDetail>().Add(newDetail);
                            AddPackingSlipDetail(newDetail);
                            return(this as IFluentPackingSlipDetail);
                        }
                    }
                }
                processStatus = CreateProcessStatus.AlreadyExists;
                return(this as IFluentPackingSlipDetail);
            }
            catch (Exception ex) { throw new Exception("CreatePackingSlipDetailsByView", ex); }
        }
示例#4
0
        public IPackingSlip CreatePackingSlipDetails(PackingSlipView packingSlipView)
        {
            Task <CreateProcessStatus> resultTask = Task.Run(() => unitOfWork.packingSlipRepository.CreatePackingSlipDetailsByView(packingSlipView));

            Task.WaitAll(resultTask);
            processStatus = resultTask.Result;
            return(this as IPackingSlip);
        }
示例#5
0
        public async Task <IActionResult> GetPackingSlipView(long packingSlipId)
        {
            PackingSlipModule invMod = new PackingSlipModule();

            PackingSlipView view = await invMod.PackingSlip.Query().GetViewById(packingSlipId);

            return(Ok(view));
        }
示例#6
0
        public async Task <IActionResult> DeletePackingSlip([FromBody] PackingSlipView view)
        {
            PackingSlipModule invMod      = new PackingSlipModule();
            PackingSlip       packingSlip = await invMod.PackingSlip.Query().MapToEntity(view);

            invMod.PackingSlip.DeletePackingSlip(packingSlip).Apply();

            return(Ok(view));
        }
示例#7
0
        public IPackingSlip CreateInventoryByPackingSlip(PackingSlipView packingSlipView)
        {
            Task <PackingSlipView> lookupViewTask = Task.Run(() => unitOfWork.packingSlipRepository.GetPackingSlipViewBySlipDocument(packingSlipView.SlipDocument));

            Task.WaitAll(lookupViewTask);
            Task <CreateProcessStatus> resultTask = unitOfWork.inventoryRepository.CreateInventoryByPackingSlipView(lookupViewTask.Result);

            Task.WaitAll(resultTask);
            processStatus = resultTask.Result;
            return(this as IPackingSlip);
        }
示例#8
0
        public async Task <IActionResult> UpdatePackingSlip([FromBody] PackingSlipView view)
        {
            PackingSlipModule invMod = new PackingSlipModule();

            PackingSlip packingSlip = await invMod.PackingSlip.Query().MapToEntity(view);


            invMod.PackingSlip.UpdatePackingSlip(packingSlip).Apply();

            PackingSlipView retView = await invMod.PackingSlip.Query().GetViewById(packingSlip.PackingSlipId);


            return(Ok(retView));
        }
示例#9
0
        public bool CreatePackingSlip(PackingSlipView packingSlipView)

        {
            try

            {
                PackingSlip.CreatePackingSlipByView(packingSlipView).Apply();

                PackingSlipDetail.CreatePackingSlipDetailsByView(packingSlipView).Apply();

                Inventory.CreateInventoryByPackingSlipView(packingSlipView).Apply();

                return(true);
            }

            catch (Exception ex) { throw new Exception("CreatePackingSlip", ex); }
        }
示例#10
0
        public async Task <IActionResult> AddPackingSlip([FromBody] PackingSlipView view)
        {
            PackingSlipModule invMod = new PackingSlipModule();

            NextNumber nnPackingSlip = await invMod.PackingSlip.Query().GetNextNumber();

            view.PackingSlipNumber = nnPackingSlip.NextNumberValue;

            PackingSlip packingSlip = await invMod.PackingSlip.Query().MapToEntity(view);

            invMod.PackingSlip.AddPackingSlip(packingSlip).Apply();

            PackingSlipView newView = await invMod.PackingSlip.Query().GetViewByNumber(view.PackingSlipNumber);


            return(Ok(newView));
        }
示例#11
0
        public async Task TestCreateInboundPackingSlip()
        {
            long supplierId = 3;

            try
            {
                SupplierModule supplierMod = new SupplierModule();

                SupplierView supplierView = await supplierMod.Supplier.Query().GetViewById(supplierId);

                Udc slipTypeUDC = await supplierMod.Udc.Query().GetUdc("PACKINGSLIP_TYPE", "INBOUND");



                string json = @"{
            ""SupplierId"" : " + supplierView.SupplierId + @",
            ""ReceivedDate"" : """ + DateTime.Parse("8/16/2018") + @""",
            ""SlipDocument"" : ""SLIP-1"",
            ""PONumber"" :""PO-2"",
            ""SlipType"" : """ + slipTypeUDC.KeyCode + @""",

            ""PackingSlipDetailViews"":[
                    {
                    ""ItemId"": 5,
                    ""Quantity"": 5,
                    ""UnitPrice"" : " + 10 + @",
                    ""ExtendedCost"" : " + 50 + @",
                    ""UnitOfMeasure"" : """ + "Dozen" + @""",
                    ""Description"": """ + "Pencil HB" + @"""
                    },
                    {
                    ""ItemId"": 6,
                    ""Quantity"": 4,
                    ""UnitPrice"" : " + 10 + @",
                    ""ExtendedCost"" : " + 40 + @",
                    ""UnitOfMeasure"" : """ + "Dozen" + @""",
                    ""Description"": """ + "Pencils 2B" + @"""
                    },
                    {
                    ""ItemId"": 7,
                    ""Quantity"": 10,
                    ""UnitPrice"" : " + 3 + @",
                    ""ExtendedCost"" : " + 30 + @",
                    ""UnitOfMeasure"" : """ + "Ream" + @""",
                    ""Description"": """ + "Paper - A4, Photo coper, 70 grams" + @"""
                    },
                    {
                    ""ItemId"": 8,
                    ""Quantity"": 15,
                    ""UnitPrice"" : " + 3.20 + @",
                    ""ExtendedCost"" : " + 48 + @",
                    ""UnitOfMeasure"" : """ + "Ream" + @""",
                    ""Description"": """ + "NPaper - A4, Photo Copier, 80 gramULL" + @"""
                    },
                    {
                    ""ItemId"": 9,
                    ""Quantity"": 5,
                    ""UnitPrice"" : " + 10 + @",
                    ""ExtendedCost"" : " + 100 + @",
                    ""UnitOfMeasure"" : """ + "Ream" + @""",
                    ""Description"": """ + "Pens - Ball Point, Blue" + @"""
                    }
                ]

            }";

                PackingSlipView packingSlipView = JsonConvert.DeserializeObject <PackingSlipView>(json);

                AccountPayableModule apMod = new AccountPayableModule();
                apMod.CreatePackingSlip(packingSlipView);
                apMod.AccountPayable.Apply();

                Assert.True(true);
            }
            catch (Exception ex) { }
        }