public async override void Init(object initData) { base.Init(initData); var _customer = initData as Tuple <Partner, bool, QuotationsModel>; if (_customer != null) { NewQuotation = _customer.Item2; Customer = _customer.Item1; var products = new List <ProductQuotationModel>(); var currUser = await StoreManager.UserStore.GetCurrentUserAsync(); var deliveryData = await StoreManager.SaleOrderStore.GetDeliveryFees(false); if (currUser == null) { return; } if (NewQuotation) { var saleOrder = new SaleOrder() { PartnerId = Customer.ExternalId, UserId = currUser.ExternalId, CurrencyId = ProductConstants.CurrencyValues.Keys.First() }; Quotation = new QuotationsModel(saleOrder) { Date = DateTime.UtcNow, Ref = Customer.ExternalId + "-" + UnixTimeStamp(), Status = QuotationStatus.draft.ToString(), TotalAmount = 0 }; InsertNewQuotation(saleOrder); customer.Quotations.Add(Quotation); } else { var items = await StoreManager.SaleOrderLineStore.GetItemsByOrderId(_customer.Item3.SaleOrder.Id); Quotation = _customer.Item3; foreach (var item in items) { products.Add(new ProductQuotationModel(item, CurrencyLogo)); } } OrderItemsSource = new ObservableCollection <ProductQuotationModel>(products); OrderItemsSource.CollectionChanged += OrderItemsSource_CollectionChanged; foreach (var item in OrderItemsSource) { item.PropertyChanged += Item_PropertyChanged; } if (deliveryData != null) { DeliverySource = new ObservableCollection <DeliveryFee>(deliveryData); if (DeliverySource.Where((arg) => quotation.DeliveryPrice == arg.Price).Any()) { DeliveryFee = DeliverySource.Where((arg) => quotation.DeliveryPrice == arg.Price).First(); } } } }
public byte[] CreatePdfFile(QuotationsModel saleOrder, List <ProductQuotationModel> items, Partner customer, byte[] signature, bool generateFullVersion) { SaleOrder = saleOrder.SaleOrder; OrderItems = items; Customer = customer; model = saleOrder; Signature = signature; GenerateFullVersion = generateFullVersion; //Create a new document _document = new PdfDocument(); _document.PageSettings.Size = PdfPageSize.A4; _document.PageSettings.Orientation = PdfPageOrientation.Portrait; _document.PageSettings.SetMargins(10, 10); PdfPage page = _document.Pages.Add(); PdfGraphics graphics = page.Graphics; if (true) { var format = new PdfStringFormat(); //format.NoClip = true; format.Alignment = PdfTextAlignment.Center; format.WordWrap = PdfWordWrapType.Word; format.LineAlignment = PdfVerticalAlignment.Bottom; PdfPageTemplateElement footer = new PdfPageTemplateElement(_document.Pages[0].GetClientSize().Width - 100, 30); PdfFont font = new PdfStandardFont(PdfFontFamily.Helvetica, 7); PdfBrush brush = new PdfSolidBrush(Color.Black); footer.Alignment = PdfAlignmentStyle.BottomCenter; footer.Graphics.DrawLine(new PdfPen(Color.FromArgb(255, 0, 0, 0)) { Width = 0.25f }, 0, 0, _document.Pages[0].GetClientSize().Width - 20, 0); footer.Graphics.DrawString(footerPage, font, brush, new RectangleF(0, 0, _document.Pages[0].GetClientSize().Width - 100, 30), format); _document.Template.Bottom = footer; } //CONTENT PRINCIPAL PAGE DrawPage(page, graphics); var stream = new MemoryStream(); //save the document into stream _document.Save(stream); PdfDocumentStream = stream; ArrayBytes = stream.ToArray(); //close the document _document.Close(true); Debug.WriteLine("End of creating file"); return(ArrayBytes); }