459 lines
30 KiB
C#
459 lines
30 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.Data;
|
||
using System.Windows.Forms;
|
||
using SuperMap.RealEstate.ServiceModel;
|
||
using HWSB = SuperMap.RealEstate.HighWay.Storage.Business;
|
||
using SSSB = SuperMap.RealEstate.SaleStore.Storage.Business;
|
||
using SocketTransfer.SDK;
|
||
using HZQR.Common;
|
||
|
||
namespace StockDeduction
|
||
{
|
||
public partial class MainForm_New : Form
|
||
{
|
||
public MainForm_New()
|
||
{
|
||
InitializeComponent();
|
||
|
||
Transaction _Transaction = new Transaction();
|
||
try
|
||
{
|
||
PutInInSales(_Transaction);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteSendLog(ex.Message, DateTime.Now.ToString("yyyyMMdd"));
|
||
_Transaction.Rollback();
|
||
}
|
||
finally
|
||
{
|
||
if (_Transaction.IsOpen)
|
||
{
|
||
_Transaction.Dispose();
|
||
}
|
||
}
|
||
timer1.Start();
|
||
}
|
||
|
||
#region 方法 -> 5分钟定时器
|
||
private void timer1_Tick(object sender, EventArgs e)
|
||
{
|
||
Transaction _Transaction = new Transaction();
|
||
try
|
||
{
|
||
PutInInSales(_Transaction);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.WriteSendLog(ex.Message, DateTime.Now.ToString("yyyyMMdd"));
|
||
_Transaction.Rollback();
|
||
}
|
||
finally
|
||
{
|
||
if (_Transaction.IsOpen)
|
||
{
|
||
_Transaction.Dispose();
|
||
}
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 生成盘点数据
|
||
private void PutInInSales(Transaction _Transaction)
|
||
{
|
||
string StartDate = "", SQLString = "";
|
||
StartTime.Text = DateTime.Now.ToString();
|
||
//读取未完成盘点的单据
|
||
List<SSSB.CHECKCOMMODITY> CHECKCOMMODITYList = new SSSB.CHECKCOMMODITY(_Transaction).FillCollection(
|
||
"WHERE CHECK_STATE = 0 AND SHOPCODE IS NOT NULL AND CHECK_TYPE NOT IN (2000,3000,9999)");
|
||
foreach (SSSB.CHECKCOMMODITY _CHECKCOMMODITY in CHECKCOMMODITYList)
|
||
{
|
||
string Transfer_Type = string.Empty;
|
||
//判断门店成本结算方式是“先进先出”还是“移动平均”
|
||
if (new HWSB.RTBUSINESSLIMIT(_Transaction).GetCount("WHERE DATA_TYPE = 3010 AND SERVERPARTSHOP_ID = " +
|
||
_CHECKCOMMODITY.SERVERPARTSHOP_ID + " AND DATA_VALUE IN (2000,3000) AND RTBUSINESSLIMIT_STATE = 1") > 0)
|
||
{
|
||
//先进先出
|
||
Transfer_Type = "FIFO";
|
||
}
|
||
else
|
||
{
|
||
//移动平均
|
||
Transfer_Type = "MAP";
|
||
}
|
||
//根据盘点单查询还未生成盘点结果的明细数据
|
||
DataTable CHECKCOMMODITYDETAILTable = _CHECKCOMMODITY.ExecuteDataTable(string.Format(
|
||
@"SELECT * FROM SALESTORE_STORAGE.T_CHECKCOMMODITYDETAIL_{0} A WHERE CHECKCOMMODITY_ID = {1} AND
|
||
NOT EXISTS(SELECT 1 FROM SALESTORE_STORAGE.T_INSALES B WHERE A.CHECKCOMMODITY_ID = B.CHECKCOMMODITY_ID AND
|
||
A.COMMODITY_ID = B.COMMODITY_ID) ORDER BY CHECKCOMMODITYDETAIL_ID",
|
||
_CHECKCOMMODITY.SERVERPART_ID, _CHECKCOMMODITY.CHECKCOMMODITY_ID));
|
||
|
||
if (CHECKCOMMODITYDETAILTable.Rows.Count > 0)
|
||
{
|
||
HWSB.SERVERPART _SERVERPART = new HWSB.SERVERPART(_Transaction);
|
||
HWSB.SERVERPARTSHOP _SERVERPARTSHOP = new HWSB.SERVERPARTSHOP(_Transaction);
|
||
_SERVERPART.SERVERPART_ID = _CHECKCOMMODITY.SERVERPART_ID;
|
||
_SERVERPARTSHOP.SERVERPARTSHOP_ID = _CHECKCOMMODITY.SERVERPARTSHOP_ID;
|
||
if (_SERVERPART.Select() && _SERVERPARTSHOP.Select())
|
||
{
|
||
//获取上期盘点时间
|
||
List<SSSB.CHECKCOMMODITY> LastCHECKCOMMODITY = new SSSB.CHECKCOMMODITY(_Transaction).FillCollection(string.Format(@"
|
||
WHERE CHECK_STATE = 1 AND SHOPCODE IS NOT NULL AND SERVERPART_ID = {0} AND SERVERPARTSHOP_ID = {1} AND
|
||
CHECKDATE < TO_DATE('{2}','YYYY/MM/DD HH24:MI:SS') AND CHECK_TYPE NOT IN (2000) ORDER BY CHECKDATE DESC",
|
||
_SERVERPART.SERVERPART_ID, _SERVERPARTSHOP.SERVERPARTSHOP_ID, _CHECKCOMMODITY.CHECKDATE));
|
||
if (LastCHECKCOMMODITY.Count > 0)
|
||
{
|
||
StartDate = LastCHECKCOMMODITY[0].CHECKDATE.ToString();
|
||
}
|
||
else
|
||
{
|
||
//查询不到,则设置默认时间
|
||
StartDate = "2020/1/1";
|
||
}
|
||
|
||
#region 存储销售数据
|
||
DataTable T_SELLDATA_INSALES = _CHECKCOMMODITY.ExecuteDataTable(
|
||
"SELECT * FROM HIGHWAY_SELLDATA.T_SELLDATA_INSALES WHERE CHECKCOMMODITY_ID = " + _CHECKCOMMODITY.CHECKCOMMODITY_ID);
|
||
if (T_SELLDATA_INSALES.Rows.Count == 0)
|
||
{
|
||
SQLString = string.Format(@"INSERT INTO HIGHWAY_SELLDATA.T_SELLDATA_INSALES (
|
||
CHECKCOMMODITY_ID,SERVERPARTSTOCK_ID,SERVERPARTSHOP_ID,SHOPCODE,
|
||
COMMODITY_ID,SELL_COUNT,SELL_TOTALTAXPRICE,SELL_TOTALPRICE)
|
||
SELECT
|
||
{0},NULL,{1},'{2}',COMMODITY_ID,SUM(SELL_COUNT),
|
||
SUM(OPERATE_TAXAMOUNT),SUM(OPERATE_AMOUNT)
|
||
FROM
|
||
SALESTORE_STORAGE.T_STOCKLOG
|
||
WHERE
|
||
OPERATE_TYPE = 5000 AND SERVERPARTSHOP_ID = {1} AND
|
||
OPERATE_DATE > TO_DATE('{3}','YYYY/MM/DD HH24:MI:SS') AND
|
||
OPERATE_DATE <= TO_DATE('{4}','YYYY/MM/DD HH24:MI:SS')", _CHECKCOMMODITY.CHECKCOMMODITY_ID,
|
||
_CHECKCOMMODITY.SERVERPARTSHOP_ID, _SERVERPARTSHOP.SHOPCODE, StartDate, _CHECKCOMMODITY.CHECKDATE.Value);
|
||
|
||
T_SELLDATA_INSALES = _CHECKCOMMODITY.ExecuteDataTable(
|
||
"SELECT * FROM HIGHWAY_SELLDATA.T_SELLDATA_INSALES WHERE CHECKCOMMODITY_ID = " + _CHECKCOMMODITY.CHECKCOMMODITY_ID);
|
||
}
|
||
#endregion
|
||
|
||
#region 存储业务数据
|
||
//上期结存
|
||
SQLString = @"SELECT COMMODITY_ID,OPERATE_COUNT,
|
||
OPERATE_TAXAMOUNT,OPERATE_AMOUNT,OPERATE_TYPE
|
||
FROM
|
||
SALESTORE_STORAGE.T_STOCKLOG
|
||
WHERE
|
||
OPERATE_TYPE IN (6000) AND SERVERPARTSHOP_ID = " + _CHECKCOMMODITY.SERVERPARTSHOP_ID;
|
||
DataTable LastCheckInfo = _CHECKCOMMODITY.ExecuteDataTable(SQLString);
|
||
//获取入库、调拨、退货、领用
|
||
SQLString = string.Format(@"SELECT OPERATE_TYPE,COMMODITY_ID,SUM(OPERATE_COUNT) AS OPERATE_COUNT,
|
||
SUM(OPERATE_TAXAMOUNT) AS OPERATE_TAXAMOUNT,SUM(OPERATE_AMOUNT) AS OPERATE_AMOUNT
|
||
FROM
|
||
SALESTORE_STORAGE.T_STOCKLOG
|
||
WHERE
|
||
OPERATE_TYPE IN (1000,2000,3000,4000,6000) AND SERVERPARTSHOP_ID = {0} AND
|
||
OPERATE_DATE > TO_DATE('{1}','YYYY/MM/DD HH24:MI:SS') AND
|
||
OPERATE_DATE <= TO_DATE('{2}','YYYY/MM/DD HH24:MI:SS')
|
||
GROUP BY
|
||
OPERATE_TYPE,COMMODITY_ID",
|
||
_CHECKCOMMODITY.SERVERPARTSHOP_ID, StartDate, _CHECKCOMMODITY.CHECKDATE.Value);
|
||
DataTable dtBusinessData = _CHECKCOMMODITY.ExecuteDataTable(SQLString);
|
||
#endregion
|
||
|
||
//存储库存数据
|
||
DataTable SERVERPARTSTOCKTable = new SSSB.SERVERPARTSTOCK(_Transaction).FillDataTable(
|
||
"WHERE SERVERPARTSHOP_ID = " + _SERVERPARTSHOP.SERVERPARTSHOP_ID + " AND OPERATE_STATE <= 8000");
|
||
SERVERPARTSTOCKTable.DefaultView.Sort = "OPERATE_STATE,RECEIVE_DATE,SERVERPARTSTOCK_ID";
|
||
SERVERPARTSTOCKTable = SERVERPARTSTOCKTable.DefaultView.ToTable();
|
||
|
||
foreach (DataRow _DataRow in CHECKCOMMODITYDETAILTable.Rows)
|
||
{
|
||
//过滤没有商品信息的盘点数据,对已生成数据的信息进行去重判断
|
||
if (!string.IsNullOrWhiteSpace(_DataRow["COMMODITY_ID"].ToString()) &&
|
||
_CHECKCOMMODITY.ExecuteDataTable("SELECT 1 FROM SALESTORE_STORAGE.T_INSALES WHERE CHECKCOMMODITY_ID = " +
|
||
_CHECKCOMMODITY.CHECKCOMMODITY_ID + " AND COMMODITY_ID = " + _DataRow["COMMODITY_ID"].ToString()).Rows.Count == 0)
|
||
{
|
||
double M_PURCHASE_COUNT = 0, M_PURCHASE_TOTALTAXPRICE = 0, M_PURCHASE_TOTALPRICE = 0,
|
||
M_SELL_COUNT = 0, M_SELL_TOTALTAXPRICE = 0, M_SELL_TOTALPRICE = 0,
|
||
M_TRANSFER_COUNT = 0, M_TRANSFER_AMOUNT = 0, M_TRANSFER_PRICE = 0,
|
||
M_RECEIVE_COUNT = 0, M_RECEIVE_AMOUNT = 0, M_RECEIVE_PRICE = 0,
|
||
M_BACK_COUNT = 0, M_BACK_AMOUNT = 0, M_BACK_PRICE = 0,
|
||
M_LAST_OVERPLUSCOUNT = 0, M_LAST_OVERPLUSAMOUNT = 0, M_LAST_OVERPLUSPRICE = 0;
|
||
|
||
double _GROUPPURCHASE_COUNT = 0, _GROUPPURCHASE_AMOUNT = 0, _GROUPPURCHASE_COST = 0,
|
||
_PROCESSORDER_COUNT = 0, _PROCESSORDER_AMOUNT = 0, _PROCESSORDER_PRICE = 0,
|
||
_LOSSPROFIT_CHECKCOUNT = 0, _LOSSPROFIT_CHECKAMOUNT = 0, _LOSSPROFIT_CHECKPRICE = 0;
|
||
|
||
//根据商品内码查询商品数据
|
||
DataTable CommodityTable = _SERVERPART.ExecuteDataTable(
|
||
"SELECT * FROM V_WHOLE_COMMODITY WHERE COMMODITY_ID = " + _DataRow["COMMODITY_ID"].ToString());
|
||
if (CommodityTable.Rows.Count > 0 && SERVERPARTSTOCKTable.Select("COMMODITY_ID = " +
|
||
_DataRow["COMMODITY_ID"].ToString()).Length > 0)
|
||
{
|
||
//含税成本、除税成本
|
||
string M_PURCHASE_TAXPRICE = "NULL", M_PURCHASE_PRICE = "NULL";
|
||
|
||
#region 上期结存数据
|
||
DataRow[] _INSALES_STATISTIC_DataRow = LastCheckInfo.Select("COMMODITY_ID = " +
|
||
_DataRow["COMMODITY_ID"].ToString());
|
||
if (_INSALES_STATISTIC_DataRow.Length > 0)
|
||
{
|
||
M_LAST_OVERPLUSCOUNT = Convert.ToDouble(_INSALES_STATISTIC_DataRow[0]["OPERATE_COUNT"]).Round(2);
|
||
M_LAST_OVERPLUSAMOUNT = Convert.ToDouble(_INSALES_STATISTIC_DataRow[0]["OPERATE_TAXAMOUNT"]).Round(2);
|
||
M_LAST_OVERPLUSPRICE = Convert.ToDouble(_INSALES_STATISTIC_DataRow[0]["OPERATE_AMOUNT"]).Round(2);
|
||
}
|
||
#endregion
|
||
|
||
#region 销售数据
|
||
DataRow[] _T_SELLDATA_DataRow = T_SELLDATA_INSALES.Select("COMMODITY_ID = " +
|
||
_DataRow["COMMODITY_ID"].ToString());
|
||
if (_T_SELLDATA_DataRow.Length > 0)
|
||
{
|
||
M_SELL_COUNT = Convert.ToDouble(_T_SELLDATA_DataRow[0]["SELL_COUNT"] == null ?
|
||
0 : _T_SELLDATA_DataRow[0]["SELL_COUNT"]).Round(2);
|
||
M_SELL_TOTALTAXPRICE = Convert.ToDouble(_T_SELLDATA_DataRow[0]["SELL_TOTALTAXPRICE"] == null ?
|
||
0 : _T_SELLDATA_DataRow[0]["SELL_TOTALTAXPRICE"]).Round(2);
|
||
if (!string.IsNullOrWhiteSpace(CommodityTable.Rows[0]["RETAIL_DUTY"].ToString()))
|
||
{
|
||
double _RETAIL_DUTY = CommodityTable.Rows[0]["RETAIL_DUTY"].TryParseToDouble().Round(6);
|
||
M_SELL_TOTALPRICE = (M_SELL_TOTALTAXPRICE / (1 + _RETAIL_DUTY / 100.00)).Round(2);
|
||
}
|
||
//else
|
||
//{
|
||
// M_SELL_TOTALPRICE = _T_SELLDATA_DataRow[0]["SELL_TOTALPRICE"].TryParseToDouble().Round(2);
|
||
//}
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region 入库数据
|
||
DataRow[] _RECEIVESERVERPART_DataRow = dtBusinessData.Select("COMMODITY_ID = " +
|
||
_DataRow["COMMODITY_ID"].ToString() + " AND OPERATE_TYPE = 1000");
|
||
if (_RECEIVESERVERPART_DataRow.Length > 0)
|
||
{
|
||
M_PURCHASE_COUNT = Convert.ToDouble(_RECEIVESERVERPART_DataRow[0][1]).Round(2);
|
||
M_PURCHASE_TOTALTAXPRICE = Convert.ToDouble(_RECEIVESERVERPART_DataRow[0][2]).Round(2);
|
||
M_PURCHASE_TOTALPRICE = Convert.ToDouble(_RECEIVESERVERPART_DataRow[0][3]).Round(2);
|
||
}
|
||
#endregion
|
||
|
||
#region 获取库存的成本【移动平均和先进先出 计算损溢的成本价不一样】
|
||
if (Transfer_Type == "MAP")
|
||
{
|
||
//如果上期结存+本期入库+本期调拨=0,则以上期库存成本准计入本期库存
|
||
if (M_LAST_OVERPLUSCOUNT.TryParseToDecimal() + M_PURCHASE_COUNT.TryParseToDecimal() +
|
||
M_TRANSFER_COUNT.TryParseToDecimal() == 0 || M_LAST_OVERPLUSAMOUNT.TryParseToDecimal() +
|
||
M_PURCHASE_TOTALTAXPRICE.TryParseToDecimal() + M_TRANSFER_AMOUNT.TryParseToDecimal() == 0 ||
|
||
M_LAST_OVERPLUSPRICE.TryParseToDecimal() + M_PURCHASE_TOTALPRICE.TryParseToDecimal() +
|
||
M_TRANSFER_PRICE.TryParseToDecimal() == 0)
|
||
{
|
||
DataRow SERVERPARTSTOCK = SERVERPARTSTOCKTable.Select("COMMODITY_ID = " +
|
||
_DataRow["COMMODITY_ID"].ToString())[0];
|
||
//含税成本
|
||
if (!string.IsNullOrWhiteSpace(SERVERPARTSTOCK["PURCHASE_TAXPRICE"].ToString()))
|
||
{
|
||
M_PURCHASE_TAXPRICE = SERVERPARTSTOCK["PURCHASE_TAXPRICE"].ToString();
|
||
}
|
||
//除税成本
|
||
if (!string.IsNullOrWhiteSpace(SERVERPARTSTOCK["PURCHASE_PRICE"].ToString()))
|
||
{
|
||
M_PURCHASE_PRICE = SERVERPARTSTOCK["PURCHASE_PRICE"].ToString();
|
||
}
|
||
}
|
||
else
|
||
{
|
||
//含税成本=(上期结存含税金额+入库含税金额+调拨含税金额)/(入库数量+调入数量)
|
||
M_PURCHASE_TAXPRICE = ((M_LAST_OVERPLUSAMOUNT.TryParseToDouble() +
|
||
M_PURCHASE_TOTALTAXPRICE.TryParseToDouble() + M_TRANSFER_AMOUNT.TryParseToDouble()) /
|
||
(M_LAST_OVERPLUSCOUNT.TryParseToDouble() + M_PURCHASE_COUNT.TryParseToDouble() +
|
||
M_TRANSFER_COUNT.TryParseToDouble())).Round(6).ToString();
|
||
//除税成本=(上期结存除税金额+入库除税金额+调拨除税金额)/(入库数量+调入数量)
|
||
M_PURCHASE_PRICE = ((M_LAST_OVERPLUSPRICE.TryParseToDouble() +
|
||
M_PURCHASE_TOTALPRICE.TryParseToDouble() + M_TRANSFER_PRICE.TryParseToDouble()) /
|
||
(M_LAST_OVERPLUSCOUNT.TryParseToDouble() + M_PURCHASE_COUNT.TryParseToDouble() +
|
||
M_TRANSFER_COUNT.TryParseToDouble())).Round(6).ToString();
|
||
}
|
||
}
|
||
else
|
||
{
|
||
DataRow SERVERPARTSTOCK = SERVERPARTSTOCKTable.Select("COMMODITY_ID = " +
|
||
_DataRow["COMMODITY_ID"].ToString())[0];
|
||
//含税成本
|
||
if (!string.IsNullOrWhiteSpace(SERVERPARTSTOCK["PURCHASE_TAXPRICE"].ToString()))
|
||
{
|
||
M_PURCHASE_TAXPRICE = SERVERPARTSTOCK["PURCHASE_TAXPRICE"].ToString();
|
||
}
|
||
//除税成本
|
||
if (!string.IsNullOrWhiteSpace(SERVERPARTSTOCK["PURCHASE_PRICE"].ToString()))
|
||
{
|
||
M_PURCHASE_PRICE = SERVERPARTSTOCK["PURCHASE_PRICE"].ToString();
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 退货数据
|
||
DataRow[] _BACKCOMMODITY_DataRow = dtBusinessData.Select("COMMODITY_ID = " +
|
||
_DataRow["COMMODITY_ID"].ToString() + " AND OPERATE_TYPE = 3000");
|
||
if (_BACKCOMMODITY_DataRow.Length > 0)
|
||
{
|
||
M_BACK_COUNT = Convert.ToDouble(_BACKCOMMODITY_DataRow[0][1]).Round(2);
|
||
M_BACK_AMOUNT = Convert.ToDouble(_BACKCOMMODITY_DataRow[0][2]).Round(2);
|
||
M_BACK_PRICE = Convert.ToDouble(_BACKCOMMODITY_DataRow[0][3]).Round(2);
|
||
}
|
||
#endregion
|
||
|
||
#region 调拨数据
|
||
DataRow[] _PREPARECOMMODITY_Out_DataRow = dtBusinessData.Select("COMMODITY_ID = " +
|
||
_DataRow["COMMODITY_ID"].ToString() + " AND OPERATE_TYPE = 2000");
|
||
if (_PREPARECOMMODITY_Out_DataRow.Length > 0)
|
||
{
|
||
M_TRANSFER_COUNT = Convert.ToDouble(_PREPARECOMMODITY_Out_DataRow[0][1]).Round(2);
|
||
M_TRANSFER_AMOUNT = Convert.ToDouble(_PREPARECOMMODITY_Out_DataRow[0][2]).Round(2);
|
||
M_TRANSFER_PRICE = Convert.ToDouble(_PREPARECOMMODITY_Out_DataRow[0][3]).Round(2);
|
||
}
|
||
|
||
DataRow[] _PREPARECOMMODITY_In_DataRow = dtBusinessData.Select("COMMODITY_ID = " +
|
||
_DataRow["COMMODITY_ID"].ToString());
|
||
|
||
if (_PREPARECOMMODITY_In_DataRow.Length > 0)
|
||
{
|
||
M_TRANSFER_COUNT = (M_TRANSFER_COUNT - Convert.ToDouble(_PREPARECOMMODITY_In_DataRow[0][1])).Round(2);
|
||
M_TRANSFER_AMOUNT = (M_TRANSFER_AMOUNT - Convert.ToDouble(_PREPARECOMMODITY_In_DataRow[0][2])).Round(2);
|
||
M_TRANSFER_PRICE = (M_TRANSFER_PRICE - Convert.ToDouble(_PREPARECOMMODITY_In_DataRow[0][3])).Round(2);
|
||
}
|
||
#endregion
|
||
|
||
#region 领用数据
|
||
DataRow[] _RECEIVECOMMODITY_DataRow = dtBusinessData.Select("COMMODITY_ID = " +
|
||
_DataRow["COMMODITY_ID"].ToString() + " AND OPERATE_TYPE = 4000");
|
||
|
||
if (_RECEIVECOMMODITY_DataRow.Length > 0)
|
||
{
|
||
M_RECEIVE_COUNT = Convert.ToDouble(_RECEIVECOMMODITY_DataRow[0][1]).Round(2);
|
||
M_RECEIVE_AMOUNT = Convert.ToDouble(_RECEIVECOMMODITY_DataRow[0][2]).Round(2);
|
||
M_RECEIVE_PRICE = Convert.ToDouble(_RECEIVECOMMODITY_DataRow[0][3]).Round(2);
|
||
}
|
||
#endregion
|
||
|
||
SQLString = string.Format(@"INSERT INTO SALESTORE_STORAGE.T_INSALES (
|
||
CHECKCOMMODITY_ID,CHECKCOMMODITYDETAIL_ID,COMMODITY_ID,COMMODITY_TYPE,
|
||
COMMODITYTYPE_NAME,BUSINESSTYPE,COMMODITY_CODE,COMMODITY_NAME,COMMODITY_BARCODE,
|
||
COMMODITY_UNIT,COMMODITY_RULE,COMMODITY_RETAILPRICE,COMMODITY_PURCHASEPRICE,
|
||
PURCHASE_COUNT,PURCHASE_TAXPRICE,PURCHASE_TOTALTAXPRICE,
|
||
PURCHASE_PRICE,PURCHASE_TOTALPRICE,SELL_COUNT,
|
||
SELL_UNITTAXPRICE,SELL_TOTALTAXPRICE,SELL_UNITPRICE,
|
||
SELL_TOTALPRICE,SELL_COST,SELL_COSTPRICE,TRANSFER_COUNT,
|
||
TRANSFER_AMOUNT,TRANSFER_PRICE,RECEIVE_COUNT,RECEIVE_AMOUNT,
|
||
RECEIVE_PRICE,BACK_COUNT,BACK_AMOUNT,BACK_PRICE,
|
||
LAST_OVERPLUSCOUNT,LAST_OVERPLUSAMOUNT,LAST_OVERPLUSPRICE,
|
||
PROCESSORDER_COUNT,PROCESSORDER_AMOUNT,PROCESSORDER_PRICE,
|
||
GROUPPURCHASE_COUNT,GROUPPURCHASE_AMOUNT,GROUPPURCHASE_COST,
|
||
LOSSPROFIT_CHECKCOUNT,LOSSPROFIT_CHECKAMOUNT,LOSSPROFIT_CHECKPRICE)
|
||
SELECT {0},{1},COMMODITY_ID,COMMODITY_TYPE,COMMODITYTYPE_NAME,BUSINESSTYPE,
|
||
COMMODITY_CODE,COMMODITY_NAME,COMMODITY_BARCODE,COMMODITY_UNIT,COMMODITY_RULE,
|
||
COMMODITY_RETAILPRICE,COMMODITY_PURCHASEPRICE,{2},{3},{4},
|
||
NVL({5},ROUND({3} / ROUND(1 + NVL(A.DUTY_PARAGRAPH,13) / 100,2),6)),
|
||
{6},{7},COMMODITY_RETAILPRICE,{8},ROUND(COMMODITY_RETAILPRICE /
|
||
ROUND(1 + NVL(A.RETAIL_DUTY,13) / 100,2),6),
|
||
{9},NULL,NULL,{10},{11},{12},{13},{14},{15},{16},{17},{18},{19},{20},
|
||
{21},{23},{24},{25},{26},{27},{28},{29},{30},{31}
|
||
FROM
|
||
HIGHWAY_STORAGE.V_WHOLE_COMMODITY A,
|
||
HIGHWAY_STORAGE.T_COMMODITYTYPE B
|
||
WHERE
|
||
A.COMMODITY_TYPE = B.COMMODITYTYPE_ID AND
|
||
A.COMMODITY_ID = {22}", _CHECKCOMMODITY.CHECKCOMMODITY_ID,
|
||
_DataRow["CHECKCOMMODITYDETAIL_ID"].ToString(), M_PURCHASE_COUNT,
|
||
M_PURCHASE_TAXPRICE, M_PURCHASE_TOTALTAXPRICE,
|
||
M_PURCHASE_PRICE, M_PURCHASE_TOTALPRICE,
|
||
M_SELL_COUNT, M_SELL_TOTALTAXPRICE, M_SELL_TOTALPRICE, M_TRANSFER_COUNT,
|
||
M_TRANSFER_AMOUNT, M_TRANSFER_PRICE, M_RECEIVE_COUNT, M_RECEIVE_AMOUNT, M_RECEIVE_PRICE,
|
||
M_BACK_COUNT, M_BACK_AMOUNT, M_BACK_PRICE, M_LAST_OVERPLUSCOUNT, M_LAST_OVERPLUSAMOUNT,
|
||
M_LAST_OVERPLUSPRICE, _DataRow["COMMODITY_ID"].ToString(),
|
||
_PROCESSORDER_COUNT, _PROCESSORDER_AMOUNT, _PROCESSORDER_PRICE,
|
||
_GROUPPURCHASE_COUNT, _GROUPPURCHASE_AMOUNT, _GROUPPURCHASE_COST,
|
||
_LOSSPROFIT_CHECKCOUNT, _LOSSPROFIT_CHECKAMOUNT, _LOSSPROFIT_CHECKPRICE);
|
||
|
||
try
|
||
{
|
||
_CHECKCOMMODITY.ExecuteNonQuery(SQLString, null);
|
||
}
|
||
catch
|
||
{
|
||
LogHelper.WriteSendLog(SQLString, DateTime.Now.ToString("yyyyMMdd"));
|
||
}
|
||
}
|
||
else if (CommodityTable.Rows.Count > 0)
|
||
{
|
||
DataRow drCommodity = CommodityTable.Rows[0];
|
||
|
||
SQLString = string.Format(@"INSERT INTO SALESTORE_STORAGE.T_INSALES (
|
||
CHECKCOMMODITY_ID,CHECKCOMMODITYDETAIL_ID,COMMODITY_ID,COMMODITY_TYPE,
|
||
COMMODITYTYPE_NAME,BUSINESSTYPE,COMMODITY_CODE,COMMODITY_NAME,COMMODITY_BARCODE,
|
||
COMMODITY_UNIT,COMMODITY_RULE,COMMODITY_RETAILPRICE,COMMODITY_PURCHASEPRICE,
|
||
PURCHASE_COUNT,PURCHASE_TAXPRICE,PURCHASE_TOTALTAXPRICE,
|
||
PURCHASE_PRICE,PURCHASE_TOTALPRICE,SELL_COUNT,
|
||
SELL_UNITTAXPRICE,SELL_TOTALTAXPRICE,SELL_UNITPRICE,
|
||
SELL_TOTALPRICE,SELL_COST,SELL_COSTPRICE,TRANSFER_COUNT,
|
||
TRANSFER_AMOUNT,TRANSFER_PRICE,RECEIVE_COUNT,RECEIVE_AMOUNT,
|
||
RECEIVE_PRICE,BACK_COUNT,BACK_AMOUNT,BACK_PRICE,
|
||
LAST_OVERPLUSCOUNT,LAST_OVERPLUSAMOUNT,LAST_OVERPLUSPRICE,
|
||
PROCESSORDER_COUNT,PROCESSORDER_AMOUNT,PROCESSORDER_PRICE,
|
||
GROUPPURCHASE_COUNT,GROUPPURCHASE_AMOUNT,GROUPPURCHASE_COST,
|
||
LOSSPROFIT_CHECKCOUNT,LOSSPROFIT_CHECKAMOUNT,LOSSPROFIT_CHECKPRICE)
|
||
SELECT {0},{1},COMMODITY_ID,COMMODITY_TYPE,COMMODITYTYPE_NAME,BUSINESSTYPE,
|
||
COMMODITY_CODE,COMMODITY_NAME,COMMODITY_BARCODE,COMMODITY_UNIT,COMMODITY_RULE,
|
||
COMMODITY_RETAILPRICE,COMMODITY_PURCHASEPRICE,0,COMMODITY_PURCHASEPRICE,0,
|
||
ROUND(COMMODITY_PURCHASEPRICE / ROUND(1 + NVL(A.DUTY_PARAGRAPH,13) / 100,2),6),
|
||
0,0,COMMODITY_RETAILPRICE,0,ROUND(COMMODITY_RETAILPRICE /
|
||
ROUND(1 + NVL(A.RETAIL_DUTY,13) / 100,2),6),
|
||
0,NULL,NULL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||
FROM
|
||
HIGHWAY_STORAGE.V_WHOLE_COMMODITY A,
|
||
HIGHWAY_STORAGE.T_COMMODITYTYPE B
|
||
WHERE
|
||
A.COMMODITY_TYPE = B.COMMODITYTYPE_ID AND
|
||
A.COMMODITY_ID = {2}", _CHECKCOMMODITY.CHECKCOMMODITY_ID,
|
||
_DataRow["CHECKCOMMODITYDETAIL_ID"].ToString(), _DataRow["COMMODITY_ID"].ToString());
|
||
|
||
_CHECKCOMMODITY.ExecuteNonQuery(SQLString, null);
|
||
}
|
||
}
|
||
}
|
||
|
||
/*_CHECKCOMMODITY.ExecuteNonQuery(string.Format(@"UPDATE SALESTORE_STORAGE.T_CHECKCOMMODITYDETAIL B
|
||
SET (B.PURCHASE_TAXPRICE,B.PURCHASE_PRICE) = (SELECT
|
||
C.PURCHASE_TAXPRICE,C.PURCHASE_PRICE
|
||
FROM
|
||
SALESTORE_STORAGE.T_INSALES C
|
||
WHERE
|
||
B.CHECKCOMMODITYDETAIL_ID = C.CHECKCOMMODITYDETAIL_ID)
|
||
WHERE
|
||
B.CHECKCOMMODITY_ID = {0} AND EXISTS (SELECT 1
|
||
FROM SALESTORE_STORAGE.T_INSALES C
|
||
WHERE B.CHECKCOMMODITYDETAIL_ID = C.CHECKCOMMODITYDETAIL_ID)", _CHECKCOMMODITY.CHECKCOMMODITY_ID), null);*/
|
||
|
||
_CHECKCOMMODITY.ExecuteNonQuery(string.Format(@"UPDATE SALESTORE_STORAGE.T_CHECKCOMMODITYDETAIL_{0} B
|
||
SET (B.PURCHASE_TAXPRICE,B.PURCHASE_PRICE) = (SELECT
|
||
C.PURCHASE_TAXPRICE,C.PURCHASE_PRICE
|
||
FROM
|
||
SALESTORE_STORAGE.T_INSALES C
|
||
WHERE
|
||
B.CHECKCOMMODITYDETAIL_ID = C.CHECKCOMMODITYDETAIL_ID)
|
||
WHERE
|
||
B.CHECKCOMMODITY_ID = {1} AND EXISTS (SELECT 1
|
||
FROM SALESTORE_STORAGE.T_INSALES C
|
||
WHERE B.CHECKCOMMODITYDETAIL_ID = C.CHECKCOMMODITYDETAIL_ID)",
|
||
_CHECKCOMMODITY.SERVERPART_ID, _CHECKCOMMODITY.CHECKCOMMODITY_ID), null);
|
||
|
||
_Transaction.Commit();
|
||
}
|
||
}
|
||
}
|
||
|
||
EndTime.Text = DateTime.Now.ToString();
|
||
}
|
||
#endregion
|
||
}
|
||
}
|