2025-03-28 09:49:56 +08:00

600 lines
29 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.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
/// <summary>
/// 服务器IP
/// </summary>
public string dbip { get { return (ConfigUrationValues("server_ip", "").Trim() == "" ? ConfigUrationValues("dbip", "").Trim() : ConfigUrationValues("server_ip", "").Trim()); } }
/// <summary>
/// 数据库端口
/// </summary>
public string dbport { get { return (ConfigUrationValues("server_dbport", "").Trim() == "" ? ConfigUrationValues("dbport", "1521").Trim() : ConfigUrationValues("server_dbport", "1521").Trim()); } }
/// <summary>
/// 数据库名
/// </summary>
public string dbname { get { return (ConfigUrationValues("server_dbname", "").Trim() == "" ? ConfigUrationValues("dbname", "highway_exchange").Trim() : ConfigUrationValues("server_dbname", "highway_exchange").Trim()); } }
/// <summary>
/// 数据库用户名
/// </summary>
public string dbuser { get { return (ConfigUrationValues("server_dbuser", "").Trim() == "" ? ConfigUrationValues("dbuser", "highway_exchange").Trim() : ConfigUrationValues("server_dbuser", "highway_exchange").Trim()); } }
/// <summary>
/// 数据库密码
/// </summary>
public string dbpass { get { return (ConfigUrationValues("server_dbpass", "").Trim() == "" ? ConfigUrationValues("dbpass", "qrwl").Trim() : ConfigUrationValues("server_dbpass", "qrwl").Trim()); } }
/// <summary>
/// 数据库连接名
/// </summary>
public string conname { get { return (ConfigUrationValues("server_conname", "").Trim() == "" ? ConfigUrationValues("conname", "orcl").Trim() : ConfigUrationValues("server_conname", "orcl").Trim()); } }
/// <summary>
/// 服务区编码
/// </summary>
public string serverpartcode { get { return ConfigUrationValues("serverpartcode", "").Trim(); } }
/// <summary>
/// 门店编码
/// </summary>
public string shopcode { get { return ConfigUrationValues("shopcode", "").Trim(); } }
/// <summary>
/// 门店内码
/// </summary>
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();
}
}
/// <summary>
/// 门店内码
/// </summary>
public string shopname
{
get
{
return DBHelper.QueryOdbc("select shopname from t_shopmessage where serverpartcode = '" +
serverpartcode + "' and shopcode = '" + shopcode + "'").Tables[0].Rows[0][0].ToString();
}
}
/// <summary>
/// 收银机编码
/// </summary>
public string machinecode { get { return ConfigUrationValues("machinecode", "").Trim(); } }
/// <summary>
/// 收银员姓名
/// </summary>
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<string> _List = new List<string>();
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;
}
}
/// <summary>
/// 入库信息添加
/// </summary>
private void Data_Entry()
{
//List<string> _List = new List<string>();
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 ->
/// <summary>
/// 获取配置信息
/// </summary>
/// <param name="ConfigUrationName">配置名称</param>
/// <param name="defaultValue">无配置信息时默认值</param>
/// <returns></returns>
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<string> _List = new List<string>();
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<string> _List = new List<string>();
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<string> _List = new List<string>();
List<string> _UpdateList = new List<string>();
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;
}
/// <summary>
/// 获取列名
/// </summary>
/// <param name="Table"></param>
/// <returns></returns>
private string SqlColumns(DataTable Table)
{
string _Columnsstr = "";
foreach (DataColumn col in Table.Columns)
{
_Columnsstr += (_Columnsstr == "" ? col.ColumnName : "," + col.ColumnName);
}
return _Columnsstr;
}
/// <summary>
/// 获取行值
/// </summary>
/// <param name="Table"></param>
/// <param name="Row"></param>
/// <returns></returns>
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();
}
}
}