public async Task <IActionResult> GetSalesOrderDetailView(long SalesOrderDetailId)
        {
            SalesOrderModule sodMod = new SalesOrderModule();

            SalesOrderDetailView view = await sodMod.SalesOrderDetail.Query().GetViewById(SalesOrderDetailId);

            return(Ok(view));
        }
Example #2
0
        public async Task TestSalesOrderPaging()
        {
            SalesOrderModule salesOrderMod = new SalesOrderModule();
            long?            salesOrderId  = 69;

            PageListViewContainer <SalesOrderView> container = await salesOrderMod.SalesOrder.Query().GetViewsByPage(predicate: e => e.SalesOrderId == salesOrderId, order: e => e.SalesOrderId, pageSize: 1, pageNumber: 1);

            Assert.True(container.TotalItemCount > 0);
        }
Example #3
0
        public async Task TestSalesOrderView()
        {
            SalesOrderModule invMod = new SalesOrderModule();

            long           SalesOrderId = 21;
            SalesOrderView view         = await invMod.SalesOrder.Query().GetViewById(SalesOrderId);

            Assert.NotNull(view);
        }
        public async Task <IActionResult> DeleteSalesOrderDetail([FromBody] SalesOrderDetailView view)
        {
            SalesOrderModule sodMod           = new SalesOrderModule();
            SalesOrderDetail SalesOrderDetail = await sodMod.SalesOrderDetail.Query().MapToEntity(view);

            sodMod.SalesOrderDetail.DeleteSalesOrderDetail(SalesOrderDetail).Apply();

            return(Ok(view));
        }
        public async Task <IActionResult> UpdateSalesOrderDetail([FromBody] SalesOrderDetailView view)
        {
            SalesOrderModule sodMod = new SalesOrderModule();

            SalesOrderDetail SalesOrderDetail = await sodMod.SalesOrderDetail.Query().MapToEntity(view);


            sodMod.SalesOrderDetail.UpdateSalesOrderDetail(SalesOrderDetail).Apply();

            SalesOrderDetailView updateView = await sodMod.SalesOrderDetail.Query().GetViewById(SalesOrderDetail.SalesOrderDetailId);

            SalesOrderDetailView retView = await sodMod.SalesOrderDetail.Query().GetViewById(SalesOrderDetail.SalesOrderDetailId);

            return(Ok(retView));
        }
Example #6
0
        public async Task<IActionResult> UpdateSalesOrder([FromBody]SalesOrderView view)
        {
            SalesOrderModule salesOrderMod = new SalesOrderModule();

            SalesOrder salesOrder = await salesOrderMod.SalesOrder.Query().MapToEntity(view);

            IList<SalesOrderDetail> salesOrderDetails = await salesOrderMod.SalesOrderDetail.Query().MapToEntity((view.SalesOrderDetailViews).ToList<SalesOrderDetailView>());

            salesOrder = salesOrderMod.SalesOrder.Query().SumAmounts(salesOrder, salesOrderDetails);

            salesOrderMod.SalesOrderDetail.UpdateSalesOrderDetails(salesOrderDetails).Apply();

            salesOrderMod.SalesOrder.UpdateSalesOrder(salesOrder).Apply();

            return Ok(view);

        }
        public async Task <IActionResult> AddSalesOrderDetail([FromBody] SalesOrderDetailView view)
        {
            SalesOrderModule sodMod = new SalesOrderModule();

            NextNumber nnSalesOrderDetail = await sodMod.SalesOrderDetail.Query().GetNextNumber();

            view.SalesOrderDetailNumber = nnSalesOrderDetail.NextNumberValue;

            SalesOrderDetail SalesOrderDetail = await sodMod.SalesOrderDetail.Query().MapToEntity(view);

            sodMod.SalesOrderDetail.AddSalesOrderDetail(SalesOrderDetail).Apply();

            SalesOrderDetailView newView = await sodMod.SalesOrderDetail.Query().GetViewByNumber(view.SalesOrderDetailNumber);


            return(Ok(newView));
        }
Example #8
0
        public async Task<IActionResult> DeleteSalesOrder(long salesOrderId)
        {
            SalesOrderModule salesOrderMod = new SalesOrderModule();

            List<SalesOrderDetail> salesOrderDetails = (await salesOrderMod.SalesOrderDetail.Query().GetDetailsBySalesOrderId(salesOrderId)).ToList<SalesOrderDetail>();
            IList<SalesOrderDetailView> listDetailViews = await salesOrderMod.SalesOrderDetail.Query().GetDetailViewsBySalesOrderId(salesOrderId);

            salesOrderMod.SalesOrderDetail.DeleteSalesOrderDetails(salesOrderDetails).Apply();

            SalesOrder salesOrder = await salesOrderMod.SalesOrder.Query().GetEntityById(salesOrderId);

            salesOrderMod.SalesOrder.DeleteSalesOrder(salesOrder).Apply();

            SalesOrderView view = await salesOrderMod.SalesOrder.Query().MapToView(salesOrder);
            view.SalesOrderDetailViews = listDetailViews;

            return Ok(view);

        }
Example #9
0
        public async Task<IActionResult> AddSalesOrder([FromBody]SalesOrderView view)
        {
            SalesOrderModule salesOrderMod = new SalesOrderModule();

            List<SalesOrderDetailView> detailViews = view.SalesOrderDetailViews.ToList<SalesOrderDetailView>();

            Udc orderType = await salesOrderMod.SalesOrder.Query().GetUdc("ORDER_TYPE", SalesOrderEnum.CASH_SALES.ToString());
            Udc paymentTerms = await salesOrderMod.SalesOrder.Query().GetUdc("PAYMENTTERMS", PaymentTermsEnum.Net_2_10_30.ToString());
            NextNumber nnSalesOrder = await salesOrderMod.SalesOrder.Query().GetNextNumber();

            view.OrderNumber = nnSalesOrder.NextNumberValue.ToString();

            SalesOrder salesOrder = await salesOrderMod.SalesOrder.Query().MapToEntity(view);

            salesOrderMod.SalesOrder.AddSalesOrder(salesOrder).Apply();

            SalesOrder newSalesOrder = await salesOrderMod.SalesOrder.Query().GetEntityByNumber(view.OrderNumber);

            detailViews.ForEach(m => m.SalesOrderId = newSalesOrder.SalesOrderId);

            List<SalesOrderDetail> salesOrderDetails = (await salesOrderMod.SalesOrderDetail.Query().MapToEntity(detailViews)).ToList<SalesOrderDetail>();

            salesOrderMod.SalesOrderDetail.AddSalesOrderDetails(salesOrderDetails).Apply();

            newSalesOrder = salesOrderMod.SalesOrder.Query().SumAmounts(newSalesOrder,salesOrderDetails);

            salesOrderMod.SalesOrder.UpdateSalesOrder(newSalesOrder).Apply();
 
            SalesOrderView newSalesOrderView = await salesOrderMod.SalesOrder.Query().MapToView(newSalesOrder);

            List<SalesOrderDetailView> listDetailViews = (await salesOrderMod.SalesOrderDetail.Query().GetDetailViewsBySalesOrderId(newSalesOrder.SalesOrderId)).ToList<SalesOrderDetailView>();

            newSalesOrderView.SalesOrderDetailViews = listDetailViews;

            return Ok(newSalesOrderView);
        }
Example #10
0
        public async Task TestAddUpdatDeleteShipments()
        {
            SalesOrderModule salesOrderMod = new SalesOrderModule();

            Udc orderType = await salesOrderMod.SalesOrder.Query().GetUdc("ORDER_TYPE", SalesOrderEnum.CASH_SALES.ToString());

            Udc paymentTerms = await salesOrderMod.SalesOrder.Query().GetUdc("PAYMENTTERMS", PaymentTermsEnum.Net_2_10_30.ToString());

            NextNumber nnSalesOrder = await salesOrderMod.SalesOrder.Query().GetNextNumber();

            SalesOrderView view = new SalesOrderView()
            {
                Taxes             = 0,
                Amount            = 0,
                OrderType         = orderType.KeyCode.ToString(),
                CustomerId        = 2,
                TakenBy           = "David Nishimoto",
                FreightAmount     = 0,
                PaymentInstrument = "Check",
                PaymentTerms      = paymentTerms.KeyCode.ToString()
            };

            List <SalesOrderDetailView> detailViews = new List <SalesOrderDetailView>()
            {
                new SalesOrderDetailView()
                {
                    ItemId                   = 11,
                    Description              = "Flower Bent Rod",
                    Quantity                 = 4,
                    QuantityOpen             = 4,
                    Amount                   = 31.52M,
                    AmountOpen               = 31.52M,
                    UnitOfMeasure            = "Each",
                    UnitPrice                = 7.88M,
                    AccountId                = 5,
                    ScheduledShipDate        = DateTime.Parse("5/21/2019"),
                    PromisedDate             = DateTime.Parse("5/23/2019"),
                    GLDate                   = DateTime.Parse("5/21/2019"),
                    InvoiceDate              = (DateTime?)null,
                    ShippedDate              = (DateTime?)null,
                    GrossWeight              = 4.1000M * 4M,
                    GrossWeightUnitOfMeasure = "LBS",
                    //UnitVolume { get; set; }
                    //UnitVolumeUnitOfMeasurement { get; set; }
                    BusUnit     = "700",
                    CompanyCode = "1000",
                    LineNumber  = 1
                }
            };


            view.OrderNumber = nnSalesOrder.NextNumberValue.ToString();

            SalesOrder salesOrder = await salesOrderMod.SalesOrder.Query().MapToEntity(view);

            salesOrderMod.SalesOrder.AddSalesOrder(salesOrder).Apply();

            SalesOrder newSalesOrder = await salesOrderMod.SalesOrder.Query().GetEntityByNumber(view.OrderNumber);

            Assert.NotNull(newSalesOrder);

            newSalesOrder.Note = "sales order note test";

            SalesOrderView newSalesOrderView = await salesOrderMod.SalesOrder.Query().MapToView(newSalesOrder);

            salesOrderMod.SalesOrder.UpdateSalesOrder(newSalesOrder).Apply();

            SalesOrderView updateView = await salesOrderMod.SalesOrder.Query().GetViewById(newSalesOrder.SalesOrderId);

            Assert.Same(updateView.Note, "sales order note test");

            detailViews.ForEach(m => m.SalesOrderId = newSalesOrder.SalesOrderId);

            foreach (var item in detailViews)
            {
                NextNumber nn = await salesOrderMod.SalesOrderDetail.Query().GetNextNumber();

                item.SalesOrderDetailNumber = nn.NextNumberValue;
            }

            List <SalesOrderDetail> salesOrderDetails = (await salesOrderMod.SalesOrderDetail.Query().MapToEntity(detailViews)).ToList <SalesOrderDetail>();

            salesOrderMod.SalesOrderDetail.AddSalesOrderDetails(salesOrderDetails).Apply();

            salesOrderDetails.ForEach(m => m.Description += " Updated");

            salesOrderMod.SalesOrderDetail.UpdateSalesOrderDetails(salesOrderDetails).Apply();


            List <SalesOrderDetail> soListDetails = (await salesOrderMod.SalesOrderDetail.Query().GetDetailsBySalesOrderId(newSalesOrder.SalesOrderId)).ToList <SalesOrderDetail>();


            /************************************Shipments**************************/
            ShipmentModule ShipmentMod = new ShipmentModule();
            NextNumber     nnShipment  = await ShipmentMod.Shipment.Query().GetNextNumber();

            ShipmentView shipmentCreation = new ShipmentView()
            {
                SalesOrderId          = newSalesOrder.SalesOrderId,
                ActualWeight          = 100,
                BillableWeight        = 100,
                ShippedFromLocationId = 3,
                ShippedToLocationId   = 9,
                TrackingNumber        = "123",
                WeightUOM             = "LBS",
                ShipmentDate          = DateTime.Now,
                CarrierId             = 2,
                ShipmentNumber        = nnShipment.NextNumberValue
            };

            shipmentCreation.ItemsAdjustedQuantityShipped =
                new List <ItemsAdjustedQuantityShippedStruct>();
            foreach (var item in soListDetails)
            {
                var newItem = new ItemsAdjustedQuantityShippedStruct()
                {
                    SalesOrderDetailId      = item.SalesOrderDetailId,
                    AdjustedQuantityShipped = item.Quantity ?? 0,
                    AdjustedAmountShipped   = item.Amount
                };
                shipmentCreation.ItemsAdjustedQuantityShipped.Add(newItem);
            }


            bool result = await ShipmentMod.CreateBySalesOrder(shipmentCreation);

            Shipment lookupShipment = await ShipmentMod.Shipment.Query().GetEntityByNumber(shipmentCreation.ShipmentNumber);

            lookupShipment.TrackingNumber = "123";

            ShipmentMod.Shipment.UpdateShipment(lookupShipment).Apply();

            ShipmentView updateShipmentsView = await ShipmentMod.Shipment.Query().GetViewById(lookupShipment.ShipmentId);

            Assert.Same(updateShipmentsView.TrackingNumber, "123");

            List <ShipmentDetail> listShipmentDetail = (await ShipmentMod.ShipmentDetail.Query().GetEntitiesByShipmentId(lookupShipment.ShipmentId)).ToList <ShipmentDetail>();

            listShipmentDetail.ForEach(m => m.AmountShipped   = 10);
            listShipmentDetail.ForEach(m => m.QuantityShipped = 1);

            ShipmentMod.ShipmentDetail.UpdateShipmentDetails(listShipmentDetail).Apply();

            //Test Paging

            //lssWebApi2.AbstractFactory.PageListViewContainer<ShipmentView> container = await ShipmentMod.Shipment.Query().GetViewsByPage(predicate: e => e.TrackingNumber == "123", order: e => e.Amount, pageSize: 1, pageNumber: 1);

            //Assert.True(container.Items.Count > 0);


            List <ShipmentDetail> listShipmentDetails = (await ShipmentMod.ShipmentDetail.Query().GetEntitiesByShipmentId(lookupShipment.ShipmentId)).ToList <ShipmentDetail>();

            IList <ShipmentDetailView> listShipmentDetailViews = await ShipmentMod.ShipmentDetail.Query().GetViewsByShipmentId(lookupShipment.ShipmentId);

            ShipmentMod.ShipmentDetail.DeleteShipmentDetails(listShipmentDetails).Apply();

            ShipmentMod.Shipment.DeleteShipment(lookupShipment).Apply();

            Shipment lookup2Shipments = await ShipmentMod.Shipment.Query().GetEntityById(lookupShipment.ShipmentId);

            Assert.Null(lookup2Shipments);

            /**********************remove sales Order detail******************************/

            IList <SalesOrderDetailView> solistDetailViews = await salesOrderMod.SalesOrderDetail.Query().GetDetailViewsBySalesOrderId(newSalesOrder.SalesOrderId);

            if (solistDetailViews.ToList <SalesOrderDetailView>().Any(m => m.Description.Contains("Updated")) == false)
            {
                Assert.True(false);
            }

            salesOrderMod.SalesOrderDetail.DeleteSalesOrderDetails(soListDetails).Apply();

            salesOrderMod.SalesOrder.DeleteSalesOrder(newSalesOrder).Apply();

            SalesOrder lookupSalesOrder = await salesOrderMod.SalesOrder.Query().GetEntityById(view.SalesOrderId);

            Assert.Null(lookupSalesOrder);
        }
Example #11
0
        public async Task TestAddUpdatDeleteSalesOrder()
        {
            SalesOrderModule salesOrderMod = new SalesOrderModule();

            Udc orderType = await salesOrderMod.SalesOrder.Query().GetUdc("ORDER_TYPE", SalesOrderEnum.CASH_SALES.ToString());

            Udc paymentTerms = await salesOrderMod.SalesOrder.Query().GetUdc("PAYMENTTERMS", PaymentTermsEnum.Net_2_10_30.ToString());

            NextNumber nnSalesOrder = await salesOrderMod.SalesOrder.Query().GetNextNumber();

            SalesOrderView view = new SalesOrderView()
            {
                Taxes             = 0,
                Amount            = 0,
                OrderType         = orderType.KeyCode.ToString(),
                CustomerId        = 2,
                TakenBy           = "David Nishimoto",
                FreightAmount     = 0,
                PaymentInstrument = "Check",
                PaymentTerms      = paymentTerms.KeyCode.ToString()
            };

            List <SalesOrderDetailView> detailViews = new List <SalesOrderDetailView>()
            {
                new SalesOrderDetailView()
                {
                    ItemId                   = 11,
                    Description              = "Flower Bent Rod",
                    Quantity                 = 4,
                    QuantityOpen             = 4,
                    Amount                   = 31.52M,
                    AmountOpen               = 31.52M,
                    UnitOfMeasure            = "Each",
                    UnitPrice                = 7.88M,
                    AccountId                = 5,
                    ScheduledShipDate        = DateTime.Parse("5/21/2019"),
                    PromisedDate             = DateTime.Parse("5/23/2019"),
                    GLDate                   = DateTime.Parse("5/21/2019"),
                    InvoiceDate              = (DateTime?)null,
                    ShippedDate              = (DateTime?)null,
                    GrossWeight              = 4.1000M * 4M,
                    GrossWeightUnitOfMeasure = "LBS",
                    //UnitVolume { get; set; }
                    //UnitVolumeUnitOfMeasurement { get; set; }
                    BusUnit     = "700",
                    CompanyCode = "1000",
                    LineNumber  = 1
                }
            };


            view.OrderNumber = nnSalesOrder.NextNumberValue.ToString();

            SalesOrder salesOrder = await salesOrderMod.SalesOrder.Query().MapToEntity(view);

            salesOrderMod.SalesOrder.AddSalesOrder(salesOrder).Apply();

            SalesOrder newSalesOrder = await salesOrderMod.SalesOrder.Query().GetEntityByNumber(view.OrderNumber);

            Assert.NotNull(newSalesOrder);

            newSalesOrder.Note = "sales order note test";

            SalesOrderView newSalesOrderView = await salesOrderMod.SalesOrder.Query().MapToView(newSalesOrder);

            salesOrderMod.SalesOrder.UpdateSalesOrder(newSalesOrder).Apply();

            SalesOrderView updateView = await salesOrderMod.SalesOrder.Query().GetViewById(newSalesOrder.SalesOrderId);

            Assert.Same(updateView.Note, "sales order note test");

            detailViews.ForEach(m => m.SalesOrderId = newSalesOrder.SalesOrderId);

            foreach (var item in detailViews)
            {
                NextNumber nn = await salesOrderMod.SalesOrderDetail.Query().GetNextNumber();

                item.SalesOrderDetailNumber = nn.NextNumberValue;
            }

            List <SalesOrderDetail> salesOrderDetails = (await salesOrderMod.SalesOrderDetail.Query().MapToEntity(detailViews)).ToList <SalesOrderDetail>();

            salesOrderMod.SalesOrderDetail.AddSalesOrderDetails(salesOrderDetails).Apply();

            salesOrderDetails.ForEach(m => m.Description += " Updated");

            salesOrderMod.SalesOrderDetail.UpdateSalesOrderDetails(salesOrderDetails).Apply();

            //Test Paging - TODO -figure out why paging causes a severed relationship between the order and the detail

            //SalesOrderViewContainer container = await salesOrderMod.SalesOrder.Query().GetViewsByPage(predicate: e => e.Note.Contains("test"), order: e => e.SalesOrderId, pageSize: 1, pageNumber: 1);

            // Assert.True(container.items.Count > 0);


            List <SalesOrderDetail> listDetails = (await salesOrderMod.SalesOrderDetail.Query().GetDetailsBySalesOrderId(newSalesOrder.SalesOrderId)).ToList <SalesOrderDetail>();

            List <SalesOrderDetailView> listDetailViews = (await salesOrderMod.SalesOrderDetail.Query().GetDetailViewsBySalesOrderId(newSalesOrder.SalesOrderId)).ToList <SalesOrderDetailView>();

            Assert.True(listDetails.Any(m => m.Description.Contains("Updated")));

            salesOrderMod.SalesOrderDetail.DeleteSalesOrderDetails(listDetails).Apply();

            salesOrderMod.SalesOrder.DeleteSalesOrder(newSalesOrder).Apply();

            SalesOrder lookupSalesOrder = await salesOrderMod.SalesOrder.Query().GetEntityById(view.SalesOrderId);

            Assert.Null(lookupSalesOrder);
        }