Beispiel #1
0
        public async Task Should_Success_Update_Data()
        {
            ExternalPurchaseOrder model = await DataUtil.GetTestData("Unit test");

            model.UseIncomeTax = false;
            foreach (var item in model.Items)
            {
                foreach (var detail in item.Details)
                {
                    detail.DealQuantity -= 1;
                }
            }
            var Response = await Facade.Update((int)model.Id, model, "Unit test");

            Assert.NotEqual(Response, 0);


            ExternalPurchaseOrderItem   oldItem          = model.Items.FirstOrDefault();
            ExternalPurchaseOrderDetail oldDetail        = oldItem.Details.FirstOrDefault();
            ExternalPurchaseOrderItem   newDuplicateItem = new ExternalPurchaseOrderItem
            {
                POId     = oldItem.POId,
                PONo     = oldItem.PONo,
                PRId     = oldItem.PRId,
                PRNo     = oldItem.PRNo,
                UnitId   = oldItem.UnitId,
                UnitCode = oldItem.UnitCode,
                UnitName = oldItem.UnitName,
                Details  = new List <ExternalPurchaseOrderDetail>()
            };
            ExternalPurchaseOrderDetail oldDuplicateDetail = new ExternalPurchaseOrderDetail
            {
                PRItemId        = oldDetail.PRItemId,
                ProductId       = oldDetail.ProductId,
                ProductCode     = oldDetail.ProductCode,
                ProductName     = oldDetail.ProductName,
                ProductRemark   = oldDetail.ProductRemark,
                DOQuantity      = oldDetail.DOQuantity,
                DealQuantity    = oldDetail.DealQuantity,
                DealUomId       = oldDetail.DealUomId,
                DealUomUnit     = oldDetail.DealUomUnit,
                ReceiptQuantity = oldDetail.ReceiptQuantity,
                DefaultUomId    = oldDetail.DefaultUomId,
                DefaultUomUnit  = oldDetail.DefaultUomUnit,
                POItemId        = oldDetail.POItemId
            };
            ExternalPurchaseOrderDetail newDuplicateDetail = new ExternalPurchaseOrderDetail
            {
                PRItemId        = oldDetail.PRItemId,
                ProductRemark   = oldDetail.ProductRemark,
                DOQuantity      = oldDetail.DOQuantity,
                DealQuantity    = oldDetail.DealQuantity,
                DealUomId       = oldDetail.DealUomId,
                DealUomUnit     = oldDetail.DealUomUnit,
                ReceiptQuantity = oldDetail.ReceiptQuantity,
                DefaultUomId    = oldDetail.DefaultUomId,
                DefaultUomUnit  = oldDetail.DefaultUomUnit,
                POItemId        = oldDetail.POItemId,
                ProductId       = "PrdId2",
                ProductCode     = "PrdCode2",
                ProductName     = "PrdName2",
            };

            newDuplicateItem.Details.Add(oldDuplicateDetail);
            newDuplicateItem.Details.Add(newDuplicateDetail);
            model.Items.Add(newDuplicateItem);
            var ResponseAddDuplicateItem = await Facade.Update((int)model.Id, model, "Unit test");

            Assert.NotEqual(ResponseAddDuplicateItem, 0);

            var newModelForAddItem = await DataUtil.GetNewData("Unit test");

            ExternalPurchaseOrderItem newModelItem = newModelForAddItem.Items.FirstOrDefault();

            model.Items.Add(newModelItem);
            var ResponseAddItem = await Facade.Update((int)model.Id, model, "Unit test");

            Assert.NotEqual(ResponseAddItem, 0);

            model.Items.Remove(newModelItem);
            model.Items.FirstOrDefault().Details.Remove(oldDetail);
            var ResponseRemoveItemDetail = await Facade.Update((int)model.Id, model, "Unit test");

            Assert.NotEqual(ResponseRemoveItemDetail, 0);
        }
        public async Task <PurchasingDisposition> GetNewData()
        {
            var s = await Task.Run(() => externalPurchaseOrderDataUtil.GetTestData("unit-test"));

            ExternalPurchaseOrderDetail d = new ExternalPurchaseOrderDetail();
            ExternalPurchaseOrderItem   i = new ExternalPurchaseOrderItem();
            var itemData = s.Items;

            foreach (var item in itemData)
            {
                i = item; break;
            }
            foreach (var detail in i.Details)
            {
                d = detail; break;
            }

            EPODetailViewModel detailEPO = new EPODetailViewModel
            {
                _id      = d.Id,
                poItemId = d.POItemId,
                prItemId = d.PRItemId,
                product  = new ProductViewModel
                {
                    _id  = d.ProductId,
                    code = d.ProductCode,
                    name = d.ProductName,
                },

                dealQuantity = d.DealQuantity,
                dealUom      = new UomViewModel
                {
                    _id  = d.DealUomId,
                    unit = d.DealUomUnit,
                },
                doQuantity          = d.DOQuantity,
                dispositionQuantity = d.DispositionQuantity,
                productRemark       = d.ProductRemark,
                priceBeforeTax      = d.PriceBeforeTax,
                pricePerDealUnit    = d.PricePerDealUnit,
            };

            EPOItemViewModel itemEPO = new EPOItemViewModel
            {
                _id       = i.Id,
                IsDeleted = i.IsDeleted,
                prId      = i.PRId,
                poId      = i.POId,
                prNo      = i.PRNo,
                category  = new CategoryViewModel
                {
                    _id  = "CategoryId",
                    code = "CategoryCode",
                    name = "CategoryName"
                },
                details = new List <EPODetailViewModel>()
                {
                    detailEPO
                }
            };

            EPOViewModel dataEPO = new EPOViewModel
            {
                _id  = s.Id,
                no   = s.EPONo,
                unit = new UnitViewModel
                {
                    _id  = s.UnitId,
                    name = s.UnitName,
                    code = s.UnitCode,
                },
                useVat       = s.UseVat,
                useIncomeTax = s.UseIncomeTax,
                incomeTax    = new IncomeTaxViewModel
                {
                    _id  = s.IncomeTaxId,
                    name = s.IncomeTaxName,
                    rate = s.IncomeTaxRate,
                },
                items = new List <EPOItemViewModel>()
                {
                    itemEPO
                }
            };


            return(new PurchasingDisposition
            {
                SupplierId = "1",
                SupplierCode = "Supplier1",
                SupplierName = "supplier1",

                Bank = "Bank",
                Amount = 1000,
                Calculation = "axb+c",
                //InvoiceNo="test",
                ConfirmationOrderNo = "test",
                //Investation = "test",

                PaymentDueDate = new DateTimeOffset(),
                ProformaNo = "aaa",
                PaymentMethod = "Test",

                Remark = "Remark1",
                CategoryCode = "test",
                CategoryId = "1",
                CategoryName = "test",


                Items = new List <PurchasingDispositionItem>
                {
                    new PurchasingDispositionItem
                    {
                        EPOId = dataEPO._id.ToString(),
                        EPONo = dataEPO.no,
                        IncomeTaxId = "1",
                        IncomeTaxName = "tax",
                        IncomeTaxRate = 1,
                        UseIncomeTax = true,
                        UseVat = true,
                        Details = new List <PurchasingDispositionDetail>
                        {
                            new PurchasingDispositionDetail
                            {
                                EPODetailId = detailEPO._id.ToString(),

                                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",
                            }
                        }
                    }
                }
            });
        }
        public PurchasingDisposition GetNewData()
        {
            var datas    = Task.Run(() => externalPurchaseOrderDataUtil.GetTestData("unit-test")).Result;
            var itemData = datas.Items;
            ExternalPurchaseOrderDetail detailData = new ExternalPurchaseOrderDetail();
            ExternalPurchaseOrderItem   itemdata   = new ExternalPurchaseOrderItem();

            foreach (var item in itemData)
            {
                itemdata = item; break;
            }
            foreach (var detail in itemdata.Details)
            {
                detailData = detail; break;
            }
            return(new PurchasingDisposition
            {
                SupplierId = "1",
                SupplierCode = "Supplier1",
                SupplierName = "supplier1",

                Bank = "Bank",
                Amount = 1000,
                Calculation = "axb+c",
                //InvoiceNo="test",
                ConfirmationOrderNo = "test",
                //Investation = "test",

                PaymentDueDate = new DateTimeOffset(),
                ProformaNo = "aaa",
                PaymentMethod = "Test",

                Remark = "Remark1",



                Items = new List <PurchasingDispositionItem>
                {
                    new PurchasingDispositionItem
                    {
                        EPOId = datas.Id.ToString(),
                        EPONo = datas.EPONo,
                        IncomeTaxId = "1",
                        IncomeTaxName = "tax",
                        IncomeTaxRate = 1,
                        UseIncomeTax = true,
                        UseVat = true,
                        Details = new List <PurchasingDispositionDetail>
                        {
                            new PurchasingDispositionDetail
                            {
                                //EPODetailId=detailData.Id.ToString(),
                                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",
                            }
                        }
                    }
                }
            });
        }