Example #1
0
 /// <summary>
 ///  Проверка наличия журнала сделаных
 /// </summary>
 /// <param name="reportMigration">Путь к отчету с ошибками о миграции</param>
 /// <param name="report">Модель отчета о миграциии</param>
 public static void CreateReportMigration(string reportMigration, MigrationParse report)
 {
     if (File.Exists(reportMigration))
     {
         XmlReadOrWrite read = new XmlReadOrWrite();
         read.AddReportMigrationElemrnt(reportMigration, report);
     }
     else
     {
         var convert = new Converts.ConvettToXml.XmlConvert();
         convert.SerializerClassToXml(reportMigration, report, typeof(MigrationParse));
     }
 }
Example #2
0
        /// <summary>
        /// Шаблон писем по миграции НП
        /// </summary>
        /// <param name="connectionstringtemplate">Строка соединения</param>
        /// <param name="path">Путь к папке сохранения</param>
        /// <param name="model">Модель миграции</param>
        public void MigrationDoc(string connectionstringtemplate, string path, MigrationParse model)
        {
            SqlLibaryIfns.SqlModelReport.SqlTemplate.ModelTemplate template = new SqlLibaryIfns.SqlModelReport.SqlTemplate.ModelTemplate();
            var setting = new FullSetting {
                UseTemplate = new UseTemplate()
                {
                    IdTemplate = 3
                }
            };
            var documenttemplate = template.Template(connectionstringtemplate, setting);

            model.N280 = template.Inspection(connectionstringtemplate, "7746").Inspection.N280;
            var ul46     = model.ReportMigration.Where(code => (code.Kpp ?? string.Empty) != "" && code.Problem.Contains("Запись о налогоплательщике в ЦУН не содержит ОКТМО")).ToArray();
            var fullpath = path + "7746" + "_ЮЛ_" + Constant.WordConstant.Formatword;

            GenerateDoc(fullpath, documenttemplate, ul46, model, 1, "7746");
            setting.UseTemplate.IdTemplate = 2;
            documenttemplate = template.Template(connectionstringtemplate, setting);
            model.ReportMigration.GroupBy(x => x.CodeIfns).ToList().ForEach(key =>
            {
                model.N280 = template.Inspection(connectionstringtemplate, key.Key).Inspection.N280;
                List <ReportMigration[]> report = new List <ReportMigration[]>();
                var fl = model.ReportMigration.Where(code => code.CodeIfns == key.Key && string.IsNullOrWhiteSpace(code.Kpp)).ToArray();
                var ul = model.ReportMigration.Where(code => code.CodeIfns == key.Key && (code.Kpp ?? string.Empty) != "" && !code.Problem.Contains("Запись о налогоплательщике в ЦУН не содержит ОКТМО")).ToArray();
                if (fl.Length >= 1)
                {
                    report.Add(fl);
                }
                if (ul.Length >= 1)
                {
                    report.Add(ul);
                }
                foreach (var param in report)
                {
                    int isshablon;
                    if (!string.IsNullOrWhiteSpace(param[0].Kpp))
                    {
                        isshablon = 1;
                        fullpath  = path + key.Key + "_ЮЛ_" + Constant.WordConstant.Formatword;
                    }
                    else
                    {
                        isshablon = 2;
                        fullpath  = path + key.Key + "_ФЛ_ИП_" + Constant.WordConstant.Formatword;
                    }
                    GenerateDoc(fullpath, documenttemplate, param, model, isshablon, key.Key);
                }
                report.Clear();
            });
        }
Example #3
0
        /// <summary>
        /// Отчет ошибок по миграции НП
        /// </summary>
        /// <param name="path">Путь к xml отчету</param>
        /// <param name="report">Модель добавления в отчет</param>
        public void AddReportMigrationElemrnt(string path, MigrationParse report)
        {
            var        doc             = LogicaXml.LogicaXml.Document(path);
            XmlElement xRoot           = doc.DocumentElement;
            XmlElement reportMigration = doc.CreateElement("ReportMigration");

            reportMigration.Attributes.Append(CreateElement.CreteElement.AtributeAddString(doc, "NameOrg", report.ReportMigration[0].NameOrg));
            reportMigration.Attributes.Append(CreateElement.CreteElement.AtributeAddString(doc, "Inn", report.ReportMigration[0].Inn));
            reportMigration.Attributes.Append(CreateElement.CreteElement.AtributeAddString(doc, "Kpp", report.ReportMigration[0].Kpp));
            reportMigration.Attributes.Append(CreateElement.CreteElement.AtributeAddString(doc, "CodeIfns", report.ReportMigration[0].CodeIfns));
            reportMigration.Attributes.Append(CreateElement.CreteElement.AtributeAddString(doc, "Fid", report.ReportMigration[0].Fid));
            reportMigration.Attributes.Append(CreateElement.CreteElement.AtributeAddString(doc, "Date", report.ReportMigration[0].Date));
            reportMigration.Attributes.Append(CreateElement.CreteElement.AtributeAddString(doc, "Stage", report.ReportMigration[0].Stage));
            reportMigration.Attributes.Append(CreateElement.CreteElement.AtributeAddString(doc, "Problem", report.ReportMigration[0].Problem));
            xRoot.AppendChild(reportMigration);
            doc.Save(path);
        }
Example #4
0
        /// <summary>
        /// Сервис подготовки документов ошибок о миграции
        /// </summary>
        /// <param name="json">Json отчет</param>
        /// <returns></returns>
        public async Task <ModelPathReport> MigrationReports(MigrationParse json)
        {
            var report = new ModelPathReport();

            try
            {
                return(await Task.Factory.StartNew(() =>
                {
                    var docmigration = new DocumentMigration();
                    docmigration.MigrationDoc(_parametrService.ConectWork, _parametrService.ReportMassTemplate, json);
                    report.Note = "Документы для печати запущены и сохраняются в папку ";
                    report.Url = _parametrService.ReportMassTemplate;
                    return report;
                }));
            }
            catch (Exception e)
            {
                Loggers.Log4NetLogger.Error(e);
                report.Note = e.Message;
                return(report);
            }
        }
Example #5
0
        /// <summary>
        /// Шаблон писем по миграции НП
        /// </summary>
        /// <param name="connectionStringTemplate">Строка соединения</param>
        /// <param name="path">Путь к папке сохранения</param>
        /// <param name="model">Модель миграции</param>\
        /// <param name="postAddress">Модель адреса</param>
        public void MigrationDocument(string connectionStringTemplate, string path, MigrationParse model, string postAddress = null)
        {
            ServiceRestLotus lotus = new ServiceRestLotus();

            SqlLibaryIfns.SqlModelReport.SqlTemplate.ModelTemplate template = new SqlLibaryIfns.SqlModelReport.SqlTemplate.ModelTemplate();
            var setting = new FullSetting {
                UseTemplate = new UseTemplate()
                {
                    IdTemplate = 3
                }
            };
            var documentTemplate = template.Template(connectionStringTemplate, setting);

            model.N280 = template.Inspection(connectionStringTemplate, "7746").Inspection.N280;
            var ul46     = model.ReportMigration.Where(code => (code.Kpp ?? string.Empty) != "" && code.Problem.Contains("Запись о налогоплательщике в ЦУН не содержит ОКТМО")).ToArray();
            var fullPath = path + "7746" + "_ЮЛ_" + Constant.WordConstant.FormatWord;

            GenerateDoc(fullPath, documentTemplate, ul46, model, 1, "7746");
            setting.UseTemplate.IdTemplate = 2;
            documentTemplate = template.Template(connectionStringTemplate, setting);
            model.ReportMigration.GroupBy(x => x.CodeIfns).ToList().ForEach(key =>
            {
                model.N280 = template.Inspection(connectionStringTemplate, key.Key).Inspection.N280;
                List <ReportMigration[]> report = new List <ReportMigration[]>();
                var fl = model.ReportMigration.Where(code => code.CodeIfns == key.Key && string.IsNullOrWhiteSpace(code.Kpp)).ToArray();
                var ul = model.ReportMigration.Where(code => code.CodeIfns == key.Key && (code.Kpp ?? string.Empty) != "" && !code.Problem.Contains("Запись о налогоплательщике в ЦУН не содержит ОКТМО")).ToArray();
                if (fl.Length >= 1)
                {
                    report.Add(fl);
                }
                if (ul.Length >= 1)
                {
                    report.Add(ul);
                }
                foreach (var param in report)
                {
                    int isTemplate;
                    string fileName;
                    if (!string.IsNullOrWhiteSpace(param[0].Kpp))
                    {
                        isTemplate = 1;
                        fileName   = key.Key + "_ЮЛ_" + Constant.WordConstant.FormatWord;
                        fullPath   = path + fileName;
                    }
                    else
                    {
                        isTemplate = 2;
                        fileName   = key.Key + "_ФЛ_ИП_" + Constant.WordConstant.FormatWord;
                        fullPath   = path + fileName;
                    }
                    GenerateDoc(fullPath, documentTemplate, param, model, isTemplate, key.Key);
                    //Отправка на сервис в Lotus
                    if (postAddress != null)
                    {
                        Letter modeLetter = new Letter()
                        {
                            Attachments = new Attachment[1], DestinationCodes = new string[1]
                        };
                        modeLetter.Attachments[0] = new Attachment
                        {
                            FileName  = fileName,
                            Extension = Constant.WordConstant.FormatWord,
                            Data      = File.ReadAllBytes(fullPath)
                        };
                        modeLetter.Id                  = Guid.NewGuid().ToString();
                        modeLetter.Subscriber          = documentTemplate.Templates.Stone.Stone3;
                        modeLetter.DestinationCodes[0] = key.Key;
                        modeLetter.File                = "07-10";
                        modeLetter.Author              = null;
                        lotus.ServicePostLotus(postAddress, modeLetter);
                    }
                }
                report.Clear();
            });
        }
Example #6
0
 /// <summary>
 /// Создание документов по Миграции
 /// </summary>
 /// <param name="fullPath">Полный путь к сохранению файла с именем</param>
 /// <param name="documentTemplate">Шаблон документа из БД</param>
 /// <param name="migration">Журнал миграции</param>
 /// <param name="model">Модель с параметрами</param>
 /// <param name="isTemplate">Шаблон ЮЛ или ФЛ</param>
 /// <param name="ifns">ИФНС номер инспекции</param>
 private void GenerateDoc(string fullPath, LibaryXMLAutoReports.FullTemplateSheme.Document documentTemplate, ReportMigration[] migration, MigrationParse model, int isTemplate, string ifns)
 {
     using (WordprocessingDocument package = WordprocessingDocument.Create(fullPath, WordprocessingDocumentType.Document))
     {
         MainDocumentPart mainDocumentPart = package.AddMainDocumentPart();
         DocumentFormat.OpenXml.Wordprocessing.Document doc = new DocumentFormat.OpenXml.Wordprocessing.Document();
         Fotters.FottersAddDocument(mainDocumentPart, documentTemplate.Templates.Stone.Stone4, documentTemplate.Templates.Stone.Stone5);
         doc.Append(SettingPage.AddSetting(mainDocumentPart));
         doc.Append(Headers.HeaderDocumentIfns(documentTemplate, mainDocumentPart, ifns, model.N280, model.Otdel));
         doc.Append(Body.TextDocumentFormatMigration(documentTemplate));
         doc.Append(Body.GenerateMigrationTable(migration, isTemplate));
         doc.Append(Single.AddSingle(documentTemplate));
         mainDocumentPart.Document = doc;
         package.MainDocumentPart.Document.Save();
         package.Close();
     }
 }