Диплом: Автоматизация процессов управления взаимоотношениями с клиентами для ООО "БАГИРА М"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
116
get
{
if (_canBeDeletedCommand == null)
{
_canBeDeletedCommand = new SqlCommand("UserCanBeDeleted",
XDatabase.Instance.SqlCon);
_canBeDeletedCommand.Parameters.Add("@id", SqlDbType.BigInt);
_canBeDeletedCommand.CommandType =
CommandType.StoredProcedure;
}
return _canBeDeletedCommand;
}
}
static SqlCommand _companiesCountCommand = null;
static SqlCommand CompaniesCountCommand
{
get
{
if (_companiesCountCommand == null)
{
_companiesCountCommand = new SqlCommand("SELECT COUNT(id)
FROM xCompanies WHERE Deleted = 0 AND Manager = @id",
XDatabase.Instance.SqlCon);
_companiesCountCommand.Parameters.Add("@id", SqlDbType.BigInt);
_companiesCountCommand.CommandType = CommandType.Text;
}
return _companiesCountCommand;
}
}
117
public override bool DeleteAllowed
{
get
{
if (XUsers.Instance.CurrentUser.Administrator)
{
if (id == 1) return false;
try
{
CanBeDeletedCommand.Parameters["@id"].Value = id;
return (bool)XDatabase.Instance.ExecuteScalar(CanBeDeletedCommand,
true);
}
catch (Exception ex)
{
XError.Instance.ShowError("Ошибка при проверке прав на удаление",
ex);
}
}
return false;
}
}
public int CompaniesCount
{
get
{
try
{
CompaniesCountCommand.Parameters["@id"].Value = id;
return (int)XDatabase.Instance.ExecuteScalar(CompaniesCountCommand,
true);
118
}
catch (Exception ex)
{
XError.Instance.ShowError("Ошибка при подсчете количества
компаний", ex);
}
return 0;
}
}
public string Phone
{
get { return this["Phone"].ToString(); }
set { this.SetPropertyAndSave("Phone", value); }
}
public string MobilePhone
{
get { return this["MobilePhone"].ToString(); }
set { this.SetPropertyAndSave("MobilePhone", value); }
}
public string TelephonyGuid
{
get
{
return Phone;
var res = this["ManagerGuid"].ToString();
if (string.IsNullOrWhiteSpace(res)) res = Guid.NewGuid().ToString();
SetPropertyAndSave("ManagerGuid", res);
return res;
}
119
}
class XUserAll : XUser
{
public XUserAll()
: base(null)
{
}
public override string ToString()
{
return "(Все)";
}
}
public static readonly XUser All = new XUserAll();
}
}
Пользователи
using System.Collections.Generic;
using System.Linq;
using BusinessObjects;
namespace CRM
{
/// <summary>
/// Сотрудники компании
/// </summary>
public class XUsers : XBusinessObjectsFactory
{
120
/// <summary>
/// Конструктор, заполняющий список свойств
/// </summary>
protected XUsers()
{
Init("xUsers", "InsertUser", "DeleteUser", " ORDER BY Name, Fired", true);
// m_ValidateNameDelegate = new ValidationDelegate(this.ValidateName);
// Заполняем список свойств
Properties.Add("FIO", "ФИО", XPropertyType.ptString, "", 255);
Properties.Add("Password", "Пароль", XPropertyType.ptString, "", 255);
Properties.Add("Administrator", "Администратор", XPropertyType.ptBool,
false);
Properties.Add("Manager", "Менеджер", XPropertyType.ptBool, true);
Properties.Add("Fired", "Не работает", XPropertyType.ptBool, false);
Properties.Add("Phone", "Телефон", XPropertyType.ptString, "", 255);
Properties.Add("MobilePhone", "Мобильный телефон",
XPropertyType.ptString, "", 255);
}
protected static XUsers m_Instance = null;
/// <summary>
/// Экземпляр XPersons
/// </summary>
public static XUsers Instance
{
get
{
if (m_Instance == null)
{
m_Instance = new XUsers();
121
m_Instance.Init();
}
return m_Instance;
}
}
void Init()
{
((XBusinessObjectPropertyValue)Properties["Assistant"].DefaultValue).Factory
= this;
}
/// <summary>
/// Создать сотрудника
/// </summary>
/// <returns></returns>
public override XBusinessObject CreateBusinessObject()
{
XUser zNewUser = new XUser(this.Properties);
zNewUser.Factory = this;
return zNewUser;
}
private XUser m_CurrentUser;
/// <summary>
/// Текущий пользователь
/// </summary>
public XUser CurrentUser
{
get
{
return m_CurrentUser;
122
}
}
public bool Login(XUser user, string pwd)
{
if (user.CheckPassword(pwd))
{
m_CurrentUser = user;
if (m_CurrentUser.Administrator)
this.Properties["Administrator"].ReadOnly = false;
XSettings.m_CurrentUserId = m_CurrentUser.id;
return true;
}
return false;
}
XUser _prevUser = null;
public void SetUserSync()
{
_prevUser = m_CurrentUser;
m_CurrentUser = (XUser)this.GetObjectById(1);
XSettings.m_CurrentUserId = 1;
}
public void RestoreNormalUser()
{
m_CurrentUser = _prevUser;
if (_prevUser != null)
XSettings.m_CurrentUserId = _prevUser.id;
}
123
//private bool ValidateAdministrator(XPropertyValue a_PropertyValue, object
a_Value)
//{
// if ((bool)a_Value == false)
// {
// // Если это последний админ, его удалять нельзя
// bool zLastAdmin = true;
// for (int i = 0; i < Count; i++)
// {
// if ((this[i] != CurrentUser) && (((XUser)this[i]).Admin))
// {
// zLastAdmin = false;
// return true;
// }
// }
// if (zLastAdmin) throw new XPropertyValidationException("Отъем прав
администрирования невозможен: Хотя бы один из пользователей должен быть
администратором.");
// }
// return true;
//}
/// <summary>
/// Не уволенные менеджеры с галочкой менеджер
/// </summary>
public IEnumerable<XUser> Managers
{
get
124
{
Refresh();
return this.Cast<XUser>().Where((x) => x.Manager && !x.Fired && x.id > 1);
}
}
public IEnumerable<XUser> ActiveUsers
{
get
{
Refresh();
return this.Cast<XUser>().Where((x) => !x.Fired && x.id > 1);
}
}
public XUser GetUser(string code1C, string managerName = null, bool create =
false)
{
XUser res = null;
foreach (var u in this)
{
if (u["Code1C"].ToString() == code1C)
return (XUser) u;
}
if (create)
{
res = (XUser) CreateBusinessObject();
res["Code1C"].Value = code1C;
res["Name"].Value = string.IsNullOrWhiteSpace(managerName) ? code1C :
managerName;
res.Save();
125
}
return res;
}
public XUser CreateNewUser()
{
XUser zNewUser = new XUser(this.Properties);
zNewUser.Factory = this;
zNewUser.Save();
this.Add(zNewUser);
return zNewUser;
}
}
}

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)