Beispiel #1
0
        /// <summary>
        /// Метод возвращает статус документов, которые были доставлены пользователю ПЛАТФОРМЫ EDISOFT
        /// </summary>
        /// <param name="partnerILN">ID партнера, от которого был получен документ</param>
        /// <param name="documentType">Тип документа (напр. INVOICE).</param>
        /// <param name="documentVersion">Версия спецификации (напр. EDISOFTV0R1).</param>
        /// <param name="documentStandard">Стандарт документа (напр. EDIFACT,XML).</param>
        /// <param name="documentTest">Статус документа (T – тест, P – продуктивный).</param>
        /// <param name="dateFrom">Дата с</param>
        /// <param name="dateTo">Дата до</param>
        /// <param name="itemFrom">???</param>
        /// <param name="itemTo">???</param>
        /// <param name="documentStatus">Статус документа N – только новые док-ты R – только прочтенные документы    Любое другое или пустое вернёт все</param>
        /// <param name="timeout">Таймаут на выполнение вызова метода (мс)</param>
        /// <returns>Cтатус документов</returns>
        internal static List <DocumentInfo> ListMBEx(string partnerILN
                                                     , string documentType
                                                     , string documentVersion
                                                     , string documentStandard
                                                     , string documentTest
                                                     , string dateFrom
                                                     , string dateTo
                                                     , string itemFrom
                                                     , string itemTo
                                                     , string documentStatus
                                                     , int timeout = 5000)
        {
            //LogService.Log($"[INFO] [EDI-METHOD] {MethodBase.GetCurrentMethod().DeclaringType} {MethodBase.GetCurrentMethod().Name}", 2);
            var    ser            = new XmlSerializer(typeof(MailboxResponse));
            retRes returnedResult = null;

            returnedResult = Client?.listMBEx(Name, Password, partnerILN, documentType, documentVersion, documentStandard, documentTest, dateFrom, dateTo, itemFrom, itemTo, documentStatus, timeout);

            if (returnedResult == null)
            {
                throw new Exception("Нет соединения с edisoft");
            }

            if (returnedResult?.res == "00000000")
            {
                return(((MailboxResponse)ser.Deserialize(new StringReader(returnedResult.cnt))).DocumentInfo);
            }

            else
            {
                MessageBox.Show(ResponseErrorHandler(returnedResult));
            }

            return(null);
        }
Beispiel #2
0
        internal static string ResponseErrorHandler(retRes res)
        {
            var result = "";

            switch (res.res)
            {
            case "00000001": result = "Ошибка аутентификации."; break;

            case "00000002": result = "Ошибка во взаимосвязи."; break;

            case "00000003": result = "Внешняя ошибка."; break;

            case "00000004": result = "Внутренняя ошибка сервера."; break;

            case "00000005": result = "Превышен таймаут на выполнение метода."; break;

            case "00000006": result = "Ошибка Web."; break;

            case "00000007": result = "Некорректные параметры."; break;

            case "00000008": result = "В доступе на платформу отказано."; break;

            case "00000009": result = "Запрашиваемого документа не обнаружено."; break;
            }
            return(result);
        }
Beispiel #3
0
        internal static List <Relation> GetRelationships(int timeout = 5000)
        {
            //LogService.Log($"[INFO] [EDI-METHOD] {MethodBase.GetCurrentMethod().DeclaringType} {MethodBase.GetCurrentMethod().Name}", 2);
            var ser = new XmlSerializer(typeof(RelationResponse));

            retRes returnedResult = null;

            //var s = Client?.State;
            returnedResult = Client?.relationships(Name, Password, timeout);

            if (returnedResult == null)
            {
                throw new Exception("Запрос связей не дал результатов");
            }

            if (returnedResult?.res == "00000000")
            {
                var reader = new StringReader(returnedResult.cnt);
                return(((RelationResponse)ser.Deserialize(reader)).Relations);
            }
            else
            {
                MessageBox.Show(ResponseErrorHandler(returnedResult));
            }

            return(null);
        }
Beispiel #4
0
        /// <summary>
        /// Данный метод используется для отправки документов.
        /// </summary>
        /// <param name="partnerILN">ID партнера, которому будет посылаться документ.</param>
        /// <param name="documentType">Тип документа (напр.INVOICE).</param>
        /// <param name="documentVersion">Версия спецификации (напр.EDISOFTV0R1).</param>
        /// <param name="documentStandard">Стандарт документа (напр.EDIFACT, XML).</param>
        /// <param name="documentTest">Статус документа (T – тест, P – продуктивный).</param>
        /// <param name="controlNumber">Контрольный номер документа</param>
        /// <param name="documentContent">Содержание документа</param>
        /// <param name="timeout">Таймаут на выполнение вызова метода(мс)</param>
        internal static void Send(string partnerILN, string documentType, string documentVersion, string documentStandard, string documentTest, string controlNumber, string documentContent, int timeout = 5000)
        {
            retRes returnedResult = null;

            returnedResult = Client.send(Name, Password, partnerILN, documentType, documentVersion, documentStandard, documentTest, controlNumber, documentContent, timeout);

            if (returnedResult?.res != "00000000" && returnedResult != null)
            {
                MessageBox.Show("КОД " + returnedResult.res + "\n\n" + returnedResult.cnt);
            }
        }
Beispiel #5
0
        internal static List <DocumentInfo> ListMBAll(bool getBinaryData = false)
        {
            //LogService.Log($"[INFO] [EDI-METHOD] {MethodBase.GetCurrentMethod().DeclaringType} {MethodBase.GetCurrentMethod().Name}", 2);
            var    ser            = new XmlSerializer(typeof(MailboxResponse));
            retRes returnedResult = null;

            returnedResult = Client?.listMBAllEx(Name, Password, getBinaryData);

            if (returnedResult == null)
            {
                throw new Exception("Нет соединения с edisoft");
            }

            if (returnedResult?.res == "00000000")
            {
                return(((MailboxResponse)ser.Deserialize(new StringReader(returnedResult.cnt))).DocumentInfo);
            }
            else
            {
                MessageBox.Show(ResponseErrorHandler(returnedResult));
            }

            return(null);
        }
Beispiel #6
0
        /// <summary>
        /// Метод, обеспечивающий получение документов. Документ, имеющий статус «Прочтённый» (Read), забрать нельзя.
        /// </summary>
        /// <param name="partnerILN">ID партнера, которому был послан документ.</param>
        /// <param name="documentType">Тип документа(напр.INVOICE).</param>
        /// <param name="trackingId">Идентификатор документа в ПЛАТФОРМЕ EDISOFT.</param>
        /// <param name="documentStandard">Стандарт документа(напр.EDIFACT, XML).</param>
        /// <param name="changeDocumentStatus">Изменить статус документа(установить прочитанным) – не работает</param>
        /// <param name="timeout">Таймаут на выполнение вызова метода(мс). Тип : Integer</param>
        /// <returns></returns>
        internal static List <TModel> Receive <TModel>(string partnerILN, string documentType, string trackingId, string documentStandard, string changeDocumentStatus, int timeout = 5000)
        {
            //LogService.Log($"[INFO] [EDI-METHOD] {MethodBase.GetCurrentMethod().DeclaringType} {MethodBase.GetCurrentMethod().Name}", 2);
            var    ser            = new XmlSerializer(typeof(TModel));
            retRes returnedResult = null;

            returnedResult = Client?.receive(Name, Password, partnerILN, documentType, trackingId, documentStandard, changeDocumentStatus, timeout);

            if (returnedResult == null)
            {
                throw new Exception("Нет соединения с edisoft");
            }

            if (returnedResult?.res == "00000000")
            {
                return(XmlService <TModel> .Deserialize(returnedResult.cnt));
            }
            else
            {
                MessageBox.Show(ResponseErrorHandler(returnedResult));
            }

            return(null);
        }
Beispiel #7
0
        /// <summary>
        /// С помощью данного метода можно узнать информацию о компании, заведенной на платформе Эдисофт по одному из параметров: ИНН, КПП, ОГРН, GUID.
        /// </summary>
        /// <param name="inn">ИНН</param>
        /// <param name="kpp">КПП</param>
        /// <param name="ogrn">ОГРН</param>
        /// <param name="fnsId">ФНСИД</param>
        /// <param name="gln">GLN</param>
        /// <returns></returns>
        internal static OrganizationInfo OrganizationInfo(string inn, string kpp, string ogrn, string fnsId, string gln)
        {
            //LogService.Log($"[INFO] [EDI-METHOD] {MethodBase.GetCurrentMethod().DeclaringType} {MethodBase.GetCurrentMethod().Name}", 2);
            retRes        returnedResult = null;
            XmlSerializer serializer     = new XmlSerializer(typeof(OrganizationInfo));

            returnedResult = Client.organizationInfo(Name, Password, inn, kpp, ogrn, fnsId, gln);

            if (returnedResult == null)
            {
                throw new Exception("Нет соединения с edisoft");
            }

            if (returnedResult.res == "00000000")
            {
                return((OrganizationInfo)serializer.Deserialize(new StringReader(returnedResult.cnt)));
            }
            else
            {
                MessageBox.Show(ResponseErrorHandler(returnedResult));
            }

            return(null);
        }