using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
using Newtonsoft.Json.Linq;
using RunUpdateExe;
using System.Diagnostics;
using System.IO;
namespace InvoicingTool
{
public partial class CheckCommodity : Form
{
BackgroundWorker CheckWorker = new BackgroundWorker();
QualityHelper _QualityHelper = new QualityHelper();
WaiteFrom _WaitForm;
private string _serverpartshop_id { get; set; }
private string _serverpartcode { get; set; }
private string _shopcode { get; set; }
private string _machinecode { get; set; }
private string _sellworkername { get; set; }
public string CheckDate { get; set; }
public CheckCommodity()
{
InitializeComponent();
CheckWorker.WorkerReportsProgress = true;
CheckWorker.WorkerSupportsCancellation = true;
CheckWorker.DoWork += CheckWorkerDoWork_Handler;
CheckWorker.ProgressChanged += ProgressChanged_Handler;
CheckWorker.RunWorkerCompleted += RunWorkerCompleted_Handler;
_serverpartshop_id = _QualityHelper.serverpartshop_id;
//ShowWaiteForm();
//_WaitForm.ShowMessage("正在验证日结信息......");
//APPLoading();
//_WaitForm.Close();
//_WaitForm.Dispose();
}
public void ShowWaiteForm()
{
_WaitForm = WaiteFrom.GetInstance();
//设置WaitForm的父窗体为当前窗体,以便在WaitForm中使用父窗体对象
_WaitForm.TopMost = true;
_WaitForm.Owner = this;
_WaitForm.ShowMessage("加载中......");
_WaitForm.Show();
Application.DoEvents();
_WaitForm.Refresh();
}
///
/// 程序初始化检查
///
private void APPLoading()
{
ArrayList listmode = new ArrayList();
listmode.Insert(0, "请选择盘点模式");
listmode.Add("重新盘点");
listmode.Add("实时盘点");
listmode.Add("仓库盘点");
cobCHECKMODE.DataSource = listmode;
cobCHECKMODE.Text = "仓库盘点";
lblCheckMode.Text = "仓库盘点";
ArrayList listDifference = new ArrayList();
listDifference.Insert(0, "全部");
listDifference.Add("损溢");
listDifference.Add("盘盈");
listDifference.Add("盘亏");
listDifference.Add("无差异");
cobDifference.DataSource = listDifference;
CommodityInfo.Focus();
CommodityInfo.SelectAll();
DownLoadData();
}
private void DownLoadData()
{
_serverpartcode = _QualityHelper.serverpartcode;
_shopcode = _QualityHelper.shopcode;
_machinecode = _QualityHelper.machinecode;
_sellworkername = _QualityHelper.sellworkername;
string _selectsql = "";
string _Url = "http://" + _QualityHelper.dbip + ":" + _QualityHelper.serviceport + "/Service.asmx";
//string _Url = "http://localhost:7080/EShangTechService/Service.asmx";
_selectsql = "SELECT MAX(ENDACCOUNT_DATE) FROM T_ENDACCOUNT WHERE ENDACCOUNT_DATE IS " +
"NOT NULL AND ENDACCOUNT_DATE < NOW() AND SERVERPARTCODE = '" + _serverpartcode +
"' AND SHOPCODE = '" + _shopcode + "' AND MACHINECODE = '" + _machinecode +
"' AND FLAG <> 5 ";
string checkdate = "";
try
{
checkdate = DBHelper.QueryOdbc(_selectsql).Tables[0].Rows[0][0].ToString();
}
catch
{
checkdate = "";
}
//checkdate = "2017-12-28 18:40:39";
if (checkdate != "")
{
_selectsql = "select 1 from t_checkcommoditydetail where checkcommodity_id = ( " +
"select checkcommodity_id from t_checkcommodityex where checkdate = datetime('" +
checkdate + "') and serverpartshop_id = " + _QualityHelper.serverpartshop_id + ")";
if (DBHelper.QueryOdbc(_selectsql).Tables[0].Rows.Count == 0)
{
//string[] args = { "330001", "121005", "2017/10/30 21:32:00", "驿商" };
string[] args = { _serverpartcode, _shopcode, checkdate, _sellworkername, "2000", "0", "0" };
//string[] args = { _QualityHelper.serverpartcode, _QualityHelper.shopcode, "2017/12/03 17:53:57", _QualityHelper.sellworkername, "1000" };
string _Result = "", trade_no = "", trade_num = "", result_code = "", result_desc = "";
ShowWaiteForm();
_WaitForm.ShowMessage("正在查询盘点单......");
try
{
_WaitForm.ShowMessage("正在获取盘点单......");
//_Result = WSHelper.InvokeWebService("http://localhost:7080/EShangTechService/Service.asmx", "CreateCheckBill", args).ToString();
_Result = WSHelper.InvokeWebService(_Url, "CreateCheckBill", args).ToString();
if (_Result != "")
{
JObject _JObject = JObject.Parse(_Result);
trade_no = _JObject["trade_no"].ToString();
trade_num = _JObject["trade_num"].ToString();
result_code = _JObject["result_code"].ToString();
result_desc = _JObject["result_desc"].ToString();
switch (result_code)
{
case "100":
List _List = new List();
DBHelper.ExecuteSqlTran("delete from t_checkcommodityex");
DBHelper.ExecuteSqlTran("delete from t_checkcommoditydetail");
using (DataSet _DataSet = JsonHelper.JsonToDataSet(RealEstate_Extend.ToDecrypt(trade_no).Replace(" ", "")))
{
if (_DataSet != null)
{
if (_DataSet.Tables.Count > 0)
{
DataTable _DataTable = _DataSet.Tables[0];
if (_DataTable.Rows.Count > 0)
{
string _insertColumns = SqlColumns(_DataTable);
string _insertValues = "";
List ValuesList = new List();
foreach (DataRow _Row in _DataTable.Rows)
{
ValuesList.Add(AnySqlValues(_DataTable, _Row));
}
for (int i = 0; i < ValuesList.Count(); i++)
{
_insertValues += (_insertValues == "" ? "(" + ValuesList[i] + ")" : ",(" + ValuesList[i] + ")");
}
_List.Add("INSERT INTO T_CHECKCOMMODITYEX (" + _insertColumns + ") VALUES " + _insertValues);
int _RowCount = 0;
int.TryParse(trade_num, out _RowCount);
if (_RowCount > 0)
{
int _Rownum = 0;
do
{
_Rownum += 200;
if (_Rownum > _RowCount)
{
_WaitForm.ShowMessage("正在下载盘点明细......");
}
else
{
_WaitForm.ShowMessage("正在下载盘点明细......" + (int)((decimal)_Rownum * 100 / _RowCount) + "%");
}
string[] _args = { _serverpartcode, _shopcode, checkdate, _sellworkername, "2000", _Rownum.ToString(), "200" };
//_Result = WSHelper.InvokeWebService("http://localhost:7080/EShangTechService/Service.asmx", "CreateCheckBill", _args).ToString();
_Result = WSHelper.InvokeWebService(_Url, "CreateCheckBill", _args).ToString();
if (_Result != "")
{
_JObject = JObject.Parse(_Result);
trade_no = _JObject["trade_no"].ToString();
trade_num = _JObject["trade_num"].ToString();
result_code = _JObject["result_code"].ToString();
result_desc = _JObject["result_desc"].ToString();
using (DataSet _DetailSet = JsonHelper.JsonToDataSet(RealEstate_Extend.ToDecrypt(trade_num).Replace(" ", "")))
{
if (_DetailSet != null)
{
if (_DetailSet.Tables.Count > 0)
{
DataTable _DetailTable = _DetailSet.Tables[0];
if (_DetailTable.Rows.Count > 0)
{
_insertColumns = SqlColumns(_DetailTable);
_insertValues = "";
ValuesList.Clear();
foreach (DataRow _Row in _DetailTable.Rows)
{
ValuesList.Add(AnySqlValues(_DetailTable, _Row));
}
for (int i = 0; i < ValuesList.Count(); i++)
{
_insertValues += (_insertValues == "" ? "(" + ValuesList[i] + ")" : ",(" + ValuesList[i] + ")");
}
_List.Add("INSERT INTO T_CHECKCOMMODITYDETAIL (" + _insertColumns + ") VALUES " + _insertValues);
}
}
else
{
DialogResult _DialogResult = MessageBox.Show("服务器连接失败,盘点功能不可用,程序将自动退出!", "系统提示",
MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
if (_DialogResult == DialogResult.OK)
{
try
{
Process[] _Process = Process.GetProcessesByName("cashier");
if (_Process.Count() == 0)
{
string _path = @"D:\HighWayPosSoft\AutoUpdateEx.exe";
ProcessStartInfo info = new ProcessStartInfo(_path);
info.WorkingDirectory = System.IO.Path.GetDirectoryName(_path);
Process.Start(info);
}
else
{
IntPtr _IntPtr = _Process[0].MainWindowHandle;
}
}
catch { }
Environment.Exit(0);
}
}
}
else
{
DialogResult _DialogResult = MessageBox.Show("服务器连接失败,盘点功能不可用,程序将自动退出!", "系统提示",
MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
if (_DialogResult == DialogResult.OK)
{
try
{
Process[] _Process = Process.GetProcessesByName("cashier");
if (_Process.Count() == 0)
{
string _path = @"D:\HighWayPosSoft\AutoUpdateEx.exe";
ProcessStartInfo info = new ProcessStartInfo(_path);
info.WorkingDirectory = System.IO.Path.GetDirectoryName(_path);
Process.Start(info);
}
else
{
IntPtr _IntPtr = _Process[0].MainWindowHandle;
}
}
catch { }
Environment.Exit(0);
}
}
}
}
else
{
if (MessageBox.Show("通讯异常,盘点功能暂不可用,请稍后重试", "系统提示", MessageBoxButtons.OK,
MessageBoxIcon.Information, MessageBoxDefaultButton.Button1) == DialogResult.OK)
{
try
{
Process[] _Process = Process.GetProcessesByName("cashier");
if (_Process.Count() == 0)
{
string _path = @"D:\HighWayPosSoft\AutoUpdateEx.exe";
ProcessStartInfo info = new ProcessStartInfo(_path);
info.WorkingDirectory = System.IO.Path.GetDirectoryName(_path);
Process.Start(info);
}
else
{
IntPtr _IntPtr = _Process[0].MainWindowHandle;
}
}
catch { }
Environment.Exit(0);
}
}
Thread.Sleep(500);
} while (_Rownum < _RowCount);
}
else
{
if (MessageBox.Show("盘点单明细正在生成,请稍后重试!", "系统提示", MessageBoxButtons.OK,
MessageBoxIcon.Information, MessageBoxDefaultButton.Button1) == DialogResult.OK)
{
try
{
Process[] _Process = Process.GetProcessesByName("cashier");
if (_Process.Count() == 0)
{
string _path = @"D:\HighWayPosSoft\AutoUpdateEx.exe";
ProcessStartInfo info = new ProcessStartInfo(_path);
info.WorkingDirectory = System.IO.Path.GetDirectoryName(_path);
Process.Start(info);
}
else
{
IntPtr _IntPtr = _Process[0].MainWindowHandle;
}
}
catch { }
Environment.Exit(0);
}
}
if (_List.Count > 0)
{
DBHelper.ExecuteSqlTran(_List);
}
Loading();
//SearchDataView();
}
}
else
{
DialogResult _DialogResult = MessageBox.Show("服务器连接失败,盘点功能不可用,程序将自动退出!", "系统提示",
MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
if (_DialogResult == DialogResult.OK)
{
try
{
Process[] _Process = Process.GetProcessesByName("cashier");
if (_Process.Count() == 0)
{
string _path = @"D:\HighWayPosSoft\AutoUpdateEx.exe";
ProcessStartInfo info = new ProcessStartInfo(_path);
info.WorkingDirectory = System.IO.Path.GetDirectoryName(_path);
Process.Start(info);
}
else
{
IntPtr _IntPtr = _Process[0].MainWindowHandle;
}
}
catch { }
Environment.Exit(0);
}
}
}
else
{
DialogResult _DialogResult = MessageBox.Show("服务器连接失败,盘点功能不可用,程序将自动退出!", "系统提示",
MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
if (_DialogResult == DialogResult.OK)
{
try
{
Process[] _Process = Process.GetProcessesByName("cashier");
if (_Process.Count() == 0)
{
string _path = @"D:\HighWayPosSoft\AutoUpdateEx.exe";
ProcessStartInfo info = new ProcessStartInfo(_path);
info.WorkingDirectory = System.IO.Path.GetDirectoryName(_path);
Process.Start(info);
}
else
{
IntPtr _IntPtr = _Process[0].MainWindowHandle;
}
}
catch { }
Environment.Exit(0);
}
}
}
break;
case "101":
if (MessageBox.Show("盘点单明细正在生成,请稍后重试!", "系统提示", MessageBoxButtons.OK,
MessageBoxIcon.Information, MessageBoxDefaultButton.Button1) == DialogResult.OK)
{
try
{
Process[] _Process = Process.GetProcessesByName("cashier");
if (_Process.Count() == 0)
{
string _path = @"D:\HighWayPosSoft\AutoUpdateEx.exe";
ProcessStartInfo info = new ProcessStartInfo(_path);
info.WorkingDirectory = System.IO.Path.GetDirectoryName(_path);
Process.Start(info);
}
else
{
IntPtr _IntPtr = _Process[0].MainWindowHandle;
}
}
catch { }
Environment.Exit(0);
}
break;
case "201":
if (MessageBox.Show("该门店已停业,不能进行盘点操作", "系统提示", MessageBoxButtons.OK,
MessageBoxIcon.Information, MessageBoxDefaultButton.Button1) == DialogResult.OK)
{
try
{
Process[] _Process = Process.GetProcessesByName("cashier");
if (_Process.Count() == 0)
{
string _path = @"D:\HighWayPosSoft\AutoUpdateEx.exe";
ProcessStartInfo info = new ProcessStartInfo(_path);
info.WorkingDirectory = System.IO.Path.GetDirectoryName(_path);
Process.Start(info);
}
else
{
IntPtr _IntPtr = _Process[0].MainWindowHandle;
}
}
catch { }
Environment.Exit(0);
}
break;
case "300":
if (MessageBox.Show("门店存在调拨退货业务,请前往综管平台处理!", "系统提示", MessageBoxButtons.OK,
MessageBoxIcon.Information, MessageBoxDefaultButton.Button1) == DialogResult.OK)
{
try
{
Process[] _Process = Process.GetProcessesByName("cashier");
if (_Process.Count() == 0)
{
string _path = @"D:\HighWayPosSoft\AutoUpdateEx.exe";
ProcessStartInfo info = new ProcessStartInfo(_path);
info.WorkingDirectory = System.IO.Path.GetDirectoryName(_path);
Process.Start(info);
}
else
{
IntPtr _IntPtr = _Process[0].MainWindowHandle;
}
}
catch { }
Environment.Exit(0);
}
break;
case "301":
//Download_Click(null, null);
if (MessageBox.Show("门店正在盘存,请前往综管平台处理!", "系统提示", MessageBoxButtons.OK,
MessageBoxIcon.Information, MessageBoxDefaultButton.Button1) == DialogResult.OK)
{
try
{
Process[] _Process = Process.GetProcessesByName("cashier");
if (_Process.Count() == 0)
{
string _path = @"D:\HighWayPosSoft\AutoUpdateEx.exe";
ProcessStartInfo info = new ProcessStartInfo(_path);
info.WorkingDirectory = System.IO.Path.GetDirectoryName(_path);
Process.Start(info);
}
else
{
IntPtr _IntPtr = _Process[0].MainWindowHandle;
}
}
catch { }
Environment.Exit(0);
}
break;
case "302":
if (MessageBox.Show("有未校验的结账信息,请前往综管平台处理!", "系统提示", MessageBoxButtons.OK,
MessageBoxIcon.Information, MessageBoxDefaultButton.Button1) == DialogResult.OK)
{
try
{
Process[] _Process = Process.GetProcessesByName("cashier");
if (_Process.Count() == 0)
{
string _path = @"D:\HighWayPosSoft\AutoUpdateEx.exe";
ProcessStartInfo info = new ProcessStartInfo(_path);
info.WorkingDirectory = System.IO.Path.GetDirectoryName(_path);
Process.Start(info);
}
else
{
IntPtr _IntPtr = _Process[0].MainWindowHandle;
}
}
catch { }
Environment.Exit(0);
}
break;
case "303":
if (MessageBox.Show("有未扣除库存的单品信息,请前往综管平台处理!", "系统提示", MessageBoxButtons.OK,
MessageBoxIcon.Information, MessageBoxDefaultButton.Button1) == DialogResult.OK)
{
try
{
Process[] _Process = Process.GetProcessesByName("cashier");
if (_Process.Count() == 0)
{
string _path = @"D:\HighWayPosSoft\AutoUpdateEx.exe";
ProcessStartInfo info = new ProcessStartInfo(_path);
info.WorkingDirectory = System.IO.Path.GetDirectoryName(_path);
Process.Start(info);
}
else
{
IntPtr _IntPtr = _Process[0].MainWindowHandle;
}
}
catch { }
Environment.Exit(0);
}
break;
case "304":
if (MessageBox.Show("结账信息未上传,请先上传结账信息", "系统提示", MessageBoxButtons.OK,
MessageBoxIcon.Information, MessageBoxDefaultButton.Button1) == DialogResult.OK)
{
try
{
Process[] _Process = Process.GetProcessesByName("cashier");
if (_Process.Count() == 0)
{
string _path = @"D:\HighWayPosSoft\AutoUpdateEx.exe";
ProcessStartInfo info = new ProcessStartInfo(_path);
info.WorkingDirectory = System.IO.Path.GetDirectoryName(_path);
Process.Start(info);
}
else
{
IntPtr _IntPtr = _Process[0].MainWindowHandle;
}
}
catch { }
Environment.Exit(0);
}
break;
case "999":
if (MessageBox.Show("通讯异常,盘点功能暂不可用,请稍后重试", "系统提示", MessageBoxButtons.OK,
MessageBoxIcon.Information, MessageBoxDefaultButton.Button1) == DialogResult.OK)
{
try
{
Process[] _Process = Process.GetProcessesByName("cashier");
if (_Process.Count() == 0)
{
string _path = @"D:\HighWayPosSoft\AutoUpdateEx.exe";
ProcessStartInfo info = new ProcessStartInfo(_path);
info.WorkingDirectory = System.IO.Path.GetDirectoryName(_path);
Process.Start(info);
}
else
{
IntPtr _IntPtr = _Process[0].MainWindowHandle;
}
}
catch { }
Environment.Exit(0);
}
break;
}
}
else
{
if (MessageBox.Show("通讯异常,盘点功能暂不可用,请稍后重试", "系统提示", MessageBoxButtons.OK,
MessageBoxIcon.Information, MessageBoxDefaultButton.Button1) == DialogResult.OK)
{
try
{
Process[] _Process = Process.GetProcessesByName("cashier");
if (_Process.Count() == 0)
{
string _path = @"D:\HighWayPosSoft\AutoUpdateEx.exe";
ProcessStartInfo info = new ProcessStartInfo(_path);
info.WorkingDirectory = System.IO.Path.GetDirectoryName(_path);
Process.Start(info);
}
else
{
IntPtr _IntPtr = _Process[0].MainWindowHandle;
}
}
catch { }
Environment.Exit(0);
}
}
}
catch (Exception ex)
{
LogHelper.WriteServiceLog(ex.Message);
DialogResult _DialogResult = MessageBox.Show("服务器连接失败,盘点功能不可用,程序将自动退出!", "系统提示", MessageBoxButtons.OK,
MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
if (_DialogResult == DialogResult.OK)
{
try
{
Process[] _Process = Process.GetProcessesByName("cashier");
if (_Process.Count() == 0)
{
string _path = @"D:\HighWayPosSoft\AutoUpdateEx.exe";
ProcessStartInfo info = new ProcessStartInfo(_path);
info.WorkingDirectory = System.IO.Path.GetDirectoryName(_path);
Process.Start(info);
}
else
{
IntPtr _IntPtr = _Process[0].MainWindowHandle;
}
}
catch { }
}
Environment.Exit(0);
}
_WaitForm.Close();
_WaitForm.Dispose();
}
else
{
Loading();
//SearchDataView();
}
}
else
{
DialogResult _DialogResult = MessageBox.Show("门店无结账记录,盘点功能不可用,程序将自动退出!",
"系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
if (_DialogResult == DialogResult.OK)
{
string _StartAPP = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "AutoUpdateEx.exe");
if (!File.Exists(_StartAPP))
{
_StartAPP = @"D:\HighWayPosSoft\AutoUpdateEx.exe";
}
try
{
Process.Start(_StartAPP);
}
catch { }
Environment.Exit(0);
}
}
}
///
/// 界面信息初始化
///
private void Loading()
{
string _selectsql = "select checkcommodity_id, checkperson, checkdate, serverpart_id, serverpartshop_id," +
" checkcommodity_desc, check_state,check_passport_guid, check_type from t_checkcommodityex " +
"where check_state = 0 and serverpartshop_id = " + _QualityHelper.serverpartshop_id;
try
{
DataTable _DataTable = DBHelper.QueryOdbc(_selectsql).Tables[0];
if (_DataTable.Rows.Count > 0)
{
CheckDate = _DataTable.Rows[0]["checkdate"].ToString();
SearchDataView();
}
else
{
CheckDate = "";
}
}
catch (Exception ex)
{ }
txtShopName.Text = _QualityHelper.shopname;
txtCheckDate.Text = CheckDate;
CommodityInfo.Clear();
CommodityInfo.Focus();
CommodityInfo.SelectAll();
ChangeColor();
}
private void ProgressChanged_Handler(object sender, ProgressChangedEventArgs args)
{
progressBar1.Visible = true;
lblMessage.Visible = true;
progressBar1.Value = args.ProgressPercentage;
lblMessage.Text = "正在上传盘点数据,进度:" + args.ProgressPercentage.ToString() + "%";
}
private void CheckWorkerDoWork_Handler(object sender, DoWorkEventArgs args)
{
}
private void RunWorkerCompleted_Handler(object sender, RunWorkerCompletedEventArgs args)
{
}
///
/// 显示盘点商品列表
///
private void SearchDataView()
{
string _selectsql = "SELECT ROW_NUMBER() OVER (ORDER BY CHECKCOMMODITYDETAIL_ID) " +
"AS CHECKCOMMODITYDETAIL_ID, A.COMMODITY_BARCODE AS COMMODITY_BARCODE," +
"A.COMMODITY_NAME AS COMMODITY_NAME, ISNULL(A.OVERPLUSCOUNT,0) AS " +
"OVERPLUSCOUNT,ISNULL(A.CUROVERPLUSCOUNT,0) AS CUROVERPLUSCOUNT," +
"(ISNULL(A.CUROVERPLUSCOUNT,0) - ISNULL(A.OVERPLUSCOUNT,0)) AS " +
"DIFFERENCECOUNT,A.CHECKDATE AS CHECKDATE " +
"FROM T_CHECKCOMMODITYDETAIL A,T_CHECKCOMMODITYEX B " +
"WHERE A.CHECKCOMMODITY_ID = B.CHECKCOMMODITY_ID AND " +
"B.CHECK_STATE = 0 AND B.SERVERPARTSHOP_ID = " + _serverpartshop_id +
"ORDER BY CHECKCOMMODITYDETAIL_ID";
DataTable _DataTable = DBHelper.QueryOdbc(_selectsql).Tables[0];
if (_DataTable.Rows.Count > 0)
{
//for (int i = 0; i < _DataTable.Rows.Count; i++)
//{
// _DataTable.Rows[i]["checkcommoditydetail_id"] = i + 1;
//}
CheckView.DataSource = _DataTable;
CheckView.Rows[_DataTable.Rows.Count - 1].Selected = true;
CheckView.CurrentCell = CheckView.Rows[_DataTable.Rows.Count - 1].Cells[0];
ChangeColor();
cobDifference_SelectionChangeCommitted(null, null);
}
}
#region 保存商品盘点信息
///
/// 保存商品盘点记录
///
/// 商品条码
/// 盘点数量
/// 盘点时间
/// 盘点类型
private void CommodityInput(string BarCode, string CuroverPlusCount, string InventoryDateTime, string InventoryType)
{
List _List = new List();
//string _selectsql = "select count(*) from t_checkcommodityex where check_state = 0 and " +
// "serverpartshop_id = " + _QualityHelper.serverpartshop_id;
try
{
//if (DBHelper.QueryOdbc(_selectsql).Tables[0].Rows[0][0].ToString() == "0")
//{
// DialogResult _DialogResult = MessageBox.Show("未查询到盘点单,请先下载盘点单信息!", "系统提示", MessageBoxButtons.OK,
// MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
// if (_DialogResult == DialogResult.OK)
// {
// CommodityInfo.Clear();
// CommodityInfo.Focus();
// CommodityInfo.SelectAll();
// return;
// }
//}
string _selectsql = "select a.checkcommoditydetail_id, a.checkcommodity_id, a.serverpartstock_id, isnull(a.overpluscount,0) as overpluscount, " +
"a.checkdate, a.commodity_id, a.commodity_code, isnull(a.curoverpluscount,0) as curoverpluscount, a.commodity_barcode, " +
"a.checkdesc, a.commodity_name, a.commodity_salecount, isnull(a.commodity_totalcount,0) as commodity_totalcount, a.start_date, " +
"a.end_date, a.serverpart_id, a.lastoverpluscount, a.storage_count, a.out_count, a.sale_count " +
"from t_checkcommoditydetail a,t_checkcommodityex b " +
"where a.checkcommodity_id = b.checkcommodity_id and b.check_state = 0 and " +
"b.serverpartshop_id = " + _serverpartshop_id + " and a.commodity_barcode = '" + BarCode + "'";
DataTable _DataTable = DBHelper.QueryOdbc(_selectsql).Tables[0];
if (_DataTable.Rows.Count == 0)
{
//MessageBox.Show("该商品无库存信息", "系统提示", MessageBoxButtons.OK,
// MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
CommodityInfo.Clear();
CommodityInfo.Focus();
CommodityInfo.SelectAll();
return;
}
else
{
_selectsql = "select isnull(sum(a.sellcount),0) as sellcount from t_selldata a,t_commodityex b where a.commodity_code = b.commodity_code " +
"and b.serverpartshop_id = " + _serverpartshop_id + " and b.commodity_barcode = '" + BarCode + "' and a.selldata_date between datetime('" +
CheckDate + "') and datetime('" + InventoryDateTime + "')";
decimal SellCount = decimal.Parse(DBHelper.QueryOdbc(_selectsql).Tables[0].Rows[0]["sellcount"].ToString());
string _updatesql = "";
switch (InventoryType)
{
case "重新盘点":
_updatesql = "update t_checkcommoditydetail set curoverpluscount = " + (decimal.Parse(CuroverPlusCount) + SellCount) +
",commodity_salecount = " + SellCount + ",commodity_totalcount = " + decimal.Parse(CuroverPlusCount) +
",checkdate = datetime('" + InventoryDateTime + "'),checkdesc = '已盘点' " +
"where commodity_barcode = '" + BarCode + "' and checkcommodity_id = (select checkcommodity_id " +
"from t_checkcommodityex where check_state = 0 and serverpartshop_id = " + _QualityHelper.serverpartshop_id + ")";
_List.Add(_updatesql);
txtCheckCount.Text = (decimal.Parse(CuroverPlusCount) + SellCount).ToString("F2");
txtInventoryDate.Text = InventoryDateTime;
txtCommodityNum.Text = decimal.Parse(_DataTable.Rows[0]["overpluscount"].ToString()).ToString("F2");
txtDifferenceCount.Text = (decimal.Parse(CuroverPlusCount) + SellCount - decimal.Parse(_DataTable.Rows[0]["overpluscount"].ToString())).ToString("F2");
txtCommodityBarCode.Text = _DataTable.Rows[0]["commodity_barcode"].ToString();
txtCommodityName.Text = _DataTable.Rows[0]["commodity_name"].ToString();
break;
case "实时盘点":
_updatesql = "update t_checkcommoditydetail set curoverpluscount = isnull(commodity_totalcount,0) + " + (decimal.Parse(CuroverPlusCount) +
SellCount) + ",commodity_salecount = " + SellCount + ",commodity_totalcount = isnull(commodity_totalcount,0) + " + decimal.Parse(CuroverPlusCount) +
",checkdate = datetime('" + InventoryDateTime + "'),checkdesc = '已盘点' where commodity_barcode = '" + BarCode + "' and checkcommodity_id = " +
"(select checkcommodity_id from t_checkcommodityex where check_state = 0 and serverpartshop_id = " + _QualityHelper.serverpartshop_id + ")";
_List.Add(_updatesql);
txtCheckCount.Text = (decimal.Parse(_DataTable.Rows[0]["curoverpluscount"].ToString()) +
decimal.Parse(CuroverPlusCount) + SellCount).ToString("F2");
txtInventoryDate.Text = InventoryDateTime;
txtCommodityNum.Text = decimal.Parse(_DataTable.Rows[0]["overpluscount"].ToString()).ToString("F2");
txtDifferenceCount.Text = (decimal.Parse(_DataTable.Rows[0]["curoverpluscount"].ToString()) +
decimal.Parse(CuroverPlusCount) + SellCount - decimal.Parse(_DataTable.Rows[0]["overpluscount"].ToString())).ToString("F2");
txtCommodityBarCode.Text = _DataTable.Rows[0]["commodity_barcode"].ToString();
txtCommodityName.Text = _DataTable.Rows[0]["commodity_name"].ToString();
break;
case "仓库盘点":
_updatesql = "update t_checkcommoditydetail set curoverpluscount = isnull(commodity_salecount,0) + isnull(commodity_totalcount,0) +" +
decimal.Parse(CuroverPlusCount) + ",commodity_totalcount = isnull(commodity_totalcount,0) + " + decimal.Parse(CuroverPlusCount) +
",checkdate = datetime('" + InventoryDateTime + "'),checkdesc = '已盘点' where commodity_barcode = '" + BarCode + "' and checkcommodity_id = " +
"(select checkcommodity_id from t_checkcommodityex where check_state = 0 and serverpartshop_id = " + _QualityHelper.serverpartshop_id + ")";
_List.Add(_updatesql);
txtCheckCount.Text = (decimal.Parse(CuroverPlusCount) + SellCount).ToString("F2");
txtInventoryDate.Text = InventoryDateTime;
txtCommodityNum.Text = decimal.Parse(_DataTable.Rows[0]["overpluscount"].ToString()).ToString("F2");
txtDifferenceCount.Text = (decimal.Parse(CuroverPlusCount) + SellCount - decimal.Parse(_DataTable.Rows[0]["overpluscount"].ToString())).ToString("F2");
txtCommodityBarCode.Text = _DataTable.Rows[0]["commodity_barcode"].ToString();
txtCommodityName.Text = _DataTable.Rows[0]["commodity_name"].ToString();
break;
default:
break;
}
}
if (_List.Count() > 0)
{
DBHelper.ExecuteSqlTran(_List);
}
SearchDataView();
}
catch (Exception ex)
{
MessageBox.Show("数据库连接失败,请重启收银机后重试!", "系统提示", MessageBoxButtons.OK,
MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
}
CommodityInfo.Clear();
CommodityInfo.Focus();
CommodityInfo.SelectAll();
}
///
/// 保存未匹配商品盘点记录
///
/// 商品条码
/// 盘点数量
/// 盘点时间
/// 盘点类型
private void CommodityInputUnmatch(string BarCode, string CuroverPlusCount, string InventoryDateTime, string InventoryType)
{
List _List = new List();
try
{
string _selectsql = " SELECT DISTINCT A.CHECKCOMMODITY_ID, A.START_DATE, A.END_DATE, " +
"A.SERVERPART_ID FROM T_CHECKCOMMODITYDETAIL A,T_CHECKCOMMODITYEX B " +
"WHERE A.CHECKCOMMODITY_ID = B.CHECKCOMMODITY_ID AND B.CHECK_STATE = 0 " +
"AND B.SERVERPARTSHOP_ID = " + _serverpartshop_id;
DataTable _DataTable = DBHelper.QueryOdbc(_selectsql).Tables[0];
if (_DataTable.Rows.Count == 0)
{
//MessageBox.Show("该商品无库存信息", "系统提示", MessageBoxButtons.OK,
// MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
CommodityInfo.Clear();
CommodityInfo.Focus();
CommodityInfo.SelectAll();
return;
}
else
{
string _CHECKCOMMODITY_ID = _DataTable.Rows[0]["CHECKCOMMODITY_ID"].ToString();
string _START_DATE = _DataTable.Rows[0]["START_DATE"].ToString();
string _END_DATE = _DataTable.Rows[0]["END_DATE"].ToString();
string _SERVERPART_ID = _DataTable.Rows[0]["SERVERPART_ID"].ToString();
_selectsql = "select isnull(sum(a.sellcount),0) as sellcount from t_selldata a,t_commodityex b where a.commodity_code = b.commodity_code " +
"and b.serverpartshop_id = " + _serverpartshop_id + " and b.commodity_barcode = '" + BarCode + "' and a.selldata_date between datetime('" +
CheckDate + "') and datetime('" + InventoryDateTime + "')";
decimal SellCount = decimal.Parse(DBHelper.QueryOdbc(_selectsql).Tables[0].Rows[0]["sellcount"].ToString());
_selectsql = "select a.checkcommodityunmatch_id, a.checkcommodity_id, a.serverpartstock_id, isnull(a.overpluscount,0) as overpluscount, " +
"a.checkdate, a.commodity_id, a.commodity_code, isnull(a.curoverpluscount,0) as curoverpluscount, a.commodity_barcode, " +
"a.checkdesc, a.commodity_name, a.commodity_salecount, isnull(a.commodity_totalcount,0) as commodity_totalcount, a.start_date, " +
"a.end_date, a.serverpart_id, a.lastoverpluscount, a.storage_count, a.out_count, a.sale_count " +
"from t_checkcommodityunmatch a,t_checkcommodityex b " +
"where a.checkcommodity_id = b.checkcommodity_id and b.check_state = 0 and " +
"b.serverpartshop_id = " + _serverpartshop_id + " and a.commodity_barcode = '" + BarCode + "'";
_DataTable = DBHelper.QueryOdbc(_selectsql).Tables[0];
if (_DataTable.Rows.Count == 0)
{
int _Maxid = 0;
try
{
_Maxid = int.Parse(DBHelper.QueryOdbc("select max(checkcommodityunmatch_id) from t_checkcommodityunmatch").Tables[0].Rows[0][0].ToString());
}
catch
{
_Maxid = 0;
}
_selectsql = "SELECT COMMODITY_CODE,COMMODITY_NAME FROM T_COMMODITYEX " +
"WHERE COMMODITY_BARCODE = '" + BarCode + "' AND SERVERPARTSHOP_ID = " + _serverpartshop_id;
DataTable _CommodityTable = DBHelper.QueryOdbc(_selectsql).Tables[0];
if (_CommodityTable.Rows.Count > 0)
{
string _Insertsql = "INSERT INTO T_CHECKCOMMODITYUNMATCH (CHECKCOMMODITYUNMATCH_ID," +
"CHECKCOMMODITY_ID,OVERPLUSCOUNT,CHECKDATE,COMMODITY_CODE,COMMODITY_BARCODE," +
"COMMODITY_NAME,CUROVERPLUSCOUNT,COMMODITY_SALECOUNT," +
"COMMODITY_TOTALCOUNT,START_DATE,END_DATE,SERVERPART_ID ) VALUES " +
"(" + (_Maxid + 1) + "," + _CHECKCOMMODITY_ID + ",0,DATETIME('" + InventoryDateTime + "'),'" +
_CommodityTable.Rows[0]["COMMODITY_CODE"].ToString() + "','" + BarCode +
"','" + _CommodityTable.Rows[0]["COMMODITY_NAME"].ToString() + "'," +
(decimal.Parse(CuroverPlusCount) + SellCount) + "," + SellCount + "," + decimal.Parse(CuroverPlusCount) +
",DATETIME('" + _START_DATE + "'),DATETIME('" + _END_DATE + "')," + _SERVERPART_ID + ")";
_List.Add(_Insertsql);
}
else
{
string _Insertsql = "INSERT INTO T_CHECKCOMMODITYUNMATCH (CHECKCOMMODITYUNMATCH_ID," +
"CHECKCOMMODITY_ID,OVERPLUSCOUNT,CHECKDATE,COMMODITY_BARCODE," +
"CUROVERPLUSCOUNT,COMMODITY_SALECOUNT,COMMODITY_TOTALCOUNT," +
"START_DATE,END_DATE,SERVERPART_ID ) VALUES (" + (_Maxid + 1) +
"," + _CHECKCOMMODITY_ID + ",0,DATETIME('" + InventoryDateTime +
"'),'" + BarCode + "'," + (decimal.Parse(CuroverPlusCount) + SellCount) +
"," + SellCount + "," + decimal.Parse(CuroverPlusCount) +
",DATETIME('" + _START_DATE + "'),DATETIME('" + _END_DATE + "')," + _SERVERPART_ID + ")";
_List.Add(_Insertsql);
}
}
else
{
string _updatesql = "";
switch (InventoryType)
{
case "重新盘点":
_updatesql = "update t_checkcommodityunmatch set curoverpluscount = " + (decimal.Parse(CuroverPlusCount) + SellCount) +
",commodity_salecount = " + SellCount + ",commodity_totalcount = " + decimal.Parse(CuroverPlusCount) +
",checkdate = datetime('" + InventoryDateTime + "') where commodity_barcode = '" + BarCode + "' and checkcommodity_id = " +
"(select checkcommodity_id from t_checkcommodityex where check_state = 0 and serverpartshop_id = " + _QualityHelper.serverpartshop_id + ")";
_List.Add(_updatesql);
txtCheckCount.Text = (decimal.Parse(CuroverPlusCount) + SellCount).ToString("F2");
txtInventoryDate.Text = InventoryDateTime;
txtCommodityNum.Text = decimal.Parse(_DataTable.Rows[0]["overpluscount"].ToString()).ToString("F2");
txtDifferenceCount.Text = (decimal.Parse(CuroverPlusCount) + SellCount - decimal.Parse(_DataTable.Rows[0]["overpluscount"].ToString())).ToString("F2");
txtCommodityBarCode.Text = _DataTable.Rows[0]["commodity_barcode"].ToString();
txtCommodityName.Text = _DataTable.Rows[0]["commodity_name"].ToString();
break;
case "实时盘点":
_updatesql = "update t_checkcommodityunmatch set curoverpluscount = isnull(commodity_totalcount,0) + " + (decimal.Parse(CuroverPlusCount) +
SellCount) + ",commodity_salecount = " + SellCount + ",commodity_totalcount = isnull(commodity_totalcount,0) + " + decimal.Parse(CuroverPlusCount) +
",checkdate = datetime('" + InventoryDateTime + "') where commodity_barcode = '" + BarCode + "' and checkcommodity_id = " +
"(select checkcommodity_id from t_checkcommodityex where check_state = 0 and serverpartshop_id = " + _QualityHelper.serverpartshop_id + ")";
_List.Add(_updatesql);
txtCheckCount.Text = (decimal.Parse(_DataTable.Rows[0]["curoverpluscount"].ToString()) +
decimal.Parse(CuroverPlusCount) + SellCount).ToString("F2");
txtInventoryDate.Text = InventoryDateTime;
txtCommodityNum.Text = decimal.Parse(_DataTable.Rows[0]["overpluscount"].ToString()).ToString("F2");
txtDifferenceCount.Text = (decimal.Parse(_DataTable.Rows[0]["curoverpluscount"].ToString()) +
decimal.Parse(CuroverPlusCount) + SellCount - decimal.Parse(_DataTable.Rows[0]["overpluscount"].ToString())).ToString("F2");
txtCommodityBarCode.Text = _DataTable.Rows[0]["commodity_barcode"].ToString();
txtCommodityName.Text = _DataTable.Rows[0]["commodity_name"].ToString();
break;
case "仓库盘点":
_updatesql = "update t_checkcommodityunmatch set curoverpluscount = isnull(commodity_salecount,0) + isnull(commodity_totalcount,0) +" +
decimal.Parse(CuroverPlusCount) + ",commodity_totalcount = isnull(commodity_totalcount,0) + " + decimal.Parse(CuroverPlusCount) +
",checkdate = datetime('" + InventoryDateTime + "') where commodity_barcode = '" + BarCode + "' and checkcommodity_id = " +
"(select checkcommodity_id from t_checkcommodityex where check_state = 0 and serverpartshop_id = " + _QualityHelper.serverpartshop_id + ")";
_List.Add(_updatesql);
txtCheckCount.Text = (decimal.Parse(CuroverPlusCount) + SellCount).ToString("F2");
txtInventoryDate.Text = InventoryDateTime;
txtCommodityNum.Text = decimal.Parse(_DataTable.Rows[0]["overpluscount"].ToString()).ToString("F2");
txtDifferenceCount.Text = (decimal.Parse(CuroverPlusCount) + SellCount - decimal.Parse(_DataTable.Rows[0]["overpluscount"].ToString())).ToString("F2");
txtCommodityBarCode.Text = _DataTable.Rows[0]["commodity_barcode"].ToString();
txtCommodityName.Text = _DataTable.Rows[0]["commodity_name"].ToString();
break;
default:
break;
}
}
}
if (_List.Count() > 0)
{
DBHelper.ExecuteSqlTran(_List);
}
SearchDataView();
}
catch (Exception ex)
{
MessageBox.Show("数据库连接失败,请重启收银机后重试!", "系统提示", MessageBoxButtons.OK,
MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
}
CommodityInfo.Clear();
CommodityInfo.Focus();
CommodityInfo.SelectAll();
}
#endregion
private int GoodsExist(string BarCode, out string GoodsName, out decimal GoodsCount)
{
string _selectsql = "select 1 from t_checkcommodityex where check_state = 0 and " +
"serverpartshop_id = " + _serverpartshop_id;
try
{
if (DBHelper.QueryOdbc(_selectsql).Tables[0].Rows.Count == 0)
{
DialogResult _DialogResult = MessageBox.Show("未查询到盘点单,请先下载盘点单信息!", "系统提示", MessageBoxButtons.OK,
MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
if (_DialogResult == DialogResult.OK)
{
CommodityInfo.Clear();
CommodityInfo.Focus();
CommodityInfo.SelectAll();
GoodsName = "";
GoodsCount = 0;
return 0;
}
else
{
GoodsName = "";
GoodsCount = 0;
return 0;
}
}
_selectsql = "select a.checkcommoditydetail_id, a.checkcommodity_id, a.serverpartstock_id, isnull(a.overpluscount,0) as overpluscount, " +
"a.checkdate, a.commodity_id, a.commodity_code, isnull(a.curoverpluscount,0) as curoverpluscount, a.commodity_barcode, " +
"a.checkdesc, a.commodity_name, a.commodity_salecount, isnull(a.commodity_totalcount,0) as commodity_totalcount, a.start_date, " +
"a.end_date, a.serverpart_id, a.lastoverpluscount, a.storage_count, a.out_count, a.sale_count " +
"from t_checkcommoditydetail a,t_checkcommodityex b " +
"where a.checkcommodity_id = b.checkcommodity_id and b.check_state = 0 and " +
"b.serverpartshop_id = " + _serverpartshop_id + " and a.commodity_barcode = '" + BarCode + "'";
DataTable _DataTable = DBHelper.QueryOdbc(_selectsql).Tables[0];
if (_DataTable.Rows.Count == 0)
{
//MessageBox.Show("该商品无库存信息", "系统提示", MessageBoxButtons.OK,
// MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
lblMessage.Text = "商品[" + BarCode + "]无库存信息";
CommodityInfo.Clear();
CommodityInfo.Focus();
CommodityInfo.SelectAll();
GoodsName = "";
GoodsCount = 0;
return 1;
}
else
{
GoodsName = _DataTable.Rows[0]["commodity_name"].ToString();
decimal.TryParse(_DataTable.Rows[0]["overpluscount"].ToString(), out GoodsCount);
}
}
catch
{
GoodsName = "";
GoodsCount = 0;
return 0;
}
return 9;
}
#region 盘点录入按键
///
/// 盘点信息输入按键事件
///
///
///
private void CommodityInfo_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
string strBarCode, strCommodityNum, strInventoryDate;
if (cobCHECKMODE.Text == "请选择盘点模式")
{
//MessageBox.Show("请选择盘点模式!", "系统提示", MessageBoxButtons.OK,
// MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
lblMessage.Text = "请选择盘点模式!";
CommodityInfo.Clear();
CommodityInfo.Focus();
CommodityInfo.SelectAll();
return;
}
if (CommodityInfo.Text != "")
{
txtCommodityName.Text = "";
string commodityInfo = CommodityInfo.Text;
string[] sArray = commodityInfo.Split(',');
strBarCode = sArray[0];
string goodsname;
decimal goodscount;
int _GoodCheck = GoodsExist(strBarCode, out goodsname, out goodscount);
switch (sArray.Count())
{
case 3:
strCommodityNum = sArray[1];
strInventoryDate = sArray[2];
if (_GoodCheck == 9)
{
CommodityInput(strBarCode, strCommodityNum, strInventoryDate, cobCHECKMODE.Text);
}
else if (_GoodCheck == 1)
{
CommodityInputUnmatch(strBarCode, strCommodityNum, strInventoryDate, cobCHECKMODE.Text);
}
break;
case 2:
strCommodityNum = sArray[1];
strInventoryDate = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
if (_GoodCheck == 9)
{
CommodityInput(strBarCode, strCommodityNum, strInventoryDate, cobCHECKMODE.Text);
}
else if (_GoodCheck == 1)
{
CommodityInputUnmatch(strBarCode, strCommodityNum, strInventoryDate, cobCHECKMODE.Text);
}
break;
case 1:
if (_GoodCheck == 9)
{
CheckCommodityCount _CountMain = new CheckCommodityCount(goodsname, goodscount);
_CountMain.ShowDialog();
if (_CountMain.DialogResult == DialogResult.OK)
{
strCommodityNum = _CountMain.strValues;
strInventoryDate = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
}
else
{
CommodityInfo.Clear();
CommodityInfo.Focus();
CommodityInfo.SelectAll();
return;
}
CommodityInput(strBarCode, strCommodityNum, strInventoryDate, "重新盘点");
}
else if (_GoodCheck == 1)
{
CheckCommodityCount _CountMain = new CheckCommodityCount(strBarCode, goodscount);
_CountMain.ShowDialog();
if (_CountMain.DialogResult == DialogResult.OK)
{
strCommodityNum = _CountMain.strValues;
strInventoryDate = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
}
else
{
CommodityInfo.Clear();
CommodityInfo.Focus();
CommodityInfo.SelectAll();
return;
}
CommodityInputUnmatch(strBarCode, strCommodityNum, strInventoryDate, "重新盘点");
}
break;
}
}
else
{
//MessageBox.Show("请输入商品条码!", "系统提示", MessageBoxButtons.OK,
//MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
lblMessage.Text = "请输入商品条码!";
CommodityInfo.Clear();
CommodityInfo.Focus();
CommodityInfo.SelectAll();
return;
}
}
}
#endregion
#region
///
/// 下载按钮事件
///
///
///
private void Download_Click(object sender, EventArgs e)
{
List _List = new List();
Loading();
if (CheckDate != "")
{
if (MessageBox.Show("下载盘点单将会清空本地盘存数据,是否继续下载?", "系统提示", MessageBoxButtons.YesNo,
MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.No)
{
CommodityInfo.Clear();
CommodityInfo.Focus();
CommodityInfo.SelectAll();
return;
}
}
ShowWaiteForm();
_WaitForm.ShowMessage("正在下载盘点初始数据......");
try
{
DBHelper.ExecuteSqlTran("delete from t_checkcommodityex");
DBHelper.ExecuteSqlTran("delete from t_checkcommoditydetail");
}
catch { }
DownLoadData();
_WaitForm.Close();
_WaitForm.Dispose();
#region
////下载并清空本地盘点数据
//string _selectsql = "SELECT CHECKCOMMODITY_ID, CHECKPERSON, CHECKDATE, SERVERPART_ID, SERVERPARTSHOP_ID, " +
// "CHECKCOMMODITY_DESC, CHECK_STATE, CHECK_PASSPORT_GUID, CHECK_TYPE " +
// "FROM " + _QualityHelper.dbname + ".T_CHECKCOMMODITYEX " +
// "WHERE CHECK_STATE = 0 AND SERVERPARTSHOP_ID = " + _QualityHelper.serverpartshop_id +
// " AND ROWNUM <= 1 ORDER BY CHECKCOMMODITY_ID DESC";
//OracleHelper _OracleHelper = new OracleHelper(_QualityHelper.dbip, _QualityHelper.dbport, _QualityHelper.conname, _QualityHelper.dbuser, _QualityHelper.dbpass);
//try
//{
// using (DataTable _DataTable = ConvertOraclTableToDoNetTable(_OracleHelper.ExcuteSqlGetDataSet(_selectsql, "T_CHECKCOMMODITYEX").Tables[0]))
// {
// if (_DataTable.Rows.Count > 0)
// {
// string _insertColumns = SqlColumns(_DataTable);
// string _insertValues = "";
// List ValuesList = new List();
// foreach (DataRow _Row in _DataTable.Rows)
// {
// ValuesList.Add(AnySqlValues(_DataTable, _Row));
// }
// for (int i = 0; i < ValuesList.Count(); i++)
// {
// _insertValues += (_insertValues == "" ? "(" + ValuesList[i] + ")" : ",(" + ValuesList[i] + ")");
// }
// _List.Add("INSERT INTO T_CHECKCOMMODITYEX (" + _insertColumns + ") VALUES " + _insertValues);
// _selectsql = "SELECT A.CHECKCOMMODITYDETAIL_ID, A.CHECKCOMMODITY_ID, A.SERVERPARTSTOCK_ID, " +
// "A.OVERPLUSCOUNT, A.CHECKDATE, A.COMMODITY_ID, A.COMMODITY_CODE, 0 as CUROVERPLUSCOUNT, " +
// "A.COMMODITY_BARCODE, A.CHECKDESC, A.COMMODITY_NAME, 0 as COMMODITY_SALECOUNT, " +
// "0 as COMMODITY_TOTALCOUNT, A.START_DATE, A.END_DATE, A.SERVERPART_ID, A.LASTOVERPLUSCOUNT, " +
// "A.STORAGE_COUNT, A.OUT_COUNT, A.SALE_COUNT FROM " + _QualityHelper.dbname +
// ".T_CHECKCOMMODITYDETAIL A," + _QualityHelper.dbname + ".T_CHECKCOMMODITYEX B " +
// "WHERE A.CHECKCOMMODITY_ID = B.CHECKCOMMODITY_ID AND B.CHECK_STATE = 0 AND B.SERVERPARTSHOP_ID = " +
// _QualityHelper.serverpartshop_id + " AND B.CHECKCOMMODITY_ID = " + _DataTable.Rows[0]["CHECKCOMMODITY_ID"].ToString();
// DataTable _DetailTable = ConvertOraclTableToDoNetTable(_OracleHelper.ExcuteSqlGetDataSet(_selectsql, "T_CHECKCOMMODITYDETAIL").Tables[0]);
// if (_DetailTable.Rows.Count > 0)
// {
// _insertColumns = SqlColumns(_DetailTable);
// _insertValues = "";
// ValuesList.Clear();
// foreach (DataRow _Row in _DetailTable.Rows)
// {
// ValuesList.Add(AnySqlValues(_DetailTable, _Row));
// }
// for (int i = 0; i < ValuesList.Count(); i++)
// {
// _insertValues += (_insertValues == "" ? "(" + ValuesList[i] + ")" : ",(" + ValuesList[i] + ")");
// }
// _List.Add("INSERT INTO T_CHECKCOMMODITYDETAIL (" + _insertColumns + ") VALUES " + _insertValues);
// }
// }
// else
// {
// _WaitForm.Close();
// _WaitForm.Dispose();
// MessageBox.Show("未查询到盘点单,请前往综管平台添加盘点单!", "系统提示", MessageBoxButtons.OK,
// MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
// CommodityInfo.Clear();
// CommodityInfo.Focus();
// CommodityInfo.SelectAll();
// return;
// }
// }
// if (_List.Count() > 0)
// {
// DBHelper.ExecuteSqlTran("delete from t_checkcommodityex where check_state <> 9");
// DBHelper.ExecuteSqlTran("delete from t_checkcommoditydetail a where not exists ( " +
// "select 1 from t_checkcommodityex b where a.checkcommodity_id = b.checkcommodity_id and b.check_state = 9)");
// DBHelper.ExecuteSqlTran(_List);
// }
// _WaitForm.Close();
// _WaitForm.Dispose();
// MessageBox.Show("盘点单下载成功!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
// Loading();
//}
//catch (Exception ex)
//{
// _WaitForm.Close();
// _WaitForm.Dispose();
// DialogResult _DialogResult = MessageBox.Show("服务器连接失败,请检查网络状态!", "系统提示", MessageBoxButtons.OK,
// MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
// if (_DialogResult == DialogResult.OK)
// {
// return;
// }
//}
#endregion
}
#endregion
private void btnReset_Click(object sender, EventArgs e)
{
if (MessageBox.Show("重置后实盘信息将被清零,确定重置吗?", "系统提示", MessageBoxButtons.OKCancel,
MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.OK)
{
string _updatesql = "update t_checkcommoditydetail set curoverpluscount = 0,commodity_salecount = 0,commodity_totalcount = 0,checkdesc = null ";
try
{
DBHelper.ExecuteSqlTran(_updatesql);
MessageBox.Show("盘点信息重置成功!", "系统提示", MessageBoxButtons.OK,
MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
}
catch (Exception ex)
{
MessageBox.Show("重置盘点信息失败,请重试!", "系统提示", MessageBoxButtons.OK,
MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
}
Loading();
}
}
#region 查看盘点记录
private void CheckView_CellClick(object sender, DataGridViewCellEventArgs e)
{
//if (CheckView.Rows.Count>0)
//{
// int _index = CheckView.CurrentRow.Index;
// txtCommodityBarCode.Text = CheckView.Rows[_index].Cells["commodity_barcode"].Value.ToString();
// txtCommodityName.Text = CheckView.Rows[_index].Cells["commodity_name"].Value.ToString();
// txtCommodityNum.Text = CheckView.Rows[_index].Cells["overpluscount"].Value.ToString();
// txtCheckCount.Text = CheckView.Rows[_index].Cells["curoverpluscount"].Value.ToString();
// txtDifferenceCount.Text = CheckView.Rows[_index].Cells["differencecount"].Value.ToString();
// txtInventoryDate.Text = CheckView.Rows[_index].Cells["checkdate"].Value.ToString();
// CommodityInfo.Focus();
// ChangeColor();
//}
}
#endregion
#region 盘差标记
public void ChangeColor()
{
for (int i = 0; i < CheckView.Rows.Count; i++)
{
if (decimal.Parse(CheckView.Rows[i].Cells["differencecount"].Value.ToString()) < 0)
{
for (int j = 0; j < CheckView.Rows[i].Cells.Count; j++)
{
CheckView.Rows[i].Cells[j].Style.ForeColor = Color.Red;
CheckView.Rows[i].Cells[j].Style.Font = new Font(CheckView.Font, FontStyle.Bold);
}
}
else if (decimal.Parse(CheckView.Rows[i].Cells["differencecount"].Value.ToString()) > 0)
{
for (int j = 0; j < CheckView.Rows[i].Cells.Count; j++)
{
CheckView.Rows[i].Cells[j].Style.ForeColor = Color.Green;
CheckView.Rows[i].Cells[j].Style.Font = new Font(CheckView.Font, FontStyle.Bold);
}
}
else
{
for (int j = 0; j < CheckView.Rows[i].Cells.Count; j++)
{
CheckView.Rows[i].Cells[j].Style.ForeColor = SystemColors.ControlText;
CheckView.Rows[i].Cells[j].Style.Font = new Font(CheckView.Font, FontStyle.Regular);
}
}
}
}
#endregion
#region 获取配置信息
///
/// 获取配置信息
///
/// 配置名称
/// 无配置信息时默认值
///
private string ConfigUrationValues(string ConfigUrationName, string defaultValue)
{
string strSQL = "select configuration_name,configuration_values from dba.t_configuration where lower(configuration_name) = lcase('" + ConfigUrationName + "')";
string strValues = "";
using (DataTable _DataTable = DBHelper.QueryOdbc(strSQL).Tables[0])
{
if (_DataTable.Rows.Count > 0)
{
foreach (DataRow row in _DataTable.Rows)
{
if (row["configuration_name"].ToString().ToLower() == ConfigUrationName.ToLower())
{
strValues = row["configuration_values"].ToString();
}
}
}
else
{
strValues = ConfigHelper.Win32API.INIGetStringValue(Environment.CurrentDirectory + "\\setup.ini", "DBCONECT", ConfigUrationName, defaultValue);
if (strValues == "")
strValues = ConfigHelper.Win32API.INIGetStringValue(Environment.CurrentDirectory + "\\set.ini", "DBCONECT", ConfigUrationName, defaultValue);
}
}
return strValues;
}
#endregion
#region 转换DataTable字段类型
///
/// 转换DataTable字段类型
///
///
///
public static DataTable ConvertOraclTableToDoNetTable(DataTable table)
{
DataTable dt = new DataTable();
foreach (DataColumn dc in table.Columns)
{
DataColumn column = new DataColumn();
column.DataType = GetDataType(dc.DataType);
column.ColumnName = dc.ColumnName;
column.Caption = dc.Caption;
dt.Columns.Add(column);
}
dt.TableName = table.TableName;
dt.Merge(table, false, MissingSchemaAction.Ignore);
return dt;
}
///
/// 字段类型
///
///
///
public static Type GetDataType(Type dataType)
{
switch (dataType.ToString())
{
case "System.Double":
return System.Type.GetType("System.Decimal");
case "System.Int32":
return System.Type.GetType("System.Decimal");
case "System.Int16":
return System.Type.GetType("System.Decimal");
case "System.Int64":
return System.Type.GetType("System.Decimal");
default:
return dataType;
}
}
#endregion
#region 构建SQL字段信息
///
/// 获取列名
///
///
///
private string SqlColumns(DataTable Table)
{
string _Columnsstr = "";
foreach (DataColumn col in Table.Columns)
{
_Columnsstr += (_Columnsstr == "" ? col.ColumnName : "," + col.ColumnName);
}
return _Columnsstr;
}
///
/// 获取行值(oracle)
///
///
///
///
private string OraSqlValues(DataTable Table, DataRow Row)
{
string _valuesstr = "";
for (int i = 0; i < Table.Columns.Count; i++)
{
if (Table.Columns[i].DataType.ToString() == "System.Decimal")
{
_valuesstr += _valuesstr == "" ? (Row[i].ToString() == "" ? "NULL" : Row[i].ToString()) :
"," + (Row[i].ToString() == "" ? "NULL" : Row[i].ToString());
}
else if (Table.Columns[i].DataType.ToString() == "System.DateTime")
{
_valuesstr += _valuesstr == "" ? (Row[i].ToString() == "" ? "NULL" : "TO_DATE('" + Row[i].ToString() + "','YYYY/MM/DD HH24:MI:SS')") :
"," + (Row[i].ToString() == "" ? "NULL" : "TO_DATE('" + Row[i].ToString() + "','YYYY/MM/DD HH24:MI:SS')");
}
else
{
_valuesstr += _valuesstr == "" ? (Row[i].ToString() == "" ? "NULL" : "'" + Row[i].ToString()) + "'" :
"," + (Row[i].ToString() == "" ? "NULL" : "'" + Row[i].ToString() + "'");
}
}
return _valuesstr;
}
///
/// 获取行值(anywhere)
///
///
///
///
private string AnySqlValues(DataTable Table, DataRow Row)
{
string _valuesstr = "";
for (int i = 0; i < Table.Columns.Count; i++)
{
if (Table.Columns[i].DataType.ToString() == "System.Decimal")
{
_valuesstr += _valuesstr == "" ? (Row[i].ToString() == "" ? "NULL" : Row[i].ToString()) : "," +
(Row[i].ToString() == "" ? "NULL" : Row[i].ToString());
}
else if (Table.Columns[i].DataType.ToString() == "System.DateTime")
{
_valuesstr += _valuesstr == "" ? (Row[i].ToString() == "" ? "NULL" : "DATETIME('" + Row[i].ToString() + "')") :
"," + (Row[i].ToString() == "" ? "NULL" : "DATETIME('" + Row[i].ToString() + "')");
}
else
{
_valuesstr += _valuesstr == "" ? (Row[i].ToString() == "" ? "NULL" : "'" + Row[i].ToString()) + "'" :
"," + (Row[i].ToString() == "" ? "NULL" : "'" + Row[i].ToString() + "'");
}
}
return _valuesstr;
}
#endregion
private void btnCheck_Click(object sender, EventArgs e)
{
ShowWaiteForm();
_WaitForm.ShowMessage("正在校验盘点信息......");
string _updatesql = "UPDATE T_CHECKCOMMODITYDETAIL SET CUROVERPLUSCOUNT = D.CUROVERPLUSCOUNT," +
"COMMODITY_SALECOUNT = D.COMMODITY_SALECOUNT FROM T_CHECKCOMMODITYDETAIL C," +
"(SELECT A.COMMODITY_CODE AS COMMODITY_CODE,SUM(SELLCOUNT) AS CUROVERPLUSCOUNT," +
"SUM(SELLCOUNT) AS COMMODITY_SALECOUNT FROM T_SELLDATA A,T_CHECKCOMMODITYDETAIL B " +
"WHERE A.COMMODITY_CODE = B.COMMODITY_CODE AND B.CUROVERPLUSCOUNT <= 0 AND " +
"B.OVERPLUSCOUNT <> 0 AND A.SELLDATA_DATE BETWEEN DATETIME('" + CheckDate +
"') AND DATETIME('" + DateTime.Now.ToString() + "') GROUP BY A.COMMODITY_CODE) D " +
"WHERE C.COMMODITY_CODE = D.COMMODITY_CODE AND C.CHECKDATE = DATETIME('" + CheckDate + "')";
try
{
DBHelper.ExecuteSqlTran(_updatesql);
MessageBox.Show("盘点信息校验成功!", "系统提示", MessageBoxButtons.OK,
MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
}
catch (Exception ex)
{
MessageBox.Show("盘点信息校验失败,请重试!", "系统提示", MessageBoxButtons.OK,
MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
}
SearchDataView();
_WaitForm.Close();
_WaitForm.Dispose();
}
private void btnUpLoad_Click(object sender, EventArgs e)
{
if (MessageBox.Show("确认立即上传盘点结果吗?\n盘点上传后如需修改盘点结果,请到综管平台进行。", "系统提示",
MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) != DialogResult.OK)
{
return;
}
List _List = new List();
string _selectsql = "select max(checkcommodity_id) from t_checkcommodityex " +
"where check_state = 0 and serverpartshop_id = " + _QualityHelper.serverpartshop_id;
try
{
ShowWaiteForm();
_WaitForm.ShowMessage("正在验证盘点结果,请稍候......");
string check_id = DBHelper.QueryOdbc(_selectsql).Tables[0].Rows[0][0].ToString();
_selectsql = "SELECT CHECKCOMMODITY_ID, CHECKPERSON, CHECKDATE, SERVERPART_ID, " +
"SERVERPARTSHOP_ID, CHECKCOMMODITY_DESC, CHECK_STATE, CHECK_PASSPORT_GUID, " +
"CHECK_TYPE FROM " + _QualityHelper.dbname + ".T_CHECKCOMMODITYEX " +
"WHERE SERVERPARTSHOP_ID = " + _QualityHelper.serverpartshop_id +
" AND CHECKCOMMODITY_ID = " + check_id;
OracleHelper _OracleHelper = new OracleHelper(_QualityHelper.dbip, _QualityHelper.dbport,
_QualityHelper.conname, _QualityHelper.dbuser, _QualityHelper.dbpass);
DataTable _OracleTable = _OracleHelper.ExcuteSqlGetDataSet(_selectsql).Tables[0];
if (_OracleTable.Rows.Count > 0)
{
if (_OracleTable.Rows[0]["CHECK_STATE"].ToString() == "9")
{
_WaitForm.Close();
_WaitForm.Dispose();
MessageBox.Show("当前盘点单数据已失效,请重新下载", "系统提示", MessageBoxButtons.OK,
MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1);
CommodityInfo.Clear();
CommodityInfo.Focus();
CommodityInfo.SelectAll();
return;
}
}
else
{
_selectsql = "SELECT CHECKCOMMODITY_ID, CHECKPERSON, CHECKDATE, SERVERPART_ID, SERVERPARTSHOP_ID, " +
"CHECKCOMMODITY_DESC, CHECK_STATE, CHECK_PASSPORT_GUID, CHECK_TYPE FROM T_CHECKCOMMODITYEX " +
"WHERE SERVERPARTSHOP_ID = " + _QualityHelper.serverpartshop_id + " AND CHECKCOMMODITY_ID = " + check_id;
DataTable _DataTable = DBHelper.QueryOdbc(_selectsql).Tables[0];
string _DBName = _QualityHelper.dbname;
for (int i = 0; i < _DataTable.Rows.Count; i++)
{
string _InsertSql = "INSERT INTO " + _DBName + ".T_CHECKCOMMODITYEX ( CHECKCOMMODITY_ID, CHECKPERSON, CHECKDATE, " +
"SERVERPART_ID, SERVERPARTSHOP_ID, CHECK_STATE, CHECK_TYPE ) VALUES ( " + _DataTable.Rows[i]["CHECKCOMMODITY_ID"].ToString() +
",'" + _DataTable.Rows[i]["CHECKPERSON"].ToString() + "',TO_DATE('" + _DataTable.Rows[i]["CHECKDATE"].ToString() + "','YYYY/MM/DD HH24:MI:SS')," +
_DataTable.Rows[i]["SERVERPART_ID"].ToString() + "," + _DataTable.Rows[i]["SERVERPARTSHOP_ID"].ToString() + ",TO_DATE('" +
_DataTable.Rows[i]["CHECK_STATE"].ToString() + "','YYYY/MM/DD HH24:MI:SS')," + _DataTable.Rows[i]["CHECK_TYPE"].ToString() + ")";
_WaitForm.ShowMessage("正在上传盘点单,请稍候......");
try
{
_OracleHelper.ExcuteSql(_InsertSql);
}
catch { }
}
}
_selectsql = "select a.checkcommoditydetail_id, a.checkcommodity_id, a.serverpartstock_id, a.overpluscount, " +
"a.checkdate, a.commodity_id, a.commodity_code, a.curoverpluscount, a.commodity_barcode, " +
"a.checkdesc, a.commodity_name, isnull(a.commodity_salecount,0) as commodity_salecount, " +
"isnull(a.commodity_totalcount,0) as commodity_totalcount, a.start_date, " +
"a.end_date, a.serverpart_id, a.lastoverpluscount, a.storage_count, a.out_count, a.sale_count " +
"from t_checkcommoditydetail a,t_checkcommodityex b " +
"where a.checkcommodity_id = b.checkcommodity_id and b.check_state = 0 " +
"and b.serverpartshop_id = " + _QualityHelper.serverpartshop_id +
" and b.checkcommodity_id = " + check_id;
using (DataTable _DataTable = DBHelper.QueryOdbc(_selectsql).Tables[0])
{
if (_DataTable.Rows.Count > 0)
{
string _DBName = _QualityHelper.dbname;
_selectsql = "SELECT A.CHECKCOMMODITYDETAIL_ID, A.CHECKCOMMODITY_ID, A.SERVERPARTSTOCK_ID, " +
"A.OVERPLUSCOUNT, A.CHECKDATE, A.COMMODITY_ID, A.COMMODITY_CODE, A.CUROVERPLUSCOUNT, " +
"A.COMMODITY_BARCODE,A.CHECKDESC, A.COMMODITY_NAME, A.COMMODITY_SALECOUNT, " +
"A.COMMODITY_TOTALCOUNT, A.START_DATE,A.END_DATE, A.SERVERPART_ID, A.LASTOVERPLUSCOUNT, " +
"A.STORAGE_COUNT, A.OUT_COUNT, A.SALE_COUNT FROM " + _DBName + ".T_CHECKCOMMODITYDETAIL A," +
_DBName + ".T_CHECKCOMMODITYEX B " + "WHERE A.CHECKCOMMODITY_ID = B.CHECKCOMMODITY_ID AND " +
"B.SERVERPARTSHOP_ID = " + _QualityHelper.serverpartshop_id + " AND B.CHECKCOMMODITY_ID = " + check_id;
DataTable _DetailTable = _OracleHelper.ExcuteSqlGetDataSet(_selectsql).Tables[0];
string _updatesql = "UPDATE " + _DBName + ".T_CHECKCOMMODITYEX SET CHECK_STATE = 5 " +
"WHERE CHECKCOMMODITY_ID = " + check_id;
_List.Add(_updatesql);
int _Progress = 0;
foreach (DataRow _Row in _DataTable.Rows)
{
_Progress++;
_WaitForm.ShowMessage("正在验证盘点明细,请稍候......" + (int)((decimal)_Progress * 100 / _DataTable.Rows.Count) + "%");
if (_DetailTable.Select("CHECKCOMMODITYDETAIL_ID = " + _Row["checkcommoditydetail_id"].ToString()).Count() > 0)
{
_updatesql = "UPDATE " + _DBName + ".T_CHECKCOMMODITYDETAIL SET CUROVERPLUSCOUNT = " +
(_Row["curoverpluscount"].ToString() == "" ? "0" : _Row["curoverpluscount"].ToString()) + "," +
"COMMODITY_SALECOUNT = " + (_Row["commodity_salecount"].ToString() == "" ? "0" :
_Row["commodity_salecount"].ToString()) + ",COMMODITY_TOTALCOUNT = " +
(_Row["commodity_totalcount"].ToString() == "" ? "0" : _Row["commodity_totalcount"].ToString()) +
" WHERE COMMODITY_CODE = '" + _Row["commodity_code"].ToString() + "' AND CHECKCOMMODITY_ID = " +
_Row["checkcommodity_id"].ToString() + " AND CHECKCOMMODITYDETAIL_ID = " + _Row["checkcommoditydetail_id"].ToString();
_List.Add(_updatesql);
}
else
{
string _InsertSql = "INSERT INTO " + _DBName + ".T_CHECKCOMMODITYDETAIL (CHECKCOMMODITYDETAIL_ID," +
"CHECKCOMMODITY_ID,OVERPLUSCOUNT,CHECKDATE,COMMODITY_ID,COMMODITY_CODE,CUROVERPLUSCOUNT," +
"COMMODITY_BARCODE,COMMODITY_NAME,COMMODITY_SALECOUNT,COMMODITY_TOTALCOUNT,START_DATE," +
"END_DATE,SERVERPART_ID) VALUES ( " + _Row["CHECKCOMMODITYDETAIL_ID"].ToString() +
"," + _Row["CHECKCOMMODITY_ID"].ToString() + "," + _Row["OVERPLUSCOUNT"].ToString() +
",TO_DATE('" + _Row["CHECKDATE"].ToString() + "','YYYY/MM/DD HH24:MI:SS')," + _Row["COMMODITY_ID"].ToString() +
",'" + _Row["COMMODITY_CODE"].ToString() + "'," + _Row["CUROVERPLUSCOUNT"].ToString() +
",'" + _Row["COMMODITY_BARCODE"].ToString() + "','" + _Row["COMMODITY_NAME"].ToString() +
"'," + _Row["COMMODITY_SALECOUNT"].ToString() + "," + _Row["COMMODITY_TOTALCOUNT"].ToString() +
",TO_DATE('" + _Row["START_DATE"].ToString() + "','YYYY/MM/DD HH24:MI:SS'),TO_DATE('" +
_Row["END_DATE"].ToString() + "','YYYY/MM/DD HH24:MI:SS')," + _Row["SERVERPART_ID"].ToString() + ")";
_List.Add(_InsertSql);
}
}
}
}
if (_List.Count() > 0)
{
_WaitForm.ShowMessage("正在上传盘点结果,请稍候......");
lblMessage.Text = "正在上传盘点数据,请稍候……";
_OracleHelper.ExecuteSqlTran(_List);
_WaitForm.Close();
_WaitForm.Dispose();
try
{
DBHelper.ExecuteSqlTran("update t_checkcommodityex set check_state = 5 where checkcommodity_id = " + check_id);
lblMessage.Text = "盘点单数据上传成功!";
MessageBox.Show("盘点单数据上传成功!", "系统提示", MessageBoxButtons.OK,
MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
}
catch (Exception ex)
{ }
}
else
{
_WaitForm.Close();
_WaitForm.Dispose();
}
}
catch (Exception ex)
{
_WaitForm.Close();
_WaitForm.Dispose();
lblMessage.Text = "盘点单数据上传失败,请重试!";
MessageBox.Show("盘点单数据上传失败,请重试!", "系统提示", MessageBoxButtons.OK,
MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
}
}
private void cobDifference_SelectionChangeCommitted(object sender, EventArgs e)
{
DataTable _DataTable = CheckView.DataSource as DataTable;
switch (cobDifference.Text)
{
case "损溢":
_DataTable.DefaultView.RowFilter = "differencecount <> 0";
break;
case "盘盈":
_DataTable.DefaultView.RowFilter = "differencecount > 0";
break;
case "盘亏":
_DataTable.DefaultView.RowFilter = "differencecount < 0";
break;
case "无差异":
_DataTable.DefaultView.RowFilter = "differencecount = 0";
break;
default:
_DataTable.DefaultView.RowFilter = "differencecount not is null";
break;
}
ChangeColor();
}
private void btnClose_Click(object sender, EventArgs e)
{
DialogResult _DialogResult = MessageBox.Show("即将退出进销存盘点,是否立即启动收银系统?", "系统提示",
MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
if (_DialogResult == DialogResult.Cancel)
{
return;
}
if (_DialogResult == DialogResult.Yes)
{
string _StartAPP = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "AutoUpdateEx.exe");
if (!File.Exists(_StartAPP))
{
_StartAPP = @"D:\HighWayPosSoft\AutoUpdateEx.exe";
}
try
{
Process.Start(_StartAPP);
}
catch { }
}
Close();
}
private void CheckCommodity_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Escape:
DialogResult _DialogResult = MessageBox.Show("即将退出进销存盘点,是否立即启动收银系统?", "系统提示",
MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button3);
if (_DialogResult == DialogResult.Cancel)
{
break;
}
if (_DialogResult == DialogResult.Yes)
{
string _StartAPP = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "AutoUpdateEx.exe");
if (!File.Exists(_StartAPP))
{
_StartAPP = @"D:\HighWayPosSoft\AutoUpdateEx.exe";
}
try
{
Process.Start(_StartAPP);
}
catch { }
}
Environment.Exit(0);
break;
case Keys.F1:
txtCommodityBarCode.Enabled = false;
CommodityInfo.Focus();
CommodityInfo.SelectAll();
break;
case Keys.F2:
Download_Click(null, null);
break;
case Keys.F3:
btnCheck_Click(null, null);
break;
case Keys.F4:
btnUpLoad_Click(null, null);
break;
case Keys.F5:
btnReset_Click(null, null);
break;
case Keys.F6:
// txtCommodityBarCode.Enabled = false;
// CheckView.Focus();
CheckBillFail _NoInventory = new CheckBillFail(_serverpartshop_id, false);
_NoInventory.ShowDialog();
break;
//case Keys.F7:
// txtCheckCount.Focus();
// txtCheckCount.SelectAll();
// break;
case Keys.F8:
if (cobCHECKMODE.Text == "仓库盘点")
{
if (MessageBox.Show("确认完成仓库盘点进行门店盘点吗?", "系统提示", MessageBoxButtons.OKCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.OK)
{
lblHelp.Text = "直接输入条码并确认可修改盘点数量";
cobCHECKMODE.Text = "实时盘点";
lblCheckMode.Text = "门店盘点";
}
}
//else
//{
// cobCHECKMODE.Text = "仓库盘点";
// lblCheckMode.Text = "仓库盘点";
//}
break;
case Keys.F9:
CheckBillFail _CheckBillFail = new CheckBillFail(_serverpartshop_id, true);
_CheckBillFail.ShowDialog();
break;
}
}
private void CheckView_RowEnter(object sender, DataGridViewCellEventArgs e)
{
//if (CheckView.CurrentRow != null)
//{
// int _index = CheckView.CurrentRow.Index;
//txtCommodityName.Text = CheckView.Rows[e.RowIndex].Cells["commodity_name"].Value.ToString();
//txtCommodityNum.Text = CheckView.Rows[e.RowIndex].Cells["overpluscount"].Value.ToString();
//txtCheckCount.Text = CheckView.Rows[e.RowIndex].Cells["curoverpluscount"].Value.ToString();
//txtDifferenceCount.Text = CheckView.Rows[e.RowIndex].Cells["differencecount"].Value.ToString();
//txtInventoryDate.Text = CheckView.Rows[e.RowIndex].Cells["checkdate"].Value.ToString();
//if (!txtCommodityBarCode.Enabled)
//{
// txtCommodityBarCode.Text = CheckView.Rows[e.RowIndex].Cells["commodity_barcode"].Value.ToString();
// ChangeColor();
//}
//}
}
private void txtCheckCount_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
if (txtCheckCount.Text == "")
{
MessageBox.Show("请输入盘点数量", "系统提示", MessageBoxButtons.OK);
txtCheckCount.Focus();
txtCheckCount.SelectAll();
return;
}
decimal result;
if (decimal.TryParse(txtCheckCount.Text, out result))
{
CommodityInput(txtCommodityBarCode.Text, txtCheckCount.Text, DateTime.Now.ToString(), "重新盘点");
}
else
{
MessageBox.Show("请输入正确的盘点数量", "系统提示", MessageBoxButtons.OK);
txtCheckCount.Focus();
txtCheckCount.SelectAll();
return;
}
}
}
private void CheckCommodity_Shown(object sender, EventArgs e)
{
ShowWaiteForm();
_WaitForm.ShowMessage("正在验证日结信息......");
APPLoading();
_WaitForm.Close();
_WaitForm.Dispose();
}
private void btnMin_Click(object sender, EventArgs e)
{
WindowState = FormWindowState.Minimized;
}
private void txtSearch_TextChanged(object sender, EventArgs e)
{
if (txtSearch.Text != "")
{
DataTable _DataTable = CheckView.DataSource as DataTable;
_DataTable.DefaultView.RowFilter = "commodity_barcode like '%" + txtSearch.Text +
"%' or commodity_name like '%" + txtSearch.Text + "%'";
}
else
{
cobDifference_SelectionChangeCommitted(null, null);
}
}
private void btnFail_Click(object sender, EventArgs e)
{
CheckBillFail _CheckBillFail = new CheckBillFail(_serverpartshop_id, true);
_CheckBillFail.ShowDialog();
}
private void btnNoInventory_Click(object sender, EventArgs e)
{
CheckBillFail _NoInventory = new CheckBillFail(_serverpartshop_id, false);
_NoInventory.ShowDialog();
}
}
}