2025-03-27 15:05:14 +08:00

1297 lines
70 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.IO;
using System.Net.NetworkInformation;
using System.Threading;
using System.Windows.Forms;
using Microsoft.Win32;
using Oracle.ManagedDataAccess.Client;
using Sap.Data.SQLAnywhere;
using SuperMap.RealEstate.Windows.Controls.NetSocket;
using SuperMap.RealEstate.Windows.Forms;
using Business = SuperMap.RealEstate.SaleStore.Storage.Business;
namespace InventoryTool
{
public partial class InventoryToolMain : FormBase
{
BackgroundWorker bgWorker = new BackgroundWorker();
#region
static string dbip = "", dbport = "", dbname = "", dbuser = "", dbpass = "", conname = "", serverpartcode = "", shopcode = "", machinecode = "";
string SqlString = string.Empty;
string connString = string.Empty;
static string cashRegisterIP = "";
string odbcString = string.Empty;
string machineName = string.Empty;
string machineIP = string.Empty;
string strConnection = string.Empty;
string endAccountDate = string.Empty;
string serverpartshop_id = string.Empty;
string noBarCode = string.Empty;
string macAddress = string.Empty;
OleDbConnection con = null;
#endregion
#region
public InventoryToolMain()
{
string filePath = Path.GetFullPath("InventoryData.mdb");
strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Persist Security Info=False";
con = new OleDbConnection(strConnection);
InitializeComponent();
bgWorker.WorkerReportsProgress = true;
bgWorker.WorkerSupportsCancellation = true;
bgWorker.DoWork += DoWork_Handler;
bgWorker.ProgressChanged += ProgressChanged_Handler;
bgWorker.RunWorkerCompleted += RunWorkerCompleted_Handler;
QueryOracle();
label11.Text = "";
Thread msgthr = new Thread(new ParameterizedThreadStart(msgtxt => { MessageBox.Show((string)msgtxt); }));
}
#endregion
#region
public OracleConnection QueryOracle()
{
try
{
//判断没有set.ini文件那么就新建set.ini文件
if (File.Exists("D:\\HighWayPosSoft\\setup.ini"))
{
FileStream fs = new FileStream("D:\\HighWayPosSoft\\setup.ini", FileMode.Open);
StreamReader m_streamReader = new StreamReader(fs);
m_streamReader.BaseStream.Seek(0, SeekOrigin.Begin);
string strLine = m_streamReader.ReadLine();
do
{
string[] split = strLine.Split('=');
string b = split[0];
if (b == "dbip")
dbip = split[1];
else if (b == "dbport")
dbport = split[1];
else if (b == "dbname")
dbname = split[1];
else if (b == "dbuser")
dbuser = split[1];
else if (b == "dbpass")
dbpass = split[1];
else if (b == "conname")
conname = split[1];
else if (b == "serverpartcode")
serverpartcode = split[1];
else if (b == "shopcode")
shopcode = split[1];
else if (b == "machinecode")
machinecode = split[1];
strLine = m_streamReader.ReadLine();
}
while (strLine != null);
m_streamReader.Close();
fs.Close();
}
else if (File.Exists("D:\\HighWayPosSoft\\set.ini"))
{
//如果已经存在set.ini文件则直接读取它信息
FileStream fs = new FileStream("D:\\HighWayPosSoft\\set.ini", FileMode.Open);
StreamReader STRreader = new StreamReader(fs);
STRreader.BaseStream.Seek(0, SeekOrigin.Begin);
string STRline = STRreader.ReadLine();
do
{
string[] split = STRline.Split('=');
string i = split[0];
if (i == "dbip")
dbip = split[1];
else if (i == "dbport")
dbport = split[1];
else if (i == "dbname")
dbname = split[1];
else if (i == "dbuser")
dbuser = split[1];
else if (i == "dbpass")
dbpass = split[1];
else if (i == "conname")
conname = split[1];
else if (i == "serverpartcode")
serverpartcode = split[1];
else if (i == "shopcode")
shopcode = split[1];
else if (i == "machinecode")
machinecode = split[1];
STRline = STRreader.ReadLine();
}
while (STRline != null);
STRreader.Close();
fs.Close();
}
else
{
ServerSetting frm = new ServerSetting();
frm.ShowDialog();
if (frm.DialogResult == DialogResult.OK)
{
dbip = frm.Serverip;
dbport = frm.Serverport;
conname = frm.Connname;
dbuser = frm.User;
dbpass = frm.Pass;
}
}
}
catch (Exception ex)
{
LogHelper.WriteServiceLog(ex.Message);
}
connString = "Data Source = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = " + dbip + ")(PORT = " + dbport + "))(CONNECT_DATA = (SERVICE_NAME = " + conname + "))); User Id = " + dbuser + "; Password=" + dbpass + ";";
OracleConnection conn = new OracleConnection(connString);
string MACAddress = GetMACINFO();
#region Mac地址获取收银机IP和编号
//try
//{
// conn.Open();
// string comStr = "SELECT MACHINECODE,MACHINE_IP,MACHINE_MACADDRESS FROM HIGHWAY_EXCHANGE.T_MACHINEINFO A WHERE A.SHOPCODE=(" +
// "SELECT SHOPCODE FROM HIGHWAY_EXCHANGE.T_SHOPMESSAGE B WHERE B.SHOPNAME ='" + cobSHOPCODE.Text + "') ORDER BY MACHINECODE ASC";
// ArrayList listCompanyID = new ArrayList();
// OracleCommand Com = new OracleCommand(comStr, conn);
// OracleDataReader rd = Com.ExecuteReader();
// if (rd.HasRows)
// {
// while (rd.Read())
// {
// listCompanyID.Add(rd["MACHINECODE"].ToString());
// }
// listCompanyID.Insert(0, "全部");
// CobMACHINECODE.DataSource = listCompanyID;
// rd.Dispose();
// }
// conn.Close();
//}
//catch (Exception ex)
//{
// LogHelper.WriteServiceLog(ex.Message);
// conn.Close();
//}
#endregion
#region
try
{
conn.Open();
string comStr = "SELECT * FROM T_SHOPMESSAGE WHERE BUSINESSTYPE IN ('1000','1005','9001') ORDER BY SERVERPARTSHOP_ID ASC";
ArrayList listshopID = new ArrayList();
OracleCommand Com = new OracleCommand(comStr, conn);
OracleDataReader rd = Com.ExecuteReader();
if (rd.HasRows)
{
con.Open();
while (rd.Read())
{
listshopID.Add(rd["SHOPNAME"].ToString());
string shopnameSql = "SELECT * FROM SHOPMESSAGE WHERE SERVERPARTSHOP_ID=" + Convert.ToInt64(rd["SERVERPARTSHOP_ID"]);
OleDbCommand comshop = new OleDbCommand(shopnameSql, con);
OleDbDataReader drshop = comshop.ExecuteReader();
if (!drshop.HasRows)
{
string insert1Sql = "INSERT INTO SHOPMESSAGE (ServerpartShop_id,SHOPCODE,SHOPNAME,BUSINESSTYPE) values (" +
Convert.ToInt64(rd["SERVERPARTSHOP_ID"]) + ",'" + Convert.ToString(rd["SHOPCODE"]) + "','" +
Convert.ToString(rd["SHOPNAME"]) + "','" + Convert.ToString(rd["BUSINESSTYPE"]) + "')";
OleDbCommand com = new OleDbCommand(insert1Sql, con);
com.ExecuteNonQuery();
}
}
con.Close();
listshopID.Insert(0, "请选择门店");
cobSHOPCODE.DataSource = listshopID;
rd.Dispose();
}
conn.Close();
CommodityInfo.Focus();
}
catch (Exception ex)
{
LogHelper.WriteServiceLog(ex.Message);
conn.Close();
}
#endregion
CommodityInfo.Focus();
return conn;
}
#endregion
#region
private void button1_Click(object sender, EventArgs e)
{
try
{
if (bgWorker.IsBusy)
{
MessageBox.Show("正在上传盘点数据,请稍后……", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
DialogResult dr = MessageBox.Show("盘点数据清空后将不可恢复!", "清空盘点数据", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
if (dr == DialogResult.OK)
{
con.Open();
string delSql = "delete * from CommodityInventory;delete * from SHOPMESSAGE";
OleDbCommand comm = new OleDbCommand(delSql, con);
comm.ExecuteNonQuery();
con.Close();
MessageBox.Show("数据已清空", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
else
{
}
}
catch (Exception ex)
{
LogHelper.WriteServiceLog(ex.Message);
con.Close();
}
CommodityInfo.Focus();
}
#endregion
#region
private void btnSearch_Click(object sender, EventArgs e)
{
try
{
if (bgWorker.IsBusy)
{
MessageBox.Show("正在上传盘点数据,请稍后……", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
if (cobSHOPCODE.Text == "请选择门店")
{
MessageBox.Show("请先选择门店!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else if (CobMACHINECODE.Text == "请选择收银机")
{
MessageBox.Show("请先选择收银机号!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
con.Open();
string selectSql = @"select ID,CommodityBarCode,CommodityName,
iif(isnull(InventoryNum),0,InventoryNum)+iif(isnull(SellCount),0,SellCount) AS InventoryNum,
iif(isnull(CheckDesc),0,CheckDesc) AS CheckDesc,
iif(isnull(TotalCount),0,TotalCount) AS TotalCount,InventoryDate,iif(isnull(Flag),0,Flag) AS Flag from CommodityInventory
where CheckDate='" + AccountDate.Text + "'";
OleDbDataAdapter da = new OleDbDataAdapter(selectSql, con); //创建适配对象
DataTable dt = new DataTable(); //新建表对象
da.Fill(dt); //用适配对象填充表对象
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
dt.Rows[i]["ID"] = i + 1;
}
}
dataGridView1.DataSource = dt;
con.Close();
dataGridView1.MultiSelect = false;
dataGridView1.Rows[dataGridView1.RowCount - 1].Selected = true;
dataGridView1.CurrentCell = dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells[1];
ChangeColor();
}
}
catch (Exception ex)
{
LogHelper.WriteServiceLog(ex.Message);
con.Close();
}
}
private void Search_Click(object sender, EventArgs e)
{
if (bgWorker.IsBusy)
{
MessageBox.Show("正在上传盘点数据,请稍后……", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
if (cobSHOPCODE.Text == "请选择门店" || CobMACHINECODE.Text == "请选择收银机" || cobSHOPCODE.Text == "" || CobMACHINECODE.Text == "")
{
SelectDate frm1 = new SelectDate();
frm1.Text = "盘点查询门店选择";
frm1.ShowDialog();
if (frm1.DialogResult == DialogResult.OK)
{
Search.Enabled = false;
con.Open();
string selectSql = @"select ID,CommodityBarCode,CommodityName,
iif(isnull(InventoryNum),0,InventoryNum)+iif(isnull(SellCount),0,SellCount) AS InventoryNum,
iif(isnull(CheckDesc),0,CheckDesc) AS CheckDesc,
iif(isnull(TotalCount),0,TotalCount) AS TotalCount,InventoryDate,iif(isnull(Flag),0,Flag) AS Flag from CommodityInventory
where CheckDate='" + frm1.CheckDate + "'";
//MessageBox.Show(selectSql);
OleDbDataAdapter da = new OleDbDataAdapter(selectSql, con); //创建适配对象
DataTable dt = new DataTable(); //新建表对象
da.Fill(dt); //用适配对象填充表对象
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
dt.Rows[i]["ID"] = i + 1;
}
dataGridView1.DataSource = dt;
//MessageBox.Show(dt.Rows.Count.ToString());
dataGridView1.MultiSelect = false;
dataGridView1.Rows[dataGridView1.RowCount - 1].Selected = true;
dataGridView1.CurrentCell = dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells[1];
}
con.Close();
CommodityInfo.Focus();
ChangeColor();
Search.Enabled = true;
}
else
{
this.btnSearch_Click(sender, e);
CommodityInfo.Focus();
}
}
else
{
this.btnSearch_Click(sender, e);
CommodityInfo.Focus();
}
}
#endregion
#region
private void CommodityInfo_KeyDown(object sender, KeyEventArgs e)
{
try
{
if (e.KeyCode == Keys.Enter)//判断回车键
{
if (bgWorker.IsBusy)
{
MessageBox.Show("正在上传盘点数据,请稍后……", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
commodityname.Focus();
commodityname.SelectAll();
return;
}
if (cobSHOPCODE.Text == "请选择门店")
{
MessageBox.Show("请先选择门店!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
commodityname.Focus();
commodityname.SelectAll();
}
else if (CobMACHINECODE.Text == "请选择收银机")
{
MessageBox.Show("请先选择收银机号!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
commodityname.Focus();
commodityname.SelectAll();
}
else if (cobCHECKMODE.Text == "请选择盘点模式")
{
MessageBox.Show("请先选择盘点模式!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
commodityname.Focus();
commodityname.SelectAll();
}
else //保存盘点信息
{
commodityname.Text = "";
string commodityInfo = CommodityInfo.Text;
string[] sArray = commodityInfo.Split(',');
CommodityBarCode.Text = sArray[0].ToString();
CommodityNum.Text = sArray[1].ToString();
InventoryDate.Text = sArray[2].ToString();
con.Open();
string selectSql = "select * from CommodityInventory where CommodityBarCode='" + CommodityBarCode.Text +
"' and CheckDate='" + AccountDate.Text + "' AND SERVERPARTSHOP_ID = " + serverpartshop_id + "";
string updateSql = "";
OleDbDataAdapter da = new OleDbDataAdapter(selectSql, con);
DataTable dt = new DataTable();
da.Fill(dt);
con.Close();
string barcode = @"select serverpartshop_id,commodity_name from DBA.t_commodityex" +
" where COMMODITY_BARCODE = '" + CommodityBarCode.Text + "'";
SAConnection conany = new SAConnection(odbcString);
conany.Open();
SACommand _barcode = new SACommand(barcode, conany);
SADataReader barcodereader = _barcode.ExecuteReader();
if (barcodereader.HasRows)
{
if (barcodereader.Read())
{
commodityname.Text = Convert.ToString(barcodereader["commodity_name"]);
}
}
if (cobCHECKMODE.Text == "门店盘点")//门店盘点模式
{
string sellDate = @"SELECT SUM(b.SELLCOUNT) AS SellCount,0 as TotalCount,Max(SELLDATA_DATE) as InventoryDate
FROM DBA.t_commodityex a, DBA.t_selldata b WHERE a.COMMODITY_CODE = b.COMMODITY_CODE AND
b.SELLDATA_DATE > '" + AccountDate.Text + "'" + " AND A.SERVERPARTSHOP_ID= " + serverpartshop_id +
" AND b.SELLDATA_DATE <= '" + InventoryDate.Text + "' AND A.COMMODITY_BARCODE = '" + CommodityBarCode.Text + "'";
SACommand sellCommand = new SACommand(sellDate, conany);
SADataReader sellRead = sellCommand.ExecuteReader();
if (sellRead.HasRows)//判断是否有流水
{
if (sellRead.Read())
{
if (dt.Rows.Count > 0)
{
foreach (DataRow dr in dt.Rows)
{
if (Convert.ToDateTime(dr["InventoryDate"]) <= Convert.ToDateTime(InventoryDate.Text))
{
updateSql = @"update CommodityInventory set InventoryNum=" +
(Convert.ToInt32(dr["InventoryNum"].ToString() == "" ? "0" : dr["InventoryNum"]) +
Convert.ToInt32(CommodityNum.Text)) + ",SellCount=" + Convert.ToInt32(sellRead["SellCount"].ToString() == "" ? "0" : sellRead["SellCount"]) +
",TotalCount=" + (Convert.ToInt32(dr["InventoryNum"].ToString() == "" ? "0" : dr["InventoryNum"]) +
Convert.ToInt32(CommodityNum.Text) + Convert.ToInt32(dr["CheckDesc"].ToString() == "" ? "0" : dr["CheckDesc"]) +
Convert.ToInt32(sellRead["SellCount"].ToString() == "" ? "0" : sellRead["SellCount"])) + ",InventoryDate='" +
Convert.ToDateTime(InventoryDate.Text).ToString("yyyy/MM/dd HH:mm:ss") + "' where CommodityBarCode='" +
CommodityBarCode.Text + "' AND CheckDate='" + AccountDate.Text + "' AND SERVERPARTSHOP_ID=" + serverpartshop_id;
con.Open();
OleDbCommand comm = new OleDbCommand(updateSql, con);
comm.ExecuteNonQuery();
con.Close();
}
else
{
updateSql = @"update CommodityInventory set InventoryNum=" + (Convert.ToInt32(dr["InventoryNum"].ToString() == "" ? "0" : dr["InventoryNum"]) +
Convert.ToInt32(CommodityNum.Text)) + ",TotalCount=" + (Convert.ToInt32(dr["InventoryNum"].ToString() == "" ? "0" :
dr["InventoryNum"]) + Convert.ToInt32(CommodityNum.Text) + Convert.ToInt32(dr["CheckDesc"].ToString() == "" ? "0" : dr["CheckDesc"]) +
Convert.ToInt32(dr["SellCount"].ToString() == "" ? "0" : dr["SellCount"])) +
" where CommodityBarCode='" + CommodityBarCode.Text + "' AND CheckDate='" + AccountDate.Text + "' AND SERVERPARTSHOP_ID=" + serverpartshop_id;
con.Open();
OleDbCommand comm = new OleDbCommand(updateSql, con);
comm.ExecuteNonQuery();
con.Close();
}
}
conany.Close();
}
else
{
string insertSql = "insert into CommodityInventory (CommodityBarCode,CommodityName,InventoryNum,SellCount,TotalCount,InventoryDate,ServerpartShop_id," +
"CheckDate) values ('" + CommodityBarCode.Text + "','" + commodityname.Text + "'," + CommodityNum.Text + "," +
Convert.ToInt32(sellRead["SellCount"].ToString() == "" ? "0" : sellRead["SellCount"]) + "," +
(Convert.ToInt32(CommodityNum.Text) + Convert.ToInt32(sellRead["SellCount"].ToString() == "" ? "0" : sellRead["SellCount"])) +
",'" + Convert.ToDateTime(InventoryDate.Text).ToString("yyyy/MM/dd HH:mm:ss") + "'," + serverpartshop_id + ",'" + AccountDate.Text + "')";
con.Open();
OleDbCommand comm = new OleDbCommand(insertSql, con);
comm.ExecuteNonQuery();
con.Close();
conany.Close();
}
}
}
else //没有流水记录
{
//string barcode = @"select serverpartshop_id,commodity_name from DBA.t_commodityex
// where COMMODITY_BARCODE = '" + CommodityBarCode.Text + "'";
//OdbcCommand _barcode = new OdbcCommand(barcode, conany);
//OdbcDataReader barcodereader = _barcode.ExecuteReader();
if (barcodereader.HasRows)
{
string insertSql = @"insert into CommodityInventory (CommodityBarCode,InventoryNum,SellCount,TotalCount,InventoryDate,ServerpartShop_id ,CheckDate)
values ('" + CommodityBarCode.Text + "'," + CommodityNum.Text + "," + Convert.ToInt32(sellRead["SellCount"].ToString() == "" ? "0" : sellRead["SellCount"]) +
"," + (CommodityNum.Text + Convert.ToInt32(sellRead["SellCount"].ToString() == "" ? "0" : sellRead["SellCount"])) + ",'" +
Convert.ToDateTime(InventoryDate.Text).ToString("yyyy/MM/dd HH:mm:ss") + "'," + serverpartshop_id + ",'" + AccountDate.Text + "')";
conany.Close();
con.Open();
OleDbCommand comm = new OleDbCommand(insertSql, con);
comm.ExecuteNonQuery();
con.Close();
//commodityname.Text = barcodereader["commodity_name"].ToString();
}
else
{
noBarCode += CommodityBarCode.Text;
CommodityInfo.Clear();
CommodityInfo.Focus();
return;
}
noBarCode += CommodityBarCode.Text;
CommodityInfo.Clear();
CommodityInfo.Focus();
return;
}
}
else //仓库盘点模式
{
if (barcodereader.HasRows) //检查条码是否存在
{
if (dt.Rows.Count > 0) //有盘点记录
{
foreach (DataRow dr in dt.Rows)
{
if (Convert.ToDateTime(dr["InventoryDate"]) < Convert.ToDateTime(InventoryDate.Text)) //盘点录入时间大于上一条记录
{
updateSql = "update CommodityInventory set CheckDesc=" + (Convert.ToInt32(dr["CheckDesc"].ToString() == "" ? "0" : dr["CheckDesc"]) +
Convert.ToInt32(CommodityNum.Text)) + ",TotalCount=" + (Convert.ToInt32(dr["InventoryNum"].ToString() == "" ? "0" :
dr["InventoryNum"]) + Convert.ToInt32(CommodityNum.Text) + Convert.ToInt32(dr["CheckDesc"].ToString() == "" ? "0" : dr["CheckDesc"]) +
Convert.ToInt32(dr["SellCount"].ToString() == "" ? "0" : dr["SellCount"])) + ",InventoryDate='" +
Convert.ToDateTime(InventoryDate.Text).ToString("yyyy/MM/dd HH:mm:ss") + "' where CommodityBarCode='" +
CommodityBarCode.Text + "' AND CheckDate='" + AccountDate.Text + "' AND SERVERPARTSHOP_ID=" + serverpartshop_id;
con.Open();
OleDbCommand comm = new OleDbCommand(updateSql, con);
comm.ExecuteNonQuery();
con.Close();
}
else //盘点录入时间小于上一条记录
{
updateSql = "update CommodityInventory set CheckDesc=" + (Convert.ToInt32(dr["CheckDesc"].ToString() == "" ? "0" : dr["CheckDesc"]) +
Convert.ToInt32(CommodityNum.Text)) + ",TotalCount=" + (Convert.ToInt32(dr["InventoryNum"].ToString() == "" ? "0" :
dr["InventoryNum"]) + Convert.ToInt32(CommodityNum.Text) + Convert.ToInt32(dr["CheckDesc"].ToString() == "" ? "0" : dr["CheckDesc"]) +
Convert.ToInt32(dr["SellCount"].ToString() == "" ? "0" : dr["SellCount"])) + " where CommodityBarCode='" +
CommodityBarCode.Text + "' AND CheckDate='" + AccountDate.Text + "' AND SERVERPARTSHOP_ID=" + serverpartshop_id;
con.Open();
OleDbCommand comm = new OleDbCommand(updateSql, con);
comm.ExecuteNonQuery();
con.Close();
}
}
conany.Close();
}
else //没有盘点记录
{
string insertSql = "insert into CommodityInventory (CommodityBarCode,CommodityName,CheckDesc,TotalCount,InventoryDate,ServerpartShop_id ,CheckDate) values ('" +
CommodityBarCode.Text + "','" + commodityname.Text + "'," + CommodityNum.Text + "," + (Convert.ToInt32(CommodityNum.Text)) + ",'" +
Convert.ToDateTime(InventoryDate.Text).ToString("yyyy/MM/dd HH:mm:ss") + "'," + serverpartshop_id + ",'" + AccountDate.Text + "')";
con.Open();
OleDbCommand comm = new OleDbCommand(insertSql, con);
comm.ExecuteNonQuery();
con.Close();
conany.Close();
}
this.btnSearch_Click(sender, e);
CommodityInfo.Clear();
CommodityInfo.Focus();
}
else
{
noBarCode += CommodityBarCode.Text;
CommodityInfo.Clear();
CommodityInfo.Focus();
return;
}
}
this.btnSearch_Click(sender, e);
CommodityInfo.Clear();
CommodityInfo.Focus();
return;
}
}
}
catch (Exception ex)
{
LogHelper.WriteServiceLog(ex.Message);
con.Close();
}
CommodityInfo.Focus();
}
#endregion
#region
private void btnCheck_Click(object sender, EventArgs e)
{
try
{
if (bgWorker.IsBusy)
{
MessageBox.Show("正在上传盘点数据,请稍后……", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
if (cobSHOPCODE.Text == "请选择门店" || cobSHOPCODE.Text == "")
{
MessageBox.Show("请先选择门店!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else if (CobMACHINECODE.Text == "请选择收银机" || CobMACHINECODE.Text == "")
{
MessageBox.Show("请先选择收银机号!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
SADataReader reader = null;
SAConnection conany = new SAConnection(odbcString);
conany.Open();
string commodity = @"SELECT a.COMMODITY_NAME AS CommodityName,a.COMMODITY_BARCODE AS CommodityBarCode,0 AS InventoryNum,
SUM(b.SELLCOUNT) AS SellCount,0 as TotalCount,Max(SELLDATA_DATE) as InventoryDate
FROM DBA.t_commodityex a, DBA.t_selldata b
WHERE a.COMMODITY_CODE = b.COMMODITY_CODE AND SELLDATA_DATE > '" + AccountDate.Text +
"' AND A.SERVERPARTSHOP_ID='" + serverpartshop_id + "' GROUP BY a.COMMODITY_NAME,a.COMMODITY_BARCODE";
SACommand command = new SACommand(commodity, conany);
reader = command.ExecuteReader();
DataTable dt = new DataTable(); //新建表对象
dt.Load(reader);
con.Open();
string selectSql = @"
select CommodityBarCode,
iif(isnull(InventoryNum),0,InventoryNum) AS InventoryNum,
iif(isnull(SellCount),0,SellCount) AS SellCount,
iif(isnull(TotalCount),0,TotalCount) AS TotalCount,InventoryDate
from CommodityInventory
where InventoryDate > '" + AccountDate.Text + "'";
OleDbDataAdapter daInventory = new OleDbDataAdapter(selectSql, con);
DataTable dtInventory = new DataTable();
daInventory.Fill(dtInventory);
foreach (DataRow sell in dt.Rows)
{
bool has = false;
DataRow[] InvDr = dtInventory.Select("CommodityBarCode='" + sell["CommodityBarCode"].ToString() + "'");
if (InvDr.Length > 0)
{
string sellDate = @"SELECT SUM(b.SELLCOUNT) AS SellCount,0 as TotalCount,
Max(SELLDATA_DATE) as InventoryDate FROM DBA.t_commodityex a, DBA.t_selldata b
WHERE a.COMMODITY_CODE = b.COMMODITY_CODE AND SELLDATA_DATE > '" + AccountDate.Text + "'" +
"AND A.SERVERPARTSHOP_ID= " + serverpartshop_id + " AND b.SELLDATA_DATE <= '" +
InvDr[0]["InventoryDate"].ToString() + "' AND A.COMMODITY_BARCODE = '" +
sell["CommodityBarCode"].ToString() + "'";
SACommand sellCommand = new SACommand(sellDate, conany);
SADataReader sellRead = sellCommand.ExecuteReader();
if (sellRead.HasRows)
{
has = true;
string updateSql = @"update CommodityInventory set SellCount=" +
Convert.ToInt32(sellRead["SellCount"].ToString() == "" ? "0" : sellRead["SellCount"]) +
",TotalCount=" + (Convert.ToInt32(sellRead["SellCount"].ToString() == "" ? "0" :
sellRead["SellCount"]) + Convert.ToInt32(InvDr[0]["InventoryNum"])) +
" where CommodityBarCode='" + sell["CommodityBarCode"].ToString() + "'";
OleDbCommand comm = new OleDbCommand(updateSql, con);
comm.ExecuteNonQuery();
}
}
if (!has)
{
string insertSql = @"insert into CommodityInventory
(CommodityBarCode,CommodityName,InventoryNum,SellCount,TotalCount,InventoryDate,CheckDate)
values ('" + sell["CommodityBarCode"] + "','" + sell["CommodityName"].ToString() + "',0," + Convert.ToInt32(sell["SellCount"]) +
"," + Convert.ToInt32(sell["SellCount"]) + ",'" + sell["InventoryDate"] +
"','" + AccountDate.Text + "')";
OleDbCommand comm = new OleDbCommand(insertSql, con);
comm.ExecuteNonQuery();
}
}
conany.Close();
con.Close();
if (!string.IsNullOrEmpty(noBarCode))
{
MessageBox.Show("收银机不存在条码为:'" + noBarCode + "'的商品", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show("数据校验成功!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
this.btnSearch_Click(sender, e);
CommodityInfo.Clear();
CommodityInfo.Focus();
}
}
catch (Exception ex)
{
LogHelper.WriteServiceLog(ex.Message);
con.Close();
CommodityInfo.Focus();
}
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
CommodityInfo.Focus();
ChangeColor();
}
#endregion
#region
private void cobSHOPCODE_SelectedIndexChanged_1(object sender, EventArgs e)
{
OracleConnection conn = new OracleConnection(connString);
#region IP和编号
try
{
if (cobSHOPCODE.Text != "请选择门店")
{
conn.Open();
string comStr = "SELECT MACHINECODE,MACHINE_IP,MACHINE_MACADDRESS,MACHINENAME FROM HIGHWAY_EXCHANGE.T_MACHINEINFO A WHERE A.SHOPCODE=(" +
"SELECT SHOPCODE FROM HIGHWAY_EXCHANGE.T_SHOPMESSAGE B WHERE B.SHOPNAME ='" + cobSHOPCODE.Text + "') ORDER BY MACHINECODE ASC";
ArrayList listCompanyID = new ArrayList();
OracleCommand Com = new OracleCommand(comStr, conn);
OracleDataReader rd = Com.ExecuteReader();
if (rd.HasRows)
{
while (rd.Read())
{
listCompanyID.Add(rd["MACHINECODE"].ToString());
}
listCompanyID.Insert(0, "请选择收银机");
CobMACHINECODE.DataSource = listCompanyID;
rd.Dispose();
ArrayList listmode = new ArrayList();
listmode.Insert(0, "请选择盘点模式");
listmode.Add("门店盘点");
listmode.Add("仓库盘点");
cobCHECKMODE.DataSource = listmode;
}
conn.Close();
}
}
catch (Exception ex)
{
LogHelper.WriteServiceLog(ex.Message);
conn.Close();
}
#endregion
CommodityInfo.Focus();
}
#endregion
#region
private void CobMACHINECODE_SelectedIndexChanged_1(object sender, EventArgs e)
{
try
{
if (CobMACHINECODE.Text != "请选择收银机")
{
OracleConnection conn = new OracleConnection(connString);
conn.Open();
string comStr = "SELECT MACHINECODE,MACHINE_IP,MACHINE_MACADDRESS FROM T_MACHINEINFO WHERE MACHINECODE = '" +
CobMACHINECODE.Text + "'";
ArrayList listCompanyID = new ArrayList();
OracleCommand Com = new OracleCommand(comStr, conn);
OracleDataReader rd = Com.ExecuteReader();
if (rd.HasRows)
{
while (rd.Read())
{
cashRegisterIP = rd["MACHINE_IP"].ToString();
macAddress = rd["MACHINE_MACADDRESS"].ToString();
}
}
conn.Close();
#region Mac地址获取收银机IP和名称
try
{
conn.Open();
string registerIPSql = "SELECT MACHINE_IP,MACHINENAME,SERVERPARTCODE,SHOPCODE FROM T_MACHINEINFO WHERE MACHINE_MACADDRESS = '" + macAddress + "'";
OracleCommand registerIPCom = new OracleCommand(registerIPSql, conn);
OracleDataReader registerIPrd = registerIPCom.ExecuteReader();
if (registerIPrd.HasRows)
{
while (registerIPrd.Read())
{
machineIP = registerIPrd["MACHINE_IP"].ToString();
machineName = registerIPrd["MACHINENAME"].ToString();
serverpartcode = registerIPrd["SERVERPARTCODE"].ToString();
shopcode = registerIPrd["SHOPCODE"].ToString();
}
}
conn.Close();
}
catch (Exception ex)
{
LogHelper.WriteServiceLog(ex.Message);
conn.Close();
}
#endregion
//odbcString = "DSN=anysql1;UID=dba;PWD=sql;";
//odbcString = "driver={RY Sybase SQL Anywhere 11.0};Dsn=" + machineName + ";UID=dba;PWD=sql;" +
// "servername=" + machineName + ";commlinks='SharedMemory,TCPIP{host=" + machineIP + "}'";
odbcString = "host=" + machineIP + ";server=" + machineName + ";userid=dba;password=sql";
#region
try
{
SAConnection conany = new SAConnection(odbcString);
conany.Open();
string serverpartshopid = @"select serverpartshop_id from DBA.t_shopmessage
where serverpartcode='" + serverpartcode + "' and shopcode=" + shopcode + "";
SACommand _serverpartshopid = new SACommand(serverpartshopid, conany);
SADataReader shopidreader = _serverpartshopid.ExecuteReader();
if (shopidreader.HasRows)
{
while (shopidreader.Read())
{
serverpartshop_id = shopidreader["serverpartshop_id"].ToString();
}
}
conany.Close();
}
catch (Exception ex)
{
MessageBox.Show("收银机连接失败,请重新选择!");
throw new Exception("shopcode " + ex.Message);
}
#endregion
#region
try
{
string checkDate = @"SELECT ENDACCOUNT_DATE FROM DBA.t_endaccount where ENDACCOUNT_DATE > Getdate()-5 ORDER BY ENDACCOUNT_DATE DESC";
SAConnection conany = new SAConnection(odbcString);
conany.Open();
AccountDate.Items.Clear();
SACommand _checkDate = new SACommand(checkDate, conany);
SADataReader checkDateRd = _checkDate.ExecuteReader();
if (checkDateRd.HasRows)
{
while (checkDateRd.Read())
{
AccountDate.Items.Add(checkDateRd[0].ToString());
//endAccountDate = Convert.ToDateTime(checkDateRd["ENDACCOUNT_DATE"]).ToString("yyyy/MM/dd HH:mm:ss");
}
}
conany.Close();
AccountDate.SelectedIndex = 0;
}
catch (Exception ex)
{
throw new Exception("endaccount" + ex.Message);
}
#endregion
}
}
catch (Exception ex)
{
LogHelper.WriteServiceLog(ex.Message);
}
CommodityInfo.Focus();
}
#endregion
private void AccountDate_SelectedIndexChanged_1(object sender, EventArgs e)
{
CommodityInfo.Focus();
}
private void cobCHECKMODE_SelectedIndexChanged_1(object sender, EventArgs e)
{
CommodityInfo.Focus();
}
#region MAC地址
public static string GetMACINFO()
{
string key = "SYSTEM\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\";
string MacAddress = string.Empty;
try
{
NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface adapter in nics)
{
if (adapter.NetworkInterfaceType == NetworkInterfaceType.Ethernet
&& adapter.GetPhysicalAddress().ToString().Length != 0)
{
string fRegistryKey = key + adapter.Id + "\\Connection";
RegistryKey rk = Registry.LocalMachine.OpenSubKey(fRegistryKey, false);
if (rk != null)
{
string fPnpInstanceID = rk.GetValue("PnpInstanceID", "").ToString();
int fMediaSubType = Convert.ToInt32(rk.GetValue("MediaSubType", 0));
if (fPnpInstanceID.Length > 3 &&
fPnpInstanceID.Substring(0, 3) == "PCI")
{
MacAddress = adapter.GetPhysicalAddress().ToString();
for (int i = 1; i < 6; i++)
{
MacAddress = MacAddress.Insert(3 * i - 1, ":");
}
break;
}
}
}
}
}
catch (Exception ex)
{
//这里写异常的处理
}
return MacAddress;
}
#endregion
#region
private void btnUpLoad_Click(object sender, EventArgs e)
{
if (!bgWorker.IsBusy)
{
bgWorker.RunWorkerAsync();
}
#region 线
//int temp = 0;
//int tmp = 0;
//int i = 0;
////if (cobSHOPCODE.Text == "请选择门店")
////{
//// MessageBox.Show("请先选择门店!");
////}
////else if (CobMACHINECODE.Text == "请选择收银机")
////{
//// MessageBox.Show("请先选择收银机号!");
////}
////else
////{
//SelectDate frm1 = new SelectDate();
//frm1.Text = "盘点上传门店选择";
//frm1.ShowDialog();
//if (frm1.DialogResult == DialogResult.OK)
//{
// progressBar1.Visible = true;
// label11.Visible = true;
// progressBar1.Value = 0;
// try
// {
// string log = string.Empty;
// con.Open();
// string selectSql = @"
// select CommodityBarCode,iif(isnull(InventoryNum),0,InventoryNum) AS InventoryNum,
// iif(isnull(SellCount),0,SellCount) AS SellCount,
// iif(isnull(CheckDesc),0,CheckDesc) AS CheckDesc,
// iif(isnull(TotalCount),0,TotalCount) AS TotalCount,InventoryDate,CheckDate
// from CommodityInventory
// where CheckDate = '" + frm1.CheckDate + "'";
// OleDbDataAdapter daInventory = new OleDbDataAdapter(selectSql, con);
// DataTable dtInventory = new DataTable();
// daInventory.Fill(dtInventory);
// con.Close();
// foreach (DataRow dr in dtInventory.Rows)
// {
// string updateSql = @"UPDATE SALESTORE_STORAGE.T_CHECKCOMMODITYDETAIL A SET A.CUROVERPLUSCOUNT = " + dr["TotalCount"] +
// ",A.CHECKDESC = '仓库数量:" + dr["CheckDesc"] + "' WHERE COMMODITY_BARCODE = '" + dr["CommodityBarCode"] +
// "' AND exists(select 1 from SALESTORE_STORAGE.T_CHECKCOMMODITY b where a.CHECKCOMMODITY_ID = b.CHECKCOMMODITY_ID and " +
// " b.CHECKDATE = TO_DATE('" + dr["CheckDate"] + "','yyyy/MM/dd HH24:mi:ss') and b.SERVERPARTSHOP_ID = " + frm1.Shop_id +
// " and b.CHECK_STATE = 0 and b.CHECK_TYPE IN(1000,3000))";
// string selectStr = @"SELECT A.* FROM SALESTORE_STORAGE.T_CHECKCOMMODITYDETAIL A ,SALESTORE_STORAGE.T_CHECKCOMMODITY B
// WHERE A.CHECKCOMMODITY_ID = B.CHECKCOMMODITY_ID AND COMMODITY_BARCODE='" + dr["CommodityBarCode"] +
// "' AND B.SERVERPARTSHOP_ID=" + frm1.Shop_id + " AND B.CHECK_STATE = 0 AND B.CHECK_TYPE IN(1000,3000)" +
// " AND B.CHECKDATE = TO_DATE('" + dr["CheckDate"] + "','yyyy/MM/dd HH24:mi:ss')";
// Business.CHECKCOMMODITYDETAIL _CHECKCOMMODITYDETAIL = new Business.CHECKCOMMODITYDETAIL(this.Transaction);
// DataTable dt = _CHECKCOMMODITYDETAIL.ExecuteDataTable(selectStr, null);
// i++;
// label11.Text = "正在上传盘点数据,进度:" + (int)((i / Convert.ToDecimal(dtInventory.Rows.Count.ToString())) * 100) + "%";
// //Application.DoEvents();
// progressBar1.Value = (int)((i / Convert.ToDecimal(dtInventory.Rows.Count.ToString())) * 100);
// if (dt.Rows.Count > 0)
// {
// _CHECKCOMMODITYDETAIL.ExecuteNonQuery(updateSql, null);
// string updateSql1 = "UPDATE CommodityInventory SET Flag = 0 WHERE CommodityBarCode = '" + dr["CommodityBarCode"].ToString() + "'";
// con.Open();
// OleDbCommand comm = new OleDbCommand(updateSql1, con);
// comm.ExecuteNonQuery();
// con.Close();
// tmp++;
// }
// else
// {
// string updateSql1 = "UPDATE CommodityInventory SET Flag = 1 WHERE CommodityBarCode = '" + dr["CommodityBarCode"].ToString() + "'";
// con.Open();
// OleDbCommand comm = new OleDbCommand(updateSql1, con);
// comm.ExecuteNonQuery();
// con.Close();
// log += dr["CommodityBarCode"].ToString() + ",\r\n";
// temp++;
// }
// }
// // string checkcommodity=@" INSERT INTO SALESTORE_STORAGE.T_CHECKCOMMODITY (CHECKPERSON,CHECKDATE,SERVERPART_ID,
// // SERVERPARTSHOP_ID,CHECKCOMMODITY_DESC,CHECK_STATE,CHECK_PASSPORT_GUID,CHECK_TYPE)
// // VALUES ()"
// Business.CHECKCOMMODITY _CHECKCOMMODITY = new Business.CHECKCOMMODITY(this.Transaction);
// label11.Text = "盘点数据上传完成!";
// if (!string.IsNullOrEmpty(log))
// {
// MessageBox.Show("盘点数据上传结束!成功" + tmp + "条;失败" + temp + "条;\r\n失败原因本期盘点无入库记录。点击确定查看失败记录详情");
// con.Open();
// string selectSqllocal = @"select ID,CommodityBarCode,CommodityName,
// iif(isnull(InventoryNum),0,InventoryNum)+iif(isnull(SellCount),0,SellCount) AS InventoryNum,
// iif(isnull(CheckDesc),0,CheckDesc) AS CheckDesc,
// iif(isnull(TotalCount),0,TotalCount) AS TotalCount,InventoryDate,iif(isnull(Flag),0,Flag) AS Flag from CommodityInventory
// where CheckDate='" + frm1.CheckDate + "'AND Flag = 1";
// OleDbDataAdapter da = new OleDbDataAdapter(selectSqllocal, con); //创建适配对象
// DataTable dt1 = new DataTable(); //新建表对象
// da.Fill(dt1); //用适配对象填充表对象
// dataGridView1.DataSource = dt1;
// con.Close();
// CommodityInfo.Focus();
// ChangeColor();
// label11.Text = "盘点数据上传结束!上传总数:" + (decimal)(tmp + temp) + "条;成功" + tmp + "条;失败" + temp + "条,失败原因:无入库记录";
// progressBar1.Visible = false;
// }
// else
// {
// MessageBox.Show("盘点数据上传完成!上传成功" + tmp + "条盘点记录");
// con.Open();
// string selectSqllocal = @"select ID,CommodityBarCode,CommodityName,
// iif(isnull(InventoryNum),0,InventoryNum)+iif(isnull(SellCount),0,SellCount) AS InventoryNum,
// iif(isnull(CheckDesc),0,CheckDesc) AS CheckDesc,
// iif(isnull(TotalCount),0,TotalCount) AS TotalCount,InventoryDate,iif(isnull(Flag),0,Flag) AS Flag from CommodityInventory
// where CheckDate='" + frm1.CheckDate + "'";
// OleDbDataAdapter da = new OleDbDataAdapter(selectSqllocal, con); //创建适配对象
// DataTable dt1 = new DataTable(); //新建表对象
// da.Fill(dt1); //用适配对象填充表对象
// dataGridView1.DataSource = dt1;
// con.Close();
// CommodityInfo.Focus();
// label11.Text = "盘点数据上传结束!上传总数:" + (decimal)(tmp + temp) + "条;成功" + tmp + "条。";
// progressBar1.Visible = false;
// }
// }
// catch (Exception ex)
// {
// LogHelper.WriteServiceLog(ex.Message);
// con.Close();
// }
//}
#endregion
}
#endregion
#region 线
private void ProgressChanged_Handler(object sender, ProgressChangedEventArgs args)
{
progressBar1.Visible = true;
label11.Visible = true;
progressBar1.Value = args.ProgressPercentage;
label11.Text = "正在上传盘点数据,进度:" + args.ProgressPercentage.ToString() + "%";
}
private void DoWork_Handler(object sender, DoWorkEventArgs args)
{
BackgroundWorker worker = sender as BackgroundWorker;
try
{
int temp = 0;
int tmp = 0;
int i = 0;
SelectDate frm1 = new SelectDate();
frm1.Text = "盘点上传门店选择";
frm1.ShowDialog();
if (frm1.DialogResult == DialogResult.OK)
{
string log = string.Empty;
con.Open();
string selectSql = @"
select CommodityBarCode,iif(isnull(InventoryNum),0,InventoryNum) AS InventoryNum,
iif(isnull(SellCount),0,SellCount) AS SellCount,
iif(isnull(CheckDesc),0,CheckDesc) AS CheckDesc,
iif(isnull(TotalCount),0,TotalCount) AS TotalCount,InventoryDate,CheckDate
from CommodityInventory
where CheckDate = '" + frm1.CheckDate + "'";
OleDbDataAdapter daInventory = new OleDbDataAdapter(selectSql, con);
DataTable dtInventory = new DataTable();
daInventory.Fill(dtInventory);
con.Close();
foreach (DataRow dr in dtInventory.Rows)
{
string updateSql = @"UPDATE SALESTORE_STORAGE.T_CHECKCOMMODITYDETAIL A SET A.CUROVERPLUSCOUNT = " + dr["TotalCount"] +
",A.CHECKDESC = '仓库数量:" + dr["CheckDesc"] + "' WHERE COMMODITY_BARCODE = '" + dr["CommodityBarCode"] +
"' AND exists(select 1 from SALESTORE_STORAGE.T_CHECKCOMMODITY b where a.CHECKCOMMODITY_ID = b.CHECKCOMMODITY_ID and " +
" b.CHECKDATE = TO_DATE('" + dr["CheckDate"] + "','yyyy/MM/dd HH24:mi:ss') and b.SERVERPARTSHOP_ID = " + frm1.Shop_id +
" and b.CHECK_STATE = 0 and b.CHECK_TYPE IN(1000,3000))";
string selectStr = @"SELECT A.* FROM SALESTORE_STORAGE.T_CHECKCOMMODITYDETAIL A ,SALESTORE_STORAGE.T_CHECKCOMMODITY B
WHERE A.CHECKCOMMODITY_ID = B.CHECKCOMMODITY_ID AND COMMODITY_BARCODE='" + dr["CommodityBarCode"] +
"' AND B.SERVERPARTSHOP_ID=" + frm1.Shop_id + " AND B.CHECK_STATE = 0 AND B.CHECK_TYPE IN(1000,3000)" +
" AND B.CHECKDATE = TO_DATE('" + dr["CheckDate"] + "','yyyy/MM/dd HH24:mi:ss')";
Business.CHECKCOMMODITYDETAIL _CHECKCOMMODITYDETAIL = new Business.CHECKCOMMODITYDETAIL(this.Transaction);
DataTable dt = _CHECKCOMMODITYDETAIL.ExecuteDataTable(selectStr, null);
if (dt.Rows.Count > 0)
{
_CHECKCOMMODITYDETAIL.ExecuteNonQuery(updateSql, null);
string updateSql1 = "UPDATE CommodityInventory SET Flag = 0 WHERE CommodityBarCode = '" + dr["CommodityBarCode"].ToString() + "'";
con.Open();
OleDbCommand comm = new OleDbCommand(updateSql1, con);
comm.ExecuteNonQuery();
con.Close();
tmp++;
}
else
{
string updateSql1 = "UPDATE CommodityInventory SET Flag = 1 WHERE CommodityBarCode = '" + dr["CommodityBarCode"].ToString() + "'";
con.Open();
OleDbCommand comm = new OleDbCommand(updateSql1, con);
comm.ExecuteNonQuery();
con.Close();
log += dr["CommodityBarCode"].ToString() + ",\r\n";
temp++;
}
i++;
//label11.Text = "正在上传盘点数据,进度:" + (int)((i / Convert.ToDecimal(dtInventory.Rows.Count.ToString())) * 100) + "%";
//Application.DoEvents();
worker.ReportProgress((int)((i / Convert.ToDecimal(dtInventory.Rows.Count.ToString())) * 100));
}
// string checkcommodity=@" INSERT INTO SALESTORE_STORAGE.T_CHECKCOMMODITY (CHECKPERSON,CHECKDATE,SERVERPART_ID,
// SERVERPARTSHOP_ID,CHECKCOMMODITY_DESC,CHECK_STATE,CHECK_PASSPORT_GUID,CHECK_TYPE)
// VALUES ()"
Business.CHECKCOMMODITY _CHECKCOMMODITY = new Business.CHECKCOMMODITY(this.Transaction);
//label11.Text = "盘点数据上传完成!";
if (!string.IsNullOrEmpty(log))
{
ShowMessage("盘点数据上传结束!成功" + tmp + "条;失败" + temp + "条;\r\n失败原因本期盘点无入库记录。点击确定查看失败记录详情");
con.Open();
string selectSqllocal = @"select ID,CommodityBarCode,CommodityName,
iif(isnull(InventoryNum),0,InventoryNum)+iif(isnull(SellCount),0,SellCount) AS InventoryNum,
iif(isnull(CheckDesc),0,CheckDesc) AS CheckDesc,
iif(isnull(TotalCount),0,TotalCount) AS TotalCount,InventoryDate,iif(isnull(Flag),0,Flag) AS Flag from CommodityInventory
where CheckDate='" + frm1.CheckDate + "'AND Flag = 1";
OleDbDataAdapter da = new OleDbDataAdapter(selectSqllocal, con); //创建适配对象
DataTable dt1 = new DataTable(); //新建表对象
da.Fill(dt1); //用适配对象填充表对象
if (dt1.Rows.Count > 0)
{
for (int r = 0; r < dt1.Rows.Count; r++)
{
dt1.Rows[r]["ID"] = r + 1;
}
}
ViewData(dt1, "盘点数据上传结束!上传总数:" + (decimal)(tmp + temp) + "条;成功" + tmp + "条;失败" + temp + "条,失败原因:无入库记录");
//dataGridView1.DataSource = dt1;
con.Close();
CommodityInfo.Focus();
ChangeColor();
//label11.Text = "盘点数据上传结束!上传总数:" + (decimal)(tmp + temp) + "条;成功" + tmp + "条;失败" + temp + "条,失败原因:无入库记录";
//progressBar1.Visible = false;
}
else
{
ShowMessage("盘点数据上传完成!上传成功" + tmp + "条盘点记录");
con.Open();
string selectSqllocal = @"select ID,CommodityBarCode,CommodityName,
iif(isnull(InventoryNum),0,InventoryNum)+iif(isnull(SellCount),0,SellCount) AS InventoryNum,
iif(isnull(CheckDesc),0,CheckDesc) AS CheckDesc,
iif(isnull(TotalCount),0,TotalCount) AS TotalCount,InventoryDate,iif(isnull(Flag),0,Flag) AS Flag from CommodityInventory
where CheckDate='" + frm1.CheckDate + "'";
OleDbDataAdapter da = new OleDbDataAdapter(selectSqllocal, con); //创建适配对象
DataTable dt1 = new DataTable(); //新建表对象
da.Fill(dt1); //用适配对象填充表对象
if (dt1.Rows.Count > 0)
{
for (int r = 0; r < dt1.Rows.Count; r++)
{
dt1.Rows[r]["ID"] = r + 1;
}
}
ViewData(dt1, "盘点数据上传结束!上传总数:" + (decimal)(tmp + temp) + "条;成功" + tmp + "条。");
//dataGridView1.DataSource = dt1;
con.Close();
CommodityInfo.Focus();
//label11.Text = "盘点数据上传结束!上传总数:" + (decimal)(tmp + temp) + "条;成功" + tmp + "条。";
//progressBar1.Visible = false;
}
}
}
catch (Exception ex)
{
LogHelper.WriteServiceLog(ex.Message);
con.Close();
}
}
#endregion
public void ShowMessage(string msg)
{
this.Invoke(new MessageBoxShow(MessageBoxShow_F), new object[] { msg });
}
delegate void MessageBoxShow(string msg);
void MessageBoxShow_F(string msg)
{
MessageBox.Show(msg, "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
public void ViewData(DataTable dt, string msg)
{
Invoke(new dataview(dataGridView_D), new object[] { dt, msg });
}
delegate void dataview(DataTable dt, string msg);
void dataGridView_D(DataTable dt, string msg)
{
dataGridView1.DataSource = dt;
dataGridView1.MultiSelect = false;
dataGridView1.Rows[dataGridView1.RowCount - 1].Selected = true;
dataGridView1.CurrentCell = dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells[1];
label11.Text = msg;
progressBar1.Visible = false;
ChangeColor();
}
private void RunWorkerCompleted_Handler(object sender, RunWorkerCompletedEventArgs args)
{
//progressBar1.Value = 0;
//if (args.Cancelled)
//{
// MessageBox.Show("上传任务已取消。", "提示信息");
//}
//else
//{
// MessageBox.Show("后台任务正常结束。", "消息");
//}
}
#region
public void ChangeColor()
{
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
if (dataGridView1.Rows[i].Cells["Flag"].Value.ToString() == "1")
{
for (int j = 0; j < dataGridView1.Rows[i].Cells.Count; j++)
{
dataGridView1.Rows[i].Cells[j].Style.ForeColor = Color.Red;
dataGridView1.Rows[i].Cells[j].Style.Font = new Font(dataGridView1.Font, FontStyle.Bold);
}
}
}
}
#endregion
#region
private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
//SolidBrush b = new SolidBrush(this.dataGridView1.RowHeadersDefaultCellStyle.ForeColor);
//e.Graphics.DrawString((e.RowIndex + 1).ToString(System.Globalization.CultureInfo.CurrentUICulture), this.dataGridView1.DefaultCellStyle.Font, b, e.RowBounds.Location.X + 12, e.RowBounds.Location.Y + 4);
//Application.DoEvents();
}
#endregion
private void InventoryToolMain_FormClosing(object sender, FormClosingEventArgs e)
{
if (bgWorker.IsBusy)
{
MessageBox.Show("正在上传盘点数据,请稍后……", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
e.Cancel = true;
}
}
}
}