Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        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;
        }
Esempio n. 3
0
        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();
            }
        }