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

459 lines
30 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.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
}
}