您的位置:首页 > 其它

[K/3Cloud] 创建一个业务单据表单插件

2013-09-12 16:02 387 查看

概念

创建一个业务单据插件,处理单据的相关控制逻辑。

示例

新建一个类,继承自单据插件基类Kingdee.BOS.Core.Bill.PlugIn.AbstractBillPlugIn。

using Kingdee.BOS.Core.Bill.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.Metadata;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Kingdee.K3.Example.Business.PlugIn
{
/// <summary>
/// 销售订单 单据维护插件
/// </summary>
public class SaleOrderEdit : Kingdee.BOS.Core.Bill.PlugIn.AbstractBillPlugIn
{
}
}


K3Cloud案

基础资料中客户单据的表单插件

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Kingdee.BOS.Core.Bill.PlugIn;
using Kingdee.BOS.Core.Metadata.EntityElement;
using Kingdee.BOS.Orm.DataEntity;
using System.Text.RegularExpressions;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.Bill.PlugIn.Args;
using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;
using Kingdee.BOS.Core.Metadata;
using System.Data;
using Kingdee.BOS.Util;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS;
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.JSON;
using Kingdee.K3.BD.ServiceHelper;
using Kingdee.BOS.Core.Bill;
using Kingdee.K3.BD;
using Kingdee.BOS.Core.Metadata.ControlElement;
using Kingdee.BOS.Cache;
namespace Kingdee.K3.BD.Common.Business.PlugIn
{
/// <summary>
/// 客户单据插件
/// </summary>
public class CustomerEdit : AbstractBillPlugIn
{
#region 变量
/// <summary>
/// 是否启用预留
/// </summary>
private bool para_IsEnableReserve = false;
/// <summary>
/// 启用客户门户参数
/// </summary>
private bool para_EnableCustomerPortal = false;
#endregion
#region 重写方法
public override void AfterBindData(EventArgs e)
{
object oFax = this.View.Model.GetValue("FFAX") as object;
string sFax = "";
if (oFax != null)
{
sFax = Convert.ToString(oFax);
}
this.View.Model.SetValue("FFAX", sFax.Trim());
//TODO 非多组织隐藏字段(目前设计器未提供Context.IsMultiOrg变量,无法在设计器配置。以后考虑支持)
this.View.GetControl<FieldEditor>("FCorrespondOrgId").Visible = this.Context.IsMultiOrg;
this.View.GetBarItem("FT_BD_CUSTORDERORG", "tbAddLine_OOrg").Enabled = this.Context.IsMultiOrg;
this.View.GetBarItem("FT_BD_CUSTORDERORG", "tbDelLine_OOrg").Enabled = this.Context.IsMultiOrg;
this.View.GetBarItem("FT_BD_CUSTORDERORG", "tbInsertLine_OOrg").Enabled = this.Context.IsMultiOrg;
//不启用预留,隐藏客户优先级
this.View.GetControl("FPriority").Visible = para_IsEnableReserve;
//订货平台信息页签,根据是否启用客户门户,隐藏,显示
string parentKey = this.View.GetControl("FT_BD_CUSTORDERORG").ControlAppearance.Container;
if (!string.IsNullOrWhiteSpace(parentKey))
{
Control tabPage = this.View.GetControl(parentKey);
tabPage.Visible = (para_EnableCustomerPortal && tabPage.ControlAppearance is TabPageAppearance);
}
//已审核(或重新审核)&未禁用的客户&还未创建客户门户管理员时,创建管理员按钮才可用。
SetCreateCPAdminButtonStatus();
// 根据计划管理参数的参数【启用预留】显示/隐藏客户“客户优先级”字段
this.SetPriorityVisible();
}
public override void AfterUpdateViewState(EventArgs e)
{
//已审核(或重新审核)&未禁用的客户&还未创建客户门户管理员时,创建管理员按钮才可用。
SetCreateCPAdminButtonStatus();
}
public override void AfterCreateNewData(EventArgs e)
{
SetDefault();//设置结算币别默认值
//单体组织设置订单组织默认为创建组织
if (!this.Context.IsMultiOrg)
{
this.View.Model.SetValue("FOrderOrgId", this.View.Model.GetValue("FCreateOrgId"), 0);
}
if ((this.View.OpenParameter.Status == OperationStatus.ADDNEW))//复制或新增操作都 清空联系人页签 。。复制相当于新增。所以用这个标志
{
this.View.Model.DeleteEntryData("FT_BD_CUSTLOCATION");

}

}
public override void BeforeUpdateValue(BeforeUpdateValueEventArgs e)
{
switch (e.Key.ToUpperInvariant())
{
case "FISCREDITCHECK":
bool isCreditCheck = Convert.ToBoolean(e.Value);
if (isCreditCheck == false)
{
long mastId = Convert.ToInt64(this.View.Model.DataObject["msterID"]);
string sql = string.Format(@"select  1 fexists from t_cre_custarchives a
inner join t_cre_custarchivesentry b on a.fid=b.fid
where a.fobjecttype='BD_Customer' and b.fobjectid={0}", mastId);
using (IDataReader dr = DBServiceHelper.ExecuteReader(this.Context, sql))
{
while (dr.Read())
{
e.Cancel = true;
this.View.ShowWarnningMessage(Kingdee.BOS.Resource.ResManager.LoadKDString("该客户已经被信用档案引用,不能反启用信用管理", "005023000000575", Kingdee.BOS.Resource.SubSystemType.BASE));
break;
}
}
}
break;
default:
break;
}
}
public override void DataChanged(DataChangedEventArgs e)
{
switch (e.Field.Key.ToUpperInvariant())
{
case "FTAXTYPE":
DynamicObject taxType = this.View.Model.GetValue("FTaxType") as DynamicObject;
string taxTypeId = taxType==null?"":Convert.ToString(taxType["Id"]);
if (taxTypeId.EqualsIgnoreCase(K3.Core.BD.PreInsertDataConst.SFL01_SYS))
{
this.View.Model.SetValue("FTaxRate", 261);
}
else if (taxTypeId.EqualsIgnoreCase(K3.Core.BD.PreInsertDataConst.SFL02_SYS)
|| taxType.IsNullOrEmptyOrWhiteSpace())
{
this.View.Model.SetValue("FTaxRate", 233);
}
break;
case "FSELLER":
//根据销售员携带默认销售组等信息。
DynamicObject objSeller = null;
objSeller = this.View.Model.GetValue("FSELLER") as DynamicObject;//获取销售员
long objSellerId = objSeller == null ? 0 : Convert.ToInt64(objSeller["Id"]);
if (objSellerId > 0)
{
DynamicObjectCollection objGroups = objSeller["BD_SALESMANENTRY"] as DynamicObjectCollection;//销售员单据体的实体名
//默认收货方
DynamicObject dyloc = (from p in objGroups
where p["ISDEFAULT"].ToString().Equals("true", StringComparison.CurrentCultureIgnoreCase)
select p).FirstOrDefault();//默认销售组
this.View.Model.SetValue("FSALGROUPID", dyloc == null ? 0 : ((DynamicObject)dyloc)["OPERATORGROUPID"], e.Row);
}
break;
case "FCREATEORGID":
SetDefault();
break;
case "FISDEFAULTORDERORG":
if (Convert.ToBoolean(e.NewValue))
{
bool isSelect = false;
this.View.Model.BeginIniti();
//切换默认订货组织选项,清空旧的选择项
for (int i = 0; i < this.View.Model.GetEntryRowCount(e.Field.Entity.Key); i++)
{
if (i != e.Row)
{
isSelect = Convert.ToBoolean(this.View.Model.GetValue("FIsDefaultOrderOrg", i));
if (isSelect)
{
this.View.Model.SetValue("FIsDefaultOrderOrg", 0, i);
}
}
}
this.View.Model.EndIniti();
}
else
{
this.View.Model.BeginIniti();
//取消选项,默认把第一行作为默认选项
this.View.Model.SetValue("FIsDefaultOrderOrg", 1, 0);
this.View.Model.EndIniti();
}
this.View.UpdateView("FT_BD_CUSTORDERORG");
break;
default:
break;
}
}
public override void AfterCreateModelData(EventArgs e)
{
SetFirstLineDefaultOrderOrg();
}
public override void AfterLoadData(EventArgs e)
{
SetFirstLineDefaultOrderOrg();
}
public override void BeforeF7Select(BOS.Core.DynamicForm.PlugIn.Args.BeforeF7SelectEventArgs e)
{
string filter;
switch (e.FieldKey.ToUpperInvariant())
{
case "FPRICELISTID":
case "FDISCOUNTLISTID":
case "FSELLER":
case "FSALGROUPID":
case "FTCONTACT":
if (GetFieldFilter(e.FieldKey, out filter))
{
if (string.IsNullOrEmpty(e.ListFilterParameter.Filter))
{
e.ListFilterParameter.Filter = filter;
}
else
{
e.ListFilterParameter.Filter += " AND " + filter;
}
}
break;
}
}
public override void BeforeSetItemValueByNumber(BOS.Core.DynamicForm.PlugIn.Args.BeforeSetItemValueByNumberArgs e)
{
string filter;
switch (e.BaseDataFieldKey.ToUpper())
{
case "FPRICELISTID":
case "FDISCOUNTLISTID":
case "FSELLER":
case "FSALGROUPID":
case "FTCONTACT":
if (GetFieldFilter(e.BaseDataFieldKey, out filter))
{
if (string.IsNullOrEmpty(e.Filter))
{
e.Filter += filter;
}
else
{
e.Filter += " AND " + filter;
}
}
break;
}
}
public override void ButtonClick(ButtonClickEventArgs e)
{
switch (e.Key.ToUpperInvariant())
{
case "FBTNCREATECPADMIN":
// CreateCustPortalUser();
break;
default:
break;
}
}

public override void OnBillInitialize(BillInitializeEventArgs e)
{
//启用预留
object objEnalbeReserve = BOS.ServiceHelper.SystemParameterServiceHelper.GetParamter(this.Context
, 0, 0, K3.Core.MFG.MFGFormIdConst.SubSys_PLN.PLNSysParam, "IsEnableReserve");
para_IsEnableReserve = objEnalbeReserve == null ? false : Convert.ToBoolean(objEnalbeReserve);
//取启用客户门户参数
GetParameterEnableCustomerPortal();
}
public override void EntryBarItemClick(BarItemClickEventArgs e)
{
switch (e.BarItemKey.ToUpperInvariant())
{
case "TBNEWCONTACT":      // 联系人页签新增联系人
BillShowParameter BillParam = new BillShowParameter();
BillParam.FormId = Kingdee.K3.Core.SCM.SCMFormIdConst.BD_CommonContact;
BillParam.ParentPageId = this.View.PageId;
BillParam.CustomParams.Add("CompanyType", "BD_Customer");
BillParam.CustomParams.Add("CustomerId", Convert.ToString(this.View.Model.GetPKValue()));
this.View.ShowForm(BillParam, NewFillContactData);
break;
case "TBEDITCONTACT":     // 联系人页签修改联系人
int iRowIndex = this.View.Model.GetEntryCurrentRowIndex("FT_BD_CUSTLOCATION");
if (iRowIndex < 0)
{
this.View.ShowErrMessage(Kingdee.BOS.Resource.ResManager.LoadKDString("请选择一个分录数据!", "005023000000576", Kingdee.BOS.Resource.SubSystemType.BASE));
}
else
{
BillShowParameter BillEditParam = new BillShowParameter();
BillEditParam.FormId = Kingdee.K3.Core.SCM.SCMFormIdConst.BD_CommonContact;
BillEditParam.Status = OperationStatus.EDIT;
BillEditParam.PKey = Convert.ToString(this.View.Model.GetValue("FContactId", iRowIndex));
BillEditParam.ParentPageId = this.View.PageId;
BillEditParam.CustomParams.Add("CompanyType", "BD_Customer");
BillEditParam.CustomParams.Add("IsModify", "true");
this.View.ShowForm(BillEditParam, new Action<FormResult>((result) =>
{
if (result.ReturnData != null)
{
List<long> listContractIds = result.ReturnData as List<long>;
long lContactId = 0;
if (listContractIds != null & listContractIds.Count > 0)
{
lContactId = listContractIds[0];
}
if (lContactId > 0)
{
DynamicObjectCollection docContacts = ServiceHelper.SupplierCustomerServiceHelper.GetContactsByCompanyType(
this.Context, "BD_Customer", new long[]{lContactId});
this.View.Model.SetValue("FCONTACT", docContacts[0]["FNAME"], iRowIndex);
this.View.Model.SetValue("FJob", docContacts[0]["FPOST"], iRowIndex);
this.View.Model.SetValue("FBIZLOCATION", docContacts[0]["FBIZLOCATION"], iRowIndex);
this.View.Model.SetValue("FOFFICEPHONE", docContacts[0]["FTEL"], iRowIndex);
this.View.Model.SetValue("FMOBILEPHONE", docContacts[0]["FMOBILE"], iRowIndex);
this.View.Model.SetValue("FFAX1", docContacts[0]["FFAX"], iRowIndex);
this.View.Model.SetValue("FContactEmail", docContacts[0]["FEMAIL"], iRowIndex);
this.View.Model.SetValue("FContactId", docContacts[0]["FCONTACTID"], iRowIndex);
this.View.UpdateView("FT_BD_CUSTLOCATION");
}
}
}));
}
break;
case "TBDELETECONTACT":   // 联系人页签删除联系人
this.DeleteCustomerContact();
break;
case "TBDELLINE_OORG":   // 订货组织页签删除默认订货组织时
string sCode = Convert.ToString(this.View.Model.GetValue("FCPAdminCode"));
int iRow = this.View.Model.GetEntryCurrentRowIndex("FT_BD_CUSTORDERORG");
bool isDefault = Convert.ToBoolean(this.View.Model.GetValue("FIsDefaultOrderOrg", iRow));
if (!sCode.IsNullOrEmptyOrWhiteSpace() && isDefault)
{
this.View.ShowMessage(Kingdee.BOS.Resource.ResManager.LoadKDString("当前客户已创建了客户平台管理员,不允许删除默认订货组织!", "005023000000577", Kingdee.BOS.Resource.SubSystemType.BASE));
e.Cancel = true;
}
break;
case "TBADDLINE_OORG":
SetFirstLineDefaultOrderOrg();
break;
default:
break;
}
base.EntryBarItemClick(e);
}
public override void AfterSave(AfterSaveEventArgs e)
{
// 成功保存后,联系人表体数据和当前客户相关联
if (e.OperationResult.IsSuccess)
{
// 当前客户的Id
long lCustomerId = Convert.ToInt64(this.View.Model.GetPKValue());
// 当前联系人表体的联系人Id
EntryEntity entryEntity = this.View.BusinessInfo.GetEntryEntity("FT_BD_CUSTLOCATION");
DynamicObjectCollection docCustomerContactIds = this.View.Model.GetEntityDataObject(entryEntity);
string sContactIds = "";
for (int i = 0; i < docCustomerContactIds.Count(); i++)
{
long lContactId = Convert.ToInt64(docCustomerContactIds[i]["ContactId"]);
if (lContactId != 0)
{
sContactIds = sContactIds + Convert.ToString(lContactId) + ",";
}
}
if (sContactIds.Length > 0)
{
sContactIds = sContactIds.Substring(0, sContactIds.Length - 1);
}
// 联系人表体不为空
if (docCustomerContactIds.Count() > 0)
{
// 更新当前客户联系人的所属公司
ServiceHelper.SupplierCustomerServiceHelper.UpdateContactId(this.Context, sContactIds, lCustomerId);
}
UpdateCpUserOrg();
}

}
/// <summary>
/// 如果创建了客户门户用户,那么要更新客户门户的信息
/// </summary>
private void UpdateCpUserOrg()
{
var cpAdminCode = this.Model.GetValue("FCPAdminCode") as string;

if (!string.IsNullOrWhiteSpace(cpAdminCode))
{
DynamicObject UserInfo = null;
long userId = 0;
{
long msterID = Convert.ToInt64(this.Model.DataObject["msterID"]);
string sfilter1 = string.Format("FCUSTOMERMASTERID = {0} ", msterID);
OQLFilter filter1 = OQLFilter.CreateHeadEntityFilter(sfilter1);
UserInfo = BusinessDataServiceHelper.Load(this.Context, K3.Core.SCM.SCMFormIdConst.CP_UserInfo, null, filter1).FirstOrDefault();
userId = Convert.ToInt64(UserInfo["FUserId_Id"]);
}
DynamicObject User = null;
{
string sfilter = string.Format("FUserID = {0} ", userId);
OQLFilter filter = OQLFilter.CreateHeadEntityFilter(sfilter);
User = BusinessDataServiceHelper.Load(this.Context, BOS.Core.FormIdConst.SEC_User, null, filter).FirstOrDefault();
}
var userOrg = User["Userorg"] as DynamicObjectCollection;
userOrg.Clear();

var custorderOrg = this.Model.DataObject["BD_CUSTORDERORG"] as DynamicObjectCollection;
long defaultOrgId = 0;
foreach (var item in custorderOrg)
{
var orgId = Convert.ToInt64(item["OrderOrgId_Id"]);
if (orgId != 0)
{
DynamicObject userOrgItem = new DynamicObject(userOrg.DynamicCollectionItemPropertyType);
userOrgItem["FOrgID_Id"] = orgId;
var entityRole = userOrgItem["EntityRole"] as DynamicObjectCollection;
entityRole.Clear();
var entityRoleItem = new DynamicObject(entityRole.DynamicCollectionItemPropertyType);
entityRoleItem["FRoleId_Id"] = 10278;
entityRole.Add(entityRoleItem);
userOrg.Add(userOrgItem);
}
bool isDefault = Convert.ToBoolean(item["ISDEFAULT"]);
if (isDefault)
{
defaultOrgId = orgId;
}
}
UserInfo["FDEFAULTORGID_Id"] = defaultOrgId;

BusinessDataServiceHelper.Save(this.Context, User);
BusinessDataServiceHelper.Save(this.Context, UserInfo);
//清除用户缓存
string key = K3.Core.SCM.SCMConst.GetCpUserCacheKey(userId.ToString());
CacheUtil.ClearCache(this.Context.DBId, K3.Core.SCM.SCMConst.CP_Cache_CustomerPortalRegion, key);
}
}
public override void BeforeClosed(BeforeClosedEventArgs e)
{
// 客户页面关闭后,清楚所属公司为0的垃圾数据
ServiceHelper.SupplierCustomerServiceHelper.DeleteGarbageData(this.Context);
}
#endregion
#region 私有方法
#region 客户门户
private void SetFirstLineDefaultOrderOrg()
{
int iCount = this.View.Model.GetEntryRowCount("FT_BD_CUSTORDERORG");
if (iCount <= 1)
{
this.View.Model.SetValue("FIsDefaultOrderOrg", 1, 0);
}
}
///// <summary>
///// 创建客户用户
///// </summary>
//private void CreateCustPortalUser()
//{
//    if (!para_EnableCustomerPortal)
//    {
//        this.View.ShowMessage(Kingdee.BOS.Resource.ResManager.LoadKDString("订货平台没有启用,无法创建订货平台管理员账号。", "005023000000578", Kingdee.BOS.Resource.SubSystemType.BASE), MessageBoxType.Notice);
//        return;
//    }
//    string userNumber = Convert.ToString(this.Model.GetValue("FNumber"));
//    string userName = Convert.ToString(this.Model.GetValue("FName"));
//    long orgId_Id = GetDefaultOrderOrgId();
//    if (orgId_Id == 0)
//    {
//        this.View.ShowMessage(Kingdee.BOS.Resource.ResManager.LoadKDString("客户没有默认订货组织,无法创建订货平台管理员。", "005023000000579", Kingdee.BOS.Resource.SubSystemType.BASE), MessageBoxType.Notice);
//        return;
//    }
//    var description = string.Format(Kingdee.BOS.Resource.ResManager.LoadKDString("客户【{0}】的订货平台管理员", "005023000000580", Kingdee.BOS.Resource.SubSystemType.BASE), userName);
//    var newUser = new UserHelper(this.Context);
//    newUser.CreateBosUser(userNumber, orgId_Id, description, true);
//    var r = newUser.Save(this.Context);
//    if (r.IsSuccess)
//    {
//        newUser.UserProfile.IsAdmin = true;
//        newUser.UserProfile.CustomerNumber = userNumber;
//        newUser.UserProfile.CustomerMasterID = Convert.ToInt64(this.View.Model.DataObject["MsterID"]);
//        newUser.UserProfile.DefaultOrgId = newUser.OrgId_Id;
//        newUser.UserProfile.BosUserId = newUser.Id;
//        newUser.UserProfile.CustomerId = Convert.ToInt64(this.View.Model.GetPKValue());
//        BusinessDataServiceHelper.Save(this.Context, newUser.UserProfile.MetaData.BusinessInfo, newUser.UserProfile.CPUserInfo);
//        this.View.Model.SetValue("FCPAdminCode", userNumber);
//        this.View.Model.DataChanged = false;
//        CPServiceHelpercs.SetCPAdminCodeByCustId(this.Context, userNumber, Convert.ToInt64(this.View.Model.GetPKValue()));
//        this.View.ShowMessage(string.Format(Kingdee.BOS.Resource.ResManager.LoadKDString("创建订货平台管理员成功!帐号为客户编码:{0},密码默认为888888!", "005023000000581", Kingdee.BOS.Resource.SubSystemType.BASE), userNumber), MessageBoxType.Notice);

//    }
//    else
//    {
//        string err = Kingdee.BOS.Resource.ResManager.LoadKDString("创建订货平台管理员失败:", "005023000000582", Kingdee.BOS.Resource.SubSystemType.BASE) + System.Environment.NewLine;
//        foreach (var item in r.GetFatalErrorResults())
//        {
//            err += item.Message + System.Environment.NewLine;
//        }
//        this.View.ShowMessage(err, MessageBoxType.Error);
//    }
//}
/// <summary>
/// 是否启用了客户门户
/// </summary>
/// <returns></returns>
private void GetParameterEnableCustomerPortal()
{
var objEnableCustomerPortal = SystemParameterServiceHelper.GetParamter(this.Context, 0, 0, "CP_SYSTEMPARAMETER", "EnableCustomerPortal");
para_EnableCustomerPortal = Convert.ToBoolean(objEnableCustomerPortal);
}
private long GetDefaultOrderOrgId()
{
Entity entity = this.Model.BusinessInfo.GetEntity("FT_BD_CUSTORDERORG");
var ety = this.Model.GetEntityDataObject(entity);
var orderDObj = ety.Where(p => Convert.ToBoolean(p["ISDEFAULT"]) == true).FirstOrDefault();
//ety[0]
//"BD_CUSTORDERORG"
//[0]: {[Id, 0]}
//[1]: {[OrderOrgId_Id, 0]}
//[2]: {[OrderOrgId, ]}
//[3]: {[ISDEFAULT, False]}
return orderDObj == null ? 0 : Convert.ToInt64(orderDObj["OrderOrgId_Id"]);
}
#endregion
/// <summary>
/// 携带核算体系下的本位币信息
/// </summary>
public void SetDefault()
{
DynamicObject saleOrg = this.View.Model.GetValue("FUseOrgId") as DynamicObject;
if (saleOrg != null)
{
long saleOrgId = Convert.ToInt64(saleOrg["Id"]);
if (saleOrgId > 0)
{
JSONObject currInfo = FINServiceHelperForCommon.GetDefCurrencyAndExchangeTypeByBizOrgID(this.Context, saleOrgId);
if (currInfo != null)
{
this.View.Model.SetValue("FTRADINGCURRID", Convert.ToInt64(currInfo["FCyForID"]));  //商务页签取本位币信息
}
}
}
}
/// <summary>
/// 获取字段过滤条件
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
private bool GetFieldFilter(string fieldKey, out string filter)
{
filter = "";
if (string.IsNullOrWhiteSpace(fieldKey))
{
return false;
}
switch (fieldKey.ToUpper())
{
case "FSELLER":
DynamicObject dept = this.View.Model.GetValue("FSALDEPTID") as DynamicObject;
DynamicObject salegroup = this.View.Model.GetValue("FSALGROUPID") as DynamicObject;
filter += " FIsUse='1' ";
if (dept != null && Convert.ToInt64(dept["Id"]) > 0)//录入了部门
{
filter += string.Format(" And FDeptId={0} ", Convert.ToInt64(dept["Id"]));
}
if (salegroup != null && Convert.ToInt64(salegroup["Id"]) > 0)//录入了销售组
{
filter += string.Format(" And FOperatorGroupId={0} ", Convert.ToInt64(salegroup["Id"]));
}
break;
case "FSALGROUPID":
DynamicObject seller = null;
seller = this.View.Model.GetValue("FSELLER") as DynamicObject;
filter += " FIsUse='1' ";
if (seller != null && Convert.ToInt64(seller["Id"]) > 0)//录入了销售员
{
filter += string.Format(" And Exists (Select 1 From V_BD_SALESMANENTRY SE Where SE.FOperatorGroupID=FENTRYID AND SE.FId={0}) ", Convert.ToInt64(seller["Id"]));
}
break;
case "FTCONTACT":
DynamicObject doCustomer = this.View.Model.DataObject;
long lCustomerId = Convert.ToInt64(doCustomer["Id"]);
filter += string.Format(" FCOMPANY = {0}", lCustomerId);
break;
}
return !string.IsNullOrWhiteSpace(filter);
}
private void SetTaxRegisterCode(string sTaxRegisterCode, int iRow)
{
//string sTaxRegisterCode = this.View.Model.GetValue("FTTAXREGISTERCODE", iRow) as string;
this.View.Model.SetValue("FTAXREGISTERCODE", sTaxRegisterCode);
}
/// <summary>
/// 查询数据库客户联系人填充联系人表体
/// </summary>
private void NewFillContactData(FormResult result)
{
//if (this.View.Model.GetEntryRowCount("FT_BD_CUSTLOCATION") > 0)
//{
//    this.View.Model.DeleteEntryData("FT_BD_CUSTLOCATION");
//    this.View.UpdateView("FT_BD_CUSTLOCATION");
//}
//DynamicObject doCustomer = this.Model.DataObject;
//long lCustomerId = Convert.ToInt64(doCustomer["Id"]);
if (result.ReturnData != null)
{
List<long> lContactIds = result.ReturnData as List<long>;
if (lContactIds == null || lContactIds.Count < 1)
{
return;
}

DynamicObjectCollection docContacts = ServiceHelper.SupplierCustomerServiceHelper.GetContactsByCompanyType(
this.Context, "BD_Customer", lContactIds.ToArray());

foreach(DynamicObject contract in docContacts)
{
// 联系人表体创建一行
this.View.Model.CreateNewEntryRow("FT_BD_CUSTLOCATION");
// 获取联系人表体总行数
int iRowSum = this.View.Model.GetEntryRowCount("FT_BD_CUSTLOCATION");
this.View.Model.SetValue("FCONTACT", contract["FNAME"], iRowSum - 1);
this.View.Model.SetValue("FJob", contract["FPOST"], iRowSum - 1);
this.View.Model.SetValue("FBIZLOCATION", contract["FBIZLOCATION"], iRowSum - 1);
this.View.Model.SetValue("FOFFICEPHONE", contract["FTEL"], iRowSum - 1);
this.View.Model.SetValue("FMOBILEPHONE", contract["FMOBILE"], iRowSum - 1);
this.View.Model.SetValue("FFAX1", contract["FFAX"], iRowSum - 1);
this.View.Model.SetValue("FContactEmail", contract["FEMAIL"], iRowSum - 1);
this.View.Model.SetValue("FContactId", contract["FCONTACTID"], iRowSum - 1);
}
this.View.UpdateView("FT_BD_CUSTLOCATION");

}
}
/// <summary>
/// 删除客户联系人
/// </summary>
private void DeleteCustomerContact()
{
// 获取当前选中的行数组
int[] iRowIndexs = this.View.GetControl<EntryGrid>("FT_BD_CUSTLOCATION").GetSelectedRows();
// 待删除行的客户联系人Id
List<long> listContactId = new List<long>();
if (iRowIndexs.Count() <= 0 || iRowIndexs[0] == -1)
{
this.View.ShowErrMessage(Kingdee.BOS.Resource.ResManager.LoadKDString("请至少选择一个分录数据!", "005023000000583", Kingdee.BOS.Resource.SubSystemType.BASE));
}
else
{
this.View.ShowMessage(Kingdee.BOS.Resource.ResManager.LoadKDString("请确认是否删除选定的记录?","005023000000584",Kingdee.BOS.Resource.SubSystemType.BASE),
MessageBoxOptions.YesNo,
new Action<MessageBoxResult>((result) =>
{
if (result == MessageBoxResult.Yes)
{
foreach (int rowIndex in iRowIndexs)
{
long lCustomerContactId = Convert.ToInt64(this.View.Model.GetValue("FContactId", rowIndex));
if (!listContactId.Contains(lCustomerContactId))
{
listContactId.Add(lCustomerContactId);
}
// 页面上删除联系人
this.View.Model.DeleteEntryRow("FT_BD_CUSTLOCATION", rowIndex);
}
// 数据库中删除联系人
bool bIsSuccessful = ServiceHelper.SupplierCustomerServiceHelper.DeleteContactById(this.Context, string.Join(",", listContactId.ToArray()));
if (bIsSuccessful)
{
this.View.ShowMessage(Kingdee.BOS.Resource.ResManager.LoadKDString("删除该联系人成功!", "005023000000585", Kingdee.BOS.Resource.SubSystemType.BASE));
}
else
{
this.View.ShowMessage(Kingdee.BOS.Resource.ResManager.LoadKDString("删除该联系人失败!", "005023000000586", Kingdee.BOS.Resource.SubSystemType.BASE));
}
}
}));
}
}
private void SetCreateCPAdminButtonStatus()
{
//已审核(或重新审核)&未禁用的客户&还未创建客户门户管理员时,创建管理员按钮才可用。
string documentStatus = Convert.ToString(this.View.Model.GetValue("FDocumentStatus"));
string forbidStatus = Convert.ToString(this.View.Model.GetValue("FForbidStatus"));
string cpAdminCode = Convert.ToString(this.View.Model.GetValue("FCPAdminCode"));
this.View.GetControl("FBtnCreateCPAdmin").Enabled = (documentStatus.EqualsIgnoreCase("C") || documentStatus.EqualsIgnoreCase("D")) && forbidStatus.EqualsIgnoreCase("A") && string.IsNullOrWhiteSpace(cpAdminCode);
}
/// <summary>
/// 根据计划管理参数的参数【启用预留】显示/隐藏客户“客户优先级”字段
/// </summary>
private void SetPriorityVisible()
{
// 获取计划管理参数【启用预留】
bool bIsEnableReserve = Convert.ToBoolean(ServiceHelper.BDCommonServiceHelper.GetSystemProfile(this.Context,this.Context.CurrentOrganizationInfo.ID,"MFG_PLNParam","IsEnableReserve",false));
// 启用预留,显示
if (bIsEnableReserve)
{
this.View.GetControl<FieldEditor>("FPriority").Visible = bIsEnableReserve;
}
else
{
this.View.GetControl<FieldEditor>("FPriority").Visible = bIsEnableReserve;
}
}
#endregion
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: