Opt("GUICloseOnESC", 1)
Opt("TrayMenuMode", 3)
#include <Crypt.au3>
#include <GUIConstantsEx.au3>
#include <GUIStatusBar.au3>
#include <ListViewConstants.au3>
#include "GUIListViewINI.au3"
Global $sUser
Global $INI_FILE = @ScriptDir & "\Settings.ini", $USER_FILE = @ScriptDir & "\User.ini", $USER_DECRYPT_FILE = @ScriptDir & "\UserDecrypt.ini"
Global $FIRM_NAME = IniRead($INI_FILE, "Firm", "Name", "Online Market")
Global $PROG_NAME = "Online Market", $PROG_VERSION = "1.1"
Global $sTitle = ""
Local $aStatusParts[4] = [3, 200, 400, -1]
Local $sDateTime = @MDAY & "." & @MON & "." & @YEAR & " " & @HOUR & ":" & @MIN
Login()
TrayCreateItem("Выход")
$hWindow = GUICreate($sTitle, 800, 600)
AdlibRegister("_DateTimeUpdate")
AdlibRegister("_ListMenuUpdate")
$hFileMenu = GUICtrlCreateMenu("Файл")
$hMarketMenu = GUICtrlCreateMenu("Магазин")
$hHelpMenu = GUICtrlCreateMenu("Помощь")
$hSaveMarketReport = GUICtrlCreateMenuItem("Сохранить отчёт продаж", $hFileMenu)
$hSaveWarehouseReport = GUICtrlCreateMenuItem("Сохранить отчёт состояния склада", $hFileMenu)
GUICtrlCreateTab(0, 0, 800, 600)
GUICtrlCreateTabItem("Состояние склада")
$hListView = GUICtrlCreateListView("Наименование |Ед. измерен. |Кол-во |Цена |Код ", 0, 20, 800, 537, -1, $LVS_EX_FULLROWSELECT + $LVS_EX_GRIDLINES)
_GUICtrlListViewINI_LoadFromFile($hListView, $INI_FILE, "Storehouse")
$hListMenu = GUICtrlCreateContextMenu($hListView)
$hAdd = GUICtrlCreateMenuItem("Добавить товар", $hListMenu)
$hEdit = GUICtrlCreateMenuItem("Редактировать товар", $hListMenu)
$hDel = GUICtrlCreateMenuItem("Удалить товар", $hListMenu)
$hAction = GUICtrlCreateMenuItem("Провести торговую операцию", $hListMenu)
GUICtrlCreateTabItem("Торговля")
$hSummLabel = GUICtrlCreateLabel("0.00 руб.", 50, 50, 300, 100)
GUICtrlSetFont($hSummLabel, 36)
GUICtrlCreateTabItem("Персонал")
GUICtrlCreateTabItem("Документооброт")
GUICtrlCreateTabItem("Отчёты")
GUISetState()
$hStatus = _GUICtrlStatusBar_Create($hWindow, -1, "Вход выполнен")
_GUICtrlStatusBar_SetParts($hStatus, $aStatusParts)
_GUICtrlStatusBar_SetText($hStatus, "Пользователь: " & $sUser, 1)
_GUICtrlStatusBar_SetText($hStatus, $sDateTime, 2)
_GUICtrlStatusBar_SetText($hStatus, "Состояние: Ожидание действий пользователя", 3)
While True
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $hAdd
_Add()
Case $hEdit
_Edit()
Case $hDel
_Del()
Case $hAction
_Action()
EndSwitch
WEnd
Func Login()
$sUserName = InputBox('Фирма "' & $FIRM_NAME & '"', "Введите имя пользователя")
If @error Then Exit
$sPassword = InputBox('Фирма "' & $FIRM_NAME & '"', "Введите пароль", "", "*")
If @error Then Exit
_Crypt_DecryptFile($USER_FILE, $USER_DECRYPT_FILE, "Online Market", $CALG_RC4)
$sOriginalPassword = IniRead($USER_DECRYPT_FILE, "User", $sUserName, "Online Market")
If $sPassword <> $sOriginalPassword Then
MsgBox(48, 'Фирма "' & $FIRM_NAME & '"', "Неправильное имя пользователя или пароль!")
Exit
EndIf
FileDelete($USER_DECRYPT_FILE)
$sUser = $sUserName
$sTitle = 'Фирма "' & $FIRM_NAME & '" - ' & $sUser
MsgBox(64, 'Фирма "' & $FIRM_NAME & '"', "Вход выполнен. " & $sTitle)
EndFunc
Func _DateTimeUpdate()
If $sDateTime <> @MDAY & "." & @MON & "." & @YEAR & " " & @HOUR & ":" & @MIN Then
$sDateTime = @MDAY & "." & @MON & "." & @YEAR & " " & @HOUR & ":" & @MIN
_GUICtrlStatusBar_SetText($hStatus, $sDateTime, 2)
EndIf
EndFunc
Func _ListMenuUpdate()
If _GUICtrlListView_GetSelectedIndices($hListView) = "" Then
GUICtrlSetState($hAdd, $GUI_DISABLE)
GUICtrlSetState($hEdit, $GUI_DISABLE)
GUICtrlSetState($hDel, $GUI_DISABLE)
GUICtrlSetState($hAction, $GUI_DISABLE)
Else
GUICtrlSetState($hAdd, $GUI_ENABLE)
GUICtrlSetState($hEdit, $GUI_ENABLE)
GUICtrlSetState($hDel, $GUI_ENABLE)
GUICtrlSetState($hAction, $GUI_ENABLE)
EndIf
EndFunc