761 lines
45 KiB
C#
761 lines
45 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using System.Web;
|
|
using SSB = SuperMap.RealEstate.Seller.Storage.Business;
|
|
using HSB = SuperMap.RealEstate.HighWay.Storage.Business;
|
|
using SSSB = SuperMap.RealEstate.SaleStore.Storage.Business;
|
|
using QRWL.Common;
|
|
using SuperMap.RealEstate.CoreFrameWork;
|
|
|
|
namespace SuperMap.RealEstate.SaleStore.Storage.Common
|
|
{
|
|
public class PurchaseCommodity
|
|
{
|
|
#region 获取请购商品
|
|
/// <summary>
|
|
/// 获取请购商品
|
|
/// </summary>
|
|
/// <param name="PURCHASE_ID">采购单ID</param>
|
|
/// <param name="_Transaction">数据库服务参数</param>
|
|
/// <param name="_DictString">单位数组</param>
|
|
/// <param name="bFalse">是否显示配送信息</param>
|
|
/// <returns></returns>
|
|
public static string getPurchaseDetail(string PURCHASE_ID, ServiceModel.Transaction _Transaction,
|
|
Dictionary<string, string> _DictString, bool bFalse)
|
|
{
|
|
string reString = string.Empty;
|
|
try
|
|
{
|
|
//获得枚举信息
|
|
Business.PURCHASE _PURCHASE = new Business.PURCHASE(_Transaction);
|
|
_PURCHASE.PURCHASE_ID_Encrypt = PURCHASE_ID;
|
|
if (_PURCHASE.Select())
|
|
{
|
|
//DataTable RELATIONTABLES = new Business.CommonHelper().GetRELATIONTABLES(
|
|
// _PURCHASE.PURCHASE_ID.ToEncrypt(), "FORMATTABLE_ID", _Transaction);
|
|
|
|
DataTable _DataTable = new Business.PURCHASEDETAIL(_Transaction).ExecuteDataTable(
|
|
@"SELECT PURCHASEDETAIL_ID,COMMODITY_ID,COMMODITY_NAME,SERVERPARTSHOP_ID,SERVERPART_ID,
|
|
UNIT,UNITCOUNT,PURCHASE_COUNT,PURCHASE_TAXPRICE,PURCHASE_PRICE,PURCHASE_TOTALPRICE,
|
|
SUPPORT_PRICE,COMMODITY_RULE,COMMODITY_WEIGHT,PURCHASE_ID,PURCHASETYPE,
|
|
PURCHASEDETAIL_DESC,COMMODITY_CODE,COMMODITY_BARCODE,DUTY_PARAGRAPH,
|
|
PURCHASE_SELLPRICE,PURCHASE_TAXSELLPRICE,PURCHASE_TOTALAMOUNT,RETAIL_DUTY,
|
|
SELL_AVERAGEPRICE,SUPPLIER_ID,SUPPLIER_NAME,LAST_COUNT,STORAGE_STATE,
|
|
NULL AS LAST_SCOUNT,NULL AS DELIVER_STATE
|
|
FROM SALESTORE_STORAGE.T_PURCHASEDETAIL
|
|
WHERE PURCHASE_ID = " + _PURCHASE.PURCHASE_ID + " ORDER BY PURCHASEDETAIL_ID");
|
|
_DataTable.Columns.Add("STORAGE_STATE_NAME");
|
|
_DataTable.Columns.Add("DELIVER_STATE_NAME");
|
|
_DataTable.Columns.Add("DISPLAY");//是否显示配送信息
|
|
_DataTable.Columns.Add("STYLE");//是否显示配送信息
|
|
_DataTable.Columns.Add("TOCAL_COUNT");//配送总量
|
|
|
|
|
|
DataTable _RECEIVE_DataTable = new Business.PURCHASEDETAIL(_Transaction).ExecuteDataTable(
|
|
@"SELECT B.RECEIVECENTER_STATE,A.COMMODITY_BARCODE,B.DELIVERSERVERPART_ID
|
|
FROM SALESTORE_STORAGE.T_RECEIVEDETAILSERVERPART A, SALESTORE_STORAGE.T_RECEIVESERVERPART B
|
|
WHERE A.RECEIVESERVERPART_ID = B.RECEIVESERVERPART_ID AND B.PURCHASE_ID = " + _PURCHASE.PURCHASE_ID);
|
|
foreach (DataRow _DataRow in _DataTable.Rows)
|
|
{
|
|
if (!string.IsNullOrEmpty(_DataRow["UNITCOUNT"].ToString()) &&
|
|
!string.IsNullOrEmpty(_DataRow["PURCHASE_COUNT"].ToString()))
|
|
{
|
|
_DataRow["TOCAL_COUNT"] = (double.Parse(_DataRow["UNITCOUNT"].ToString()) *
|
|
double.Parse(_DataRow["PURCHASE_COUNT"].ToString()));
|
|
}
|
|
else
|
|
{
|
|
_DataRow["TOCAL_COUNT"] = 0;
|
|
}
|
|
if (_PURCHASE.PURCHASE_TYPE == 1000 || _PURCHASE.PURCHASE_TYPE == 3000)
|
|
{
|
|
_DataRow["DISPLAY"] = "display:none";
|
|
switch (_DataRow["STORAGE_STATE"].ToString())
|
|
{
|
|
case "0":
|
|
_DataRow["STORAGE_STATE_NAME"] = "未入库";
|
|
_DataRow["LAST_SCOUNT"] = Convert.ToDouble(_DataRow["UNITCOUNT"].ToString()) *
|
|
Convert.ToDouble(_DataRow["PURCHASE_COUNT"].ToString());
|
|
break;
|
|
case "1":
|
|
_DataRow["LAST_SCOUNT"] = _DataRow["LAST_COUNT"];
|
|
_DataRow["STORAGE_STATE_NAME"] = "部分入库";
|
|
_DataRow["STYLE"] = "color:red;";
|
|
break;
|
|
case "9":
|
|
_DataRow["LAST_SCOUNT"] = "0";
|
|
_DataRow["STORAGE_STATE_NAME"] = "入库完成";
|
|
break;
|
|
}
|
|
}
|
|
else if (_PURCHASE.PURCHASE_TYPE == 4000)
|
|
{
|
|
if (bFalse)
|
|
{
|
|
_DataRow["DISPLAY"] = "";
|
|
}
|
|
else
|
|
{
|
|
_DataRow["DISPLAY"] = "display:none";
|
|
|
|
}
|
|
|
|
switch (_DataRow["STORAGE_STATE"].ToString())
|
|
{
|
|
case "0":
|
|
_DataRow["DELIVER_STATE_NAME"] = "未配送";
|
|
break;
|
|
case "1":
|
|
_DataRow["DELIVER_STATE_NAME"] = "部分配送";
|
|
_DataRow["STYLE"] = "color:red;";
|
|
break;
|
|
case "9":
|
|
_DataRow["DELIVER_STATE_NAME"] = "配送完成";
|
|
break;
|
|
}
|
|
// string _PURCHASE_ID = RELATIONTABLES.Rows[0]["NEXTTABLE_ID"].ToString();
|
|
SSB.GOODSDELIVERDETAIL _GOODSDELIVERDETAIL = new SSB.GOODSDELIVERDETAIL(_Transaction);
|
|
_GOODSDELIVERDETAIL.AddSearchParameter("PURCHASE_ID", PURCHASE_ID.ToDecrypt());
|
|
_GOODSDELIVERDETAIL.AddSearchParameter("COMMODITY_BARCODE", _DataRow["COMMODITY_BARCODE"].ToString());
|
|
if (_GOODSDELIVERDETAIL.Search())
|
|
{
|
|
if (bFalse)
|
|
{
|
|
DataTable GOODSDELIVERDETAIL = _GOODSDELIVERDETAIL.ExecuteDataTable(
|
|
@"SELECT NVL(SUM(LAST_COUNT),0) FROM SELLER_STORAGE.T_GOODSDELIVERDETAIL
|
|
WHERE NVL(STORAGE_STATE,0) < 9 AND PURCHASE_ID = " + PURCHASE_ID.ToDecrypt() +
|
|
" AND COMMODITY_BARCODE = '" + _DataRow["COMMODITY_BARCODE"].ToString() + "'");
|
|
|
|
int _nCount = new Business.CommonHelper().GetRECEIVESERVERPART_COUNT(PURCHASE_ID, _Transaction);
|
|
if (_nCount > 0 && _GOODSDELIVERDETAIL.GetCount("WHERE STORAGE_STATE < 9 AND PURCHASE_ID = " +
|
|
PURCHASE_ID.ToDecrypt()) == 0 && _DataRow["LAST_COUNT"].ToString() == "0")
|
|
{
|
|
|
|
DataRow[] _RECEIVE_DataRow = _RECEIVE_DataTable.Select(" DELIVERSERVERPART_ID = " + _GOODSDELIVERDETAIL.GOODSDELIVER_ID
|
|
+ " AND COMMODITY_BARCODE = '" + _GOODSDELIVERDETAIL.COMMODITY_BARCODE + "'");
|
|
if (_RECEIVE_DataRow.Length > 0)
|
|
{
|
|
_DataRow["STORAGE_STATE_NAME"] = DictionaryHelper.GetFieldEnumName("CENPURCHASE_STATE",
|
|
_RECEIVE_DataRow[0]["RECEIVECENTER_STATE"].ToString(), _Transaction);
|
|
}
|
|
_DataRow["LAST_SCOUNT"] = "0";
|
|
|
|
}
|
|
else if (_nCount > 0 && GOODSDELIVERDETAIL.Rows.Count > 0 &&
|
|
GOODSDELIVERDETAIL.Rows[0][0].ToString() != "0")
|
|
{
|
|
_DataRow["LAST_SCOUNT"] = GOODSDELIVERDETAIL.Rows[0][0].ToString();
|
|
_DataRow["STORAGE_STATE_NAME"] = "部分入库";
|
|
_DataRow["STYLE"] = "color:red;";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
switch (_GOODSDELIVERDETAIL.STORAGE_STATE.ToString())
|
|
{
|
|
case "0":
|
|
_DataRow["STORAGE_STATE_NAME"] = "未入库";
|
|
_DataRow["LAST_SCOUNT"] = string.IsNullOrEmpty(_GOODSDELIVERDETAIL.LAST_COUNT.ToString()) ?
|
|
0 : _GOODSDELIVERDETAIL.LAST_COUNT;
|
|
break;
|
|
case "1":
|
|
_DataRow["STORAGE_STATE_NAME"] = "部分入库";
|
|
_DataRow["LAST_SCOUNT"] = string.IsNullOrEmpty(_GOODSDELIVERDETAIL.LAST_COUNT.ToString()) ?
|
|
0 : _GOODSDELIVERDETAIL.LAST_COUNT;
|
|
_DataRow["STYLE"] = "color:red;";
|
|
break;
|
|
case "9":
|
|
DataRow[] _RECEIVE_DataRow = _RECEIVE_DataTable.Select(" DELIVERSERVERPART_ID = " + _GOODSDELIVERDETAIL.GOODSDELIVER_ID
|
|
+ " AND COMMODITY_BARCODE = '" + _GOODSDELIVERDETAIL.COMMODITY_BARCODE + "'");
|
|
if (_RECEIVE_DataRow.Length > 0)
|
|
{
|
|
_DataRow["STORAGE_STATE_NAME"] = DictionaryHelper.GetFieldEnumName("CENPURCHASE_STATE",
|
|
_RECEIVE_DataRow[0]["RECEIVECENTER_STATE"].ToString(), _Transaction);
|
|
}
|
|
_DataRow["LAST_SCOUNT"] = string.IsNullOrEmpty(_GOODSDELIVERDETAIL.LAST_COUNT.ToString()) ?
|
|
0 : _GOODSDELIVERDETAIL.LAST_COUNT;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
string _PURCHASEDETAIL_DESC = string.Empty;
|
|
_DictString.TryGetValue(_DataRow["UNIT"].ToString(), out _PURCHASEDETAIL_DESC);
|
|
|
|
_DataRow["PURCHASEDETAIL_DESC"] = _PURCHASEDETAIL_DESC;
|
|
|
|
}
|
|
reString = JsonHelper.DataTableToJson(_DataTable, "PURCHASEDETAIL");
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//记录日志
|
|
SuperMap.RealEstate.Utility.ErrorLogHelper.Write(ex);
|
|
reString = "error:" + ex.Message;
|
|
}
|
|
return reString;
|
|
}
|
|
#endregion
|
|
|
|
#region 获取请购商品
|
|
/// <summary>
|
|
/// 获取请购商品
|
|
/// </summary>
|
|
/// <param name="PURCHASE_ID">采购单ID</param>
|
|
/// <param name="_Transaction">数据库服务参数</param>
|
|
/// <param name="_DictString">单位数组</param>
|
|
/// <param name="bFalse">是否显示配送信息</param>
|
|
/// <returns></returns>
|
|
public static string getReceiveDetail(string PURCHASE_ID, string GOODSDELIVER_ID, ServiceModel.Transaction _Transaction,
|
|
Dictionary<string, string> _DictString)
|
|
{
|
|
string reString = string.Empty;
|
|
try
|
|
{
|
|
//获得枚举信息
|
|
Business.PURCHASE _PURCHASE = new Business.PURCHASE(_Transaction);
|
|
_PURCHASE.PURCHASE_ID_Encrypt = PURCHASE_ID;
|
|
if (_PURCHASE.Select())
|
|
{
|
|
//DataTable RELATIONTABLES = new Business.CommonHelper().GetRELATIONTABLES(
|
|
// _PURCHASE.PURCHASE_ID.ToEncrypt(), "FORMATTABLE_ID", _Transaction);
|
|
DataTable _DataTable = new DataTable();
|
|
|
|
if (_PURCHASE.PURCHASE_TYPE == 1000)
|
|
{
|
|
_DataTable = new Business.PURCHASEDETAIL(_Transaction).ExecuteDataTable(
|
|
@"SELECT PURCHASEDETAIL_ID,COMMODITY_ID,COMMODITY_NAME,SERVERPARTSHOP_ID,SERVERPART_ID,
|
|
UNIT,UNITCOUNT,PURCHASE_COUNT,PURCHASE_TAXPRICE,PURCHASE_PRICE,PURCHASE_TOTALPRICE,
|
|
SUPPORT_PRICE,COMMODITY_RULE,COMMODITY_WEIGHT,PURCHASE_ID,PURCHASETYPE,
|
|
PURCHASEDETAIL_DESC,COMMODITY_CODE,COMMODITY_BARCODE,DUTY_PARAGRAPH,
|
|
PURCHASE_SELLPRICE,PURCHASE_TAXSELLPRICE,PURCHASE_TOTALAMOUNT,RETAIL_DUTY,
|
|
SELL_AVERAGEPRICE,SUPPLIER_ID,SUPPLIER_NAME,NVL(LAST_COUNT,0) AS LAST_COUNT,STORAGE_STATE
|
|
FROM SALESTORE_STORAGE.T_PURCHASEDETAIL
|
|
WHERE PURCHASE_ID = " + _PURCHASE.PURCHASE_ID + " ORDER BY PURCHASEDETAIL_ID");
|
|
|
|
_DataTable.Columns.Add("STORAGE_STATE_NAME");//入库状态
|
|
_DataTable.Columns.Add("LAST_SCOUNT");//未入库数量
|
|
_DataTable.Columns.Add("STYLE");
|
|
_DataTable.Columns.Add("DELIVER_STATE_NAME");//配送状态
|
|
_DataTable.Columns.Add("DELIVER_SCOUNT");//配送数量
|
|
_DataTable.Columns.Add("DISPLAY");//是否显示配送信息
|
|
foreach (DataRow _DataRow in _DataTable.Rows)
|
|
{
|
|
_DataRow["DISPLAY"] = "display:none";
|
|
switch (_DataRow["STORAGE_STATE"].ToString())
|
|
{
|
|
case "0":
|
|
_DataRow["STORAGE_STATE_NAME"] = "未入库";
|
|
_DataRow["LAST_SCOUNT"] = Convert.ToDouble(_DataRow["UNITCOUNT"].ToString()) *
|
|
Convert.ToDouble(_DataRow["PURCHASE_COUNT"].ToString());
|
|
break;
|
|
case "1":
|
|
_DataRow["STORAGE_STATE_NAME"] = "部分入库";
|
|
_DataRow["LAST_SCOUNT"] = _DataRow["LAST_COUNT"];
|
|
_DataRow["STYLE"] = "color:red;";
|
|
break;
|
|
case "9":
|
|
_DataRow["LAST_SCOUNT"] = "0";
|
|
_DataRow["STORAGE_STATE_NAME"] = "入库完成";
|
|
break;
|
|
}
|
|
string _PURCHASEDETAIL_DESC = string.Empty;
|
|
_DictString.TryGetValue(_DataRow["UNIT"].ToString(), out _PURCHASEDETAIL_DESC);
|
|
_DataRow["PURCHASEDETAIL_DESC"] = _PURCHASEDETAIL_DESC;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//if (RELATIONTABLES != null && RELATIONTABLES.Rows.Count > 0)
|
|
//{
|
|
_DataTable = new Business.PURCHASEDETAIL(_Transaction).ExecuteDataTable(
|
|
string.Format(@"SELECT A.PURCHASEDETAIL_ID,A.COMMODITY_ID,A.COMMODITY_NAME,A.SERVERPARTSHOP_ID,A.SERVERPART_ID,
|
|
A.UNIT,A.UNITCOUNT,A.PURCHASE_COUNT,A.PURCHASE_TAXPRICE,A.PURCHASE_PRICE,A.PURCHASE_TOTALPRICE,
|
|
A.SUPPORT_PRICE,A.COMMODITY_RULE,A.COMMODITY_WEIGHT,A.PURCHASE_ID,A.PURCHASETYPE,
|
|
A.PURCHASEDETAIL_DESC,A.COMMODITY_CODE,A.COMMODITY_BARCODE,A.DUTY_PARAGRAPH,
|
|
A.PURCHASE_SELLPRICE,A.PURCHASE_TAXSELLPRICE,A.PURCHASE_TOTALAMOUNT,A.RETAIL_DUTY,
|
|
A.SELL_AVERAGEPRICE,A.SUPPLIER_ID,A.SUPPLIER_NAME,A.LAST_COUNT,A.STORAGE_STATE,
|
|
SUM(C.LAST_COUNT) AS LAST_SCOUNT,MIN(C.STORAGE_STATE) AS DELIVER_STATE
|
|
FROM SALESTORE_STORAGE.T_PURCHASEDETAIL A,
|
|
SALESTORE_STORAGE.T_PURCHASE B,
|
|
SELLER_STORAGE.T_GOODSDELIVERDETAIL C
|
|
WHERE A.PURCHASE_ID = B.PURCHASE_ID AND B.PURCHASE_ID = C.PURCHASE_ID AND
|
|
A.COMMODITY_BARCODE = C.COMMODITY_BARCODE AND
|
|
A.PURCHASE_ID={0} AND C.GOODSDELIVER_ID={1}
|
|
GROUP BY
|
|
A.PURCHASEDETAIL_ID,A.COMMODITY_ID,A.COMMODITY_NAME,A.SERVERPARTSHOP_ID,A.SERVERPART_ID,
|
|
A.UNIT,A.UNITCOUNT,A.PURCHASE_COUNT,A.PURCHASE_TAXPRICE,A.PURCHASE_PRICE,A.PURCHASE_TOTALPRICE,
|
|
A.SUPPORT_PRICE,A.COMMODITY_RULE,A.COMMODITY_WEIGHT,A.PURCHASE_ID,A.PURCHASETYPE,
|
|
A.PURCHASEDETAIL_DESC,A.COMMODITY_CODE,A.COMMODITY_BARCODE,A.DUTY_PARAGRAPH,
|
|
A.PURCHASE_SELLPRICE,A.PURCHASE_TAXSELLPRICE,A.PURCHASE_TOTALAMOUNT,A.RETAIL_DUTY,
|
|
A.SELL_AVERAGEPRICE,A.SUPPLIER_ID,A.SUPPLIER_NAME,A.LAST_COUNT,A.STORAGE_STATE", PURCHASE_ID.ToDecrypt(), GOODSDELIVER_ID.ToDecrypt()));
|
|
|
|
_DataTable.Columns.Add("STORAGE_STATE_NAME");//入库状态
|
|
_DataTable.Columns.Add("STYLE");
|
|
_DataTable.Columns.Add("DELIVER_STATE_NAME");//配送状态
|
|
_DataTable.Columns.Add("DELIVER_SCOUNT");//配送数量
|
|
_DataTable.Columns.Add("DISPLAY");//是否显示配送信息
|
|
foreach (DataRow _DataRow in _DataTable.Rows)
|
|
{
|
|
_DataRow["DISPLAY"] = "";
|
|
switch (_DataRow["STORAGE_STATE"].ToString())
|
|
{
|
|
case "0":
|
|
_DataRow["DELIVER_STATE_NAME"] = "未配送";
|
|
_DataRow["DELIVER_SCOUNT"] = _DataRow["LAST_COUNT"];
|
|
_DataRow["STYLE"] = "color:red;";
|
|
break;
|
|
case "1":
|
|
_DataRow["DELIVER_STATE_NAME"] = "部分配送";
|
|
_DataRow["DELIVER_SCOUNT"] = _DataRow["LAST_COUNT"];
|
|
_DataRow["STYLE"] = "color:red;";
|
|
break;
|
|
case "9":
|
|
_DataRow["DELIVER_STATE_NAME"] = "全部配送";
|
|
_DataRow["DELIVER_SCOUNT"] = 0;
|
|
break;
|
|
}
|
|
|
|
switch (_DataRow["DELIVER_STATE"].ToString())
|
|
{
|
|
case "0":
|
|
_DataRow["STORAGE_STATE_NAME"] = "未入库";
|
|
_DataRow["LAST_SCOUNT"] = Convert.ToDouble(_DataRow["UNITCOUNT"].ToString()) *
|
|
Convert.ToDouble(_DataRow["PURCHASE_COUNT"].ToString());
|
|
break;
|
|
case "1":
|
|
_DataRow["STORAGE_STATE_NAME"] = "部分入库";
|
|
_DataRow["LAST_SCOUNT"] = _DataRow["LAST_SCOUNT"];
|
|
_DataRow["STYLE"] = "color:red;";
|
|
break;
|
|
case "9":
|
|
_DataRow["LAST_SCOUNT"] = "0";
|
|
_DataRow["STORAGE_STATE_NAME"] = "入库完成";
|
|
break;
|
|
}
|
|
string _PURCHASEDETAIL_DESC = string.Empty;
|
|
_DictString.TryGetValue(_DataRow["UNIT"].ToString(), out _PURCHASEDETAIL_DESC);
|
|
_DataRow["PURCHASEDETAIL_DESC"] = _PURCHASEDETAIL_DESC;
|
|
}
|
|
// }
|
|
|
|
|
|
|
|
}
|
|
reString = JsonHelper.DataTableToJson(_DataTable, "PURCHASEDETAIL");
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//记录日志
|
|
SuperMap.RealEstate.Utility.ErrorLogHelper.Write(ex);
|
|
reString = "error:" + ex.Message;
|
|
}
|
|
return reString;
|
|
}
|
|
#endregion
|
|
|
|
#region 比较库存差异
|
|
|
|
public static string setStatistiAction(string _SHOP_IDs, ServiceModel.Transaction _Transaction)
|
|
{
|
|
string reString = string.Empty;
|
|
string strMsg = string.Empty;
|
|
string dt_sql = string.Empty;
|
|
bool bFalse = true;
|
|
foreach (string _SERVERPARTSHOP_ID in _SHOP_IDs.Split(','))
|
|
{
|
|
dt_sql = String.Format(@"SELECT distinct A.COMMODITY_ID
|
|
FROM SALESTORE_STORAGE.T_SERVERPARTSTOCK A,HIGHWAY_STORAGE.V_WHOLE_COMMODITY D
|
|
WHERE A.COMMODITY_ID = D.COMMODITY_ID AND A.SERVERPARTSHOP_ID ={0} ORDER BY A.COMMODITY_ID ", _SERVERPARTSHOP_ID);
|
|
|
|
string sql_del = "DELETE FROM SALESTORE_STORAGE.T_STATISTI A WHERE A.SERVERPARTSHOP_ID = " + _SERVERPARTSHOP_ID;
|
|
SSSB.CHECKCOMMODITY _CHECKCOMMODITY = new SSSB.CHECKCOMMODITY(_Transaction);
|
|
_CHECKCOMMODITY.ExecuteNonQuery(sql_del, null);
|
|
|
|
HSB.SERVERPARTSHOP _SERVERPARTSHOP = new HSB.SERVERPARTSHOP(_Transaction);
|
|
_SERVERPARTSHOP.SERVERPARTSHOP_ID_Encrypt = _SERVERPARTSHOP_ID.ToEncrypt();
|
|
if (!_SERVERPARTSHOP.Select())
|
|
{
|
|
bFalse = false;
|
|
strMsg = "门店不存在,请确认!"; break;
|
|
}
|
|
HSB.SERVERPART _SERVERPART = new HSB.SERVERPART(_Transaction);
|
|
_SERVERPART.SERVERPART_ID = _SERVERPARTSHOP.SERVERPART_ID;
|
|
if (!_SERVERPART.Select())
|
|
{
|
|
bFalse = false;
|
|
strMsg = "服务区不存在,请确认!"; break;
|
|
}
|
|
string START_DATE = string.Empty;
|
|
string END_DATE = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
|
DataTable _Data_CHECKCOMMODITY = _CHECKCOMMODITY.ExecuteDataTable(
|
|
"SELECT CHECKDATE FROM SALESTORE_STORAGE.T_CHECKCOMMODITY A WHERE A.SERVERPARTSHOP_ID = " +
|
|
_SERVERPARTSHOP.SERVERPARTSHOP_ID + " AND A.CHECK_STATE = 1 ORDER BY CHECKDATE DESC");
|
|
if (_Data_CHECKCOMMODITY != null && _Data_CHECKCOMMODITY.Rows.Count > 0 && _Data_CHECKCOMMODITY.Rows[0]["CHECKDATE"] != null)
|
|
{
|
|
START_DATE = _Data_CHECKCOMMODITY.Rows[0]["CHECKDATE"].ToString();
|
|
}
|
|
else
|
|
{
|
|
START_DATE = "2000-01-01";
|
|
}
|
|
|
|
if (_CHECKCOMMODITY.GetCount("WHERE CHECK_STATE = 0 AND SERVERPARTSHOP_ID = " + _SERVERPARTSHOP.SERVERPARTSHOP_ID) > 0)
|
|
{
|
|
END_DATE = _CHECKCOMMODITY.FillCollection("WHERE SERVERPARTSHOP_ID = " + _SERVERPARTSHOP.SERVERPARTSHOP_ID +
|
|
" AND CHECK_STATE = 0 ORDER BY CHECKDATE DESC")[0].CHECKDATE.Value.ToString("yyyy-MM-dd HH:mm:ss");
|
|
}
|
|
|
|
#region 存储销售数据
|
|
|
|
string SQLString = string.Format(@"
|
|
SELECT SERVERPARTCODE,SHOPCODE,COMMODITY_CODE,
|
|
COMMODITY_ID,SUM(TOTALCOUNT) AS TOTALCOUNT,SUM(TOTALSELLAMOUNT) AS TOTALSELLAMOUNT
|
|
FROM (SELECT B.COMMODITY_ID,A.ENDDATE,A.SERVERPARTCODE,A.SHOPCODE,
|
|
A.COMMODITY_CODE,A.TOTALCOUNT,A.TOTALSELLAMOUNT
|
|
FROM
|
|
HIGHWAY_EXCHANGE.T_COMMODITYSALE_MARKET A,
|
|
HIGHWAY_STORAGE.V_WHOLE_COMMODITY B
|
|
WHERE
|
|
A.COMMODITY_CODE = B.COMMODITY_CODE AND
|
|
A.SERVERPARTCODE = '{0}' AND A.SHOPCODE = '{1}' AND
|
|
A.ENDDATE > TO_DATE('{2}','YYYY/MM/DD HH24:MI:SS') AND
|
|
A.ENDDATE <= TO_DATE('{3}','YYYY/MM/DD HH24:MI:SS') AND
|
|
B.PROVINCE_CODE = {4}
|
|
UNION ALL
|
|
SELECT
|
|
B.COMMODITY_ID,A.SELLDATA_DATE,A.SERVERPARTCODE,A.SHOPCODE,
|
|
A.COMMODITY_CODE,A.SELLCOUNT,A.FACTAMOUNT
|
|
FROM
|
|
HIGHWAY_SELLDATA.T_SUPPLEMENT A,
|
|
HIGHWAY_STORAGE.V_WHOLE_COMMODITY B
|
|
WHERE
|
|
A.COMMODITY_ID = B.COMMODITY_ID AND
|
|
A.SERVERPARTCODE = '{0}' AND A.SHOPCODE = '{1}' AND
|
|
A.SELLDATA_DATE > TO_DATE('{2}','YYYY/MM/DD HH24:MI:SS') AND
|
|
A.SELLDATA_DATE <= TO_DATE('{3}','YYYY/MM/DD HH24:MI:SS'))
|
|
GROUP BY COMMODITY_ID,SERVERPARTCODE,SHOPCODE,COMMODITY_CODE",
|
|
_SERVERPART.SERVERPART_CODE, _SERVERPARTSHOP.SHOPCODE,
|
|
START_DATE, END_DATE, _SERVERPART.PROVINCE_CODE);
|
|
|
|
DataTable T_SELLDATA_INSALES = new DataTable();
|
|
T_SELLDATA_INSALES.Columns.Add("SERVERPARTSHOP_ID");
|
|
T_SELLDATA_INSALES.Columns.Add("SHOPCODE");
|
|
T_SELLDATA_INSALES.Columns.Add("COMMODITY_ID");
|
|
T_SELLDATA_INSALES.Columns.Add("SELL_COUNT");
|
|
foreach (DataRow _DataRow in _SERVERPART.ExecuteDataTable(SQLString).Rows)
|
|
{
|
|
DataRow _SELLDATA_INSALES_Row = T_SELLDATA_INSALES.NewRow();
|
|
_SELLDATA_INSALES_Row["SERVERPARTSHOP_ID"] = _SERVERPARTSHOP.SERVERPARTSHOP_ID;
|
|
_SELLDATA_INSALES_Row["SHOPCODE"] = _SERVERPARTSHOP.SHOPCODE;
|
|
_SELLDATA_INSALES_Row["COMMODITY_ID"] = _DataRow["COMMODITY_ID"];
|
|
_SELLDATA_INSALES_Row["SELL_COUNT"] = _DataRow["TOTALCOUNT"];
|
|
|
|
T_SELLDATA_INSALES.Rows.Add(_SELLDATA_INSALES_Row);
|
|
}
|
|
#endregion
|
|
|
|
#region 存储业务数据
|
|
DataTable BACKCOMMODITYTable = _CHECKCOMMODITY.ExecuteDataTable(string.Format(@"SELECT
|
|
COMMODITY_ID,NVL(SUM(BACK_COUNT),0),NVL(SUM(BACKTAXPRICE),0),NVL(SUM(BACKPRICE),0)
|
|
FROM SALESTORE_STORAGE.V_BACKCOMMODITY
|
|
WHERE SERVERPARTSHOP_ID = {0} AND SERVERPART_ID = {1} AND
|
|
BACK_DATE > TO_DATE('{2}','YYYY/MM/DD HH24:MI:SS') AND
|
|
BACK_DATE <= TO_DATE('{3}','YYYY/MM/DD HH24:MI:SS')
|
|
GROUP BY COMMODITY_ID",
|
|
_SERVERPARTSHOP.SERVERPARTSHOP_ID, _SERVERPART.SERVERPART_ID,
|
|
START_DATE,
|
|
END_DATE), null);
|
|
|
|
DataTable PREPARECOMMODITYOutTable = _CHECKCOMMODITY.ExecuteDataTable(string.Format(@"SELECT
|
|
B.COMMODITY_ID,NVL(SUM(A.PREPARECOUNT),0),
|
|
NVL(SUM(ROUND(NVL(A.TRANSFERTAXPRICE,A.PREPARECOUNT * A.PURCHASE_TAXPRICE),2)),0),
|
|
NVL(SUM(ROUND(NVL(A.TRANSFERPRICE,A.PREPARECOUNT * A.PURCHASE_PRICE),2)),0)
|
|
FROM SALESTORE_STORAGE.T_PREPARECOMMODITY A,
|
|
SALESTORE_STORAGE.T_SERVERPARTSTOCK B
|
|
WHERE A.SERVERPARTSTOCK_ID = B.SERVERPARTSTOCK_ID AND
|
|
B.SERVERPARTSHOP_ID = {0} AND B.SERVERPART_ID = {1} AND
|
|
A.PREPAREDATE > TO_DATE('{2}','YYYY/MM/DD HH24:MI:SS') AND
|
|
A.PREPAREDATE <= TO_DATE('{3}','YYYY/MM/DD HH24:MI:SS')
|
|
GROUP BY B.COMMODITY_ID",
|
|
_SERVERPARTSHOP.SERVERPARTSHOP_ID, _SERVERPART.SERVERPART_ID,
|
|
START_DATE,
|
|
END_DATE), null);
|
|
|
|
DataTable PREPARECOMMODITYInTable = _CHECKCOMMODITY.ExecuteDataTable(string.Format(@"SELECT
|
|
COMMODITY_ID,NVL(SUM(PREPARECOUNT),0),
|
|
NVL(SUM(ROUND(NVL(TRANSFERTAXPRICE,PREPARECOUNT * PURCHASE_TAXPRICE),2)),0),
|
|
NVL(SUM(ROUND(NVL(TRANSFERPRICE,PREPARECOUNT * PURCHASE_PRICE),2)),0)
|
|
FROM SALESTORE_STORAGE.T_PREPARECOMMODITY
|
|
WHERE TARGETSHOP_ID = {0} AND TARGETSERVERPART_ID = {1} AND
|
|
PREPAREDATE > TO_DATE('{2}','YYYY/MM/DD HH24:MI:SS') AND
|
|
PREPAREDATE <= TO_DATE('{3}','YYYY/MM/DD HH24:MI:SS')
|
|
GROUP BY COMMODITY_ID",
|
|
_SERVERPARTSHOP.SERVERPARTSHOP_ID, _SERVERPART.SERVERPART_ID,
|
|
START_DATE,
|
|
END_DATE), null);
|
|
|
|
DataTable RECEIVECOMMODITYTable = _CHECKCOMMODITY.ExecuteDataTable(string.Format(@"SELECT
|
|
B.COMMODITY_ID,NVL(SUM(A.RECEIVE_COUNT),0),
|
|
NVL(SUM(ROUND(NVL(A.RECEIVETAXPRICE,A.RECEIVE_COUNT * A.PURCHASE_TAXPRICE),2)),0),
|
|
NVL(SUM(ROUND(NVL(A.RECEIVEPRICE,A.RECEIVE_COUNT * A.PURCHASE_PRICE),2)),0)
|
|
FROM SALESTORE_STORAGE.T_RECEIVECOMMODITY A,
|
|
SALESTORE_STORAGE.T_SERVERPARTSTOCK B
|
|
WHERE A.SERVERPARTSTOCK_ID = B.SERVERPARTSTOCK_ID AND
|
|
B.SERVERPARTSHOP_ID = {0} AND B.SERVERPART_ID = {1} AND
|
|
A.RECEIVE_DATE > TO_DATE('{2}','YYYY/MM/DD HH24:MI:SS') AND
|
|
A.RECEIVE_DATE <= TO_DATE('{3}','YYYY/MM/DD HH24:MI:SS')
|
|
GROUP BY B.COMMODITY_ID",
|
|
_SERVERPARTSHOP.SERVERPARTSHOP_ID, _SERVERPART.SERVERPART_ID,
|
|
START_DATE,
|
|
END_DATE), null);
|
|
#endregion
|
|
|
|
#region 存储入库数据
|
|
DataTable RECEIVESERVERPARTTable = _CHECKCOMMODITY.ExecuteDataTable(string.Format(
|
|
@"SELECT B.COMMODITY_ID,NVL(SUM(NVL(B.DELIVERCOUNT,B.UNITCOUNT * B.DELIVERCOUNT)),0),
|
|
NVL(SUM(ROUND(NVL(B.RECEIVE_TOTALPRICE,B.DELIVERCOUNT * B.UNITCOUNT * B.PURCHASE_TAXPRICE),2)),0),
|
|
NVL(SUM(NVL(ROUND(NVL(B.RECEIVE_TOTALAMOUNT,B.DELIVERCOUNT * B.UNITCOUNT * B.PURCHASE_PRICE),2),
|
|
ROUND(NVL(B.RECEIVE_TOTALPRICE,B.DELIVERCOUNT * B.UNITCOUNT * B.PURCHASE_TAXPRICE / 1.13),2))),0)
|
|
FROM
|
|
SALESTORE_STORAGE.T_RECEIVESERVERPART A,
|
|
SALESTORE_STORAGE.T_RECEIVEDETAILSERVERPART_{0} B
|
|
WHERE
|
|
A.RECEIVESERVERPART_ID = B.RECEIVESERVERPART_ID AND
|
|
NVL(B.SERVERPARTSHOP_ID,A.SERVERPARTSHOP_ID) = {1} AND
|
|
A.RECEIVECENTER_DATE > TO_DATE('{2}','YYYY/MM/DD HH24:MI:SS') AND
|
|
A.RECEIVECENTER_DATE <= TO_DATE('{3}','YYYY/MM/DD HH24:MI:SS') AND
|
|
EXISTS (SELECT 1 FROM SALESTORE_STORAGE.T_STORAGEBILL C
|
|
WHERE A.RECEIVESERVERPART_ID = C.RECEIVESERVERPART_ID)
|
|
GROUP BY B.COMMODITY_ID",
|
|
_SERVERPART.SERVERPART_ID, _SERVERPARTSHOP.SERVERPARTSHOP_ID,
|
|
START_DATE,
|
|
END_DATE));
|
|
#endregion
|
|
|
|
#region 团购
|
|
DataTable GROUPPURCHASE_DataTable = _CHECKCOMMODITY.ExecuteDataTable(@"SELECT NVL(SUM(A.GROUPPURCHASE_COUNT),0),
|
|
ROUND(NVL(SUM(A.TOTAL_TAXSELLPRICE),0),2),ROUND(NVL(SUM(A.TOTAL_TAXPRICE),0),2) ,COMMODITY_ID
|
|
FROM
|
|
SALESTORE_STORAGE.T_GROUPPURCHASEDETAIL A ,SALESTORE_STORAGE.T_GROUPPURCHASE B
|
|
WHERE
|
|
A.GROUPPURCHASE_ID = B.GROUPPURCHASE_ID AND B.GROUPPURCHASE_STATE = 1090 AND
|
|
B.GROUPPURCHASE_DATE BETWEEN TO_DATE('" + START_DATE +
|
|
"','YYYY-MM-DD HH24:MI:SS') AND TO_DATE('" + END_DATE +
|
|
"','YYYY-MM-DD HH24:MI:SS') AND B.SERVERPARTSHOP_ID = " + _SERVERPARTSHOP.SERVERPARTSHOP_ID +
|
|
" GROUP BY A.COMMODITY_ID");
|
|
#endregion
|
|
|
|
#region 加工单
|
|
DataTable PROCESSORDER_DataTable = _CHECKCOMMODITY.ExecuteDataTable(@"SELECT
|
|
SUM((CASE WHEN A.PROCESSORDER_TYPE IN (1000,2010) THEN -1 ELSE 1 END)
|
|
* NVL(A.PROCESSORDER_COUNT,0)),
|
|
SUM((CASE WHEN A.PROCESSORDER_TYPE IN (1000,2010) THEN -1 ELSE 1 END)
|
|
* NVL(A.TOTAL_TAXPRICE,A.PROCESSORDER_COUNT * A.PROCESSORDER_TAXPRICE)),
|
|
SUM((CASE WHEN A.PROCESSORDER_TYPE IN (1000,2010) THEN -1 ELSE 1 END)
|
|
* NVL(A.TOTAL_PRICE,A.PROCESSORDER_COUNT * A.PROCESSORDER_PRICE)),COMMODITY_ID
|
|
FROM
|
|
SALESTORE_STORAGE.T_PROCESSORDERDETAIL A ,SALESTORE_STORAGE.T_PROCESSORDER B
|
|
WHERE
|
|
A.PROCESSORDER_ID = B.PROCESSORDER_ID AND B.PROCESSORDER_STATE = 1090 AND
|
|
B.PROCESSORDER_DATE BETWEEN TO_DATE('" + START_DATE +
|
|
"','YYYY-MM-DD HH24:MI:SS') AND TO_DATE('" + END_DATE +
|
|
"','YYYY-MM-DD HH24:MI:SS') AND B.SERVERPARTSHOP_ID = " + _SERVERPARTSHOP.SERVERPARTSHOP_ID +
|
|
" GROUP BY A.COMMODITY_ID");
|
|
#endregion
|
|
|
|
#region 本期报损溢
|
|
DataTable LOSSPROFITGOODS_DataTable = _CHECKCOMMODITY.ExecuteDataTable(@"SELECT NVL(SUM(LOSSPROFIT_COUNT),0),
|
|
NVL(SUM(ROUND(NVL(LOSSPROFIT_TAXPRICE,LOSSPROFIT_COUNT * PURCHASE_TAXPRICE),2)),0),
|
|
NVL(SUM(ROUND(NVL(LOSSPROFIT_PRICE,LOSSPROFIT_COUNT * PURCHASE_PRICE),2)),0),COMMODITY_ID
|
|
FROM
|
|
SALESTORE_STORAGE.T_LOSSPROFITGOODS
|
|
WHERE
|
|
LOSSPROFIT_DATE BETWEEN TO_DATE('" + START_DATE +
|
|
"','YYYY-MM-DD HH24:MI:SS') AND TO_DATE('" + END_DATE +
|
|
"','YYYY-MM-DD HH24:MI:SS') AND SERVERPARTSHOP_ID = " + _SERVERPARTSHOP.SERVERPARTSHOP_ID +
|
|
" GROUP BY COMMODITY_ID");
|
|
#endregion
|
|
|
|
#region 本期库存
|
|
DataTable SERVERPARTSTOCK_DataTable = _CHECKCOMMODITY.ExecuteDataTable(@"SELECT
|
|
SUM(NVL(OVERPLUSCOUNT,0)) AS OVERPLUSCOUNT,COMMODITY_ID
|
|
FROM SALESTORE_STORAGE.T_SERVERPARTSTOCK WHERE SERVERPARTSHOP_ID = " +
|
|
_SERVERPARTSHOP.SERVERPARTSHOP_ID + " GROUP BY COMMODITY_ID");
|
|
|
|
#endregion
|
|
|
|
#region 存储上期结存
|
|
DataTable INSALES_STATISTICTable = _CHECKCOMMODITY.ExecuteDataTable(string.Format(
|
|
@"SELECT * FROM SALESTORE_STORAGE.T_INSALES_STATISTIC_{0} A
|
|
WHERE SERVERPART_ID = {0} AND SERVERPARTSHOP_ID = {1} AND
|
|
A.CHECKDATE >= TO_DATE('{2}','YYYY/MM/DD HH24:MI:SS') AND
|
|
EXISTS (SELECT 1 FROM SALESTORE_STORAGE.T_CHECKCOMMODITY B
|
|
WHERE A.SERVERPARTSHOP_ID = B.SERVERPARTSHOP_ID AND B.CHECK_STATE = 1 AND
|
|
A.CHECKDATE = B.CHECKDATE AND B.CHECK_TYPE NOT IN (2000)) ORDER BY CHECKDATE DESC",
|
|
_SERVERPART.SERVERPART_ID, _SERVERPARTSHOP.SERVERPARTSHOP_ID, START_DATE));
|
|
#endregion
|
|
|
|
#region 商品信息
|
|
DataTable _Data_COMMODITY = _CHECKCOMMODITY.ExecuteDataTable(
|
|
"SELECT A.COMMODITY_ID,A.COMMODITY_NAME,A.COMMODITY_BARCODE FROM HIGHWAY_STORAGE.V_WHOLE_COMMODITY A ");
|
|
#endregion
|
|
|
|
string _COMMODITY_ID = string.Empty;
|
|
int num = 0;
|
|
string sql = string.Empty;
|
|
try
|
|
{
|
|
foreach (DataRow item in new Business.CHECKCOMMODITY(_Transaction).ExecuteDataTable(dt_sql).Rows)
|
|
{
|
|
|
|
DataRow[] _DataRow_COMMODITY = _Data_COMMODITY.Select(" COMMODITY_ID = " +
|
|
(item["COMMODITY_ID"] == null ? "0" : item["COMMODITY_ID"]));
|
|
if (_DataRow_COMMODITY.Length > 0)
|
|
{
|
|
_COMMODITY_ID = _DataRow_COMMODITY[0]["COMMODITY_ID"].ToString();
|
|
double PURCHASE_COUNT = 0, SELL_COUNT = 0, TRANSFER_COUNT = 0, RECEIVE_COUNT = 0, BACK_COUNT = 0,
|
|
LAST_OVERPLUSCOUNT = 0, OVERPLUSCOUNT = 0, GROUPPURCHASE_COUNT = 0, PROCESSORDER_COUNT = 0,
|
|
LOSSPROFIT_CHECKCOUNT = 0, LOSSPROFIT_COUNT = 0;
|
|
|
|
#region 销售数据
|
|
DataRow[] _T_SELLDATA_DataRow = T_SELLDATA_INSALES.Select("COMMODITY_ID = '" + _COMMODITY_ID + "'");
|
|
if (_T_SELLDATA_DataRow.Length > 0)
|
|
{
|
|
SELL_COUNT = Convert.ToDouble(_T_SELLDATA_DataRow[0]["SELL_COUNT"] == null ?
|
|
0 : _T_SELLDATA_DataRow[0]["SELL_COUNT"]).Round(2);
|
|
}
|
|
#endregion
|
|
|
|
#region 入库数据
|
|
DataRow[] _RECEIVESERVERPART_DataRow = RECEIVESERVERPARTTable.Select("COMMODITY_ID = " + _COMMODITY_ID);
|
|
if (_RECEIVESERVERPART_DataRow.Length > 0)
|
|
{
|
|
PURCHASE_COUNT = Convert.ToDouble(_RECEIVESERVERPART_DataRow[0][1]).Round(2);
|
|
}
|
|
#endregion
|
|
|
|
#region 退货数据
|
|
DataRow[] _BACKCOMMODITY_DataRow = BACKCOMMODITYTable.Select("COMMODITY_ID = " + _COMMODITY_ID);
|
|
if (_BACKCOMMODITY_DataRow.Length > 0)
|
|
{
|
|
BACK_COUNT = Convert.ToDouble(_BACKCOMMODITY_DataRow[0][1]).Round(2);
|
|
}
|
|
#endregion
|
|
|
|
#region 调拨数据
|
|
DataRow[] _PREPARECOMMODITY_Out_DataRow = PREPARECOMMODITYOutTable.Select("COMMODITY_ID = " + _COMMODITY_ID);
|
|
if (_PREPARECOMMODITY_Out_DataRow.Length > 0)
|
|
{
|
|
TRANSFER_COUNT = Convert.ToDouble(_PREPARECOMMODITY_Out_DataRow[0][1]).Round(2);
|
|
}
|
|
|
|
DataRow[] _PREPARECOMMODITY_In_DataRow = PREPARECOMMODITYInTable.Select("COMMODITY_ID = " + _COMMODITY_ID);
|
|
|
|
if (_PREPARECOMMODITY_In_DataRow.Length > 0)
|
|
{
|
|
TRANSFER_COUNT = TRANSFER_COUNT - Convert.ToDouble(_PREPARECOMMODITY_In_DataRow[0][1]).Round(2);
|
|
}
|
|
#endregion
|
|
|
|
#region 领用数据
|
|
DataRow[] _RECEIVECOMMODITY_DataRow = RECEIVECOMMODITYTable.Select("COMMODITY_ID = " + _COMMODITY_ID);
|
|
|
|
if (_RECEIVECOMMODITY_DataRow.Length > 0)
|
|
{
|
|
RECEIVE_COUNT = Convert.ToDouble(_RECEIVECOMMODITY_DataRow[0][1]).Round(2);
|
|
}
|
|
#endregion
|
|
|
|
#region 团购
|
|
DataRow[] _GROUPPURCHASE_DataRow = GROUPPURCHASE_DataTable.Select("COMMODITY_ID = " + _COMMODITY_ID);
|
|
if (_GROUPPURCHASE_DataRow.Length > 0)
|
|
{
|
|
GROUPPURCHASE_COUNT = Convert.ToDouble(_GROUPPURCHASE_DataRow[0][0]);
|
|
}
|
|
#endregion
|
|
|
|
#region 加工
|
|
DataRow[] _PROCESSORDER_DataRow = PROCESSORDER_DataTable.Select("COMMODITY_ID = " + _COMMODITY_ID);
|
|
if (_PROCESSORDER_DataRow.Length > 0)
|
|
{
|
|
PROCESSORDER_COUNT = Convert.ToDouble(_PROCESSORDER_DataRow[0][0]);
|
|
}
|
|
#endregion
|
|
|
|
#region 报损益流程
|
|
DataRow[] _LOSSPROFITGOODS_DataRow = LOSSPROFITGOODS_DataTable.Select("COMMODITY_ID = " + _COMMODITY_ID);
|
|
if (_LOSSPROFITGOODS_DataRow.Length > 0)
|
|
{
|
|
LOSSPROFIT_CHECKCOUNT = Convert.ToDouble(_LOSSPROFITGOODS_DataRow[0][0]);
|
|
}
|
|
#endregion
|
|
|
|
#region 上期结存数据
|
|
DataRow[] _INSALES_STATISTIC_DataRow = INSALES_STATISTICTable.Select("COMMODITY_ID = " + _COMMODITY_ID);
|
|
if (_INSALES_STATISTIC_DataRow.Length > 0)
|
|
{
|
|
LAST_OVERPLUSCOUNT = Convert.ToDouble(_INSALES_STATISTIC_DataRow[0]["OVERPLUSCOUNT"]).Round(2);
|
|
}
|
|
#endregion
|
|
|
|
#region 本期结存
|
|
|
|
DataRow[] _SERVERPARTSTOCK_DataRow = SERVERPARTSTOCK_DataTable.Select("COMMODITY_ID = " + _COMMODITY_ID);
|
|
if (_SERVERPARTSTOCK_DataRow.Length > 0)
|
|
{
|
|
OVERPLUSCOUNT = Convert.ToDouble(_SERVERPARTSTOCK_DataRow[0]["OVERPLUSCOUNT"]).Round(2);
|
|
}
|
|
#endregion
|
|
|
|
LOSSPROFIT_COUNT = (OVERPLUSCOUNT - (LAST_OVERPLUSCOUNT + PURCHASE_COUNT - BACK_COUNT -
|
|
TRANSFER_COUNT - RECEIVE_COUNT - SELL_COUNT - GROUPPURCHASE_COUNT - PROCESSORDER_COUNT +
|
|
LOSSPROFIT_CHECKCOUNT)).Round(2);
|
|
|
|
sql = string.Format(@"INSERT INTO SALESTORE_STORAGE.T_STATISTI(
|
|
STATISTI_ID,SERVERPART_ID,SERVERPARTSHOP_ID,
|
|
COMMODITY_ID,COMMODITY_NAME,COMMODITY_BARCODE,
|
|
PURCHASE_COUNT,SELL_COUNT,TRANSFER_COUNT,RECEIVE_COUNT,BACK_COUNT,
|
|
LAST_OVERPLUSCOUNT,OVERPLUSCOUNT,GROUPPURCHASE_COUNT,PROCESSORDER_COUNT,
|
|
LOSSPROFIT_CHECKCOUNT,LOSSPROFIT_COUNT,STATISTI_TIME)
|
|
VALUES(SALESTORE_STORAGE.SEQ_STATISTI.Nextval,'{0}','{1}',
|
|
'{2}','{3}','{4}',
|
|
'{5}','{6}','{7}','{8}','{9}',
|
|
'{10}','{11}','{12}','{13}',
|
|
'{14}','{15}',to_date('{16}','YYYY/MM/DD HH24:MI:SS'))",
|
|
_SERVERPART.SERVERPART_ID, _SERVERPARTSHOP.SERVERPARTSHOP_ID,
|
|
_DataRow_COMMODITY[0]["COMMODITY_ID"], _DataRow_COMMODITY[0]["COMMODITY_NAME"].ToString().Replace("'", ""),
|
|
_DataRow_COMMODITY[0]["COMMODITY_BARCODE"],
|
|
PURCHASE_COUNT, SELL_COUNT, TRANSFER_COUNT, RECEIVE_COUNT, BACK_COUNT,
|
|
LAST_OVERPLUSCOUNT, OVERPLUSCOUNT, GROUPPURCHASE_COUNT, PROCESSORDER_COUNT,
|
|
LOSSPROFIT_CHECKCOUNT, LOSSPROFIT_COUNT, END_DATE);
|
|
_CHECKCOMMODITY.ExecuteNonQuery(sql, null);
|
|
num++;
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
reString = ex.Message;
|
|
bFalse = false;
|
|
break;
|
|
}
|
|
}
|
|
if (bFalse)
|
|
{
|
|
_Transaction.Commit();
|
|
}
|
|
else
|
|
{
|
|
_Transaction.Rollback();
|
|
}
|
|
return reString;
|
|
}
|
|
#endregion
|
|
}
|
|
} |