public int CreateContractMark(ContractMark entity) { using (var db = new LogistoDb()) { return(Convert.ToInt32(db.InsertWithIdentity(entity))); } }
public ContentResult ToggleContractRejected(int contractId, string comment) { var legalId = contractLogic.GetContract(contractId).LegalId; var contractorId = legalLogic.GetLegal(legalId).ContractorId.Value; var mark = contractLogic.GetContractMarkByContract(contractId); if (mark == null) { mark = new ContractMark { ContractId = contractId } } ; if (mark.IsContractRejected) { // проверка прав участника if (!participantLogic.IsAllowedActionByContractor(33, contractorId, CurrentUserId)) { return(Content(JsonConvert.SerializeObject(new { ActionId = 33, Message = "У вас недостаточно прав на выполнение этого действия." }))); } mark.IsContractRejected = false; mark.ContractRejectedDate = null; mark.ContractRejectedUserId = null; mark.ContractRejectedComment = ""; } else { // проверка прав участника if (!participantLogic.IsAllowedActionByContractor(33, contractorId, CurrentUserId)) { return(Content(JsonConvert.SerializeObject(new { ActionId = 33, Message = "У вас недостаточно прав на выполнение этого действия." }))); } mark.IsContractRejected = true; mark.ContractRejectedDate = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Unspecified); mark.ContractRejectedUserId = CurrentUserId; mark.ContractRejectedComment = comment; } if (mark.ID == 0) { var id = contractLogic.CreateContractMark(mark); mark = contractLogic.GetContractMark(id); } else { contractLogic.UpdateContractMark(mark); } contractLogic.CreateContractMarksHistory(new ContractMarksHistory { ContractId = contractId, Date = DateTime.Now, Text = mark.IsContractRejected ? "Договор отклонен" : "Снята метка 'Договор отклонен'", Reason = comment, UserId = CurrentUserId }); return(Content(JsonConvert.SerializeObject(mark))); }
public ContentResult GetContractMarks(int contractId) { var mark = contractLogic.GetContractMarkByContract(contractId); if (mark == null) { mark = new ContractMark { ContractId = contractId } } ; return(Content(JsonConvert.SerializeObject(mark))); }
public void UpdateContractMark(ContractMark mark) { using (var db = new LogistoDb()) { db.ContractMarks.Where(w => w.ID == mark.ID) .Set(s => s.ContractBlockedDate, mark.ContractBlockedDate) .Set(s => s.ContractCheckedDate, mark.ContractCheckedDate) .Set(s => s.ContractOkDate, mark.ContractOkDate) .Set(s => s.ContractRejectedComment, mark.ContractRejectedComment) .Set(s => s.ContractRejectedDate, mark.ContractRejectedDate) .Set(s => s.IsContractBlocked, mark.IsContractBlocked) .Set(s => s.IsContractChecked, mark.IsContractChecked) .Set(s => s.IsContractOk, mark.IsContractOk) .Set(s => s.IsContractRejected, mark.IsContractRejected) .Set(s => s.ContractBlockedUserId, mark.ContractBlockedUserId) .Set(s => s.ContractCheckedUserId, mark.ContractCheckedUserId) .Set(s => s.ContractOkUserId, mark.ContractOkUserId) .Set(s => s.ContractRejectedUserId, mark.ContractRejectedUserId) .Update(); } }
public ContentResult ToggleContractBlocked(int contractId, string comment) { #region проверка прав участника var legalId = contractLogic.GetContract(contractId).LegalId; var contractorId = legalLogic.GetLegal(legalId).ContractorId.Value; var workgroup = participantLogic.GetWorkgroupByContractor(contractorId).Where(w => w.UserId == CurrentUserId); if (workgroup.Count() == 0) { return(Content(JsonConvert.SerializeObject(new { Message = "Вы не являетесь участником этого контрагента" }))); } if (!IsAllowed(workgroup, ParticipantRoles.BUH, ParticipantRoles.GM)) { return(Content(JsonConvert.SerializeObject(new { Message = "У вас нет прав на этого контрагента" }))); } #endregion var mark = contractLogic.GetContractMarkByContract(contractId); if (mark == null) { mark = new ContractMark { ContractId = contractId } } ; if (mark.IsContractBlocked) { // проверка прав участника if (!participantLogic.IsAllowedActionByContractor(36, contractorId, CurrentUserId)) { return(Content(JsonConvert.SerializeObject(new { ActionId = 36, Message = "У вас недостаточно прав на выполнение этого действия." }))); } mark.IsContractBlocked = false; mark.ContractBlockedDate = null; mark.ContractBlockedUserId = null; mark.ContractBlockedComment = ""; } else { // проверка прав участника if (!participantLogic.IsAllowedActionByContractor(35, contractorId, CurrentUserId)) { return(Content(JsonConvert.SerializeObject(new { ActionId = 35, Message = "У вас недостаточно прав на выполнение этого действия." }))); } mark.IsContractBlocked = true; mark.ContractBlockedDate = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Unspecified); mark.ContractBlockedUserId = CurrentUserId; mark.ContractBlockedComment = comment; } if (mark.ID == 0) { mark = contractLogic.GetContractMark(contractLogic.CreateContractMark(mark)); } else { contractLogic.UpdateContractMark(mark); } contractLogic.CreateContractMarksHistory(new ContractMarksHistory { ContractId = contractId, Date = DateTime.Now, Text = mark.IsContractBlocked ? "Договор блокирован" : "Снята метка 'Договор блокирован'", Reason = comment, UserId = CurrentUserId }); string info = ""; #region если договор блокируется в тот момент, когда по нему есть текущие доходы или расходы (по заказам в статусе отличном от мотивация) var accs = accountingLogic.GetAccountingsByContract(contractId); var numbers = new List <string>(); foreach (var item in accs) { var order = orderLogic.GetOrder(item.OrderId); if (order.OrderStatusId != 7) { numbers.Add(item.Number); } } var allNumbers = string.Join(", ", numbers.ToArray()); if (!string.IsNullOrEmpty(allNumbers)) { //return Content(JsonConvert.SerializeObject(new { ActionId = 35, Message = "На этот договор есть немотивированные заказы c доход/расходами: " + allNumbers })); info = "На этот договор есть немотивированные заказы c доход/расходами: " + allNumbers; } #endregion return(Content(JsonConvert.SerializeObject(new { Mark = mark, InfoMessage = info }))); }