Exemplo n.º 1
0
        /// <summary>
        /// Добавление лица и патента в БД
        /// </summary>
        /// <param name="face">Лицо ФЛ</param>
        /// <param name="patent">Патент</param>
        public IsPatentParse AddFlFaceAndPatent(FlFaceMain face, ref Patent patent)
        {
            var p = patent;

            if (!(from flFaceMain in Automation.FlFaceMains where flFaceMain.Inn == face.Inn select new { FlFaceMains = flFaceMain }).Any())
            {
                Automation.FlFaceMains.Add(face);
                Automation.SaveChanges();
            }
            if (!(from patents in Automation.Patents where patents.RegNumInfo == p.RegNumInfo && patents.RegNumPatent == p.RegNumPatent select new { Patents = patents }).Any())
            {
                var select = (from flFaceMain in Automation.FlFaceMains where flFaceMain.Inn == face.Inn select new { FlFaceMains = flFaceMain }).FirstOrDefault();
                patent.IdFl = select.FlFaceMains.IdFl;
                Automation.Patents.Add(patent);
                Automation.SaveChanges();
            }
            else
            {
                var selectFace   = (from FlFaceMain in Automation.FlFaceMains where FlFaceMain.Inn == face.Inn select new { FlFaceMains = FlFaceMain }).FirstOrDefault();
                var selectPatent = (from Patent in Automation.Patents where Patent.RegNumInfo == p.RegNumInfo && Patent.RegNumPatent == p.RegNumPatent select new { Patents = Patent }).FirstOrDefault();
                patent.IdFl     = selectFace.FlFaceMains.IdFl;
                patent.IdPatent = selectPatent.Patents.IdPatent;
            }
            return(Automation.IsPatentParses.First(x => x.RegNumPatent == p.RegNumPatent));
        }
Exemplo n.º 2
0
        /// <summary>
        /// Сбор информации по СПН
        /// </summary>
        /// <param name="statusButton">Кнопка старт автомат</param>
        /// <param name="pathTemp">Путь сохранения Temp</param>
        public void LoadPatent(StatusButtonMethod statusButton, string pathTemp)
        {
            LibraryAutomations libraryAutomation = new LibraryAutomations(WindowsAis3.AisNalog3);
            var parametersModel = new ModelDataArea();

            if (!libraryAutomation.IsEnableExpandTree(modelTreePatent))
            {
                return;
            }
            DataBaseElementAdd dataBaseAdd = new DataBaseElementAdd();
            var sw       = modelTreePatent.Split('\\').Last();
            var fullTree = string.Concat(PublicElementName.FullTree, $"Name:{sw}");

            libraryAutomation.FindFirstElement(fullTree, null, true);
            libraryAutomation.FindElement.SetFocus();
            libraryAutomation.ClickElements(fullTree, null, false, 25, 0, 0, 2);
            parametersModel.DataArea.Parameters.First(parameters => parameters.NameParameters == "РегНомер патента").ParametersGrid = string.Join("/", dataBaseAdd.PatentExportFull().Select(x => x.RegNumPatent).ToArray());
            foreach (var dataAreaParameters in parametersModel.DataArea.Parameters)
            {
                while (true)
                {
                    if (libraryAutomation.FindFirstElement(string.Concat(parametersModel.DataArea.FullPathDataArea, parametersModel.DataArea.ListRowDataArea, dataAreaParameters.IndexParameters), null, true) != null)
                    {
                        libraryAutomation.FindFirstElement(dataAreaParameters.FindNameMemo, libraryAutomation.FindElement, true);
                        libraryAutomation.FindElement.SetFocus();
                        SendKeys.SendWait("{ENTER}");
                        AutoItX.Sleep(1000);
                        SendKeys.SendWait(dataAreaParameters.ParametersGrid);
                        SendKeys.SendWait("{ENTER}");
                        while (true)
                        {
                            libraryAutomation.FindFirstElement("Name:Условие", libraryAutomation.FindFirstElement(
                                                                   string.Concat(parametersModel.DataArea.FullPathDataArea,
                                                                                 parametersModel.DataArea.ListRowDataArea, dataAreaParameters.IndexParameters), null, true), true);
                            libraryAutomation.ClickElement(libraryAutomation.FindElement);
                            if (libraryAutomation.FindFirstElement("Name:DropDown") != null)
                            {
                                var memo      = libraryAutomation.SelectAutomationColrction(libraryAutomation.FindElement);
                                var elemClick = memo.Cast <AutomationElement>().FirstOrDefault(x => x.Current.Name == dataAreaParameters.FindSelectParameter);
                                libraryAutomation.ClickElement(elemClick);
                                break;
                            }
                        }
                        break;
                    }
                }
            }
            if (libraryAutomation.FindFirstElement(string.Concat(parametersModel.DataArea.FullPathDataArea, parametersModel.DataArea.Headers), null, true) != null)
            {
                var memo = libraryAutomation.SelectAutomationColrction(libraryAutomation.FindElement);
                libraryAutomation.ClickElement(memo[4]);
                PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, parametersModel.DataArea.Update);
            }
            PublicGlobalFunction.PublicGlobalFunction.GridNotDataIsWaitUpdate(libraryAutomation, parametersModel.DataArea.FullPathGrid);
            var listMemo = libraryAutomation.SelectAutomationColrction(libraryAutomation.IsEnableElements(parametersModel.DataArea.FullPathGrid))
                           .Cast <AutomationElement>().Where(elem => elem.Current.Name.Contains("select0 row")).Distinct();

            foreach (var automationElement in listMemo)
            {
                if (statusButton.Iswork)
                {
                    automationElement.SetFocus();
                    AutoItX.Sleep(1000);
                    FlFaceMain face = new FlFaceMain()
                    {
                        Inn = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation
                                                                                                .SelectAutomationColrction(automationElement)
                                                                                                .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("ИНН"))),
                        NameFull = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation
                                                                                                     .SelectAutomationColrction(automationElement)
                                                                                                     .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("Налогоплательщик"))),
                        OgrnIp = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation
                                                                                                   .SelectAutomationColrction(automationElement)
                                                                                                   .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("ОГРНИП"))),
                        Address = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation
                                                                                                    .SelectAutomationColrction(automationElement)
                                                                                                    .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("Адрес места жительства"))),
                        Fid = Convert.ToInt64(libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation
                                                                                                                .SelectAutomationColrction(automationElement)
                                                                                                                .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("ФИД налогоплательщика"))))
                    };
                    Patent patent = new Patent()
                    {
                        DateStartPatent = Convert.ToDateTime(libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation
                                                                                                                               .SelectAutomationColrction(automationElement)
                                                                                                                               .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("Дата начала действия патента")))),
                        DateFinishPatent = Convert.ToDateTime(libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation
                                                                                                                                .SelectAutomationColrction(automationElement)
                                                                                                                                .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("Дата окончания действия патента")))),
                        CodeWork = Convert.ToInt32(libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation
                                                                                                                     .SelectAutomationColrction(automationElement)
                                                                                                                     .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("Код вида предпринимательской деятельности ПСН")))),
                        NameVid = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation
                                                                                                    .SelectAutomationColrction(automationElement)
                                                                                                    .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("Наименование вида предпринимательской деятельности ПСН"))),
                        CodeOkun = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation
                                                                                                     .SelectAutomationColrction(automationElement)
                                                                                                     .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("Код по ОКУН"))),
                        NameCodeOkun = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation
                                                                                                         .SelectAutomationColrction(automationElement)
                                                                                                         .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("Наименование по ОКУН"))),
                        CountMouth = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation
                                                                                                       .SelectAutomationColrction(automationElement)
                                                                                                       .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("Количество месяцев, на которое выдан патент"))),
                        CountDays = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation
                                                                                                      .SelectAutomationColrction(automationElement)
                                                                                                      .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("Количество дней, на которое выдан патент"))),
                        AvgPeople = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation
                                                                                                      .SelectAutomationColrction(automationElement)
                                                                                                      .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("Средняя численность наемных работников"))),
                        NalogStav = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation
                                                                                                      .SelectAutomationColrction(automationElement)
                                                                                                      .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("Налоговая ставка"))),
                        NormalCodex = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation
                                                                                                        .SelectAutomationColrction(automationElement)
                                                                                                        .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("Норма закона субъекта РФ"))),
                        DateWaitResh = Convert.ToDateTime(libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation
                                                                                                                            .SelectAutomationColrction(automationElement)
                                                                                                                            .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("Ожидаемая дата принятия решения")))),
                        DateResh = Convert.ToDateTime(libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation
                                                                                                                        .SelectAutomationColrction(automationElement)
                                                                                                                        .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("Дата принятия решения")))),
                        DateCancel = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation
                                                                                                       .SelectAutomationColrction(automationElement)
                                                                                                       .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("Дата отмены действия"))),
                        RegNumInfoVz = string.IsNullOrWhiteSpace(libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation.SelectAutomationColrction(automationElement)
                                                                                                                                   .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("РегНомер заявления на патент, выписанного взамен")))) ? (long?)null :
                                       Convert.ToInt64(libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation
                                                                                                                         .SelectAutomationColrction(automationElement)
                                                                                                                         .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("РегНомер заявления на патент, выписанного взамен")))),
                        RegNumPatentVz = string.IsNullOrWhiteSpace(libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation.SelectAutomationColrction(automationElement)
                                                                                                                                     .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("РегНомер патента, выписанного взамен")))) ? (long?)null :
                                         Convert.ToInt64(libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation
                                                                                                                           .SelectAutomationColrction(automationElement)
                                                                                                                           .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("РегНомер патента, выписанного взамен")))),
                        DateObjectNot = libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation
                                                                                                          .SelectAutomationColrction(automationElement)
                                                                                                          .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("Дата признания объекта не актуальным"))),
                        IdObjectPsn = Convert.ToInt64(libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation
                                                                                                                        .SelectAutomationColrction(automationElement)
                                                                                                                        .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("УН объекта ПСН")))),
                        RegNumInfo = string.IsNullOrWhiteSpace(libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation.SelectAutomationColrction(automationElement)
                                                                                                                                 .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("РегНомер патента")))) ? (long?)null :
                                     Convert.ToInt64(libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation
                                                                                                                       .SelectAutomationColrction(automationElement)
                                                                                                                       .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("РегНомер патента")))),
                        RegNumPatent = string.IsNullOrWhiteSpace(libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation.SelectAutomationColrction(automationElement)
                                                                                                                                   .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("РегНомер патента")))) ? (long?)null :
                                       Convert.ToInt64(libraryAutomation.ParseElementLegacyIAccessiblePatternIdentifiers(libraryAutomation
                                                                                                                         .SelectAutomationColrction(automationElement)
                                                                                                                         .Cast <AutomationElement>().First(elem => elem.Current.Name.Contains("РегНомер патента"))))
                    };
                    var parseModel = dataBaseAdd.AddFlFaceAndPatent(face, ref patent);
                    parseModel.IsParseFullPatent = true;
                    GetFile file;
                    var     sheetName = "Sheet";
                    parametersModel.DataAreaModel.First(param => param.Headers == "Документы объекта ПСН").IsParseModel                       = parseModel.IsParseDocPatent;
                    parametersModel.DataAreaModel.First(param => param.Headers == "Сведения об обособленных объектах").IsParseModel           = parseModel.IsParseSvedObject;
                    parametersModel.DataAreaModel.First(param => param.Headers == "Сведения о месте осуществления деятельности").IsParseModel = parseModel.IsParsePlaceOfBusiness;
                    parametersModel.DataAreaModel.First(param => param.Headers == "Параметры расчета налога").IsParseModel                    = parseModel.IsParseParametrNalog;
                    parametersModel.DataAreaModel.First(param => param.Headers == "Сведения о транспортных средствах").IsParseModel           = parseModel.IsParseSvedTr;
                    parametersModel.DataAreaModel.First(param => param.Headers == "Сведения по фактическому действию патента").IsParseModel   = parseModel.IsParseSvedFactPatent;
                    foreach (var parameter in parametersModel.DataAreaModel)
                    {
                        if (!parameter.IsParseModel)
                        {
                            PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, parameter.Riborn);
                            while (true)
                            {
                                var grid = PublicGlobalFunction.PublicGlobalFunction.GridNotDataIsWaitUpdate(libraryAutomation, parameter.FullPathGrid);

                                if (string.IsNullOrWhiteSpace(grid))
                                {
                                    PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, parameter.Export);
                                    while (true)
                                    {
                                        if (libraryAutomation.IsEnableElements(PreCheckElementName.WinExport, null, true) != null)
                                        {
                                            PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, PreCheckElementName.WinExport);
                                            PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, PreCheckElementName.ExportMenuXlsx);
                                            libraryAutomation.FindFirstElement(PreCheckElementName.ExportNameList);
                                            libraryAutomation.SetValuePattern(sheetName);
                                            PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, PreCheckElementName.Export);
                                            PublicGlobalFunction.PublicGlobalFunction.ExcelSaveAndClose();
                                            file = PublicGlobalFunction.PublicGlobalFunction.ReturnNameLastFileTemp(pathTemp, "*.xlsx");
                                            break;
                                        }
                                    }
                                    switch (parameter.Headers)
                                    {
                                    case "Документы объекта ПСН":
                                        dataBaseAdd.AddDocPatent(patent, file.NamePath, sheetName);
                                        break;

                                    case "Сведения об обособленных объектах":
                                        dataBaseAdd.AddSvedObject(patent, file.NamePath, sheetName);
                                        break;

                                    case "Сведения о месте осуществления деятельности":
                                        dataBaseAdd.AddPlaceOfBusiness(patent, file.NamePath, sheetName);
                                        break;

                                    case "Параметры расчета налога":
                                        dataBaseAdd.AddParametrNalog(patent, file.NamePath, sheetName);
                                        break;

                                    case "Сведения о транспортных средствах":
                                        dataBaseAdd.AddSvedTr(patent, file.NamePath, sheetName);
                                        break;

                                    case "Сведения по фактическому действию патента":
                                        dataBaseAdd.AddSvedFactPatent(patent, file.NamePath, sheetName);
                                        break;
                                    }
                                    File.Delete(file.NamePath);
                                    break;
                                }
                                if (grid == "Данные, удовлетворяющие заданным условиям не найдены.")
                                {
                                    break;
                                }
                                PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, parameter.Update);
                            }
                            switch (parameter.Headers)
                            {
                            case "Документы объекта ПСН":
                                parseModel.IsParseDocPatent = true;
                                break;

                            case "Сведения об обособленных объектах":
                                parseModel.IsParseSvedObject = true;
                                break;

                            case "Сведения о месте осуществления деятельности":
                                parseModel.IsParsePlaceOfBusiness = true;
                                break;

                            case "Параметры расчета налога":
                                parseModel.IsParseParametrNalog = true;
                                break;

                            case "Сведения о транспортных средствах":
                                parseModel.IsParseSvedTr = true;
                                break;

                            case "Сведения по фактическому действию патента":
                                parseModel.IsParseSvedFactPatent = true;
                                break;
                            }
                            dataBaseAdd.UpdateIsParseModel(parseModel);
                            WindowsAis3 win = new WindowsAis3();
                            AutoItX.MouseClick(ButtonConstant.MouseLeft, win.WindowsAis.X + win.WindowsAis.Width - 20, win.WindowsAis.Y + 160);
                        }
                    }
                }
                else
                {
                    break;
                }
            }
            WindowsAis3 winFullClose = new WindowsAis3();

            AutoItX.MouseClick(ButtonConstant.MouseLeft, winFullClose.WindowsAis.X + winFullClose.WindowsAis.Width - 20, winFullClose.WindowsAis.Y + 160);
        }