Exemple #1
0
        public int update(SaleLog model)
        {
            model.UpdatedAt = Tools.TimeStamp.GetNowTimeStamp();
            List <SQLiteParameter> parameters = fillParameters(model);

            parameters.Add(new SQLiteParameter("@goods_id", DbType.Int32, 11)
            {
                Value = model.Id
            });
            SQLiteParameter[] param = this.ConvertSQLiteParameters(parameters);

            String sql = "UPDATE sales_records SET goods_id = @goods_id, money = @money, summary = @summary, updated_at = @updated_at WHERE id = @id;";
            int    row = Tools.SQLiteHelper.ExecuteNonQuery(Tools.SQLiteHelper.ConnectionStringLocalTransaction, CommandType.Text, sql, param);

            if (row > 0)
            {
                sql = sql.Replace("@summary", String.Format("'{0}'", model.Summary));
                sql = sql.Replace("@money", String.Format("{0}", model.Money));
                sql = sql.Replace("@goods_id", String.Format("{0}", model.GoodsId));
                sql = sql.Replace("@updated_at", String.Format("{0}", model.UpdatedAt));
                sql = sql.Replace("@id", String.Format("{0}", model.Id));
                this.SaveQueue(sql);
            }
            return(row);
        }
Exemple #2
0
        internal static SaleLogSet SaleLogToSaleLogSet(this SaleLog saleLog)
        {
            Mapper.Initialize(cfg => cfg.CreateMap <SaleLog, SaleLogSet>());
            var result = Mapper.Map <SaleLog, SaleLogSet>(saleLog);

            return(result);
        }
Exemple #3
0
        public void AddSaleLog(SaleLog saleLog)
        {
            using (var cn = new SqlConnection(Settings.GetConnectionString()))
            {
                // create parameter object
                var parameters = new DynamicParameters();

                parameters.Add("@BuyerName", saleLog.BuyerName);
                parameters.Add("@Email", saleLog.Email);
                parameters.Add("@Street1", saleLog.Street1);
                parameters.Add("@Street2", saleLog.Street2);
                parameters.Add("@City", saleLog.City);
                parameters.Add("@State", saleLog.State);
                parameters.Add("@ZipCode", saleLog.ZipCode);
                parameters.Add("@PurchasePrice", saleLog.PurchasePrice);
                parameters.Add("@PurchaseType", saleLog.PurchaseType);
                parameters.Add("@VehicleId", saleLog.VehicleId);
                parameters.Add("@Phone", saleLog.Phone);
                parameters.Add("@SalesUserId", saleLog.SalesUserId);
                parameters.Add("@PurchaseDate", saleLog.PurchaseDate);


                cn.Execute("AddSaleLog",
                           parameters, commandType: CommandType.StoredProcedure);
            }
        }
Exemple #4
0
        public async Task GetLogsForSaleShouldGetLogsForSale()
        {
            var sale = new Sale();

            this.salesEntityRetrieverMock.Setup(x => x.GetSale(It.IsAny <Guid?>())).ReturnsAsync(sale);

            var addedSaleLogsIds = new List <Guid?>();

            for (var i = 0; i < 10; i++)
            {
                var saleLog = new SaleLog {
                    SaleId = sale.Id
                };

                await this.dbContext.SaleLogs.AddAsync(saleLog);

                addedSaleLogsIds.Add(saleLog.Id);
            }

            await this.dbContext.SaveChangesAsync();

            var saleLogs = await this.saleLogsService.GetLogsForSale <GetLogsForSaleResourceModel>(sale.Id);

            Assert.True(saleLogs.Select(sl => addedSaleLogsIds.Contains(sl.Id)).All(x => x));
        }
Exemple #5
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            String msg = null;

            if (String.IsNullOrEmpty(this.txtPrice.Text.Trim()))
            {
                msg = "请填写交易金额";
            }
            else if (this.cmbGoods.SelectedItem == null)
            {
                msg = "请选择商品信息";
            }
            else if (String.IsNullOrEmpty(this.txtSummary.Text.Trim()))
            {
                msg = "请填写交易描述";
            }

            if (msg != null)
            {
                MessageBox.Show(msg, "数据不完整", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            Models.SaleLog log = new SaleLog();
            log.CreatedAt = Tools.TimeStamp.ConvertDateTimeInt(DateTime.Now);
            log.GoodsId   = Convert.ToInt32(this.cmbGoods.SelectedValue);
            log.Money     = Convert.ToDecimal(this.txtPrice.Text.Trim());
            log.Summary   = this.txtSummary.Text.Trim();

            bll.AddLog(log);
        }
Exemple #6
0
        public int save(SaleLog model)
        {
            model.CreatedAt = Tools.TimeStamp.ConvertDateTimeInt(DateTime.Now);
            MySqlParameter[] param = this.ConvertMySqlParameters(this.fillParameters(model));
            String           sql   = "INSERT INTO sales_records(goods_id, money, summary, created_at, updated_at) VALUES(@goods_id, @money, @summary, @created_at, @updated_at);";

            return(Tools.MySqlHelper.ExecuteNonQuery(Tools.MySqlHelper.ConnectionStringLocalTransaction, CommandType.Text, sql, param));
        }
Exemple #7
0
        public int update(SaleLog model)
        {
            model.UpdatedAt = Tools.TimeStamp.ConvertDateTimeInt(DateTime.Now);
            MySqlParameter[] param = this.ConvertMySqlParameters(this.fillParameters(model));
            param[param.Length] = new MySqlParameter("@id", MySqlDbType.Int32, 11);

            String sql = "UPDATE sales_records SET goods_id = @goods_id, money = @money, summary = @summary, created_at = @created_at, updated_at = @updated_at SET id = @id;";

            return(Tools.MySqlHelper.ExecuteNonQuery(Tools.MySqlHelper.ConnectionStringLocalTransaction, CommandType.Text, sql, param));
        }
Exemple #8
0
        public SaleLog find(int id)
        {
            String  sql = String.Format("SELECT * FROM sales_records WHERE id = {0}", id);
            SaleLog log = null;

            using (MySqlDataReader rdr = Tools.MySqlHelper.ExecuteReader(Tools.MySqlHelper.ConnectionStringLocalTransaction, CommandType.Text, sql))
            {
                log = this.fillSaleLog(rdr);
            }
            return(log);
        }
Exemple #9
0
        private SaleLog fillSaleLog(MySqlDataReader rdr)
        {
            SaleLog category = null;

            if (rdr.Read())
            {
                category           = new SaleLog();
                category.Id        = rdr["id"] == DBNull.Value ? 0 : Convert.ToInt32(rdr["id"]);
                category.GoodsId   = rdr["goods_id"] == DBNull.Value ? 0 : Convert.ToInt32(rdr["goods_id"]);
                category.Summary   = rdr["summary"] == DBNull.Value ? "" : rdr["summary"].ToString();
                category.Money     = rdr["money"] == DBNull.Value ? 0 : Convert.ToDecimal(rdr["money"]);
                category.CreatedAt = rdr["created_at"] == DBNull.Value ? 0 : Convert.ToInt32(rdr["created_at"]);
                category.UpdatedAt = rdr["updated_at"] == DBNull.Value ? 0 : Convert.ToInt32(rdr["updated_at"]);
            }
            return(category);
        }
Exemple #10
0
        public ActionResult Purchase(SaleLogViewModel saleLogViewModel)
        {
            if (ModelState.IsValid)
            {
                var saleLogRepo = SaleLogRepositoryFactory.GetSaleLogRepository();

                var vehicleRepo = VehicleRepositoryFactory.GetVehicleRepository();


                var saleLog = new SaleLog()
                {
                    BuyerName     = saleLogViewModel.BuyerName,
                    Email         = saleLogViewModel.Email,
                    Street1       = saleLogViewModel.Street1,
                    Street2       = saleLogViewModel.Street2,
                    City          = saleLogViewModel.City,
                    State         = saleLogViewModel.State,
                    ZipCode       = saleLogViewModel.ZipCode,
                    PurchasePrice = saleLogViewModel.PurchasePrice,
                    PurchaseType  = saleLogViewModel.PurchaseType,
                    VehicleId     = saleLogViewModel.VehicleId,
                    Phone         = saleLogViewModel.Phone,
                    SalesUserId   = User.Identity.GetUserId(),
                    PurchaseDate  = DateTime.Today
                };
                // Add Sale Log Record
                saleLogRepo.AddSaleLog(saleLog);

                // Mark Vehicle as Purchased
                vehicleRepo.VehicleMarkPurchased(saleLogViewModel.VehicleId);

                return(RedirectToAction("Index", "Home"));
            }
            else // send back the View with error list
            {
                var repo = VehicleRepositoryFactory.GetVehicleRepository();

                var model = new PurchaseViewModel()
                {
                    vehicle          = repo.GetVehicleById(saleLogViewModel.VehicleId),
                    saleLogViewModel = saleLogViewModel
                };

                return(View(model));
            }
        }
Exemple #11
0
        private List <SaleLog> findBySql(String sql)
        {
            List <SaleLog> logs = null;

            using (MySqlDataReader rdr = Tools.MySqlHelper.ExecuteReader(Tools.MySqlHelper.ConnectionStringLocalTransaction, CommandType.Text, sql))
            {
                logs = new List <SaleLog>();
                while (true)
                {
                    SaleLog log = this.fillSaleLog(rdr);
                    if (log == null)
                    {
                        break;
                    }
                    logs.Add(log);
                }
            }
            return(logs);
        }
Exemple #12
0
        private List <SQLiteParameter> fillParameters(SaleLog model)
        {
            List <SQLiteParameter> param = new List <SQLiteParameter>()
            {
                new SQLiteParameter("@goods_id", DbType.Int32, 11),
                new SQLiteParameter("@money", DbType.Decimal, 11),
                new SQLiteParameter("@summary", DbType.String, 255),
                new SQLiteParameter("@created_at", DbType.Int32, 11),
                new SQLiteParameter("@updated_at", DbType.Int32, 11),
            };

            param[0].Value = model.GoodsId;
            param[1].Value = model.Money;
            param[2].Value = model.Summary;
            param[3].Value = model.CreatedAt;
            param[4].Value = model.UpdatedAt;

            return(param);
        }
Exemple #13
0
        private List <MySqlParameter> fillParameters(SaleLog model)
        {
            MySqlParameter[] parameters =
            {
                new MySqlParameter("@goods_id",   MySqlDbType.Int32,     11),
                new MySqlParameter("@money",      MySqlDbType.Decimal,   10),
                new MySqlParameter("@summary",    MySqlDbType.VarChar, 1000),
                new MySqlParameter("@created_at", MySqlDbType.Int32,     11),
                new MySqlParameter("@updated_at", MySqlDbType.Int32,     11),
            };

            parameters[0].Value = model.GoodsId;
            parameters[1].Value = model.Money;
            parameters[2].Value = model.Summary;
            parameters[3].Value = model.CreatedAt;
            parameters[4].Value = model.UpdatedAt;

            return(parameters.ToList());
        }
Exemple #14
0
        public int save(SaleLog model)
        {
            model.CreatedAt = Tools.TimeStamp.GetNowTimeStamp();

            SQLiteParameter[] param = this.ConvertSQLiteParameters(fillParameters(model));

            String sql = "INSERT INTO sales_records(goods_id, money, summary, created_at) VALUES (@goods_id, @money, @summary, @created_at);";
            int    row = Tools.SQLiteHelper.ExecuteNonQuery(Tools.SQLiteHelper.ConnectionStringLocalTransaction, CommandType.Text, sql, param);

            if (row > 0)
            {
                sql = sql.Replace("@summary", String.Format("'{0}'", model.Summary));
                sql = sql.Replace("@money", String.Format("{0}", model.Money));
                sql = sql.Replace("@goods_id", String.Format("{0}", model.GoodsId));
                sql = sql.Replace("@created_at", String.Format("{0}", model.CreatedAt));
                this.SaveQueue(sql);
            }
            return(row);
        }
Exemple #15
0
        private void btnSubmit_Click(object sender, System.EventArgs e)
        {
            if (String.IsNullOrEmpty(this.txtMoney.Text.Trim()))
            {
                MessageBox.Show("请先选择充值次数及金额!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            else if (this.card.Record == null || this.card.Record.Status == Status.Disabled)
            {
                this.card.Record = new MemberCardRecord();
                this.card.Record.MemberCardId = this.card.Id;
                this.card.Record.CreatedAt    = TimeStamp.GetNowTimeStamp();
            }

            MemberCardCategoryValue cat = this.cmbMoney.SelectedItem as MemberCardCategoryValue;

            this.card.Record.Balance  += cat.ValueNum;
            this.card.Record.BeginAt   = TimeStamp.ConvertDateTimeInt(DateTime.Now.Date);
            this.card.Record.ExpiredAt = TimeStamp.ConvertDateTimeInt(this.validTime.Value.Date.AddHours(23));

            if (this.card.Record.Id > 0 ? recordBll.EditMemberCardRecord(this.card.Record) : recordBll.AddMemberCardRecord(this.card.Record))
            {
                SaleLog log = new SaleLog();
                log.CreatedAt = TimeStamp.ConvertDateTimeInt(DateTime.Now);
                log.MemberId  = this.card.Id;
                log.MemberNo  = this.card.CardNo;
                log.GoodsId   = cat.GoodsId;
                log.Money     = Convert.ToDecimal(this.txtMoney.Text.Trim());
                log.Summary   = String.Format("卡号:{0}在{1}充值{2}元", this.card.CardNo, DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"), cat.Money);
                saleBll.AddLog(log);
                Callback(log.Summary);
                this.labMoney.Text = String.Format("帐户剩余次数:{0}次", this.card.Record.Balance.ToString());
            }

            this.btnSubmit.Enabled = false;
            this.validTime.Visible = false;
            this.labTip.Visible    = false;
            this.card = null;
            this.cmbMoney.DataSource = null;
            this.txtMoney.Clear();
            MessageBox.Show("充值成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
Exemple #16
0
        private SaleLog fillSaleLog(SQLiteDataReader rdr)
        {
            SaleLog log = null;

            if (rdr.Read())
            {
                log         = new SaleLog();
                log.Id      = rdr["id"] == DBNull.Value ? 0 : Convert.ToInt32(rdr["id"]);
                log.GoodsId = rdr["goods_id"] == DBNull.Value ? 0 : Convert.ToInt32(rdr["goods_id"]);
                log.Summary = rdr["summary"] == DBNull.Value ? "" : rdr["summary"].ToString();
                //log.MemberId = rdr["member_id"] == DBNull.Value ? 0 : Convert.ToInt32(rdr["member_id"]);
                //log.Summary = rdr["name"] == DBNull.Value ? "" : rdr["name"].ToString();
                //log.Remark = rdr["category_id"] == DBNull.Value ? "" : rdr["category_id"].ToString();
                //log.MemberNo = rdr["member_no"] == DBNull.Value ? "" : rdr["member_no"].ToString();
                log.Money     = rdr["money"] == DBNull.Value ? 0 : Convert.ToDecimal(rdr["money"]);
                log.CreatedAt = rdr["created_at"] == DBNull.Value ? 0 : Convert.ToInt64(rdr["created_at"]);
                log.UpdatedAt = rdr["updated_at"] == DBNull.Value ? 0 : Convert.ToInt64(rdr["updated_at"]);
            }
            return(log);
        }
Exemple #17
0
        /// <summary>
        /// 添加交易记录
        /// </summary>
        private void AddRecord()
        {
            if (card.Record.Balance <= 0)
            {
                this.setLabelStatus("此卡次数不足,请充值后再试!", Color.Red, "AudioCardArrearage");
                return;
            }

            this.btnSearch.Enabled = false;
            this.btnSubmit.Enabled = false;
            this.numValue.Enabled  = false;

            Decimal num = this.numValue.Value;

            for (int i = 0; i < num; i++)
            {
                SaleLog log = new SaleLog();
                log.CreatedAt = TimeStamp.GetNowTimeStamp();
                log.Money     = 0;
                log.GoodsId   = Convert.ToInt32(ConfigurationManager.AppSettings["RecordGoodsID"]);
                log.MemberNo  = this.card.CardNo;
                log.Summary   = String.Format("卡号:{0}({1})在{2}进行了一笔消费", this.labNo.Text.Trim(), this.labType.Text.Trim(), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                logBll.AddLog(log);
            }

            this.AddRecordToDataGridView(String.Format("卡号:{0}({1})在{2}进行了{3}笔消费", this.labNo.Text.Trim(), this.labType.Text.Trim(), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), Convert.ToInt32(num)));
            this.card.Record.Balance -= num;
            recordBll.EditMemberCardRecord(this.card.Record);

            this.btnSearch.Enabled = true;
            this.btnSubmit.Enabled = true;
            this.numValue.Enabled  = true;
            this.numValue.Maximum  = this.card.Record.Balance;
            this.numValue.Value    = this.numValue.Value > this.numValue.Maximum ? this.numValue.Maximum : this.numValue.Value;

            if (!this.timer.Enabled)
            {
                this.timer.Interval = 1000 * 20;
                this.timer.Start();
            }
        }
Exemple #18
0
        private void btnSubmit_Click(object sender, System.EventArgs e)
        {
            String msg = null;

            if (String.IsNullOrEmpty(this.txtFee.Text.Trim()))
            {
                msg = "请填写销售金额!";
            }
            else if (Convert.ToDecimal(this.txtFee.Text.Trim()) < 1)
            {
                msg = "销售金额必须大于0元!";
            }

            if (!String.IsNullOrEmpty(msg))
            {
                MessageBox.Show(msg, "保存失败", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            SaleLog log = new SaleLog();

            log.CreatedAt = TimeStamp.GetNowTimeStamp();
            log.Money     = Convert.ToDecimal(this.txtFee.Text.Trim());
            log.GoodsId   = this.goods.Id;
            log.MemberNo  = "";
            log.Summary   = String.Format("{0}出售了{1}元的{2}",
                                          DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                                          this.txtFee.Text.Trim(),
                                          this.goods.Name);

            ISaleLogBLL logBll = BllFactory.GetSaleLogBll();

            if (!logBll.AddLog(log))
            {
                MessageBox.Show("商品销售记录失败!", "保存失败", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            callback(log.Summary);
            this.Close();
        }
        public void AddSaleLog(SaleLog saleLog)
        {
            int maxId = saleLogList.Max(s => s.SaleId);

            saleLogList.Add(new SaleLog()
            {
                SaleId        = maxId + 1,
                BuyerName     = saleLog.BuyerName,
                Email         = saleLog.Email,
                Street1       = saleLog.Street1,
                Street2       = saleLog.Street2,
                City          = saleLog.City,
                State         = saleLog.State,
                ZipCode       = saleLog.ZipCode,
                PurchasePrice = saleLog.PurchasePrice,
                PurchaseType  = saleLog.PurchaseType,
                VehicleId     = saleLog.VehicleId,
                Phone         = saleLog.Phone,
                SalesUserId   = saleLog.SalesUserId,
                PurchaseDate  = saleLog.PurchaseDate
            });
        }
Exemple #20
0
        public List <SaleLog> findByWhere(string where)
        {
            String sql = "SELECT * FROM sales_records WHERE " + where;

            sql += " order by id";

            List <SaleLog> logs = null;

            using (SQLiteDataReader rdr = SQLiteHelper.ExecuteReader(SQLiteHelper.ConnectionStringLocalTransaction, CommandType.Text, sql))
            {
                logs = new List <SaleLog>();
                while (true)
                {
                    SaleLog log = this.fillSaleLog(rdr);
                    if (log == null)
                    {
                        break;
                    }
                    logs.Add(log);
                }
            }
            return(logs);
        }
Exemple #21
0
        public void CanAddSaleLog()
        {
            SaleLog saleLog = new SaleLog()
            {
                BuyerName     = "Karnan",
                Email         = "*****@*****.**",
                Street1       = "123 street",
                City          = "Chicago",
                State         = "MI",
                ZipCode       = "98234",
                PurchasePrice = 25000,
                PurchaseType  = "Dealer Finance",
                VehicleId     = 4,
                Phone         = "7711322322",
                SalesUserId   = allUsers[0].Id,
                PurchaseDate  = DateTime.Today
            };

            var repo = new SaleLogRepository();

            repo.AddSaleLog(saleLog);

            // Now check in the DB if the record was added
        }
Exemple #22
0
 public bool EditLog(SaleLog model)
 {
     return(dal.update(model) > 0);
 }
Exemple #23
0
 public bool AddLog(SaleLog model)
 {
     return(dal.save(model) > 0);
 }