public HttpResponseBase UpdateCbjobstaid()
        {
            int result = 0;
            int resulttwo = 0;
            string json = string.Empty;
            CbjobDetailQuery cbjobQuery = new CbjobDetailQuery();
            if (!string.IsNullOrEmpty(Request.Params["jobnumber"].Trim()))
            {
                cbjobQuery.cb_jobid = Request.Params["jobnumber"].Trim();//獲取工作編號
            }
            DateTime time = DateTime.MinValue;
            if (DateTime.TryParse(Request.Params["starttime"].ToString(), out time))
            {
                cbjobQuery.StartDate = time;
            }
            if (DateTime.TryParse(Request.Params["endtime"].ToString(), out time))
            {
                cbjobQuery.EndDate = time.AddDays(1);
            }
            cbjobQuery.create_datetime = DateTime.Now;       //修改時間
            cbjobQuery.create_user = (System.Web.HttpContext.Current.Session["caller"] as Caller).user_id;//修改用戶
            try
            {
                _cbjobMgr = new CbjobDetailMgr(mySqlConnectionString);
                _istockMgr = new IstockChangeMgr(mySqlConnectionString);
                resulttwo = _istockMgr.insertistocksome(cbjobQuery);
                result = _cbjobMgr.UpdateCbjobstaid(cbjobQuery);

                if (result > 0)
                {
                    if (resulttwo > 0)
                    {
                        json = "{success:true,msg:'" + result + "'}";//返回json數據
                    }
                    else
                    {
                        json = "{success:false,msg:'" + result + "'}";//返回json數據
                    }
                }
                else if (result == -1)
                {
                    json = "{success:true,msg:-1}";//返回json數據
                }
                else if (result == -2)
                {
                    json = "{success:true,msg:-2}";//返回json數據
                }
                else if (result == -3)
                {
                    json = "{success:true,msg:-3}";//返回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;
        }
Example #2
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;
        }
        public HttpResponseBase KutiaoAddorReduce()
        {
            string jsonStr = String.Empty;
            _iinvd = new IinvdMgr(mySqlConnectionString);
            _iagMgr = new IialgMgr(mySqlConnectionString);
            Iinvd invd = new Iinvd();
            iialg iag = new iialg();
            IstockChange Icg = new IstockChange();
            ProductItem Proitems = new ProductItem();
            int results = 0;
            try
            {
                invd.row_id = Convert.ToInt32(Request.Params["row_id"]);//行號碼
                int resultcount = 0;
                int kucuncount = Convert.ToInt32(Request.Params["benginnumber"]);//庫存數量
                int tiaozhengcount = Convert.ToInt32(Request.Params["changenumber"]);
                int kucuntype = Convert.ToInt32(Request.Params["kutiaotype"]);
                if (!string.IsNullOrEmpty(Request.Params["item_id"]))//商品細項編號
                {
                    Icg.item_id = Convert.ToUInt32(Request.Params["item_id"]);
                    Proitems.Item_Id = Icg.item_id;
                }
                int oldsumcount = _iinvd.GetProqtyByItemid(Convert.ToInt32(Icg.item_id));//總庫存
                string iarc_id = "";
                if (!string.IsNullOrEmpty(Request.Params["iarcid"]))
                {
                    iarc_id = Request.Params["iarcid"];//庫調原因
                }

                #region 庫存調整的時候,商品庫存也要調整
                _proditemMgr = new ProductItemMgr(mySqlConnectionString);
                int item_stock = 0;
                #endregion
                if (kucuntype == 1)//表示選擇了加
                {
                    resultcount = kucuncount + tiaozhengcount;
                    item_stock = tiaozhengcount;
                }
                else//表示選擇了減號
                {
                    resultcount = kucuncount - tiaozhengcount;
                    item_stock = -tiaozhengcount;
                }
                Proitems.Item_Stock = item_stock;
                invd.prod_qty = resultcount;//此時為更改后的庫存
                invd.change_dtim = DateTime.Now;
                invd.change_user = (System.Web.HttpContext.Current.Session["caller"] as Caller).user_id;
                Icg.sc_trans_type = 2;
                Icg.sc_num_old = oldsumcount;
                Icg.sc_time = DateTime.Now;
                Icg.sc_user = (System.Web.HttpContext.Current.Session["caller"] as Caller).user_id;

                if (!string.IsNullOrEmpty(Request.Params["po_id"]))
                {
                    Icg.sc_cd_id = Request.Params["po_id"];//採購單編號
                }
                if (!string.IsNullOrEmpty(Request.Params["doc_no"]))
                {
                    Icg.sc_trans_id = Request.Params["doc_no"];//庫調單號
                }
                if (!string.IsNullOrEmpty(Request.Params["remarks"]))
                {
                    Icg.sc_note = Request.Params["remarks"];//備註
                }
                _istockMgr = new IstockChangeMgr(mySqlConnectionString);

                int j = _iinvd.kucunTiaozheng(invd); //更改iloc表中的狀態並且在iialg表中插入數據
                string path = "/WareHouse/KutiaoAddorReduce";
                Caller call = new Caller();
                call = (System.Web.HttpContext.Current.Session["caller"] as Caller);
                int k = 0;
                if (iarc_id == "NE" || iarc_id == "RF")//庫存調整-不改動前台庫存
                {
                    k = 1;
                }
                else
                {
                    k = _proditemMgr.UpdateItemStock(Proitems, path, call);
                }
                int newsumcount = _iinvd.GetProqtyByItemid(Convert.ToInt32(Icg.item_id));//總庫存

                Icg.sc_num_chg = newsumcount - oldsumcount;
                Icg.sc_num_new = newsumcount;
                Icg.sc_istock_why = 2;
                if (oldsumcount != newsumcount)
                {
                    results = _istockMgr.insert(Icg);
                }
                else
                {
                    results = 1;
                }
                if (j > 0 && results > 0 && k > 0)
                {
                    jsonStr = "{success:true}";
                }
                else
                {
                    jsonStr = "{success:false}";
                }
            }
            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);
            this.Response.End();
            return this.Response;
        }
        //料位帳卡列表頁
        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;
        }
        /// <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);
            }
        }
        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 });
        }
        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;
        }