Example #1
0
        private void PrintSalesNote(GoodsSellNote note, Customer customer)
        {
            System.Text.StringBuilder sb = new StringBuilder();
            sb.Append("\r\n=======销售单信息=========================");
            sb.Append("\r\n流水号:" + note.NoteID.ToString("N8"));
            sb.Append("\r\n客户号:" + note.CustomerID);
            sb.Append("\r\n终端号:" + note.ManchinesNumber);
            sb.Append("\r\n销售员:" + note.SalesmanID);
            sb.Append("\r\n日  期:" + note.SellDate);
            sb.Append("\r\n------- 销售明细--------------------------");
            sb.Append("\r\n商品名称|\t单价    |\t数量    |\t价格    " );
            sb.Append("\r\n------------------------------------------");

            int allIntegral = 0;
            foreach (Goods goods in customer.Goodss)
            {
                sb.Append("\r\n" + goods.GoodsName);
                sb.Append("\t\t" + goods.GoodsPrice.ToString ("c"));
                sb.Append("\t" + goods.GoodsNumber);
                sb.Append("\t" + (goods.GoodsPrice * goods.GoodsNumber).ToString ("c"));
                allIntegral += goods.Integral;
            }
            sb.Append("\r\n------------------------------------------");
            sb.Append("\r\n金额合计:" + this.CurrCRManchines.ShowAmount().ToString ("c"));
            sb.Append("\r\n");
            if (allIntegral > 0)
                sb.Append("本次消费可以获得的积分:"+allIntegral );

            customer.SalesNote = sb.ToString();
        }
Example #2
0
        /// <summary>
        /// 保存销售信息
        /// </summary>
        /// <param name="customer">客户信息</param>
        /// <param name="integral">要增加的积分</param>
        /// <returns></returns>
        private GoodsSellNote SaveSalesInfo(Customer customer, int integral)
        {
            GoodsSellNote note = new GoodsSellNote();
            note.CustomerID = customer.CustomerID;
            note.ManchinesNumber = this.CurrCRManchines.CashRegisterNo;
            note.SalesmanID = this.CurrCashier.WorkNumber;
            note.SalesType = "店内销售";
            note.SellDate = DateTime.Now;
            note.GoodsSellDetails = new List<GoodsSellDetail>();

            AdoHelper db = MyDB.GetDBHelper();
            db.BeginTransaction();
            try
            {
                EntityQuery<GoodsSellNote> query = new EntityQuery<GoodsSellNote>(db);
                if (query.Insert(note) > 0)
                {
                    foreach (Goods goods in customer.Goodss)
                    {
                        if (goods.GoodsNumber > 0)
                        {
                            //处理详单
                            GoodsSellDetail detail = new GoodsSellDetail();
                            detail.GoodsPrice = goods.GoodsPrice;
                            detail.NoteID = note.NoteID;
                            detail.SellNumber = goods.GoodsNumber;
                            detail.SerialNumber = goods.SerialNumber;

                            note.GoodsSellDetails.Add(detail);

                            //更新库存
                            SuperMarketDAL.Entitys.GoodsStock stock = new SuperMarketDAL.Entitys.GoodsStock();
                            stock.GoodsID = goods.GoodsID;
                            stock.Stocks = goods.GoodsNumber;
                            
                            OQL q = OQL.From(stock)
                                .UpdateSelf ('-', stock.Stocks)
                                .Where(stock.GoodsID)
                                .END;
                            EntityQuery<SuperMarketDAL.Entitys.GoodsStock>.ExecuteOql(q, db);

                        }
                    }

                    EntityQuery<GoodsSellDetail> queryDetail = new EntityQuery<GoodsSellDetail>(db);
                    queryDetail.Insert(note.GoodsSellDetails);

                    //更新会员的积分
                    if (integral > 0)
                    {
                        SuperMarketDAL.Entitys.CustomerContactInfo ccInfo = new CustomerContactInfo();
                        ccInfo.CustomerID = customer.CustomerID;
                        ccInfo.Integral = integral;
                        OQL qc = OQL.From(ccInfo)
                                .UpdateSelf('+', ccInfo.Integral )
                                .Where(ccInfo.CustomerID )
                                .END;
                        EntityQuery<SuperMarketDAL.Entitys.GoodsStock>.ExecuteOql(qc, db);
                    }
                }
                db.Commit();
            }
            catch (Exception ex)
            {
                db.Rollback();
                throw new Exception("插入销售记录失败,内部错误原因:" + ex.Message);
            }
            return note;
        }
Example #3
0
        /// <summary>
        /// 获取商品销售单视图
        /// </summary>
        /// <returns></returns>
        public IEnumerable<GoodsSellNoteVM> GetGoodsSellNote()
        {
            GoodsSellNote note = new GoodsSellNote();
            Employee emp = new Employee();
            CustomerContactInfo cst=new CustomerContactInfo ();
            OQL joinQ = OQL.From(note)
                .InnerJoin(emp).On(note.SalesmanID, emp.WorkNumber)
                .InnerJoin(cst).On(note.CustomerID, cst.CustomerID)
                .Select(note.NoteID, cst.CustomerName, note.ManchinesNumber, emp.EmployeeName, note.SalesType, note.SellDate)
                .OrderBy(note.NoteID, "desc")
                .END;

            PWMIS.DataProvider.Data.AdoHelper db = PWMIS.DataProvider.Adapter.MyDB.GetDBHelper();
            EntityContainer ec = new EntityContainer(joinQ, db);  
            ec.Execute();
            //可以使用下面的方式获得各个成员元素列表
            //var noteList = ec.Map<GoodsSellNote>().ToList();
            //var empList = ec.Map<Employee>().ToList();
            //var cstList = ec.Map<CustomerContactInfo>().ToList();
            //直接使用下面的方式获得新的视图对象
            var result = ec.Map<GoodsSellNoteVM>(e =>
                {
                    e.NoteID = ec.GetItemValue<int>(0);
                    e.CustomerName = ec.GetItemValue<string>(1);
                    e.ManchinesNumber = ec.GetItemValue<string>(2);
                    e.EmployeeName = ec.GetItemValue<string>(3);
                    e.SalesType = ec.GetItemValue<string>(4);
                    e.SellDate = ec.GetItemValue<DateTime>(5);
                    return e;
                }
            );
            return result;
        }