DocumentReportContainer MapDispatchNote(DispatchNote dispatchNote)
        {
            DocumentReportContainer docData = new DocumentReportContainer();
            MainOrder mainOrder = _mainOrderRepository.GetById(dispatchNote.OrderId);
            DocumentHeader docHeader = new DocumentHeader()
            {
                DatePrinted = DateTime.Now,
                DateRequired = dispatchNote.StartDate,
                DocumentIssuerUserName = dispatchNote.DocumentIssuerUser.Username,
                DocumentIssuerCCName = dispatchNote.DocumentIssuerCostCentre.Name,
                DocumentReference = dispatchNote.DocumentReference,
                RouteName = ((Outlet)mainOrder.IssuedOnBehalfOf).Route.Name,
                SalesmanName = dispatchNote.DocumentRecipientCostCentre.Name,
                StatusStr = dispatchNote.Status.ToString(),
                TotalNet = dispatchNote.TotalNet,
            };
            docHeader.DocumentIssuerDetails = "Generated by: " + docHeader.DocumentIssuerUserName + " ; Cost centre: " +
                                             docHeader.DocumentIssuerCCName + "; Date: " +
                                             docHeader.DatePrinted.ToShortDateString();
            docData.DocumentHeader = docHeader;
            int i = 0;
            //foreach (var item in dispatchNote.LineItems)
            //{

            //    DocumentLineItem li = new DocumentLineItem
            //                              {
            //                                  DiscountType =
            //                                      (item.DiscountType == DiscountType.None
            //                                           ? StringUtils.BreakUpperCB(
            //                                               item.Product.GetType().ToString().Split('.').Last())
            //                                           : StringUtils.BreakUpperCB(item.DiscountType.ToString())),
            //                                  LineItemTypeStr = item.LineItemType.ToString(),
            //                                  ProductName = item.Product.Description,
            //                                  Qty = item.Qty,
            //                                  RowNumber = i + 1,
            //                                  TotalNet = item.LineItemTotal,
            //                                  TotalVat = item.LineItemVatTotal,
            //                                  UnitDiscount = item.ProductDiscount,
            //                                  UnitPrice = item.Value,
            //                                  UnitVat = item.LineItemVatValue,
            //                                  GrossAmount = item.LineItemTotal + item.LineItemVatTotal,
            //                              };
            //    docData.LineItems.Add(li);
            //    i++;
            //}

            foreach (var item in mainOrder.DispatchedLineItems)
            {
                OrderReportLineItem li = new DocumentLineItem()
                {
                    ApprovedQuantity = item.ApprovedQuantity,
                    BackOrderQuantity = item.BackOrderQuantity,

                    DiscountType =
                        (item.DiscountType == DiscountType.None
                             ? StringUtils.BreakUpperCB(
                                 item.Product.GetType().ToString().Split('.').Last())
                             : StringUtils.BreakUpperCB(item.DiscountType.ToString())),

                    DispachedQuantity = item.DispatchedQuantity,
                    GrossAmount = item.LineItemTotal,
                    LineItemTypeStr = item.LineItemType.ToString(),
                    LostSaleQuantity = item.LostSaleQuantity,
                    ProductName = item.Product.Description,
                    Qty = item.Qty,
                    RowNumber = i + 1,
                    TotalNet = item.TotalNetPrice,
                    TotalVat = item.LineItemVatTotal,
                    UnitDiscount = item.ProductDiscount,
                    UnitPrice = item.Value,
                    UnitVat = item.LineItemVatValue,
                };
                docData.LineItems.Add(li);
                i++;
            }
            return docData;
        }
        DocumentReportContainer MapOrder(MainOrder mainorder)
        {
            DocumentReportContainer docData = new DocumentReportContainer();

            DocumentHeader docHeader = new DocumentHeader()
            {
                AmountPaid = mainorder.PaidAmount,
                Comment = mainorder.Note,
                DatePrinted = DateTime.Now,
                DateRequired = mainorder.DateRequired,
                DocumentIssuerUserName = mainorder.DocumentIssuerUser.Username,
                DocumentIssuerCCName = mainorder.DocumentIssuerCostCentre.Name,
                DocumentReference = mainorder.DocumentReference,
                IssuedOnBehalfOfName = mainorder.IssuedOnBehalfOf.Name,
                OrderTypeStr = mainorder.OrderType.ToString(),
                OutstandingAmount = mainorder.OutstandingAmount,
                ParentId = mainorder.ParentId,
                RouteName = ((Outlet)mainorder.IssuedOnBehalfOf).Route.Name,
                SaleDiscount = mainorder.SaleDiscount,
                SalesmanName = mainorder.DocumentRecipientCostCentre.Name,
                ShipToAddress = mainorder.ShipToAddress,
                StatusStr = mainorder.Status.ToString(),
                TotalGross = mainorder.TotalGross,
                TotalNet = mainorder.TotalNet,
                TotalProductDiscount = mainorder.TotalDiscount,
                TotalSaleDiscount = mainorder.TotalDiscount,
                TotalVat = mainorder.TotalVat,
            };
            docHeader.DocumentIssuerDetails = "Generated by: " + docHeader.DocumentIssuerUserName + " ; Cost centre: " +
                                             docHeader.DocumentIssuerCCName + "; Date: " +
                                             docHeader.DatePrinted.ToShortDateString();
            docData.DocumentHeader = docHeader;
            int i = 0;
            foreach (var item in mainorder.ItemSummary)
            {
                OrderReportLineItem li = new DocumentLineItem()
                {
                    ApprovedQuantity = item.ApprovedQuantity,
                    BackOrderQuantity = item.BackOrderQuantity,
                    DiscountType = StringUtils.BreakUpperCB(item.Product.GetType().ToString().Split('.').Last()),
                    GrossAmount = item.TotalGross,
                    LineItemTypeStr = item.LineItemType.ToString(),
                    LostSaleQuantity = item.LostSaleQuantity,
                    ProductName = item.Product.Description,
                    Qty = item.Qty,
                    RowNumber = i + 1,
                    TotalNet = item.TotalNet,
                    TotalVat = item.TotalVat,
                    UnitDiscount = item.ProductDiscount,
                    UnitPrice = item.Value,
                    UnitVat = item.VatValue,
                };
                docData.LineItems.Add(li);
                i++;
            }

            return docData;
        }