Exemple #1
0
        private VisitCustomer AddVisitCusotmer(VisitLog log)
        {
            VisitCustomer info = new VisitCustomer
            {
                ConsumeDesire = log.ConsumeDesire,
                ContactCount  = 1,
                CustomerID    = log.CustomerID,
                CustomerSysNo = log.CustomerSysNo,
                //EditDate = log.EditDate,
                //EditUserAcct = log.EditUserAcct,
                //EditUserSysNo = log.EditUserSysNo,
                //InDate = log.InDate,
                //InUserAcct = log.InUserAcct,
                //InUserSysNo = log.InUserSysNo,
                IsRMA          = false,
                LastCallResult = log.CallResult,
                LastCallStatus = log.DealStatus,
                LastCallTime   = DateTime.Now,
                OrderAmount    = 0,
                OrderCount     = 0,
            };

            info = CustomerVisitDA.InsertVisitCustomer(info);
            return(info);
        }
Exemple #2
0
        public virtual VisitLog AddOrderVisitLog(VisitLog log)
        {
            VisitCustomer visitCustomer = CustomerVisitDA.GetVisitCustomerByCustomerSysNo(log.CustomerSysNo.Value);

            if (visitCustomer == null)
            {
                throw new BizException(string.Format(ResouceManager.GetMessageString("Customer.CustomerVisit", "AddOrderVisitLog_Customer_NoSelect"),
                                                     log.CustomerSysNo));
            }
            if (!(visitCustomer.IsActive.HasValue && visitCustomer.IsActive.Value) || !(visitCustomer.IsRMA.HasValue && visitCustomer.IsRMA.Value))
            {
                throw new BizException(ResouceManager.GetMessageString("Customer.CustomerVisit", "AddOrderVisitLog_Customer_NoActivation"));
            }
            if (visitCustomer.LastMaintenanceStatus != null && (visitCustomer.LastMaintenanceStatus == VisitDealStatus.Complete || visitCustomer.LastMaintenanceStatus == VisitDealStatus.Failed))
            {
                throw new BizException(ResouceManager.GetMessageString("Customer.CustomerVisit", "AddOrderVisitLog_Maintenance_Repeat"));
            }

            log.VisitSysNo = visitCustomer.SysNo;
            try
            {
                CustomerVisitDA.InsertOrderVisitLog(log);
            }
            catch (System.Exception e)
            {
                throw new BizException(string.Format(ResouceManager.GetMessageString("Customer.CustomerVisit", "AddOrderVisitLog_Err"),
                                                     e.Message));
            }


            UpdateVisitCusotmer(visitCustomer, log, true);


            return(log);
        }
Exemple #3
0
        public virtual VisitCustomer UpdateVisitCustomer(VisitCustomer info)
        {
            DataCommand cmd = DataCommandManager.GetDataCommand("Customer_Visit_Update_VisitCustomer");

            cmd.SetParameterValue <VisitCustomer>(info);
            cmd.ExecuteNonQuery();
            return(info);
        }
Exemple #4
0
        public virtual VisitCustomer InsertVisitCustomer(VisitCustomer info)
        {
            DataCommand cmd = DataCommandManager.GetDataCommand("Customer_Visit_Insert_VisitCustomer");

            cmd.SetParameterValue <VisitCustomer>(info);
            cmd.ExecuteNonQuery();
            info.SysNo = Convert.ToInt32(cmd.GetParameterValue("@SysNo"));
            return(info);
        }
Exemple #5
0
        public virtual VisitCustomer GetVisitCustomerBySysNo(int visitSysNo)
        {
            VisitCustomer info = null;
            DataCommand   cmd  = DataCommandManager.GetDataCommand("Customer_Visit_Get_VisitCustomerBySysNo");

            cmd.SetParameterValue("@SysNo", visitSysNo);
            using (IDataReader reader = cmd.ExecuteDataReader())
            {
                info = DataMapper.TryGetEntity <VisitCustomer>(reader, out info) ? info : null;
            }
            return(info);
        }
Exemple #6
0
        private VisitCustomer UpdateVisitCusotmer(VisitCustomer oldVisitCustomerInfo, VisitLog log, bool isOrderVisitLog)
        {
            VisitCustomer info = new VisitCustomer();

            info.LastCallStatus        = isOrderVisitLog ? oldVisitCustomerInfo.LastCallStatus : log.DealStatus;
            info.LastMaintenanceStatus = isOrderVisitLog ? log.DealStatus : oldVisitCustomerInfo.LastMaintenanceStatus;
            info.LastCallResult        = log.CallResult;
            info.ConsumeDesire         = log.ConsumeDesire;
            info.LastCallTime          = DateTime.Now;
            info.ContactCount          = oldVisitCustomerInfo.ContactCount.HasValue ? (oldVisitCustomerInfo.ContactCount + 1) : 1;
            //info.EditDate = DateTime.Now;
            //info.EditUserSysNo = log.EditUserSysNo;
            info.SysNo       = oldVisitCustomerInfo.SysNo;
            info.CompanyCode = log.CompanyCode;

            info = CustomerVisitDA.UpdateVisitCustomer(info);
            return(info);
        }
Exemple #7
0
        public virtual VisitLog AddCustomerVisitLog(VisitLog log)
        {
            if (log != null)
            {
                VisitCustomer visitCustomerInfo = CustomerVisitDA.GetVisitCustomerByCustomerSysNo(log.CustomerSysNo.Value);

                if (visitCustomerInfo == null)
                {
                    visitCustomerInfo = AddVisitCusotmer(log);
                }
                else
                {
                    if (!visitCustomerInfo.LastCallStatus.HasValue)
                    {
                        UpdateVisitCusotmer(visitCustomerInfo, log, false);
                    }
                    else
                    {
                        int VisitCustomerActiveNeedDays = 180;
                        //if (!int.TryParse(ConfigurationManager.AppSettings["VisitCustomerActiveNeedDays"], out VisitCustomerActiveNeedDays))
                        //{
                        //    VisitCustomerActiveNeedDays = 180;
                        //}

                        //-1:回访处理失败;1:最近一次回访成功
                        if (visitCustomerInfo.LastCallStatus.Value == VisitDealStatus.Failed)
                        {
                            throw new BizException(ResouceManager.GetMessageString("Customer.CustomerVisit", "AddCustomerVisitLog_LastCallStatus_Failed"));
                        }
                        else if (visitCustomerInfo.LastCallStatus.Value == VisitDealStatus.Complete)
                        {
                            if (DateTime.Now.Subtract(visitCustomerInfo.LastCallTime.Value).Days < VisitCustomerActiveNeedDays)
                            {
                                throw new BizException(ResouceManager.GetMessageString("Customer.CustomerVisit", "AddCustomerVisitLog_LastCallStatus_Activating"));
                            }
                        }

                        if ((!visitCustomerInfo.LastCallTime.HasValue ||
                             DateTime.Now.Subtract(visitCustomerInfo.LastCallTime.Value).Days >= VisitCustomerActiveNeedDays) &&
                            (!visitCustomerInfo.LastBuyTime.HasValue || DateTime.Now.Subtract(visitCustomerInfo.LastBuyTime.Value).Days >= VisitCustomerActiveNeedDays))
                        {
                            //以前回访过,但是最后一次购物时间距离当前时间超过了规定的时间,需要再一次回访
                            visitCustomerInfo = AddVisitCusotmer(log);
                        }
                        else
                        {
                            UpdateVisitCusotmer(visitCustomerInfo, log, false);
                        }
                    }
                }
                log.VisitSysNo = visitCustomerInfo.SysNo;

                CustomerVisitDA.InsertCustomerVisitLog(log);

                if (log.DealStatus.Value == VisitDealStatus.Failed)
                {
                    //如果回访处理失败,则添加到黑名单中且从ToVisitCustomer 表中删除这个用户
                    CustomerVisitDA.InsertVisitBlackCustomer(log);
                }
            }
            return(log);
        }
Exemple #8
0
    public List <VisitCustomer> GetVisitCustomerData(int empid)
    {
        List <VisitCustomer> visitlist = new List <VisitCustomer>();

        con.Open();
        SqlCommand     sql_com = new SqlCommand("Select_Detail_VisitCustomer_EmpID", con);
        SqlDataAdapter adapter = new SqlDataAdapter(sql_com);

        try
        {
            adapter.SelectCommand             = sql_com;
            adapter.SelectCommand.CommandType = CommandType.StoredProcedure;
            adapter.SelectCommand.Parameters.AddWithValue("@EmpID", empid);
            DataTable ds = new DataTable();
            adapter.Fill(ds);
            sql_com.ExecuteNonQuery();

            foreach (DataRow item in ds.Rows)
            {
                visitCustomer = new VisitCustomer()
                {
                    ID_VIP             = item["ID_VIP"].ToString(),
                    ID_DVIP            = item["ID_DVIP"].ToString(),
                    Emp_id             = Convert.ToInt32(item["Emp_id"].ToString()),
                    EmpName            = item["EmpName"].ToString(),
                    Nickname           = item["Nickname"].ToString(),
                    Tel                = item["Tel"].ToString(),
                    Team               = item["Team"].ToString(),
                    companybranchname  = item["companybranchname"].ToString(),
                    ToDate             = item["ToDate"].ToString() == string.Empty ? DateTime.MinValue : Convert.ToDateTime(item["ToDate"].ToString()),
                    CusNo              = item["CusNo"].ToString(),
                    IDCard             = item["IDCard"].ToString(),
                    Name               = item["Name"].ToString(),
                    Surname            = item["Surname"].ToString(),
                    NickName           = item["Nickname1"].ToString(),
                    Tel_Mobile1        = item["Tel_Mobile1"].ToString(),
                    Address            = item["Address"].ToString(),
                    Add_Moo            = item["Add_Moo"].ToString(),
                    DISTRICT_NAME      = item["DISTRICT_NAME"].ToString(),
                    AMPHUR_NAME        = item["AMPHUR_NAME"].ToString(),
                    PROVINCE_NAME      = item["PROVINCE_NAME"].ToString(),
                    ID_CCV1            = item["ID_CCV1"].ToString(),
                    MCNumber           = item["MCNumber"].ToString() == string.Empty ? 0 : Convert.ToInt32(item["MCNumber"].ToString()),
                    ID_SCW             = item["ID_SCW"].ToString() == string.Empty ? 0 : Convert.ToInt32(item["ID_SCW"].ToString()),
                    Status_ConfirmWork = item["Status_ConfirmWork"].ToString(),
                    PictureHome        = item["PictureHome"].ToString(),
                    StatusFind         = item["StatusFind"].ToString() == string.Empty ? 0 : Convert.ToInt32(item["StatusFind"].ToString()),
                    LatitudeIn         = item["LatitudeIn"].ToString(),
                    LongitudeIn        = item["LongitudeIn"].ToString(),
                    UserType           = item["UserType"].ToString() == string.Empty ? 0 : Convert.ToInt32(item["UserType"].ToString())
                };
                visitlist.Add(visitCustomer);
            }
        }
        catch (Exception)
        {
            visitlist = new List <VisitCustomer>();
        }
        finally
        {
            con.Close();
        }
        return(visitlist);
    }