Пример #1
0
        /// <summary>
        /// Проверить акт на дубли.
        /// </summary>
        /// <param name="contractStatement">Акт.</param>
        /// <param name="businessUnit">НОР.</param>
        /// <param name="registrationNumber">Рег. номер.</param>
        /// <param name="registrationDate">Дата регистрации.</param>
        /// <param name="counterparty">Контрагент.</param>
        /// <param name="leadingDocument">Ведущий документ.</param>
        /// <returns>Признак дублей.</returns>
        public static bool HaveDuplicates(IContractStatement contractStatement,
                                          Sungero.Company.IBusinessUnit businessUnit,
                                          string registrationNumber,
                                          DateTime?registrationDate,
                                          Sungero.Parties.ICounterparty counterparty,
                                          Docflow.IOfficialDocument leadingDocument)
        {
            if (contractStatement == null ||
                businessUnit == null ||
                string.IsNullOrWhiteSpace(registrationNumber) ||
                registrationDate == null ||
                counterparty == null ||
                leadingDocument == null)
            {
                return(false);
            }

            return(Functions.ContractStatement.Remote.GetDuplicates(contractStatement,
                                                                    businessUnit,
                                                                    registrationNumber,
                                                                    registrationDate,
                                                                    counterparty,
                                                                    leadingDocument)
                   .Any());
        }
Пример #2
0
        public Structures.ApprovalRulesConsolidatedReport.TableLine CreateTableLine(string reportSessionId,
                                                                                    Sungero.Company.IBusinessUnit businessUnit,
                                                                                    Sungero.Company.IDepartment department,
                                                                                    Sungero.Docflow.IDocumentGroupBase category,
                                                                                    Sungero.Docflow.IApprovalRuleBase rule,
                                                                                    Sungero.Core.Enumeration flow,
                                                                                    string documentKind,
                                                                                    string documentParentType,
                                                                                    Dictionary <Sungero.Core.Enumeration, string> localizedValueCash)
        {
            var line = Structures.ApprovalRulesConsolidatedReport.TableLine.Create();

            line.BusinessUnit    = businessUnit != null ? businessUnit.Name : string.Empty;
            line.Department      = department != null ? department.Name : string.Empty;
            line.ReportSessionId = reportSessionId;
            line.Relation        = department != null && businessUnit != null && Equals(department.BusinessUnit, businessUnit) ? "+" : string.Empty;
            line.Category        = category != null ? category.Name : string.Empty;
            if (rule != null)
            {
                line.ApprovalRule         = rule.Name;
                line.ApprovalRuleId       = rule.Id;
                line.ApprovalRulePriority = rule.Priority;
                line.ApprovalRuleUrl      = Hyperlinks.Get(rule);
                line.Status = localizedValueCash[rule.Status.Value];
            }
            line.DocumentFlow       = localizedValueCash[flow];
            line.DocumentKind       = documentKind;
            line.DocumentParentType = documentParentType;
            return(line);
        }
Пример #3
0
        public static List <ICounterparty> GetExchangeCounterparty(Sungero.Company.IBusinessUnit businessUnit)
        {
            // TODO Пока отправляем только тем, с кем установлен обмен.
            var parties = Counterparties.GetAll()
                          .Where(x => x.ExchangeBoxes.Any(b => Equals(b.Status, Sungero.Parties.CounterpartyExchangeBoxes.Status.Active) && b.IsDefault == true))
                          .ToList();

            if (businessUnit != null)
            {
                parties = parties.Where(x => x.ExchangeBoxes.Any(b => Equals(b.Box.BusinessUnit, businessUnit))).ToList();
            }

            return(parties);
        }
 public static IQueryable <IContractBase> GetDuplicates(IContractBase contract,
                                                        Sungero.Company.IBusinessUnit businessUnit,
                                                        string registrationNumber,
                                                        DateTime?registrationDate,
                                                        Sungero.Parties.ICounterparty counterparty)
 {
     return(ContractBases.GetAll()
            .Where(l => Equals(contract.DocumentKind, l.DocumentKind))
            .Where(l => Equals(businessUnit, l.BusinessUnit))
            .Where(l => registrationDate == l.RegistrationDate)
            .Where(l => registrationNumber == l.RegistrationNumber)
            .Where(l => Equals(counterparty, l.Counterparty))
            .Where(l => !Equals(contract, l)));
 }
Пример #5
0
 public static IQueryable <IContractStatement> GetDuplicates(IContractStatement contractStatement,
                                                             Sungero.Company.IBusinessUnit businessUnit,
                                                             string registrationNumber,
                                                             DateTime?registrationDate,
                                                             Sungero.Parties.ICounterparty counterparty,
                                                             Docflow.IOfficialDocument leadingDocument)
 {
     return(ContractStatements.GetAll()
            .Where(l => Equals(contractStatement.DocumentKind, l.DocumentKind))
            .Where(l => Equals(businessUnit, l.BusinessUnit))
            .Where(l => registrationDate == l.RegistrationDate)
            .Where(l => registrationNumber == l.RegistrationNumber)
            .Where(l => Equals(counterparty, l.Counterparty))
            .Where(l => Equals(leadingDocument, l.LeadingDocument))
            .Where(l => !Equals(contractStatement, l)));
 }
Пример #6
0
        /// <summary>
        /// Проверить договор на дубли.
        /// </summary>
        /// <param name="contract">Договор.</param>
        /// <param name="businessUnit">Наша организация.</param>
        /// <param name="registrationNumber">Номер договора.</param>
        /// <param name="registrationDate">Дата договора.</param>
        /// <param name="counterparty">Контрагент.</param>
        /// <returns>Признак наличия дублей.</returns>
        public static bool HaveDuplicates(IContractBase contract,
                                          Sungero.Company.IBusinessUnit businessUnit,
                                          string registrationNumber,
                                          DateTime?registrationDate,
                                          Sungero.Parties.ICounterparty counterparty)
        {
            if (contract == null ||
                businessUnit == null ||
                string.IsNullOrWhiteSpace(registrationNumber) ||
                registrationDate == null ||
                counterparty == null)
            {
                return(false);
            }

            return(Functions.ContractBase.Remote.GetDuplicates(contract,
                                                               businessUnit,
                                                               registrationNumber,
                                                               registrationDate,
                                                               counterparty)
                   .Any());
        }
Пример #7
0
        public List <Structures.ApprovalRulesConsolidatedReport.TableLine> CreateTableDataLines(IEnumerable <IApprovalRuleBase> rules,
                                                                                                string reportSessionId,
                                                                                                Sungero.Company.IBusinessUnit businessUnit,
                                                                                                Sungero.Company.IDepartment department,
                                                                                                Sungero.Docflow.IDocumentGroupBase category,
                                                                                                Sungero.Core.Enumeration flow,
                                                                                                string documentKind,
                                                                                                string documentParentType,
                                                                                                Dictionary <Sungero.Core.Enumeration, string> localizedValueCash)
        {
            var result = new List <Structures.ApprovalRulesConsolidatedReport.TableLine>();

            if (!rules.Any())
            {
                var line = this.CreateTableLine(reportSessionId, businessUnit, department, category, null, flow, documentKind, documentParentType, localizedValueCash);
                result.Add(line);
            }

            foreach (var rule in rules)
            {
                var line = this.CreateTableLine(reportSessionId, businessUnit, department, category, rule, flow, documentKind, documentParentType, localizedValueCash);
                result.Add(line);
            }
            return(result);
        }