private void InitData() { Task.Factory.StartNew(() => { QueryParameter = new SalesRebateQueryParameterModel() { SettleDateEnd1 = DateTime.Now.AddYears(-1).Date, SettleDateEnd2 = DateTime.Now.Date }; BatchParameter = new SalesRebateBatchParameterModel() { SettleDateBegin = DateTime.Now.AddMonths(-1).Date, SettleDateEnd = DateTime.Now.Date }; var enums = CommonService.GetEnumLists(); RebateClassLists = enums.Where(x => x.GroupSeq == 6); OrganizationLists = ComboBoxSearchService.GetOrganizationLists(); HostConfig = CommonService.GetHostConfig(DataGridId, HostName, User.ID) ?? new HostConfigModel() { TypeId = DataGridId, Host = HostName, UserId = User.ID, TypeDesciption = "客户案子销售返利" }; Token = K3ApiXService.GetToken(); UIExecute.RunAsync(() => { QueryBaseCommand.Execute(null); }); }); }
private void InitCommand() { QueryBaseCommand = new DelegateCommand((obj) => { SalesRebateSummaryLists.Clear(); ListsCount = 0; ListsSum = 0; SalesRebateLists.Clear(); RebatePctValueString = string.Empty; _salesRebateService.GetSalesRebateSummaryLists(UserDataId, CommonService.GetSqlWhereString(QueryParameter)).ForEach(x => { SalesRebateSummaryLists.Add(x); ListsSum += x.OrgAmount; ListsCount++; }); }); DirectorySelectBaseCommand = new DelegateCommand((obj) => { // 导出目录选择 System.Windows.Forms.FolderBrowserDialog fbd = new System.Windows.Forms.FolderBrowserDialog(); if (fbd.ShowDialog() == System.Windows.Forms.DialogResult.OK) { HostConfig.HostValue = fbd.SelectedPath; var result = CommonService.SaveHostConfig(HostConfig); if (result) { HostConfig = CommonService.GetHostConfig(DataGridId, HostName, User.ID); } } }); ExportBaseCommand = new DelegateCommand((obj) => { if (Directory.Exists(HostConfig.HostValue)) { ExportView view = new ExportView(DataGridId, 1); (view.DataContext as ExportViewModel).Export((type, outputEntity, checkBoxValue, orderedColumns) => { view.Close(); if (type == 1) { DataTable datatable = new DataTable(); if (outputEntity == 1) { // 获取导出数据名称 string viewName = CommonService.GetExportViewName(DataGridId, 1); if (!string.IsNullOrEmpty(viewName)) { datatable = viewName.EndsWith("Proc")? _salesRebateService.GetExportDataProc(viewName, ReportQueryParameter): CommonService.GetExportDataView(viewName, CommonService.GetSqlWhereString(ReportQueryParameter)); ExportHelper.ExportDataTableToExcel(datatable, HostConfig.HostValue, HostConfig.TypeDesciption + CommonService.GetQueryParameterValueString(ReportQueryParameter)); MessageBox.Show("导出成功"); } } else if (outputEntity == 2) { // 获取导出数据名称 string viewName = CommonService.GetExportViewName(DataGridId, 2); if (!string.IsNullOrEmpty(viewName)) { datatable = viewName.EndsWith("Proc") ? _salesRebateService.GetExportDataProc(viewName, ReportQueryParameter) : CommonService.GetExportDataView(viewName, CommonService.GetSqlWhereString(ReportQueryParameter)); ExportHelper.ExportDataTableToExcel(datatable, HostConfig.HostValue, HostConfig.TypeDesciption + CommonService.GetQueryParameterValueString(ReportQueryParameter)); MessageBox.Show("导出成功"); } } else if (outputEntity == 3) { // 获取导出数据名称 string procName = CommonService.GetExportViewName(DataGridId, 3); if (!string.IsNullOrEmpty(procName)) { datatable = CommonService.GetExportDataProcedure(procName, UserDataId, string.Join(",", orderedColumns), CommonService.GetSqlWhereString(ReportQueryParameter)); ExportHelper.ExportDataTableToExcel(datatable, HostConfig.HostValue, HostConfig.TypeDesciption + CommonService.GetQueryParameterValueString(ReportQueryParameter), checkBoxValue, orderedColumns, false, "", false); MessageBox.Show("导出成功"); } } } }); view.ShowDialog(); } else { MessageBox.Show("目录不存在,请先选择导出的目录"); DirectorySelectBaseCommand.Execute(null); } CommonService.WriteActionLog(new ActionOperationLogModel { ActionName = "ExportBaseCommand", ActionDesc = HostConfig.TypeDesciption + CommonService.GetQueryParameterValueString(QueryParameter), UserId = User.ID, MainMenuId = Menu.ID, PKId = -1, HostName = HostName }); }); SalesRebateRecentParameterConfigCommand = new DelegateCommand((obj) => { if (BatchParameter.OrganizationSearchedItem != null && BatchParameter.RebateClassSeletedItem != null) { if (BatchParameterVerification(out DateTime maxDate)) { if (_salesRebateService.IfExistsOrgICSaleBill(BatchParameter)) { SalesRebateRecentParameterView view = new SalesRebateRecentParameterView(BatchParameter); (view.DataContext as SalesRebateRecentParameterViewModel).WithParam(null, (type, outputEntity, isChanged) => { view.Close(); if (isChanged) { // 计算刚才配置的参数 _salesRebateService.CalculateAmount(BatchParameter, User.ID, true); // 查询出刚生成的数据 QueryBaseCommand.Execute(null); } }); view.Show(); CommonService.WriteActionLog(new ActionOperationLogModel { ActionName = "SalesRebateRecentParameterConfigCommand", ActionDesc = CommonService.GetSqlWhereString(BatchParameter), UserId = User.ID, MainMenuId = Menu.ID, PKId = -1, HostName = HostName }); } else { MessageBox.Show($"【{BatchParameter.SettleDateBegin}】至【{BatchParameter.SettleDateEnd}】 ,客户【{BatchParameter.OrganizationSearchedItem.Name}】 没有K3销售单据"); } } else { MessageBox.Show($"【{maxDate}】 该类型【{BatchParameter.RebateClassSeletedItem.ItemValue} 】已经返利,同时间点不能多次返利"); } } else { MessageBox.Show("请先输入客户和返利类别"); } }); SalesRebateK3ApiInsertCommand = new DelegateCommand((obj) => { StringBuilder stringBuilder = new StringBuilder(); if (SalesRebateSummarySelectedItem != null && string.IsNullOrEmpty(SalesRebateSummarySelectedItem.K3BillNo) && SalesRebateLists.Count > 0) { var maxDate = _salesRebateService.GetMaxSettleDateByOrgId(BatchParameter.OrganizationSearchedItem.Id, BatchParameter.RebateClassSeletedItem.ItemSeq); if (SalesRebateSummarySelectedItem.SettleDateBegin > maxDate && SalesRebateSummarySelectedItem.SettleDateEnd > maxDate) { SalesInvoiceVATMainModel main = new SalesInvoiceVATMainModel { Fdate = SalesRebateSummarySelectedItem.SettleDateEnd.AddDays(5).ToString("yyyy-MM-dd"), FCustID = K3ApiFKService.GetOrganizationById(SalesRebateSummarySelectedItem.OrgId), FBillerID = new BaseNumberNameModelX { FNumber = User.UserName, FName = User.UserName }, FNote = "结算日期:" + SalesRebateSummarySelectedItem.SettleDateBegin.Date.ToString("yyyy-MM-dd") + "至" + SalesRebateSummarySelectedItem.SettleDateEnd.Date.ToString("yyyy-MM-dd") }; var son = new SalesInvoiceVATSonModel { Fauxprice = SalesRebateSummarySelectedItem.OrgAmount, Famount = SalesRebateSummarySelectedItem.OrgAmount * main.FROB, FStdAmount = SalesRebateSummarySelectedItem.OrgAmount * main.FROB, FTaxRate = SalesRebateSummarySelectedItem.OrgAmount * 0.13, FTaxAmount = SalesRebateSummarySelectedItem.OrgAmount * 0.13 * main.FROB, FStdTaxAmount = SalesRebateSummarySelectedItem.OrgAmount * 0.13 * main.FROB, FAllAmount = SalesRebateSummarySelectedItem.OrgAmount * (1 + 0.13), FAuxTaxPrice = SalesRebateSummarySelectedItem.OrgAmount * (1 + 0.13), FAuxPriceDiscount = SalesRebateSummarySelectedItem.OrgAmount * (1 + 0.13), FAmountincludetax = SalesRebateSummarySelectedItem.OrgAmount * (1 + 0.13) * main.FROB, FStdAmountincludetax = SalesRebateSummarySelectedItem.OrgAmount * (1 + 0.13) * main.FROB, FRemainAmount = SalesRebateSummarySelectedItem.OrgAmount * (1 + 0.13) * main.FROB, FRemainAmountFor = SalesRebateSummarySelectedItem.OrgAmount * (1 + 0.13) * main.FROB, }; var requestModel = new K3ApiInsertRequestModel <SalesInvoiceVATMainModel, SalesInvoiceVATSonModel>() { Data = new K3ApiInsertDataRequestModel <SalesInvoiceVATMainModel, SalesInvoiceVATSonModel>() { Page1 = new List <SalesInvoiceVATMainModel> { main }, Page2 = new List <SalesInvoiceVATSonModel> { son } } }; string postJson = JsonHelper.ObjectToJson(requestModel); K3ApiInsertResponseModel response = K3ApiXService.Insert(Token, "Sales_Invoice_VAT", postJson); if (response.StatusCode == 200) { // 更新后台数据 _salesRebateService.UpdateK3BillNo(SalesRebateSummarySelectedItem.Id, response.Data.BillNo, SalesRebateSummarySelectedItem.SettleDateEnd.AddDays(5)); stringBuilder.Append($"成功 BillNo:{response.Data.BillNo}, SettleDateBegin:{SalesRebateSummarySelectedItem.SettleDateBegin}, SettleDateEnd:{SalesRebateSummarySelectedItem.SettleDateEnd},OrgId: {SalesRebateSummarySelectedItem.OrgId}, RebateClass:{SalesRebateSummarySelectedItem.RebateClass}"); } else { MessageBox.Show(response.Message); stringBuilder.Append($"{response.Message}"); CommonService.WriteActionLog(new ActionOperationLogModel { ActionName = "SalesRebateRecentParameterConfigCommand", ActionDesc = stringBuilder.ToString(), UserId = User.ID, MainMenuId = Menu.ID, PKId = -1, HostName = HostName }); return; } } else { MessageBox.Show($"【{maxDate}】 该类型【{BatchParameter.RebateClassSeletedItem.ItemValue} 】已经返利,同时间点不能多次返利"); } } //重新加载数据 QueryBaseCommand.Execute(null); CommonService.WriteActionLog(new ActionOperationLogModel { ActionName = "SalesRebateK3ApiInsertCommand", ActionDesc = stringBuilder.ToString(), UserId = User.ID, MainMenuId = Menu.ID, PKId = -1, HostName = HostName }); }); SalesRebateK3ApiRemoveCommand = new DelegateCommand((obj) => { // 弹出删除提示 if (MessageBox.Show($"此操作会将K3单据和本条记录同时删除", "温馨提示", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { if (SalesRebateSummarySelectedItem != null && !string.IsNullOrEmpty(SalesRebateSummarySelectedItem.K3BillNo)) { string k3BillNo = SalesRebateSummarySelectedItem.K3BillNo; // 可选参数FInterID,当FBillNo重复时传入,【只删除明细行】 string postJson = @"{""Data"": {""FBillNo"":""" + k3BillNo + @"""}}"; var response = K3ApiXService.Delete(Token, "Sales_Invoice_VAT", postJson); // 如果Token过期则重新加载 if (response.StatusCode == 200) { if (_salesRebateService.SummaryDelete(SalesRebateSummarySelectedItem.Id, SalesRebateSummarySelectedItem.Guid)) { MessageBox.Show("删除K3单据成功"); } else { MessageBox.Show("后台删除失败,单据不存在"); } } else if (response.Message.IndexOf("token", StringComparison.OrdinalIgnoreCase) > 0) { Token = K3ApiXService.GetToken(); response = K3ApiXService.Delete(Token, "Sales_Invoice_VAT", postJson); MessageBox.Show(response.Message); } else { MessageBox.Show(response.Message); } CommonService.WriteActionLog(new ActionOperationLogModel { ActionName = "SalesRebateK3ApiRemoveCommand", ActionDesc = k3BillNo, UserId = User.ID, MainMenuId = Menu.ID, PKId = -1, HostName = HostName }); QueryBaseCommand.Execute(null); } else { MessageBox.Show("一次只能选择一个K3单据且已经生成过K3单据"); } } }); DetailSelectionChangedCommand = new DelegateCommand((obj) => { if (SalesRebateSelectedItem != null) { var lists = _salesRebateAmountRangeService.GetSalesRebateAmountRangeRecentParameterLists(SalesRebateSelectedItem.PGuid); if (lists.Count > 0) { StringBuilder result = new StringBuilder(); foreach (var item in lists) { result.Append($"金额区间:{item.AmountLower}-{item.AmountUpper} 万元 比例:{item.SalesRebatePctValue}% \t\t"); } RebatePctValueString = result.ToString(); } else { RebatePctValueString = string.Empty; } } }); SummarySelectionChangedCommand = new DelegateCommand((obj) => { if (SalesRebateSummarySelectedItem != null) { RebatePctValueString = string.Empty; SalesRebateLists.Clear(); _salesRebateService.GetSalesRebateListsByGuid(SalesRebateSummarySelectedItem.Guid).ForEach(x => SalesRebateLists.Add(x)); } }); SalesRebateSummaryDeleteCommand = new DelegateCommand((obj) => { if (SalesRebateSummarySelectedItem != null && string.IsNullOrEmpty(SalesRebateSummarySelectedItem.K3BillNo)) { _salesRebateService.SummaryDelete(SalesRebateSummarySelectedItem.Id, SalesRebateSummarySelectedItem.Guid); QueryBaseCommand.Execute(null); } }); ReportQueryCommand = new DelegateCommand((obj) => { ReportLists.Clear(); _salesRebateService.GetCaseAmountReport(ReportQueryParameter).ForEach(x => ReportLists.Add(x)); }); AmountCalculateCommand = new DelegateCommand((obj) => { if (BatchParameterVerification(out DateTime maxDate)) { // 计算刚才配置的参数 _salesRebateService.CalculateAmount(BatchParameter, User.ID, false); // 查询出刚生成的数据 QueryBaseCommand.Execute(null); } else { MessageBox.Show($"【{maxDate}】 该类型【{BatchParameter.RebateClassSeletedItem.ItemValue} 】已经返利,同时间点不能多次返利"); } }); }