Beispiel #1
0
        public void SetSatusCrm(CRMCustomer crm)
        {
            bool          isCancel   = false;
            CRMStatusCode code       = CRMStatusCode.Potential;
            DateTime      cancelDate = crm.DateCancel ?? crm.CreatedDate.Date;

            DateTime lastCancelDate = cancelDate.AddDays(days);

            if (crm.SsmCusId.HasValue)
            {
                var shipments = shipmentServices.Count(s => s.CneeId.Value == crm.SsmCusId.Value || s.ShipperId.Value == crm.SsmCusId.Value);
                if (shipments == 0)
                {
                    code = CRMStatusCode.Potential;
                }
                if (shipments >= 1)
                {
                    code = CRMStatusCode.Success;
                }
            }
            else
            {
                if (lastCancelDate < DateTime.Today)
                {
                    isCancel = true;
                    code     = CRMStatusCode.Client;
                }
            }

            var status = statusService.GetModel(code);

            if (crm.CRMStatus.Code == (byte)code)
            {
                return;
            }
            crmService.SetStatus(crm.Id, status.Id, code, isCancel);
        }