+ Робот-казначей

merge-requests/1/head
Vladislav Klychkov 2 years ago
parent f34d675f90
commit 1043e44ca4

@ -0,0 +1,184 @@
splitter1 = 'Рабочий процесс'
splitter2 = 'Окно настройки робота'
title = 'Робот-казначей'
introHeader = 'Применение:'
introText = 'Робот-казначей выполняет выгрузку банковских выписок'
workflowHeader1 = 'Авторизация в клиент-банке'
workflowDescription1 = 'Выполняет робот'
workflowHint1 = 'Авторизация на сайте банка'
workflowHeader2 = 'Выгрузка выписок'
workflowDescription2 = 'Выполняет робот'
workflowHint2 = 'Скачивание выписок с сайта банка'
workflowHeader3 = 'Перенаправление выписок'
workflowDescription3 = 'Выполняет робот'
workflowHint3 = 'Например, размещение в сетевой папке'
dropBankTitle = 'Выберите банк...'
dropBank1 = 'Сбербанк'
dropBank2 = 'ВТБ'
dropBank3= 'Альфа-банк'
dropBankAccountTitle = 'Выберите счет'
dropBankAccount1 = 'Счет 1'
dropBankAccount2 = 'Счет 2'
dropBankAccount3 = 'Счет 3'
dropBankAccountAll = 'Все'
checkboxPerTitle = 'Период:'
checkboxPer1 = 'За день'
checkboxPer2 = 'За месяц'
checkboxFormTitle = ''
checkboxForm1 = 'PDF'
checkboxForm2 = '1C'
checkboxForm3 = 'WORD'
checkboxForm4 = 'EXCEL'
emailTitle = 'Укажите почту (необязательно):'
emailWindow = 'example@gmail.ru'
btnDownload = 'Скачать'
btnEmail = 'Отправить'
html = f'''<!doctype html>
<html lang="en">
<head>
<title> Treasurer </title>
</head>
<body>
<div class="card" style="width:450px;" id="card1">
<div class="content">
<center><h1>{title}</h1></center><br>
<div class="ui message">
<div class="header">{introHeader}</div>
<p>{introText}</p>
</div>
<h4><span>{splitter1}</span></h4>
<div class="ui relaxed divided list">
<div class="item">
<i class="cog icon"></i>
<div class="content">
<div class="header" data-tooltip="{workflowHint1}">{workflowHeader1}</div>
<div class="description">{workflowDescription1}</div>
</div>
</div>
<div class="item">
<i class="cog icon"></i>
<div class="content">
<div class="header" data-tooltip="{workflowHint2}">{workflowHeader2}</div>
<div class="description">{workflowDescription2}</div>
</div>
</div>
<div class="item">
<i class="cog icon"></i>
<div class="content">
<div class="header" data-tooltip="{workflowHint3}">{workflowHeader3}</div>
<div class="description">{workflowDescription3}</div>
</div>
</div>
</div>
<h4><span>{splitter2}</span></h4>
<div class="ui selection dropdown">
<input type="hidden" name="bank">
<i class="dropdown icon"></i>
<div class="default text">{dropBankTitle}</div>
<div class="menu">
<div class="item" data-value="2">{dropBank1}</div>
<div class="item" data-value="1">{dropBank2}</div>
<div class="item" data-value="0">{dropBank3}</div>
</div>
</div><br><br>
<select class="ui fluid search dropdown" multiple="">
<option value="">{dropBankAccountTitle}</option>
<option value="All">{dropBankAccountAll}</option>
<option value="Ch1">{dropBankAccount1}</option>
<option value="Ch2">{dropBankAccount2}</option>
<option value="Ch3">{dropBankAccount3}</option>
</select><br>
<div class="ui form">
<div class="inline fields">
<label>{checkboxPerTitle}</label>
<div class="field">
<div class="ui radio checkbox">
<input type="radio" name="time">
<label>{checkboxPer1}</label>
</div>
</div>
<div class="field">
<div class="ui radio checkbox">
<input type="radio" name="time">
<label>{checkboxPer2}</label>
</div>
</div>
</div>
</div>
<div class="ui form">
<div class="inline fields">
<label>{checkboxFormTitle}</label>
<div class="field">
<div class="ui radio checkbox">
<input type="radio" name="format">
<label>{checkboxForm1}</label>
</div>
</div>
<div class="field">
<div class="ui radio checkbox">
<input type="radio" name="format">
<label>{checkboxForm2}</label>
</div>
</div>
<div class="field">
<div class="ui radio checkbox">
<input type="radio" name="format">
<label>{checkboxForm3}</label>
</div>
</div>
<div class="field">
<div class="ui radio checkbox">
<input type="radio" name="format">
<label>{checkboxForm4}</label>
</div>
</div>
</div>
</div>
<div><b>{emailTitle}</b></div>
<p><div class="ui input focus">
<input type="text" placeholder="{emailWindow}">
</div></p>
<button class="ui right labeled icon button"><i class="download icon"></i> {btnDownload} </button>
<button class="ui right labeled icon button"><i class="envelope icon"></i> {btnEmail} </button>
</div>
</div>
<script src="/Treasurer01/scripts"></script>
</body>
</html>'''
with open('index.html', 'w', encoding='UTF-8') as file:
file.write(html)

@ -0,0 +1,135 @@
<!doctype html>
<html lang="en">
<head>
<title> Treasurer </title>
</head>
<body>
<div class="card" style="width:450px;" id="card1">
<div class="content">
<center><h1>Робот-казначей</h1></center><br>
<div class="ui message">
<div class="header">Применение:</div>
<p>Робот-казначей выполняет выгрузку банковских выписок</p>
</div>
<h4><span>Рабочий процесс</span></h4>
<div class="ui relaxed divided list">
<div class="item">
<i class="cog icon"></i>
<div class="content">
<div class="header" data-tooltip="Авторизация на сайте банка">Авторизация в клиент-банке</div>
<div class="description">Выполняет робот</div>
</div>
</div>
<div class="item">
<i class="cog icon"></i>
<div class="content">
<div class="header" data-tooltip="Скачивание выписок с сайта банка">Выгрузка выписок</div>
<div class="description">Выполняет робот</div>
</div>
</div>
<div class="item">
<i class="cog icon"></i>
<div class="content">
<div class="header" data-tooltip="Например, размещение в сетевой папке">Перенаправление выписок</div>
<div class="description">Выполняет робот</div>
</div>
</div>
</div>
<h4><span>Окно настройки робота</span></h4>
<div class="ui selection dropdown">
<input type="hidden" name="bank">
<i class="dropdown icon"></i>
<div class="default text">Выберите банк...</div>
<div class="menu">
<div class="item" data-value="2">Сбербанк</div>
<div class="item" data-value="1">ВТБ</div>
<div class="item" data-value="0">Альфа-банк</div>
</div>
</div><br><br>
<select class="ui fluid search dropdown" multiple="">
<option value="">Выберите счет</option>
<option value="All">Все</option>
<option value="Ch1">Счет 1</option>
<option value="Ch2">Счет 2</option>
<option value="Ch3">Счет 3</option>
</select><br>
<div class="ui form">
<div class="inline fields">
<label>Период:</label>
<div class="field">
<div class="ui radio checkbox">
<input type="radio" name="time">
<label>За день</label>
</div>
</div>
<div class="field">
<div class="ui radio checkbox">
<input type="radio" name="time">
<label>За месяц</label>
</div>
</div>
</div>
</div>
<div class="ui form">
<div class="inline fields">
<label></label>
<div class="field">
<div class="ui radio checkbox">
<input type="radio" name="format">
<label>PDF</label>
</div>
</div>
<div class="field">
<div class="ui radio checkbox">
<input type="radio" name="format">
<label>1C</label>
</div>
</div>
<div class="field">
<div class="ui radio checkbox">
<input type="radio" name="format">
<label>WORD</label>
</div>
</div>
<div class="field">
<div class="ui radio checkbox">
<input type="radio" name="format">
<label>EXCEL</label>
</div>
</div>
</div>
</div>
<div><b>Укажите почту (необязательно):</b></div>
<p><div class="ui input focus">
<input type="text" placeholder="example@gmail.ru">
</div></p>
<button class="ui right labeled icon button"><i class="download icon"></i> Скачать </button>
<button class="ui right labeled icon button"><i class="envelope icon"></i> Отправить </button>
</div>
</div>
<script src="/Treasurer01/scripts"></script>
</body>
</html>

@ -0,0 +1,7 @@
$('.ui.dropdown')
.dropdown('clear')
;
$('.ui.dropdown')
.dropdown('clear')
;

@ -19,7 +19,7 @@ from fastapi import Depends
from fastapi.responses import PlainTextResponse from fastapi.responses import PlainTextResponse
from fastapi.responses import FileResponse from fastapi.responses import FileResponse
# Подключени файлов связанных с роботом-кадровиком01
@app.get(path="/HR_officer01/questions",tags=["HR_officer01"]) @app.get(path="/HR_officer01/questions",tags=["HR_officer01"])
def get_file(): def get_file():
return FileResponse(CrossOS.PathStr("Demo\\HR_officer01\\Questions.csv")) return FileResponse(CrossOS.PathStr("Demo\\HR_officer01\\Questions.csv"))
@ -41,6 +41,12 @@ def get_file():
return FileResponse(CrossOS.PathStr("Demo\\HR_officer01\\HR_officer01.css")) return FileResponse(CrossOS.PathStr("Demo\\HR_officer01\\HR_officer01.css"))
# Подключени файлов связанных с роботом-казначеем01
@app.get(path="/Treasurer01/scripts",tags=["Treasurer01"])
def get_file():
return FileResponse("Demo\\Treasurer01\\Treasurer01.js")
# Пример создания функции на сервере (FASTAPI) /test/threads # Пример создания функции на сервере (FASTAPI) /test/threads
@app.get(path="/test/threads",tags=["Test"],response_class=PlainTextResponse) @app.get(path="/test/threads",tags=["Test"],response_class=PlainTextResponse)
def Threads():# inAuthDict:dict=Depends(IdentifyAuthorize) def Threads():# inAuthDict:dict=Depends(IdentifyAuthorize)
@ -77,8 +83,10 @@ else:
Orchestrator.OrchestratorSessionRestore(inGSettings=gSettings) Orchestrator.OrchestratorSessionRestore(inGSettings=gSettings)
# Autoinit control panels starts with CP_ # Autoinit control panels starts with CP_
lPyModules = Orchestrator.OrchestratorPySearchInit(inGlobPatternStr="ControlPanel\\CP_*.py", inDefStr="SettingsUpdate", inDefArgNameGSettingsStr="inGSettings", inAsyncInitBool=True) lPyModules = Orchestrator.OrchestratorPySearchInit(inGlobPatternStr="ControlPanel\\CP_*.py", inDefStr="SettingsUpdate", inDefArgNameGSettingsStr="inGSettings", inAsyncInitBool=True)
lCPManager = Orchestrator.Managers.ControlPanel(inControlPanelNameStr="TestControlPanel", lCPManager = Orchestrator.Managers.ControlPanel(inControlPanelNameStr="HR_officer01ControlPanel",
inRefreshHTMLJinja2TemplatePathStr=CrossOS.PathStr("D:\\For work\\RPA\\OpenRPA\\Orchestrator\\Demo\\HR_officer01\\index.html"), inJinja2TemplateRefreshBool = True) inRefreshHTMLJinja2TemplatePathStr=CrossOS.PathStr("D:\\For work\\RPA\\OpenRPA\\Orchestrator\\Demo\\HR_officer01\\index.html"), inJinja2TemplateRefreshBool = True)
lCPManager = Orchestrator.Managers.ControlPanel(inControlPanelNameStr="Treasurer01ControlPanel",
inRefreshHTMLJinja2TemplatePathStr=CrossOS.PathStr("D:\\For work\\RPA\\OpenRPA\\Orchestrator\\Demo\\Treasurer01\\index.html"), inJinja2TemplateRefreshBool = True)
# Call the orchestrator def # Call the orchestrator def
Orchestrator.Orchestrator(inGSettings=gSettings, inDumpRestoreBool=False) Orchestrator.Orchestrator(inGSettings=gSettings, inDumpRestoreBool=False)

Loading…
Cancel
Save