/// <summary> /// Сохранение документа в БД /// </summary> /// <param name="taxJournal">Журнал</param> private void SaveDocument(TaxJournal121Error taxJournal) { var dbAutomation = new AddObjectDb(); dbAutomation.TaxJournal121Error(taxJournal); dbAutomation.Dispose(); }
/// <summary> /// Если признак углубленной проверки не белый то Открыть Комплекс Мероприятий /// В противном случае Начать Углубленную Проверку /// </summary> /// <param name="libraryAutomation">Библиотека Автомата</param> /// <param name="taxJournal">Журнал</param> private void IsStartIsOpenKm(LibraryAutomations libraryAutomation, TaxJournal121Error taxJournal) { PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, taxJournal.Color3 == "ffffff" ? Journal129AndJournal121.StartKnp : Journal129AndJournal121.OpenKnp); }
/// <summary> /// Сохранение журнала Ошибок /// </summary> /// <param name="journal">Журнал сохраняем</param> public void TaxJournal121Error(TaxJournal121Error journal) { if (!(from taxJournal121Error in Automation.TaxJournal121Error where taxJournal121Error.RegNumDeclaration == journal.RegNumDeclaration select new { TaxJournal121Error = taxJournal121Error }).Any()) { Automation.TaxJournal121Error.Add(journal); Automation.SaveChanges(); } }
/// <summary> /// Функция проверки декларации на нарушения и проставления нарушения /// </summary> /// <param name="libraryAutomation">Библиотека автоматизации</param> /// <param name="taxJournal">Журнал для проверок деклараций на наличие нарушений</param> /// <param name="pathTemp">Путь к сохранению документа</param> /// <param name="rowNumber">Номер обрабатываемой строки</param> public void IsErrorDeclaration(LibraryAutomations libraryAutomation, TaxJournal121Error taxJournal, string pathTemp, int rowNumber) { //Проверка декларации раскладка var sum = DeclarationIntelligenceUl(libraryAutomation, taxJournal.RegNumDeclaration, pathTemp); if (sum != null) { IsStartIsOpenKm(libraryAutomation, taxJournal); PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, Journal129AndJournal121.EditP); PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, Journal129AndJournal121.Avg); PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, Journal129AndJournal121.SendAvg); while (true) { if (libraryAutomation.IsEnableElements(Journal129AndJournal121.SendAvg, null, true) == null) { break; } } var win = new WindowsAis3(); AutoItX.MouseClick(ButtonConstant.MouseLeft, win.WindowsAis.X + win.WindowsAis.Width - 20, win.WindowsAis.Y + 160); if (sum == (decimal)0.00) { libraryAutomation.ClickElements(Journal129AndJournal121.UpdateData121); while (true) { if (string.IsNullOrWhiteSpace(PublicGlobalFunction.PublicGlobalFunction.GridNotDataIsWaitUpdate(libraryAutomation, Journal129AndJournal121.GridTaxJournal121))) { break; } libraryAutomation.ClickElements(Journal129AndJournal121.UpdateData121); } AutomationElement automationElement; LibraryAutomations libraryAutomationWin; while ((automationElement = libraryAutomation.IsEnableElements( string.Concat(Journal129AndJournal121.AllTaxJournal121, rowNumber), null, true, 30)) != null) { ParseDeclaration(libraryAutomation, automationElement, ref taxJournal); if (taxJournal.Color5 != "ff") { IsStartIsOpenKm(libraryAutomation, taxJournal); if (taxJournal.KorrectNumber != 0) { PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, Journal129AndJournal121.PriznakDecl); AutoItX.WinWait(Journal129AndJournal121.WinPriznakDecl); AutoItX.WinActivate(Journal129AndJournal121.WinPriznakDecl); libraryAutomationWin = new LibraryAutomations(Journal129AndJournal121.WinPriznakDecl); PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomationWin, Journal129AndJournal121.PriznComboBox); var memo = libraryAutomationWin.SelectAutomationColrction( libraryAutomationWin.FindFirstElement(Journal129AndJournal121.PanelComboBox)); var elemClick = memo.Cast <AutomationElement>().FirstOrDefault(x => x.Current.Name == "учтены результаты КНП (с учетом решений ВНО и судов) по предыдущей декларации"); libraryAutomationWin.ClickElement(elemClick); PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomationWin, Journal129AndJournal121.PriznakOk); //Написать алгоритм для таких } if (taxJournal.DateCloseValidation == null && taxJournal.Color5 == "ffffff") { //Открыть или начать Проверку DialogKnp(libraryAutomation, "Нарушения не выявлены"); PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomation, Journal129AndJournal121.ClosedComplex121); AutoItX.WinWait(Journal129AndJournal121.WinNameComplex); AutoItX.WinActivate(Journal129AndJournal121.WinNameComplex); libraryAutomationWin = new LibraryAutomations(Journal129AndJournal121.WinNameComplex); PublicGlobalFunction.PublicGlobalFunction.WindowElementClick(libraryAutomationWin, Journal129AndJournal121.WinOkCloseComplex); AutoItX.Sleep(1000); taxJournal.MessageInfoR1 = "Нарушения не выявлены"; } else if (taxJournal.DateCloseValidation == null && taxJournal.Color5 != "ffffff") { DialogKnp(libraryAutomation, "Выявлены нарушения"); win = new WindowsAis3(); AutoItX.MouseClick(ButtonConstant.MouseLeft, win.WindowsAis.X + win.WindowsAis.Width - 20, win.WindowsAis.Y + 160); AutoItX.Sleep(1000); taxJournal.MessageInfoR1 = "Выявлены нарушения"; } } else { taxJournal.MessageError = "Статус документа не позволяет проставить выявление нарушения!"; } break; } } else { taxJournal.MessageError = $"Сумма по учёту расхождения равна {sum}. Дальнейшая обработка не возможна!"; } SaveDocument(taxJournal); //Сохранение журнала } else { MessageBox.Show("Нет доступа к ветке " + Tree); } }
/// <summary> /// Полностью парсим декларацию /// </summary> /// <param name="libraryAutomation">Библиотека</param> /// <param name="automationElement">Элемент автоматизации</param> /// <param name="taxJournal">Журнал</param> private void ParseDeclaration(LibraryAutomations libraryAutomation, AutomationElement automationElement, ref TaxJournal121Error taxJournal) { automationElement.SetFocus(); AutoItX.Sleep(1000); var status = libraryAutomation.SelectAutomationColrction(automationElement) .Cast <AutomationElement>().Where(automationElemenst => automationElemenst.Current.Name == "") .ToList(); taxJournal.Color1 = libraryAutomation.GetColorPixel(status[0]); taxJournal.Color2 = libraryAutomation.GetColorPixel(status[1]); taxJournal.Color3 = libraryAutomation.GetColorPixel(status[2]); taxJournal.Color4 = libraryAutomation.GetColorPixel(status[3]); taxJournal.Color5 = libraryAutomation.GetColorPixel(status[4]); }