Browse Source

需求单No.137527

master
luanhui 8 years ago
parent
commit
7546e91e6c
5 changed files with 291 additions and 1 deletions
  1. +6
    -0
      BWP.B3_YunKen.Web/BWP.B3_YunKen.Web.csproj
  2. +184
    -0
      BWP.B3_YunKen.Web/Pages/B3YunKen/Reports/CustomerStopByTaskReport.cs
  3. +91
    -0
      BWP.B3_YunKen.Web/Pages/B3YunKen/Reports/CustomerStopByTaskReport.xml
  4. +5
    -1
      BWP.B3_YunKen/TimerTask/NullifyCustomerTask.cs
  5. +5
    -0
      WebFolder/Config/Plugins/B3_YunKen.Plugin

+ 6
- 0
BWP.B3_YunKen.Web/BWP.B3_YunKen.Web.csproj View File

@ -100,6 +100,9 @@
<Compile Include="Pages\B3YunKen\Overlays\SaleOutStoreEdit_Ext.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3YunKen\Reports\CustomerStopByTaskReport.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Pages\B3YunKen\SaleForecastUpdateList_\SaleForecastUpdateEdit.cs">
<SubType>ASPXCodeBehind</SubType>
</Compile>
@ -145,6 +148,9 @@
<ItemGroup>
<EmbeddedResource Include="Pages\B3YunKen\B3YunKenSaleOutStoreToCustomerAccept.xml" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Pages\B3YunKen\Reports\CustomerStopByTaskReport.xml" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.


+ 184
- 0
BWP.B3_YunKen.Web/Pages/B3YunKen/Reports/CustomerStopByTaskReport.cs View File

@ -0,0 +1,184 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.UI.WebControls;
using BWP.B3Frameworks;
using BWP.B3Frameworks.BO;
using BWP.B3Frameworks.BO.NamedValueTemplate;
using BWP.B3Sale.BO;
using BWP.B3UnitedInfos;
using BWP.Web.Layout;
using BWP.Web.Utils;
using BWP.Web.WebControls;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.EnterpriseServices.SqlDoms;
using TSingSoft.WebControls2;
namespace BWP.Web.Pages.B3YunKen.Reports
{
class CustomerStopByTaskReport : DFBrowseGridReportPage<Customer>
{
protected override string Caption
{
get { return "客户停用表"; }
}
protected override string AccessRoleName
{
get { return "B3_YunKen.报表.客户停用表"; }
}
// protected override string QueryOptionsTabName
// {
// get
// {
// return "显示字段";
// }
// }
// ReportDisplayOptionHelper mDisplayHelper = new ReportDisplayOptionHelper();
protected override void AddQueryControls(VLayoutPanel vPanel)
{
var layout = new LayoutManager("Main", mDFInfo, mQueryContainer);
var config = new AutoLayoutConfig { Cols = 2 };
config.Add("ID");
config.Add("Code");
config.Add("Name");
config.Add("Department_ID");
config.Add("Employee_ID");
config.Add("SaleZone_ID");
config.Add("CustomerCatalog_ID");
config.Add("AccountCustomer_ID");
layout.Config = config;
vPanel.Add(layout.CreateLayout());
}
private CheckBoxListWithReverseSelect _checkbox;
protected override void InitQueryPanel(QueryPanel queryPanel)
{
base.InitQueryPanel(queryPanel);
var panel = queryPanel.CreateTab("显示字段");
_checkbox = new CheckBoxListWithReverseSelect { RepeatColumns = 6, RepeatDirection = RepeatDirection.Horizontal };
_checkbox.Items.Add(new ListItem("单号", "ID"));
_checkbox.Items.Add(new ListItem("客户名称", "Name"));
_checkbox.Items.Add(new ListItem("结账客户", "AccountCustomer_Name"));
_checkbox.Items.Add(new ListItem("是否经销商", "IsDealers"));
_checkbox.Items.Add(new ListItem("经销商", "经销商"));
_checkbox.Items.Add(new ListItem("联系人", "联系人"));
_checkbox.Items.Add(new ListItem("移动电话", "移动电话"));
_checkbox.Items.Add(new ListItem("客户分类", "CustomerCatalog_Name"));
_checkbox.Items.Add(new ListItem("销售地区", "SaleZone_Name"));
_checkbox.Items.Add(new ListItem("销售人员", "Employee_Name"));
_checkbox.Items.Add(new ListItem("信用政策", "PriceStrategy_Name"));
_checkbox.Items.Add(new ListItem("上次停用时间", "上次停用时间"));
_checkbox.Items.Add(new ListItem("停用原因", "停用原因"));
_checkbox.Items.Add(new ListItem("最后一次发货时间", "LastGoodsOutStoreDate"));
panel.EAdd(_checkbox);
mQueryControls.Add("显示字段", _checkbox);
mQueryControls.EnableHoldLastControlNames.Add("显示字段");
}
private DQueryDom GetLastStopTime(JoinAlias bill)
{
var join=new JoinAlias(typeof(EntityInternalLog));
var query=new DQueryDom(join);
query.Where.Conditions.Add(DQCondition.EQ(join, "EntityTypeID",DmoTypeIDAttribute.GetID(typeof(Customer))));
query.Where.Conditions.Add(DQCondition.EQ(join, "EntityID", bill,"ID"));
query.Where.Conditions.Add(DQCondition.EQ(join, "Operate", "停用"));
query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID",true));
query.Columns.Add(DQSelectColumn.Field("Time", join));
query.Range=SelectRange.Top(1);
return query;
}
private DQueryDom GetLinkPhone(JoinAlias bill)
{
var link = new JoinAlias("linkphone", typeof(CustomerLinkMan_Detail));
var query = new DQueryDom(link);
query.Range = SelectRange.Top(1);
query.Where.Conditions.Add(DQCondition.EQ(link, "Customer_ID", bill, "ID"));
query.Columns.Add(DQSelectColumn.Field("CellPhone", link));
return query;
}
private DQueryDom GetLinkName(JoinAlias bill)
{
var link=new JoinAlias("linkname", typeof(CustomerLinkMan_Detail));
var query=new DQueryDom(link);
query.Range=SelectRange.Top(1);
query .Where.Conditions.Add(DQCondition.EQ(link, "Customer_ID", bill,"ID"));
query.Columns.Add(DQSelectColumn.Field("LinkManName", link));
return query;
}
protected override DQueryDom GetQueryDom()
{
var query = base.GetQueryDom();
var bill = query.From.RootSource.Alias;
foreach (ListItem field in _checkbox.Items)
{
if (field.Selected)
{
switch (field.Text)
{
case "单号":
case "客户名称":
case "结账客户":
case "是否经销商":
case "客户分类":
case "销售人员":
case "销售地区":
case "信用政策":
case "最后一次发货时间":
query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(field.Value), field.Text));
// query.GroupBy.Expressions.Add(DQExpression.Field( "Zone_Name"));
break;
case "停用原因":
query.Columns.Add(DQSelectColumn.Create(DQExpression.Value("3月内未发货,自动停用"),field.Text));
break;
case "联系人":
query.Columns.Add(DQSelectColumn.Create(DQExpression.SubQuery(GetLinkName(bill)), field.Text));
break;
case "移动电话":
query.Columns.Add(DQSelectColumn.Create(DQExpression.SubQuery(GetLinkPhone(bill)), field.Text));
break;
case "上次停用时间":
query.Columns.Add(DQSelectColumn.Create(DQExpression.SubQuery(GetLastStopTime(bill)), field.Text));
break;
case "经销商":
var jxs = DQExpression.LogicCase(DQCondition.EQ("IsDealers", DQExpression.Value(true)),DQExpression.Field("Name"),DQExpression.SubQuery(GetJingXiaoShang(bill)));
query.Columns.Add(DQSelectColumn.Create(jxs, field.Text));
break;
}
}
}
query.Where.Conditions.Add(DQCondition.EQ("Stopped", true));
query.Where.Conditions.Add(DQCondition.EQ("StopedByCustomerTask", true));
return query;
}
private DQueryDom GetJingXiaoShang(JoinAlias bill)
{
var dbill=new JoinAlias("dbill", typeof(Dealer));
var ddetail=new JoinAlias("ddetail", typeof(Dealer_Detail));
var query=new DQueryDom(dbill);
query.From.AddJoin(JoinType.Left,new DQDmoSource(ddetail), DQCondition.EQ(dbill,"ID",ddetail, "Dealer_ID"));
query.Where.Conditions.Add(DQCondition.EQ(bill,"ID",ddetail, "Customer_ID"));
query.Columns.Add(DQSelectColumn.Field("Customer_Name",dbill));
return query;
}
}
}

+ 91
- 0
BWP.B3_YunKen.Web/Pages/B3YunKen/Reports/CustomerStopByTaskReport.xml View File

@ -0,0 +1,91 @@
<?xml version="1.0" encoding="utf-8" ?>
<Select xmlns="urn:XDQuery">
<Columns>
</Columns>
<From>
<DmoClass class="BWP.B3Sale.BO.Customer, B3Sale" alias="bill"/>
</From>
<Where>
<And>
<EQ>
<Field name="ID"/>
<QBE paramName="ID"/>
</EQ>
<Or>
<Like>
<Field name="Name"/>
<QBE paramName="Name"/>
</Like>
<Like>
<Field name="Spell"/>
<QBE paramName="Name"/>
</Like>
</Or>
<EQ>
<Field name="Stopped"/>
<QBE paramName="Stopped"/>
</EQ>
<EQ>
<Field name="IsLocked"/>
<QBE paramName="IsLocked"/>
</EQ>
<Like>
<Field name="Remark"/>
<QBE paramName="Remark"/>
</Like>
<Like>
<Field name="Code"/>
<QBE paramName="Code"/>
</Like>
<EQ>
<Field name="CustomerCatalog_ID" paramName="GetCustomerCatalogField"/>
<QBE paramName="CustomerCatalog_ID"/>
</EQ>
<EQ>
<Field name="Department_ID" paramName="GetDepartmentField"/>
<QBE paramName="Department_ID"/>
</EQ>
<EQ>
<Field name="SaleZone_ID" paramName="GetZoneField"/>
<QBE paramName="SaleZone_ID"/>
</EQ>
<EQ>
<Field name="CreditPolicy_ID" paramName="GetCreditPolicyField"/>
<QBE paramName="CreditPolicy_ID"/>
</EQ>
<EQ>
<Field name="CheckOutManner_ID"/>
<QBE paramName="CheckOutManner_ID"/>
</EQ>
<EQ>
<Field name="Employee_ID"/>
<QBE paramName="Employee_ID"/>
</EQ>
<EQ>
<Field name="PriceStrategy_ID"/>
<QBE paramName="PriceStrategy_ID"/>
</EQ>
<EQ>
<Field name="AccountCustomer_ID"/>
<QBE paramName="AccountCustomer_ID"/>
</EQ>
<EQ>
<Field name="TakeGoods_Type"/>
<QBE paramName="TakeGoods_Type"/>
</EQ>
<EQ>
<Field name="ExtensionsCatalog1_ID"/>
<QBE paramName="ExtensionsCatalog1_ID"/>
</EQ>
<EQ>
<Field name="GoodsUnitUseClass_ID"/>
<QBE paramName="GoodsUnitUseClass_ID"/>
</EQ>
<EQ>
<Field name="IsDealers"/>
<QBE paramName="IsDealers"/>
</EQ>
</And>
</Where>
</Select>

+ 5
- 1
BWP.B3_YunKen/TimerTask/NullifyCustomerTask.cs View File

@ -57,8 +57,12 @@ namespace BWP.B3_YunKen.TimerTask {
var cusBL = BIFactory.Create<ICustomerBL>();
foreach (var tuple in list) {
var span = DateTime.Today - tuple.Item2;
if (span.Days >= (Days ?? 60)) {
if (span.Days >= (Days ?? 60))
{
var cus = cusBL.Load(tuple.Item1);
cus.StopedByCustomerTask = true;
cus.StopReason = (Days ?? 60)+"天内未发货";
cusBL.Update(cus);
cusBL.Stop(cus);
if (cus.Employee_ID.HasValue) {
var userID = GetBindingEmployeeID(cus.Employee_ID.Value);


+ 5
- 0
WebFolder/Config/Plugins/B3_YunKen.Plugin View File

@ -22,10 +22,15 @@
<Function index="0" name="访问" />
</FunctionGroup>
<FunctionGroup name="报表" roleSchemas="employee">
<Function index="0" name="客户停用表" />
</FunctionGroup>
</Security>
<Menus>
<Menu id="0001" name="/B3耘垦模块/销售预报调整" roles="B3_YunKen.销售预报调整.访问" url="B3YunKen/SaleForecastUpdateList_/SaleForecastUpdateList.aspx"/>
<Menu id="0002" name="/B3耘垦模块/耘垦出库转验收" roles="B3Sale.客户验收.新建" url="B3YunKen/B3YunKenSaleOutStoreToCustomerAccept.aspx"/>
<Menu id="0003" name="/B3耘垦模块/报表/客户停用表" roles="B3_YunKen.报表.客户停用表" url="B3YunKen/Reports/CustomerStopByTaskReport.aspx"/>
</Menus>
</Plugin>

Loading…
Cancel
Save