public SettingDepotPositionNums(Model.InvoiceXSDetail temp) { InitializeComponent(); this.invoiceXSdetail = temp; IList <Model.DepotPosition> positions = depotpositionManager.GetDepotPositionsByDepotAndProduct(invoiceXSdetail.ProductId, invoiceXSdetail.Invoice.Depot.DepotId); this.invoicexs.Details = new List <Model.InvoiceXSDetail>(); foreach (var item in positions) { Model.InvoiceXSDetail detail = new Book.Model.InvoiceXSDetail(); detail.DepotPosition = item; detail.DepotPositionId = item.DepotPositionDescription; detail.ProductId = this.invoiceXSdetail.ProductId; if (EditForm.dic.ContainsKey(detail.ProductId + item.DepotPositionId)) { detail.InvoiceXSDetailQuantity = EditForm.dic[detail.ProductId + item.DepotPositionId].InvoiceXSDetailQuantity; } else { Model.InvoiceXSDetail d = detailManager.GetByProIdPosIdInvoiceId(detail.ProductId, item.DepotPositionId, invoiceXSdetail.InvoiceId); if (d != null) { detail.InvoiceXSDetailQuantity = d.InvoiceXSDetailQuantity; } else { detail.InvoiceXSDetailQuantity = 0; } } this.invoicexs.Details.Add(detail); } this.bindingSourceDetail.DataSource = this.invoicexs.Details; }
private void simpleButton_Sure_Click(object sender, EventArgs e) { EditForm.sum = 0; IList <Model.InvoiceXSDetail> list = this.bindingSourceDetail.DataSource as IList <Model.InvoiceXSDetail>; foreach (var item in list) { if (item.InvoiceXSDetailQuantity != 0) { Model.InvoiceXSDetail tem = new Book.Model.InvoiceXSDetail(); if (EditForm.dic.ContainsKey(item.ProductId + item.DepotPosition.DepotPositionId)) { EditForm.dic.Remove(item.ProductId + item.DepotPosition.DepotPositionId); } tem.Product = invoiceXSdetail.Product; tem.ProductId = invoiceXSdetail.ProductId; tem.InvoiceXSDetailId = Guid.NewGuid().ToString(); tem.InvoiceXSDetailQuantity = item.InvoiceXSDetailQuantity; tem.DepotPositionId = item.DepotPosition.DepotPositionId; tem.InvoiceProductUnit = invoiceXSdetail.InvoiceProductUnit; tem.InvoiceXODetailId = invoiceXSdetail.InvoiceXODetailId; EditForm.sum += item.InvoiceXSDetailQuantity.Value; EditForm.dic.Add(item.ProductId + item.DepotPosition.DepotPositionId, tem); } } EditForm.invoice.Setdetails.Clear(); foreach (Model.InvoiceXSDetail item in EditForm.dic.Values) { EditForm.invoice.Setdetails.Add(item); } this.DialogResult = DialogResult.OK; }
public ROHistoryXS() { InitializeComponent(); Query.ConditionXChooseForm f = new Query.ConditionXChooseForm(); if (f.ShowDialog() == DialogResult.OK) { Query.ConditionX con = f.Condition as Query.ConditionX; IList <Model.InvoiceXS> list = new BL.InvoiceXSManager().SelectDateRangAndWhere(con.Customer1, con.Customer2, con.StartDate, con.EndDate, con.Yjri1, con.Yjri2, con.CusXOId, con.Product, con.Product2, con.XOId1, con.XOId2, con.FreightedCompanyId, con.ConveyanceMethodId, con.Employee1, con.Employee2, con.Product_Id, con.ProductCategoryId); if (list == null || list.Count == 0) { MessageBox.Show("無數據", "提示", MessageBoxButtons.OK); } IList <Model.InvoiceXSDetail> listDetail = new List <Model.InvoiceXSDetail>(); foreach (var item in list) { item.Details = detailManager.Select(item); foreach (var detail in item.Details) { detail.Invoice = item; listDetail.Add(detail); } } var group = listDetail.GroupBy(D => D.InvoiceNO); IList <Model.InvoiceXSDetail> details = new List <Model.InvoiceXSDetail>(); if (group != null && group.Count() > 0) { foreach (var item in group) { Model.InvoiceXSDetail detail = new Book.Model.InvoiceXSDetail(); detail = item.First(); //先计算台幣金額,然后加总金额,因为台幣金額=金额*汇率 detail.TaibiAmountForGroup = item.Sum(D => D.TaibiAmount); detail.InvoiceXSDetailMoney = item.Sum(D => D.InvoiceXSDetailMoney); item.Select(D => D.InvoiceXO.CustomerInvoiceXOId).Distinct().ToList().ForEach(F => { detail.CusXOIdForGroup += F + "\r\n"; }); detail.CusXOIdForGroup = detail.CusXOIdForGroup.TrimEnd(new char[] { '\r', '\n' }); details.Add(detail); } } this.DataSource = details; this.lbl_CompanyName.Text = BL.Settings.CompanyChineseName; this.lbl_ReportName.Text = "銷售表 sales report"; this.lbl_ReportDate.Text = con.StartDate.ToString("yyyy-MM-dd") + " ~ " + con.EndDate.ToString("yyyy-MM-dd"); string currenty = Model.ExchangeRate.GetCurrencyENNameAndSign(listDetail[0].Currency); this.xrTableCell9.Text = string.Format("實際請款 ({0})", currenty); this.TCInvoiceDate.DataBindings.Add("Text", this.DataSource, "Invoice." + Model.InvoiceXS.PROPERTY_INVOICEDATE, "{0:yyyy/MM/dd}"); this.TCDeclareDate.DataBindings.Add("Text", this.DataSource, "Invoice." + Model.InvoiceXS.PRO_DeclareDate, "{0:yyyy/MM/dd}"); this.TCShipMethod.DataBindings.Add("Text", this.DataSource, "Invoice.ConveyanceMethod." + Model.ConveyanceMethod.PROPERTY_CONVEYANCEMETHODNAME); this.TCXSCustomer.DataBindings.Add("Text", this.DataSource, "Invoice.XSCustomer." + Model.Customer.PRO_CustomerFullName); this.TCInvoiceNO.DataBindings.Add("Text", this.DataSource, Model.InvoiceXSDetail.PRO_InvoiceNO); this.TCAmount.DataBindings.Add("Text", this.DataSource, Model.InvoiceXSDetail.PRO_InvoiceXSDetailMoney, currenty + "{0:N2}"); this.TCRealAmount.DataBindings.Add("Text", this.DataSource, Model.InvoiceXSDetail.PRO_InvoiceXSDetailMoney, currenty + "{0:N2}"); this.TCExchangeRate.DataBindings.Add("Text", this.DataSource, Model.InvoiceXSDetail.PRO_ExchangeRate); //this.TCTaibiAmount.DataBindings.Add("Text", this.DataSource, "TaibiAmount", "NT${0:N2}"); this.TCTaibiAmount.DataBindings.Add("Text", this.DataSource, "TaibiAmountForGroup", "NT${0:N2}"); this.TCPayTerm.DataBindings.Add("Text", this.DataSource, "Invoice.XSCustomer." + Model.Customer.PRO_PayCondition); //this.TCCusXOId.DataBindings.Add("Text", this.DataSource, "InvoiceXO." + Model.InvoiceXO.PRO_CustomerInvoiceXOId); //this.TCCusXOId.DataBindings.Add("Text", this.DataSource, "CusXOIdForGroup"); this.xrRichText1.DataBindings.Add("Text", this.DataSource, "CusXOIdForGroup"); this.TCTotalAmount.Text = currenty + details.Sum(D => D.InvoiceXSDetailMoney).Value.ToString("N2"); this.TCTotalTaibiAmount.Text = "NT$" + details.Sum(D => D.TaibiAmountForGroup).Value.ToString("N2"); } else { throw new Exception(); } }