2695 lines
142 KiB
C#
2695 lines
142 KiB
C#
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();
|
||
|
||
/// <summary>
|
||
/// 是否退货模式
|
||
/// </summary>
|
||
bool IsReturn = false;
|
||
|
||
/// <summary>
|
||
/// 价格类型
|
||
/// </summary>
|
||
string PriceType { get; set; } = "";
|
||
|
||
/// <summary>
|
||
/// 启动后首次下载
|
||
/// </summary>
|
||
bool FirstDown { get; set; }
|
||
|
||
/// <summary>
|
||
/// 是否存在更新
|
||
/// </summary>
|
||
bool DataUpdate { get; set; }
|
||
|
||
/// <summary>
|
||
/// 为了是主界面能够移动
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
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
|
||
|
||
/// <summary>
|
||
/// 显示我的收藏
|
||
/// </summary>
|
||
private void getFavorite()
|
||
{
|
||
DataTable _DataTable = dgv_Commodity.DataSource as DataTable;
|
||
if (_DataTable.Select("Favorite = 1").Count() > 0)
|
||
{
|
||
cobOneType.SelectedValue = 0;
|
||
}
|
||
cobOneType_DropDownClosed(null, null);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 绑定商品类别下拉列表
|
||
/// </summary>
|
||
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";
|
||
}
|
||
|
||
/// <summary>
|
||
/// 绑定商品列表
|
||
/// </summary>
|
||
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<string> _list = new List<string>();
|
||
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<string> _List = new List<string>();
|
||
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
|
||
|
||
/// <summary>
|
||
/// 关闭超时订单
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
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 数据加载方法
|
||
/// <summary>
|
||
/// 采购单列表数据
|
||
/// </summary>
|
||
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
|
||
|
||
/// <summary>
|
||
/// 提交报货单
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
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<string> _ListPurchaseCode = new List<string>();
|
||
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;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 一级类别选择事件
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
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 + ")";
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 二级类别选择事件
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
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;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 商品列表选择
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
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;
|
||
}
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 采购详情数量编辑更新
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
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 采购单详情操作
|
||
/// <summary>
|
||
/// 添加采购单详情
|
||
/// </summary>
|
||
/// <param name="Barcode">商品条码</param>
|
||
/// <param name="PurchaseCode">采购单号</param>
|
||
/// <returns></returns>
|
||
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;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 更新采购详情信息
|
||
/// </summary>
|
||
/// <param name="PurchaseCode">采购单号</param>
|
||
/// <param name="Barcode">商品条码</param>
|
||
/// <param name="Count">采购数量</param>
|
||
/// <param name="Unit">采购单位</param>
|
||
/// <param name="UnitCount">单位数量</param>
|
||
/// <param name="PurchasePrice">采购单价</param>
|
||
/// <param name="TotalCount">采购总数</param>
|
||
/// <param name="TotalPrice">采购金额</param>
|
||
/// <returns></returns>
|
||
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;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 删除采购详情记录
|
||
/// </summary>
|
||
/// <param name="Barcode">商品条码</param>
|
||
/// <param name="PurchaseCode">采购单号</param>
|
||
/// <returns></returns>
|
||
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
|
||
}
|
||
|
||
/// <summary>
|
||
/// 输入框刷条码添加采购商品
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
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);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 更新商品库数据
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
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();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 采购单列表筛选
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
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;
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 数据库表升级
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
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<string> _list = new List<string>();
|
||
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();
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 分解数据表
|
||
/// </summary>
|
||
/// <param name="originalTab">需要分解的表</param>
|
||
/// <param name="rowsNum">每个表包含的数据量</param>
|
||
/// <returns></returns>
|
||
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
|
||
}
|
||
}
|