using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Drawing.Text; using System.Linq; using System.Reflection; using System.Runtime.InteropServices; using System.Text; using System.Windows.Forms; using RunUpdateExe; using System.Globalization; using System.Net; using System.Diagnostics; namespace InvoicingTool { public partial class ServerPartPurchase : Form { [DllImport("user32.dll")] public static extern bool ReleaseCapture(); [DllImport("user32.dll")] public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam); public const int WM_SYSCOMMAND = 0x0112; public const int SC_MOVE = 0xF010; public const int HTCAPTION = 0x0002; #region 修正输入法全角/半角的问题 //声明一些API函数 [DllImport("imm32.dll")] public static extern IntPtr ImmGetContext(IntPtr hwnd); [DllImport("imm32.dll")] public static extern bool ImmGetOpenStatus(IntPtr himc); [DllImport("imm32.dll")] public static extern bool ImmSetOpenStatus(IntPtr himc, bool b); [DllImport("imm32.dll")] public static extern bool ImmGetConversionStatus(IntPtr himc, ref int lpdw, ref int lpdw2); [DllImport("imm32.dll")] public static extern int ImmSimulateHotKey(IntPtr hwnd, int lngHotkey); private const int IME_CMODE_FULLSHAPE = 0x8; private const int IME_CHOTKEY_SHAPE_TOGGLE = 0x11; protected override void OnActivated(EventArgs e) { base.OnActivated(e); IntPtr HIme = ImmGetContext(this.Handle); //如果输入法处于打开状态 if (ImmGetOpenStatus(HIme)) { int iMode = 0; int iSentence = 0; //检索输入法信息 bool bSuccess = ImmGetConversionStatus(HIme, ref iMode, ref iSentence); if (bSuccess) { //如果是全角,转换成半角 if ((iMode & IME_CMODE_FULLSHAPE) > 0) ImmSimulateHotKey(this.Handle, IME_CHOTKEY_SHAPE_TOGGLE); } } } #endregion 修正输入法全角/半角的问题 WaiteFrom _WaitForm; //static string ServiceUrl = "http://192.168.12.117:8010/MobileServicePlatform/Handler/handler_ajax.ashx?action_type="; static string ServiceUrl = "http://183.129.232.100:8010/MobileServicePlatform/Handler/handler_ajax.ashx"; //string UploadSellerUrl = "http://192.168.10.110:8010/MobileServicePlatform/Handler/handler_ajax.ashx?action_type=UploadSeller"; string UploadSellerUrl = ServiceUrl + "?action_type=UploadSeller"; //string _PayServiceUrl = "http://192.168.11.192:7080/Service.asmx"; //string _PayServiceUrl = "http://" + _QualityHelper.dbip + ":" + _QualityHelper.serviceport + "/Service.asmx"; string _PayServiceUrl = "http://cloud.eshangtech.com:7080/Service.asmx"; string str_SellerCommodityById = ServiceUrl + "?action_type=DownLoadSeller&action_data=SellerCommodityById"; string str_GetGoodsBrand = ServiceUrl + "?action_type=GetGoodsBrand"; string str_GetScoreSetting = ServiceUrl + "?action_type=GetScoreSetting"; string str_GetAutoGoods = ServiceUrl + "?action_type=GetAutoGoods"; static QualityHelper _QualityHelper = new QualityHelper(); DownLoadHelper downLoadHelper = new DownLoadHelper(); string _ServerDate = ""; string _Score = ""; Timer _Roll = new Timer(); /// /// 是否退货模式 /// bool IsReturn = false; /// /// 价格类型 /// string PriceType { get; set; } = ""; /// /// 启动后首次下载 /// bool FirstDown { get; set; } /// /// 是否存在更新 /// bool DataUpdate { get; set; } /// /// 为了是主界面能够移动 /// /// /// private void MainForm_MouseDown(object sender, MouseEventArgs e) { ReleaseCapture(); SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0); } public ServerPartPurchase() { InitializeComponent(); PriceType = ""; } private void _Roll_Tick(object sender, EventArgs e) { lblSale.Left -= 1; if (lblSale.Right < 0) { lblSale.Left = panel4.Width; } } #region 加载事件 private void Purchase_Load(object sender, EventArgs e) { ShowWaiteForm(); _WaitForm.ShowMessage("高速驿网报货系统正在加载,请稍候......"); DataUpdate = false; string strDate = ""; string url = ""; string _strRolePriceName = ""; try { string _strSelect = "SELECT A.ADDTIME,B.ROLEPRICE_NAME " + " FROM T_SELLERCOMMODITY A,T_ROLEPRICE B " + " WHERE A.SELLERCOMMODITY_ID = B.SELLERCOMMODITY_ID AND " + " A.ADDTIME = ( SELECT MAX(A.ADDTIME) FROM T_SELLERCOMMODITY A,T_ROLEPRICE B " + " WHERE A.SELLERCOMMODITY_ID = B.SELLERCOMMODITY_ID ) "; DataTable _DataTable = DBHelper.QueryOdbc(_strSelect).Tables[0]; if (_DataTable.Rows.Count > 0) { strDate = _DataTable.Rows[0]["ADDTIME"].ToString(); _strRolePriceName = _DataTable.Rows[0]["ROLEPRICE_NAME"].ToString(); } } catch { strDate = "1970/01/01 00:00:00"; } if (strDate == "") { strDate = "1970/01/01 00:00:00"; } //获取当前门店收藏夹商品信息 url = str_GetAutoGoods + "&SERVERPARTSHOP_ID=" + _QualityHelper.serverpartshop_id; try { if (DataBaseUpdate()) { #region 收藏夹 -> 暂注释 //string _Result = downLoadHelper.GetAjaxData(url, true); //if (_Result != "") //{ // using (DataSet _DataSet = JsonHelper.JsonToDataSet(_Result)) // { // if (_DataSet != null) // { // for (int i = 0; i < _DataSet.Tables.Count; i++) // { // switch (_DataSet.Tables[i].TableName.ToLower()) // { // case "t_sellercommodity": // if (_DataSet.Tables[0].Rows.Count > 0) // { // DataTable _GoodsTable = DBHelper.QueryOdbc("select * from t_goodsinfo where 1=0").Tables[0]; // string _insertsql = downLoadHelper.DataBaseInsert(_DataSet.Tables[0], _GoodsTable, "t_goodsinfo"); // DBHelper.ExecuteSqlTran("delete from t_goodsinfo"); // DBHelper.ExecuteSqlTran(_insertsql); // } // else // { // DBHelper.ExecuteSqlTran("delete from t_goodsinfo"); // } // break; // } // } // } // else // { // DBHelper.ExecuteSqlTran("delete from t_goodsinfo"); // } // } //} //else //{ // DBHelper.ExecuteSqlTran("delete from t_goodsinfo"); //} #endregion } } catch { } //获取商品版本及促销信息 try { string _Result = downLoadHelper.GetAjaxData(str_GetScoreSetting + "&action_data=" + _QualityHelper.serverpartshop_id, true); if (_Result != "") { //_Result = _Result.Replace("[", "").Replace("]", ""); using (DataTable _DataTable = JsonHelper.ToDataTable(_Result)) { if (_DataTable.Rows.Count > 0) { _Score = _DataTable.Rows[0]["SCORE_NAME"].ToString(); _ServerDate = _DataTable.Rows[0]["ADDTIME"].ToString(); PriceType = _DataTable.Rows[0]["PRICE_TYPE"].ToString(); } } // JObject _JObject = JObject.Parse(_Result); //_ServerDate = _JObject["SCORESETTING"]["ADDTIME"].ToString(); //_Score = _JObject["SCORESETTING"]["SCORE_NAME"].ToString(); } else { _WaitForm.Close(); _WaitForm.Dispose(); if (MessageBox.Show("当前门店未开通报货权限,请联系高速商贸。", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, MessageBoxOptions.ServiceNotification) == DialogResult.OK) { Close(); return; } } if (String.IsNullOrWhiteSpace(PriceType)) { _WaitForm.Close(); _WaitForm.Dispose(); if (MessageBox.Show("当前门店未开通报货权限,请联系高速商贸。", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, MessageBoxOptions.ServiceNotification) == DialogResult.OK) { Close(); return; } } lblSale.Text = _Score; if (DateTime.Parse(_ServerDate) != DateTime.Parse(strDate) || _strRolePriceName != PriceType) { strDate = ""; DataUpdate = true; lblUpdate.Text = "商品库有更新,请点击【商品同步】"; } else { lblUpdate.Text = "当前商品库版本:" + DateTime.Parse(strDate).ToString("yyyyMMddHHmmss") + "(最新)"; } } catch { lblSale.Text = ""; lblUpdate.Text = "当前商品库版本:" + DateTime.Parse(strDate).ToString("yyyyMMddHHmmss") + "(最新)"; } #region //try //{ // string _Result = downLoadHelper.GetAjaxData(url); // if (_Result != "") // { // _Result = _Result.Replace("[", "").Replace("]", ""); // JObject _JObject = JObject.Parse(_Result); // _ServerDate = _JObject["GOODSSTOCK"]["ADDTIME"].ToString(); // if (DateTime.ParseExact(_ServerDate, "yyyyMMddHHmmss", CultureInfo.CurrentCulture) > DateTime.Parse(strDate)) // { // lblUpdate.Text = "商品库有更新,请点击【商品同步】"; // } // else // { // lblUpdate.Text = "当前商品库版本:" + DateTime.Parse(strDate).ToString("yyyyMMddHHmmss"); // } // } // #region 暂注释,待上方测试方法通过后删除 // //using (DataSet _DataSet = JsonHelper.JsonToDataSet(downLoadHelper.GetAjaxData(url))) // //{ // // if (_DataSet.Tables.Count > 0) // // { // // foreach (DataTable _DataTable in _DataSet.Tables) // // { // // if (_DataTable.TableName.ToLower() == "t_sellercommodity") // // { // // if (_DataTable.Rows.Count > 0) // // { // // DataRow[] _Row = _DataTable.Select("addtime = '" + _DataTable.Compute("max(addtime)", "").ToString() + "'"); // // if (_Row.Count() > 0) // // { // // _ServerDate = _Row[0]["addtime"].ToString(); // // if (DateTime.Parse(_Row[0]["addtime"].ToString()) > DateTime.Parse(strDate)) // // { // // lblUpdate.Text = "商品库有更新,请点击【商品同步】"; // // } // // else // // { // // lblUpdate.Text = "当前商品库版本:" + DateTime.Parse(strDate).ToString("yyyyMMddHHmmss"); // // } // // } // // } // // break; // // } // // } // // } // //} // #endregion //} //catch //{ // lblUpdate.Text = "当前商品库版本:" + DateTime.Parse(strDate).ToString("yyyyMMddHHmmss"); //} #endregion cobState.Items.Add("全部"); cobState.Items.Add("待提交"); cobState.Items.Add("已提交"); cobState.Items.Add("已关闭"); GetData(); getType(); DataTable _PurchaseTable = dgv_Purchase.DataSource as DataTable; if (_PurchaseTable.Select("purchase_state not in ('已提交','已关闭')").Count() > 0) { cobState.Text = "待提交"; } else { cobState.Text = "全部"; } cobState_DropDownClosed(null, null); getCommodity(); getFavorite(); txtBarcodeAdd.Focus(); _WaitForm.Close(); _WaitForm.Dispose(); } #endregion /// /// 显示我的收藏 /// private void getFavorite() { DataTable _DataTable = dgv_Commodity.DataSource as DataTable; if (_DataTable.Select("Favorite = 1").Count() > 0) { cobOneType.SelectedValue = 0; } cobOneType_DropDownClosed(null, null); } /// /// 绑定商品类别下拉列表 /// private void getType() { string sql = "SELECT TYPE_NAME,SELLERCOMMODITYTYPE_ID,TYPE_PID " + "FROM T_SELLERCOMMODITYTYPE WHERE TYPE_PID = -1 " + "AND SELLERCOMMODITYTYPE_ID IN ( " + "SElECT DISTINCT(TYPE_PID) FROM T_SELLERCOMMODITYTYPE " + "WHERE TYPE_PID <> -1 AND SELLERCOMMODITYTYPE_ID IN " + "(SELECT DISTINCT(SELLERCOMMODITYTYPE_ID) FROM T_SELLERCOMMODITY))"; DataTable dt = DBHelper.QueryOdbc(sql).Tables[0]; DataRow drr = dt.NewRow(); drr["TYPE_NAME"] = "我的收藏"; drr["SELLERCOMMODITYTYPE_ID"] = 0; dt.Rows.InsertAt(drr, 0); drr = dt.NewRow(); drr["TYPE_NAME"] = "全部"; drr["SELLERCOMMODITYTYPE_ID"] = -1; dt.Rows.InsertAt(drr, 0); cobOneType.DataSource = dt; cobOneType.DisplayMember = "TYPE_NAME"; cobOneType.ValueMember = "SELLERCOMMODITYTYPE_ID"; string sqls = "SElECT TYPE_NAME,SELLERCOMMODITYTYPE_ID,TYPE_PID " + "FROM T_SELLERCOMMODITYTYPE " + "WHERE TYPE_PID <> -1 AND SELLERCOMMODITYTYPE_ID IN " + "(SELECT DISTINCT(SELLERCOMMODITYTYPE_ID) FROM T_SELLERCOMMODITY)"; DataTable dts = DBHelper.QueryOdbc(sqls).Tables[0]; DataRow dr = dts.NewRow(); dr["TYPE_NAME"] = "全部"; dr["SELLERCOMMODITYTYPE_ID"] = -1; dts.Rows.InsertAt(dr, 0); cobTwoType.DataSource = dts; cobTwoType.DisplayMember = "TYPE_NAME"; cobTwoType.ValueMember = "SELLERCOMMODITYTYPE_ID"; } /// /// 绑定商品列表 /// private void getCommodity() { //string selectsql = "SELECT 1 AS ID,ISNULL(A.COMMODITY_BOXCOSTPRICE,0) AS COMMODITY_BOXCOSTPRICE," + // "B.COMMODITY_CODE,B.COMMODITY_NAME,B.COMMODITY_UNIT,A.SELLTAXPRICE," + // "A.COMMODITY_BOXSELLPRICE,B.COMMODITY_BARCODE,B.COMMODITY_RULE,A.SUPPLIER_ID,A.SELLERCOMMODITY_ID," + // "B.BOXENTRY_COUNT,B.SELLERCOMMODITYTYPE_ID,IFNULL(D.SELLERCOMMODITY_ID,0,1) AS FAVORITE,B.COMMODITY_DESC " + // "FROM T_ROLEPRICE A LEFT JOIN T_SELLERCOMMODITY B ON A.SELLERCOMMODITY_ID = B.SELLERCOMMODITY_ID " + // "LEFT JOIN T_GOODSINFO D ON A.SELLERCOMMODITY_ID = D.SELLERCOMMODITY_ID " + // "WHERE A.ROLEPRICE_NAME = '1000' AND A.COMMODITY_BOXSELLPRICE <> 0 AND A.COMMODITY_BOXSELLPRICE IS NOT NULL " + // "AND NOT EXISTS( SELECT 1 FROM T_ROLEPRICE C WHERE B.SELLERCOMMODITY_ID = C.SELLERCOMMODITY_ID AND A.ROLEPRICE_NAME = '1021')"; //DataTable dataTable = DBHelper.QueryOdbc(selectsql).Tables[0]; string sql = String.Format("SELECT ROW_NUMBER() OVER ( ORDER BY ROLEPRICE_ID) AS ID," + "ISNULL(A.COMMODITY_BOXCOSTPRICE,0) AS COMMODITY_BOXCOSTPRICE," + "B.COMMODITY_CODE,B.COMMODITY_NAME,B.COMMODITY_UNIT,A.SELLTAXPRICE," + "A.COMMODITY_BOXSELLPRICE,B.COMMODITY_BARCODE,B.COMMODITY_RULE,A.SUPPLIER_ID," + "A.SELLERCOMMODITY_ID,B.BOXENTRY_COUNT,B.SELLERCOMMODITYTYPE_ID," + "IFNULL(D.SELLERCOMMODITY_ID,0,1) AS FAVORITE,B.COMMODITY_DESC " + "FROM T_ROLEPRICE A LEFT JOIN T_SELLERCOMMODITY B ON A.SELLERCOMMODITY_ID = B.SELLERCOMMODITY_ID " + "LEFT JOIN T_GOODSINFO D ON A.SELLERCOMMODITY_ID = D.SELLERCOMMODITY_ID " + "WHERE A.ROLEPRICE_NAME = '{0}' AND A.COMMODITY_BOXSELLPRICE <> 0 AND " + "A.COMMODITY_BOXSELLPRICE IS NOT NULL AND EXISTS (SELECT 1 FROM T_COMMODITYEX C " + "WHERE B.COMMODITY_BARCODE = C.COMMODITY_BARCODE)", PriceType); DataTable _DataTable = DBHelper.QueryOdbc(sql).Tables[0]; //_DataTable.Merge(dataTable); //if (_DataTable.Rows.Count > 0) //{ // for (int i = 0; i < _DataTable.Rows.Count; i++) // { // _DataTable.Rows[i]["id"] = i + 1; // } //} dgv_Commodity.AutoGenerateColumns = false; dgv_Commodity.DataSource = _DataTable; } #region 关闭事件 private void btnColse_Click(object sender, EventArgs e) { Close(); } #endregion #region 添加采购单事件 private void btnPurchaseAdd_Click(object sender, EventArgs e) { string _StrSelectSql = "SELECT PURCHASE_CODE FROM T_PURCHASE " + "WHERE PURCHASE_CODE LIKE 'T%' AND PURCHASE_STATE = 0 AND " + "SERVERPARTSHOP_ID = " + _QualityHelper.serverpartshop_id; try { DataTable _PurchaseTable = DBHelper.QueryOdbc(_StrSelectSql).Tables[0]; if (_PurchaseTable.Rows.Count > 0 && IsReturn) { DialogResult _DialogResult = MessageBox.Show("当前存在未提交的退货单\n若新增报货单将导致退货单丢失,是否继续?", "系统提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, MessageBoxOptions.ServiceNotification); if (_DialogResult == DialogResult.Yes) { List _list = new List(); string _DeleteSql = "DELETE FROM T_PURCHASE " + "WHERE PURCHASE_CODE = '" + _PurchaseTable.Rows[0][0] + "'"; string _DeleteSqls = "DELETE FROM T_PURCHASEDETAIL " + "WHERE PURCHASEDETAIL_DESC = '" + _PurchaseTable.Rows[0][0] + "'"; _list.Add(_DeleteSql); _list.Add(_DeleteSqls); try { DBHelper.ExecuteSqlTran(_list); } catch (Exception ex) { MessageBox.Show("退货单删除失败,请重试!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); return; } } else { return; } } } catch { } IsReturn = false; btnPriceUpdate_Click(null, null); if (DataUpdate) { MessageBox.Show("商品库未更新,不能新增订单;\n请点击商品同步进行商品库信息更新!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); return; } try { string sqls = "SELECT 1 FROM T_PURCHASE WHERE PURCHASE_STATE = 0 AND SERVERPARTSHOP_ID = " + _QualityHelper.serverpartshop_id; DataTable dts = DBHelper.QueryOdbc(sqls).Tables[0]; //获取最大内码 if (dts.Rows.Count == 0) { decimal _MaxID = 0; try { _MaxID = decimal.Parse(DBHelper.QueryOdbc("SELECT MAX(PURCHASE_ID) " + "FROM T_PURCHASE").Tables[0].Rows[0][0].ToString()); } catch { _MaxID = 0; } //_MaxID + 1 Random ra = new Random(Guid.NewGuid().GetHashCode()); string PurchaseCode = DateTime.Now.ToString("yy") + _QualityHelper.shopcode + TimeHelper.ConvertDataTimeLong(DateTime.Now).ToString() + ra.Next(1, 100).ToString().PadLeft(2, '0'); string sql = "INSERT INTO T_PURCHASE (PURCHASE_ID,PURCHASE_CODE,SERVERPARTSHOP_ID," + "PURCHASE_PERSON,PURCHASE_DATE,RESERVE_DATE,PURCHASE_TYPE,PURCHASE_STATE) " + "VALUES('" + (_MaxID + 1) + "','" + PurchaseCode + "','" + _QualityHelper.serverpartshop_id + "','" + _QualityHelper.shopname + "',DATETIME('" + DateTime.Now.ToString() + "'),DATETIME('" + DateTime.Now.ToString() + "'),'1000','0')"; DBHelper.ExecuteSqlTran(sql); if (dgv_Purchase.Rows.Count > 0) { DialogResult _DialogResult = MessageBox.Show("报货单添加成功,是否添加已选订单商品信息?", "系统提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, MessageBoxOptions.ServiceNotification); if (_DialogResult == DialogResult.Yes) { //string _SelectSql = "SELECT COMMODITY_BARCODE FROM T_PURCHASEDETAIL " + // "WHERE PURCHASEDETAIL_DESC IN (SELECT TOP 1 PURCHASE_CODE " + // "FROM T_PURCHASE WHERE PURCHASE_STATE <> 0 ORDER BY RESERVE_DATE DESC)"; ShowWaiteForm(); _WaitForm.ShowMessage("正在添加采购商品..."); string _SelectSql = "SELECT COMMODITY_BARCODE FROM T_PURCHASEDETAIL " + "WHERE PURCHASEDETAIL_DESC IN ('" + dgv_Purchase.CurrentRow.Cells["purchase_code"].EditedFormattedValue.ToString() + "')"; using (DataTable _DataTable = DBHelper.QueryOdbc(_SelectSql).Tables[0]) { for (int i = 0; i < _DataTable.Rows.Count; i++) { DetailAdd(_DataTable.Rows[i]["COMMODITY_BARCODE"].ToString(), PurchaseCode, IsReturn); } } _WaitForm.Close(); _WaitForm.Dispose(); } } GetData(); cobState.Text = "待提交"; cobState_DropDownClosed(null, null); } else { MessageBox.Show("已存在正在填写的报货单!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.ServiceNotification); } } catch (Exception ex) { } } #endregion #region 采购单列表点击事件 private void dgv_Purchase_CellClick(object sender, DataGridViewCellEventArgs e) { if (dgv_Purchase.Rows.Count > 0) { string strColumnName = dgv_Purchase.Columns[e.ColumnIndex].Name; string _state = dgv_Purchase.CurrentRow.Cells["purchase_state"].EditedFormattedValue.ToString(); string _PurchaseCode = dgv_Purchase.CurrentRow.Cells["purchase_code"].EditedFormattedValue.ToString(); switch (strColumnName) { case "PurchaseChecked": if (_state == "填写中") { if ((bool)dgv_Purchase.CurrentRow.Cells[e.ColumnIndex].EditedFormattedValue) { dgv_Purchase.CurrentRow.Cells[e.ColumnIndex].Value = false; } else { dgv_Purchase.CurrentRow.Cells[e.ColumnIndex].Value = true; } } break; case "purchase_state": if (_state == "待提交") { try { OutTimeOrder(); if (DBHelper.QueryOdbc("SELECT 1 FROM T_PURCHASE WHERE PURCHASE_CODE = '" + _PurchaseCode + "' AND PURCHASE_STATE = 1").Tables[0].Rows.Count > 0) { string _SelectSql = "SELECT PURCHASEPAY_TYPE,PURCHASEPAY_CODE,PURCHASEPAY_AMOUNT," + "PURCHASEPAY_BALANCE,PURCHASEPAY_PAYMENT,ORDER_RESULT,ORDER_PAYURL,TRADE_NUM " + "FROM T_PURCHASE_PAYCHECK WHERE PURCHASEPAY_CODE = (SELECT PURCHASE_DESC " + "FROM T_PURCHASE WHERE PURCHASE_CODE = '" + _PurchaseCode + "')"; try { using (DataTable _DataTable = DBHelper.QueryOdbc(_SelectSql).Tables[0]) { if (_DataTable.Rows.Count > 0) { string _OrderCode = _DataTable.Rows[0]["PURCHASEPAY_CODE"].ToString(); string _OrderAmount = decimal.Parse(_DataTable.Rows[0]["PURCHASEPAY_AMOUNT"].ToString()).ToString("F2"); string _OrderBalance = decimal.Parse(_DataTable.Rows[0]["PURCHASEPAY_BALANCE"].ToString()).ToString("F2"); string _OrderPrice = decimal.Parse(_DataTable.Rows[0]["PURCHASEPAY_PAYMENT"].ToString()).ToString("F2"); string _OrderResult = _DataTable.Rows[0]["ORDER_RESULT"].ToString(); string _PayUrl = _DataTable.Rows[0]["ORDER_PAYURL"].ToString(); string _TradeNum = _DataTable.Rows[0]["TRADE_NUM"].ToString(); string _PayType = _DataTable.Rows[0]["PURCHASEPAY_TYPE"].ToString(); ScanPay _ScanPay = new ScanPay(_OrderCode, _OrderAmount, _OrderBalance, _OrderPrice); if (_ScanPay.ShowDialog() == DialogResult.OK) { string _UpdateSql = "UPDATE T_PURCHASE SET PURCHASE_STATE = 9 WHERE PURCHASE_DESC IN ('" + _OrderCode + "')"; try { DBHelper.ExecuteSqlTran(_UpdateSql); } catch (Exception ex) { } dgv_Purchase.CurrentRow.Cells["purchase_state"].Value = "已提交"; } else { OutTimeOrder(); try { if (DBHelper.QueryOdbc("SELECT PURCHASE_STATE FROM T_PURCHASE WHERE PURCHASE_DESC IN ('" + _OrderCode + "')").Tables[0].Rows[0]["PURCHASE_STATE"].ToString() == "9000") { dgv_Purchase.CurrentRow.Cells["purchase_state"].Value = "已关闭"; } } catch (Exception ex) { } } #region 直接支付 //if (_OrderResult == "100") //{ // ScanPay _ScanPay = new ScanPay(_OrderCode, _OrderAmount, _OrderBalance, _OrderPrice, _PayUrl, _TradeNum, _PayType); // if(_ScanPay.ShowDialog()==DialogResult.OK) // { // string _UpdateSql = "update t_purchase set purchase_state = 9 where purchase_desc in ('" + _OrderCode + "')"; // try // { // DBHelper.ExecuteSqlTran(_UpdateSql); // } // catch (Exception ex) // { // } // } //} //else //{ // //PaymentMenu _PaymentMenu = new PaymentMenu(); // //if (_PaymentMenu.ShowDialog() == DialogResult.OK) // //{ // string[] strargs = { _OrderCode, _OrderPrice, _PayType }; // string _Result = WSHelper.InvokeWebService(_PayServiceUrl, "createpay_customerscan", strargs).ToString(); // if (_Result != "") // { // // { "trade_no":"","trade_num":"OA139815067412867988","result_code":"101","result_desc":":(未支付)"} // JObject _JObject = JObject.Parse(_Result); // string trade_no = _JObject["trade_no"].ToString(); // string trade_num = _JObject["trade_num"].ToString(); // string result_code = _JObject["result_code"].ToString(); // string result_desc = _JObject["result_desc"].ToString(); // if (result_code == "100") // { // string updatesql = "update t_purchase_paycheck set purchasepay_type='" + _PayType + // "',order_result = '" + result_code + "',order_payurl = '" + result_desc + // "',trade_num = '" + trade_num + "' where purchasepay_code = '" + _OrderCode + "'"; // try // { // DBHelper.ExecuteSqlTran(updatesql); // } // catch (Exception ex) // { } // ScanPay scanAudit = new ScanPay(_OrderCode, _OrderAmount, _OrderBalance, _OrderPrice, result_desc, trade_num, _PayType);//支付宝:ALIPAY;微信:WECHAT // if (scanAudit.ShowDialog() == DialogResult.OK) // { // updatesql = "update t_purchase set purchase_state = 9 where purchase_code in (" + purchase_code + ")"; // try // { // DBHelper.ExecuteSqlTran(updatesql); // } // catch (Exception ex) // { // } // } // } // else // { // lblMess.Text = "提示:" + result_desc; // } // } // //} //} #endregion } } } catch (Exception ex) { throw new Exception(ex.Message); } } else { lblMess.Text = "当前订单付款超时已关闭"; dgv_Purchase.CurrentRow.Cells["purchase_state"].Value = "已关闭"; } } catch (Exception ex) { } GetData(); DataTable _DataSource = dgv_Purchase.DataSource as DataTable; if (_DataSource.Select("purchase_state not in ('已提交','已关闭')").Count() == 0) { cobState.Text = "全部"; } cobState_DropDownClosed(null, null); if (dgv_Purchase.Rows.Count <= 0) { dgv_Detail.DataSource = null; dgv_Detail.Rows.Clear(); } } break; } } } private void dgv_Purchase_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (dgv_Purchase.Rows.Count > 0) { string strColumnName = dgv_Purchase.Columns[e.ColumnIndex].Name; string _state = dgv_Purchase.CurrentRow.Cells["purchase_state"].Value.ToString(); string _PurchaseCode = dgv_Purchase.CurrentRow.Cells["purchase_code"].Value.ToString(); switch (strColumnName) { case "Delete": //if (_state == "填写中") //{ if (MessageBox.Show("确认删除该报货单吗?\n 注:单据删除后将不可恢复", "系统提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2, MessageBoxOptions.ServiceNotification) == DialogResult.Yes) { List _List = new List(); if (_state == "已提交") { //已提交订单不直接删除 string sql = "update t_purchase set purchase_state = 9999 where purchase_code = '" + _PurchaseCode + "'"; _List.Add(sql); } else { string sql = "delete t_purchase where purchase_code = '" + _PurchaseCode + "'"; _List.Add(sql); string sqls = "delete t_purchasedetail where purchasedetail_desc = '" + _PurchaseCode + "'"; _List.Add(sqls); } DBHelper.ExecuteSqlTran(_List); GetData(); DataTable _DataTable = dgv_Purchase.DataSource as DataTable; if (_DataTable.Select("purchase_state not in ('已提交','已关闭')").Count() == 0) { cobState.Text = "全部"; } cobState_DropDownClosed(null, null); if (dgv_Purchase.Rows.Count <= 0) { dgv_Detail.DataSource = null; dgv_Detail.Rows.Clear(); } } //} //else //{ // lblMess.Text = "提示:只能删除未提交的报货单。"; //} break; } } } #endregion #region 审核事件(暂不使用) private void btnSave_Click(object sender, EventArgs e) { //判断是否有状态为0的业务 //string sql = "select purchase_code from t_purchase where purchase_state = 0"; //DataTable dt = DBHelper.QueryOdbc(sql).Tables[0]; //if (dt.Rows.Count > 0) //{ // string _Strsql = "select purchasedetail_id from t_purchasedetail where purchasedetail_desc = " + dt.Rows[0][0].ToString() + ""; // DataTable dts = DBHelper.QueryOdbc(_Strsql).Tables[0]; // if (dts.Rows.Count > 0) // { // if (MessageBox.Show("是否确认审核正在办理的业务!", "系统提示", MessageBoxButtons.YesNo, // MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes) // { // string sqls = "update t_purchase set purchase_state=1 where purchase_code='" + dt.Rows[0][0].ToString() + "'"; // DBHelper.ExecuteSqlTran(sqls); // MessageBox.Show("审核成功!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information, // MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly); // GetData(); // } // else // { // return; // } // } // else // { // MessageBox.Show("请添加详细采购信息!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information, // MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly); // } //} //else //{ // MessageBox.Show("不存在正在办理的业务!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information, // MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly); //} } #endregion /// /// 关闭超时订单 /// /// private bool OutTimeOrder() { //关闭超时订单 string _UpdateSql = "UPDATE T_PURCHASE SET PURCHASE_STATE = 9000 WHERE RESERVE_DATE < DATETIME('" + DateTime.Now.AddMinutes(-25).ToString("yyyy/MM/dd HH:mm:ss") + "') AND PURCHASE_STATE = 1"; try { DBHelper.ExecuteSqlTran(_UpdateSql); return true; } catch (Exception ex) { return false; } } #region 数据加载方法 /// /// 采购单列表数据 /// private void GetData() { string sql = "SELECT ROW_NUMBER() OVER (ORDER BY A.PURCHASE_DATE DESC) AS ID,A.PURCHASE_ID," + "A.PURCHASE_CODE,A.PURCHASE_PERSON,A.PURCHASE_DATE,ISNULL(A.PURCHASE_AMOUNT,0) AS PURCHASE_AMOUNT," + "(CASE ISNULL(A.PURCHASE_STATE,0) WHEN 0 THEN '填写中' WHEN 1 THEN '待提交' WHEN 9 THEN '已提交' ELSE '已关闭' END) " + "AS PURCHASE_STATE FROM T_PURCHASE A WHERE A.SERVERPARTSHOP_ID = " + _QualityHelper.serverpartshop_id + " AND A.PURCHASE_STATE <> 9999 ORDER BY A.PURCHASE_DATE DESC"; DataTable _DataTable = DBHelper.QueryOdbc(sql).Tables[0]; //加一列显示商品 _DataTable.Columns.Add("Commodityinfo", typeof(string)); for (int i = 0; i < _DataTable.Rows.Count; i++) { string purchasedetail = "select commodity_name from t_purchasedetail where purchasedetail_desc='" + _DataTable.Rows[i]["purchase_code"].ToString() + "'"; DataTable _tablepurchasedetail = DBHelper.QueryOdbc(purchasedetail).Tables[0]; if (_tablepurchasedetail.Rows.Count > 0) { if (_tablepurchasedetail.Rows.Count > 1) { _DataTable.Rows[i]["Commodityinfo"] = _tablepurchasedetail.Rows[0]["commodity_name"].ToString() + "…"; } else { _DataTable.Rows[i]["Commodityinfo"] = _tablepurchasedetail.Rows[0]["commodity_name"].ToString(); } } else { _DataTable.Rows[i]["Commodityinfo"] = "无商品"; } } dgv_Purchase.AutoGenerateColumns = false; dgv_Purchase.DataSource = _DataTable; for (int j = 0; j < dgv_Purchase.Rows.Count; j++) { if (_DataTable.Rows[j]["purchase_state"].ToString() != "填写中") { dgv_Purchase.Rows[j].Cells["Submit"].Value = "详情"; } } //} } #endregion #region 事件 -> 采购单选择事件 private void dgv_Purchase_RowEnter(object sender, DataGridViewCellEventArgs e) { //当采购单列表数量大于0时,点击加载采购单详情 if (e.RowIndex >= 0) { string _PurchaseCode = dgv_Purchase.Rows[e.RowIndex].Cells["purchase_code"].Value.ToString(); string strDetailSql = @"SELECT ROW_NUMBER() OVER (ORDER BY A.PURCHASEDETAIL_ID) AS ID, A.COMMODITY_BARCODE,A.COMMODITY_NAME,A.COMMODITY_RULE||'*'||CAST(B.BOXENTRY_COUNT AS DECIMAL(16,0)) AS COMMODITY_RULE, REPLACE(REPLACE(A.UNIT,2,'箱'),1,B.COMMODITY_UNIT) AS UNIT,ISNULL(A.PURCHASE_COUNT,0) AS PURCHASE_COUNT, ISNULL(A.UNITCOUNT,1) AS UNITCOUNT,ISNULL(A.PURCHASE_PRICE,0) AS PURCHASE_PRICE, ISNULL(A.TOTAL_PRICE,0) AS TOTAL_PRICE,A.PURCHASEDETAIL_ID,ISNULL(A.TOTAL_COUNT,0) AS TOTAL_COUNT, A.PURCHASE_COUNT AS COUNT,B.COMMODITY_UNIT AS COMMODITY_UNIT,'箱' AS BOX_UNIT,B.BOXENTRY_COUNT FROM T_PURCHASEDETAIL A LEFT JOIN T_SELLERCOMMODITY B ON B.COMMODITY_BARCODE = A.COMMODITY_BARCODE WHERE A.PURCHASEDETAIL_DESC='" + _PurchaseCode + "' ORDER BY PURCHASEDETAIL_ID"; using (DataTable _DataTable = DBHelper.QueryOdbc(strDetailSql).Tables[0]) { dgv_Detail.AutoGenerateColumns = false; dgv_Detail.DataSource = _DataTable; lblOrderMess.Text = "当前单据合计金额:" + dgv_Purchase.Rows[e.RowIndex].Cells["purchase_amount"].EditedFormattedValue.ToString(); } //判断采购单状态,设置采购详情是否可编辑 if (dgv_Purchase.Rows[e.RowIndex].Cells["purchase_state"].Value.ToString() != "填写中") { dgv_Detail.Columns["ComboxUnit"].ReadOnly = true; dgv_Detail.Columns["purchase_count"].ReadOnly = true; for (int i = 0; i < dgv_Detail.Columns.Count; i++) { dgv_Detail.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable; } } else { dgv_Detail.Columns["ComboxUnit"].ReadOnly = false; dgv_Detail.Columns["purchase_count"].ReadOnly = false; for (int i = 0; i < dgv_Detail.Columns.Count; i++) { dgv_Detail.Columns[i].SortMode = DataGridViewColumnSortMode.Automatic; } } if (dgv_Detail.Rows.Count > 0) { dgv_Detail.CurrentRow.Cells["purchase_count"].Selected = true; } } } #endregion /// /// 提交报货单 /// /// /// private void btnUpLoad_Click(object sender, EventArgs e) { string strWhere = ""; for (int i = 0; i < dgv_Purchase.Rows.Count; i++) { if ((bool)dgv_Purchase.Rows[i].Cells["PurchaseChecked"].EditedFormattedValue) { strWhere += (strWhere == "" ? "'" + dgv_Purchase.Rows[i].Cells["purchase_code"].Value.ToString() + "'" : ",'" + dgv_Purchase.Rows[i].Cells["purchase_code"].Value.ToString() + "'"); } } if (strWhere == "") { } PostData(strWhere); } public void ShowWaiteForm() { _WaitForm = WaiteFrom.GetInstance(); //设置WaitForm的父窗体为当前窗体,以便在WaitForm中使用父窗体对象 _WaitForm.TopMost = true; _WaitForm.Owner = this; _WaitForm.ShowMessage("加载中......"); _WaitForm.Show(); Application.DoEvents(); _WaitForm.Refresh(); } public void PostData(string PurchaseCode) { //btnPriceUpdate_Click(null, null); GetData(); cobState_DropDownClosed(null, null); string purchaseSql = "SELECT PURCHASE_ID, PURCHASE_CODE, SERVERPARTSHOP_ID, SERVERPART_ID, PURCHASE_PERSON, " + "PURCHASE_PERSONTEL, PURCHASE_DATE, RESERVE_DATE, PURCHASE_AMOUNT, PURCHASE_TYPE, PURCHASE_STATE, " + "PASSPORT_GUID, PURCHASE_DESC FROM T_PURCHASE WHERE PURCHASE_AMOUNT " + (IsReturn ? "<" : ">") + " 0 AND SERVERPARTSHOP_ID = " + _QualityHelper.serverpartshop_id; if (PurchaseCode == "") { //if (MessageBox.Show("确定提交全部订货单?", "系统提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK) //{ // return; //} purchaseSql += " AND PURCHASE_STATE = 0"; } else { purchaseSql += " AND PURCHASE_STATE = 0 AND PURCHASE_CODE IN(" + PurchaseCode + ")"; } DataTable dt = null; try { dt = DBHelper.QueryOdbc(purchaseSql).Tables[0]; } catch (Exception e) { MessageBox.Show("查询数据库出错"); return; } if (dt.Rows.Count > 0) { decimal amount = 0; string purchase_code = ""; for (int i = 0; i < dt.Rows.Count; i++) { try { amount += decimal.Parse(dt.Rows[i]["purchase_amount"].ToString()); } catch { amount += 0; } purchase_code += (purchase_code == "" ? "'" + dt.Rows[i]["purchase_code"].ToString() + "'" : ",'" + dt.Rows[i]["purchase_code"].ToString() + "'"); } if (amount > 30000) { //lblMess.Text = "当前订单金额大于3万,请拆分报货"; //return; } else if (amount == 0) { lblMess.Text = "当前订单所有商品库存不足,请重新添加商品"; return; } DataTable _DetailTable = null; string purchasedetailSql = "SELECT PURCHASEDETAIL_ID, PURCHASE_ID, COMMODITY_ID, COMMODITY_NAME, COMMODITY_CODE, " + "COMMODITY_BARCODE, COMMODITY_RULE, COMMODITY_WEIGHT, SERVERPARTSHOP_ID, SERVERPART_ID, UNIT, UNITCOUNT, " + "PURCHASE_COUNT, TOTAL_COUNT, PURCHASE_PRICE, TOTAL_PRICE, SUPPLIER_ID, SUPPLIER_NAME, PURCHASEDETAIL_DESC " + "FROM T_PURCHASEDETAIL WHERE PURCHASE_COUNT " + (IsReturn ? "<" : ">") + " 0 AND PURCHASEDETAIL_DESC IN (" + purchase_code + ")"; try { _DetailTable = DBHelper.QueryOdbc(purchasedetailSql).Tables[0]; if (_DetailTable.Rows.Count == 0) { lblMess.Text = "提示:订单未添加商品或商品库存不足"; return; } } catch (Exception e) { MessageBox.Show("查询数据库出错"); return; } ReportPreview _ReportPreview = new ReportPreview(purchase_code, false); if (_ReportPreview.ShowDialog() != DialogResult.OK) { return; } try { string _strSelectSql = "SELECT COMMODITY_CODE FROM T_PURCHASEDETAIL " + "WHERE PURCHASE_ID = (SELECT MAX(PURCHASE_ID) " + "FROM T_PURCHASE WHERE PURCHASE_CODE NOT IN(" + purchase_code + "))"; DataTable _DataTableOld = DBHelper.QueryOdbc(_strSelectSql).Tables[0]; if (_DetailTable.Rows.Count == _DataTableOld.Rows.Count) { DataTable _Temp = _DetailTable.DefaultView.ToTable(true, new string[] { "COMMODITY_CODE" }); var _query = _Temp.AsEnumerable().Except(_DataTableOld.AsEnumerable(), DataRowComparer.Default); if (_query.Count() == 0) { if (MessageBox.Show("本次提交订单商品内容与上笔订单一致,是否继续提交?", "系统提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, MessageBoxOptions.ServiceNotification) == DialogResult.No) { return; } } } } catch { } try { DBHelper.ExecuteSqlTran("UPDATE T_PURCHASE SET RESERVE_DATE = DATETIME('" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + "') WHERE PURCHASE_CODE IN (" + purchase_code + ")"); } catch (Exception ex) { } ShowWaiteForm(); _WaitForm.ShowMessage("正在提交报货单..."); #region 服务区不限制月度报货上限 /*服务区不限制月度报货上限 try { DateTime now = DateTime.Now; DateTime d1 = new DateTime(now.Year, now.Month, 1); DateTime d2 = d1.AddMonths(1).AddDays(-1); string _UpperAmountSql = "SELECT ISNULL(SUM(ISNULL(PURCHASE_AMOUNT,0)),0) AS UPPER_AMOUNT " + "FROM T_PURCHASE WHERE PURCHASE_STATE IN (1,9,9999) AND RESERVE_DATE BETWEEN DATETIME('" + d1.ToString("yyyy/MM/dd") + " 00:00:00') AND DATETIME('" + d2.ToString("yyyy/MM/dd") + " 23:59:59')"; string _UpperAmount = DBHelper.QueryOdbc(_UpperAmountSql).Tables[0].Rows[0]["UPPER_AMOUNT"].ToString(); if (decimal.Parse(_UpperAmount) > 200000) { lblMess.Text = "您本月报货金额已超过20万上限,请联系商贸公司处理!"; for (int i = 3; i > 0; i--) { _WaitForm.ShowMessage("报货失败,您本月报货金额已超过20万上限,请联系商贸公司处理!(" + i + ")"); System.Threading.Thread.Sleep(1 * 1000); } _WaitForm.Close(); _WaitForm.Dispose(); return; } } catch (Exception ex) { _WaitForm.Close(); _WaitForm.Dispose(); MessageBox.Show("查询数据库出错"); return; }*/ #endregion dt = DBHelper.QueryOdbc(purchaseSql).Tables[0]; if (_DetailTable.Rows.Count > 50) { _WaitForm.ShowMessage("正在拆分订单..."); //新订单号前缀 Random ra = new Random(Guid.NewGuid().GetHashCode()); string _strNewPurchaseCode = (IsReturn ? "T" : "") + DateTime.Now.ToString("yy") + _QualityHelper.shopcode + TimeHelper.ConvertDataTimeLong(DateTime.Now).ToString() + ra.Next(1, 100).ToString().PadLeft(2, '0'); //拆单总数 int _MaxNum = (int)Math.Ceiling((decimal)_DetailTable.Rows.Count / (Math.Ceiling((decimal)_DetailTable.Rows.Count / 50))); DataSet _DataSet = SplitDataTable(_DetailTable, _MaxNum); List _ListPurchaseCode = new List(); for (int i = 0; i < _DataSet.Tables.Count; i++) { string _strDetail = ""; for (int n = 0; n < _DataSet.Tables[i].Rows.Count; n++) { _strDetail += (_strDetail == "" ? "" : ",") + _DataSet.Tables[i].Rows[n]["PURCHASEDETAIL_ID"].ToString(); } decimal _MaxID = 0; try { _MaxID = decimal.Parse(DBHelper.QueryOdbc("SELECT MAX(PURCHASE_ID) " + "FROM T_PURCHASE").Tables[0].Rows[0][0].ToString()); } catch { _MaxID = 0; } try { string _strPurchaseCode = _strNewPurchaseCode + "-" + (i + 1) + "-" + _DataSet.Tables.Count; string sql = "INSERT INTO T_PURCHASE (PURCHASE_ID,PURCHASE_CODE,SERVERPARTSHOP_ID," + "PURCHASE_PERSON,PURCHASE_DATE,RESERVE_DATE,PURCHASE_TYPE,PURCHASE_STATE) " + "VALUES('" + (_MaxID + 1) + "','" + _strPurchaseCode + "','" + _QualityHelper.serverpartshop_id + "','" + _QualityHelper.shopname + "',DATETIME('" + DateTime.Now.ToString() + "'),DATETIME('" + DateTime.Now.ToString() + "'),'1000','0')"; DBHelper.ExecuteSqlTran(sql); DBHelper.ExecuteSqlTran("UPDATE T_PURCHASEDETAIL SET PURCHASE_ID = " + (_MaxID + 1) + ",PURCHASEDETAIL_DESC = '" + _strPurchaseCode + "' WHERE PURCHASEDETAIL_ID IN (" + _strDetail + ")"); DBHelper.ExecuteSqlTran("UPDATE T_PURCHASE A SET A.PURCHASE_AMOUNT = " + "(SELECT SUM(B.TOTAL_PRICE) FROM T_PURCHASEDETAIL B " + "WHERE A.PURCHASE_CODE = B.PURCHASEDETAIL_DESC ) " + "WHERE A.PURCHASE_STATE = 0 AND A.SERVERPARTSHOP_ID = " + _QualityHelper.serverpartshop_id); _ListPurchaseCode.Add(_strPurchaseCode); } catch (Exception ex) { } } if (_ListPurchaseCode.Count > 0) { try { DBHelper.ExecuteSqlTran("DELETE FROM T_PURCHASE WHERE PURCHASE_CODE IN (" + purchase_code + ")"); for (int i = 0; i < _ListPurchaseCode.Count; i++) { _WaitForm.ShowMessage("正在上传报货单...(" + (i + 1) + " / " + _ListPurchaseCode.Count + ")"); purchaseSql = "SELECT PURCHASE_ID, PURCHASE_CODE, SERVERPARTSHOP_ID, SERVERPART_ID, PURCHASE_PERSON, " + "PURCHASE_PERSONTEL, PURCHASE_DATE, RESERVE_DATE, PURCHASE_AMOUNT, PURCHASE_TYPE, PURCHASE_STATE, " + "PASSPORT_GUID, PURCHASE_DESC FROM T_PURCHASE WHERE SERVERPARTSHOP_ID = " + _QualityHelper.serverpartshop_id + " AND PURCHASE_STATE = 0 AND PURCHASE_CODE = '" + _ListPurchaseCode[i] + "'"; purchasedetailSql = "SELECT PURCHASEDETAIL_ID, PURCHASE_ID, COMMODITY_ID, COMMODITY_NAME, COMMODITY_CODE, " + "COMMODITY_BARCODE, COMMODITY_RULE, COMMODITY_WEIGHT, SERVERPARTSHOP_ID, SERVERPART_ID, UNIT, UNITCOUNT, " + "PURCHASE_COUNT, TOTAL_COUNT, PURCHASE_PRICE, TOTAL_PRICE, SUPPLIER_ID, SUPPLIER_NAME, PURCHASEDETAIL_DESC " + "FROM T_PURCHASEDETAIL WHERE PURCHASE_COUNT " + (IsReturn ? "<" : ">") + " 0 AND PURCHASEDETAIL_DESC = '" + _ListPurchaseCode[i] + "'"; string purchaseJsonStr = JsonHelper.ToJson(DBHelper.QueryOdbc(purchaseSql).Tables[0]); string purchasedetailJsonStr = JsonHelper.ToJson(DBHelper.QueryOdbc(purchasedetailSql).Tables[0]); string strPostData = "action_type=UploadSeller&action_data=1000&t_purchase=" + purchaseJsonStr + "&t_purchasedetail=" + purchasedetailJsonStr; for (int _uploadcount = 0; _uploadcount < 10; _uploadcount++) { try { string _UpLoadResult = PostDataHelper.HttpPost(ServiceUrl, strPostData, true);//http://localhost:49898/Handler1.ashx if (_UpLoadResult != "") { _UpLoadResult = _UpLoadResult.Replace("[", "").Replace("]", ""); JObject _UploadJOject = JObject.Parse(_UpLoadResult); string ResultCode = _UploadJOject["ResultObject"]["ResultCode"].ToString(); string FirstParameter = _UploadJOject["ResultObject"]["FirstParameter"].ToString(); string SecondParameter = _UploadJOject["ResultObject"]["SecondParameter"].ToString(); string ThirdParameter = _UploadJOject["ResultObject"]["ThirdParameter"].ToString(); string FourthParameter = _UploadJOject["ResultObject"]["FourthParameter"].ToString(); string FifthParameter = _UploadJOject["ResultObject"]["FifthParameter"].ToString(); string ResultDesc = _UploadJOject["ResultObject"]["ResultDesc"].ToString(); if (ResultCode == "100") { string _UpdateSql = "update t_purchase set purchase_state = 9,purchase_desc = " + (FirstParameter == "" ? "null" : "'" + FirstParameter + "' ") + " where purchase_code in ('" + _ListPurchaseCode[i] + "')"; DBHelper.ExecuteSqlTran(_UpdateSql); decimal payment = 0; decimal.TryParse(FourthParameter, out payment); long maxid = 0; try { maxid = long.Parse(DBHelper.QueryOdbc("select max(purchase_paycheck_id) from t_purchase_paycheck"). Tables[0].Rows[0][0].ToString()); } catch { maxid = 0; } string insertsql = "insert into t_purchase_paycheck (purchase_paycheck_id, serverpartcode, serverpartshop_id, " + "shopcode, machinecode, purchasepay_date, purchasepay_code, purchasepay_amount, " + "purchasepay_balance, purchasepay_payment) values (" + (maxid + 1) + ",'" + _QualityHelper.serverpartcode + "'," + _QualityHelper.serverpartshop_id + ",'" + _QualityHelper.shopcode + "','" + _QualityHelper.machinecode + "',datetime('" + DateTime.Now.ToString() + "'),'" + FirstParameter + "'," + SecondParameter + "," + ThirdParameter + "," + FourthParameter + ")"; try { DBHelper.ExecuteSqlTran(insertsql); } catch (Exception ex) { LogHelper.WriteServiceLog(ex.Message); } GetData(); cobState.Text = "报货单" + (i + 1) + "/" + _ListPurchaseCode.Count + "已提交"; break; } else { lblMess.Text = "报货单" + (i + 1) + "/" + _ListPurchaseCode.Count + "上传失败,正在进行第" + (_uploadcount + 1) + "次重试.....\n" + ResultDesc; for (int n = 3; n > 0; n--) { _WaitForm.ShowMessage("报货单" + (i + 1) + "/" + _ListPurchaseCode.Count + "上传失败\n正在进行第" + (_uploadcount + 1) + "次重试.....\n" + ResultDesc); System.Threading.Thread.Sleep(1 * 1000); } } } else { lblMess.Text = "报货单" + (i + 1) + "/" + _ListPurchaseCode.Count + "上传失败,正在进行第" + (_uploadcount + 1) + "次重试....."; for (int n = 3; n > 0; n--) { _WaitForm.ShowMessage("报货单" + (i + 1) + "/" + _ListPurchaseCode.Count + "上传失败\n正在进行第" + (_uploadcount + 1) + "次重试....."); System.Threading.Thread.Sleep(1 * 1000); } } } catch (Exception ex) { lblMess.Text = "报货单" + (i + 1) + "/" + _ListPurchaseCode.Count + "上传失败,正在进行第" + (_uploadcount + 1) + "次重试....."; for (int n = 3; n > 0; n--) { _WaitForm.ShowMessage("报货单" + (i + 1) + "/" + _ListPurchaseCode.Count + "上传失败\n正在进行第" + (_uploadcount + 1) + "次重试....."); System.Threading.Thread.Sleep(1 * 1000); } LogHelper.WriteServiceLog(ex.Message); } } } } catch (Exception ex) { lblMess.Text = "报货单上传失败,请重试!\n原因:" + ex.Message; for (int n = 3; n > 0; n--) { _WaitForm.ShowMessage("报货单上传失败,请重试!\n原因:" + ex.Message); System.Threading.Thread.Sleep(1 * 1000); } LogHelper.WriteServiceLog(ex.Message); } GetData(); cobState.Text = "全部"; cobState_DropDownClosed(null, null); lblMess.Text = ""; _WaitForm.Close(); _WaitForm.Dispose(); } } else { string purchaseJsonStr = JsonHelper.ToJson(dt); string purchasedetailJsonStr = JsonHelper.ToJson(_DetailTable); string strPostData = "action_type=UploadSeller&action_data=1000&t_purchase=" + purchaseJsonStr + "&t_purchasedetail=" + purchasedetailJsonStr; //+ "&action_data=888888";//注释部分测试用 try { string _UpLoadResult = PostDataHelper.HttpPost(ServiceUrl, strPostData, true);//http://localhost:49898/Handler1.ashx if (_UpLoadResult != "") { _UpLoadResult = _UpLoadResult.Replace("[", "").Replace("]", ""); JObject _UploadJOject = JObject.Parse(_UpLoadResult); string ResultCode = _UploadJOject["ResultObject"]["ResultCode"].ToString(); string FirstParameter = _UploadJOject["ResultObject"]["FirstParameter"].ToString(); string SecondParameter = _UploadJOject["ResultObject"]["SecondParameter"].ToString(); string ThirdParameter = _UploadJOject["ResultObject"]["ThirdParameter"].ToString(); string FourthParameter = _UploadJOject["ResultObject"]["FourthParameter"].ToString(); string FifthParameter = _UploadJOject["ResultObject"]["FifthParameter"].ToString(); string ResultDesc = _UploadJOject["ResultObject"]["ResultDesc"].ToString(); if (ResultCode == "100") { string _UpdateSql = "update t_purchase set purchase_state = 9,purchase_desc = " + (FirstParameter == "" ? "null" : "'" + FirstParameter + "' ") + " where purchase_code in (" + purchase_code + ")"; DBHelper.ExecuteSqlTran(_UpdateSql); decimal payment = 0; decimal.TryParse(FourthParameter, out payment); long maxid = 0; try { maxid = long.Parse(DBHelper.QueryOdbc("select max(purchase_paycheck_id) from t_purchase_paycheck"). Tables[0].Rows[0][0].ToString()); } catch { maxid = 0; } string insertsql = "insert into t_purchase_paycheck (purchase_paycheck_id, serverpartcode, serverpartshop_id, " + "shopcode, machinecode, purchasepay_date, purchasepay_code, purchasepay_amount, " + "purchasepay_balance, purchasepay_payment) values (" + (maxid + 1) + ",'" + _QualityHelper.serverpartcode + "'," + _QualityHelper.serverpartshop_id + ",'" + _QualityHelper.shopcode + "','" + _QualityHelper.machinecode + "',datetime('" + DateTime.Now.ToString() + "'),'" + FirstParameter + "'," + SecondParameter + "," + ThirdParameter + "," + FourthParameter + ")"; try { DBHelper.ExecuteSqlTran(insertsql); } catch (Exception ex) { } #region 服务区报货不需要直接付款 /* if (payment > 0) { lblMess.Text = "订单:" + FirstParameter + "正在请求支付,请稍候......"; _WaitForm.ShowMessage("正在等待支付......"); ScanPay _ScanPay = new ScanPay(FirstParameter, SecondParameter, ThirdParameter, FourthParameter); if (_ScanPay.ShowDialog() == DialogResult.OK) { _WaitForm.ShowMessage("正在确认订单......"); _UpdateSql = "update t_purchase set purchase_state = 9,purchase_desc = " + (FirstParameter == "" ? "null" : "'" + FirstParameter + "' ") + " where purchase_code in (" + purchase_code + ")"; try { DBHelper.ExecuteSqlTran(_UpdateSql); } catch (Exception ex) { } GetData(); cobState.Text = "已提交"; cobState_DropDownClosed(null, null); } else { OutTimeOrder(); GetData(); cobState.Text = "待提交"; cobState_DropDownClosed(null, null); } #region 直接支付模式 // PaymentMenu _PaymentMenu = new PaymentMenu(); // if (_PaymentMenu.ShowDialog() == DialogResult.OK) // { // string paytype = _PaymentMenu.PayType; // //string _PayServiceUrl = "http://192.168.12.140:7080/EShangTechService/Service.asmx"; // string[] strargs = { FirstParameter, FourthParameter, paytype }; // string _Result = WSHelper.InvokeWebService(_PayServiceUrl, "createpay_customerscan", strargs).ToString(); // if (_Result != "") // { // // { "trade_no":"","trade_num":"OA139815067412867988","result_code":"101","result_desc":":(未支付)"} // JObject _JObject = JObject.Parse(_Result); // string trade_no = _JObject["trade_no"].ToString(); // string trade_num = _JObject["trade_num"].ToString(); // string result_code = _JObject["result_code"].ToString(); // string result_desc = _JObject["result_desc"].ToString(); // if (result_code == "100") // { // string updatesql = "update t_purchase_paycheck set purchasepay_type = '" + paytype + // "',order_result = '" + result_code + "',order_payurl = '" + result_desc + // "',trade_num = '" + trade_num + "' where purchasepay_code = '" + FirstParameter + "'"; // try // { // DBHelper.ExecuteSqlTran(updatesql); // } // catch (Exception ex) // { } // ScanPay scanAudit = new ScanPay(_UpLoadResult, _Result, paytype);//支付宝:ALIPAY;微信:WECHAT // if (scanAudit.ShowDialog() == DialogResult.OK) // { // purchasedetailSql = "update t_purchase set purchase_state = 9,purchase_desc = " + // (FirstParameter == "" ? "null" : "'" + FirstParameter + "' ") + // " where purchase_code in (" + purchase_code + ")"; // try // { // DBHelper.ExecuteSqlTran(purchasedetailSql); // } // catch (Exception e) // { // } // } // } // } // } #endregion } else { GetData(); cobState.Text = "已提交"; cobState_DropDownClosed(null, null); }*/ #endregion GetData(); cobState.Text = "已提交"; cobState_DropDownClosed(null, null); lblMess.Text = ""; for (int i = 3; i > 0; i--) { _WaitForm.ShowMessage("报货单提交成功!(" + i + ")"); System.Threading.Thread.Sleep(1 * 1000); } _WaitForm.Close(); _WaitForm.Dispose(); //MessageBox.Show("采购单上传成功!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information, // MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly); } else { //MessageBox.Show("报货单上传失败,请重试!", "系统提示", MessageBoxButtons.OK, // MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); lblMess.Text = "报货单上传失败,请重试!\n" + ResultDesc; for (int i = 3; i > 0; i--) { _WaitForm.ShowMessage("报货单上传失败,请重试!(" + i + ")\n" + ResultDesc); System.Threading.Thread.Sleep(1 * 1000); } _WaitForm.Close(); _WaitForm.Dispose(); return; } } else { lblMess.Text = "报货单上传失败,请重试!"; for (int i = 3; i > 0; i--) { _WaitForm.ShowMessage("报货单上传失败,请重试!(" + i + ")"); System.Threading.Thread.Sleep(1 * 1000); } _WaitForm.Close(); _WaitForm.Dispose(); //MessageBox.Show("报货单上传失败,请重试!", "系统提示", MessageBoxButtons.OK, // MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); return; } } catch (Exception ex) { lblMess.Text = "报货单上传失败,请重试!"; for (int i = 3; i > 0; i--) { _WaitForm.ShowMessage("报货单上传失败,请重试!(" + i + ")"); System.Threading.Thread.Sleep(1 * 1000); } _WaitForm.Close(); _WaitForm.Dispose(); //MessageBox.Show("报货单上传失败:" + ex.Message, "系统提示", MessageBoxButtons.OK, // MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); return; } } } else { lblMess.Text = "请添加报货单!"; for (int i = 3; i > 0; i--) { _WaitForm.ShowMessage("请添加报货单!(" + i + ")"); System.Threading.Thread.Sleep(1 * 1000); } _WaitForm.Close(); _WaitForm.Dispose(); //MessageBox.Show("请先添加报货单", "系统提示", MessageBoxButtons.OK, // MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); return; } } /// /// 一级类别选择事件 /// /// /// private void cobOneType_DropDownClosed(object sender, EventArgs e) { DataTable _TypeTable = cobTwoType.DataSource as DataTable; DataView _DataView = _TypeTable.DefaultView; //一级类别选择后关联显示对应大类下全部商品信息 if (cobOneType.Text != "全部") { cobTwoType.Text = "全部"; if (cobOneType.Text != "我的收藏") { string TYPE_PID = cobOneType.SelectedValue.ToString(); _TypeTable.DefaultView.RowFilter = "TYPE_PID=" + TYPE_PID + " or TYPE_NAME = '全部'"; _DataView.RowFilter = "TYPE_PID=" + TYPE_PID + " or TYPE_NAME = '全部'"; } else { string TYPE_PID = ""; DataTable _GoodsType = dgv_Commodity.DataSource as DataTable; DataRow[] _PIDRow = _GoodsType.Select("FAVORITE = 1"); for (int i = 0; i < _PIDRow.Count(); i++) { TYPE_PID += (TYPE_PID == "" ? _PIDRow[i]["SELLERCOMMODITYTYPE_ID"].ToString() : "," + _PIDRow[i]["SELLERCOMMODITYTYPE_ID"].ToString()); } if (TYPE_PID != "") { _TypeTable.DefaultView.RowFilter = "SELLERCOMMODITYTYPE_ID IN (" + TYPE_PID + ") or TYPE_NAME = '全部'"; _DataView.RowFilter = "SELLERCOMMODITYTYPE_ID IN(" + TYPE_PID + ") or TYPE_NAME = '全部'"; } else { _TypeTable.DefaultView.RowFilter = "TYPE_NAME = '全部'"; _DataView.RowFilter = "TYPE_NAME = '全部'"; } } } else { cobTwoType.Text = "全部"; string TYPE_PID = cobOneType.SelectedValue.ToString(); _TypeTable.DefaultView.RowFilter = "TYPE_NAME is not null"; _DataView.RowFilter = "TYPE_NAME is not null"; } string TYPE_ID = ""; for (int i = 0; i < _DataView.ToTable().Rows.Count; i++) { TYPE_ID += (TYPE_ID == "" ? _DataView.ToTable().Rows[i]["SELLERCOMMODITYTYPE_ID"].ToString() : "," + _DataView.ToTable().Rows[i]["SELLERCOMMODITYTYPE_ID"].ToString()); } DataTable _CommodityTable = dgv_Commodity.DataSource as DataTable; if (cobOneType.Text != "我的收藏") { _CommodityTable.DefaultView.RowFilter = "SELLERCOMMODITYTYPE_ID IN (" + TYPE_ID + ")"; } else { _CommodityTable.DefaultView.RowFilter = "FAVORITE = 1 AND SELLERCOMMODITYTYPE_ID IN (" + TYPE_ID + ")"; } } /// /// 二级类别选择事件 /// /// /// private void cobTwoType_DropDownClosed(object sender, EventArgs e) { //显示对应类别商品 if (cobTwoType.Text != "全部") { string TYPE_ID = cobTwoType.SelectedValue.ToString(); DataTable _CommodityTable = dgv_Commodity.DataSource as DataTable; if (cobOneType.Text != "我的收藏") { _CommodityTable.DefaultView.RowFilter = "SELLERCOMMODITYTYPE_ID = " + TYPE_ID; } else { _CommodityTable.DefaultView.RowFilter = "FAVORITE = 1 AND SELLERCOMMODITYTYPE_ID = " + TYPE_ID; } } else { string TYPE_ID = ""; DataTable _DataTable = cobTwoType.DataSource as DataTable; DataView _TypeView = _DataTable.DefaultView; if (cobOneType.Text != "全部") { if (cobOneType.Text != "我的收藏") { string TYPE_PID = cobOneType.SelectedValue.ToString(); _TypeView.RowFilter = "TYPE_PID=" + TYPE_PID + " or TYPE_NAME = '全部'"; } else { string TYPE_PID = ""; DataTable _GoodsType = dgv_Commodity.DataSource as DataTable; DataRow[] _PIDRow = _GoodsType.Select("FAVORITE = 1"); for (int i = 0; i < _PIDRow.Count(); i++) { TYPE_PID += (TYPE_PID == "" ? _PIDRow[i]["SELLERCOMMODITYTYPE_ID"].ToString() : "," + _PIDRow[i]["SELLERCOMMODITYTYPE_ID"].ToString()); } if (TYPE_PID != "") { _TypeView.RowFilter = "SELLERCOMMODITYTYPE_ID IN(" + TYPE_PID + ") or TYPE_NAME = '全部'"; } else { _TypeView.RowFilter = "TYPE_NAME = '全部'"; } } } else { string TYPE_PID = cobOneType.SelectedValue.ToString(); _TypeView.RowFilter = "TYPE_NAME is not null"; } for (int i = 0; i < _TypeView.ToTable().Rows.Count; i++) { TYPE_ID += (TYPE_ID == "" ? _TypeView.ToTable().Rows[i]["SELLERCOMMODITYTYPE_ID"].ToString() : "," + _TypeView.ToTable().Rows[i]["SELLERCOMMODITYTYPE_ID"].ToString()); } DataTable _CommodityTable = dgv_Commodity.DataSource as DataTable; if (cobOneType.Text != "我的收藏") { _CommodityTable.DefaultView.RowFilter = "SELLERCOMMODITYTYPE_ID IN (" + TYPE_ID + ")"; } else { _CommodityTable.DefaultView.RowFilter = "FAVORITE = 1 AND SELLERCOMMODITYTYPE_ID IN (" + TYPE_ID + ")"; } } } private void dgv_Detail_DataError(object sender, DataGridViewDataErrorEventArgs e) { //处理表格异常,勿去除 } private void dgv_Detail_DataSourceChanged(object sender, EventArgs e) { //加载列表时的下拉选项绑定 for (int i = 0; i < dgv_Detail.Rows.Count; i++) { DataGridViewComboBoxCell _ComboBoxColumn = dgv_Detail.Rows[i].Cells["ComboxUnit"] as DataGridViewComboBoxCell; _ComboBoxColumn.Items.Clear(); _ComboBoxColumn.Items.Add(dgv_Detail.Rows[i].Cells["Box_Unit"].Value); //最小单位采购,暂注释 _ComboBoxColumn.Items.Add(dgv_Detail.Rows[i].Cells["Commodity_Unit"].Value); _ComboBoxColumn.Value = dgv_Detail.Rows[i].Cells["Unit"].Value; } } private void dgv_Detail_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) { //点击表格标题排序时下拉列表加载 for (int i = 0; i < dgv_Detail.Rows.Count; i++) { DataGridViewComboBoxCell _ComboBoxColumn = dgv_Detail.Rows[i].Cells["ComboxUnit"] as DataGridViewComboBoxCell; _ComboBoxColumn.Items.Clear(); _ComboBoxColumn.Items.Add(dgv_Detail.Rows[i].Cells["Box_Unit"].Value); _ComboBoxColumn.Items.Add(dgv_Detail.Rows[i].Cells["Commodity_Unit"].Value); _ComboBoxColumn.Value = dgv_Detail.Rows[i].Cells["Unit"].Value; } } /// /// 商品列表选择 /// /// /// private void dgv_Commodity_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0) { string _ColumnName = dgv_Commodity.Columns[e.ColumnIndex].Name; switch (_ColumnName) { case "Choose": if (dgv_Purchase.Rows.Count > 0) { if (dgv_Purchase.CurrentRow.Cells["purchase_state"].EditedFormattedValue.ToString() == "填写中") { if (DataUpdate) { lblMess.Text = "商品库未更新,请先点击【商品同步】"; MessageBox.Show("商品库未更新,不能添加商品;\n请点击商品同步进行商品库信息更新!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.ServiceNotification); return; } //if (!IsReturn) //{ // decimal _Stock = decimal.Parse(dgv_Commodity.Rows[e.RowIndex].Cells["commodity_boxcostprice"].EditedFormattedValue.ToString()); // if (_Stock <= 0) // { // lblMess.Text = dgv_Commodity.Rows[e.RowIndex].Cells["GoodsName"].EditedFormattedValue.ToString() + "【库存不足】"; // return; // } //} if (DetailAdd(dgv_Commodity.Rows[e.RowIndex].Cells["barcode"].EditedFormattedValue.ToString(), dgv_Purchase.CurrentRow.Cells["purchase_code"].EditedFormattedValue.ToString(), IsReturn)) { dgv_Purchase_RowEnter(null, new DataGridViewCellEventArgs(dgv_Purchase.CurrentRow. Cells["purchase_code"].ColumnIndex, dgv_Purchase.CurrentRow.Index)); } else { lblMess.Text = "添加失败,请重试"; } } else { lblMess.Text = "报货单已提交,如需添加商品请先新增报货单"; } } else { lblMess.Text = "请先添加报货单"; } break; } } } /// /// 采购详情数量编辑更新 /// /// /// private void dgv_Detail_CellEndEdit(object sender, DataGridViewCellEventArgs e) { int row = e.RowIndex; int col = e.ColumnIndex; string strColumnName = dgv_Detail.Columns[e.ColumnIndex].Name; string _Barcode = dgv_Detail.CurrentRow.Cells["commodity_barcode"].EditedFormattedValue.ToString(); string _PurchaseCode = dgv_Purchase.CurrentRow.Cells["purchase_code"].EditedFormattedValue.ToString(); DataTable _DataTable = dgv_Commodity.DataSource as DataTable; DataRow[] _DataRow = _DataTable.Select("COMMODITY_BARCODE = '" + _Barcode + "'"); if (_DataRow.Count() > 0) { //decimal _Stock = decimal.Parse(_DataRow[0]["commodity_boxcostprice"].ToString());//库存 decimal _CountTmp = decimal.Parse(dgv_Detail.CurrentRow.Cells["purchase_count"].EditedFormattedValue.ToString()); decimal _Count = decimal.Parse(dgv_Detail.CurrentRow.Cells["purchase_count"].EditedFormattedValue.ToString());//采购数量 if (IsReturn && _Count > 0) { _Count = _Count * -1; } //if (_Stock < _Count) //{ // _Count = Math.Floor(_Stock); // lblMess.Text = dgv_Detail.CurrentRow.Cells["commodity_name"].EditedFormattedValue.ToString() + "库存不足,已自动调整报货数量"; //} decimal _Unit = dgv_Detail.CurrentRow.Cells["ComboxUnit"].EditedFormattedValue.ToString() == "箱" ? 2 : 1;//采购单位 decimal _BoxPrice = decimal.Parse(_DataRow[0]["COMMODITY_BOXSELLPRICE"].ToString());//箱单价 decimal _BoxCount = decimal.Parse(dgv_Detail.CurrentRow.Cells["box_count"].EditedFormattedValue.ToString());//箱数量 decimal _UnitCount = (_Unit == 2 ? _BoxCount : 1);//单位数量 decimal _TotalCount = (_Unit == 2 ? _BoxCount : 1) * _Count;//采购总数 decimal _PurchasePrice = (_Unit == 2 ? _BoxPrice : _BoxPrice / _BoxCount);//采购单价 decimal _TotalPrice = _Count * _PurchasePrice;//采购金额 switch (strColumnName) { case "purchase_count": //dgv_Detail.CurrentRow.Cells["unitcount"].Value = _UnitCount; //dgv_Detail.CurrentRow.Cells["purchase_price"].Value = _PurchasePrice; //dgv_Detail.CurrentRow.Cells["total_price"].Value = _TotalPrice; //break; case "ComboxUnit": dgv_Detail.CurrentRow.Cells["purchase_count"].Value = _Count; dgv_Detail.CurrentRow.Cells["unitcount"].Value = _UnitCount; dgv_Detail.CurrentRow.Cells["purchase_price"].Value = _PurchasePrice; dgv_Detail.CurrentRow.Cells["total_price"].Value = _TotalPrice; UpdateDetail(_PurchaseCode, _Barcode, _Count, _Unit, _UnitCount, _PurchasePrice, _TotalCount, _TotalPrice); break; } } } #region 采购单详情操作 /// /// 添加采购单详情 /// /// 商品条码 /// 采购单号 /// private bool DetailAdd(string Barcode, string PurchaseCode, bool isReturn) { /*按配送价类型获取商品价格信息, 1021:便利店价格,1000:通用价格 优先选择便利店价格信息*/ string _selectsql = "SELECT A.SELLERCOMMODITY_ID,A.COMMODITY_CODE,A.COMMODITY_NAME,A.COMMODITY_BARCODE," + "A.COMMODITY_UNIT, A.COMMODITY_RULE, A.COMMODITY_STATE, A.BOXENTRY_COUNT,B.COMMODITY_BOXSELLPRICE," + "B.SELLTAXPRICE,TRUNCNUM(ISNULL(B.COMMODITY_BOXCOSTPRICE,0),0) AS COMMODITY_BOXCOSTPRICE " + "FROM T_SELLERCOMMODITY A, T_ROLEPRICE B WHERE A.SELLERCOMMODITY_ID = B.SELLERCOMMODITY_ID " + "AND A.COMMODITY_STATE = 1 AND B.SELLTAXPRICE <> 0 AND B.COMMODITY_BOXSELLPRICE <> 0 "; string _sqlwhere = string.Format(" AND A.COMMODITY_BARCODE = '{0}' AND B.ROLEPRICE_NAME = '1021'", Barcode); DataTable _DataTable = DBHelper.QueryOdbc(_selectsql + _sqlwhere).Tables[0]; if (_DataTable.Rows.Count <= 0) { _sqlwhere = string.Format(" AND A.COMMODITY_BARCODE = '{0}' AND B.ROLEPRICE_NAME = '1000'", Barcode); _DataTable = DBHelper.QueryOdbc(_selectsql + _sqlwhere).Tables[0]; } if (_DataTable.Rows.Count > 0) { //检查当前采购单是否已经添加过选择的商品,并进行处理 _selectsql = "SELECT 1 FROM T_PURCHASEDETAIL WHERE PURCHASEDETAIL_DESC = '" + PurchaseCode + "' AND COMMODITY_BARCODE = '" + Barcode + "'"; try { if (DBHelper.QueryOdbc(_selectsql).Tables[0].Rows.Count > 0) { for (int i = 0; i < dgv_Detail.Rows.Count; i++) { if (dgv_Detail.Rows[i].Cells["commodity_barcode"].EditedFormattedValue.ToString() == Barcode) { dgv_Detail.CurrentCell = dgv_Detail["purchase_count", i]; dgv_Detail.Rows[i].Selected = true; break; } } } else { //InputCount _inputCount = new InputCount(_DataTable.Rows[0]); //_inputCount.TopMost = true; //_inputCount.ShowInTaskbar = false; //_inputCount.ShowDialog(); //if (_inputCount.DialogResult == DialogResult.OK) //{ //decimal _Stock = decimal.Parse(_DataTable.Rows[0]["COMMODITY_BOXCOSTPRICE"].ToString());//库存数量 //if (_Stock > 0) //{ decimal _Count = 1;//_Stock > 1 ? 1 : _Stock;// _inputCount.Count; if (isReturn && _Count > 0) { _Count = _Count * -1; } decimal _Unit = 2;//_inputCount.Unit; decimal _UnitCount = (_Unit == 2 ? decimal.Parse(_DataTable.Rows[0]["BOXENTRY_COUNT"].ToString()) : 1); decimal _TotalCount = (_Unit == 2 ? decimal.Parse(_DataTable.Rows[0]["BOXENTRY_COUNT"].ToString()) : 1) * _Count; decimal _PurchasePrice = (_Unit == 2 ? decimal.Parse(_DataTable.Rows[0]["COMMODITY_BOXSELLPRICE"].ToString()) : decimal.Parse(_DataTable.Rows[0]["SELLTAXPRICE"].ToString())); decimal _TotalPrice = _Count * _PurchasePrice; string _Commodity_Id = _DataTable.Rows[0]["SELLERCOMMODITY_ID"].ToString(); string _Commodity_Name = _DataTable.Rows[0]["COMMODITY_NAME"].ToString(); string _Commodity_Code = _DataTable.Rows[0]["COMMODITY_CODE"].ToString(); string _Commodity_Rule = _DataTable.Rows[0]["COMMODITY_RULE"].ToString(); string _Purchase_id = DBHelper.QueryOdbc("SELECT PURCHASE_ID FROM T_PURCHASE " + "WHERE PURCHASE_CODE='" + PurchaseCode + "'").Tables[0].Rows[0]["PURCHASE_ID"].ToString(); decimal _MaxID = 0; try { _MaxID = decimal.Parse(DBHelper.QueryOdbc("SELECT MAX(PURCHASEDETAIL_ID) FROM T_PURCHASEDETAIL").Tables[0].Rows[0][0].ToString()); } catch { _MaxID = 0; } string _insertsql = "INSERT INTO T_PURCHASEDETAIL ( PURCHASEDETAIL_ID, PURCHASE_ID, COMMODITY_ID, " + "COMMODITY_NAME, COMMODITY_CODE, COMMODITY_BARCODE, COMMODITY_RULE, SERVERPARTSHOP_ID, " + "UNIT, UNITCOUNT, PURCHASE_COUNT, TOTAL_COUNT, PURCHASE_PRICE, TOTAL_PRICE, PURCHASEDETAIL_DESC) " + "VALUES ('" + (_MaxID + 1) + "','" + _Purchase_id + "','" + _Commodity_Id + "','" + _Commodity_Name + "','" + _Commodity_Code + "','" + Barcode + "','" + _Commodity_Rule + "','" + _QualityHelper.serverpartshop_id + "'," + _Unit + "," + _UnitCount + "," + _Count + "," + _TotalCount + "," + _PurchasePrice + "," + _TotalPrice + ",'" + PurchaseCode + "')"; DBHelper.ExecuteSqlTran(_insertsql); string sql = "SELECT ISNULL(SUM(TOTAL_PRICE),0) FROM T_PURCHASEDETAIL " + "WHERE PURCHASEDETAIL_DESC = '" + PurchaseCode + "'"; DataTable dt = DBHelper.QueryOdbc(sql).Tables[0]; if (dt.Rows[0][0].ToString() != "") { string _Strsql = "UPDATE T_PURCHASE SET PURCHASE_AMOUNT=" + dt.Rows[0][0].ToString() + " WHERE PURCHASE_CODE = '" + PurchaseCode + "'"; DBHelper.ExecuteSqlTran(_Strsql); //更新采购单据DataGridView中的金额信息 dgv_Purchase.CurrentRow.Cells["purchase_amount"].Value = dt.Rows[0][0]; lblOrderMess.Text = "当前单据合计金额:" + dgv_Purchase.CurrentRow.Cells["purchase_amount"].EditedFormattedValue.ToString(); lblMess.Text = _Commodity_Name + "添加成功"; } //} //else //{ // lblMess.Text = _DataTable.Rows[0]["COMMODITY_NAME"].ToString() + "【库存不足】"; //} //} } } catch (Exception ex) { return false; } } return true; } /// /// 更新采购详情信息 /// /// 采购单号 /// 商品条码 /// 采购数量 /// 采购单位 /// 单位数量 /// 采购单价 /// 采购总数 /// 采购金额 /// private bool UpdateDetail(string PurchaseCode, string Barcode, decimal Count, decimal Unit, decimal UnitCount, decimal PurchasePrice, decimal TotalCount, decimal TotalPrice) { string strUpdateSql = string.Format("UPDATE T_PURCHASEDETAIL SET UNIT = {0},UNITCOUNT = {1}," + "PURCHASE_COUNT = {2},TOTAL_COUNT = {3},PURCHASE_PRICE = {4},TOTAL_PRICE = {5} " + "WHERE PURCHASEDETAIL_DESC = '{6}' AND COMMODITY_BARCODE = '{7}'", Unit, UnitCount, Count, TotalCount, PurchasePrice, TotalPrice, PurchaseCode, Barcode); try { DBHelper.ExecuteSqlTran(strUpdateSql); string sql = "SELECT ISNULL(SUM(TOTAL_PRICE),0) FROM T_PURCHASEDETAIL " + "WHERE PURCHASEDETAIL_DESC = '" + PurchaseCode + "'"; DataTable dt = DBHelper.QueryOdbc(sql).Tables[0]; if (dt.Rows[0][0].ToString() != "") { //更新采购单主表金额信息 string _Strsql = "UPDATE T_PURCHASE SET PURCHASE_AMOUNT=" + dt.Rows[0][0].ToString() + " WHERE PURCHASE_CODE = '" + PurchaseCode + "'"; DBHelper.ExecuteSqlTran(_Strsql); //更新采购单据DataGridView中的金额信息 dgv_Purchase.CurrentRow.Cells["purchase_amount"].Value = dt.Rows[0][0]; lblOrderMess.Text = "当前单据合计金额:" + dgv_Purchase.CurrentRow.Cells["purchase_amount"].EditedFormattedValue.ToString(); } return true; } catch (Exception ex) { return false; } } /// /// 删除采购详情记录 /// /// 商品条码 /// 采购单号 /// private bool DeleteDetail(string Barcode, string PurchaseCode) { string strDeleteSql = string.Format("DELETE FROM T_PURCHASEDETAIL " + "WHERE PURCHASEDETAIL_DESC = '{0}' AND COMMODITY_BARCODE = '{1}'", PurchaseCode, Barcode); try { DBHelper.ExecuteSqlTran(strDeleteSql); string sql = "SELECT ISNULL(SUM(TOTAL_PRICE),0) FROM T_PURCHASEDETAIL " + "WHERE PURCHASEDETAIL_DESC = '" + PurchaseCode + "'"; DataTable dt = DBHelper.QueryOdbc(sql).Tables[0]; if (dt.Rows[0][0].ToString() != "") { //更新采购单主表金额信息 string _Strsql = "UPDATE T_PURCHASE SET PURCHASE_AMOUNT=" + dt.Rows[0][0].ToString() + " WHERE PURCHASE_CODE = '" + PurchaseCode + "'"; DBHelper.ExecuteSqlTran(_Strsql); //更新采购单据DataGridView金额信息 dgv_Purchase.CurrentRow.Cells["purchase_amount"].Value = dt.Rows[0][0]; } return true; } catch (Exception ex) { return false; } } #endregion #region 将ENTER键转换为TAB //protected override void OnKeyUp(KeyEventArgs e) //{ // base.OnKeyUp(e); // if (e.KeyCode == Keys.Enter && dgv_Detail.Focus()) // { // if (dgv_Detail.CurrentCell.OwningColumn.Name == "purchase_count") // { // e.Handled = true; // SendKeys.Send("{TAB}"); // } // else // { // e.Handled = true; // int _RowIndex = dgv_Detail.CurrentRow.Index; // if (_RowIndex + 1 < dgv_Detail.Rows.Count) // { // dgv_Detail.Rows[_RowIndex + 1].Cells["purchase_count"].Selected = true; // } // } // } //} protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { switch (keyData) { case Keys.Enter: { if (dgv_Detail.IsCurrentCellInEditMode) { if (dgv_Detail.CurrentCell.OwningColumn.Name == "purchase_count") { SendKeys.Send("{TAB}"); return true; } else { int _RowIndex = dgv_Detail.CurrentRow.Index; if (_RowIndex + 1 < dgv_Detail.Rows.Count) { dgv_Detail.Rows[_RowIndex + 1].Cells["purchase_count"].Selected = true; } else { SendKeys.Send("{TAB}"); } return true; } } } return false; } return base.ProcessCmdKey(ref msg, keyData); } #endregion private void txtBarcodeAdd_TextChanged(object sender, EventArgs e) { string _Barcode = txtBarcodeAdd.Text.Trim(); if (_Barcode != "") { DataTable _DataTable = dgv_Commodity.DataSource as DataTable; //搜索全部包含输入内容的商品 _DataTable.DefaultView.RowFilter = "COMMODITY_BARCODE LIKE '%" + txtBarcodeAdd.Text + "%' OR COMMODITY_NAME LIKE '%" + txtBarcodeAdd.Text + "%'"; } #region 按类别搜索包含输入内容的商品(可选) //if (cobTwoType.Text != "全部") //{ // string TYPE_ID = cobTwoType.SelectedValue.ToString(); // _DataTable.DefaultView.RowFilter = "SELLERCOMMODITYTYPE_ID = " + TYPE_ID + // " AND (COMMODITY_BARCODE LIKE '%" + txtBarcodeAdd.Text + // "%' OR COMMODITY_NAME LIKE '%" + txtBarcodeAdd.Text + "%')"; //} //else //{ // string TYPE_ID = ""; // DataView _TypeView = _DataTable.DefaultView; // if (cobOneType.Text != "全部") // { // string TYPE_PID = cobOneType.SelectedValue.ToString(); // _TypeView.RowFilter = "TYPE_PID=" + TYPE_PID + " or TYPE_NAME = '全部'"; // } // else // { // string TYPE_PID = cobOneType.SelectedValue.ToString(); // _TypeView.RowFilter = "TYPE_NAME is not null"; // } // for (int i = 0; i < _TypeView.ToTable().Rows.Count; i++) // { // TYPE_ID += (TYPE_ID == "" ? _TypeView.ToTable().Rows[i]["SELLERCOMMODITYTYPE_ID"].ToString() // : "," + _TypeView.ToTable().Rows[i]["SELLERCOMMODITYTYPE_ID"].ToString()); // } // _DataTable.DefaultView.RowFilter = "SELLERCOMMODITYTYPE_ID IN (" + TYPE_ID + // ") AND (COMMODITY_BARCODE LIKE '%" + txtBarcodeAdd.Text + // "%' OR COMMODITY_NAME LIKE '%" + txtBarcodeAdd.Text + "%')"; //} #endregion } /// /// 输入框刷条码添加采购商品 /// /// /// private void txtBarcodeAdd_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { string _Barcode = txtBarcodeAdd.Text.Trim(); txtBarcodeAdd.Clear(); txtBarcodeAdd.Focus(); if (_Barcode != "") { if (dgv_Purchase.Rows.Count > 0) { if (dgv_Purchase.CurrentRow.Cells["purchase_state"].EditedFormattedValue.ToString() == "填写中") { if (DataUpdate) { lblMess.Text = "商品库未更新,请先点击【商品同步】"; MessageBox.Show("商品库未更新,不能添加商品;\n请点击商品同步进行商品库信息更新!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.ServiceNotification); return; } if (DetailAdd(_Barcode, dgv_Purchase.CurrentRow.Cells["purchase_code"].EditedFormattedValue.ToString(), IsReturn)) { dgv_Purchase_RowEnter(null, new DataGridViewCellEventArgs(dgv_Purchase.CurrentRow. Cells["purchase_code"].ColumnIndex, dgv_Purchase.CurrentRow.Index)); } else { lblMess.Text = "添加失败,请重试"; } } else { lblMess.Text = "配送单已提交,如需添加商品请先新增配送单"; } } } else { if (dgv_Commodity.Rows.Count == 0) { getCommodity(); } } } } private void dgv_Detail_CellClick(object sender, DataGridViewCellEventArgs e) { if (dgv_Detail.Rows.Count > 0) { string strColumnsName = dgv_Detail.CurrentCell.OwningColumn.Name; switch (strColumnsName) { case "DetailDelete": string _PurchaseCode = dgv_Purchase.CurrentRow.Cells["purchase_code"].EditedFormattedValue.ToString(); string _Barcode = dgv_Detail.CurrentRow.Cells["commodity_barcode"].EditedFormattedValue.ToString(); if (dgv_Purchase.CurrentRow.Cells["purchase_state"].EditedFormattedValue.ToString() == "填写中") { if (DeleteDetail(_Barcode, _PurchaseCode)) { dgv_Purchase_RowEnter(null, new DataGridViewCellEventArgs(dgv_Purchase.CurrentRow. Cells["purchase_code"].ColumnIndex, dgv_Purchase.CurrentRow.Index)); } else { lblMess.Text = "提示:配送单详情信息删除失败,请重试!"; } } else { lblMess.Text = "提示:当前订单已提交,不可更改配送详情信息!"; } break; } } } private void btnRefresh_Click(object sender, EventArgs e) { GetData(); cobState_DropDownClosed(null, null); } /// /// 更新商品库数据 /// /// /// private void btnPriceUpdate_Click(object sender, EventArgs e) { ShowWaiteForm(); _WaitForm.ShowMessage("正在更新商品库存信息..."); string strDate = ""; //判断是否首次点击商品同步 if (!FirstDown) { try { string _strSelect = "SELECT MAX(ADDTIME) AS ADDTIME FROM T_SELLERCOMMODITY"; DataTable _DataTable = DBHelper.QueryOdbc(_strSelect).Tables[0]; if (_DataTable.Rows.Count > 0) { strDate = _DataTable.Rows[0]["ADDTIME"].ToString(); } } catch { strDate = ""; } } //string actionType = "DownLoadSeller"; //string actionData = "SellerCommodityById"; //string ajaxURL = "http://" + _QualityHelper.dbip + ":8010"; //string ajaxPath = "/MobileServicePlatform/Handler/handler_ajax.ashx"; if (strDate != "") { try { if (DateTime.Parse(_ServerDate) < DateTime.Parse(strDate)) { strDate = ""; } } catch { strDate = ""; } } if (downLoadHelper.SellerCommodityById(_QualityHelper.serverpartshop_id, strDate, true, PriceType)) //actionType, actionData, ajaxURL, ajaxPath)) { DataUpdate = false; FirstDown = false; } //获取当前门店收藏夹商品信息 string url = str_GetAutoGoods + "&SERVERPARTSHOP_ID=" + _QualityHelper.serverpartshop_id; try { string _Result = downLoadHelper.GetAjaxData(url, true); if (_Result != "") { using (DataSet _DataSet = JsonHelper.JsonToDataSet(_Result)) { if (_DataSet != null) { for (int i = 0; i < _DataSet.Tables.Count; i++) { switch (_DataSet.Tables[i].TableName.ToLower()) { case "t_sellercommodity": if (_DataSet.Tables[0].Rows.Count > 0) { DataTable _GoodsTable = DBHelper.QueryOdbc("select * from t_goodsinfo where 1=0").Tables[0]; string _insertsql = downLoadHelper.DataBaseInsert(_DataSet.Tables[0], _GoodsTable, "t_goodsinfo"); DBHelper.ExecuteSqlTran("delete from t_goodsinfo"); DBHelper.ExecuteSqlTran(_insertsql); } else { DBHelper.ExecuteSqlTran("delete from t_goodsinfo"); } break; } } } else { DBHelper.ExecuteSqlTran("delete from t_goodsinfo"); } } } else { DBHelper.ExecuteSqlTran("delete from t_goodsinfo"); } } catch { } //更新已添加商品价格数量 //string _UpdateSql = "UPDATE T_PURCHASEDETAIL A SET A.PURCHASE_PRICE = ISNULL(TRUNCNUM(B.COMMODITY_BOXSELLPRICE,6),0)," + // "A.TOTAL_PRICE = CASE WHEN A.PURCHASE_COUNT > ISNULL(TRUNCNUM(B.COMMODITY_BOXCOSTPRICE, 6), 0) " + // "THEN ISNULL(TRUNCNUM(B.COMMODITY_BOXCOSTPRICE,6),0) ELSE A.PURCHASE_COUNT END * " + // "ISNULL(TRUNCNUM(B.COMMODITY_BOXSELLPRICE, 6), 0)," + // "A.PURCHASE_COUNT = CASE WHEN A.PURCHASE_COUNT > ISNULL(TRUNCNUM(B.COMMODITY_BOXCOSTPRICE, 6), 0) " + // "THEN ISNULL(TRUNCNUM(B.COMMODITY_BOXCOSTPRICE,6),0) ELSE A.PURCHASE_COUNT END," + // " A.TOTAL_COUNT = CASE WHEN A.PURCHASE_COUNT > ISNULL(TRUNCNUM(B.COMMODITY_BOXCOSTPRICE, 6), 0) " + // "THEN ISNULL(TRUNCNUM(B.COMMODITY_BOXCOSTPRICE,6),0) ELSE A.PURCHASE_COUNT END * " + // "CASE A.UNIT WHEN 2 THEN ISNULL(TRUNCNUM(D.BOXENTRY_COUNT,6),0) ELSE 1 END," + // "A.UNITCOUNT = CASE A.UNIT WHEN 2 THEN ISNULL(TRUNCNUM(D.BOXENTRY_COUNT,6),0) ELSE 1 END " + // "FROM T_SELLERCOMMODITY D LEFT JOIN T_ROLEPRICE B ON D.SELLERCOMMODITY_ID = B.SELLERCOMMODITY_ID " + // "WHERE A.COMMODITY_ID = D.SELLERCOMMODITY_ID AND A.PURCHASEDETAIL_DESC IN ( SELECT PURCHASE_CODE " + // "FROM T_PURCHASE C WHERE C.PURCHASE_STATE = 0 AND C.SERVERPARTSHOP_ID = " + _QualityHelper.serverpartshop_id + ") "; //try //{ // DBHelper.ExecuteSqlTran(_UpdateSql); // DBHelper.ExecuteSqlTran("UPDATE T_PURCHASE A SET A.PURCHASE_AMOUNT = " + // "(SELECT SUM(B.TOTAL_PRICE) FROM T_PURCHASEDETAIL B " + // "WHERE A.PURCHASE_CODE = B.PURCHASEDETAIL_DESC GROUP BY B.PURCHASEDETAIL_DESC) " + // "WHERE A.PURCHASE_STATE = 0 AND A.SERVERPARTSHOP_ID = " + _QualityHelper.serverpartshop_id); //} //catch (Exception ex) //{ } if (dgv_Purchase.Rows.Count > 0) { dgv_Purchase_RowEnter(null, new DataGridViewCellEventArgs(dgv_Purchase.CurrentRow.Cells["purchase_code"].ColumnIndex, dgv_Purchase.CurrentRow.Index)); } getCommodity(); getType(); getFavorite(); _WaitForm.ShowMessage("商品库存信息更新完成"); lblMess.Text = "商品库存信息更新完成。"; try { string _strSelect = "SELECT MAX(ADDTIME) AS ADDTIME FROM T_SELLERCOMMODITY"; DataTable _DataTable = DBHelper.QueryOdbc(_strSelect).Tables[0]; if (_DataTable.Rows.Count > 0) { strDate = _DataTable.Rows[0]["ADDTIME"].ToString(); } } catch { strDate = "1970/01/01 00:00:00"; } if (strDate == "") { strDate = "1970/01/01 00:00:00"; } //获取商品版本及促销信息 try { string _Result = downLoadHelper.GetAjaxData(str_GetScoreSetting + "&action_data=" + _QualityHelper.serverpartshop_id, true); if (_Result != "") { //_Result = _Result.Replace("[", "").Replace("]", ""); using (DataTable _DataTable = JsonHelper.ToDataTable(_Result)) { if (_DataTable.Rows.Count > 0) { _Score = _DataTable.Rows[0]["SCORE_NAME"].ToString(); _ServerDate = _DataTable.Rows[0]["ADDTIME"].ToString(); } } } lblSale.Text = _Score; if (DateTime.Parse(_ServerDate) != DateTime.Parse(strDate)) { lblUpdate.Text = "商品库有更新,请点击【商品同步】"; DataUpdate = true; } else { lblUpdate.Text = "当前商品库版本:" + DateTime.Parse(strDate).ToString("yyyyMMddHHmmss") + "(最新)"; } } catch { lblSale.Text = ""; lblUpdate.Text = "当前商品库版本:" + DateTime.Parse(strDate).ToString("yyyyMMddHHmmss") + "(最新)"; } _WaitForm.Close(); _WaitForm.Dispose(); } /// /// 采购单列表筛选 /// /// /// private void cobState_DropDownClosed(object sender, EventArgs e) { DataTable _DataTable = dgv_Purchase.DataSource as DataTable; switch (cobState.Text) { case "全部": _DataTable.DefaultView.RowFilter = ""; break; case "待提交": _DataTable.DefaultView.RowFilter = "purchase_state not in ('已提交','已关闭')"; break; case "已提交": _DataTable.DefaultView.RowFilter = "purchase_state = '已提交'"; break; case "已关闭": _DataTable.DefaultView.RowFilter = "purchase_state = '已关闭'"; break; } } /// /// 数据库表升级 /// /// private bool DataBaseUpdate() { try { DBHelper.QueryOdbc("select 1 from t_goodsinfo"); } catch { string _CreateTableSql = "create table dba.t_goodsinfo (sellercommodity_id decimal(9, 0) not null," + "sellerbusinesstype decimal(9, 0) null,commodity_code char(200) null,commodity_name char(200) null," + "commodity_barcode char(50) null,commodity_boxcode char(50) null,commodity_allname char(50) null," + "commodity_en char(50) null,commodity_unit char(100) null,commodity_rule char(100) null," + "commodity_ori char(80) null,commodity_grade char(100) null,commodity_state decimal(8, 0) null," + "commodity_desc char(3000) null,addtime timestamp null,isbulk decimal(6, 0) null," + "meteringmethod decimal(6, 0) null,seller_id decimal(9, 0) null,sellercommoditytype_id decimal(9, 0) null," + "boxentry_count decimal(16, 6) null,supplier_id decimal(9, 0) null,shop_price decimal(16, 6) null," + "shop_boxprice decimal(16, 6) null,shop_avrprice decimal(16, 6) null,surplus_stock decimal(16, 6) null," + "image_content char(500) null,table_id decimal(8, 0) null,image_title char(200) null,image_date timestamp null," + "image_path char(200) null,constraint t_goodsinfo_pk primary key(sellercommodity_id ))"; try { DBHelper.ExecuteSqlTran(_CreateTableSql); } catch (Exception ex) { LogHelper.WriteServiceLog(ex.Message); return false; } } return true; } private void dgv_Detail_CellMouseEnter(object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex >= 1 && e.RowIndex >= 0 && dgv_Detail.Columns[e.ColumnIndex].Name != "DetailDelete") { dgv_Detail[e.ColumnIndex, e.RowIndex].ToolTipText = dgv_Detail[e.ColumnIndex, e.RowIndex].EditedFormattedValue.ToString(); } } private void btnOrderEnd_Click(object sender, EventArgs e) { OrderEnd _OrderEnd = new OrderEnd(true, _QualityHelper.serverpartshop_id, _QualityHelper.serverpartcode, _QualityHelper.sellworkercode); _OrderEnd.TopMost = true; _OrderEnd.FormBorderStyle = FormBorderStyle.FixedDialog; _OrderEnd.ImeMode = ImeMode.Off; _OrderEnd.ShowDialog(); } private void dgv_Commodity_MouseMove(object sender, MouseEventArgs e) { //if (e.X + 210 > dgv_Commodity.Width) //{ // picGoods.Location = new Point(e.X - 200, e.Y + 20); //} //else //{ // picGoods.Location = new Point(e.X + 15, e.Y + 20); //} } private void dgv_Commodity_RowEnter(object sender, DataGridViewCellEventArgs e) { //if (e.RowIndex >= 0) //{ // string _ImgUri = dgv_Commodity.Rows[e.RowIndex].Cells["PicURI"].EditedFormattedValue.ToString(); // if (_ImgUri != "") // { // try // { // Image _Image = Image.FromStream(WebRequest.Create(_ImgUri.Replace('-', '/')).GetResponse().GetResponseStream()); // picGoods.Image = _Image; // if (!picGoods.Visible) // { // picGoods.Visible = true; // } // } // catch // { // picGoods.Image = null; // } // } // else // { // picGoods.Image = null; // } //} } private void ServerPartPurchase_FormClosing(object sender, FormClosingEventArgs e) { string _StrSelectSql = "SELECT PURCHASE_CODE FROM T_PURCHASE " + "WHERE PURCHASE_CODE LIKE 'T%' AND PURCHASE_STATE = 0 AND " + "SERVERPARTSHOP_ID = " + _QualityHelper.serverpartshop_id; DataTable _PurchaseTable = DBHelper.QueryOdbc(_StrSelectSql).Tables[0]; if (_PurchaseTable.Rows.Count > 0 && IsReturn) { DialogResult _DialogResult = MessageBox.Show("当前存在未提交的退货单\n若退出将导致退货单丢失是否继续?", "系统提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, MessageBoxOptions.ServiceNotification); if (_DialogResult == DialogResult.Yes) { List _list = new List(); string _DeleteSql = "DELETE FROM T_PURCHASE " + "WHERE PURCHASE_CODE = '" + _PurchaseTable.Rows[0][0] + "'"; string _DeleteSqls = "DELETE FROM T_PURCHASEDETAIL " + "WHERE PURCHASEDETAIL_DESC = '" + _PurchaseTable.Rows[0][0] + "'"; _list.Add(_DeleteSql); _list.Add(_DeleteSqls); try { DBHelper.ExecuteSqlTran(_list); } catch (Exception ex) { MessageBox.Show("退货单删除失败,请重试!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); e.Cancel = true; } } else { e.Cancel = true; } } //DialogResult _DialogResult = MessageBox.Show("即将退出骋客优品报货系统\n是否立即启动收银系统?", "系统i提示", // MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1); //if (_DialogResult == DialogResult.Yes) //{ // try // { // string _path = @"D:\HighWayPosSoft\AutoUpdateEx.exe"; // ProcessStartInfo info = new ProcessStartInfo(_path); // info.WorkingDirectory = System.IO.Path.GetDirectoryName(_path); // Process.Start(info); // } // catch // { } //} //else if (_DialogResult == DialogResult.Cancel) //{ // e.Cancel = true; //} } private void ServerPartPurchase_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Escape) { this.Close(); } } /// /// 分解数据表 /// /// 需要分解的表 /// 每个表包含的数据量 /// public DataSet SplitDataTable(DataTable originalTab, int rowsNum) { //获取所需创建的表数量 int tableNum = (int)Math.Ceiling((decimal)originalTab.Rows.Count / rowsNum); //获取数据余数 int remainder = originalTab.Rows.Count % rowsNum; DataSet ds = new DataSet(); DataTable[] tableSlice = new DataTable[tableNum]; //Save orginal columns into new table. for (int c = 0; c < tableNum; c++) { tableSlice[c] = originalTab.Clone(); } //Import Rows for (int i = 0; i < tableNum; i++) { for (int j = i * rowsNum; j < ((i + 1) * rowsNum); j++) { if (j >= originalTab.Rows.Count) { break; } tableSlice[i].ImportRow(originalTab.Rows[j]); } } //add all tables into a dataset for (int i = 0; i < tableSlice.Count(); i++) { tableSlice[i].TableName = "Table" + i.ToString(); ds.Tables.Add(tableSlice[i]); } return ds; } private void lblMess_MouseEnter(object sender, EventArgs e) { ToolTip _ToolTip = new ToolTip { IsBalloon = false }; _ToolTip.SetToolTip(lblMess, lblMess.Text); } #region 方法 -> 新增退货单 private void btnReturn_Click(object sender, EventArgs e) { try { string _StrSelectSql = "SELECT PURCHASE_CODE FROM T_PURCHASE " + "WHERE PURCHASE_STATE = 0 AND SERVERPARTSHOP_ID = " + _QualityHelper.serverpartshop_id; DataTable _PurchaseTable = DBHelper.QueryOdbc(_StrSelectSql).Tables[0]; if (_PurchaseTable.Rows.Count > 0) { if (IsReturn) { MessageBox.Show("已存在正在填写的退货单!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.ServiceNotification); } else { MessageBox.Show("添加失败,存在正在填写的报货单!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.ServiceNotification); } return; } IsReturn = true; btnPriceUpdate_Click(null, null); //if (DataUpdate) //{ // MessageBox.Show("商品库未更新,不能新增订单;\n请点击商品同步进行商品库信息更新!", "系统提示", MessageBoxButtons.OK, // MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); // return; //} string sqls = "SELECT 1 FROM T_PURCHASE WHERE PURCHASE_STATE = 0 AND SERVERPARTSHOP_ID = " + _QualityHelper.serverpartshop_id; DataTable dts = DBHelper.QueryOdbc(sqls).Tables[0]; //获取最大内码 if (dts.Rows.Count == 0) { decimal _MaxID = 0; try { _MaxID = decimal.Parse(DBHelper.QueryOdbc("SELECT MAX(PURCHASE_ID) " + "FROM T_PURCHASE").Tables[0].Rows[0][0].ToString()); } catch { _MaxID = 0; } //_MaxID + 1 Random ra = new Random(Guid.NewGuid().GetHashCode()); string PurchaseCode = "T" + DateTime.Now.ToString("yy") + _QualityHelper.shopcode + TimeHelper.ConvertDataTimeLong(DateTime.Now).ToString() + ra.Next(1, 100).ToString().PadLeft(2, '0'); string sql = "INSERT INTO T_PURCHASE (PURCHASE_ID,PURCHASE_CODE,SERVERPARTSHOP_ID," + "PURCHASE_PERSON,PURCHASE_DATE,RESERVE_DATE,PURCHASE_TYPE,PURCHASE_STATE) " + "VALUES('" + (_MaxID + 1) + "','" + PurchaseCode + "','" + _QualityHelper.serverpartshop_id + "','" + _QualityHelper.shopname + "',DATETIME('" + DateTime.Now.ToString() + "'),DATETIME('" + DateTime.Now.ToString() + "'),'1000','0')"; DBHelper.ExecuteSqlTran(sql); if (dgv_Purchase.Rows.Count > 0) { DialogResult _DialogResult = MessageBox.Show("退货单添加成功,是否添加已选订单商品信息?", "系统提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, MessageBoxOptions.ServiceNotification); if (_DialogResult == DialogResult.Yes) { //string _SelectSql = "SELECT COMMODITY_BARCODE FROM T_PURCHASEDETAIL " + // "WHERE PURCHASEDETAIL_DESC IN (SELECT TOP 1 PURCHASE_CODE " + // "FROM T_PURCHASE WHERE PURCHASE_STATE <> 0 ORDER BY RESERVE_DATE DESC)"; ShowWaiteForm(); _WaitForm.ShowMessage("正在添加退货商品..."); string _SelectSql = "SELECT COMMODITY_BARCODE FROM T_PURCHASEDETAIL " + "WHERE PURCHASEDETAIL_DESC IN ('" + dgv_Purchase.CurrentRow.Cells["purchase_code"].EditedFormattedValue.ToString() + "')"; using (DataTable _DataTable = DBHelper.QueryOdbc(_SelectSql).Tables[0]) { for (int i = 0; i < _DataTable.Rows.Count; i++) { DetailAdd(_DataTable.Rows[i]["COMMODITY_BARCODE"].ToString(), PurchaseCode, IsReturn); } } _WaitForm.Close(); _WaitForm.Dispose(); } } GetData(); cobState.Text = "待提交"; cobState_DropDownClosed(null, null); } else { MessageBox.Show("已存在正在填写的报货单!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.ServiceNotification); } } catch (Exception ex) { } } #endregion } }