Ejemplo n.º 1
0
 public List<IstockChangeQuery> GetIstockChangeList(IstockChangeQuery q, out int totalCount)
 {
     try
     {
         return _IstockDao.GetIstockChangeList(q,out totalCount);
     }
     catch (Exception ex)
     {
         throw new Exception("IstockChangeMgr-->GetIstockChangeList-->" + ex.Message, ex);
     }
 }
Ejemplo n.º 2
0
 public int IsUpd(Iinvd i,IstockChangeQuery stock=null)/*chaojie1124j添加,區分是庫存調整,還是收貨上架*/
 {
     try
     {
         IstockChange m = new IstockChange();
         m.item_id = i.item_id;
         if (stock.sc_trans_type == 1)//收貨上架
         {
             m.sc_trans_type = 1;//1.收貨上架,2表示庫調
             m.sc_istock_why = 3;//3.收貨上架,2.庫調,1.庫鎖
         }
         if (stock.sc_trans_type == 0)//庫存調整
         {
             m.sc_trans_type = 2;
             m.sc_istock_why = 2;//2表示庫調
             m.sc_trans_id = stock.sc_trans_id;
             m.sc_cd_id = stock.sc_cd_id;
             m.sc_note = stock.sc_note;
         }
         m.sc_num_old = GetProqtyByItemid(int.Parse(i.item_id.ToString()));
         m.sc_num_chg = i.prod_qty;
         m.sc_num_new = GetProqtyByItemid(int.Parse(i.item_id.ToString())) + i.prod_qty;
         m.sc_time = i.change_dtim;
         m.sc_user = i.create_user;
        
         _istockdao.insert(m);
         return _ivddao.IsUpd(i);
     }
     catch (Exception ex)
     {
         throw new Exception("IinvdMgr-->IsUpd-->" + ex.Message, ex);
     }
 }
Ejemplo n.º 3
0
        public bool SaveReceiptShelves(IpoNvdQuery invd_query,int pick_num)
        {
            try
            {
                //更新IpoNvd 表
                IpoNvdQuery query = _IpoNvdDao.GetIpoNvd(invd_query);

                query.modify_user = invd_query.modify_user;
                query.made_date = invd_query.made_date;
                query.cde_dt = invd_query.cde_dt;
                query.out_qty = query.out_qty - pick_num;
                query.com_qty = query.com_qty + pick_num;

                if (query.out_qty > 0)
                {
                    query.work_status = "SKP";
                }
                else if (query.out_qty == 0)
                {
                    query.work_status = "COM";
                }
                string UpdateIpoNvdSql = _IpoNvdDao.UpdateIpoNvdSql(query);

                //更新IpoNvdLog表
                IpoNvdLogQuery invdLog = new IpoNvdLogQuery();
                invdLog.work_id = query.work_id;
                invdLog.ipo_id = query.ipo_id;
                invdLog.item_id = (uint)query.item_id;
                invdLog.add_qty = pick_num;
                invdLog.cde_date = query.cde_dt;
                invdLog.made_date = query.made_date;
                invdLog.create_user = query.modify_user;

                string InsertIpoNvdLogSql = _IpoNvdDao.InsertIpoNvdLogSql(invdLog);
                //更新iinvd表
                IinvdQuery iinvd_query = new IinvdQuery();
                iinvd_query.made_date = query.made_date;
                iinvd_query.cde_dt = query.cde_dt;
                iinvd_query.prod_qty = pick_num;
                iinvd_query.ista_id = "A";
                iinvd_query.create_user = invd_query.modify_user;
                iinvd_query.change_user = invd_query.modify_user;
                iinvd_query.plas_loc_id = invd_query.loc_id;
                iinvd_query.item_id = query.item_id;
                string ista_id = string.Empty;
                string UpdateIinvdSql = _iinvdDao.UpdateIinvdSql(iinvd_query, out ista_id);
                
                //更新istockchange表
                IstockChangeQuery stock_query = new IstockChangeQuery();
                stock_query.sc_trans_id = ""; 
                stock_query.sc_cd_id = "";
                stock_query.item_id = query.item_id; 
                stock_query.sc_trans_type = 1; 
                stock_query.sc_num_chg = pick_num;
                stock_query.sc_time = DateTime.Now;
                stock_query.sc_user = invd_query.modify_user;
                stock_query.sc_note = "收貨上架";
                stock_query.sc_istock_why = 4;
                string insertIstockChangeSql = string.Empty;
                if (ista_id != "H")
                {
                    insertIstockChangeSql = istockchangeDao.insertIstockChangeSql(stock_query);
                }

                //執行SQL
                ArrayList arrList = new ArrayList();
                arrList.Add(UpdateIpoNvdSql);
                arrList.Add(InsertIpoNvdLogSql);
                arrList.Add(UpdateIinvdSql);
                if (ista_id != "H")
                {
                    arrList.Add(insertIstockChangeSql);
                }

                bool result = myDao.ExcuteSqls(arrList);
                return result;
            }
            catch (Exception ex)
            {
                throw new Exception("IpoNvdMgr-->SaveReceiptShelves-->" + ex.Message, ex);
            }
        }
Ejemplo n.º 4
0
        public int SaveIinvd(IinvdQuery query)
        {
            query.Replace4MySQL();
            int falg = 0;
            StringBuilder sql = new StringBuilder();
            try
            {
                if (query.pwy_dte_ctl == "Y")
                {
                    if (query.row_id != 0)
                    {
                        if (query.prod_qty == 0)
                        {
                            sql.AppendFormat("DELETE FROM iinvd WHERE row_id={0};", query.row_id);
                        }
                        else
                        {
                            sql.AppendFormat("UPDATE iinvd  SET prod_qty={0},change_user={2},change_dtim='{3}' WHERE row_id={1};", query.prod_qty, query.row_id, query.change_user, CommonFunction.DateTimeToString(query.change_dtim));
                        }
                    }
                    else
                    {
                        sql.AppendFormat("UPDATE iinvd  SET prod_qty=prod_qty+{0},change_user={2},change_dtim='{3}' WHERE plas_loc_id='{1}';", query.prod_qty, query.plas_loc_id, query.change_user, CommonFunction.DateTimeToString(query.change_dtim));
                    }
                    _access.execCommand(sql.ToString()); falg = 1;
                }
                else
                {
                    if (query.row_id != 0)
                    {
                        sql.Append("update iinvd set prod_qty=" + query.prod_qty + ",change_user="******",change_dtim='" + CommonFunction.DateTimeToString(query.change_dtim) + "' where row_id =" + query.row_id);
                        return _access.execCommand(sql.ToString());
                    }
                    else
                    {
                        sql.AppendFormat("SELECT row_id,prod_qty,made_date,cde_dt  FROM iinvd WHERE plas_loc_id='{0}' AND ista_id='A' ORDER BY made_date;", query.plas_loc_id);
                        DataTable table = _access.getDataTable(sql.ToString());
                        string row_id = "";
                        string row_idend = "";
                        int row_id_end_prod_pty = 0;
                        query.prod_qtys = GetProd_qty((int)query.item_id, query.plas_loc_id, "", "");
                        int prod_qty = query.prod_qtys - query.prod_qty;
                        int sc_num_chg=0;
                        int i = 0;
                        IialgQuery iialg = new IialgQuery();
                        IialgMgr _iialgMgr;
                        DateTime date = DateTime.Now;
                        int temp = 0;
                        iialg.loc_id = query.plas_loc_id;
                        iialg.item_id = query.item_id;
                        iialg.iarc_id = "循環盤點";
                        iialg.create_user = query.create_user;
                        iialg.type = 2;

                        for (i = 0; i < table.Rows.Count; i++)
                        {
                            if ((int)table.Rows[i][1] <= prod_qty || (int)table.Rows[i][1] == 0)
                            {
                                row_id += table.Rows[i][0] + ",";
                                prod_qty = prod_qty - (int)table.Rows[i][1];
                                sc_num_chg+=(int)table.Rows[i][1];

                                DateTime.TryParse(table.Rows[i][3].ToString(), out date);
                                iialg.cde_dt = date;
                                int.TryParse(table.Rows[i][1].ToString(), out temp);
                                iialg.qty_o = temp;//原始庫存數量
                                iialg.adj_qty = -temp;
                                iialg.create_dtim = DateTime.Now;
                                iialg.doc_no = "C" + DateTime.Now.ToString("yyyyMMddHHmmss");
                                if(DateTime.TryParse(table.Rows[i][3].ToString(), out date))
                                {
                                    iialg.made_dt = date;
                                }
                                _iialgMgr = new IialgMgr(mySqlConnectionString);
                                _iialgMgr.insertiialg(iialg);
                            }
                            else
                            {
                                row_idend = table.Rows[i][0].ToString();
                                row_id_end_prod_pty = prod_qty;
                                break;
                            }
                        }
                        if (row_id != "")
                        {
                            _access.execCommand("DELETE FROM iinvd WHERE row_id IN(" + row_id.TrimEnd(',') + ")");
                            falg = 1;
                        }
                        if (i != table.Rows.Count)
                        {
                            DateTime.TryParse(table.Rows[i][3].ToString(), out date);
                            iialg.cde_dt = date;
                            int.TryParse(table.Rows[i][1].ToString(), out temp);
                            iialg.qty_o = temp;//原始庫存數量
                            sc_num_chg += row_id_end_prod_pty;
                            iialg.adj_qty = -row_id_end_prod_pty;

                            iialg.create_dtim = DateTime.Now;
                            iialg.doc_no = "C" + DateTime.Now.ToString("yyyyMMddHHmmss");
                            if (DateTime.TryParse(table.Rows[i][3].ToString(), out date))
                            {
                                iialg.made_dt = date;
                            }
                            _iialgMgr = new IialgMgr(mySqlConnectionString);
                            _iialgMgr.insertiialg(iialg);
                            falg= _access.execCommand("update iinvd set prod_qty=prod_qty-" + row_id_end_prod_pty + ",change_user="******",change_dtim='" + CommonFunction.DateTimeToString(query.change_dtim) + "' where row_id =" + row_idend);
                        }

                        IstockChangeQuery istock = new IstockChangeQuery();
                        istock.sc_trans_id = iialg.doc_no;
                        istock.item_id = query.item_id;
                        istock.sc_istock_why = 2;
                        istock.sc_trans_type = 2;
                        istock.sc_num_old = query.prod_qtys;//原始庫存數量
                        istock.sc_num_chg = -sc_num_chg;//轉移數量
                        istock.sc_num_new = GetProd_qty((int)query.item_id, query.plas_loc_id, "", "");//結餘數量
                        istock.sc_time = DateTime.Now;
                        istock.sc_user = query.create_user;
                        istock.sc_note = "循環盤點";
                        IstockChangeMgr istockMgr = new IstockChangeMgr(mySqlConnectionString);
                        istockMgr.insert(istock);
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception("IinvdDao-->SaveIinvd-->" + ex.Message + sql.ToString(), ex);
            }
            return falg;
        }
Ejemplo n.º 5
0
        //料位帳卡列表頁
        public HttpResponseBase GetIstockChange()
        {
            string json = string.Empty;
            int totalCount = 0;
            try
            {
                List<IstockChangeQuery> list = new List<IstockChangeQuery>();
                IstockChangeQuery query = new IstockChangeQuery();
                query.Start = Convert.ToInt32(Request.Params["start"] ?? "0");
                query.Limit = Convert.ToInt32(Request.Params["limit"] ?? "25");
                if (!string.IsNullOrEmpty(Request.Params["oid"]))
                {
                    string id = Request.Params["oid"].ToString().Trim();
                   
                    System.Text.RegularExpressions.Regex rex = new System.Text.RegularExpressions.Regex(@"^\d{6}$");
                    
                    if (rex.IsMatch(id))
                    {
                        query.item_id = uint.Parse(id);
                    }
                    else
                    {
                        query.item_upc = Request.Params["oid"].ToString().Trim();//料位和條碼不再通過長度來判斷了
                    }
                }
                DateTime time;
                if (DateTime.TryParse(Request.Params["time_start"], out time))
                {
                    query.starttime = DateTime.Parse(time.ToString("yyyy-MM-dd HH:mm:ss"));
                }
                if (DateTime.TryParse(Request.Params["time_end"], out time))
                {
                    query.endtime = DateTime.Parse(time.ToString("yyyy-MM-dd HH:mm:ss"));
                }

                _istockMgr = new IstockChangeMgr(mySqlConnectionString);
                list = _istockMgr.GetIstockChangeList(query, out totalCount);
                IsoDateTimeConverter timeConverter = new IsoDateTimeConverter();
                //这里使用自定义日期格式,如果不使用的话,默认是ISO8601格式     
                timeConverter.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
                json = "{success:true,totalCount:" + totalCount + ",data:" + JsonConvert.SerializeObject(list, Formatting.Indented, timeConverter) + "}";//返回json數據
            }
            catch (Exception ex)
            {
                Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage();
                logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message);
                logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name;
                log.Error(logMessage);
                json = "{success:false,totalCount:0,data:[]}";
            }
            this.Response.Clear();
            this.Response.Write(json);
            this.Response.End();
            return this.Response;
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 匯出料位帳卡Excel
        /// </summary>
        public void IstockChangeExcelList()
        {
            try
            {
                int totalCount = 0;
                List<IstockChangeQuery> list = new List<IstockChangeQuery>();
                IstockChangeQuery query = new IstockChangeQuery();
                if (!string.IsNullOrEmpty(Request.Params["oid"]))
                {
                    string id = Request.Params["oid"].ToString().Trim();

                    System.Text.RegularExpressions.Regex rex = new System.Text.RegularExpressions.Regex(@"^\d{6}$");

                    if (rex.IsMatch(id))
                    {
                        query.item_id = uint.Parse(id);
                    }
                    else
                    {
                        query.item_upc = Request.Params["oid"].ToString().Trim();//料位和條碼不再通過長度來判斷了
                    }
                }
                if (!string.IsNullOrEmpty(Request.Params["start_time"]) && Request.Params["start_time"] != "1970-01-01")//
                {
                    query.starttime = DateTime.Parse(DateTime.Parse(Request.Params["start_time"]).ToString("yyyy-MM-dd HH:mm:ss"));
                }

                if (!string.IsNullOrEmpty(Request.Params["end_time"]) && Request.Params["end_time"] != "1970-01-01")
                {
                    query.endtime = DateTime.Parse(DateTime.Parse(Request.Params["end_time"]).ToString("yyyy-MM-dd HH:mm:ss"));

                }
                query.IsPage = false;
                _istockMgr = new IstockChangeMgr(mySqlConnectionString);
                list = _istockMgr.GetIstockChangeList(query, out totalCount);
                DataTable dtExcel = new DataTable();
                dtExcel.Columns.Add("交易類型", typeof(String));
                dtExcel.Columns.Add("商品細項編號", typeof(String));
                dtExcel.Columns.Add("商品名稱", typeof(String));
                dtExcel.Columns.Add("商品規格", typeof(String));
                dtExcel.Columns.Add("交易單號", typeof(String));
                dtExcel.Columns.Add("前置單號", typeof(String));
                dtExcel.Columns.Add("交易數量", typeof(String));
                dtExcel.Columns.Add("結餘數量", typeof(String));
                dtExcel.Columns.Add("創建日期", typeof(String));
                dtExcel.Columns.Add("管理員", typeof(String));
                dtExcel.Columns.Add("帳卡原因", typeof(String));
                dtExcel.Columns.Add("備註", typeof(String));
                for (int i = 0; i < list.Count; i++)
                {
                    DataRow dtrow = dtExcel.NewRow();
                    dtrow[0] = list[i].typename;
                    dtrow[1] = " " + list[i].item_id.ToString();
                    dtrow[2] = list[i].product_name;
                    dtrow[3] = list[i].specname;
                    dtrow[4] = " " + list[i].sc_trans_id;
                    dtrow[5] = " " + list[i].sc_cd_id.ToString();
                    dtrow[6] = list[i].sc_num_chg.ToString();
                    dtrow[7] = list[i].sc_num_new.ToString();
                    dtrow[8] = list[i].sc_time.ToString();
                    dtrow[9] = list[i].manager;
                    dtrow[10] = list[i].istockwhy;
                    dtrow[11] = list[i].sc_note;
                    dtExcel.Rows.Add(dtrow);
                }
                if (dtExcel.Rows.Count > 0)
                {
                    string fileName = "料位賬卡查詢_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
                    string title = list[0].item_id.ToString() + "_" + list[0].product_name + "_" + GetProductSpec(list[0].item_id.ToString()) + "_前期期末庫存:" + list[0].sc_num_new;
                    MemoryStream ms = ExcelHelperXhf.ExportDT(dtExcel, title);
                    Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName);
                    Response.BinaryWrite(ms.ToArray());
                }
                else
                {
                    Response.Write("匯出數據不存在");
                }
            }
            catch (Exception ex)
            {
                Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage();
                logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message);
                logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name;
                log.Error(logMessage);
            }
        }
Ejemplo n.º 7
0
        public HttpResponseBase InsertIinvd()
        {
            string jsonStr = String.Empty;
            Int64 aaa = 0;  //無用變數
            uint p = 0;  //無用變數
            try
            {
                Iinvd m = new Iinvd();
                IialgQuery ia = new IialgQuery();
                Iupc iu = new Iupc();
                ProductItem proitem = new ProductItem();
                Caller call = new Caller();
                IstockChangeQuery stock = new IstockChangeQuery();
                call = (System.Web.HttpContext.Current.Session["caller"] as Caller);
                string path = "";
                _iinvd = new IinvdMgr(mySqlConnectionString);
                _iagMgr = new IialgMgr(mySqlConnectionString);
                _IiupcMgr = new IupcMgr(mySqlConnectionString);
                #region 獲取數據往
                if (Int64.TryParse(Request.Params["item_id"].ToString(), out aaa))
                {
                    if (uint.TryParse(Request.Params["item_id"].ToString(), out p))
                    {
                        m.item_id = uint.Parse(Request.Params["item_id"].ToString());
                    }
                    if (Request.Params["item_id"].ToString().Length > 6)
                    {
                        m.item_id = uint.Parse(_iinvd.Getprodubybar(Request.Params["item_id"].ToString()).Rows[0]["item_id"].ToString());
                    }
                }
                else
                {
                    if (Request.Params["item_id"].ToString().Length > 6)
                    {
                        m.item_id = uint.Parse(_iinvd.Getprodubybar(Request.Params["item_id"].ToString()).Rows[0]["item_id"].ToString());
                    }
                }

                m.dc_id = 1;
                m.whse_id = 1;
                m.prod_qty = Int32.Parse(Request.Params["prod_qty"].ToString());//數量
                DateTime today = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd"));
                DateTime dtime;
                if (DateTime.TryParse(Request.Params["startTime"].ToString(), out dtime))
                {//用戶填寫創建時間算出有效日期
                    DateTime start = DateTime.Parse(Request.Params["startTime"].ToString());
                    m.made_date = start;
                    if (uint.TryParse(Request.Params["cde_dt_incr"].ToString(), out p))
                    {
                        m.cde_dt = start.AddDays(Int32.Parse(Request.Params["cde_dt_incr"].ToString()));
                    }
                    else
                    {
                        m.cde_dt = DateTime.Now;
                    }
                }
                else
                {
                    if (DateTime.TryParse(Request.Params["cde_dt"].ToString(), out dtime))
                    {//用戶填寫有效日期算出製造日期
                        m.cde_dt = DateTime.Parse(Request.Params["cde_dt"].ToString());//有效時間 
                        if (uint.TryParse(Request.Params["cde_dt_incr"].ToString(), out p))
                        {
                            m.made_date = m.cde_dt.AddDays(-Int32.Parse(Request.Params["cde_dt_incr"].ToString()));
                        }
                        else
                        {
                            m.made_date = today;
                        }
                    }
                    else
                    {
                        m.cde_dt = today;
                        m.made_date = today;
                    }
                }
                m.cde_dt = DateTime.Parse(m.cde_dt.ToShortDateString());
                m.made_date = DateTime.Parse(m.made_date.ToShortDateString());
                m.plas_loc_id = Request.Params["plas_loc_id"].ToString().ToUpper();//上架料位
                string loc_id = Request.Params["loc_id"].ToString().ToUpper();
                m.change_dtim = DateTime.Now;//編輯時間
                m.receipt_dtim = DateTime.Now;//收貨時間
                m.create_user = (Session["caller"] as Caller).user_id;
                #endregion
                #region 獲取數據添加打iialg
                ia.loc_id = m.plas_loc_id.ToString().ToUpper();
                ia.item_id = m.item_id;
                stock.sc_trans_type = 0;
                if (!string.IsNullOrEmpty(Request.Params["iarc_id"].ToString()))
                {
                    ia.iarc_id = Request.Params["iarc_id"].ToString();
                }
                else
                {
                    ia.iarc_id = "PC";
                    stock.sc_trans_type = 1;//收貨上架
                }
                //if (ia.iarc_id == "DR" || ia.iarc_id == "KR")
                //{
                //    type = 2;//RF理貨
                //}

                ia.create_dtim = DateTime.Now;
                ia.create_user = m.create_user;
                ia.doc_no = "P" + DateTime.Now.ToString("yyyyMMddHHmmss");
                if (!string.IsNullOrEmpty(Request.Params["doc_num"]))
                {
                    ia.doc_no = Request.Params["doc_num"];
                    stock.sc_trans_id = ia.doc_no;//交易單號
                }
                if (!string.IsNullOrEmpty(Request.Params["Po_num"]))
                {
                    ia.po_id = Request.Params["Po_num"];
                    stock.sc_cd_id = ia.po_id;//前置單號
                }
                if (!string.IsNullOrEmpty(Request.Params["remark"]))
                {
                    ia.remarks = Request.Params["remark"];
                    stock.sc_note = ia.remarks;//備註 
                }
                ia.made_dt = m.made_date;
                ia.cde_dt = m.cde_dt;
                #endregion

                #region 獲取店內條碼-=添加條碼

                if (!string.IsNullOrEmpty(Request.Params["vendor_id"].ToString()))
                {
                    iu.upc_id = CommonFunction.GetUpc(m.item_id.ToString(), Request.Params["vendor_id"].ToString(), m.cde_dt.ToString("yyMMdd"));
                }
                iu.item_id = m.item_id;
                iu.upc_type_flg = "2";//店內碼
                iu.create_user = m.create_user;
                string result = _IiupcMgr.IsExist(iu);//是否有重複的條碼
                if (result == "0")
                {
                    if (_IiupcMgr.Insert(iu) < 1)
                    {
                        jsonStr = "{success:true,msg:2}";
                    }
                }
                #endregion

                #region 新增/編輯
                #region 庫存調整的時候,商品庫存也要調整
                _proditemMgr = new ProductItemMgr(mySqlConnectionString);
                int item_stock = m.prod_qty;
                proitem.Item_Stock = item_stock;
                proitem.Item_Id = m.item_id;
                #endregion
                if (_iinvd.IsUpd(m, stock) > 0)
                {//編輯             
                    ia.qty_o = _iinvd.Selnum(m);
                    ia.adj_qty = m.prod_qty;

                    m.prod_qty = ia.qty_o + m.prod_qty;
                    if (m.prod_qty >= 0)
                    {
                        if (_iinvd.Upd(m) > 0)
                        {
                            if (Request.Params["iialg"].ToString() == "Y")
                            {// 
                                if (ia.iarc_id != "PC" && ia.iarc_id != "NE")//------------庫存調整的時候商品庫存也更改,收貨上架的時候不更改,RF理貨的時候也是不更改
                                {
                                    path = "/WareHouse/KutiaoAddorReduce";
                                    _proditemMgr.UpdateItemStock(proitem, path, call);
                                }
                                if (_iagMgr.insertiialg(ia) > 0)
                                {
                                    jsonStr = "{success:true,msg:0}";//更新成功
                                }
                                else
                                {
                                    jsonStr = "{success:false,msg:1}";//更新失敗
                                }
                            }
                            else
                            {
                                jsonStr = "{success:true,msg:0}";//更新成功
                            }
                        }
                        else
                        {
                            jsonStr = "{success:false,msg:1}";//更新失敗
                        }
                    }
                    else
                    {
                        jsonStr = "{success:false,msg:1}";//庫存為負數
                    }
                }
                else
                {//新增
                    m.ista_id = "A";
                    m.create_dtim = DateTime.Now;       //創建時間
                    if (_iinvd.Insert(m) > 0)
                    {
                        _IlocMgr = new IlocMgr(mySqlConnectionString);
                        Iloc loc = new BLL.gigade.Model.Iloc();
                        loc.change_user = int.Parse((System.Web.HttpContext.Current.Session["caller"] as Caller).user_id.ToString());
                        loc.change_dtim = DateTime.Now;
                        loc.loc_id = m.plas_loc_id.ToString().ToUpper();
                        if (loc_id.Trim() != m.plas_loc_id.Trim())//判斷如果是主料位不需要進行多餘的操作
                        {
                            if (_IlocMgr.SetIlocUsed(loc) > 0)
                            {
                                if (Request.Params["iialg"].ToString() == "Y")
                                {
                                    if (ia.iarc_id != "PC" && ia.iarc_id != "NE")//------------庫存調整的時候商品庫存也更改,收貨上架的時候不更改,RF理貨的時候也是不更改
                                    {
                                        path = "/WareHouse/KutiaoAddorReduce";
                                        _proditemMgr.UpdateItemStock(proitem, path, call);
                                    }
                                    ia.qty_o = 0;
                                    ia.adj_qty = m.prod_qty;
                                    if (_iagMgr.insertiialg(ia) > 0)
                                    {
                                        jsonStr = "{success:true,msg:0}";//更新成功
                                    }
                                    else
                                    {
                                        jsonStr = "{success:false,msg:1}";//更新失敗
                                    }
                                }
                                else
                                {
                                    jsonStr = "{success:true,msg:0}";//新增成功
                                }
                            }
                            else
                            {
                                jsonStr = "{success:false,msg:1}";//新增失敗
                            }
                        }
                        else
                        {
                            if (Request.Params["iialg"].ToString() == "Y")
                            {
                                if (ia.iarc_id != "PC" && ia.iarc_id != "NE")//------------庫存調整的時候商品庫存也更改,收貨上架的時候不更改,RF理貨的時候也是不更改
                                {
                                    path = "/WareHouse/KutiaoAddorReduce";
                                    _proditemMgr.UpdateItemStock(proitem, path, call);
                                }
                                ia.qty_o = 0;
                                ia.adj_qty = m.prod_qty;
                                if (_iagMgr.insertiialg(ia) > 0)
                                {
                                    jsonStr = "{success:true,msg:0}";//更新成功
                                }
                                else
                                {
                                    jsonStr = "{success:false,msg:1}";//更新失敗
                                }
                            }
                            else
                            {
                                jsonStr = "{success:true,msg:0}";//新增成功
                            }
                        }
                    }
                    else
                    {
                        jsonStr = "{success:false,msg:1}";
                    }
                }
                #endregion
            }
            catch (Exception ex)
            {
                Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage();
                logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message);
                logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name;
                log.Error(logMessage);
                jsonStr = "{success:false}";
            }
            this.Response.Clear();
            this.Response.Write(jsonStr.ToString());
            this.Response.End();
            return this.Response;
        }
Ejemplo n.º 8
0
        public JsonResult IinvdSave()
        {
            bool falg = false;
            string message ="保存失敗";
            try
            {
                string row_id = "";
                int prod_qty = 0;
                if (Request.Params["rowid"].Length > 5)
                {
                    row_id = Request.Params["rowid"].Substring(5);
                }
                string changeStore = Request.Params["changeStore"];
                int temp1=0;
                if (int.TryParse(changeStore, out temp1))
                {
                    if (temp1 < 0)
                    {
                        falg = false;
                        message = "庫存不能小於1";
                    }
                    else
                    {
                        _iinvd = new IinvdMgr(mySqlConnectionString);
                        IinvdQuery iinvd = new IinvdQuery();
                        iinvd.pwy_dte_ctl = Request.Params["pwy_dte_ctl"];
                        if (!string.IsNullOrEmpty(Request.Params["loc_id"]))
                        {
                            iinvd.plas_loc_id = Request.Params["loc_id"];
                        }
                        int id = 0;
                        if (int.TryParse(row_id, out id))
                        {
                            iinvd.row_id = id;
                        }
                        if (int.TryParse(changeStore, out id))
                        {
                            iinvd.prod_qty = id;
                        }
                        if (!string.IsNullOrEmpty(Request.Params["item_id"]))
                        {
                            if (int.TryParse(Request.Params["item_id"], out id))
                            {
                                iinvd.item_id = uint.Parse(Request.Params["item_id"]);
                            }
                        }
                       
                        iinvd.create_user = (Session["caller"] as Caller).user_id;
                        iinvd.create_dtim = DateTime.Now;
                        iinvd.change_user = iinvd.create_user;
                        iinvd.change_dtim = iinvd.create_dtim;
                        iinvd.prod_qtys = _iinvd.GetProd_qty(Convert.ToInt32(iinvd.item_id), iinvd.plas_loc_id, "", iinvd.row_id.ToString());

                        if (iinvd.pwy_dte_ctl == "Y")
                        {
                            List<DateTime> list = new List<DateTime>();
                            list=_iinvd.GetCde_dt(iinvd.row_id);
                            if(list.Count>0)
                            {
                                iinvd.cde_dt = list[0];
                                iinvd.made_date = list[1];
                            }
                        }
                        else
                        {
                            iinvd.made_date = iinvd.create_dtim;
                            iinvd.cde_dt = iinvd.create_dtim;
                        }
                        if (iinvd.row_id != 0)
                        {

                            if (iinvd.pwy_dte_ctl == "Y")
                            {
                                prod_qty = _iinvd.GetProd_qty((int)iinvd.item_id, iinvd.plas_loc_id, iinvd.pwy_dte_ctl, iinvd.row_id.ToString());
                                if (prod_qty == iinvd.prod_qty)
                                {
                                    falg = true;
                                    return Json(new { success = falg, message = message });
                                }
                                else if (_iinvd.SaveIinvd(iinvd) == 1)
                                {
                                    falg = true;
                                }
                            }
                            if (iinvd.pwy_dte_ctl == "N" || iinvd.pwy_dte_ctl == "")
                            {
                                iinvd.row_id = 0;
                                if (iinvd.prod_qtys < iinvd.prod_qty)
                                {
                                    iinvd.ista_id = "A";
                                    iinvd.prod_qty = iinvd.prod_qty - iinvd.prod_qtys;
                                    iinvd.cde_dt = DateTime.Now;
                                    int result=_iinvd.GetIinvdCount(iinvd);
                                    if (result>1)
                                    {
                                        prod_qty = result - 1;
                                        falg = true;
                                    }
                                    else
                                    {
                                        if (_iinvd.Insert(iinvd) == 1)
                                        {
                                            falg = true;
                                        }
                                    }
                                }
                                else if (iinvd.prod_qtys> iinvd.prod_qty)
                                {
                                    if (_iinvd.SaveIinvd(iinvd) == 1)
                                    {
                                        falg = true;
                                        return Json(new { success = falg, message = message });
                                    }
                                }
                                else if (iinvd.prod_qtys == iinvd.prod_qty)
                                {
                                    falg = true;
                                    return Json(new { success = falg, message = message });
                                }
                            }

                            IialgQuery iialg = new IialgQuery();

                            iialg.cde_dt = iinvd.cde_dt;
                            iialg.qty_o = prod_qty;//原始庫存數量
                            iialg.loc_id = iinvd.plas_loc_id;
                            iialg.item_id = iinvd.item_id;
                            iialg.iarc_id = "循環盤點";
                            if (iinvd.pwy_dte_ctl == "Y")
                            {
                                iialg.adj_qty = iinvd.prod_qty - prod_qty;
                            }
                            else
                            {
                                iialg.adj_qty = iinvd.prod_qty-prod_qty;//轉移數量
                            }
                            iialg.create_dtim = DateTime.Now;
                            iialg.create_user = iinvd.create_user;
                            iialg.type = 2;
                            iialg.doc_no = "C" + DateTime.Now.ToString("yyyyMMddHHmmss");
                            iialg.made_dt = iinvd.made_date;
                            iialg.cde_dt = iinvd.cde_dt;
                            _iialgMgr = new IialgMgr(mySqlConnectionString);
                            _iialgMgr.insertiialg(iialg);

                            IstockChangeQuery istock = new IstockChangeQuery();
                            istock.sc_trans_id = iialg.doc_no;
                            istock.item_id = iinvd.item_id;
                            istock.sc_istock_why = 2;
                            istock.sc_trans_type = 2;
                            istock.sc_num_old = iinvd.prod_qtys;//原始庫存數量
                            istock.sc_num_chg = iialg.adj_qty;//轉移數量
                            istock.sc_num_new = _iinvd.GetProd_qty((int)iinvd.item_id, iinvd.plas_loc_id,"","");//結餘數量
                            istock.sc_time = iinvd.create_dtim;
                            istock.sc_user = iinvd.create_user;
                            istock.sc_note = "循環盤點";
                            IstockChangeMgr istockMgr = new IstockChangeMgr(mySqlConnectionString);
                            istockMgr.insert(istock);
                        }
                        else
                        {
                            return Json(new { success = falg });
                        }
                    }
                }
                else {
                    message = "庫存不能小於1";
                }
            }
            catch (Exception ex)
            {
                Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage();
                logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message);
                logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name;
                log.Error(logMessage);
            }
            return Json(new { success = falg,message=message });
        }
Ejemplo n.º 9
0
        public HttpResponseBase SaveIinvd()
        {
            string json = "{success:false,message:'系統異常'}";
            try
            {
                int temp = 0;
                if (int.TryParse(Request.Params["prod_qty"], out temp))
                {
                    if (temp > 0)
                    {
                        IinvdQuery iinvd = new IinvdQuery();
                        if (!string.IsNullOrEmpty(Request.Params["loc_id"]))
                        {
                            iinvd.plas_loc_id = Request.Params["loc_id"];
                        }
                        if (!string.IsNullOrEmpty(Request.Params["item_id"]))
                        {
                            if (int.TryParse(Request.Params["item_id"], out temp))
                            {
                                iinvd.item_id = uint.Parse(Request.Params["item_id"]);
                            }
                        }

                        #region 判斷是否指定主料位
                        IlocQuery ilocquery = new IlocQuery();
                        _IiplasMgr = new IplasMgr(mySqlConnectionString);
                        IplasQuery iplasquery = new IplasQuery();
                        iplasquery.item_id = iinvd.item_id;
                        IIlocImplMgr ilocMgr = new IlocMgr(mySqlConnectionString);
                        IplasDao iplasdao = new IplasDao(mySqlConnectionString);
                        int total = 0;
                        ilocquery.loc_id = iinvd.plas_loc_id;
                        ilocquery.lcat_id = "0";
                        ilocquery.lsta_id = "";
                        ilocquery.IsPage = false;
                        List<IlocQuery> listiloc = ilocMgr.GetIocList(ilocquery, out total);
                        if (listiloc.Count > 0)
                        {
                            string lcat_id = listiloc.Count == 0 ? "" : listiloc[0].lcat_id;
                            if (lcat_id == "S")
                            {
                                string item_id = iplasdao.Getlocid(ilocquery.loc_id);
                                if (item_id == "")
                                {
                                    Iplas iplas = new Iplas();
                                    if (int.TryParse(Request.Params["item_id"], out temp))
                                    {
                                        iplas.item_id = uint.Parse(Request.Params["item_id"]);
                                        if (_IiplasMgr.IsTrue(iplas) == "false")
                                        {
                                            json = "{success:false,message:'不存在該商品編號'}";
                                            this.Response.Clear();
                                            this.Response.Write(json);
                                            this.Response.End();
                                            return this.Response;
                                        }
                                        if (_IiplasMgr.GetIplasid(iplasquery) > 0)
                                        {
                                            json = "{success:false,message:'此商品主料位非該料位'}";
                                            this.Response.Clear();
                                            this.Response.Write(json);
                                            this.Response.End();
                                            return this.Response;
                                        }
                                        Iloc iloc = new Iloc();
                                        iloc.loc_id = iinvd.plas_loc_id;
                                        if (_IiplasMgr.GetLocCount(iloc) <= 0)
                                        {
                                            json = "{success:false,message:'該料位已鎖定或被指派'}";
                                            this.Response.Clear();
                                            this.Response.Write(json);
                                            this.Response.End();
                                            return this.Response;
                                        }
                                        iplas.loc_id = iloc.loc_id;
                                        iplas.loc_stor_cse_cap = 100;
                                        iplas.create_user = (Session["caller"] as Caller).user_id;
                                        iplas.create_dtim = DateTime.Now;
                                        iplas.change_user = (Session["caller"] as Caller).user_id;
                                        iplas.change_dtim = DateTime.Now;
                                        _IiplasMgr.InsertIplas(iplas);
                                    }
                                }
                            }
                        }
                        #endregion
                        iinvd.create_user = (Session["caller"] as Caller).user_id;
                        iinvd.create_dtim = DateTime.Now;
                        iinvd.change_user = iinvd.create_user;
                        iinvd.change_dtim = iinvd.create_dtim;
                        iinvd.ista_id = "A";
                        if (!string.IsNullOrEmpty(Request.Params["loc_id"]))
                        {
                            iinvd.plas_loc_id = Request.Params["loc_id"];
                        }
                        int change_prod_qty = int.Parse(Request.Params["prod_qty"]);
                        iinvd.prod_qty = change_prod_qty;
                        if (!string.IsNullOrEmpty(Request.Params["st_qty"]))
                        {
                            if (int.TryParse(Request.Params["st_qty"], out temp))
                            {
                                iinvd.st_qty = int.Parse(Request.Params["st_qty"]);
                            }
                        }
                        if (!string.IsNullOrEmpty(Request.Params["item_id"]))
                        {
                            if (int.TryParse(Request.Params["item_id"], out temp))
                            {
                                iinvd.item_id = uint.Parse(Request.Params["item_id"]);
                            }
                        }
                        DateTime date = DateTime.Now;
                        if (DateTime.TryParse(Request.Params["datetimepicker1"], out date))
                        {
                            iinvd.made_date = date;
                        }
                        else
                        {
                            iinvd.made_date = DateTime.Now;
                        }
                        _iinvd = new IinvdMgr(mySqlConnectionString);
                        if (Request.Params["pwy_dte_ctl"] == "Y")
                        {
                            iinvd.pwy_dte_ctl = "Y";
                            IProductExtImplMgr productExt = new ProductExtMgr(mySqlConnectionString);
                            int Cde_dt_incr = productExt.GetCde_dt_incr((int)iinvd.item_id);
                            iinvd.cde_dt = date.AddDays(Cde_dt_incr);
                        }
                        else
                        {
                            iinvd.cde_dt = DateTime.Now;
                        }
                        iinvd.prod_qtys = _iinvd.GetProd_qty(Convert.ToInt32(iinvd.item_id), iinvd.plas_loc_id, "", iinvd.row_id.ToString());
                        IialgQuery iialg = new IialgQuery();
                        iialg.cde_dt = iinvd.cde_dt;
                        int prod_qty = 0;// _iinvd.GetProd_qty((int)iinvd.item_id, iinvd.plas_loc_id, "", "");
                        int row = _iinvd.GetIinvdCount(iinvd);
                        if (row > 1)
                        {
                            prod_qty = row - 1;
                            json = "{success:true}";
                        }
                        else
                        {
                            if (_iinvd.Insert(iinvd) == 1)
                            {
                                json = "{success:true}";
                            }
                        }
                        
                        iialg.qty_o = prod_qty;
                        iialg.loc_id = iinvd.plas_loc_id;
                        iialg.item_id = iinvd.item_id;
                        iialg.iarc_id = "循環盤點";
                        iialg.adj_qty = change_prod_qty;
                        iialg.create_dtim = DateTime.Now;
                        iialg.create_user = iinvd.create_user;
                        iialg.type = 2;
                        iialg.doc_no = "C" + DateTime.Now.ToString("yyyyMMddHHmmss");
                        iialg.made_dt = iinvd.made_date;
                        iialg.cde_dt = iinvd.cde_dt;
                        _iialgMgr = new IialgMgr(mySqlConnectionString);
                        _iialgMgr.insertiialg(iialg);

                        IstockChangeQuery istock = new IstockChangeQuery();
                        istock.sc_trans_id = iialg.doc_no;
                        istock.item_id = iinvd.item_id;
                        istock.sc_istock_why = 2;
                        istock.sc_trans_type = 2;
                        istock.sc_num_old = iinvd.prod_qtys;
                        istock.sc_num_chg = iialg.adj_qty;
                        istock.sc_num_new = _iinvd.GetProd_qty((int)iinvd.item_id, iinvd.plas_loc_id,"N","");
                        istock.sc_time = iinvd.create_dtim;
                        istock.sc_user = iinvd.create_user;
                        istock.sc_note = "循環盤點";
                        IstockChangeMgr istockMgr = new IstockChangeMgr(mySqlConnectionString);
                        istockMgr.insert(istock);
                    }
                    else
                    {
                        json = "{success:false,message:'庫存不能小於1'}";
                    }
                }
                else
                {                  
                    json = "{success:false,message:'庫存請輸入數字'}";
                }
            }
            catch (Exception ex)
            {
                Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage();
                logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message);
                logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name;
                log.Error(logMessage);
                json = "{success:false}";

            }
            this.Response.Clear();
            this.Response.Write(json);
            this.Response.End();
            return this.Response;
        }
Ejemplo n.º 10
0
 public List<IstockChangeQuery> GetIstockChangeList(IstockChangeQuery query, out int totalCount)
 {
     query.Replace4MySQL();
     StringBuilder sbStr= new StringBuilder();
     StringBuilder sbAll = new StringBuilder();
     StringBuilder sbJoin = new StringBuilder();
     StringBuilder sbWhr = new StringBuilder();
     StringBuilder sbPage = new StringBuilder();
     
     sbAll.Append("SELECT ic.item_id,ic.sc_trans_id,ic.sc_cd_id,(CASE WHEN ic.sc_trans_type=1 THEN '收貨上架' WHEN ic.sc_trans_type=2 THEN '庫存調整' WHEN ic.sc_trans_type=3 THEN 'RF理貨' when ic.sc_trans_type=4 then '初盤復盤'END) AS typename,(CASE WHEN ic.sc_istock_why=1 THEN '庫鎖' WHEN ic.sc_istock_why=2 THEN '庫調' WHEN ic.sc_istock_why=3 THEN '收貨上架' WHEN ic.sc_istock_why=4 THEN '理貨' else '' END) AS istockwhy,ic.sc_num_chg,ic.sc_num_new,ic.sc_time,ic.sc_note,p.product_name,mu.user_username AS manager ");
     sbAll.Append("  ,CONCAT(ps.spec_name,'-',ps2.spec_name)as specname ");
     sbJoin.Append(" from istock_change ic LEFT JOIN product_item pi ON ic.item_id=pi.item_id LEFT JOIN product p ON pi.product_id=p.product_id ");
     sbJoin.Append("LEFT JOIN manage_user mu ON ic.sc_user=mu.user_id left join product_spec ps on pi.spec_id_1=ps.spec_id left join product_spec ps2 on pi.spec_id_2=ps2.spec_id where 1=1 ");
     if (query.item_id != 0)
     {
         sbStr.AppendFormat("select item_id from product_item where item_id='{0}';", query.item_id);
         DataTable _dtresult = _accessMySql.getDataTable(sbStr.ToString());
         if (_dtresult.Rows.Count > 0)
         {
             sbWhr.AppendFormat(" and ic.item_id={0}", query.item_id);
         }
         else 
         {
             sbWhr.AppendFormat(" and ic.item_id =(select item_id from iupc where upc_id='{0}'limit 1 )", query.item_id); 
         }
     }
     if (query.item_upc != string.Empty)
     {
         sbStr.Clear();
         sbStr.AppendFormat("select item_id from product_item where item_id='{0}';", query.item_upc);
         DataTable _dtresult = _accessMySql.getDataTable(sbStr.ToString());
         if (_dtresult.Rows.Count > 0)
         {
             sbWhr.AppendFormat(" and ic.item_id={0}", query.item_upc);
         }
         else
         {
             sbWhr.AppendFormat(" and ic.item_id =(select item_id from iupc where upc_id='{0}' limit 1 )", query.item_upc); 
         }
         //sbWhr.AppendFormat(" and (ic.item_id='{0}' or  pi.item_id in (select item_id from iupc where upc_id='{0}' or item_id='{0}' )) ", query.item_upc);
     }
     if (query.starttime != DateTime.MinValue && query.endtime != DateTime.MinValue)
     {
         sbWhr.AppendFormat(" and ic.sc_time between '{0}' and '{1}'", Common.CommonFunction.DateTimeToString(query.starttime), Common.CommonFunction.DateTimeToString(query.endtime));
     }
     sbWhr.Append(" order by ic.sc_id desc ");
     if (query.IsPage)
     {
         sbPage.AppendFormat("LIMIT {0},{1};", query.Start, query.Limit);
     }
     try
     {
         DataTable dt = _accessMySql.getDataTable("select count(ic.sc_id)" + sbJoin.ToString() + sbWhr.ToString());
         totalCount = int.Parse(dt.Rows[0][0].ToString());
         return _accessMySql.getDataTableForObj<IstockChangeQuery>(sbAll.ToString() + sbJoin.ToString() + sbWhr.ToString() + sbPage.ToString());
     }
     catch (Exception ex)
     {
         throw new Exception("IstockChangeDao-->GetIstockChangeList-->" + ex.Message + sbAll.ToString() + sbJoin.ToString() + sbWhr.ToString() + sbPage.ToString(), ex);
     }
 }