/// <summary> /// 计算注册的各项费用提成 /// </summary> /// <param name="zclx"></param> /// <param name="mainRow"></param> public void GetRegTC(string zclx) { TW_PaymentRow mainRow = null; if (TW_Payment.Rows.Count == 1) { mainRow = TW_Payment.Rows[0] as TW_PaymentRow; } else { throw new Exception("收款出错,没有TW_Payment主记录"); } mainRow.BeginEdit(); switch (zclx) { case "注册": mainRow.注册提成月 = GetCommissionRow().注册_单价; mainRow.注册团队提成 = GetCommissionRow().注册_单价 / 2; break; case "设立": mainRow.注册提成月 = GetCommissionRow().注册_单价; mainRow.注册团队提成 = GetCommissionRow().注册_单价 / 2; break; case "变更": case "注销": mainRow.注册提成月 = GetCommissionRow().注册_变更单价; mainRow.注册团队提成 = GetCommissionRow().注册_变更单价 / 2; break; case "验资": mainRow.注册提成月 = GetCommissionRow().注册_验资; mainRow.业务提成月 = mainRow.支付金额 * GetCommissionRow().业务_一次性业务成长版; break; case "审计": mainRow.注册提成月 = GetCommissionRow().注册_审计; mainRow.业务提成月 = mainRow.支付金额 * GetCommissionRow().业务_一次性业务其他; break; case "成长版": mainRow.注册提成月 = GetCommissionRow().注册_成长版; mainRow.业务提成月 = mainRow.支付金额 * GetCommissionRow().业务_一次性业务成长版; //业务员提1000 break; case "商标": mainRow.注册提成月 = GetCommissionRow().注册_商标; mainRow.业务提成月 = mainRow.支付金额 * GetCommissionRow().业务_一次性业务其他; break; default: mainRow.注册提成月 = GetCommissionRow().注册_变更单价; break; } mainRow.EndEdit(); }
/// <summary> /// 添加注册主记录 /// </summary> public void AddmainRegRow() { TW_PaymentRow row = null; if (TW_Payment.Rows.Count == 1) { row = TW_Payment.Rows[0] as TW_PaymentRow; } AddPaymentMainRow(row); }
/// <summary> /// 设置注册提成 /// </summary> public void SetRegTC() { if (TW_Payment.Rows.Count > 0) { TW_PaymentRow payRow = TW_Payment.Rows[0] as TW_PaymentRow; payRow.注册提成月 = 0; payRow.业务提成月 = 0; payRow.做账提成月 = 0; payRow.做账团队提成 = 0; payRow.业务团队提成 = 0; payRow.做账主管提成 = 0; payRow.注册团队提成 = 0; payRow.注册年提成 = 0; payRow.业务年提成 = 0; payRow.工本开票提成 = 0; payRow.做账业务团队提成 = 0; payRow.EndEdit(); } }
/// <summary> /// 选择付款明细 /// </summary> /// <param name="zclx">注册类型</param> /// <param name="mainID">付款ID</param> public void ImpPaymentDetail(string mainID, out string zclx) { foreach (DataRow row in VW_PaymentDetail.Rows) { var newRow = TW_PaymentDetail.NewTW_PaymentDetailRow(); newRow.TW_BusinessRegID = row["TW_BusinessRegID"].ToString(); newRow.TW_PaymentDetailID = Guid.NewGuid().ToString(); newRow.业务员 = row["业务员"].ToString(); newRow.业务员ID = row["业务员ID"].ToString(); newRow.注册员 = row["注册员"].ToString(); newRow.注册员ID = row["注册员ID"].ToString(); newRow.做账会计 = row["做账会计"].ToString(); newRow.做账会计ID = row["做账会计ID"].ToString(); newRow.客户名称 = row["公司预核名称"].ToString(); newRow.客户名称ID = row["TW_BusinessRegID"].ToString(); newRow.注册费 = decimal.Parse(row["注册费未收款"].ToString()); newRow.工本费 = decimal.Parse(row["工本费未收款"].ToString()); newRow.开票费 = decimal.Parse(row["开票费未收款"].ToString()); newRow.月做账费 = decimal.Parse(row["月做账费"].ToString()); newRow.收款日期 = DateTime.Now; newRow.TW_PaymentID = mainID; TW_PaymentDetail.Rows.Add(newRow); } if (VW_PaymentDetail.Rows.Count == 1 && TW_Payment.Rows.Count == 1) { string payCompany = VW_PaymentDetail.Rows[0]["公司预核名称"].ToString(); string payCompanyID = VW_PaymentDetail.Rows[0]["TW_BusinessRegID"].ToString(); zclx = VW_PaymentDetail.Rows[0]["注册类型"].ToString(); DataRow detailRow = VW_PaymentDetail.Rows[0]; TW_PaymentRow mainRow = this.TW_Payment.Rows[0] as TW_PaymentRow; mainRow.BeginEdit(); mainRow["支付单位"] = payCompany; mainRow["客户名称ID"] = payCompanyID; mainRow.业务员 = detailRow["业务员"].ToString(); mainRow.业务员ID = detailRow["业务员ID"].ToString(); mainRow.注册员 = detailRow["注册员"].ToString(); mainRow.注册员ID = detailRow["注册员ID"].ToString(); mainRow.做账会计 = detailRow["做账会计"].ToString(); mainRow.做账会计ID = detailRow["做账会计ID"].ToString(); switch (zclx) { case "成长版": mainRow["收款类别"] = "成长版收款"; break; case "验资": case "审计": case "商标": mainRow["收款类别"] = "其他一次性业务收款"; break; default: mainRow["收款类别"] = "注册收款"; break; } mainRow.EndEdit(); } else { zclx = "其他"; } }
/// <summary> /// 计算做账提成 /// </summary> public void GetZCTC(TW_PaymentRow mainRow) { var comRow = GetCommissionRow(); if (mainRow.零申报 == false) { var kjrow = TCOM_USER.FindByUSERID(mainRow.做账会计ID); switch (kjrow.WorkType) { case "二级部门经理": mainRow.做账提成月 = mainRow.月平均费 * comRow.做账_提成; mainRow.工本开票提成 = (mainRow.工本费 + mainRow.开票费) * comRow.做账_工本提成; mainRow.做账主管提成 = mainRow.月平均费 * comRow.做账_团队提成; break; case "会计主管": mainRow.做账提成月 = mainRow.月平均费 * comRow.做账_提成; mainRow.工本开票提成 = (mainRow.工本费 + mainRow.开票费) * comRow.做账_工本提成; break; default: mainRow.做账提成月 = mainRow.月平均费 * comRow.做账_提成; mainRow.工本开票提成 = (mainRow.工本费 + mainRow.开票费) * comRow.做账_工本提成; mainRow.做账团队提成 = mainRow.月平均费 * comRow.做账_经理提层; mainRow.做账主管提成 = mainRow.月平均费 * comRow.做账_团队提成; break; } if (!string.IsNullOrEmpty(mainRow.业务员ID)) { var ywyRow = TCOM_USER.FindByUSERID(mainRow.业务员ID); if (ywyRow == null) { throw new Exception("做账会计ID出错!"); } switch (ywyRow.WorkType) { case "业务主管": if (mainRow.首年提成结束期 >= mainRow.本次到期月份) { mainRow.业务提成月 = mainRow.月平均费 * comRow.业务_做账提成; } else { mainRow.业务提成月 = mainRow.月平均费 * comRow.业务_做账次年提成; } break; case "二级部门经理": case "会计主管": { mainRow.业务提成月 = mainRow.月平均费 * comRow.其他业务提成; } break; default: if (ywyRow.DEPTNAME != "业务部") //其他部门 { mainRow.业务提成月 = mainRow.月平均费 * comRow.其他业务提成; if (ywyRow.DEPTNAME != "注册部") { mainRow.做账业务团队提成 = mainRow.月平均费 * comRow.做账_经理提层; } } else //业务部 { if (mainRow.首年提成结束期 >= mainRow.本次到期月份) { mainRow.业务提成月 = mainRow.月平均费 * comRow.业务_做账提成; } else { mainRow.业务提成月 = mainRow.月平均费 * comRow.业务_做账次年提成; } mainRow.业务团队提成 = mainRow.月平均费 * comRow.业务_主管团队提成; } break; } } if (!string.IsNullOrEmpty(mainRow.注册员ID)) { var zycRow = TCOM_USER.FindByUSERID(mainRow.注册员ID); { if (mainRow.首年提成结束期 >= mainRow.本次到期月份) { mainRow.注册年提成 = mainRow.月平均费 * comRow.注册_年做账费提成; } } } } else //零申报 { } }
/// <summary> /// 拆分收款,才分成每个月一笔收款 /// </summary> public void CFPayments(int month, DataRow aRow) { TW_PaymentRow paymentRow = aRow as TW_PaymentRow; DateTime startDate = paymentRow.次到期月份; //开始拆分记录 for (int i = 1; i <= month; i++) { var row = this.TW_Payment.NewTW_PaymentRow(); row.TW_PaymentID = Guid.NewGuid().ToString(); row.次到期月份 = new DateTime(startDate.Year, startDate.Month, 1); //一号 row.本次到期月份 = new DateTime(startDate.Year, startDate.Month, DateTime.DaysInMonth(startDate.Year, startDate.Month)); //月末 row.缴费月数 = 1; if (!paymentRow.Is客户名称IDNull()) { row.客户名称ID = paymentRow.客户名称ID; } row.支付单位 = paymentRow.支付单位; row.做账会计 = paymentRow.做账会计; row.做账会计ID = paymentRow.做账会计ID; if (!paymentRow.Is业务员Null()) { row.业务员 = paymentRow.业务员; } if (!paymentRow.Is业务员IDNull()) { row.业务员ID = paymentRow.业务员ID; } if (!paymentRow.Is注册员Null()) { row.注册员 = paymentRow.注册员; } if (!paymentRow.Is注册员IDNull()) { row.注册员ID = paymentRow.注册员ID; } row.做账会计 = paymentRow.做账会计; row.做账会计ID = paymentRow.做账会计ID; row.月平均费 = paymentRow.月平均费; row.月做账费 = paymentRow.月平均费; if (!paymentRow.Is备注Null()) { row.备注 = string.Format("自动拆分,源金额:{0}元", paymentRow.支付金额) + " " + paymentRow.备注; } else { row.备注 = string.Format("自动拆分,源金额:{0}元", paymentRow.支付金额); } row.支付金额 = paymentRow.月平均费; row.支付日期 = paymentRow.支付日期; row.支付单位 = paymentRow.支付单位; if (!paymentRow.Is支付方式Null()) { row.支付方式 = paymentRow.支付方式; } else { row.支付方式 = "其他"; } row.收款人 = paymentRow.收款人; row.收款类别 = paymentRow.收款类别; if (!paymentRow.Is是否审核Null()) { row.是否审核 = paymentRow.是否审核; } else { row.是否审核 = false; } if (!paymentRow.Is审核人Null()) { row.审核人 = paymentRow.审核人; } if (!paymentRow.Is审核时间Null()) { row.审核时间 = paymentRow.审核时间; } if (!paymentRow.Is零申报Null()) { row.零申报 = paymentRow.零申报; } else { row.零申报 = false; } if (!paymentRow.Is首年提成结束期Null()) { row.首年提成结束期 = paymentRow.首年提成结束期; } if (!paymentRow.Is银行账号Null()) { row.银行账号 = paymentRow.银行账号; } if (!paymentRow.Is不收款Null()) { row.收款 = paymentRow.收款; } else { row.收款 = false; } row.操作人 = paymentRow.操作人; row.操作时间 = paymentRow.操作时间; if (i == 1) { row.工本费 = paymentRow.工本费; row.开票费 = paymentRow.开票费; } else { row.工本费 = 0; row.开票费 = 0; } this.TW_Payment.AddTW_PaymentRow(row); startDate = startDate.AddMonths(1); } //this.TW_Payment.RemoveTW_PaymentRow(paymentRow); //删除源记录 }
/// <summary> /// 拆分收款,才分成每个月一笔收款 /// </summary> public void CFPayment(int month, DataRow aRow) { TW_PaymentRow paymentRow = aRow as TW_PaymentRow; string pch = paymentRow.TW_PaymentID; DateTime startDate = paymentRow.次到期月份; decimal sumprice = paymentRow.月平均费 * month; decimal firstmonth = paymentRow.支付金额 - sumprice; //开始拆分记录 for (int i = 1; i <= month; i++) { var row = this.TW_Payment.NewTW_PaymentRow(); row.TW_PaymentID = Guid.NewGuid().ToString(); row.次到期月份 = new DateTime(startDate.Year, startDate.Month, 1); //一号 row.本次到期月份 = new DateTime(startDate.Year, startDate.Month, DateTime.DaysInMonth(startDate.Year, startDate.Month)); //月末 row.缴费月数 = 1; row.客户名称ID = paymentRow.客户名称ID; row.支付单位 = paymentRow.支付单位; row.做账会计 = paymentRow.做账会计; row.做账会计ID = paymentRow.做账会计ID; row.业务员 = paymentRow.业务员; row.业务员ID = paymentRow.业务员ID; row.注册员 = paymentRow.注册员; row.注册员ID = paymentRow.注册员ID; if (i == 1) { row.月平均费 = paymentRow.月平均费 + firstmonth; row.月做账费 = paymentRow.月平均费 + firstmonth; row.支付金额 = paymentRow.月平均费 + firstmonth; } else { row.月平均费 = paymentRow.月平均费; row.月做账费 = paymentRow.月平均费; row.支付金额 = paymentRow.月平均费; } if (!paymentRow.Is备注Null()) { row.备注 = string.Format("自动拆分,源金额:{0}元", paymentRow.支付金额) + " " + paymentRow.备注; } else { row.备注 = string.Format("自动拆分,源金额:{0}元", paymentRow.支付金额); } row.支付日期 = paymentRow.支付日期; row.支付单位 = paymentRow.支付单位; row.支付方式 = paymentRow.支付方式; row.收款人 = paymentRow.收款人; row.收款类别 = paymentRow.收款类别; row.是否审核 = false; row.注册提成月 = 0; row.业务提成月 = 0; row.做账提成月 = 0; row.做账团队提成 = 0; row.业务团队提成 = 0; row.做账主管提成 = 0; row.注册团队提成 = 0; row.注册年提成 = 0; row.业务年提成 = 0; row.工本开票提成 = 0; row.做账业务团队提成 = 0; row.批次号 = pch; if (!paymentRow.Is零申报Null()) { row.零申报 = paymentRow.零申报; } else { row.零申报 = false; } if (!paymentRow.Is首年提成结束期Null()) { row.首年提成结束期 = paymentRow.首年提成结束期; } if (!paymentRow.Is银行账号Null()) { row.银行账号 = paymentRow.银行账号; } //if (!paymentRow.Is初始做账时间Null()) // row.初始做账时间 = paymentRow.初始做账时间; if (!paymentRow.Is不收款Null()) { row.收款 = paymentRow.收款; } else { row.收款 = false; } row.操作人 = Security.UserName; row.操作时间 = DateTime.Now; if (i == 1) { row.工本费 = paymentRow.工本费; row.开票费 = paymentRow.开票费; } else { row.工本费 = 0; row.开票费 = 0; } GetZCTC(row); this.TW_Payment.AddTW_PaymentRow(row); startDate = startDate.AddMonths(1); } this.TW_Payment.RemoveTW_PaymentRow(paymentRow); //删除源记录 }
/// <summary> /// 添加一个收款主记录 /// </summary> /// <param name="mainRow"></param> public void AddPaymentMainRow(TW_PaymentRow mainRow) { TW_PaymentMainRow paymentMain = this.TW_PaymentMain.NewTW_PaymentMainRow(); paymentMain.TW_PaymentID = mainRow.TW_PaymentID; paymentMain.批次号 = mainRow.TW_PaymentID; paymentMain.支付单位 = mainRow.支付单位; paymentMain.支付金额 = mainRow.支付金额; paymentMain.支付日期 = mainRow.支付日期; paymentMain.支付方式 = mainRow.支付方式; paymentMain.收款人 = mainRow.收款人; paymentMain.收款类别 = mainRow.收款类别; if (!mainRow.Is备注Null()) { paymentMain.备注 = mainRow.备注; } paymentMain.客户名称ID = mainRow.客户名称ID; paymentMain.操作人 = mainRow.操作人; paymentMain.操作时间 = mainRow.操作时间; paymentMain.工本费 = mainRow.工本费; paymentMain.开票费 = mainRow.开票费; if (!mainRow.Is做账会计Null()) { paymentMain.做账会计 = mainRow.做账会计; } if (!mainRow.Is上次到期月份Null()) { paymentMain.次到期月份 = mainRow.次到期月份; } if (!mainRow.Is本次到期月份Null()) { paymentMain.本次到期月份 = mainRow.本次到期月份; } if (!mainRow.Is做账会计IDNull()) { paymentMain.做账会计ID = mainRow.做账会计ID; } if (!mainRow.Is业务员Null()) { paymentMain.业务员 = mainRow.业务员; } if (!mainRow.Is业务员IDNull()) { paymentMain.业务员ID = mainRow.业务员ID; } paymentMain.注册员 = mainRow.注册员; paymentMain.注册员ID = mainRow.注册员ID; paymentMain.缴费月数 = mainRow.缴费月数; paymentMain.月平均费 = mainRow.月平均费; paymentMain.月做账费 = mainRow.月平均费; if (!mainRow.Is零申报Null()) { paymentMain.零申报 = mainRow.零申报; } else { paymentMain.零申报 = false; } if (!mainRow.Is首年提成结束期Null()) { paymentMain.首年提成结束期 = mainRow.首年提成结束期; } if (!mainRow.Is银行账号Null()) { paymentMain.银行账号 = mainRow.银行账号; } if (!mainRow.Is不收款Null()) { paymentMain.收款 = mainRow.收款; } else { paymentMain.收款 = false; } paymentMain.是否审核 = false; this.TW_PaymentMain.AddTW_PaymentMainRow(paymentMain); mainRow.批次号 = paymentMain.批次号; //paymentMain.做账会计已提 = mainRow.做账会计已提; //paymentMain.注册员已提 = mainRow.注册员已提; //paymentMain.业务员已提 = mainRow.业务员已提; }