TG.WXCRM.V4/WX.CRM.DataSynFactory/Cmd/Client_OpenOrder_IMP.cs

93 lines
3.8 KiB
C#

using System;
using WX.CRM.BLL.Base;
using WX.CRM.BLL.Csvr;
using WX.CRM.BLL.Res;
using WX.CRM.BLL.Wx;
using WX.CRM.Common;
using WX.CRM.DataSynFactory.Templates;
using WX.CRM.Model.Entity;
using WX.CRM.Model.Enum;
namespace WX.CRM.DataSynFactory.Cmd
{
public class Client_OpenOrder_IMP : Interfaces.IDataImportSvr<Client_OpenOrder>
{
private WX_SZZYORDER_BL _order = new WX_SZZYORDER_BL();
private RES_CUSTOMERDETAIL_BL _customer = new RES_CUSTOMERDETAIL_BL();
private CSVR_FAVORITECUSTOMER_BL _favCustomer = new CSVR_FAVORITECUSTOMER_BL();
private RES_MYALLOCATERES_BL _myRes = new RES_MYALLOCATERES_BL();
private RES_MYALLOCATERES_ACT_BL _act = new RES_MYALLOCATERES_ACT_BL();
private BAS_INNERUSER_BL _user = new BAS_INNERUSER_BL();
public bool GenerateBusinessOne(Client_OpenOrder t)
{
try
{
var order = _order.Get(p => p.ORDERID == t.OrderId);
order.ORDERSTATUS = t.OrderStatus;
order.ORDERSTATUSNAME = t.OrderStatusName;
order.OTIME = t.OTime;
order.ENDTIME = t.EndTime;
order.ISOPEN = 1;
order.ACTIVEPRODUCTCODE = t.ActiveProductCode;
order.ACTIVEPRODUCTEXT = t.ActiveProductExt;
order.FINACEPAYDATE = t.OTime;
order.ISFINANCEPAY = 1;
if (!string.IsNullOrWhiteSpace(t.CName))
{
order.CNAME = t.CName;
var customer = _customer.Get(p => p.RESID == t.ResId);
if (customer != null)
{
customer.CNAME = t.CName;
_customer.Update(customer);
}
var list = _favCustomer.GetFavAndMyResList(order.RESID);
if (list.Count <= 0)
{
if(order.INNERUSERID.HasValue)
{
//如果找不到归属,下单人写入归属
var user = _user.GetModel(order.INNERUSERID.Value);
if (user != null)
{
var eid = user.EID;
var info = new RES_MYALLOCATERES_ACT(new SEQUENCES_BL().Seq_base_get(Model.Enum.PKIDType.LargeTable), order.RESID, eid, 0, "add", null);
}
}
}
}
#region
var bas_parameter = new BAS_PARAMETER_BL().GetModel_Patameter("sys_gaoji_typecode");
if (bas_parameter != null)
{
var hasOldOrder = _order.Get(p => p.ORDERID != t.OrderId && p.RESID == order.RESID && p.OTIME.HasValue);
if (hasOldOrder == null)//如果是首单就需要进行分配
{
var ss = bas_parameter.PARAVALUE.Split('|');
new RES_TOBEALLCOTED_BL().Add(new RES_TOBEALLCOTED()
{
APPLYID = 0,
CTIME = DateTime.Now,
DIS_NUM = 0,
RESID = order.RESID,
RESOURCETAG = ss[0],
RESTYPEID = Convert.ToDecimal(ss[1]),
TURNING_ID = new SEQUENCES_BL().Seq_base_get(PKIDType.LargeTable)
});
}
}
#endregion
return _order.Update(order);
}
catch (Exception ex)
{
LogHelper.Error(ex.ToString());
return false;
}
}
}
}