using System;
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.Data.Odbc;
namespace InvoicingTool
{
public partial class InvoicingMain : Form
{
#region 属性
///
/// 服务器IP
///
public string dbip { get { return (ConfigUrationValues("server_ip", "").Trim() == "" ? ConfigUrationValues("dbip", "").Trim() : ConfigUrationValues("server_ip", "").Trim()); } }
///
/// 数据库端口
///
public string dbport { get { return (ConfigUrationValues("server_dbport", "").Trim() == "" ? ConfigUrationValues("dbport", "1521").Trim() : ConfigUrationValues("server_dbport", "1521").Trim()); } }
///
/// 数据库名
///
public string dbname { get { return (ConfigUrationValues("server_dbname", "").Trim() == "" ? ConfigUrationValues("dbname", "highway_exchange").Trim() : ConfigUrationValues("server_dbname", "highway_exchange").Trim()); } }
///
/// 数据库用户名
///
public string dbuser { get { return (ConfigUrationValues("server_dbuser", "").Trim() == "" ? ConfigUrationValues("dbuser", "highway_exchange").Trim() : ConfigUrationValues("server_dbuser", "highway_exchange").Trim()); } }
///
/// 数据库密码
///
public string dbpass { get { return (ConfigUrationValues("server_dbpass", "").Trim() == "" ? ConfigUrationValues("dbpass", "qrwl").Trim() : ConfigUrationValues("server_dbpass", "qrwl").Trim()); } }
///
/// 数据库连接名
///
public string conname { get { return (ConfigUrationValues("server_conname", "").Trim() == "" ? ConfigUrationValues("conname", "orcl").Trim() : ConfigUrationValues("server_conname", "orcl").Trim()); } }
///
/// 服务区编码
///
public string serverpartcode { get { return ConfigUrationValues("serverpartcode", "").Trim(); } }
///
/// 门店编码
///
public string shopcode { get { return ConfigUrationValues("shopcode", "").Trim(); } }
///
/// 门店内码
///
public string serverpartshop_id
{
get
{
return DBHelper.QueryOdbc("select serverpartshop_id from t_shopmessage where serverpartcode = '" +
serverpartcode + "' and shopcode = '" + shopcode + "'").Tables[0].Rows[0][0].ToString();
}
}
///
/// 门店内码
///
public string shopname
{
get
{
return DBHelper.QueryOdbc("select shopname from t_shopmessage where serverpartcode = '" +
serverpartcode + "' and shopcode = '" + shopcode + "'").Tables[0].Rows[0][0].ToString();
}
}
///
/// 收银机编码
///
public string machinecode { get { return ConfigUrationValues("machinecode", "").Trim(); } }
///
/// 收银员姓名
///
public string sellworkername
{
get
{
return DBHelper.QueryOdbc("select sellworkername from t_sellworker where serverpartcode = '" + serverpartcode +
"' and sellworkercode = (select cashworker_code from t_personsell where serverpartcode = '" + serverpartcode +
"' and shopcode = '" + shopcode + "' and machinecode = '" + machinecode + "' and enddate is null )"
).Tables[0].Rows[0]["sellworkername"].ToString();
}
}
public string ReceiveCode { get; set; }
#endregion
public InvoicingMain()
{
InitializeComponent();
Loading();
lblMessage.Text = "输入商品条码、进货数量后,按【Enter】保存";
txtbarcode.Focus();
txtbarcode.SelectAll();
}
private void Loading()
{
//List _List = new List();
string _selectsql = "select receiveserverpart_id,receivecenter_code from t_receiveserverpart where receiveserverpart_state = 0 order by receiveserverpart_id desc";
DataTable _DateTable = DBHelper.QueryOdbc(_selectsql).Tables[0];
if (_DateTable.Rows.Count > 0)
{
if (MessageBox.Show("系统中存在未完成的入库单,是否继续录入?", "", MessageBoxButtons.YesNo,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
{
ReceiveCenter _ReceiveCenter = new ReceiveCenter("serverpart");
_ReceiveCenter.ShowDialog();
if (_ReceiveCenter.DialogResult == DialogResult.OK)
{
ReceiveCode = _ReceiveCenter.StrValue;
}
}
else
{
decimal _MaxID = 0;
try
{
_MaxID = decimal.Parse(DBHelper.QueryOdbc("select max(receiveserverpart_id) from t_receiveserverpart").Tables[0].Rows[0][0].ToString());
}
catch
{
_MaxID = 0;
}
ReceiveCode = DateTime.Now.ToString("yy") + shopcode + TimeHelper.ConvertDataTimeLong(DateTime.Now).ToString();
string _insertsql = "insert into t_receiveserverpart (receiveserverpart_id,serverpartshop_id, receivecenter_date,receivecenter_person, receivecenter_code,receiveserverpart_state) " +
"select '" + (_MaxID + 1) + "',serverpartshop_id,datetime('" + DateTime.Now.ToString() + "'),'" + sellworkername + "','" + ReceiveCode + "','0' from t_shopmessage " +
"where serverpartcode = '" + serverpartcode + "' and shopcode = '" + shopcode + "'";
DBHelper.ExecuteSqlTran(_insertsql);
}
}
else
{
decimal _MaxID = 0;
try
{
_MaxID = decimal.Parse(DBHelper.QueryOdbc("select max(receiveserverpart_id) from t_receiveserverpart").Tables[0].Rows[0][0].ToString());
}
catch
{
_MaxID = 0;
}
ReceiveCode = DateTime.Now.ToString("yy") + shopcode + TimeHelper.ConvertDataTimeLong(DateTime.Now).ToString();
string _insertsql = "insert into t_receiveserverpart (receiveserverpart_id,serverpartshop_id, receivecenter_date,receivecenter_person, receivecenter_code,receiveserverpart_state) " +
"select '" + (_MaxID + 1) + "',serverpartshop_id,datetime('" + DateTime.Now.ToString() + "'),'" + sellworkername + "','" + ReceiveCode + "','0' from t_shopmessage " +
"where serverpartcode = '" + serverpartcode + "' and shopcode = '" + shopcode + "'";
DBHelper.ExecuteSqlTran(_insertsql);
}
_selectsql = "select receiveserverpart_id,receivecenter_code,receivecenter_date,receivecenter_person,receiveserverpart_state " +
"from t_receiveserverpart where receivecenter_code = '" + ReceiveCode + "'";
DataTable _ReceiveTable = DBHelper.QueryOdbc(_selectsql).Tables[0];
lblReceiveCode.Text = _ReceiveTable.Rows[0]["receivecenter_code"].ToString();
lblReceivePerson.Text = _ReceiveTable.Rows[0]["receivecenter_person"].ToString();
lblReceiveDate.Text = _ReceiveTable.Rows[0]["receivecenter_date"].ToString();
lblShopName.Text = shopname;
SearchReceive();
}
private void SearchReceive()
{
string _selectsql = "select a.receivedetailserverpart_id,a.commodity_barcode,a.commodity_name,a.delivercount " +
"from t_receivedetailserverpart a,t_receiveserverpart b where b.receivecenter_code = '" + ReceiveCode +
"' and a.cenreceivedetail_desc = b.receivecenter_code order by receivedetailserverpart_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]["receivedetailserverpart_id"] = i + 1;
}
InvoicingData.DataSource = _DataTable;
}
}
///
/// 入库信息添加
///
private void Data_Entry()
{
//List _List = new List();
string _barcode = txtbarcode.Text;
//string _receivecenter_code = lblReceiveCode.Text;
string _select = "select commodityex_id,commodity_code,commodity_name,commodity_barcode " +
"from t_commodityex where commodity_barcode = '" + _barcode + "'";
DataTable _DataTable = DBHelper.QueryOdbc(_select).Tables[0];
if (_DataTable.Rows.Count > 0)
{
DataTable _receivestate = DBHelper.QueryOdbc("select receiveserverpart_state from t_receiveserverpart where receivecenter_code = '" + ReceiveCode + "'").Tables[0];
if (_receivestate.Rows.Count>0)
{
if (_receivestate.Rows[0]["receiveserverpart_state"].ToString()!="0")
{
MessageBox.Show("请先添加一个入库单", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
}
else
{
MessageBox.Show("请先添加一个入库单", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
_select = "select a.receivedetailserverpart_id,a.receiveserverpart_id, a.commodity_name,a.commodity_code, a.commodity_barcode, a.delivercount " +
"from t_receivedetailserverpart a,t_receiveserverpart b where b.receivecenter_code = '" + ReceiveCode + "' and a.commodity_barcode = '" +
_barcode + "' and a.receiveserverpart_id = b.receiveserverpart_id";
DataTable _ReceiveDetailServerPart = DBHelper.QueryOdbc(_select).Tables[0];
if (_ReceiveDetailServerPart.Rows.Count > 0)
{
if (MessageBox.Show("商品条码:" + _barcode + "\r已录入单据,是否叠加数量?\r是:叠加 否:覆盖", "",
MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
{
string _update = "update t_receivedetailserverpart set delivercount = delivercount+" + txtDeliverCount.Text +
" where receiveserverpart_id = " + _ReceiveDetailServerPart.Rows[0]["receiveserverpart_id"];
DBHelper.ExecuteSqlTran(_update);
}
else
{
string _update = "update t_receivedetailserverpart set delivercount = " + txtDeliverCount.Text +
" where receiveserverpart_id = " + _ReceiveDetailServerPart.Rows[0]["receiveserverpart_id"];
DBHelper.ExecuteSqlTran(_update);
}
}
else
{
decimal _MaxID = 0;
try
{
_MaxID = decimal.Parse(DBHelper.QueryOdbc("select max(receivedetailserverpart_id) from t_receivedetailserverpart").Tables[0].Rows[0][0].ToString());
}
catch
{
_MaxID = 0;
}
string _insert = "insert into t_receivedetailserverpart (receivedetailserverpart_id, receiveserverpart_id, commodity_name, " +
"commodity_code, commodity_barcode, unit, unitcount, delivercount,cenreceivedetail_desc) " +
"select '" + (_MaxID + 1) + "',b.receiveserverpart_id,a.commodity_name,a.commodity_code," +
"a.commodity_barcode,'1','1','" + txtDeliverCount.Text + "',b.receivecenter_code " +
"from t_commodityex a,t_receiveserverpart b,t_shopmessage c " +
"where a.commodity_barcode = '" + _barcode + "' and a.serverpartshop_id = c.serverpartshop_id " +
"and c.shopcode = '" + shopcode + "' and b.receivecenter_code = '" + ReceiveCode + "'";
DBHelper.ExecuteSqlTran(_insert);
}
txtbarcode.Clear();
txtDeliverCount.Clear();
txtbarcode.Focus();
txtbarcode.SelectAll();
//MessageBox.Show("保存成功!", "系统提示");
lblMessage.Text = _barcode + "保存成功!";
}
else
{
MessageBox.Show("条码为:" + _barcode + "的商品不存在,请核实后重新输入!", "系统提示", MessageBoxButtons.OK,
MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
txtbarcode.Focus();
txtbarcode.SelectAll();
return;
}
SearchReceive();
}
#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() == ConfigUrationName)
{
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
private void txtbarcode_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
if (txtbarcode.Text == "")
{
MessageBox.Show("请输入商品条码", "系统提示");
txtbarcode.Focus();
txtbarcode.SelectAll();
return;
}
else
{
txtDeliverCount.Focus();
txtDeliverCount.SelectAll();
return;
}
}
}
private void txtDeliverCount_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
if (txtDeliverCount.Text == "")
{
MessageBox.Show("请输入入库数量", "系统提示", MessageBoxButtons.OK,
MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
txtDeliverCount.Focus();
txtDeliverCount.SelectAll();
return;
}
else
{
try
{
decimal.Parse(txtDeliverCount.Text);
}
catch
{
MessageBox.Show("请正确输入入库数量", "系统提示", MessageBoxButtons.OK,
MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
txtDeliverCount.Focus();
txtDeliverCount.SelectAll();
return;
}
Data_Entry();
}
}
}
private void InvoicingMain_FormClosing(object sender, FormClosingEventArgs e)
{
List _List = new List();
DataTable _DataTable = DBHelper.QueryOdbc("select receiveserverpart_state from t_receiveserverpart where receivecenter_code = '" + ReceiveCode + "'").Tables[0];
if (_DataTable.Rows.Count > 0)
{
if (_DataTable.Rows[0]["receiveserverpart_state"].ToString() == "0")
{
if (decimal.Parse(DBHelper.QueryOdbc("select count(*) from t_receivedetailserverpart where cenreceivedetail_desc = '" + ReceiveCode + "'").Tables[0].Rows[0][0].ToString()) > 0)
{
if (MessageBox.Show("是否立即审核入库单信息并退出?\r 注:审核后当前入库单将不能再次添加商品入库信息。", "系统提示",
MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
{
string _update = "update t_receiveserverpart set receiveserverpart_state = 1 where receivecenter_code = '" + ReceiveCode + "'";
_List.Add(_update);
try
{
DBHelper.ExecuteSqlTran(_List);
MessageBox.Show("审核成功,按确定键返回收银系统", "系统提示");
}
catch
{
MessageBox.Show("审核失败,请重试!", "系统提示");
e.Cancel = true;
}
}
else
{
e.Cancel = true;
}
}
else
{
if (MessageBox.Show("是否立即退出?", "系统提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question,
MessageBoxDefaultButton.Button1) != DialogResult.Yes)
{
e.Cancel = true;
}
}
}
else
{
if (MessageBox.Show("是否立即退出?", "系统提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question,
MessageBoxDefaultButton.Button1) != DialogResult.Yes)
{
e.Cancel = true;
}
}
}
else
{
if (MessageBox.Show("是否立即退出?", "系统提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question,
MessageBoxDefaultButton.Button1) != DialogResult.Yes)
{
e.Cancel = true;
}
}
}
private void btnReceiveAdd_Click(object sender, EventArgs e)
{
Loading();
}
private void btnSave_Click(object sender, EventArgs e)
{
if (txtbarcode.Text == "")
{
MessageBox.Show("请输入商品条码", "系统提示", MessageBoxButtons.OK,
MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
txtbarcode.Focus();
txtbarcode.SelectAll();
return;
}
if (txtDeliverCount.Text == "")
{
MessageBox.Show("请输入入库数量", "系统提示", MessageBoxButtons.OK,
MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
txtDeliverCount.Focus();
txtDeliverCount.SelectAll();
return;
}
try
{
decimal.Parse(txtDeliverCount.Text);
Data_Entry();
}
catch
{
MessageBox.Show("请正确输入入库数量", "系统提示", MessageBoxButtons.OK,
MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
txtDeliverCount.Focus();
txtDeliverCount.SelectAll();
return;
}
}
private void btnAuditing_Click(object sender, EventArgs e)
{
List _List = new List();
if (decimal.Parse(DBHelper.QueryOdbc("select count(*) from t_receivedetailserverpart where cenreceivedetail_desc = '" + ReceiveCode + "'").Tables[0].Rows[0][0].ToString()) > 0)
{
if (MessageBox.Show("是否立即审核入库单信息?\r 注:审核后当前入库单将不能再次添加商品入库信息。", "系统提示", MessageBoxButtons.YesNo,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) != DialogResult.Yes)
{
return;
}
string _update = "update t_receiveserverpart set receiveserverpart_state = 1 where receivecenter_code = '" + ReceiveCode + "'";
_List.Add(_update);
try
{
DBHelper.ExecuteSqlTran(_List);
MessageBox.Show("审核成功", "系统提示", MessageBoxButtons.OK,
MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
}
catch
{
MessageBox.Show("审核失败,请重试!", "系统提示", MessageBoxButtons.OK,
MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
}
}
else
{
MessageBox.Show("请先添加入库商品信息!", "系统提示", MessageBoxButtons.OK,
MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
}
}
private void btnUpLoad_Click(object sender, EventArgs e)
{
List _List = new List();
List _UpdateList = new List();
string Columns;
if (MessageBox.Show("立即上传商品入库信息?", "系统提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question,
MessageBoxDefaultButton.Button1) != DialogResult.Yes)
{
return;
}
btnUpLoad.Enabled = false;
lblMessage.Text = "正在上传商品入库信息,请稍候……";
string _selectsql = "select receiveserverpart_id,serverpartshop_id,receivecenter_date,receivecenter_person, receivecenter_code " +
"from t_receiveserverpart where receiveserverpart_state = 1";
DataTable _ReceiveListTable = DBHelper.QueryOdbc(_selectsql).Tables[0];
_ReceiveListTable.TableName = "t_receiveserverpart";
if (_ReceiveListTable.Rows.Count > 0)
{
Columns = SqlColumns(_ReceiveListTable);
foreach (DataRow _Row in _ReceiveListTable.Rows)
{
_List.Add("insert into " + dbname + ".t_receiveserverpart (" + Columns + ") values (" + SqlValues(_ReceiveListTable, _Row) + ")");
}
_selectsql = "select a.receivedetailserverpart_id, a.receiveserverpart_id, a.commodity_name, a.commodity_code, " +
"a.commodity_barcode, a.unit, a.unitcount, a.delivercount, a.cenreceivedetail_desc " +
"from t_receivedetailserverpart a,t_receiveserverpart b " +
"where a.cenreceivedetail_desc = b.receivecenter_code and b.receiveserverpart_state = 1";
DataTable _ReceiveDetailTable = DBHelper.QueryOdbc(_selectsql).Tables[0];
_ReceiveDetailTable.TableName = "t_receivedetailserverpart";
if (_ReceiveDetailTable.Rows.Count > 0)
{
Columns = SqlColumns(_ReceiveDetailTable);
foreach (DataRow _Row in _ReceiveDetailTable.Rows)
{
_List.Add("insert into " + dbname + ".t_receivedetailserverpart (" + Columns + ") values (" + SqlValues(_ReceiveDetailTable, _Row) + ")");
}
}
}
if (_List.Count() > 0)
{
OracleHelper _OracleHelper = new OracleHelper(dbip, dbport, conname, dbuser, dbpass);
try
{
_OracleHelper.ExecuteSqlTran(_List);
foreach (DataRow _dr in _ReceiveListTable.Rows)
{
string _updatesql = "update t_receiveserverpart set receiveserverpart_state = 2 " +
"where receivecenter_code = '" + _dr["receivecenter_code"] + "' and receiveserverpart_state = 1";
_UpdateList.Add(_updatesql);
}
try
{
DBHelper.ExecuteSqlTran(_UpdateList);
}
catch
{ }
MessageBox.Show("上传成功!", "系统提示", MessageBoxButtons.OK,
MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
lblMessage.Text = "入库信息上传成功!";
}
catch(Exception ex)
{
MessageBox.Show("上传失败,请重试!", "系统提示", MessageBoxButtons.OK,
MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
lblMessage.Text = "入库信息上传失败,请重试!";
}
}
else
{
lblMessage.Text = "请先审核入库单!";
}
btnUpLoad.Enabled = true;
}
///
/// 获取列名
///
///
///
private string SqlColumns(DataTable Table)
{
string _Columnsstr = "";
foreach (DataColumn col in Table.Columns)
{
_Columnsstr += (_Columnsstr == "" ? col.ColumnName : "," + col.ColumnName);
}
return _Columnsstr;
}
///
/// 获取行值
///
///
///
///
private string SqlValues(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;
}
private void InvoicingMain_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyCode==Keys.Escape)
{
Close();
}
}
private void btnClose_Click(object sender, EventArgs e)
{
Close();
}
}
}