982 lines
54 KiB
C#
982 lines
54 KiB
C#
using System;
|
||
using System.Configuration;
|
||
using System.Data;
|
||
using System.Drawing;
|
||
using System.Web.UI;
|
||
using System.Web.UI.WebControls;
|
||
using SuperMap.RealEstate.CoreFrameWork;
|
||
using SuperMap.RealEstate.ServiceModel;
|
||
using SuperMap.RealEstate.Utility;
|
||
using SuperMap.RealEstate.Web.UI;
|
||
using SuperMap.RealEstate.Web.UI.WebControls;
|
||
using HWSB = SuperMap.RealEstate.HighWay.Storage.Business;
|
||
using Business = SuperMap.RealEstate.HighWay.SellData.Business;
|
||
using MSPB = SuperMap.RealEstate.MobileServicePlatform.Business;
|
||
using HZQR.Common;
|
||
|
||
namespace SuperMap.RealEstate.HighWay.Module.ProblemDeal
|
||
{
|
||
/// <summary>
|
||
/// T_ENDACCOUNT_结账表 的WebUserControl
|
||
/// <summary>
|
||
public partial class ENDACCOUNT : UserControl<Business.ENDACCOUNT>
|
||
{
|
||
protected string _CigaretteTrade = ConfigurationManager.AppSettings["CigaretteTrade"];
|
||
protected string _UmiformCommodity = ConfigurationManager.AppSettings["UmiformCommodity"];
|
||
protected string _PROVINCE_CODE = ConfigurationManager.AppSettings["PROVINCE_CODE"];
|
||
|
||
#region 方法 -> 页面加载
|
||
protected void Page_Load(object sender, EventArgs e)
|
||
{
|
||
if (IsPostBack) return;
|
||
|
||
string _SALE_SELLCOUNT = "0", _SALE_SUPPLEMENT = "0", _CIGARETTE_SELLCOUNT = "0", _CIGARETTE_SUPPLEMENT = "0";
|
||
//获取香烟类别编码
|
||
DataTable CigaretteTypeTable = new HWSB.COMMODITYTYPE(Transaction).ExecuteDataTable(
|
||
"SELECT WM_CONCAT(COMMODITYTYPE_CODE) AS COMMODITYTYPE_CODE FROM T_COMMODITYTYPE WHERE PROVINCE_ID = " +
|
||
PROVINCE_CODE.Text + " AND CIGARETTE_TYPE = 1");
|
||
if (CigaretteTypeTable.Rows.Count > 0 && CigaretteTypeTable.Rows[0][0].ToString() != "")
|
||
{
|
||
CigaretteType.Value = CigaretteTypeTable.Rows[0][0].ToString();
|
||
//隐藏香烟列表
|
||
HWSB.SERVERPARTSHOP _SERVERPARTSHOP = new HWSB.SERVERPARTSHOP(Transaction);
|
||
_SERVERPARTSHOP.AddSearchParameter("SERVERPART_ID", SERVERPART_ID.Text);
|
||
_SERVERPARTSHOP.AddSearchParameter("SHOPCODE", SHOPCODE.Text);
|
||
if (_SERVERPARTSHOP.Search())
|
||
{
|
||
if (string.IsNullOrWhiteSpace(_CigaretteTrade) || !_CigaretteTrade.Contains(_SERVERPARTSHOP.SHOPTRADE))
|
||
{
|
||
fieldset_Cigarette.Visible = false;
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
fieldset_Cigarette.Visible = false;
|
||
}
|
||
//初始化并加载列表
|
||
//GridViewEx1.SelectingWithInit<Business.SUPPLEMENT>(ObjectDataSource1, GridPageEx1);
|
||
if (TREATMENT_MARK.SelectedValue == "0" && string.IsNullOrWhiteSpace(DIFFERENCE_REASON.Text))
|
||
{
|
||
//CASHPAY.Enabled = false;
|
||
//DIFFERENCE_REASON.Enabled = false;
|
||
DIFFERENCE_REASON.Text = "已确认";
|
||
}
|
||
if (string.IsNullOrEmpty(CurrObject.CHECK_INFO) && !string.IsNullOrEmpty(CurrObject.APPROVED_INFO))
|
||
{
|
||
APPROVED_INFO.Visible = true;
|
||
}
|
||
|
||
DataTable dt = CurrObject.ExecuteDataTable(
|
||
"SELECT * FROM HIGHWAY_SELLDATA.V_SUPPLEMENT WHERE TICKETCODE = '" + Request["ID"] + "'");
|
||
//COMMODITY_NAME = '补充销售流水' AND
|
||
if (dt.Rows.Count > 0)
|
||
{
|
||
if (string.IsNullOrEmpty(MOBILE_CORRECT.Text.Trim()))
|
||
{
|
||
MOBILE_CORRECT.Text = dt.Rows[0]["MOBILE_CORRECT"].ToString();
|
||
}
|
||
if (string.IsNullOrEmpty(SALE_CORRECT.Text.Trim()))
|
||
{
|
||
SALE_CORRECT.Text = dt.Rows[0]["DIFFERENT_CORRECT"].ToString();
|
||
}
|
||
if (string.IsNullOrEmpty(CASH_CORRECT.Text.Trim()))
|
||
{
|
||
CASH_CORRECT.Text = dt.Rows[0]["CASH_CORRECT"].ToString();
|
||
}
|
||
_SALE_SELLCOUNT = dt.Rows[0]["SALE_SELLCOUNT"].ToString();
|
||
_SALE_SUPPLEMENT = dt.Rows[0]["SALE_SUPPLEMENT"].ToString();
|
||
_CIGARETTE_SELLCOUNT = dt.Rows[0]["CIGARETTE_SELLCOUNT"].ToString();
|
||
_CIGARETTE_SUPPLEMENT = dt.Rows[0]["CIGARETTE_SUPPLEMENT"].ToString();
|
||
}
|
||
else
|
||
{
|
||
if (string.IsNullOrEmpty(MOBILE_CORRECT.Text.Trim()))
|
||
{
|
||
MOBILE_CORRECT.Text = "0.00";
|
||
}
|
||
if (string.IsNullOrEmpty(SALE_CORRECT.Text.Trim()))
|
||
{
|
||
SALE_CORRECT.Text = "0.00";
|
||
}
|
||
if (string.IsNullOrEmpty(CASH_CORRECT.Text.Trim()))
|
||
{
|
||
CASH_CORRECT.Text = "0.00";
|
||
}
|
||
}
|
||
CORRECT_AMOUNT.Text = (string.IsNullOrEmpty(CORRECT_AMOUNT.Text.Trim()) ? (decimal.Parse(MOBILE_CORRECT.Text) +
|
||
decimal.Parse(CASH_CORRECT.Text)).ToString() : CORRECT_AMOUNT.Text) + "/" + MOBILE_CORRECT.Text;
|
||
SELLCOUNT.Text = _SALE_SELLCOUNT;
|
||
FACTAMOUNT.Text = _SALE_SUPPLEMENT;
|
||
try
|
||
{
|
||
AVERAGEPRICE.Text = TICKETCOUNT.Text == "0" || TICKETCOUNT.Text == "" ? "0" :
|
||
(double.Parse(TOTALSELLAMOUNT.Text) / double.Parse(TICKETCOUNT.Text)).ToString("0.00");
|
||
}
|
||
catch { }
|
||
try
|
||
{
|
||
MOBILEPAYMENT.Text = (CurrObject.OTHERPAY.Value + CurrObject.TICKETBILL.Value).ToString("0.00");
|
||
|
||
//如果是扫码或者接口上传的数据,移动支付金额默认相同
|
||
if (!string.IsNullOrWhiteSpace(CurrObject.WORKER_NAME) &&
|
||
(CurrObject.WORKER_NAME.Contains("【接口】") || CurrObject.WORKER_NAME.Contains("【扫码】")))
|
||
{
|
||
FACT_AMOUNT.Text = MOBILEPAYMENT.Text;
|
||
SearchBtn_Sale.Enabled = false;
|
||
SearchBtn_Cigarette.Enabled = false;
|
||
SearchBtn_Mobile.Enabled = false;
|
||
SearchBtnPromotion.Enabled = false;
|
||
SearchOnlineBill.Enabled = false;
|
||
GetSaleData.Enabled = false;
|
||
GetCigaretteData.Enabled = false;
|
||
//GetMobileData.Enabled = false;
|
||
BtnGetPromotion.Enabled = false;
|
||
GetOnlineBill.Enabled = false;
|
||
}
|
||
}
|
||
catch { }
|
||
|
||
if (!string.IsNullOrEmpty(Request["CASHPAY"]))
|
||
{
|
||
CASHPAY.Text = Request["CASHPAY"].ToDecrypt();
|
||
}
|
||
|
||
#region 合计信息
|
||
if (CurrObject != null && CurrObject.PropertyObject != null && CurrObject.ENDACCOUNT_ID != null)
|
||
{
|
||
bool Flag = CurrObject.ENDACCOUNT_STARTDATE > DateTime.Now.Date.AddDays(-9) ? true : false;
|
||
SearchBtnPromotion.OnClientClick = Page.GetOpenPopDialogClientScript(
|
||
"/MemberShip/Modules/101_Search/Consumption/ConsumptionList.aspx?SERVERPART_ID=" +
|
||
CurrObject.SERVERPART_ID.ToEncrypt() + "&SHOPCODE=" + CurrObject.SHOPCODE.ToEncrypt() +
|
||
"&MACHINECODE=" + CurrObject.MACHINECODE.ToEncrypt() + "&StatisticsEndDay=" +
|
||
CurrObject.ENDACCOUNT_DATE.ToEncrypt() + "&StatisticsStartDay=" +
|
||
CurrObject.ENDACCOUNT_STARTDATE.ToEncrypt(), "ConsumptionList", 1000, 600);
|
||
|
||
//绑定稽核列表
|
||
GridViewEx1.SelectingWithInit<Business.CHECKACCOUNT>(ObjectDataSource1, GridPageEx1,
|
||
DictionaryHelper.GetDictionary(Transaction, "TREATMENT_MARK"));
|
||
|
||
if (GridViewEx1.Rows.Count > 0 && string.IsNullOrWhiteSpace(CHECK_NAME.Text))
|
||
{
|
||
int _XCCHECK = 0, _QYCHECK = 0, _GSCHECK = 0;
|
||
foreach (Business.CHECKACCOUNT _CHECKACCOUNT in new Business.CHECKACCOUNT(this.Transaction).FillCollection(
|
||
"WHERE SERVERPART_ID = " + SERVERPART_ID.Text + " AND SHOPCODE = '" + SHOPCODE.Text + "' AND MACHINECODE = '" +
|
||
MACHINECODE.Text + "' AND CHECK_ENDDATE BETWEEN TO_DATE('" + ENDACCOUNT_STARTDATE.Text +
|
||
"','YYYY/MM/DD HH24:MI:SS') AND TO_DATE('" + ENDACCOUNT_DATE.Text + "','YYYY/MM/DD HH24:MI:SS')"))
|
||
{
|
||
if (string.IsNullOrWhiteSpace(CHECK_NAME.Text) || !("," + CHECK_NAME.Text + ",").Contains(
|
||
"," + _CHECKACCOUNT.WORKER_NAME + ","))
|
||
{
|
||
CHECK_NAME.Text += (string.IsNullOrEmpty(CHECK_NAME.Text.Trim()) ? "" : ",") + _CHECKACCOUNT.WORKER_NAME;
|
||
}
|
||
switch (_CHECKACCOUNT.CHECK_TYPE)
|
||
{
|
||
case "智能稽查":
|
||
case "现场稽查":
|
||
_XCCHECK++;
|
||
break;
|
||
case "区域稽查":
|
||
_QYCHECK++;
|
||
break;
|
||
case "公司稽查":
|
||
_GSCHECK++;
|
||
break;
|
||
}
|
||
}
|
||
XCCHECK.Text = _XCCHECK.ToString();
|
||
QYCHECK.Text = _QYCHECK.ToString();
|
||
GSCHECK.Text = _GSCHECK.ToString();
|
||
CHECK_COUNT.Text = (_XCCHECK + _QYCHECK + _GSCHECK).ToString();
|
||
}
|
||
else
|
||
{
|
||
Fieldset_Check.Visible = false;
|
||
}
|
||
|
||
if (OnlineBill.Visible)
|
||
{
|
||
SearchOnlineBill.OnClientClick = Page.GetOpenPopDialogClientScript("SearchList/ConsumptionList.aspx?SERVERPART_CODE=" +
|
||
CurrObject.SERVERPARTCODE.ToEncrypt() + "&SHOPCODE=" + CurrObject.SHOPCODE.ToEncrypt() +
|
||
"&MACHINECODE=" + CurrObject.MACHINECODE.ToEncrypt() + "&STARTDATE=" + CurrObject.ENDACCOUNT_STARTDATE.ToEncrypt() +
|
||
"&ENDDATE=" + CurrObject.ENDACCOUNT_DATE.ToEncrypt(), "ConsumptionList", 900, 600);
|
||
}
|
||
|
||
if (string.IsNullOrEmpty(CurrObject.CASHIER_NAME))
|
||
{
|
||
DataTable _DataTable = CurrObject.ExecuteDataTable(@"SELECT WM_CONCAT(DISTINCT CASHIER_NAME)
|
||
FROM HIGHWAY_SELLDATA.T_PERSONSELL WHERE SERVERPART_ID = " + SERVERPART_ID.Text +
|
||
" AND SHOPCODE = '" + SHOPCODE.Text + "' AND SELL_STARTDATE >= TO_DATE('" +
|
||
ENDACCOUNT_STARTDATE.Text + "','YYYY/MM/DD HH24:MI:SS') AND MACHINECODE = '" + MACHINECODE.Text +
|
||
"' AND SELL_ENDDATE <= TO_DATE('" + ENDACCOUNT_DATE.Text + "','YYYY/MM/DD HH24:MI:SS')");
|
||
|
||
if (_DataTable.Rows.Count > 0)
|
||
{
|
||
CASHIER_NAME.Text = _DataTable.Rows[0][0].ToString();
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
SearchOnlineBill.Enabled = false;
|
||
}
|
||
#endregion
|
||
|
||
#region 查询电子优惠券消费订单信息
|
||
Transaction transaction = new Transaction();
|
||
MSPB.CONSUMPTIONRECORD _CONSUMPTIONRECORD = new MSPB.CONSUMPTIONRECORD(transaction);
|
||
string SQLString = string.Format(@"SELECT COUNT(1),SUM(COUPON_AMOUNT)
|
||
FROM MOBILESERVICE_PLATFORM.T_CONSUMPTIONRECORD
|
||
WHERE SERVERPART_CODE = '{0}' AND SHOPCODE = '{1}' AND MACHINECODE = '{2}' AND
|
||
CONSUMPTIONRECORD_DATE >= TO_DATE('{3}','YYYY/MM/DD HH24:MI:SS') AND
|
||
CONSUMPTIONRECORD_DATE <= TO_DATE('{4}','YYYY/MM/DD HH24:MI:SS') AND
|
||
CONSUMPTIONRECORD_STATE >= 1010 AND CONSUMPTIONRECORD_STATE < 9000 AND
|
||
COUPON_SEND_ID IS NOT NULL",
|
||
SERVERPARTCODE.Text, SHOPCODE.Text, MACHINECODE.Text, ENDACCOUNT_STARTDATE.Text, ENDACCOUNT_DATE.Text);
|
||
DataTable dtCoupon = _CONSUMPTIONRECORD.ExecuteDataTable(SQLString);
|
||
if (dtCoupon.Rows.Count > 0 && dtCoupon.Rows[0][0].ToString() != "0")
|
||
{
|
||
CouponCount.Text = dtCoupon.Rows[0][0].ToString();
|
||
CouponAmount.Text = dtCoupon.Rows[0][1].ToString();
|
||
|
||
SearchCoupon.OnClientClick = Page.GetOpenPopDialogClientScript(
|
||
"SearchList/ECouponList.aspx?SERVERPART_CODE=" + SERVERPARTCODE.Text.ToEncrypt() +
|
||
"&SHOPCODE=" + SHOPCODE.Text.ToEncrypt() + "&MACHINECODE=" + MACHINECODE.Text.ToEncrypt() +
|
||
"&STARTDATE=" + ENDACCOUNT_STARTDATE.Text.ToEncrypt() +
|
||
"&ENDDATE=" + ENDACCOUNT_DATE.Text.ToEncrypt(), "ECouponList", 1150, 600);
|
||
}
|
||
else
|
||
{
|
||
Coupon.Visible = false;
|
||
}
|
||
#endregion
|
||
|
||
SearchBtn.OnClientClick = Page.GetOpenPopDialogClientScript(
|
||
"SearchList/SellDataList.aspx?ENDACCOUNT_ID=" + Request["ID"], "SellDataList", 900, 600);
|
||
|
||
SearchBtn_Mobile.OnClientClick = Page.GetOpenPopDialogClientScript(
|
||
"SearchList/MobilePayList.aspx?ENDACCOUNT_ID=" + Request["ID"] + "&MOBILEPAYMENT=" +
|
||
MOBILEPAYMENT.Text.ToEncrypt() + "&FACT_AMOUNT=" + FACT_AMOUNT.Text.ToEncrypt(), "MobilePayList", 1150, 600);
|
||
|
||
SearchBtn_Sale.OnClientClick = Page.GetOpenPopDialogClientScript(
|
||
"SearchList/CommoditySaleList.aspx?ENDACCOUNT_ID=" + Request["ID"], "CommoditySaleList", 900, 600);
|
||
|
||
SearchBtn_Cigarette.OnClientClick = Page.GetOpenPopDialogClientScript(
|
||
"SearchList/CigaretteSaleList.aspx?ENDACCOUNT_ID=" + Request["ID"], "CigaretteSaleList", 900, 600);
|
||
|
||
BtnHelp.OnClientClick = Page.GetOpenPopDialogClientScript(
|
||
"/HighWay/Modules/Statistics/EndAccount/Help.aspx", "Help", 700, 150);
|
||
|
||
Page.SetControlClientAction(GetSaleData, false);
|
||
Page.SetControlClientAction(GetCigaretteData, false);
|
||
//Page.SetControlClientAction(GetMobileData, false);
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 在此加入界面的数据初始化(Page_Load之前),如DropDownList的数据源绑定等
|
||
public override void InitializeWebControl()
|
||
{
|
||
//处理标记
|
||
TREATMENT_MARK.Clear();
|
||
DictionaryHelper.BindingDropDownList("TREATMENT_MARK", TREATMENT_MARK.Items, this.Transaction);
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 载入数据
|
||
public override bool LoadData()
|
||
{
|
||
bool flag = false;
|
||
//如果是工作流组件请自行修改载入的逻辑,以下是功能模块的默认代码
|
||
if (!String.IsNullOrEmpty(Request["ID"]))
|
||
{
|
||
CurrObject.ENDACCOUNT_ID_Encrypt = Request["ID"];
|
||
flag = this.Select();
|
||
if (CurrObject.DESCRIPTION_STAFF == null || CurrObject.DESCRIPTION_DATE == null)
|
||
{
|
||
DESCRIPTION_STAFF.Text = this.Page.PassportInfo.Name;
|
||
DESCRIPTION_DATE.Text = DateTime.Now.ToString();
|
||
}
|
||
}
|
||
//默认返回值,工作流组件返回True,功能模块返回False。
|
||
return (WorkFlowPage != null);
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 保存事件
|
||
//OnDataAction_XXXXX 有一个系列可用,在此加入界面的逻辑处理
|
||
//e.CancelDataAction 来处理是否取消该动作;
|
||
//失败的原因可以用Page.Alert()传递到页面
|
||
public override void OnDataAction_BeforeSave(DataActionEventArgs<Business.ENDACCOUNT> e)
|
||
{
|
||
bool ReviewFlag = false;
|
||
//稽核异常未做说明,则不允许校验通过
|
||
if (GridViewEx1.Rows.Count > 0)
|
||
{
|
||
foreach (GridViewRow _GridViewRow in GridViewEx1.Rows)
|
||
{
|
||
if (_GridViewRow.RowType == DataControlRowType.DataRow)
|
||
{
|
||
string _CHECKACCOUNT_DESC = GridViewEx1.DataKeys[_GridViewRow.RowIndex]["CHECKACCOUNT_DESC"].ToString();
|
||
string _CHECK_STATE = GridViewEx1.DataKeys[_GridViewRow.RowIndex]["CHECK_STATE"].ToString();
|
||
|
||
if (_GridViewRow.Cells[5].Text.Trim('%').TryParseToDecimal() * 10 > 2)
|
||
{
|
||
if (string.IsNullOrWhiteSpace(_CHECKACCOUNT_DESC))
|
||
{
|
||
throw new Exception("请填写稽核异常反馈后,保存结账信息!");
|
||
}
|
||
if (_CHECK_STATE.TryParseToDecimal() == 0)
|
||
{
|
||
ReviewFlag = true;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
//获取门店配置信息,数据校验是否需要限制保存事件
|
||
DataTable RTLIMITTable = new HWSB.RTBUSINESSLIMIT(Transaction).FillDataTable(
|
||
"WHERE SERVERPART_ID = " + e.CurrObject.SERVERPART_ID + " AND SHOPCODE = '" + e.CurrObject.SHOPCODE + "'");
|
||
//判断门店进行校验是否需要完成近10日内的账单校验
|
||
if (RTLIMITTable.Select("DATA_TYPE = 2010 AND DATA_VALUE = 2000").Length == 0 && (_UmiformCommodity.Split('|').Length < 5 ||
|
||
(_UmiformCommodity.Split('|').Length > 4 && _UmiformCommodity.Split('|')[4] == "1")))
|
||
{
|
||
string SQLString = string.Format(@"SELECT SHOPNAME,NVL(STATISTICS_DATE,ENDACCOUNT_DATE) AS ENDACCOUNT_DATE,
|
||
TO_CHAR(NVL(STATISTICS_DATE,ENDACCOUNT_DATE),'YYYY/MM/DD') AS STATISTICSDATE
|
||
FROM HIGHWAY_SELLDATA.V_ENDACCOUNT_TEMP
|
||
WHERE {0} AND SERVERPART_ID = {1} AND NVL(STATISTICS_TYPE,'0') NOT LIKE '%1020%' AND
|
||
NVL(STATISTICS_DATE,ENDACCOUNT_DATE) < TRUNC(TO_DATE('{2}','YYYY/MM/DD HH24:MI:SS'))
|
||
ORDER BY ENDACCOUNT_DATE", "CHECK_INFO IS NULL", e.CurrObject.SERVERPART_ID,
|
||
(e.CurrObject.STATISTICS_DATE == null ? e.CurrObject.ENDACCOUNT_DATE : e.CurrObject.STATISTICS_DATE));
|
||
DataTable _DataTable = e.CurrObject.ExecuteDataTable(SQLString);
|
||
if (_DataTable.Rows.Count > 0)
|
||
{
|
||
throw new Exception(_DataTable.Rows[0]["STATISTICSDATE"].ToString().Split(' ')[0] +
|
||
_DataTable.Rows[0]["SHOPNAME"].ToString() + "等有" + _DataTable.Select("STATISTICSDATE = '" +
|
||
_DataTable.Rows[0]["STATISTICSDATE"].ToString().Split(' ')[0] + "'").Length +
|
||
"条未完成数据校验,请先完成数据校验后进行本次账期的校验!");
|
||
}
|
||
}
|
||
e.CurrObject.CORRECT_AMOUNT = double.Parse(CORRECT_AMOUNT.Text.Split('/')[0]).Round(2);
|
||
if ((e.CurrObject.TOTALSELLAMOUNT + e.CurrObject.CORRECT_AMOUNT).Value.Round(2) != e.CurrObject.CASHPAY.Value.Round(2))
|
||
{
|
||
throw new Exception("日结营收信息不符,请先进行流水冲正处理...");
|
||
}
|
||
|
||
if (new HWSB.SERVERPARTSHOP(Transaction).GetCount("WHERE SERVERPART_ID = " + e.CurrObject.SERVERPART_ID +
|
||
" AND SHOPCODE = '" + e.CurrObject.SHOPCODE + "' AND STATISTICS_TYPE LIKE '%1020%'") == 0)
|
||
{
|
||
if (RTLIMITTable.Select("DATA_TYPE = 2012 AND DATA_VALUE = 2000").Length == 0 &&
|
||
((decimal.Parse(FACT_AMOUNT.Text) + decimal.Parse(SALE_CORRECT.Text) !=
|
||
decimal.Parse(MOBILEPAYMENT.Text) + decimal.Parse(MOBILE_CORRECT.Text)) &&
|
||
(decimal.Parse(FACT_AMOUNT.Text) + decimal.Parse(SALE_CORRECT.Text) + OnlineAmount.Text.TryParseToDecimal() !=
|
||
decimal.Parse(MOBILEPAYMENT.Text) + decimal.Parse(MOBILE_CORRECT.Text))))
|
||
{
|
||
throw new Exception("移动支付金额与系统不一致,请确认一致后进行保存!");
|
||
}
|
||
else if (e.CurrObject.FACT_AMOUNT == 0 && decimal.Parse(MOBILEPAYMENT.Text) != 0 &&
|
||
decimal.Parse(SALE_CORRECT.Text) == 0 && decimal.Parse(MOBILE_CORRECT.Text) == 0 &&
|
||
RTLIMITTable.Select("DATA_TYPE = 2012 AND DATA_VALUE = 2000").Length > 0)
|
||
{
|
||
e.CurrObject.FACT_AMOUNT = double.Parse(MOBILEPAYMENT.Text).Round(2);
|
||
FACT_AMOUNT.Text = e.CurrObject.FACT_AMOUNT.Value.ToString("0.00");
|
||
}
|
||
//单品金额≠销售金额,单品金额≠实收金额,单品金额≠销售金额+单品冲正,则校验不能通过
|
||
//if (RTLIMITTable.Select("DATA_TYPE = 2011 AND DATA_VALUE = 2000").Length == 0 &&
|
||
// FACTAMOUNT_SALE.Text.TryParseToDecimal() != TOTALSELLAMOUNT.Text.TryParseToDecimal() &&
|
||
// FACTAMOUNT_SALE.Text.TryParseToDecimal() != CASHPAY.Text.TryParseToDecimal() &&
|
||
// FACTAMOUNT_SALE.Text.TryParseToDecimal() + FACTAMOUNT.Text.TryParseToDecimal() != TOTALSELLAMOUNT.Text.TryParseToDecimal() &&
|
||
// TOTALSELLAMOUNT.Text.TryParseToDecimal() + FACTAMOUNT.Text.TryParseToDecimal() != FACTAMOUNT_SALE.Text.TryParseToDecimal())
|
||
//{
|
||
// throw new Exception("单品金额与销售金额不一致,请核对后进行保存!");
|
||
//}
|
||
}
|
||
if (e.CurrObject.DESCRIPTION_STAFF == null || e.CurrObject.DESCRIPTION_STAFF == "")
|
||
{
|
||
e.CurrObject.DESCRIPTION_STAFF = Page.PassportInfo.Name;
|
||
}
|
||
if (e.CurrObject.DESCRIPTION_DATE == null)
|
||
{
|
||
e.CurrObject.DESCRIPTION_DATE = DateTime.Now;
|
||
}
|
||
e.CurrObject.CHECK_INFO = "Checked";
|
||
//2021.8 商业集团要求取消财务审核环节,账单状态变为已审结
|
||
e.CurrObject.TREATMENT_MARK = 2;
|
||
//若对客营收大于0,且长短按照小金额计算或是实收金额小于对客营收或是金额误差率大于3‰或是异常稽核数据未按常规处理
|
||
if (e.CurrObject.TOTALSELLAMOUNT != 0 && (e.CurrObject.TOTALSELLAMOUNT > e.CurrObject.CASHPAY ||
|
||
(Math.Abs(e.CurrObject.DIFFERENT_PRICE.Value / e.CurrObject.TOTALSELLAMOUNT.Value) > 0.003) ||
|
||
ReviewFlag || e.CurrObject.DIFFERENT_PRICE < 0 || (e.CurrObject.DIFFERENT_PRICE > 0 &&
|
||
e.CurrObject.TOTALSELLAMOUNT + e.CurrObject.DIFFERENT_PRICE > e.CurrObject.CASHPAY)))
|
||
{
|
||
e.CurrObject.REVIEW_STATE = 1;
|
||
ISPush.Text = "1";
|
||
}
|
||
|
||
base.OnDataAction_BeforeSave(e);
|
||
}
|
||
|
||
public override void OnDataAction_AfterSave(DataActionEventArgs<Business.ENDACCOUNT> e)
|
||
{
|
||
base.OnDataAction_AfterSave(e);
|
||
Business.ENDACCOUNT_TEMP _ENDACCOUNT_TEMP = new Business.ENDACCOUNT_TEMP(Transaction);
|
||
if (((e.CurrObject.STATISTICS_DATE != null && e.CurrObject.STATISTICS_DATE > DateTime.Now.Date.AddDays(-10)) ||
|
||
e.CurrObject.ENDACCOUNT_DATE > DateTime.Now.Date.AddDays(-10)) && _ENDACCOUNT_TEMP.GetCount(
|
||
"WHERE ENDACCOUNT_ID = " + e.CurrObject.ENDACCOUNT_ID) > 0)
|
||
{
|
||
_ENDACCOUNT_TEMP.CopyFrom(CurrObject);
|
||
_ENDACCOUNT_TEMP.Update();
|
||
}
|
||
|
||
e.CurrObject.UpdateRevenues(e.CurrObject.ENDACCOUNT_DATE, e.CurrObject.SERVERPART_ID, e.CurrObject.SHOPCODE);
|
||
|
||
//调用js同步结账数据到云端
|
||
Page.ExecClientScript("SyncToCloud()");
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 获取香烟数据
|
||
protected void GetCigaretteData_Click(object sender, EventArgs e)
|
||
{
|
||
Business.ENDACCOUNT _ENDACCOUNT = new Business.ENDACCOUNT(this.Transaction);
|
||
_ENDACCOUNT.ENDACCOUNT_ID = Request["ID"].ToDecryptInt32();
|
||
if (_ENDACCOUNT.Select())
|
||
{
|
||
bool Flag = _ENDACCOUNT.ENDACCOUNT_STARTDATE > DateTime.Now.Date.AddDays(-10) ? true : false;
|
||
string NoWhereSql = string.Empty;
|
||
if (_ENDACCOUNT.ENDACCOUNT_STARTDATE != null)
|
||
{
|
||
NoWhereSql += " AND SELLDATA_DATE > TO_DATE('" + _ENDACCOUNT.ENDACCOUNT_STARTDATE +
|
||
"','YYYY-MM-DD HH24:MI:SS')";
|
||
}
|
||
if (_ENDACCOUNT.ENDACCOUNT_DATE != null)
|
||
{
|
||
NoWhereSql += " AND SELLDATA_DATE <= TO_DATE('" + _ENDACCOUNT.ENDACCOUNT_DATE +
|
||
"','YYYY-MM-DD HH24:MI:SS')";
|
||
}
|
||
//香烟合计
|
||
DataTable _DataTable = _ENDACCOUNT.ExecuteDataTable(
|
||
"SELECT * FROM HIGHWAY_SELLDATA.V_SUPPLEMENT WHERE TICKETCODE = '" + Request["ID"] + "'");
|
||
DataTable dt = new DataTable();
|
||
|
||
#region 香烟报表数据
|
||
string _COMMODITY_TYPENAME = "", _COMMODITYTYPE_ID = "";
|
||
foreach (Storage.Business.COMMODITYTYPE _COMMODITYTYPE in new Storage.Business.COMMODITYTYPE(CurrObject).FillCollection(
|
||
"WHERE COMMODITYTYPE_CODE IN ('" + CigaretteType.Value.Replace(",", "','") + "') AND PROVINCE_ID = " + PROVINCE_CODE.Text))
|
||
{
|
||
_COMMODITY_TYPENAME += (_COMMODITY_TYPENAME == "" ? "" : ",") + "'" + _COMMODITYTYPE.COMMODITYTYPE_NAME + "'";
|
||
_COMMODITYTYPE_ID += (_COMMODITYTYPE_ID == "" ? "" : ",") + _COMMODITYTYPE.COMMODITYTYPE_ID;
|
||
}
|
||
if (!string.IsNullOrEmpty(_COMMODITY_TYPENAME))
|
||
{
|
||
dt = CurrObject.ExecuteDataTable(string.Format(@"SELECT
|
||
NVL(SUM(TICKETCOUNT),0),NVL(SUM(TOTALCOUNT),0),NVL(SUM(TOTALSELLAMOUNT),0)
|
||
FROM HIGHWAY_EXCHANGE.{0} A
|
||
WHERE
|
||
A.SERVERPARTCODE = '{1}' AND A.SHOPCODE = '{2}' AND
|
||
A.MACHINECODE = '{3}' AND A.COMMODITYTYPE_ID IN ({4}) AND
|
||
A.ENDDATE <= TO_DATE('{5}','YYYY-MM-DD HH24:MI:SS') AND
|
||
A.STARTDATE >= TO_DATE('{6}','YYYY-MM-DD HH24:MI:SS')",
|
||
"T_COMMODITYSALE_" + SERVERPARTCODE.Text, SERVERPARTCODE.Text, SHOPCODE.Text, MACHINECODE.Text,
|
||
_COMMODITYTYPE_ID, ENDACCOUNT_DATE.Text, ENDACCOUNT_STARTDATE.Text));
|
||
}
|
||
#endregion
|
||
|
||
//if (dt.Rows.Count > 0)
|
||
//{
|
||
// TICKETCODE_CIGARETTE.Text = dt.Rows[0][0].ToString();
|
||
// SELLCOUNT_CIGARETTE.Text = (decimal.Parse(dt.Rows[0][1].ToString()) + (_DataTable.Rows.Count > 0 ?
|
||
// decimal.Parse(_DataTable.Rows[0]["CIGARETTE_SELLCOUNT"].ToString()) : 0)).ToString();
|
||
// FACTAMOUNT_CIGARETTE.Text = (decimal.Parse(dt.Rows[0][2].ToString()) + (_DataTable.Rows.Count > 0 ?
|
||
// decimal.Parse(_DataTable.Rows[0]["CIGARETTE_SUPPLEMENT"].ToString()) : 0)).ToString();
|
||
// CIGARETTEAMOUNT.Text = FACTAMOUNT_CIGARETTE.Text;
|
||
//}
|
||
//Page.Alert("获取成功!香烟金额为" + FACTAMOUNT_CIGARETTE.Text);
|
||
decimal _SELLCOUNT_CIGARETTE = 0, _FACTAMOUNT_CIGARETTE = 0;
|
||
if (dt.Rows.Count > 0)
|
||
{
|
||
TICKETCODE_CIGARETTE.Text = dt.Rows[0][0].ToString();
|
||
_SELLCOUNT_CIGARETTE = decimal.Parse(dt.Rows[0][1].ToString());
|
||
_FACTAMOUNT_CIGARETTE = decimal.Parse(dt.Rows[0][2].ToString());
|
||
}
|
||
_FACTAMOUNT_CIGARETTE = _FACTAMOUNT_CIGARETTE + (_DataTable.Rows.Count > 0 ?
|
||
decimal.Parse(_DataTable.Rows[0]["CIGARETTE_SUPPLEMENT"].ToString()) : 0);
|
||
SELLCOUNT_CIGARETTE.Text = (_SELLCOUNT_CIGARETTE + (_DataTable.Rows.Count > 0 ?
|
||
decimal.Parse(_DataTable.Rows[0]["CIGARETTE_SELLCOUNT"].ToString()) : 0)).ToString();
|
||
FACTAMOUNT_CIGARETTE.Text = _FACTAMOUNT_CIGARETTE.ToString();
|
||
CIGARETTEAMOUNT.Text = FACTAMOUNT_CIGARETTE.Text;
|
||
Page.Alert("获取成功!香烟金额为" + FACTAMOUNT_CIGARETTE.Text);
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 获取单品数据
|
||
protected void GetSaleData_Click(object sender, EventArgs e)
|
||
{
|
||
Business.ENDACCOUNT _ENDACCOUNT = new Business.ENDACCOUNT(this.Transaction);
|
||
_ENDACCOUNT.ENDACCOUNT_ID_Encrypt = Request["ID"];
|
||
if (_ENDACCOUNT.Select())
|
||
{
|
||
bool Flag = _ENDACCOUNT.ENDACCOUNT_STARTDATE > DateTime.Now.Date.AddDays(-10) ? true : false;
|
||
string NoWhereSql = string.Empty;
|
||
if (_ENDACCOUNT.ENDACCOUNT_STARTDATE != null)
|
||
{
|
||
NoWhereSql += " AND SELLDATA_DATE > TO_DATE('" + _ENDACCOUNT.ENDACCOUNT_STARTDATE +
|
||
"','YYYY-MM-DD HH24:MI:SS')";
|
||
}
|
||
if (_ENDACCOUNT.ENDACCOUNT_DATE != null)
|
||
{
|
||
NoWhereSql += " AND SELLDATA_DATE <= TO_DATE('" + _ENDACCOUNT.ENDACCOUNT_DATE +
|
||
"','YYYY-MM-DD HH24:MI:SS')";
|
||
}
|
||
DataTable _DataTable = _ENDACCOUNT.ExecuteDataTable(
|
||
"SELECT * FROM HIGHWAY_SELLDATA.V_SUPPLEMENT WHERE TICKETCODE = '" + Request["ID"] + "'");
|
||
DataTable dt = new DataTable();
|
||
try
|
||
{
|
||
dt = CurrObject.ExecuteDataTable(string.Format(@"SELECT
|
||
NVL(SUM(TICKETCOUNT),0),NVL(SUM(TOTALCOUNT),0),NVL(SUM(TOTALSELLAMOUNT),0)
|
||
FROM (SELECT A.TICKETCOUNT,A.TOTALCOUNT,A.TOTALSELLAMOUNT
|
||
FROM HIGHWAY_EXCHANGE.{0} A
|
||
WHERE
|
||
A.SERVERPARTCODE = '{1}' AND A.SHOPCODE = '{2}' AND
|
||
A.MACHINECODE = '{3}' AND A.MACHINECODE IS NOT NULL AND
|
||
A.ENDDATE <= TO_DATE('{4}','YYYY-MM-DD HH24:MI:SS') AND
|
||
A.STARTDATE >= TO_DATE('{5}','YYYY-MM-DD HH24:MI:SS')
|
||
UNION ALL
|
||
SELECT A.TICKETCOUNT,A.TOTALCOUNT,A.TOTALSELLAMOUNT
|
||
FROM
|
||
HIGHWAY_EXCHANGE.{0} A,
|
||
HIGHWAY_SELLDATA.T_PERSONSELL B
|
||
WHERE
|
||
A.ENDDATE = B.SELL_ENDDATE AND A.STARTDATE = B.SELL_STARTDATE AND
|
||
A.SERVERPARTCODE = B.SERVERPARTCODE AND A.SHOPCODE = B.SHOPCODE AND
|
||
A.SERVERPARTCODE = '{1}' AND A.SHOPCODE = '{2}' AND
|
||
B.MACHINECODE = '{3}' AND A.MACHINECODE IS NULL AND
|
||
B.SELL_ENDDATE <= TO_DATE('{4}','YYYY-MM-DD HH24:MI:SS') AND
|
||
B.SELL_STARTDATE >= TO_DATE('{5}','YYYY-MM-DD HH24:MI:SS'))",
|
||
"T_COMMODITYSALE_" + SERVERPARTCODE.Text, SERVERPARTCODE.Text, SHOPCODE.Text,
|
||
MACHINECODE.Text, ENDACCOUNT_DATE.Text, ENDACCOUNT_STARTDATE.Text));
|
||
}
|
||
catch
|
||
{
|
||
dt = CurrObject.ExecuteDataTable(string.Format(@"SELECT
|
||
NVL(SUM(A.TICKETCOUNT),0),NVL(SUM(A.TOTALCOUNT),0),NVL(SUM(A.TOTALSELLAMOUNT),0)
|
||
FROM
|
||
HIGHWAY_EXCHANGE.{0} A,
|
||
HIGHWAY_SELLDATA.T_PERSONSELL B
|
||
WHERE
|
||
A.ENDDATE = B.SELL_ENDDATE AND A.STARTDATE = B.SELL_STARTDATE AND
|
||
A.SERVERPARTCODE = B.SERVERPARTCODE AND A.SHOPCODE = B.SHOPCODE AND
|
||
B.MACHINECODE = '" + MACHINECODE.Text + "' AND A.ENDDATE <= TO_DATE('" +
|
||
ENDACCOUNT_DATE.Text + "','YYYY-MM-DD HH24:MI:SS') AND A.STARTDATE >= TO_DATE('" +
|
||
ENDACCOUNT_STARTDATE.Text + "','YYYY-MM-DD HH24:MI:SS') AND B.SERVERPART_ID = " +
|
||
SERVERPART_ID.Text + " AND A.SHOPCODE = '" + SHOPCODE.Text + "'", "T_COMMODITYSALE_" + SERVERPARTCODE.Text));
|
||
}
|
||
//if (dt.Rows.Count > 0)
|
||
//{
|
||
// TICKETCODE_SALE.Text = dt.Rows[0][0].ToString();
|
||
// SELLCOUNT_SALE.Text = (decimal.Parse(dt.Rows[0][1].ToString()) + (_DataTable.Rows.Count > 0 ?
|
||
// decimal.Parse(_DataTable.Rows[0]["SALE_SELLCOUNT"].ToString()) : 0)).ToString();
|
||
// FACTAMOUNT_SALE.Text = (decimal.Parse(dt.Rows[0][2].ToString()) + (_DataTable.Rows.Count > 0 ?
|
||
// decimal.Parse(_DataTable.Rows[0]["SALE_SUPPLEMENT"].ToString()) : 0)).ToString();
|
||
// SALEAMOUNT.Text = FACTAMOUNT_SALE.Text;
|
||
//}
|
||
//Page.Alert("获取成功!单品金额为" + FACTAMOUNT_SALE.Text);
|
||
decimal _factAmountSale = 0, _sale_supplement = 0;
|
||
if (dt.Rows.Count > 0)
|
||
{
|
||
_factAmountSale = decimal.Parse(dt.Rows[0][2].ToString());
|
||
}
|
||
_sale_supplement = (_DataTable.Rows.Count > 0 ? decimal.Parse(_DataTable.Rows[0]["SALE_SUPPLEMENT"].ToString()) : 0);
|
||
_factAmountSale = _factAmountSale + (_DataTable.Rows.Count > 0 ?
|
||
decimal.Parse(_DataTable.Rows[0]["SALE_SUPPLEMENT"].ToString()) : 0);
|
||
if (decimal.Parse(FACTAMOUNT_SALE.Text) > _factAmountSale && _factAmountSale < decimal.Parse(TOTALSELLAMOUNT.Text) &&
|
||
decimal.Parse(TOTALSELLAMOUNT.Text) + _sale_supplement > _factAmountSale)
|
||
{
|
||
Page.Alert("获取完成!单品金额为" + _factAmountSale + ",数据正在解析,请5分钟后重新获取!");
|
||
}
|
||
else
|
||
{
|
||
TICKETCODE_SALE.Text = dt.Rows[0][0].ToString();
|
||
SELLCOUNT_SALE.Text = (decimal.Parse(dt.Rows[0][1].ToString()) + (_DataTable.Rows.Count > 0 ?
|
||
decimal.Parse(_DataTable.Rows[0]["SALE_SELLCOUNT"].ToString()) : 0)).ToString();
|
||
FACTAMOUNT_SALE.Text = _factAmountSale.ToString();
|
||
SALEAMOUNT.Text = FACTAMOUNT_SALE.Text;
|
||
Page.Alert("获取完成!单品金额为" + FACTAMOUNT_SALE.Text);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
Page.Alert("获取失败!");
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 获取促销数据
|
||
protected void BtnGetPromotion_Click(object sender, EventArgs e)
|
||
{
|
||
Business.ENDACCOUNT _ENDACCOUNT = new Business.ENDACCOUNT(this.Transaction);
|
||
_ENDACCOUNT.ENDACCOUNT_ID = Request["ID"].ToDecryptInt32();
|
||
if (_ENDACCOUNT.Select())
|
||
{
|
||
DataTable dt = _ENDACCOUNT.ExecuteDataTable(@"SELECT NVL(SUM(CONSUME_COUNT),0),NVL(SUM(CONSUME_PRICE),0)
|
||
FROM MEMBERSHIP_STORAGE.T_CONSUMPTIONRECORD WHERE SERVERPART_ID = " + _ENDACCOUNT.SERVERPART_ID +
|
||
" AND SHOPCODE = '" + _ENDACCOUNT.SHOPCODE + "' AND MACHINECODE = '" + _ENDACCOUNT.MACHINECODE +
|
||
"' AND CONSUMPTIONRECORD_DATE BETWEEN TO_DATE('" + _ENDACCOUNT.ENDACCOUNT_STARTDATE +
|
||
"','YYYY-MM-DD HH24:MI:SS') AND TO_DATE('" + _ENDACCOUNT.ENDACCOUNT_DATE + "','YYYY-MM-DD HH24:MI:SS')");
|
||
SELLCOUNT_PROMOTION.Text = dt.Rows[0][0].ToString();
|
||
FACTAMOUNT_PROMOTION.Text = dt.Rows[0][1].ToString();
|
||
Page.Alert("获取成功!促销金额为" + FACTAMOUNT_PROMOTION.Text);
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 一键数据校验
|
||
public bool CorrectPrice()
|
||
{
|
||
bool flag = true;
|
||
double _CorrectPrice = 0.00;
|
||
try
|
||
{
|
||
Business.SUPPLEMENT _SUPPLEMENT = new Business.SUPPLEMENT(Transaction);
|
||
if (decimal.Parse(FACT_AMOUNT.Text) != decimal.Parse(MOBILEPAYMENT.Text) + decimal.Parse(MOBILE_CORRECT.Text))
|
||
{
|
||
_SUPPLEMENT.ResetProperty();
|
||
_CorrectPrice = double.Parse(FACT_AMOUNT.Text) - double.Parse(MOBILEPAYMENT.Text) -
|
||
double.Parse(MOBILE_CORRECT.Text);
|
||
_SUPPLEMENT.SERVERPART_ID = int.Parse(SERVERPART_ID.Text);
|
||
_SUPPLEMENT.SERVERPART_NAME = SERVERPART_NAME.Text;
|
||
_SUPPLEMENT.PROVINCE_CODE = int.Parse(PROVINCE_CODE.Text);
|
||
_SUPPLEMENT.COMMODITY_NAME = "补充销售流水";
|
||
_SUPPLEMENT.COMMODITY_DESC = "移动支付冲正金额";
|
||
_SUPPLEMENT.OPERATE_DATE = System.DateTime.Now;
|
||
_SUPPLEMENT.SELLDATA_DATE = DateTime.Parse(ENDACCOUNT_DATE.Text);
|
||
_SUPPLEMENT.SERVERPARTCODE = SERVERPARTCODE.Text;
|
||
_SUPPLEMENT.SHOPCODE = SHOPCODE.Text;
|
||
_SUPPLEMENT.SHOPNAME = SHOPNAME.Text;
|
||
_SUPPLEMENT.MACHINECODE = MACHINECODE.Text;
|
||
_SUPPLEMENT.TICKETCODE = ENDACCOUNT_ID.Text.ToEncrypt();
|
||
_SUPPLEMENT.SELLCOUNT = 1;
|
||
_SUPPLEMENT.SELLPRICE = _CorrectPrice;
|
||
_SUPPLEMENT.OFFPRICE = 0;
|
||
_SUPPLEMENT.FACTAMOUNT = _CorrectPrice;
|
||
_SUPPLEMENT.VALID = 1;
|
||
_SUPPLEMENT.SELLDESC = "一键移动支付冲正";
|
||
_SUPPLEMENT.Insert();
|
||
MOBILE_CORRECT.Text = (double.Parse(MOBILE_CORRECT.Text) + _CorrectPrice).ToString("0.00");
|
||
CORRECT_AMOUNT.Text = (double.Parse(CORRECT_AMOUNT.Text.Split('/')[0]) +
|
||
_CorrectPrice).ToString("0.00") + "/" + MOBILE_CORRECT.Text;
|
||
}
|
||
if (decimal.Parse(CASHPAY.Text) != decimal.Parse(TOTALSELLAMOUNT.Text) +
|
||
decimal.Parse(CORRECT_AMOUNT.Text.Split('/')[0]))
|
||
{
|
||
_SUPPLEMENT.ResetProperty();
|
||
_CorrectPrice = double.Parse(CASHPAY.Text) - double.Parse(TOTALSELLAMOUNT.Text) -
|
||
double.Parse(CORRECT_AMOUNT.Text.Split('/')[0]);
|
||
_SUPPLEMENT.SERVERPART_ID = int.Parse(SERVERPART_ID.Text);
|
||
_SUPPLEMENT.SERVERPART_NAME = SERVERPART_NAME.Text;
|
||
_SUPPLEMENT.PROVINCE_CODE = int.Parse(PROVINCE_CODE.Text);
|
||
_SUPPLEMENT.COMMODITY_NAME = "补充销售流水";
|
||
_SUPPLEMENT.COMMODITY_DESC = "销售流水冲正金额";
|
||
_SUPPLEMENT.OPERATE_DATE = System.DateTime.Now;
|
||
_SUPPLEMENT.SELLDATA_DATE = DateTime.Parse(ENDACCOUNT_DATE.Text);
|
||
_SUPPLEMENT.SERVERPARTCODE = SERVERPARTCODE.Text;
|
||
_SUPPLEMENT.SHOPCODE = SHOPCODE.Text;
|
||
_SUPPLEMENT.SHOPNAME = SHOPNAME.Text;
|
||
_SUPPLEMENT.MACHINECODE = MACHINECODE.Text;
|
||
_SUPPLEMENT.TICKETCODE = ENDACCOUNT_ID.Text.ToEncrypt();
|
||
_SUPPLEMENT.SELLCOUNT = 1;
|
||
_SUPPLEMENT.SELLPRICE = _CorrectPrice;
|
||
_SUPPLEMENT.OFFPRICE = 0;
|
||
_SUPPLEMENT.FACTAMOUNT = _CorrectPrice;
|
||
_SUPPLEMENT.VALID = 1;
|
||
_SUPPLEMENT.SELLDESC = "一键销售流水冲正";
|
||
_SUPPLEMENT.Insert();
|
||
CASH_CORRECT.Text = (double.Parse(CASH_CORRECT.Text) + _CorrectPrice).ToString("0.00");
|
||
CORRECT_AMOUNT.Text = (double.Parse(CORRECT_AMOUNT.Text.Split('/')[0]) +
|
||
_CorrectPrice).ToString("0.00") + "/" + MOBILE_CORRECT.Text;
|
||
}
|
||
}
|
||
catch
|
||
{
|
||
Transaction.Rollback();
|
||
flag = false;
|
||
}
|
||
return flag;
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 流水冲正按钮事件
|
||
protected void CallBackButton_Add_CallBackClick(object sender, ClientSetEventArgs e)
|
||
{
|
||
if (TREATMENT_MARK.SelectedValue == "2")
|
||
{
|
||
e.ExcuteClientScript(Page.GetOpenPopDialogClientScript("SaleData/SUPPLEMENTPage.aspx?ENDACCOUNT_ID=" +
|
||
Request["ID"] + "&FACT_AMOUNT=" + FACT_AMOUNT.Text.Trim().ToEncrypt() + "&MOBILEPAYMENT=" +
|
||
MOBILEPAYMENT.Text.Trim().ToEncrypt() + "&MOBILE_CORRECT=" + MOBILE_CORRECT.Text.Trim().ToEncrypt() +
|
||
"&CORRECT_AMOUNT=" + CORRECT_AMOUNT.Text.Trim().Split('/')[0].ToEncrypt() + "&FACTAMOUNT_SALE=" +
|
||
FACTAMOUNT_SALE.Text.Trim().ToEncrypt() + "&SALE_CORRECT=" + SALE_CORRECT.Text.Trim().ToEncrypt() +
|
||
"&CASH_CORRECT=" + CASH_CORRECT.Text.Trim().ToEncrypt() + "&CASHPAY=" + CASHPAY.Text.Trim().ToEncrypt() +
|
||
"&SELLCOUNT_SALE=" + SELLCOUNT_SALE.Text.ToEncrypt() + "&TICKET_COUNT=" + TICKET_COUNT.Text.ToEncrypt() +
|
||
"&SELLCOUNT_CIGARETTE=" + SELLCOUNT_CIGARETTE.Text.ToEncrypt() + "&FACTAMOUNT_CIGARETTE=" +
|
||
FACTAMOUNT_CIGARETTE.Text.ToEncrypt() + "&readonly=true", "SUPPLEMENTPage", 1100, 800, true, false, true));
|
||
}
|
||
else
|
||
{
|
||
e.ExcuteClientScript(Page.GetOpenPopDialogClientScript("SaleData/SUPPLEMENTPage.aspx?ENDACCOUNT_ID=" +
|
||
Request["ID"] + "&FACT_AMOUNT=" + FACT_AMOUNT.Text.Trim().ToEncrypt() + "&MOBILEPAYMENT=" +
|
||
MOBILEPAYMENT.Text.Trim().ToEncrypt() + "&MOBILE_CORRECT=" + MOBILE_CORRECT.Text.Trim().ToEncrypt() +
|
||
"&CORRECT_AMOUNT=" + CORRECT_AMOUNT.Text.Trim().Split('/')[0].ToEncrypt() + "&FACTAMOUNT_SALE=" +
|
||
FACTAMOUNT_SALE.Text.Trim().ToEncrypt() + "&SALE_CORRECT=" + SALE_CORRECT.Text.Trim().ToEncrypt() +
|
||
"&CASH_CORRECT=" + CASH_CORRECT.Text.Trim().ToEncrypt() + "&CASHPAY=" + CASHPAY.Text.Trim().ToEncrypt() +
|
||
"&SELLCOUNT_SALE=" + SELLCOUNT_SALE.Text.ToEncrypt() + "&TICKET_COUNT=" + TICKET_COUNT.Text.ToEncrypt() +
|
||
"&SELLCOUNT_CIGARETTE=" + SELLCOUNT_CIGARETTE.Text.ToEncrypt() + "&FACTAMOUNT_CIGARETTE=" +
|
||
FACTAMOUNT_CIGARETTE.Text.ToEncrypt(), "SUPPLEMENTPage", 1100, 800, true, false, true));
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 查询移动支付金额
|
||
protected void CallBtn_Mobile_CallBackClick(object sender, ClientSetEventArgs e)
|
||
{
|
||
e.ExcuteClientScript(Page.GetOpenPopDialogClientScript("SearchList/MobilePayList.aspx?ENDACCOUNT_ID=" +
|
||
Request["ID"] + "&MOBILEPAYMENT=" + MOBILEPAYMENT.Text.ToEncrypt() + "&FACT_AMOUNT=" +
|
||
FACT_AMOUNT.Text.ToEncrypt(), "MobilePayList", 1150, 600, true, false, true));
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 获取线上订单信息
|
||
protected void GetOnlineBill_Click(object sender, EventArgs e)
|
||
{
|
||
DataTable _DataTable = new MSPB.CONSUMPTIONRECORD(CurrObject).ExecuteDataTable(@"SELECT
|
||
COUNT(CONSUMPTIONRECORD_ID) AS ONLINETICKET,NVL(SUM(CONSUME_PRICE),0) AS CONSUME_PRICE,
|
||
NVL(SUM(COUPON_AMOUNT),0) AS COUPON_AMOUNT,NVL(SUM(PAY_AMOUNT),0) AS PAY_AMOUNT
|
||
FROM MOBILESERVICE_PLATFORM.T_CONSUMPTIONRECORD WHERE CONSUMPTIONRECORD_TYPE IN (5020,5030,6000) AND
|
||
CONSUMPTIONRECORD_STATE BETWEEN 1010 AND 5000 AND SERVERPART_CODE = '" + SERVERPARTCODE.Text +
|
||
"' AND SHOPCODE = '" + SHOPCODE.Text + "' AND MACHINECODE = '" + MACHINECODE.Text +
|
||
"' AND CONSUMPTIONRECORD_DATE BETWEEN TO_DATE('" + ENDACCOUNT_STARTDATE.Text +
|
||
"','YYYY/MM/DD HH24:MI:SS') AND TO_DATE('" + ENDACCOUNT_DATE.Text + "','YYYY/MM/DD HH24:MI:SS')");
|
||
if (_DataTable.Rows.Count > 0 && _DataTable.Rows[0][0].ToString() != "")
|
||
{
|
||
OnlineTicket.Text = _DataTable.Rows[0]["ONLINETICKET"].ToString();
|
||
OnlineAmount.Text = _DataTable.Rows[0]["CONSUME_PRICE"].ToString();
|
||
}
|
||
else
|
||
{
|
||
OnlineTicket.Text = "0";
|
||
OnlineAmount.Text = "0.00";
|
||
}
|
||
Page.Alert("获取成功!在线订单金额为" + OnlineAmount.Text);
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 列表事件
|
||
//查询
|
||
protected void ButtonSearch_CallBackClick(object sender, ClientSetEventArgs e)
|
||
{
|
||
GridViewEx1.Selecting<Business.CHECKACCOUNT>(ObjectDataSource1, GridPageEx1);
|
||
//设置UI变化
|
||
e.SetValue(GridViewEx1);
|
||
e.SetValue(GridPageEx1);
|
||
}
|
||
|
||
//翻页事件
|
||
protected void GridPageEx1_CallBackPageChanged(object src, ClientSetEventArgs e)
|
||
{
|
||
GridViewEx1.Pagging<Business.CHECKACCOUNT>(ObjectDataSource1, GridPageEx1);
|
||
//设置UI变化
|
||
e.SetValue(GridViewEx1);
|
||
}
|
||
|
||
//查询SQL设置
|
||
protected void GridViewEx1_SelectMethodParameters(object sender, SelectMethodParametersArgs e)
|
||
{
|
||
//且搜索条件
|
||
string NoWhereSql = "";
|
||
if (!string.IsNullOrEmpty(SERVERPART_ID.Text))
|
||
{
|
||
e.AddAndParams("SERVERPART_ID", SERVERPART_ID.Text);
|
||
if (!string.IsNullOrEmpty(SHOPCODE.Text))
|
||
{
|
||
e.AddAndParams("SHOPCODE", SHOPCODE.Text);
|
||
if (!string.IsNullOrEmpty(MACHINECODE.Text))
|
||
{
|
||
e.AddAndParams("MACHINECODE", MACHINECODE.Text);
|
||
}
|
||
//稽核补录数据不显示在列表上,体现在对应稽核数据中
|
||
NoWhereSql = "CHECK_TYPE <> '稽核补录'";
|
||
|
||
//开始时间
|
||
if (!string.IsNullOrWhiteSpace(ENDACCOUNT_STARTDATE.Text))
|
||
{
|
||
NoWhereSql += " AND CHECK_STARTDATE = TO_DATE('" +
|
||
ENDACCOUNT_STARTDATE.Text + "','YYYY/MM/DD HH24:MI:SS')";
|
||
}
|
||
|
||
e.SetOtherUserCustomWhereSqlString = NoWhereSql;
|
||
}
|
||
else
|
||
{
|
||
e.AddAndParams("1", 2);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
e.AddAndParams("1", 2);
|
||
}
|
||
e.AddOrderByParams("CHECK_ENDDATE", false);
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 行绑定事件
|
||
DataTable SupplementTable = null;
|
||
protected void GridViewEx1_RowDataBound(object sender, GridViewRowEventArgs e)
|
||
{
|
||
if (e.Row.RowType == DataControlRowType.Header)
|
||
{
|
||
SupplementTable = new Business.CHECKACCOUNT(Transaction).ExecuteDataTable(string.Format(
|
||
@"SELECT SERVERPART_ID,PROVINCE_CODE,SHOPCODE,MACHINECODE,
|
||
CHECK_STARTDATE,CHECK_ENDDATE,TOTALSELLAMOUNT
|
||
FROM {1} WHERE CHECK_TYPE = '稽核补录'{0}", GetWhereSql(), GridViewEx1.DataTableName));
|
||
}
|
||
else if (e.Row.RowType == DataControlRowType.DataRow)
|
||
{
|
||
string _SUPPLEMENT = ""; //显示补录金额
|
||
string _TICKETBILL = GridViewEx1.DataKeys[e.Row.RowIndex].Values["TICKETBILL"].ToString();
|
||
string _OTHERPAY = GridViewEx1.DataKeys[e.Row.RowIndex].Values["OTHERPAY"].ToString();
|
||
string _SERVERPART_ID = GridViewEx1.DataKeys[e.Row.RowIndex].Values["SERVERPART_ID"].ToEncrypt();
|
||
string _SHOPCODE = GridViewEx1.DataKeys[e.Row.RowIndex].Values["SHOPCODE"].ToEncrypt();
|
||
string _MACHINECODE = GridViewEx1.DataKeys[e.Row.RowIndex].Values["MACHINECODE"].ToEncrypt();
|
||
string _PROVINCE_CODE = GridViewEx1.DataKeys[e.Row.RowIndex].Values["PROVINCE_CODE"].ToString();
|
||
string _CHECK_STARTDATE = GridViewEx1.DataKeys[e.Row.RowIndex].Values["CHECK_STARTDATE"].ToString();
|
||
string _CHECK_ENDDATE = GridViewEx1.DataKeys[e.Row.RowIndex].Values["CHECK_ENDDATE"].ToString();
|
||
string _CHECKACCOUNT_ID = GridViewEx1.DataKeys[e.Row.RowIndex].Values["CHECKACCOUNT_ID"].ToEncrypt();
|
||
string _CASH = GridViewEx1.DataKeys[e.Row.RowIndex].Values["CASH"].ToString();
|
||
string _CASHPAY = GridViewEx1.DataKeys[e.Row.RowIndex].Values["CASHPAY"].ToString();
|
||
string _REPLENISH_AMOUNT = GridViewEx1.DataKeys[e.Row.RowIndex].Values["REPLENISH_AMOUNT"].ToString();
|
||
|
||
e.Row.Cells[e.Row.Cells.Count - 6].Text = (_TICKETBILL.TryParseToDecimal() + _OTHERPAY.TryParseToDecimal()).ToString("0.00");
|
||
decimal.TryParse(e.Row.Cells[7].Text.Replace(" ", "0"), out decimal _Price);
|
||
if (_Price != 0 && e.Row.Cells[4].Text.Replace(" ", "").Trim() == "")
|
||
{
|
||
//e.Row.Cells[3].ForeColor = Color.Red;
|
||
}
|
||
if (_Price > 0)
|
||
{
|
||
DataRow[] dataRow = SupplementTable.Select(string.Format(
|
||
@"SERVERPART_ID = '{0}' AND PROVINCE_CODE = '{1}' AND SHOPCODE = '{2}' AND
|
||
MACHINECODE = '{3}' AND CHECK_STARTDATE = '{4}' AND CHECK_ENDDATE >= '{5}'",
|
||
_SERVERPART_ID.ToDecrypt(), _PROVINCE_CODE, _SHOPCODE.ToDecrypt(),
|
||
_MACHINECODE.ToDecrypt(), _CHECK_STARTDATE, _CHECK_ENDDATE));
|
||
if (dataRow.Length > 0)
|
||
{
|
||
decimal SupplementAmount = 0;
|
||
DataTable dtCheckAccount = new Business.CHECKACCOUNT(Transaction).FillDataTable(string.Format(
|
||
@"WHERE CHECK_TYPE <> '稽核补录' AND PROVINCE_CODE = '{1}' AND SERVERPART_ID = '{0}' AND
|
||
SHOPCODE = '{2}' AND CHECK_STARTDATE = TO_DATE('{4}','YYYY/MM/DD HH24:MI:SS') AND
|
||
MACHINECODE = '{3}' AND CHECK_ENDDATE > TO_DATE('{5}','YYYY/MM/DD HH24:MI:SS')",
|
||
_SERVERPART_ID.ToDecrypt(), _PROVINCE_CODE, _SHOPCODE.ToDecrypt(),
|
||
_MACHINECODE.ToDecrypt(), _CHECK_STARTDATE, _CHECK_ENDDATE));
|
||
if (dtCheckAccount.Rows.Count > 0)
|
||
{
|
||
foreach (DataRow drSupplement in SupplementTable.Select(string.Format(
|
||
@"SERVERPART_ID = '{0}' AND PROVINCE_CODE = '{1}' AND SHOPCODE = '{2}' AND
|
||
MACHINECODE = '{3}' AND CHECK_STARTDATE = '{4}' AND CHECK_ENDDATE >= '{5}' AND CHECK_ENDDATE < '{6}'",
|
||
_SERVERPART_ID.ToDecrypt(), _PROVINCE_CODE, _SHOPCODE.ToDecrypt(),
|
||
_MACHINECODE.ToDecrypt(), _CHECK_STARTDATE, _CHECK_ENDDATE,
|
||
dtCheckAccount.Select("", "CHECK_ENDDATE")[0]["CHECK_ENDDATE"].ToString())))
|
||
{
|
||
SupplementAmount += drSupplement["TOTALSELLAMOUNT"].TryParseToDecimal();
|
||
}
|
||
}
|
||
else
|
||
{
|
||
foreach (DataRow drSupplement in dataRow)
|
||
{
|
||
SupplementAmount += drSupplement["TOTALSELLAMOUNT"].TryParseToDecimal();
|
||
}
|
||
}
|
||
|
||
e.Row.Cells[7].Text += "/" + SupplementAmount.ToString();
|
||
e.Row.Cells[7].ForeColor = Color.Green;
|
||
e.Row.Cells[7].Font.Bold = true;
|
||
_SUPPLEMENT = SupplementAmount.ToString();
|
||
}
|
||
else
|
||
{
|
||
e.Row.Cells[7].Text += "/0";
|
||
_SUPPLEMENT = "0";
|
||
e.Row.Cells[7].ForeColor = Color.Green;
|
||
e.Row.Cells[7].Font.Bold = true;
|
||
//e.Row.Cells[3].ForeColor = Color.Red;
|
||
}
|
||
}
|
||
else if (_Price < 0)
|
||
{
|
||
e.Row.Cells[7].Font.Bold = true;
|
||
if (_REPLENISH_AMOUNT != "0")
|
||
{
|
||
e.Row.Cells[7].Text += "/" + _REPLENISH_AMOUNT;
|
||
}
|
||
_SUPPLEMENT = _REPLENISH_AMOUNT;
|
||
e.Row.Cells[7].ForeColor = Color.Red;
|
||
}
|
||
e.Row.Cells[8].Text = _CASHPAY + "/" + _CASH;
|
||
|
||
if (!string.IsNullOrEmpty(e.Row.Cells[4].Text) && e.Row.Cells[4].Text.Length > 45)
|
||
{
|
||
e.Row.ToolTip = e.Row.Cells[4].Text;
|
||
e.Row.Cells[4].Text = e.Row.Cells[4].Text.Substring(0, 45) + "...";
|
||
}
|
||
|
||
if (e.Row.Cells[5].Text.TryParseToDecimal() * 10 > 2)
|
||
{
|
||
e.Row.Cells[5].Font.Bold = true;
|
||
e.Row.Cells[5].ForeColor = Color.Red;
|
||
}
|
||
e.Row.Cells[5].Text += "%";
|
||
|
||
e.Row.Attributes["onclick"] = GridViewEx1.GetOpenPopDialogClientScript(
|
||
"/HighWay/Modules/Statistics/CheckInfo/CHECKACCOUNTPage.aspx?ID=" + _CHECKACCOUNT_ID +
|
||
"&ERRORRATE=" + e.Row.Cells[5].Text.ToEncrypt() + "&SUPPLEMENT=" + _SUPPLEMENT.ToEncrypt() +
|
||
"&ENDACCOUNT_ID=" + Request["ID"] + "&TYPE=ENDACCOUNT");
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 方法 -> 获取条件语句
|
||
private string GetWhereSql()
|
||
{
|
||
string WhereSql = "";
|
||
|
||
if (!string.IsNullOrEmpty(SERVERPART_ID.Text))
|
||
{
|
||
WhereSql += " AND SERVERPART_ID = " + SERVERPART_ID.Text;
|
||
if (!string.IsNullOrEmpty(SHOPCODE.Text))
|
||
{
|
||
WhereSql += " AND SHOPCODE = '" + SHOPCODE.Text + "'";
|
||
//开始时间
|
||
if (!string.IsNullOrWhiteSpace(ENDACCOUNT_STARTDATE.Text))
|
||
{
|
||
WhereSql += " AND CHECK_STARTDATE = TO_DATE('" + ENDACCOUNT_STARTDATE.Text + "','YYYY/MM/DD HH24:MI:SS')";
|
||
}
|
||
else
|
||
{
|
||
WhereSql = " AND 1 = 2";
|
||
}
|
||
}
|
||
else
|
||
{
|
||
WhereSql = " AND 1 = 2";
|
||
}
|
||
}
|
||
else
|
||
{
|
||
WhereSql = " AND 1 = 2";
|
||
}
|
||
|
||
return WhereSql;
|
||
}
|
||
#endregion
|
||
}
|
||
}
|