Пример #1
0
 public DocumentList GetDocumentList(DocumentListOptions options)
 {
     return CheckAutorizedInvoke(() => client.GetDocumentList(Token, options));
 }
Пример #2
0
        private void FillDocumentListOptions(DocumentListOptions documentListOptions)
        {
            if (UserInput.ChooseYesNo("Фильтровать по контрагентам?", false))
            {
                var contragentBoxes = new List<string>();
                do
                {
                    var contragentBox = ChooseContragentBox();
                    if (!string.IsNullOrWhiteSpace(contragentBox))
                    {
                        contragentBoxes.Add(contragentBox);
                        if (!UserInput.ChooseYesNo("Добавить еще одного контрагента?"))
                            break;
                    }
                }
                while (true);
                documentListOptions.ContragentBoxIds = contragentBoxes.ToArray();
            }

            if (UserInput.ChooseYesNo("Фильтровать по типам документов?", false))
            {
                var documentTypes = new List<DocumentType>();
                if (UserInput.ChooseYesNo("Неформализованный"))
                    documentTypes.Add(DocumentType.Untyped);
                if (UserInput.ChooseYesNo("Электронный счет-фактура"))
                    documentTypes.Add(DocumentType.Invoice);
                if (UserInput.ChooseYesNo("Товарная накладная (титул продавца)"))
                    documentTypes.Add(DocumentType.WaybillSeller);
                if (UserInput.ChooseYesNo("Акт о выполнении работ (титул исполнителя)"))
                    documentTypes.Add(DocumentType.ActOfWorkSeller);
                if (UserInput.ChooseYesNo("Исправленный счет-фактура"))
                    documentTypes.Add(DocumentType.InvoiceRevision);
                if (UserInput.ChooseYesNo("Корректировочный счет-фактура"))
                    documentTypes.Add(DocumentType.InvoiceCorrection);
                if (UserInput.ChooseYesNo("Исправленный корректировочный счет-фактура"))
                    documentTypes.Add(DocumentType.InvoiceCorrectionRevision);
                if (UserInput.ChooseYesNo("Соглашение об аннулировании"))
                    documentTypes.Add(DocumentType.RevocationOffer);
                documentListOptions.DocumentTypes = documentTypes.ToArray();
            }

            if (UserInput.ChooseYesNo("Фильтровать по статусам подписания?", false))
            {
                var signStatuses = new List<DocumentSignStatus>();
                if (UserInput.ChooseYesNo("Подпись не требуется"))
                    signStatuses.Add(DocumentSignStatus.NoSignNeeded);
                if (UserInput.ChooseYesNo("Подписан"))
                    signStatuses.Add(DocumentSignStatus.Signed);
                if (UserInput.ChooseYesNo("Отказано"))
                    signStatuses.Add(DocumentSignStatus.SignRejected);
                if (UserInput.ChooseYesNo("Требуется подпись"))
                    signStatuses.Add(DocumentSignStatus.WaitingForSign);
                documentListOptions.DocumentSignStatuses = signStatuses.ToArray();
            }

            if (UserInput.ChooseYesNo("Фильтровать по статусам СФ?", false))
            {
                var invoiceStatuses = new List<InvoiceFlowStatus>();
                if (UserInput.ChooseYesNo("Отправлен"))
                    invoiceStatuses.Add(InvoiceFlowStatus.InvoiceSent);
                if (UserInput.ChooseYesNo("Выставлен"))
                    invoiceStatuses.Add(InvoiceFlowStatus.InvoiceCharged);
                if (UserInput.ChooseYesNo("Выставлен. Запрошено уточнение"))
                    invoiceStatuses.Add(InvoiceFlowStatus.InvoiceRejected);
                if (UserInput.ChooseYesNo("Нарушен регламент"))
                    invoiceStatuses.Add(InvoiceFlowStatus.InvoiceNotValid);
                documentListOptions.InvoiceFlowStatuses = invoiceStatuses.ToArray();
            }

            if (UserInput.ChooseYesNo("Фильтровать по статусу требования подтверждения получения?", false))
            {
                documentListOptions.NeedReceipt =
                    (bool?)UserInput.ChooseOption("Требуется подтверждение получения?",
                        new[]
                                {
                                    new UserInput.Option("1", "Да", true, true),
                                    new UserInput.Option("2", "Нет ", true, false),
                                    new UserInput.Option("3", "Оба варианта", true, null)
                                }).Data;
            }

            if (UserInput.ChooseYesNo("Фильтровать по статусам аннулирования?", false))
            {
                var revocationStatuses = new List<DocumentRevocationStatus>();
                foreach (var revocationStatus in Enum
                    .GetValues(typeof(DocumentRevocationStatus))
                    .Cast<DocumentRevocationStatus>())
                    if (UserInput.ChooseYesNo(EnumHelper.GetDescription(revocationStatus)))
                        revocationStatuses.Add(revocationStatus);
                documentListOptions.DocumentRevocationStatuses = revocationStatuses.ToArray();
            }

            if (UserInput.ChooseYesNo("Указать период отправки", false))
            {
                documentListOptions.From = ChooseDate(true);
                documentListOptions.To = ChooseDate(false);
            }
        }
Пример #3
0
        private void GetDocumentList()
        {
            #pragma warning disable 618 //Отключить предупреждения насчет устаревших полей (obsolete)

            var incoming = UserInput.ChooseYesNo("Входящие");
            var documentListOptions =
                new DocumentListOptions
                {
                    BoxTo = incoming ? _context.CurrentBox : null,
                    BoxFrom = !incoming ? _context.CurrentBox : null,
                    First = 0,
                    Max = 10
                };

            if (UserInput.ChooseYesNo("Указать параметры фильтрации", false))
                FillDocumentListOptions(documentListOptions);

            var documentList = _context.ServiceClient.GetDocumentList(documentListOptions);
            Console.Out.WriteLine("Всего документов {0}", documentList.Total);

            while (true)
            {
                Console.Out.WriteLine("Документы с "
                    + (documentListOptions.First + 1) + " по "
                                      +
                                      Math.Min(documentListOptions.First + documentListOptions.Max, documentList.Total));

                foreach (var documentListEntry in documentList.Items)
                {
                    Console.Out.WriteLine("{0, -60} {1, -20} {2, -20} {3, -20} {4, -20} {5}",
                        documentListEntry.Name,
                        incoming
                            ? documentListEntry.FromOrganizationName
                            : documentListEntry.ToOrganizationName,
                        (DocumentType)documentListEntry.DocumentTypeEnum.Code,
                        GetStatusText(documentListEntry.MessageFrom, documentListEntry.Status,
                            documentListEntry.DocumentFlowStatusDescription),
                        documentListEntry.Id,
                        documentListEntry.SentDate);
                }

                if (documentListOptions.First + documentListOptions.Max > documentList.Total)
                    break;
                if (!UserInput.ChooseYesNo("Далее"))
                    break;

                documentListOptions.First += documentListOptions.Max;
                documentList = _context.ServiceClient.GetDocumentList(documentListOptions);
            }
        }
Пример #4
0
        private void GetDocumentList()
        {
            #pragma warning disable 618 //Отлючить предупреждения насчет устаревших полей (obsolete)

            var incoming = UserInput.ChooseYesNo("Входящие");
            var documentListOptions = new DocumentListOptions()
            {
                BoxTo = incoming ? context.CurrentBox : null,
                BoxFrom = !incoming ? context.CurrentBox : null,
                First = 0,
                Max = 10
            };

            if (UserInput.ChooseYesNo("Указать период отправки", false))
            {
                documentListOptions.From = ChooseDate(from: true);
                documentListOptions.To = ChooseDate(from: false);
            }

            var documentList = context.ServiceClient.GetDocumentList(documentListOptions);
            Console.Out.WriteLine("Всего документов {0}", documentList.Total);

            while (true)
            {
                Console.Out.WriteLine("Документы с "
                    + (documentListOptions.First + 1) + " по "
                    + Math.Min(documentListOptions.First + documentListOptions.Max, documentList.Total));

                foreach (var documentListEntry in documentList.Items)
                {
                    Console.Out.WriteLine("{0, -60} {1, -20} {2, -20} {3, -20} {4} {5}",
                        documentListEntry.Name,
                        incoming ?
                            documentListEntry.FromOrganizationName
                            : documentListEntry.ToOrganizationName,
                        documentListEntry.DocumentType,
                        StatusText(documentListEntry.MessageTo, documentListEntry.Status),
                        documentListEntry.Id,
                        documentListEntry.SentDate);
                }

                if (documentListOptions.First + documentListOptions.Max > documentList.Total)
                    break;
                if (!UserInput.ChooseYesNo("Далее"))
                    break;

                documentListOptions.First += documentListOptions.Max;
                documentList = context.ServiceClient.GetDocumentList(documentListOptions);
            }
        }