Beispiel #1
0
        /// <summary>
        /// 写入库存
        /// </summary>
        public string insertStock()
        {
            string  sellId   = Session["sellId"].ToString();                    //销退单头Id
            DataSet sellds   = shBll.Select(sellId);
            string  regionId = sellds.Tables[0].Rows[0]["regionId"].ToString(); //地区Id
            //DataSet gds = gbll.Select(int.Parse(regionId));
            //string gid = gds.Tables[0].Rows[0]["goodsShelvesId"].ToString();
            int    newstockNum = int.Parse(Request["count"]); //写入的库存量
            string bookNo      = Request["bookNum"];          //获取书号

            if (bookNo == null || bookNo == "")
            {
                bookNo = bookds.Tables[0].Rows[0]["bookNum"].ToString();//书号
            }
            DataSet stockDs     = stbll.SelectByBookNum(bookNo, int.Parse(regionId));
            string  shelvesId   = stockDs.Tables[0].Rows[0]["goodsShelvesId"].ToString(); //获取货架Id
            string  oldStockNum = stockDs.Tables[0].Rows[0]["stockNum"].ToString();       //原来的库存量
            int     stockNum    = newstockNum + int.Parse(oldStockNum);

            if (stockNum < 0)
            {
                return("库存已不足");
            }
            else
            {
                Result row = stbll.update(stockNum, shelvesId, bookNo);
                if (row == Result.更新成功)
                {
                    return("更新成功");
                    //Response.Write("更新成功");
                    //Response.End();
                }
                else
                {
                    return("写入库存失败");
                    //Response.Write("写入库存失败");
                    //Response.End();
                }
            }
        }
Beispiel #2
0
        public void insert()
        {
            string    json = Request["json"];
            DataTable dataTable = jsonToDt(json);
            int       row, rows = 0;
            double    total, allTotal = 0, real, allReal = 0;
            int       Counts = dataTable.Rows.Count;

            for (int i = 0; i < Counts; i++)
            {
                DataRow dr = dataTable.Rows[i];
                row      = Convert.ToInt32(dr["数量"]);
                total    = Convert.ToDouble(dr["码洋"]);
                real     = Convert.ToDouble(dr["实洋"]);
                rows     = rows + row;
                allTotal = allTotal + total;
                allReal  = allReal + real;
            }
            User     user    = (User)Session["user"];
            DateTime nowTime = DateTime.Now;
            string   nowDt   = nowTime.ToString("yyyy-MM-dd");
            long     count   = 0;
            //生成流水号方法
            DataSet backds = retailBll.getAllTime(2);

            if (backds != null && backds.Tables[0].Rows.Count > 0)
            {
                for (int i = 0; i < backds.Tables[0].Rows.Count; i++)
                {
                    string   time    = backds.Tables[0].Rows[i]["dateTime"].ToString();
                    DateTime dt      = Convert.ToDateTime(time);
                    string   sqlTime = dt.ToString("yyyy-MM-dd");
                    if (sqlTime == nowDt)
                    {
                        //count += 1;
                        string id    = backds.Tables[0].Rows[i]["retailHeadId"].ToString();
                        string st1   = id.Substring(10);
                        long   rowes = long.Parse(st1) + 1;
                        count = rowes;
                        break;
                    }
                }
                if (count == 0)
                {
                    count = 1;
                }
            }
            else
            {
                count = 1;
            }
            //添加单头
            string retailHeadId = "LT" + DateTime.Now.ToString("yyyyMMdd") + count.ToString().PadLeft(6, '0');

            single.AllRealPrice  = 0 - Math.Abs(allReal);
            single.AllTotalPrice = 0 - Math.Abs(allTotal);
            single.KindsNum      = Counts;
            single.Number        = 0 - Math.Abs(rows);
            single.RegionId      = user.ReginId.RegionId;
            single.SaleHeadId    = retailHeadId;
            single.UserId        = user.UserId;
            single.DateTime      = DateTime.Now;
            single.State         = 2;
            single.PayType       = "退款";
            Result result = retailBll.InsertRetail(single);

            if (result == Result.添加成功)
            {//添加单体
                Session["List"] = new List <string>();
                SaleMonomer monomers = new SaleMonomer();
                int         Count    = dataTable.Rows.Count;
                for (int i = 0; i < Count; i++)
                {
                    DataRow dr = dataTable.Rows[i];
                    monomers.ISBN1           = dr["ISBN"].ToString();
                    monomers.UnitPrice       = Convert.ToDouble(dr["单价"]);
                    monomers.BookNum         = dr["书号"].ToString();
                    monomers.RealDiscount    = Convert.ToDouble(dr["折扣"]);
                    monomers.SaleIdMonomerId = i + 1;
                    monomers.Number          = 0 - Math.Abs(Convert.ToInt32(dr["数量"]));
                    monomers.TotalPrice      = 0 - Math.Abs(Convert.ToDouble(dr["码洋"]));
                    monomers.RealPrice       = 0 - Math.Abs(Convert.ToDouble(dr["实洋"]));
                    monomers.SaleHeadId      = retailHeadId;
                    monomers.Datetime        = DateTime.Now;
                    DataSet dsStock = stockBll.SelectByBookNum(monomers.BookNum, user.ReginId.RegionId);
                    if (dsStock == null || dsStock.Tables[0].Rows.Count <= 0)
                    {
                        Response.Write("库存不足");
                        Response.End();
                    }
                    else
                    {
                        string goodsId  = dsStock.Tables[0].Rows[0]["goodsShelvesId"].ToString();
                        int    stockNum = Convert.ToInt32(dsStock.Tables[0].Rows[0]["stockNum"]);
                        Result stock    = stockBll.update(stockNum + Math.Abs(monomers.Number), goodsId, monomers.BookNum);
                        if (stock == Result.更新失败)
                        {
                            Response.Write("更新失败");
                            Response.End();
                        }
                        else
                        {
                            Result mon = retailBll.InsertRetail(monomers);
                            if (mon == Result.添加失败)
                            {
                                Response.Write("添加失败");
                                Response.End();
                            }
                        }
                    }
                }
                Response.Write("添加成功");
                Response.End();
            }
            else
            {
                Response.Write("添加失败");
                Response.End();
            }
        }
Beispiel #3
0
        /// <summary>
        /// 只有一条数据时
        /// </summary>
        public void backbook()
        {
            int count = salemonbll.SelectBySaleHeadId(SaleHeadId);

            if (count == 0)
            {
                count = 1;
            }
            else
            {
                count += 1;
            }

            BookBasicBll bookbll = new BookBasicBll();
            string       booknum = bookds.Tables[0].Rows[0]["bookNum"].ToString();

            //判断库存
            DataSet stockbook = stockbll.SelectByBookNum(booknum, user.ReginId.RegionId);

            if (stockbook == null)
            {
                Response.Write("无库存");
                Response.End();
            }
            BookBasicData book    = bookbll.SelectById(booknum);
            string        remarks = book.Remarks;

            if (defaultdiscount == "-1")
            {
                if (double.Parse(remarks) < 1)
                {
                    remarks = (double.Parse(remarks) * 100).ToString();
                }
            }
            else
            {
                remarks = defaultdiscount;
            }
            //if (remarks == "" || remarks == null)
            //{
            //    remarks = defaultdiscount;
            //}
            //else
            //{
            //    if (double.Parse(remarks) < 1)
            //    {
            //        remarks = (double.Parse(remarks) * 100).ToString();
            //    }
            //}
            StringBuilder sb = new StringBuilder();

            sb.Append("<tbody>");
            int    alreadyBought;
            string addbooknum;

            for (int i = 0; i < bookds.Tables[0].Rows.Count; i++)
            {
                addbooknum    = bookds.Tables[0].Rows[i]["bookNum"].ToString();
                alreadyBought = salemonbll.getBookNumberSumByBookNum(addbooknum, saleId);
                sb.Append("<tr class='first'><td>" + count + "</td>");
                sb.Append("<td>" + "<input type='text' class='isbn textareaISBN' value='" + bookds.Tables[0].Rows[i]["ISBN"].ToString() + "' onkeyup='this.value=this.value.replace(/[^\r\n0-9]/g,'');' /></td>");
                sb.Append("<td>" + bookds.Tables[0].Rows[i]["bookNum"].ToString() + "</td>");
                sb.Append("<td>" + bookds.Tables[0].Rows[i]["bookName"].ToString() + "</td>");
                sb.Append("<td>" + bookds.Tables[0].Rows[i]["price"].ToString() + "</td>");
                sb.Append("<td><input class='count textareaCount' type='number' value='" + defaultCopy.ToString() + "'/></td>");
                sb.Append("<td><input class='discount textareaDiscount' value='" + remarks + "' onkeyup='this.value=this.value.replace(/[^\r\n0-9]/g,'');' /></td>");
                sb.Append("<td>" + "" + "</td>");
                sb.Append("<td>" + alreadyBought + "</td></tr>");
            }
            sb.Append("</tbody>");
            Response.Write(sb.ToString());
            Response.End();
        }
Beispiel #4
0
        public void addsalemon(HttpContext context)
        {
            string        SaleHeadId  = context.Request["saleheadID"];
            string        saleId      = context.Request["saletaskID"];
            int           number      = Convert.ToInt32(context.Request["number"]);
            string        bookNum     = context.Request["bookNum"];
            SaleTaskBll   saletaskbll = new SaleTaskBll();
            BookBasicData book        = new BookBasicData();
            BookBasicBll  bookbll     = new BookBasicBll();

            if (teamtype == "team")
            {
                int     regionid    = saletaskbll.GetregionidBysaleid(saleId);
                DataSet stockbook   = stobll.SelectByBookNum(bookNum, regionid);
                int     allstockNum = 0;
                for (int h = 0; h < stockbook.Tables[0].Rows.Count; h++)
                {
                    allstockNum += Convert.ToInt32(stockbook.Tables[0].Rows[h]["stockNum"]);
                }
                if (number > allstockNum)
                {
                    context.Response.Write("库存数量不足,当前最大库存为:" + allstockNum);
                    context.Response.End();
                }
                else
                {
                    BookBasicBll Bookbll = new BookBasicBll();
                    book = Bookbll.SelectById(bookNum);
                    string   remarks = book.Remarks;
                    string   defaultdiscount;
                    string   bookISBN   = book.Isbn;
                    string   saleHeadId = SaleHeadId;
                    SaleTask task       = saletaskbll.selectById(saleId);
                    defaultdiscount = task.DefaultDiscount.ToString();
                    if (defaultdiscount == "-1")
                    {
                        if (double.Parse(remarks) < 1)
                        {
                            remarks = (double.Parse(remarks) * 100).ToString();
                        }
                    }
                    double disCount = double.Parse(remarks);
                    int    count    = salemonbll.SelectBySaleHeadId(saleHeadId);
                    int    saleIdmonomerId;
                    if (count == 0)
                    {
                        saleIdmonomerId = 1;
                        salemonbll.updateHeadstate(saleId, SaleHeadId, 1);
                    }
                    else
                    {
                        saleIdmonomerId = count + 1;
                    }
                    double      price      = Convert.ToInt32(book.Price);
                    double      totalPrice = price * number;
                    double      realPrice  = totalPrice * (disCount / 100);
                    DateTime    Time       = DateTime.Now.ToLocalTime();
                    SaleMonomer newSalemon = new SaleMonomer()
                    {
                        AlreadyBought   = 0,
                        SaleIdMonomerId = saleIdmonomerId,
                        BookNum         = bookNum,
                        ISBN1           = bookISBN,
                        SaleHeadId      = saleHeadId,
                        Number          = number,
                        UnitPrice       = price,
                        TotalPrice      = totalPrice,
                        RealPrice       = realPrice,
                        RealDiscount    = disCount,
                        Datetime        = Time,
                        SaleTaskId      = saleId
                    };

                    //for (int j = 0; j < stockbook.Tables[0].Rows.Count; j++)
                    //{
                    //    int stockNum = Convert.ToInt32(stockbook.Tables[0].Rows[j]["stockNum"]);
                    //    string goodsId = stockbook.Tables[0].Rows[j]["goodsShelvesId"].ToString();
                    //    if (number <= stockNum)
                    //    {
                    //        int stockcount = stockNum - number;
                    //        stobll.update(stockcount, goodsId, bookNum);

                    //    }
                    //    else
                    //    {
                    //        number = number - stockNum;
                    //        stobll.update(0, goodsId, bookNum);
                    //        if (number == 0)
                    //        {
                    //            break;
                    //        }
                    //    }
                    //}
                    Result insertres = salemonbll.addsale(regionid, newSalemon);
                    string op        = context.Request["op"];
                    if (insertres == Result.添加成功)
                    {
                        //更新单头
                        updateSalehead(context);

                        if (op == "change")
                        {
                            context.Response.Write("修改成功");
                            context.Response.End();
                        }
                        else
                        {
                            context.Response.Write("添加成功");
                            context.Response.End();
                        }
                    }
                    else
                    {
                        if (op == "change")
                        {
                            context.Response.Write("修改失败");
                            context.Response.End();
                        }
                        else
                        {
                            context.Response.Write("添加失败");
                            context.Response.End();
                        }
                    }
                }
            }
            else
            {
                BookBasicData bookData = bookbll.SelectById(bookNum);
                string        remarks  = bookData.Remarks;
                string        defaultdiscount;
                string        bookISBN = bookData.Isbn;
                SaleTask      task     = saletaskbll.selectById(saleId);
                defaultdiscount = task.DefaultDiscount.ToString();
                if (defaultdiscount == "-1")
                {
                    if (double.Parse(remarks) < 1)
                    {
                        remarks = (double.Parse(remarks) * 100).ToString();
                    }
                }
                //if (remarks == "" || remarks == null)
                //{
                //    remarks = defaultdiscount;
                //}
                else
                {
                    remarks = defaultdiscount;
                }
                double disCount = double.Parse(remarks);
                book = bookbll.SelectById(bookNum);
                string saleHeadId = SaleHeadId;
                int    saleIdmonomerId;
                int    count = salemonbll.SelectByPerSaleHeadId(saleHeadId);
                if (count == 0)
                {
                    saleIdmonomerId = 1;
                    salemonbll.updatePerHeadstate(saleId, SaleHeadId, 1);
                }
                else
                {
                    saleIdmonomerId = count + 1;
                }
                double      price      = Convert.ToDouble(book.Price);
                double      totalPrice = price * number;
                double      realPrice  = totalPrice * (disCount / 100);
                DateTime    Time       = DateTime.Now.ToLocalTime();
                SaleMonomer newSalemon = new SaleMonomer()
                {
                    AlreadyBought   = 0,
                    SaleIdMonomerId = saleIdmonomerId,
                    BookNum         = bookNum,
                    ISBN1           = bookISBN,
                    SaleHeadId      = saleHeadId,
                    Number          = number,
                    UnitPrice       = price,
                    TotalPrice      = totalPrice,
                    RealPrice       = realPrice,
                    RealDiscount    = disCount,
                    Datetime        = Time,
                    SaleTaskId      = saleId
                };
                Result res = salemonbll.perInsert(newSalemon);


                string op = context.Request["op"];
                if (res == Result.添加成功)
                {
                    //更新单头
                    updateSalehead(context);

                    if (op == "change")
                    {
                        context.Response.Write("修改成功");
                        context.Response.End();
                    }
                    else
                    {
                        context.Response.Write("添加成功");
                        context.Response.End();
                    }
                }
                else
                {
                    if (op == "change")
                    {
                        context.Response.Write("修改失败");
                        context.Response.End();
                    }
                    else
                    {
                        context.Response.Write("添加失败");
                        context.Response.End();
                    }
                }
            }
        }
Beispiel #5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            User user = (User)Session["user"];

            getIsbn();
            string op = Request["op"];

            if (op == "add")
            {
                string headId  = Request["headId"];
                string bookNum = Request["bookNum"].ToString();
                add(bookNum, headId, "one");
            }
            if (op == "newAdd")
            {
                string headId  = insertHead();
                string bookNum = Request["bookNum"].ToString();
                add(bookNum, headId, "one");
            }
            if (op == "delete")
            {
                long bookNum = Convert.ToInt64(Request["bookNum"]);
                bookNumList = (List <long>)Session["List"];
                int index = bookNumList.IndexOf(bookNum);
                bookNumList.RemoveAt(index);
                Session["List"] = bookNumList;
            }
            if (op == "scann")
            {
                scann();
            }
            if (op == "change")
            {
                change();
            }
            if (op == "del")
            {
                delete();
            }
            if (op == "discount")
            {
                Discount();
            }
            if (op == "stock")
            {
                string  headId = Request["headId"];
                DataSet dsEnd  = retailBll.GetRetail(headId);
                if (dsEnd == null)
                {
                    Response.Write("此单据不存在:|");
                    Response.End();
                }
                else
                {
                    int row = dsEnd.Tables[0].Rows.Count;
                    for (int i = 0; i < row; i++)
                    {
                        DataRow dr      = dsEnd.Tables[0].Rows[i];
                        string  bookNum = dr["bookNum"].ToString();
                        int     number  = Convert.ToInt32(dr["number"]);
                        DataSet dsStock = stockBll.SelectByBookNum(bookNum, user.ReginId.RegionId);
                        if (dsStock != null)
                        {
                            int rows = dsStock.Tables[0].Rows.Count;
                            if (rows == 0)
                            {
                                Response.Write("此书籍无库存:|" + dr["bookName"]);
                                Response.End();
                            }
                            else
                            {
                                int stockNum = 0, stockNums = 0;
                                for (int j = 0; j < rows; j++)
                                {
                                    stockNum  = Convert.ToInt32(dsStock.Tables[0].Rows[j]["stockNum"]);
                                    stockNums = stockNums + stockNum;
                                }
                                if (stockNums < number)
                                {
                                    Response.Write("此书籍库存不足:|" + dr["bookName"] + "|," + stockNums);
                                    Response.End();
                                }
                            }
                        }
                        else
                        {
                            Response.Write("此书籍无库存:|" + dr["bookName"]);
                            Response.End();
                        }
                    }
                }
            }
            if (op == "end")
            {
                String           strConn = ConfigurationManager.ConnectionStrings["sqlConn"].ConnectionString;
                MySqlConnection  sqlConn = new MySqlConnection(strConn);
                MySqlTransaction trans   = null;
                try
                {
                    if (sqlConn != null && sqlConn.State == ConnectionState.Closed)
                    {
                        sqlConn.Open();
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                trans = sqlConn.BeginTransaction();
                MySqlCommand cmd = sqlConn.CreateCommand();
                cmd.Transaction = trans;
                try
                {
                    string  headId  = Request["headId"];
                    string  payType = Request["payType"];
                    DataSet dsEnd   = retailBll.GetRetail(headId);
                    if (dsEnd != null && dsEnd.Tables[0].Rows.Count > 0)
                    {
                        int row = dsEnd.Tables[0].Rows.Count;

                        for (int i = 0; i < row; i++)
                        {
                            DataRow dr      = dsEnd.Tables[0].Rows[i];
                            string  bookNum = dr["bookNum"].ToString();
                            int     number  = Convert.ToInt32(dr["number"]);
                            count = number;
                            DataSet dsStock = stockBll.SelectByBookNum(bookNum, user.ReginId.RegionId);
                            if (dsStock != null && dsStock.Tables[0].Rows.Count > 0)
                            {
                                int rows = dsStock.Tables[0].Rows.Count;
                                for (int j = 0; j < rows; j++)
                                {
                                    number = count;
                                    int    stockNum = Convert.ToInt32(dsStock.Tables[0].Rows[j]["stockNum"]);
                                    string goodsId  = dsStock.Tables[0].Rows[j]["goodsShelvesId"].ToString();
                                    if (stockNum > number)
                                    {
                                        cmd.CommandText = "update T_Stock set stockNum=" + (stockNum - count) + " where goodsShelvesId=" + goodsId + " and bookNum='" + bookNum + "'";
                                        int kucun = cmd.ExecuteNonQuery();
                                        if (kucun <= 0)
                                        {
                                            trans.Rollback();
                                            Response.Write("更新失败:|");
                                        }
                                        else
                                        {
                                            break;
                                        }
                                    }
                                    else
                                    {
                                        count           = number - stockNum;
                                        cmd.CommandText = "update T_Stock set stockNum=0 where goodsShelvesId=" + goodsId + " and bookNum='" + bookNum + "'";
                                        int kucun = cmd.ExecuteNonQuery();
                                        if (kucun <= 0)
                                        {
                                            trans.Rollback();
                                            Response.Write("更新失败:|");
                                        }
                                        else if (count == 0)
                                        {
                                            break;
                                        }
                                    }
                                }
                            }
                            else
                            {
                                Response.Write("此书籍无库存:|" + dr["bookName"].ToString());
                            }
                        }
                        cmd.CommandText = "update T_RetailHead set state=1,userId=" + user.UserId + ",payment='" + payType + "' where retailHeadId='" + headId + "'";
                        int kucun2 = cmd.ExecuteNonQuery();
                        if (kucun2 <= 0)
                        {
                            trans.Rollback();
                            Response.Write("更新失败:|");
                        }
                        else
                        {
                            StringBuilder sb    = new StringBuilder();
                            DataSet       dsNew = retailBll.GetRetail(headId);
                            if (dsNew != null && dsNew.Tables[0].Rows.Count > 0)
                            {
                                int counts = dsNew.Tables[0].Rows.Count;
                                sb.Append("<tbody>");
                                for (int i = 0; i < counts; i++)
                                {
                                    DataRow dr = dsNew.Tables[0].Rows[i];
                                    sb.Append("<tr><td style='font-size:14px;'>" + dr["bookName"].ToString() + "</td>");
                                    sb.Append("<td>" + dr["number"].ToString() + "</td>");
                                    sb.Append("<td>" + dr["unitPrice"].ToString() + "</td></tr>");
                                }
                                sb.Append("</tbody>");
                                trans.Commit();
                                Response.Write("更新成功:|" + sb.ToString());
                            }
                            else
                            {
                                trans.Rollback();
                                Response.Write("更新失败:|");
                            }
                        }
                    }
                    else
                    {
                        Response.Write("此单据不存在:|");
                    }
                }catch (Exception ex)
                {
                    trans.Rollback();
                    Response.Write("更新失败:|");
                }
                finally
                {
                    sqlConn.Close();
                    Response.End();
                }
            }
        }
Beispiel #6
0
        protected void selectIsbn()
        {
            //货架
            GoodsShelvesBll goodsShelvesBll = new GoodsShelvesBll();
            User            user            = (User)Session["user"];
            int             regionId        = user.ReginId.RegionId;

            dsGoods = goodsShelvesBll.Select(regionId);

            string    action   = Request["action"];
            string    isbn     = Request["isbn"];
            DataTable monTable = new DataTable();
            DataRow   dr       = monTable.NewRow();

            if (action == "isbn")
            {
                long    monId  = Convert.ToInt64(Request["sid"]);
                DataSet dsBook = basicBll.SelectByIsbn(isbn);
                if (dsBook == null || dsBook.Tables[0].Rows.Count <= 0)
                {
                    Response.Write("ISBN不存在");
                    Response.End();
                }
                else
                {
                    int billCount = Convert.ToInt32(Request["billCount"]);

                    string bookName = dsBook.Tables[0].Rows[0]["bookName"].ToString();
                    string bookNum  = dsBook.Tables[0].Rows[0]["bookNum"].ToString();
                    string supplier = dsBook.Tables[0].Rows[0]["supplier"].ToString();
                    double uPrice   = Convert.ToDouble(dsBook.Tables[0].Rows[0]["price"]);
                    if (dsBook.Tables[0].Rows[0]["author"].ToString() == null || dsBook.Tables[0].Rows[0]["author"].ToString() == "")
                    {
                        discount = 100;
                    }
                    else
                    {
                        discount = Convert.ToDouble(dsBook.Tables[0].Rows[0]["author"]);
                        if (discount < 1)
                        {
                            discount = discount * 100;
                        }
                    }
                    double totalPrice = Convert.ToDouble((billCount * uPrice).ToString("0.00"));
                    double realPrice  = Convert.ToDouble((totalPrice * discount * 0.01).ToString("0.00"));

                    monTable.Columns.Add("ISBN", typeof(string));
                    monTable.Columns.Add("uPrice", typeof(double));
                    monTable.Columns.Add("bookName", typeof(string));
                    monTable.Columns.Add("bookNum", typeof(string));
                    monTable.Columns.Add("discount", typeof(double));
                    monTable.Columns.Add("monId", typeof(long));
                    monTable.Columns.Add("number", typeof(string));
                    monTable.Columns.Add("totalPrice", typeof(double));
                    monTable.Columns.Add("realPrice", typeof(double));
                    monTable.Columns.Add("singleHeadId", typeof(string));
                    monTable.Columns.Add("supplier", typeof(string));

                    dr["ISBN"]         = isbn;
                    dr["uPrice"]       = uPrice;
                    dr["bookName"]     = bookName;
                    dr["bookNum"]      = bookNum;
                    dr["discount"]     = discount;
                    dr["monId"]        = monId;
                    dr["number"]       = billCount;
                    dr["totalPrice"]   = totalPrice;
                    dr["realPrice"]    = realPrice;
                    dr["singleHeadId"] = singleHeadId;
                    dr["supplier"]     = supplier;
                    monTable.Rows.Add(dr);
                    int           count = dsBook.Tables[0].Rows.Count;
                    StringBuilder sb    = new StringBuilder();
                    if (count == 1)
                    {
                        for (int i = 0; i < monTable.Rows.Count; i++)
                        {
                            bookNumList = (List <string>)Session["List"];
                            foreach (string bookNums in bookNumList)
                            {
                                if (bookNums == monTable.Rows[i]["bookNum"].ToString())
                                {
                                    Response.Write("已添加过此图书");
                                    Response.End();
                                }
                            }
                            bookNumList.Add(monTable.Rows[i]["bookNum"].ToString());
                            Session["List"] = bookNumList;
                            sb.Append("<tr><td>" + monTable.Rows[i]["monId"] + "</td>");
                            sb.Append("<td><textarea class='isbn textareaISBN' row='1' maxlength='13'>" + monTable.Rows[i]["ISBN"] + "</textarea></td>");
                            sb.Append("<td style='display:none'>" + monTable.Rows[i]["bookNum"] + "</td>");
                            sb.Append("<td>" + monTable.Rows[i]["bookName"] + "</td>");
                            sb.Append("<td>" + monTable.Rows[i]["supplier"] + "</td>");
                            sb.Append("<td><textarea class='count textareaCount' row='1'>" + 0 + "</textarea></td>");
                            sb.Append("<td>" + monTable.Rows[i]["uPrice"] + "</td>");
                            sb.Append("<td><textarea class='discount textareaDiscount' row='1'>" + monTable.Rows[i]["discount"] + "</textarea></td>");
                            sb.Append("<td>" + monTable.Rows[i]["totalPrice"] + "</td>");
                            sb.Append("<td>" + monTable.Rows[i]["realPrice"] + "</td>");
                            sb.Append("<td><button class='btn btn-danger btn-sm'><i class='fa fa-trash'></i></button></td></tr>");
                        }
                        Response.Write(sb.ToString());
                        Response.End();
                    }
                    else
                    {
                        sb.Append("<tbody>");
                        for (int i = 0; i < dsBook.Tables[0].Rows.Count; i++)
                        {
                            sb.Append("<tr><td><div class='pretty inline much'><input type = 'radio' name='radio' value='" + dsBook.Tables[0].Rows[i]["bookNum"].ToString() + "'><label><i class='mdi mdi-check'></i></label></div></td>");
                            sb.Append("<td>" + dsBook.Tables[0].Rows[i]["bookNum"].ToString() + "</td>");
                            sb.Append("<td>" + dsBook.Tables[0].Rows[i]["ISBN"].ToString() + "</td>");
                            sb.Append("<td>" + dsBook.Tables[0].Rows[i]["bookName"].ToString() + "</td>");
                            sb.Append("<td>" + dsBook.Tables[0].Rows[i]["price"].ToString() + "</td>");
                            sb.Append("<td>" + dsBook.Tables[0].Rows[i]["supplier"].ToString() + "</td></tr>");
                        }
                        sb.Append("</tbody>");
                        Response.Write(sb.ToString());
                        Response.End();
                        //Response.Write("一号多书");
                        //Response.End();
                    }
                }
            }
            else if (action == "add")
            {
                long monId = Convert.ToInt64(Request["sid"]);
                monTable.Columns.Add("ISBN", typeof(string));
                monTable.Columns.Add("uPrice", typeof(double));
                monTable.Columns.Add("bookName", typeof(string));
                monTable.Columns.Add("bookNum", typeof(string));
                monTable.Columns.Add("discount", typeof(double));
                monTable.Columns.Add("monId", typeof(long));
                monTable.Columns.Add("number", typeof(string));
                monTable.Columns.Add("totalPrice", typeof(double));
                monTable.Columns.Add("realPrice", typeof(double));
                monTable.Columns.Add("singleHeadId", typeof(string));
                monTable.Columns.Add("supplier", typeof(string));

                string        bookNum       = Request["bookNum"].ToString();
                BookBasicData bookBasicData = basicBll.SelectById(bookNum);
                string        supplier      = bookBasicData.Publisher;
                string        bookName      = bookBasicData.BookName;
                string        publisher     = bookBasicData.Publisher;
                double        price         = bookBasicData.Price;
                string        _isbn         = bookBasicData.Isbn;
                string        discount      = bookBasicData.Author;
                if (discount == "" || discount == null)
                {
                    discount = "100";
                }

                bookNumList = (List <string>)Session["List"];
                foreach (string bookNums in bookNumList)
                {
                    if (bookNums == bookNum)
                    {
                        Response.Write("已添加过此图书");
                        Response.End();
                    }
                }

                dr["ISBN"]         = _isbn;
                dr["uPrice"]       = price;
                dr["bookName"]     = bookName;
                dr["bookNum"]      = bookNum;
                dr["discount"]     = discount;
                dr["monId"]        = monId;
                dr["number"]       = 0;
                dr["totalPrice"]   = 0;
                dr["realPrice"]    = 0;
                dr["singleHeadId"] = singleHeadId;
                dr["supplier"]     = supplier;
                monTable.Rows.Add(dr);
                for (int k = 0; k < monTable.Rows.Count; k++)
                {
                    StringBuilder sb = new StringBuilder();
                    for (int i = 0; i < monTable.Rows.Count; i++)
                    {
                        sb.Append("<tr><td>" + monTable.Rows[i]["monId"] + "</td>");
                        sb.Append("<td><textarea class='isbn textareaISBN' row='1' maxlength='13'>" + monTable.Rows[i]["ISBN"] + "</textarea></td>");
                        sb.Append("<td style='display:none'>" + monTable.Rows[i]["bookNum"] + "</td>");
                        sb.Append("<td>" + monTable.Rows[i]["bookName"] + "</td>");
                        sb.Append("<td>" + monTable.Rows[i]["supplier"] + "</td>");
                        sb.Append("<td><textarea class='count textareaCount' row='1'>" + monTable.Rows[i]["number"] + "</textarea></td>");
                        sb.Append("<td>" + monTable.Rows[i]["uPrice"] + "</td>");
                        sb.Append("<td><textarea class='discount textareaDiscount' row='1'>" + monTable.Rows[i]["discount"] + "</textarea></td>");
                        sb.Append("<td>" + monTable.Rows[i]["totalPrice"] + "</td>");
                        sb.Append("<td>" + monTable.Rows[i]["realPrice"] + "</td>");
                        sb.Append("<td><button class='btn btn-danger btn-sm'><i class='fa fa-trash'></i></button></td></tr>");
                        bookNumList.Add(bookNum);
                        Session["List"] = bookNumList;
                    }
                    Response.Write(sb.ToString());
                    Response.End();
                }
            }
            else if (action == "save")
            {
                string        json = Request["json"];
                DataTable     dataTable = jsonToDt(json);
                int           Count = dataTable.Rows.Count;
                Monomers      monomers = new Monomers();
                BookBasicData book = new BookBasicData();
                int           count = 0, counts = 0;
                double        total, allTotal = 0, real, allReal = 0;
                for (int i = 0; i < Count; i++)
                {
                    DataRow drow = dataTable.Rows[i];


                    string bookNum = drow["书号"].ToString();
                    count = Convert.ToInt32(drow["数量"]);
                    int     billCount = Convert.ToInt32(drow["数量"]);
                    string  goodsId   = "0";                                                      //货架ID
                    DataSet dsGoods   = stockBll.SelectByBookNum(bookNum, user.ReginId.RegionId); //出库组织库存量
                    int     rgId      = int.Parse(Session["jsRegionId"].ToString());              //接收组织ID
                    DataSet jsGoods   = stockBll.SelectByBookNum(bookNum, rgId);                  //接收组织库存量
                    for (int j = 0; j < dsGoods.Tables[0].Rows.Count; j++)
                    {
                        billCount = count;
                        int stockNum = Convert.ToInt32(dsGoods.Tables[0].Rows[j]["stockNum"]); //原库存量

                        goodsId = dsGoods.Tables[0].Rows[j]["goodsShelvesId"].ToString();      //获取货架ID
                        if (billCount <= stockNum)
                        {
                            int    a      = stockNum - billCount;
                            Result result = stockBll.update(a, goodsId, bookNum);
                            if (result == Result.更新失败)
                            {
                                Response.Write("添加失败");
                                Response.End();
                            }
                            //if (jsGoods.Tables[0].Rows.Count > 0)//判断库存中是否有数据
                            //{
                            //    int jsstockNum = Convert.ToInt32(jsGoods.Tables[0].Rows[0]["stockNum"]);//接收组织原库存量
                            //    int jsgoodsId = Convert.ToInt32(jsGoods.Tables[0].Rows[0]["goodsShelvesId"]);//接收组织库存Id
                            //    int jsNewStock = jsstockNum + billCount;//获取接收组织新的库存
                            //    result = stockBll.update(jsNewStock, jsgoodsId, bookNum);//更新入库库存
                            //    if (result == Result.更新失败)
                            //    {
                            //        Response.Write("更新失败");
                            //        Response.End();
                            //    }
                            //}
                            //else//没有数据时,直接添加
                            //{
                            //    //int jsgoodsId = Convert.ToInt32(jsGoods.Tables[0].Rows[0]["goodsShelvesId"]);//接收组织库存Id
                            //    int jsstockNum = billCount;//库存量
                            //    Region reg = new Region();
                            //    reg.RegionId = rgId;
                            //    DataSet gds = goodsShelvesBll.Select(rgId);
                            //    int gid = int.Parse(gds.Tables[0].Rows[0]["goodsShelvesId"].ToString());
                            //    GoodsShelves goods = new GoodsShelves();
                            //    goods.GoodsShelvesId = gid;
                            //    BookBasicData jsbook = new BookBasicData();
                            //    jsbook.BookNum = bookNum;
                            //    jsbook.Isbn = drow["ISBN号"].ToString();
                            //    Stock stock = new Stock();//库存实体
                            //    stock.BookNum = jsbook;
                            //    stock.ISBN = jsbook;
                            //    stock.RegionId = reg;
                            //    stock.StockNum = billCount;
                            //    stock.GoodsShelvesId = goods;
                            //    result = stockBll.insert(stock);//写入库存
                            //    if (result == Result.添加失败)
                            //    {
                            //        Response.Write("添加失败");
                            //        Response.End();
                            //    }
                            //}
                            Session["List"] = null;
                            break;
                        }
                        else
                        {
                            if (stockNum != 0)
                            {
                                Result result;
                                count = billCount - stockNum;
                                if (count > 0)
                                {
                                    result = stockBll.update(0, goodsId, bookNum);//记录存在且库存不为0
                                    if (result == Result.更新失败)
                                    {
                                        Response.Write("添加失败");
                                        Response.End();
                                    }
                                    count = billCount - stockNum;
                                    continue;
                                }
                                if (count == 0)
                                {
                                    Session["List"] = null;
                                    break;
                                }
                            }
                            //Response.Write("库存不足");
                            //Response.End();
                        }
                    }
                    //添加出库单体
                    book.Isbn           = drow["ISBN号"].ToString();
                    book.Price          = Convert.ToDouble(drow["单价"]);
                    book.BookNum        = drow["书号"].ToString();
                    monomers.Isbn       = book;
                    monomers.UPrice     = book;
                    monomers.BookNum    = book;
                    monomers.Discount   = Convert.ToDouble(drow["折扣"]);
                    monomers.MonomersId = Convert.ToInt32(drow["单据编号"]);
                    monomers.Number     = Convert.ToInt32(drow["数量"]);
                    monomers.TotalPrice = Convert.ToDouble(drow["码洋"]);
                    monomers.RealPrice  = Convert.ToDouble(drow["实洋"]);
                    monomers.ShelvesId  = goodsId;//货架ID
                    SingleHead single = new SingleHead();
                    single.SingleHeadId   = Session["singleHeadId"].ToString();
                    monomers.SingleHeadId = single;
                    count    = Convert.ToInt32(drow["数量"]);
                    counts   = counts + count;
                    total    = Convert.ToDouble(drow["码洋"]);
                    allTotal = allTotal + total;
                    real     = Convert.ToDouble(drow["实洋"]);
                    allReal  = allReal + real;
                    Result row = warehousingBll.insertMono(monomers);
                    if (row == Result.添加失败)
                    {
                        Response.Write("添加失败");
                        Response.End();
                    }



                    //book.Isbn = drow["ISBN号"].ToString();
                    //book.Price = Convert.ToDouble(drow["单价"]);
                    //book.BookNum = drow["书号"].ToString();
                    //monomers.Isbn = book;
                    //monomers.UPrice = book;
                    //monomers.BookNum = book;
                    //monomers.Discount = Convert.ToDouble(drow["折扣"]);
                    //monomers.MonomersId = Convert.ToInt32(drow["单据编号"]);
                    //monomers.Number = Convert.ToInt32(drow["商品数量"]);
                    //monomers.TotalPrice = Convert.ToDouble(drow["码洋"]);
                    //monomers.RealPrice = Convert.ToDouble(drow["实洋"]);
                    //SingleHead single = new SingleHead();
                    //single.SingleHeadId = Session["singleHeadId"].ToString();
                    //monomers.SingleHeadId = single;
                    //count = Convert.ToInt32(drow["商品数量"]);
                    //counts = counts + count;
                    //total = Convert.ToDouble(drow["码洋"]);
                    //allTotal = allTotal + total;
                    //real = Convert.ToDouble(drow["实洋"]);
                    //allReal = allReal + real;
                    //Result row = warehousingBll.insertMono(monomers);
                    //if (row == Result.添加失败)
                    //{
                    //    Response.Write("添加失败");
                    //    Response.End();
                    //}
                    //else if (row == Result.添加成功)
                    //{
                    //    string bookNum = drow["书号"].ToString();
                    //    int billCount = Convert.ToInt32(drow["商品数量"]);
                    //    DataSet dsGoods = stockBll.SelectByBookNum(bookNum, user.ReginId.RegionId);
                    //    for (int j = 0; j < dsGoods.Tables[0].Rows.Count; j++)
                    //    {
                    //        billCount = count;
                    //        int stockNum = Convert.ToInt32(dsGoods.Tables[0].Rows[j]["stockNum"]);
                    //        int goodsId = Convert.ToInt32(dsGoods.Tables[0].Rows[j]["goodsShelvesId"]);
                    //        if (billCount <= stockNum)
                    //        {
                    //            int a = stockNum - billCount;
                    //            Result result = stockBll.update(a, goodsId, bookNum);
                    //            if (result == Result.更新失败)
                    //            {
                    //                Response.Write("添加失败");
                    //                Response.End();
                    //            }
                    //        }
                    //        else
                    //        {
                    //            count = billCount - stockNum;
                    //            Result result = stockBll.update(0, goodsId, bookNum);
                    //            if (count == 0)
                    //            {
                    //                Session["List"] = null;
                    //                Response.Write("添加成功");
                    //                Response.End();
                    //            }
                    //            if (result == Result.更新失败)
                    //            {
                    //                Response.Write("添加失败");
                    //                Response.End();
                    //            }
                    //        }
                    //    }
                    //}
                }
                SingleHead singleHead = new SingleHead();
                singleHead.SingleHeadId  = Session["singleHeadId"].ToString();
                singleHead.AllBillCount  = counts;
                singleHead.AllRealPrice  = allReal;
                singleHead.AllTotalPrice = allTotal;
                Result head = warehousingBll.updateHead(singleHead);
                if (head == Result.更新成功)
                {
                    Response.Write("添加成功");
                    Response.End();
                }
                else
                {
                    Response.Write("添加失败");
                    Response.End();
                }
            }
            else if (action == "changeDiscount")
            {
                double discount = Convert.ToDouble(Request["discount"]);
                Result result   = warehousingBll.updateDiscount(discount);
                if (result == Result.更新成功)
                {
                    Response.Write("更新成功");
                    Response.End();
                }
                else
                {
                    Response.Write("更新失败");
                    Response.End();
                }
            }
            else if (action == "checkNum")
            {
                int     regId     = user.ReginId.RegionId;
                string  bookNum   = Request["bookNum"].ToString();
                int     billCount = Convert.ToInt32(Request["count"]);
                DataSet dsGoods   = stockBll.SelectByBookNum(bookNum, regId);
                int     j         = dsGoods.Tables[0].Rows.Count;
                if (dsGoods != null && dsGoods.Tables[0].Rows.Count > 0)
                {
                    int count = billCount;
                    int allCount = 0, allCounts = 0;
                    for (int i = 0; i < dsGoods.Tables[0].Rows.Count; i++)
                    {
                        allCount  = Convert.ToInt32(dsGoods.Tables[0].Rows[i]["stockNum"]);
                        allCounts = allCounts + allCount;
                    }
                    if (billCount > allCounts)
                    {
                        Response.Write("库存不足");
                        Response.End();
                    }
                }
                else
                {
                    Response.Write("库存不足");
                    Response.End();
                }
            }
        }
Beispiel #7
0
        /// <summary>
        /// 单个销售单结算
        /// </summary>
        public void Settlement(string saleTaskid, string saleHead, int scaler)
        {
            int           RegionId = user.ReginId.RegionId;
            DataTable     dt = saleheadbll.getSaleAllbyHeadIdAndStaskId(saleTaskid, saleHead);
            int           number = 0;
            string        bookNum, bookName, saleHeadId, saleTaskId, Isbn, Author, Supplier;
            int           saleIdMonomerId, rsMonomerId;
            int           allstockNum = 0;//总库存
            int           bhnum       = 0;
            BookBasicData book        = new BookBasicData();

            saleHeadId = dt.Rows[0]["saleHeadId"].ToString();
            saleTaskId = dt.Rows[0]["saleTaskId"].ToString();
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                bookNum = dt.Rows[i]["bookNum"].ToString();
                DataSet stockbook = stockbll.SelectByBookNum(bookNum, RegionId);
                allstockNum = 0;
                for (int h = 0; h < stockbook.Tables[0].Rows.Count; h++)
                {
                    allstockNum += Convert.ToInt32(stockbook.Tables[0].Rows[h]["stockNum"]);
                }
                number = int.Parse(dt.Rows[i]["number"].ToString());
                //库存小于数量时生成补货单
                if (allstockNum < number)
                {
                    book            = bookbll.SelectById(bookNum);
                    Isbn            = book.Isbn;
                    Supplier        = book.Publisher;
                    Author          = book.Author;
                    bookName        = dt.Rows[i]["bookName"].ToString();
                    saleIdMonomerId = int.Parse(dt.Rows[i]["saleIdMonomerId"].ToString());
                    bhnum           = number - allstockNum;

                    string rsHead = replenBll.getRsHeadID(saleTaskId);
                    //判断该销售任务是否已有补货记录,如果没有则新增
                    if (rsHead == "none")
                    {
                        Result res = addrsHead(saleTaskId);
                        if (res == Result.添加成功)
                        {
                            int count = replenBll.countMon(saleTaskId);
                            if (count > 0)
                            {
                                rsMonomerId = count + 1;
                            }
                            else
                            {
                                rsMonomerId = 1;
                            }
                            respMon.BookNum         = bookNum;
                            respMon.Count           = bhnum;
                            respMon.Supplier        = Supplier;
                            respMon.DateTime        = DateTime.Now.ToLocalTime();
                            respMon.Isbn            = Isbn;
                            respMon.SaleIdMonomerId = saleIdMonomerId;
                            respMon.SaleTaskId      = saleTaskId;
                            respMon.Author          = Author;
                            respMon.SaleHeadId      = saleHeadId;
                            respMon.RsMonomerID     = rsMonomerId;
                            Result addmonRes = replenBll.Insert(respMon);
                            if (addmonRes == Result.添加成功)
                            {
                                //更新补货单头
                                int rskinds  = replenBll.getkinds(saleTaskId);
                                int rsnumber = replenBll.getsBookNumberSum(saleTaskId);
                                replenishMentHead upRsHead = new replenishMentHead()
                                {
                                    SaleTaskId = saleTaskId,
                                    KindsNum   = rskinds,
                                    Number     = rsnumber,
                                };
                                replenBll.updateRsHead(upRsHead);
                                for (int t = 0; t < stockbook.Tables[0].Rows.Count; t++)
                                {
                                    string goodsID = stockbook.Tables[0].Rows[t]["goodsShelvesId"].ToString();
                                    stockbll.update(0, goodsID, bookNum);
                                }
                            }
                            else
                            {
                                Response.Write("添加失败");
                                Response.End();
                            }
                        }
                        else
                        {
                            Response.Write("添加单头失败");
                            Response.End();
                        }
                    }
                    else
                    {
                        int count = replenBll.countMon(saleTaskId);
                        if (count > 0)
                        {
                            rsMonomerId = count + 1;
                        }
                        else
                        {
                            rsMonomerId = 1;
                        }
                        respMon.BookNum         = bookNum;
                        respMon.Count           = bhnum;
                        respMon.Supplier        = Supplier;
                        respMon.DateTime        = DateTime.Now.ToLocalTime();
                        respMon.Isbn            = Isbn;
                        respMon.SaleIdMonomerId = saleIdMonomerId;
                        respMon.SaleTaskId      = saleTaskId;
                        respMon.Author          = Author;
                        respMon.SaleHeadId      = saleHeadId;
                        respMon.RsMonomerID     = rsMonomerId;
                        Result addmonRes = replenBll.Insert(respMon);
                        if (addmonRes == Result.添加成功)
                        {
                            //更新补货单头
                            int rskinds  = replenBll.getkinds(saleTaskId);
                            int rsnumber = replenBll.getsBookNumberSum(saleTaskId);
                            replenishMentHead upRsHead = new replenishMentHead()
                            {
                                SaleTaskId = saleTaskId,
                                KindsNum   = rskinds,
                                Number     = rsnumber,
                            };
                            replenBll.updateRsHead(upRsHead);
                            for (int t = 0; t < stockbook.Tables[0].Rows.Count; t++)
                            {
                                string goodsID = stockbook.Tables[0].Rows[t]["goodsShelvesId"].ToString();
                                stockbll.update(0, goodsID, bookNum);
                            }
                        }
                        else
                        {
                            Response.Write("添加补货单失败");
                            Response.End();
                        }
                    }
                }
                //库存足则直接减库存
                else
                {
                    for (int j = 0; j < stockbook.Tables[0].Rows.Count; j++)
                    {
                        int    stockNum = Convert.ToInt32(stockbook.Tables[0].Rows[j]["stockNum"]);
                        string goodsId  = stockbook.Tables[0].Rows[j]["goodsShelvesId"].ToString();
                        if (number <= stockNum)
                        {
                            int stockcount = stockNum - number;
                            stockbll.update(stockcount, goodsId, bookNum);
                            number = 0;
                        }
                        else
                        {
                            number = number - stockNum;
                            stockbll.update(0, goodsId, bookNum);
                        }
                    }
                }
            }
            if (scaler == 0)
            {
                //循环完后更新销售单的状态
                Result upHeadstate = salemonbll.updateHeadstate(saleTaskId, saleHeadId, 2);
                if (upHeadstate == Result.更新成功)
                {
                    Response.Write("添加成功");
                    Response.End();
                }
                else
                {
                    Response.Write("更新销售单头失败");
                    Response.End();
                }
            }
        }