using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace LYFZ.Software.MainBusiness.MembershipManage.SetSmallForm { public partial class ServiceCardManagementSmallForm : LYFZ.Software.UI.MembershipManage.SetSmallForm.ServiceCardManagementSmallForm { LYFZ.BLL.BLL_ErpMemberCard mcbll = new BLL.BLL_ErpMemberCard(); LYFZ.BLL.BLL_ErpSMSRecord rbll = new LYFZ.BLL.BLL_ErpSMSRecord(); LYFZ.BLL.BLL_SMSTemplates smsTemplates = new BLL.BLL_SMSTemplates(); LYFZ.BLL.BLL_ErpSystemCategory scbll = new BLL.BLL_ErpSystemCategory(); LYFZ.BLL.BLL_ErpSystemConfigure sgbll = new BLL.BLL_ErpSystemConfigure(); LYFZ.BLL.BLL_ErpMemberCardPoints mcptsbll = new BLL.BLL_ErpMemberCardPoints(); LYFZ.BLL.BLL_ErpMemberCardPayment mcptbll = new BLL.BLL_ErpMemberCardPayment(); LYFZ.BLL.BLL_ErpMemberCardPointsLOG mcpslogbll = new BLL.BLL_ErpMemberCardPointsLOG(); LYFZ.BLL.BLL_ErpMemberCardPaymentOrder mcpobll = new BLL.BLL_ErpMemberCardPaymentOrder(); LYFZ.BLL.BLL_ErpMemberCardServiceContent mcscbll = new BLL.BLL_ErpMemberCardServiceContent(); LYFZ.BLL.BLL_ErpMemberCardAmountChangeLOG mcclogbll = new BLL.BLL_ErpMemberCardAmountChangeLOG(); LYFZ.BLL.BLL_ErpMemberCardServicePackageSet mcpsbll = new BLL.BLL_ErpMemberCardServicePackageSet(); LYFZ.BLL.BLL_ErpMemberCardPaymentContentDetail mcpcdbll = new BLL.BLL_ErpMemberCardPaymentContentDetail(); LYFZ.BLL.BLL_ErpMemberCardServicePackageContent mcpcbll = new BLL.BLL_ErpMemberCardServicePackageContent(); List mlist = null; /// /// 登录者姓名 /// string loginUserName = LYFZ.Software.MainBusiness.CommonLogical.SuccessfulLogin.LoginUserModel.User_Name; /// /// 登录者员工ID /// string loginUserID = LYFZ.Software.MainBusiness.CommonLogical.SuccessfulLogin.LoginUserModel.User_EmployeeID; public ServiceCardManagementSmallForm() { btnPayArrears.Click += btnPayArrears_Click; this.Load += ServiceCardManagementSmallForm_Load; this.btnDeleteItem.Click += BtnDeleteItem_Click; } private void BtnDeleteItem_Click(object sender, EventArgs e) { if (this.dgvData.SelectedRows != null && this.dgvData.SelectedRows.Count > 0) { if (MessageBoxCustom.Show("你确定要删除所选中的服务项吗?",msgBoxButton: MessageBoxButtons.YesNo) == DialogResult.Yes) { List delIDList = new List(); string serviceContent = ""; foreach (DataGridViewRow dgRow in this.dgvData.SelectedRows) { if (dgRow.Tag != null) { delIDList.Add(dgRow.Tag.ToString()); if(!string.IsNullOrEmpty(serviceContent)) { serviceContent += ","; } serviceContent += dgRow.Cells[1].Value; } } if (mcscbll.DeleteList(String.Join(",", delIDList.ToArray()))) { string logText = "删除会员主卡:"+ txtCardNumber.Text+" 持卡人:"+ txtHolder.Text+" 的服务内容:"+ serviceContent; LYFZ.BLL.BLL_ErpSystemLogs.WriteSystemLog(EnumPublic.SystemLogsType.删除会员服务记录, logText, loginUserID, loginUserName); ServiceCardManagementSmallForm_Shown(null, null); } } } else { MessageBoxCustom.Show("请选择你要删除的服务项"); } } void ServiceCardManagementSmallForm_Load(object sender, EventArgs e) { this.btnDeleteItem.Enabled = LYFZ.BLL.BLL_ErpUser.GetRights(LYFZ.BLL.BLL_ErpUser.CurrentUserRights.MemberManage, LYFZ.CustomAttributes.OperatingAuthority.DeleteServiceItem); DataTable tbl = LYFZ.BLL.BLL_ErpOrderView.GetData_MemberMainGoldMember(" And Mc_Number = '" + StrNumber + "'", inTopCount: 1); if (Convert.ToDecimal(tbl.Rows[0]["服务卡欠款"]) > 0) { LYFZ.Software.MainBusiness.DoorCityProcess.SuperSmallForm.ArrearsTipsSuperSmallForm frm = new DoorCityProcess.SuperSmallForm.ArrearsTipsSuperSmallForm(); frm.StrTipsText = "此客人余款未清,请核对!"; frm.ShowDialog(); } } /// /// 会员编号 /// public string StrNumber = ""; /// /// 是否保存 /// public bool IsSaveed = false; /// /// 是否关闭刷新父窗体 /// public bool IsCloseRefreshParentForm = true; DataTable OriginalService_tbl = new DataTable(); string PackageClass = ""; string PackagePrice = ""; string strPaymentNumber = ""; string strInfoID = LYFZ.Software.MainBusiness.CommonLogical.SuccessfulLogin.GetLocalCompanyInfoID(); string StrClientNumber = ""; string StrContentText = ""; /// /// 窗体加载事件 /// /// /// protected override void ServiceCardManagementSmallForm_Shown(object sender, EventArgs e) { DataTable tblMc = mcbll.GetView_Custom("BView_MemberMain_GoldMember", StrWhere: "Mc_Number = '" + this.StrNumber + "'").Tables[0]; this.txtHolder.Text = tblMc.Rows[0]["姓名"].ToString().Trim(); this.txtCardNumber.Text = tblMc.Rows[0]["会员卡号"].ToString().Trim(); this.txtDiscount.Text = tblMc.Rows[0]["折扣"].ToString().Trim(); this.txtCardType.Text = tblMc.Rows[0]["等级"].ToString().Trim(); this.txtPoints.Text = tblMc.Rows[0]["积分"].ToString().Trim(); this.txtAmount.Text = tblMc.Rows[0]["金额"].ToString().Trim(); this.StrClientNumber = tblMc.Rows[0]["姓名编号"].ToString().Trim(); OriginalService_tbl = mcbll.GetView_Custom("tb_ErpMemberCardServiceContent", StrWhere: "Mcse_Number = '" + this.StrNumber + "'", ShowColumnName: "ID,Mcse_MemberServiceNumber,Mcse_ServiceContent,Mcse_ServiceCount").Tables[0]; DataTable tbl = mcbll.GetView_Custom("tb_ErpMemberCardServiceContentSet").Tables[0]; this.dgvData.Rows.Clear(); for (int i = 0; i < OriginalService_tbl.Rows.Count; i++) { DataRow[] dtRow = tbl.Select("Msc_MemberServiceNumber = '" + OriginalService_tbl.Rows[i]["Mcse_MemberServiceNumber"].ToString().Trim() + "'"); DataGridViewRow dgvr = new DataGridViewRow(); DataGridViewCell cell = null; cell = new DataGridViewTextBoxCell(); cell.Value = OriginalService_tbl.Rows[i]["Mcse_MemberServiceNumber"].ToString().Trim(); dgvr.Cells.Add(cell); cell = new DataGridViewTextBoxCell(); cell.Value = OriginalService_tbl.Rows[i]["Mcse_ServiceContent"].ToString().Trim()+(dtRow.Length == 0 ?"(已移除)":""); dgvr.Cells.Add(cell); cell = new DataGridViewTextBoxCell(); cell.Value = OriginalService_tbl.Rows[i]["Mcse_ServiceCount"].ToString().Trim(); dgvr.Cells.Add(cell); cell = new DataGridViewTextBoxCell(); if (dtRow.Length == 0) { cell.Value = ""; } else { cell.Value = dtRow[0]["Msc_SalePrice"].ToString().Trim(); } dgvr.Cells.Add(cell); cell = new DataGridViewTextBoxCell(); cell.Value = OriginalService_tbl.Rows[i]["ID"].ToString().Trim(); dgvr.Cells.Add(cell); dgvr.Tag= OriginalService_tbl.Rows[i]["ID"].ToString().Trim(); this.dgvData.Rows.Add(dgvr); } DataTable dtArrears = GetMemberBlanceData(); if(dtArrears.Rows.Count>0) { this.tb_Arrears.Text = (Convert.ToDecimal(dtArrears.Rows[0]["Mcpo_OrderAmount"]) - Convert.ToDecimal(dtArrears.Rows[0]["havePay"])).ToString("0.00"); this.btnSave.Enabled = false; this.btnPayArrears.Visible = true; PackageClass = dtArrears.Rows[0]["Mcpo_PackageClass"].ToString(); PackagePrice = dtArrears.Rows[0]["Mcpo_PackagePrice"].ToString(); strPaymentNumber = dtArrears.Rows[0]["Mcpo_OrderNumber"].ToString(); } else { tb_Arrears.Text = "0"; this.btnSave.Enabled = true; this.btnPayArrears.Visible = false; } } public DataTable GetMemberBlanceData() { string sql = @"with t as ( select Mcpo_Number,Mcpo_OrderNumber ,Mcpo_PackageClass,Mcpo_PackagePrice, Mcpo_OrderAmount , (select sum(Mcpt_PaymentAmount+Mcpt_DiscountAmount) from tb_ErpMemberCardPayment where Mcpo_OrderNumber=Mcpt_PaymentNumber) as havePay from tb_ErpMemberCardPaymentOrder ) select * from t where Mcpo_Number = '" + this.StrNumber + "' and havePay /// 关闭窗体后发生事件 /// /// /// protected override void ServiceCardManagementSmallForm_FormClosing(object sender, FormClosingEventArgs e) { if (this.IsCloseRefreshParentForm) { GoldManagementSmallForm frm1 = (GoldManagementSmallForm)this.Owner; frm1.RefreshParentForm = this.IsSaveed; } } /// /// 添加服务项 /// /// /// protected override void btnSave_Click(object sender, EventArgs e) { LYFZ.Software.MainBusiness.MembershipManage.SetSmallForm.DataSetServiceBoxSetSmallForm frm = new DataSetServiceBoxSetSmallForm(); frm.StrNumber = StrNumber; frm.ShowDialog(); if (frm.IsSaveed) { this.IsSaveed = true; this.Close(); } } /// /// 缴清欠款 /// /// /// void btnPayArrears_Click(object sender, EventArgs e) { decimal PaymentAmount = Convert.ToDecimal(this.tb_Arrears.Text); DateTime strTime = SDateTime.Now; string strUserID = LYFZ.Software.MainBusiness.CommonLogical.SuccessfulLogin.LoginUserModel.User_EmployeeID; List clist = new List(); LYFZ.Model.Model_ErpMemberCardServiceContent model = null; LYFZ.Model.Model_ErpMemberCardPaymentContentDetail modeldetail = null; Hashtable htData = new Hashtable(); htData["PackageClass"] = ""; if (PackageClass!="") { PaymentAmount = Convert.ToDecimal(PackagePrice); htData["PackageClass"] = PackageClass.Trim(); } htData["PaymentAmount"] = PaymentAmount; htData["decCopeAmount"] = PaymentAmount; htData["StrNumber"] = this.StrNumber; StrContentText = ""; LYFZ.Software.MainBusiness.MembershipManage.SuperSmallForm.MemberPaymentSuperSmallForm frm = new SuperSmallForm.MemberPaymentSuperSmallForm(); frm.htData = htData; frm.ShowDialog(); if (frm.IsSaveed) { LYFZ.Software.MainBusiness.MembershipManage.SuperSmallForm.MemberPaymentModel modelPm = frm.model; LYFZ.Model.Model_ErpMemberCard modelcard = mcbll.GetModel("Mc_Number", this.StrNumber); //如果是储值卡扣款,则减会员可用金额 if (modelPm.StrPaymentMethod.Trim() == "BEBACCAFEGECFBJFD") { //会员金额变更 LYFZ.Model.Model_ErpMemberCardAmountChangeLOG modelchangelog = new Model.Model_ErpMemberCardAmountChangeLOG(); modelchangelog.Mcacl_OriginalAmount = modelcard.Mc_Money; modelcard.Mc_Money = modelcard.Mc_Money - modelPm.DelConfirmAmount; modelcard.Mc_UpdateDateTime = strTime; modelcard.Mc_UpdateName = strUserID; //clist.Add(mcbll.GetUpdateCommandInfo(modelcard)); //会员卡金额变更记录表 modelchangelog.Mcacl_Number = this.StrNumber; modelchangelog.Mcacl_Type = "5"; modelchangelog.Mcacl_ExistingAmount = modelcard.Mc_Money; modelchangelog.Mcacl_UseAmount = modelPm.DelConfirmAmount; modelchangelog.Mcacl_GiveAmount = 0; modelchangelog.Mcacl_PaymentMethod = modelPm.StrPaymentMethod; modelchangelog.Mcacl_PaymentBank = ""; modelchangelog.Mcacl_OrderNumber = ""; modelchangelog.Mcacl_Remark = "缴纳服务欠款,当前欠款:" + PaymentAmount + ",现补欠款:" + modelPm.DelConfirmAmount + ",剩余欠款:" + (PaymentAmount - modelPm.DelConfirmAmount) + "元;具体详情请查询:(tb_ErpMemberCardPaymentContentDetail|会员收款内容详情)表,收款编号:" + strPaymentNumber; modelchangelog.Mcacl_CreateDatetime = strTime; modelchangelog.Mcacl_CreateName = strUserID; modelchangelog.Mcacl_Guid = Guid.NewGuid().ToString().Replace("-", "").ToUpper(); clist.Add(mcclogbll.GetAddCommandInfo(modelchangelog)); } LYFZ.Model.Model_ErpMemberCardPayment modelpayment = new Model.Model_ErpMemberCardPayment(); modelpayment.Mcpt_DividedShop = LYFZ.Software.MainBusiness.CommonLogical.SuccessfulLogin.GetLocalCompanyInfoID(); modelpayment.Mcpt_PaymentNumber = strPaymentNumber; modelpayment.Mcpt_Number = this.StrNumber; modelpayment.Mcpt_PaymentType = "服务消费"; modelpayment.Mcpt_PaymentAmount = modelPm.DelConfirmAmount; modelpayment.Mcpt_PaymentMethod = modelPm.StrPaymentMethod; modelpayment.Mcpt_PaymentBank = ""; modelpayment.Mcpt_PackageClass = htData["PackageClass"].ToString().Trim(); if (PackageClass!="") { modelpayment.Mcpt_PackagePrice = Convert.ToDecimal(PackagePrice); } else { modelpayment.Mcpt_PackagePrice = 0; } modelpayment.Mcpt_Discount = modelPm.DelMemberDiscount; modelpayment.Mcpt_DiscountAmount = modelPm.DelMemberDiscountAmount; modelpayment.Mcpt_OrderPerson = modelPm.StrOrderPerson; modelpayment.Mcpt_PaymentRemark = modelPm.StrRemark+"(补欠款)"; modelpayment.Mcpt_FinancialAudit = ""; modelpayment.Mcpt_FinancialAuditName = ""; modelpayment.Mcpt_FinancialAuditRemark = ""; modelpayment.Mcpt_CreateDatetime = strTime; modelpayment.Mcpt_CreateName = strUserID; clist.Add(mcptbll.GetAddCommandInfo(modelpayment)); StrContentText = "缴纳服务欠款,当前欠款:" + PaymentAmount + "元,现补欠款:" + modelPm.DelConfirmAmount + "元,剩余欠款:" + (PaymentAmount - modelPm.DelConfirmAmount)+"元"; //积分 int IntGetPoints = LYFZ.BLL.BLL_ErpMemberCard.GetPoints_AgoPeriod(LYFZ.EnumPublic.MemberPointsType.LatePeriod_RMB, modelPm.DelConfirmAmount, strInfoID, StrClientNumber); LYFZ.Model.Model_ErpMemberCardPoints modelps = mcptsbll.GetModel("Mcps_Number", this.StrNumber); LYFZ.Model.Model_ErpMemberCardPointsLOG modelpslog = new Model.Model_ErpMemberCardPointsLOG(); modelpslog.MPlg_DividedShop = LYFZ.BLL.OrderPayment_Member.StrInfoID; modelpslog.MPlg_Number = this.StrNumber; modelpslog.MPlg_Type = "1"; modelpslog.MPlg_OriginalPoints = 0; modelpslog.MPlg_ExistingPoints = IntGetPoints; modelpslog.MPlg_UsePoints = IntGetPoints; modelpslog.MPlg_RedeemArticle = ""; modelpslog.MPlg_RedeemAmount = 0; modelpslog.MPlg_OrderNumber = ""; modelpslog.MPlg_ViceCardNumber = ""; modelpslog.MPlg_Remark = ""; modelpslog.MPlg_CreateDatetime = strTime; modelpslog.MPlg_CreateName = strUserID; if (modelps.ID <= 0) { modelps = new Model.Model_ErpMemberCardPoints(); modelps.Mcps_Number = this.StrNumber; modelps.Mcps_TotalPoints = IntGetPoints; modelps.Mcps_AvailablePoints = IntGetPoints; modelps.Mcps_OpenCardSource = "服务箱付款办理积分," + new System.Diagnostics.StackTrace(new System.Diagnostics.StackFrame(true)).ToString(); modelps.Mcps_UpdateDateTime = strTime; modelps.Mcps_UpdateName = strUserID; clist.Add(mcptsbll.GetAddCommandInfo(modelps)); } else { modelpslog.MPlg_OriginalPoints = modelps.Mcps_AvailablePoints; modelpslog.MPlg_ExistingPoints = modelpslog.MPlg_ExistingPoints + modelps.Mcps_AvailablePoints; modelpslog.MPlg_UsePoints = modelpslog.MPlg_ExistingPoints + IntGetPoints; modelps.Mcps_TotalPoints = modelps.Mcps_TotalPoints + IntGetPoints; modelps.Mcps_AvailablePoints = modelps.Mcps_AvailablePoints + IntGetPoints; modelps.Mcps_UpdateDateTime = strTime; modelps.Mcps_UpdateName = strUserID; clist.Add(mcptsbll.GetUpdateCommandInfo(modelps)); } clist.Add(mcpslogbll.GetAddCommandInfo(modelpslog)); //会员服务卡使用给持卡人发短信 LYFZ.BLL.OrderPayment_Member.MemberServiceCardUse(modelcard.Mc_CustomerNumber, modelcard.Mc_CradNumber, StrContentText: StrContentText); //积分有效期 clist.AddRange(LYFZ.BLL.OrderPayment_Member.PointsChangeAutoValidity(modelcard.Mc_Number, modelcard.Mc_CradNumber)); string StrGradeName = LYFZ.BLL.OrderPayment_Member.GetMemberUpgradeData(modelcard.Mc_Number, IntGetPoints); if (StrGradeName != "") { modelcard.Mc_CardType = StrGradeName; } clist.Add(mcbll.GetUpdateCommandInfo(modelcard)); if (frm.clist.Count > 0) { clist.AddRange(frm.clist); } if (clist.Count > 0) { if (MessageBoxCustom.Show("确定要保存吗?", "温馨提示", MessageBoxButtons.YesNo) == DialogResult.No) { return; } if (LYFZ.BLL.BaseBllOperate.ExecuteSqlTran(clist) <= 0) { MessageBoxCustom.Show("保存失败"); return; } this.IsSaveed = true; #region 流程短信 System.Threading.Thread t = new System.Threading.Thread(new System.Threading.ThreadStart(delegate() { Model.SMSParameters sparameters = null; if (modelPm.StrPaymentMethod.Trim() == "BEBACCAFEGECFBJFD") { sparameters = new Model.SMSParameters(); sparameters.CardNumber = modelcard.Mc_CradNumber; sparameters.CurrentSpendingMemberID = modelcard.Mc_CustomerNumber; sparameters.CurrentSpendingAmount = modelPm.DelConfirmAmount; sparameters.AvailableBalance = modelcard.Mc_Money; try { smsTemplates.GenerateEventSMS(EnumPublic.SmsSendEvent.现金卡消费后X分钟后发提醒短信, sparameters); } catch { } } sparameters = new Model.SMSParameters(); sparameters.CurrentSpendingMemberID = modelcard.Mc_CustomerNumber; sparameters.AvailablePoints = modelps.Mcps_AvailablePoints; try { smsTemplates.GenerateEventSMS(EnumPublic.SmsSendEvent.当积分接近X的百分之80时, sparameters); } catch { } try { smsTemplates.GenerateEventSMS(EnumPublic.SmsSendEvent.当积分达到或超过X分时, sparameters); } catch { } })); t.Start(); #endregion if (LYFZ.BLL.BLL_ErpUser.GetRights(LYFZ.BLL.BLL_ErpUser.CurrentUserRights.MemberManage, LYFZ.CustomAttributes.OperatingAuthority.Print)) { LYFZ.Software.MainBusiness.MembershipManage.SuperSmallForm.RechargePrintMessageSuperSmallForm frmMesg = new SuperSmallForm.RechargePrintMessageSuperSmallForm(); frmMesg.ShowDialog(); if (frmMesg.IsSaveed) { Hashtable htDataX = new Hashtable(); htDataX["strNumber"] = strPaymentNumber; htDataX["strMcNumber"] = this.StrNumber; htDataX["strDate"] = strTime.ToString("yyyy-MM-dd HH:mm"); LYFZ.Software.MainBusiness.ReportPrint.ReportFixedFormat.PrintFixedFormat(LYFZ.EnumPublic.PrintTypeEnum.会员服务收款, htDataX); } } this.Close(); } } } } }