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
}
}