Example #1
0
        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();
                    }
                }
            }
        }
Example #2
0
        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);
        }