コード例 #1
0
 public FormSaleOrderReport(crptSaleOrder rpt)
 {
     InitializeComponent();
     crystalReportSaleOrder.ReportSource = rpt;
 }
コード例 #2
0
ファイル: FormSaleOrder.cs プロジェクト: ChamroeunUON/WMS
        private void btnSave_Click(object sender, EventArgs e)
        {
            var salrOrder = new SaleOrder
            {
                SaleOrderId = txtSaleOrderID.Text,
                SaleDate    = Convert.ToDateTime(Convert.ToDateTime(dateSaleOrder.Text).ToShortDateString()),
                CusId       = Convert.ToInt32(txtCustomerID.Text),
                UserId      = CurrentUser.GetCurrentUserId,
                SaleType    = SaleType.SaleOrder,
                SubTotal    = float.Parse(txtSubtotal.Text.Replace("$", "")),
                DisPercent  = float.Parse(txtDiscountP.Text.Replace("%", "")),
                DisAmount   = float.Parse(txtDisAmount.Text.Replace("$", "")),
                Balance     = float.Parse(txtBalance.Text.Replace("$", "")),
                Deposit     = float.Parse(txtDeposit.Text.Replace("$", "")),
                GrandTotal  = float.Parse(txtGrandTotal.Text.Replace("$", "")),
                Status      = "New",
                Note        = ""
            };

            _appContext.SaleOrders.Add(salrOrder);
            for (var rowIndex = 0; rowIndex < dataGridView1.RowCount - 1; rowIndex++)
            {
                var per           = dataGridView1.Rows[rowIndex].Cells[7].Value.ToString();
                var vat           = dataGridView1.Rows[rowIndex].Cells[9].Value.ToString();
                var pr            = dataGridView1.Rows[rowIndex].Cells[10].Value.ToString();
                var am            = dataGridView1.Rows[rowIndex].Cells[11].Value.ToString();
                var saleOrderItem = new SaleOrderItem
                {
                    SaleOrderId = txtSaleOrderID.Text,
                    ProductId   = int.Parse(dataGridView1.Rows[rowIndex].Cells[0].Value.ToString()),
                    Qty         = int.Parse(dataGridView1.Rows[rowIndex].Cells[6].Value.ToString()),
                    DisPercent  = float.Parse(per.Replace("%", null)),
                    VatPercent  = float.Parse(vat.Replace("%", null)),
                    Price       = float.Parse(pr.Replace("$", null)),
                    Amount      = float.Parse(am.Replace("$", null)),
                    WarehouseId = Convert.ToInt32(txtWarehouseId.Text),
                    Note        = dataGridView1.Rows[rowIndex].Cells[12].Value.ToString()
                };

                _appContext.SaleOrderItems.Add(saleOrderItem);
            }
            _appContext.SaveChanges();
            var dialog = MessageBox.Show(@"Do you want print Report?", @"Information", MessageBoxButtons.YesNo,
                                         MessageBoxIcon.Asterisk);

            if (dialog == DialogResult.Yes)
            {
                var so = _appContext.SaleOrders
                         .Where(id => id.SaleOrderId.Equals(txtSaleOrderID.Text))
                         .Include(u => u.User)
                         .Include(c => c.Customer)
                         .Select(s => new
                {
                    SaleOrderId  = s.SaleOrderId,
                    Percent      = s.DisPercent,
                    DisA         = s.DisAmount,
                    UserName     = s.User.UserNmae,
                    CustomerName = s.Customer.Name,
                    Balanc       = s.Balance,
                    Deposit      = s.Deposit,
                    SubTotal     = s.SubTotal,
                    GrandTotal   = s.GrandTotal
                })
                         .ToList();

                var soi = _appContext.SaleOrderItems
                          .Where(id => id.SaleOrderId.Equals(txtSaleOrderID.Text))
                          .Include(p => p.Product)
                          .Include(c => c.Product.Category)
                          .Include(m => m.Product.Measure)
                          .Include(w => w.Warehouse)
                          .Select(i => new
                {
                    ProId     = i.ProductId,
                    ProNameEn = i.Product.NameEn,
                    ProNameKh = i.Product.NameKh,
                    Measure   = i.Product.Measure.Name,
                    Category  = i.Product.Category.Name,
                    Qty       = i.Qty,
                    Percent   = i.DisPercent,
                    VAT       = i.VatPercent,
                    Price     = i.Price,
                    Amount    = i.Amount
                })
                          .ToList();

                var dtSaleOrder = new DataTable();
                using (var reader = ObjectReader.Create(so))
                {
                    dtSaleOrder.Load(reader);
                }
                dtSaleOrder.TableName = "SaleOrder";

                var dtSaleOrderItem = new DataTable();
                using (var reader = ObjectReader.Create(soi))
                {
                    dtSaleOrderItem.Load(reader);
                }
                dtSaleOrderItem.TableName = "SaleOrderItem";


                var ds = new dsSaleOrder();
                ds.Merge(dtSaleOrder);
                ds.Merge(dtSaleOrderItem);

                var crpt = new crptSaleOrder();
                crpt.SetDataSource(ds);
                var frmReport = new FormSaleOrderReport(crpt);
                frmReport.ShowDialog();
            }
        }