コード例 #1
0
ファイル: InvoiceXTManager.cs プロジェクト: daobataotie/EDERP
        private void _Insert(Model.InvoiceXT invoice)
        {
            _ValidateForInsert(invoice);
            if (invoice.Customer != null)
            {
                invoice.CustomerId = invoice.Customer.CustomerId;
            }
            //invoice.DepotId = invoice.Depot.DepotId;
            invoice.Employee0Id = invoice.Employee0 == null ? null : invoice.Employee0.EmployeeId;

            invoice.Employee1Id = invoice.Employee1.EmployeeId;
            invoice.Employee2Id = invoice.Employee2 == null ? null : invoice.Employee2.EmployeeId;

            InvoiceCost(invoice);

            accessor.Insert(invoice);

            foreach (Model.InvoiceXTDetail detail in invoice.Details)
            {
                if (detail.Product == null || string.IsNullOrEmpty(detail.Product.ProductId))
                {
                    continue;
                }
                detail.InvoiceId = invoice.InvoiceId;
                invoiceXTDetailAccessor.Insert(detail);
                //修改订单
                Model.InvoiceXODetail xodetail = invoiceXODetailAccessor.Get(detail.InvoiceXODetailId);
                if (xodetail != null)
                {
                    xodetail.DetailsFlag              = (int)Helper.DetailsFlag.PartArrived;
                    xodetail.InvoiceXTDetailQuantity  = xodetail.InvoiceXTDetailQuantity == null ? 0 : xodetail.InvoiceXTDetailQuantity + Convert.ToDouble(detail.InvoiceXTDetailQuantity);
                    xodetail.InvoiceXODetailQuantity0 = Convert.ToDouble(xodetail.InvoiceXODetailQuantity) - Convert.ToDouble(xodetail.InvoiceXODetailBeenQuantity) + Convert.ToDouble(xodetail.InvoiceXTDetailQuantity);
                    xodetail.InvoiceXODetailQuantity0 = xodetail.InvoiceXODetailQuantity0 < 0 ? 0 : xodetail.InvoiceXODetailQuantity0;
                    //xodetail.InvoiceXODetailBeenQuantity = xodetail.InvoiceXODetailQuantity - xodetail.InvoiceXODetailQuantity0;
                    invoiceXODetailAccessor.Update(xodetail);
                    invoiceXOManager.UpdateInvoiceFlag(xodetail.Invoice);
                }


                detail.DepotPosition = new BL.DepotPositionManager().Get(detail.DepotPositionId);
                stockAccessor.Increment(detail.DepotPosition, detail.Product, detail.InvoiceXTDetailQuantity.Value);
                //更新产品最近出货日期
                this.productManager.UpdateProduct_Stock(detail.Product);
            }

            //if ((Helper.InvoiceStatus)invoice.InvoiceStatus.Value == Helper.InvoiceStatus.Normal)
            //{
            //    //Model.Depot depot = invoice.Depot;

            //    // 增加库存
            //    foreach (Model.InvoiceXTDetail detail in invoice.Details)
            //    {
            //        if (detail.PrimaryKey == null || string.IsNullOrEmpty(detail.PrimaryKey.PrimaryKeyId)) continue;

            //        //转换为基本单位后的数量
            //        //double? xtQuantity = 0;
            //    }
            //}
        }
コード例 #2
0
 public ViewForm(Model.InvoiceXT initInvoicexs)
     : this()
 {
     if (initInvoicexs == null)
     {
         throw new ArgumentNullException();
     }
     this.invoice = initInvoicexs;
 }
コード例 #3
0
ファイル: EditForm.cs プロジェクト: daobataotie/Jianli-en
 public EditForm(Model.InvoiceXT initInvoicexs)
     : this()
 {
     if (initInvoicexs == null)
     {
         throw new ArgumentNullException();
     }
     this.invoice = initInvoicexs;
     this.action  = "view";
 }
コード例 #4
0
        protected override void MovePrev()
        {
            Model.InvoiceXT invoice = this.invoiceManager.GetPrev(this.invoice);
            if (invoice == null)
            {
                throw new InvalidOperationException(Properties.Resources.ErrorNoMoreRows);
            }

            this.invoice = this.invoiceManager.Get(invoice.InvoiceId);
        }
コード例 #5
0
        protected override Form GetViewForm()
        {
            Model.InvoiceXT invoice = this.SelectedItem as Model.InvoiceXT;
            if (invoice != null)
            {
                return(new EditForm(invoice.InvoiceId));
            }

            return(null);
        }
コード例 #6
0
ファイル: InvoiceXTManager.cs プロジェクト: daobataotie/EDERP
        private void InvoiceCost(Model.InvoiceXT invoice)
        {
            decimal?totalCost = 0;

            foreach (Model.InvoiceXTDetail detail in invoice.Details)
            {
                if (detail.Product == null || string.IsNullOrEmpty(detail.Product.ProductId))
                {
                    continue;
                }
                //detail.InvoiceXTDetailCostPrice = detail.Product.ProductStandardCost;
                detail.InvoiceXTDetailCostMoney = detail.InvoiceXTDetailCostPrice * Convert.ToDecimal(detail.InvoiceXTDetailQuantity.Value);
                totalCost += detail.InvoiceXTDetailCostMoney;
            }
            invoice.InvoiceCost = totalCost;
        }
コード例 #7
0
ファイル: InvoiceXTManager.cs プロジェクト: daobataotie/EDERP
        private void Validate(Model.InvoiceXT invoice)
        {
            if (string.IsNullOrEmpty(invoice.InvoiceId))
            {
                throw new Helper.RequireValueException("Id");
            }

            if (invoice.Employee0 == null)
            {
                throw new Helper.RequireValueException("Employee0");
            }

            if (invoice.Customer == null)
            {
                throw new Helper.RequireValueException("Company");
            }

            if (invoice.Depot == null)
            {
                throw new Helper.RequireValueException("Depot");
            }

            if (invoice.Details.Count == 0)
            {
                throw new Helper.RequireValueException("Details");
            }

            foreach (Model.InvoiceXTDetail detail in invoice.Details)
            {
                if (detail.Product == null || string.IsNullOrEmpty(detail.Product.ProductId))
                {
                    continue;
                }
                if (detail.InvoiceXTDetailQuantity == 0)
                {
                    throw new Exception("數量不能為0");
                }
                if (string.IsNullOrEmpty(detail.DepotPositionId))
                {
                    throw new Helper.RequireValueException(Model.InvoiceCGDetail.PRO_DepotPositionId);
                }
            }
        }
コード例 #8
0
ファイル: InvoiceXTManager.cs プロジェクト: daobataotie/EDERP
        private void _Update(Model.InvoiceXT invoice)
        {
            _ValidateForUpdate(invoice);

            invoice.UpdateTime = DateTime.Now;
            invoice.CustomerId = invoice.Customer.CustomerId;
            //invoice.DepotId = invoice.Depot.DepotId;
            invoice.Employee0Id = invoice.Employee0.EmployeeId;

            invoice.Employee1Id = invoice.Employee1 == null ? null : invoice.Employee1.EmployeeId;
            invoice.Employee2Id = invoice.Employee2 == null ? null : invoice.Employee2.EmployeeId;

            InvoiceCost(invoice);
            Model.InvoiceXT invocieOriginal = this.Get(invoice.InvoiceId);

            switch ((Helper.InvoiceStatus)invocieOriginal.InvoiceStatus)
            {
            case Helper.InvoiceStatus.Draft:
                switch ((Helper.InvoiceStatus)invoice.InvoiceStatus)
                {
                case Helper.InvoiceStatus.Draft:
                    invoiceXTDetailAccessor.Delete(invocieOriginal);

                    foreach (Model.InvoiceXTDetail detail in invoice.Details)
                    {
                        if (detail.Product == null || string.IsNullOrEmpty(detail.Product.ProductId))
                        {
                            continue;
                        }
                        detail.InvoiceXTDetailId = Guid.NewGuid().ToString();
                        detail.InvoiceId         = invoice.InvoiceId;
                        invoiceXTDetailAccessor.Insert(detail);
                    }
                    break;

                case Helper.InvoiceStatus.Normal:
                    accessor.Delete(invocieOriginal.InvoiceId);
                    invoice.InsertTime = invocieOriginal.InsertTime;
                    invoice.UpdateTime = DateTime.Now;
                    _Insert(invoice);
                    break;

                case Helper.InvoiceStatus.Null:
                    throw new InvalidOperationException();
                }
                break;

            case Helper.InvoiceStatus.Normal:
                switch ((Helper.InvoiceStatus)invoice.InvoiceStatus)
                {
                case Helper.InvoiceStatus.Draft:
                    throw new InvalidOperationException();

                case Helper.InvoiceStatus.Normal:
                    invocieOriginal.InvoiceStatus = (int)Helper.InvoiceStatus.Null;
                    _TurnNull(invocieOriginal);
                    accessor.Delete(invocieOriginal.InvoiceId);
                    invoice.UpdateTime = DateTime.Now;
                    _Insert(invoice);
                    break;

                case Helper.InvoiceStatus.Null:
                    //invoice.Employee3Id = V.ActiveEmployee.EmployeeId;
                    //invoice.InvoiceZFTime = DateTime.Now;
                    //invoice.InvoiceZFCause = "";
                    //accessor.Update(invoice);
                    //Model.Depot depot1 = invoice.Depot;
                    foreach (Model.InvoiceXTDetail detail in invoice.Details)
                    {
                        if (detail.Product == null || string.IsNullOrEmpty(detail.Product.ProductId))
                        {
                            continue;
                        }

                        if (detail.DepotPosition != null)
                        {
                            stockAccessor.Decrement(detail.DepotPosition, detail.Product, detail.InvoiceXTDetailQuantity);
                            productManager.UpdateProduct_Stock(detail.Product);
                        }

                        Model.InvoiceXODetail xodetail = invoiceXODetailAccessor.Get(detail.InvoiceXODetailId);
                        if (xodetail != null)
                        {
                            xodetail.InvoiceXTDetailQuantity  = Convert.ToDouble(xodetail.InvoiceXTDetailQuantity) - Convert.ToDouble(detail.InvoiceXTDetailQuantity);
                            xodetail.InvoiceXODetailQuantity0 = Convert.ToDouble(xodetail.InvoiceXODetailQuantity) - Convert.ToDouble(xodetail.InvoiceXODetailBeenQuantity) + Convert.ToDouble(xodetail.InvoiceXTDetailQuantity);
                            if (xodetail.InvoiceXODetailQuantity0 < 0)
                            {
                                xodetail.InvoiceXODetailQuantity0 = 0;
                            }

                            if (xodetail.InvoiceXODetailQuantity0 == 0)
                            {
                                xodetail.DetailsFlag = 2;
                            }
                            else if (xodetail.InvoiceXODetailQuantity0 == xodetail.InvoiceXODetailQuantity)
                            {
                                xodetail.DetailsFlag = 0;
                            }
                            else
                            {
                                xodetail.DetailsFlag = 1;
                            }
                            invoiceXODetailAccessor.Update(xodetail);
                            invoiceXOManager.UpdateInvoiceFlag(xodetail.Invoice);
                        }
                    }



                    break;
                }
                break;

            case Helper.InvoiceStatus.Null:
                throw new InvalidOperationException();
            }
        }
コード例 #9
0
 public bool HasRowsBefore(Model.InvoiceXT e)
 {
     return(sqlmapper.QueryForObject <bool>("InvoiceXT.has_rows_before", e));
 }
コード例 #10
0
ファイル: R01.cs プロジェクト: daobataotie/EDERP
        public R01(string invoiceid)
        {
            InitializeComponent();

            this.invoice = this.InvoiceXTManager.Get(invoiceid);

            if (this.invoice == null)
            {
                return;
            }

            this.invoice.Details = this.InvoiceXTDetailManager.Select(this.invoice);

            this.DataSource = this.invoice.Details;

            //CompanyInfo
            this.xrLabelCompanyInfoAddress.Text  = BL.Settings.CompanyAddress1;
            this.xrLabelCompanyInfoFAX.Text      = BL.Settings.CompanyFax;
            this.xrLabelCompanyInfoName.Text     = BL.Settings.CompanyChineseName;
            this.xrLabelCompanyInfoTelphone.Text = BL.Settings.CompanyPhone;

            this.xrLabelData.Text       = Properties.Resources.InvoiceXT;
            this.xrLabelPrintDate.Text += DateTime.Now.ToShortDateString();
            //每页合计统计
            this.xrLabelPateTotal.Summary.Running          = SummaryRunning.Page;
            this.xrLabelPateTotal.Summary.Func             = SummaryFunc.Sum;
            this.xrLabelPateTotal.Summary.FormatString     = global::Helper.DateTimeParse.GetFormatA(BL.V.SetDataFormat.XSZJXiao.Value);
            this.xrLabelPateTotal.Summary.IgnoreNullValues = true;
            this.xrLabelPateTotal.DataBindings.Add("Text", this.DataSource, Model.InvoiceXTDetail.PRO_InvoiceXTDetailMoney0, global::Helper.DateTimeParse.GetFormatA(BL.V.SetDataFormat.XSZJXiao.Value));

            //客户信息
            this.xrLabelCustomName.Text     = this.invoice.Customer.CustomerShortName;
            this.xrLabelCustomFax.Text      = this.invoice.Customer.CustomerFax;
            this.xrLabelCustomTel.Text      = string.IsNullOrEmpty(this.invoice.Customer.CustomerPhone) ? this.invoice.Customer.CustomerPhone1 : this.invoice.Customer.CustomerPhone;
            this.xrLabelTongYiNo.Text       = this.invoice.Customer.CustomerNumber;
            this.xrLabelSongHuoAddress.Text = this.invoice.Customer.CustomerJinChuAddress;

            //单据信息
            this.xrLabelInvoiceDate.Text = this.invoice.InvoiceDate.Value.ToString("yyyy-MM-dd hh:mm:ss");
            this.xrLabelInvoiceId.Text   = this.invoice.InvoiceId;
            this.xrLabelYeWuName.Text    = this.invoice.Employee0.EmployeeName;
            this.xrLabelInvoiceFphm.Text = this.invoice.InvoiceFpbh;

            this.xrLabelTax.Text    = this.invoice.InvoiceTax.Value.ToString(global::Helper.DateTimeParse.GetFormat(BL.V.SetDataFormat.XSZJXiao.Value));
            this.xrLabelZre.Text    = this.invoice.InvoiceZRE.Value.ToString(global::Helper.DateTimeParse.GetFormat(BL.V.SetDataFormat.XSZJXiao.Value));
            this.xrLabelZse.Text    = this.invoice.InvoiceZSE.Value.ToString(global::Helper.DateTimeParse.GetFormat(BL.V.SetDataFormat.XSZJXiao.Value));
            this.xrLabelOwced.Text  = this.invoice.InvoiceOwed.Value.ToString(global::Helper.DateTimeParse.GetFormat(BL.V.SetDataFormat.XSZJXiao.Value));
            this.xrLabelYifu.Text   = ((decimal)(this.invoice.InvoiceZongJi.Value - this.invoice.InvoiceOwed.Value)).ToString(global::Helper.DateTimeParse.GetFormat(BL.V.SetDataFormat.XSZJXiao.Value));
            this.xrLabelTotal1.Text = this.invoice.InvoiceZongJi.Value.ToString(global::Helper.DateTimeParse.GetFormat(BL.V.SetDataFormat.XSZJXiao.Value));
            this.xrLabelheji.Text   = this.invoice.InvoiceHeJi.Value.ToString(global::Helper.DateTimeParse.GetFormat(BL.V.SetDataFormat.XSZJXiao.Value));
            this.xrLabelNote.Text   = this.invoice.InvoiceNote;

            //明细信息
            this.xrTableCellProductId.DataBindings.Add("Text", this.DataSource, Model.InvoiceXTDetail.PRO_Inumber);
            this.xrTableCellProductName.DataBindings.Add("Text", this.DataSource, "Product." + Model.Product.PRO_ProductName);
            //this.xrTableCellProductGuige.DataBindings.Add("Text", this.DataSource, "Product." + Model.Product.PRO_ProductSpecification);
            this.xrTableCellProductUnit.DataBindings.Add("Text", this.DataSource, Model.InvoiceXTDetail.PRO_InvoiceXTDetailQuantity);
            this.xrTableCellQuantity.DataBindings.Add("Text", this.DataSource, Model.InvoiceXTDetail.PRO_InvoiceProductUnit);
            this.xrTableCellUintPrice.DataBindings.Add("Text", this.DataSource, Model.InvoiceXTDetail.PRO_InvoiceXTDetailPrice, "{0:0.###}");
            //this.xrCheckBoxIsZs.DataBindings.Add("CheckState", this.DataSource, Model.InvoiceXTDetail.PRO_InvoiceXTDetailZS);
            this.xrTableCellMoney.DataBindings.Add("Text", this.DataSource, Model.InvoiceXTDetail.PRO_InvoiceXTDetailMoney1, "{0:0.###}");
            this.TC_InvoiceCusXOId.DataBindings.Add("Text", this.DataSource, "InvoiceXO." + Model.InvoiceXO.PRO_CustomerInvoiceXOId);
        }
コード例 #11
0
 public Model.InvoiceXT GetNext(Model.InvoiceXT e)
 {
     return(sqlmapper.QueryForObject <Model.InvoiceXT>("InvoiceXT.get_next", e));
 }
コード例 #12
0
ファイル: InvoiceXTManager.cs プロジェクト: daobataotie/EDERP
 private void _TurnNull(Model.InvoiceXT invoice)
 {
     invoice.InvoiceStatus = (int)Helper.InvoiceStatus.Null;
     _Update(invoice);
 }
コード例 #13
0
ファイル: InvoiceXTManager.cs プロジェクト: daobataotie/EDERP
 public Model.InvoiceXT GetNext(Model.InvoiceXT e)
 {
     return(accessor.GetNext(e));
 }
コード例 #14
0
ファイル: InvoiceXTManager.cs プロジェクト: daobataotie/EDERP
 public Model.InvoiceXT GetPrev(Model.InvoiceXT e)
 {
     return(accessor.GetPrev(e));
 }
コード例 #15
0
ファイル: InvoiceXTManager.cs プロジェクト: daobataotie/EDERP
 public bool HasRowsAfter(Model.InvoiceXT e)
 {
     return(accessor.HasRowsAfter(e));
 }
コード例 #16
0
ファイル: InvoiceXTManager.cs プロジェクト: daobataotie/EDERP
 public bool HasRowsBefore(Model.InvoiceXT e)
 {
     return(accessor.HasRowsBefore(e));
 }
コード例 #17
0
 public Model.InvoiceXT GetPrev(Model.InvoiceXT e)
 {
     return(sqlmapper.QueryForObject <Model.InvoiceXT>("InvoiceXT.get_prev", e));
 }
コード例 #18
0
 public void Update(Model.InvoiceXT e)
 {
     this.Update <Model.InvoiceXT>(e);
 }
コード例 #19
0
ファイル: InvoiceXTManager.cs プロジェクト: daobataotie/EDERP
 public Model.InvoiceXT Get(string invoiceId)
 {
     Model.InvoiceXT invoice = accessor.Get(invoiceId);
     invoice.Details = invoiceXTDetailAccessor.Select(invoice);
     return(invoice);
 }
コード例 #20
0
 public bool HasRowsAfter(Model.InvoiceXT e)
 {
     return(sqlmapper.QueryForObject <bool>("InvoiceXT.has_rows_after", e));
 }
コード例 #21
0
 public IList <Model.InvoiceXTDetail> Select(Model.InvoiceXT invoiceXT)
 {
     return(accessor.Select(invoiceXT));
 }
コード例 #22
0
 public void Insert(Model.InvoiceXT e)
 {
     this.Insert <Model.InvoiceXT>(e);
 }