Beispiel #1
0
 def exit(self):
     if (self.__input.get_string() in ["y", "Y"]):
         Console.puts("ユーザ情報を登録しました。")
         AccountLedger(True).update(cmn_res.user)
     else:
         Console.puts("ユーザ情報を登録せずに戻ります。")
     self.__get_next_state = state.GotoNextAfterWaiting()
     self.__get_next_state.set_next_state(state.StandbyUserIdInput())
Beispiel #2
0
    def exit(self):
        if( self.__input.get_string() in ["y","Y"]):
            Console.puts("RFIDとの関連付けが完了しました。")
            EquipmentLedger(True).update(cmn_res.equipment)
        else:
            Console.puts("関連付けをキャンセルしました。")

        self.__get_next_state = state.GotoNextAfterWaiting()
        self.__get_next_state.set_next_state(state.AppendNewEquipment())
Beispiel #3
0
 def Check(inputplace):
     if inputplace == UsePlace.InAISW:
         return True
     elif inputplace == UsePlace.OutAISW:
         return True
     elif inputplace == UsePlace.Outsourcer:
         return True
     else:
         Console.puts(inputplace + "は無効な場所です。")
         return False
Beispiel #4
0
 def ReturnName(inputplace):
     if inputplace == UsePlace.InAISW:
         return "1:社内"
     elif inputplace == UsePlace.OutAISW:
         return "2:社外"
     elif inputplace == UsePlace.Outsourcer:
         return "3:委託"
     else:
         Console.puts(inputplace + "は無効な場所です。")
         return ""
Beispiel #5
0
 def get_next_state(self):
     if self.__hasSuccessLoggedIn():
         Console.puts("Login successful.")
         self.__logger.info("Login successful.")
         return state.Admin()
     else:
         Console.puts("Login failed.")
         self.__logger.info("Login failed. User input is '%s'", self.__text_field.get_string())
         next = state.GotoNextAfterWaiting()
         next.set_next_state(state.LoginAsAdmin())
         return next
def debug_this_module():
    Console.clear()
    temp = SuccessUpdateEquipment()

    temp.entry()

    while True:
        temp.do()
        if (temp.should_exit()):
            temp.exit()
            break
Beispiel #7
0
 def exit(self):
     return_date = self.__input.get_string()
     # 返却日の内容が正しいかチェック
     checkresult = edchk.ExpirationDateCheck(return_date, 90)
     if checkresult == True:
         cmn_res.equipment.data = {EquipmentRecord.END_DATE: return_date}
         self.__get_next_state = state.ConfirmToUpdateProcedure()
     else:
         Console.puts("返却予定日は今日を含めた90日以内を指定してください。")
         self.__get_next_state = state.GotoNextAfterWaiting()
         self.__get_next_state.set_next_state(
             state.StandbyExpirationDateInputWhenUpdate())
Beispiel #8
0
def debug_this_module():
    Console.clear()

    uir = input.DateFormatedString(input.SunitizedString(UserInputReader()))

    while not uir.submitted():
        uir.capture()
        time.sleep(0.010)

    Console.puts("Your input is :", uir.get_string())
    time.sleep(1)

    del uir
    def capture(self):
        self._pressed_key.capture()

        if self._pressed_key.exists():

            if self._pressed_key.is_enter():
                # Submit keyboard input
                self._submitted = True
                if self._is_real_time_display_mode:
                    Console.puts("")  # New line

            elif self._pressed_key.is_escape():
                # Clear buffer
                self._string = ""
                if self._is_real_time_display_mode:
                    Console.remove_line()

            elif self._pressed_key.is_delete():
                # Remove a last charcter
                if (len(self._string) > 0):
                    self._string = self._string[:-1]
                    if self._is_real_time_display_mode:
                        Console.remove_char()
            else:
                # Join a character to last position
                key = chr(ord(self._pressed_key.get()))
                if key.isascii():
                    self._string += key
                    if self._is_real_time_display_mode:
                        Console.puts('*', end='')

        else:
            self._updated = False
    def exit(self):
        use_place = self.__input.get_string()
        # 返却日の内容が正しいかチェック
        checkresult = UsePlace.Check(use_place)
        if checkresult == True:

            result = UserProcedure(True).borrow_equipment(
                cmn_res.user.data[AccountRecord.EMPLOYEE_ID],
                cmn_res.equipment.data[EquipmentRecord.RFID],
                cmn_res.equipment.data[EquipmentRecord.END_DATE],
                use_place + "X")

            if result == True:
                place_name = UsePlace.ReturnName(use_place)
                Console.puts("使用場所", place_name, "を受理しました")
                cmn_res.equipment.data = {EquipmentRecord.USE_PLACE: use_place}

                self.__get_next_state = state.GotoNextAfterWaiting()
                self.__get_next_state.set_next_state(
                    state.SuccessBarrowEquipment())

            else:
                Console.puts("借用の受理に失敗しました。")
                Console.puts("再度試しても失敗する場合、システム管理者に問い合わせてください。", "\n")
                self.__get_next_state = state.ErrorHasOccurred()
        else:
            Console.puts("使用場所を正しく入力してください。")
            self.__get_next_state = state.GotoNextAfterWaiting()
            self.__get_next_state.set_next_state(
                state.StandbyUsePlaceInputWhenBarrow())
Beispiel #11
0
    def exit(self):
        employee_id = self.__input.get_string()
        if (employee_id != ""):
            record = UserProcedure().get_user_record_by(
                employee_id=employee_id)

            if record is None:
                Console.puts("存在しない社員番号です")
                Console.puts("システム管理者に問い合わせてください")
                self.__get_next_state = state.ErrorHasOccurred()
                return

            rfid = record[AccountRecord.RFID]
            if type(rfid) is float:
                if math.isnan(record[AccountRecord.RFID]):
                    rfid = ""

            if rfid == "":
                rfid = cmn_res.user.data[AccountRecord.RFID]
                cmn_res.user.data = record
                cmn_res.user.data[AccountRecord.RFID] = rfid
                self.__get_next_state = state.ConfirmToAppendNewUser()
            else:
                Console.puts("社員番号", employee_id, "には既にRFID",
                             record[AccountRecord.RFID], "が関連付けられています")
                Console.puts("システム管理者に問い合わせてください")
                self.__get_next_state = state.ErrorHasOccurred()

        else:
            self.__get_next_state = state.AppendNewUser()
Beispiel #12
0
    def exit(self):
        # キーボード情報取得
        equipment_id = self.__input.get_string()

        if (equipment_id != ""):
            record = UserProcedure().get_equipment_record_by(
                equipment_id=equipment_id)

            if record is None:
                # IDがDB上登録されていない場合
                Console.puts("登録されていない備品です。", "\n")
                Console.puts("認識と異なる場合は、システム管理者に問い合わせください")
                self.__get_next_state = state.ErrorHasOccurred()
            else:
                cmn_res.equipment.data = record
                if (cmn_res.equipment.data[EquipmentRecord.RFID] != "0"):
                    Console.puts(equipment_id, "は既にRFID:",
                                 cmn_res.equipment.data[EquipmentRecord.RFID],
                                 "が関連付けられています。", "\n")
                    Console.puts("認識と異なる場合は、システム管理者に問い合わせください")
                    self.__get_next_state = state.ErrorHasOccurred()
                else:
                    #登録処理へ
                    self.__get_next_state = state.StandbyAppendEquipmentIdRead(
                    )
def ExpirationDateCheck(inputdate, maxday):
    try:
        UserIn = datetime.datetime.strptime(inputdate, '%Y/%m/%d')
    except ValueError:
        Console.puts(inputdate + "は無効な日付です。")
        return False

    MinDate = datetime.date.today()
    InputDay = datetime.date(UserIn.year, UserIn.month, UserIn.day)
    LongDay = MinDate + datetime.timedelta(days=maxday)

    if MinDate <= InputDay <= LongDay:
        return True
    else:
        return False
def debug_this_module():
    keyboard = SingletonKeyboard()
    keyboard.start()
    prev = 0
    while keyboard.get_pressed_count() < 30:
        keyboard.get_lock_object().acquire()
        now = keyboard.get_pressed_count()
        key = keyboard.get_last_pressed_key()
        keyboard.get_lock_object().release()
        if prev != now:
            Console.puts(chr(ord(key)), end="")
        prev = now
        time.sleep(0.010)

    keyboard.terminate()
Beispiel #15
0
    def entry(self):
        Console.clear()
        Console.puts("まだ利用者登録されていません。")
        Console.puts("この社員証で登録しますので、7桁の社員番号を入力してください。")
        Console.puts(">", end="")
        self.__input = input.SunitizedString(input.ConsoleTextField())

        self.__get_next_state = state.ErrorHasOccurred()
Beispiel #16
0
    def entry(self):
        self.__logger = getLogger(__name__)
        self.__logger.info("LoginAsAdmin starts.")

        self.__text_field = input.PasswordTextField()
        Console.clear()
        Console.puts("[Login as admin]")
        Console.puts("Please enter the password.")
        Console.puts(">", end="")
Beispiel #17
0
    def exit(self):
        equipment_rfid = self.__input.get_string()

        record = UserProcedure().get_equipment_record_by(rfid=equipment_rfid)

        if record is None:
            #登録処理
            cmn_res.equipment.data[EquipmentRecord.RFID] = equipment_rfid
            self.__get_next_state = state.ConfirmToAppendNewEquipment()

        else:
            cmn_res.equipment.data = record
            Console.puts("このRFIDは既に",
                         cmn_res.equipment.data[EquipmentRecord.EQUIPMENT_ID],
                         "と関連付けられています。", "\n")
            Console.puts("認識と異なる場合は、システム管理者に問い合わせください")
            self.__get_next_state = state.ErrorHasOccurred()
Beispiel #18
0
 def entry(self):
     Console.clear()
     Console.puts("返却予定日を入力してください", "(yyyy/mm/dd)")
     Console.puts(">", end="")
     self.__input = input.DateFormatedString(
         input.SunitizedString(input.ConsoleTextField()))
     self.__get_next_state = state.ErrorHasOccurred()
Beispiel #19
0
    def entry(self):
        self.__text_field = input.ConsoleTextField()

        if not isinstance(cmn_res.prev_state, state.Admin):
            Console.puts("")
            Console.puts("[Start admin mode]")

        Console.puts("# ", end="")
Beispiel #20
0
    def exit(self):
        rfid = self.__input.get_string()
        if (rfid != ""):
            record = UserProcedure().get_user_record_by(rfid=rfid)

            if record is None:
                cmn_res.user.data[AccountRecord.RFID] = rfid
                self.__get_next_state = state.AppendNewUser()
            else:
                cmn_res.user.data = record

                Console.puts("ようこそ、社員番号",
                             cmn_res.user.data[AccountRecord.EMPLOYEE_ID], "の",
                             cmn_res.user.data[AccountRecord.LAST_NAME],
                             cmn_res.user.data[AccountRecord.FIRST_NAME], "さん",
                             "\n")

                self.__get_next_state = state.GotoNextAfterWaiting()
                self.__get_next_state.set_next_state(
                    state.StandbyUserProcedureInput())

        else:
            self.__get_next_state = state.StandbyUserIdInput()
 def entry(self):
     Console.clear()
     Console.puts("手続き内容を選択してください", "{}:借用 {}:返却 {}:更新".format(
         Enquiry.Borrow, Enquiry.Return, Enquiry.Update))
     Console.puts(">", end="")
     self.__input = input.SunitizedString(
         input.ConsoleTextField()
     )
     self.__get_next_state = state.ErrorHasOccurred()
 def entry(self):
     Console.clear()
     Console.puts(
         "使用場所を入力して下さい。",
         "{}:社内 {}:社外 {}:委託".format(UsePlace.InAISW, UsePlace.OutAISW,
                                    UsePlace.Outsourcer))
     Console.puts(">", end="")
     self.__input = input.SunitizedString(input.ConsoleTextField())
     self.__get_next_state = state.ErrorHasOccurred()
 def entry(self):
     if config.is_debug_mode():
         self.__input = input.SunitizedString(input.UserInputReader())
     else:
         self.__input = input.SunitizedString(input.RFIDReader())
     self.__get_next_state = state.ErrorHasOccurred()
     Console.clear()
     Console.puts("返却する備品のRFIDをかざしてください")
     Console.puts(">", end="")
 def exit(self):
     procedure_type = self.__input.get_string()
     if(Enquiry.Borrow == procedure_type):
         self.__get_next_state = state.StandbyBarrowEquipmentIdRead()
     elif(Enquiry.Return == procedure_type):
         self.__get_next_state = state.StandbyReturnEquipmentIdRead()
     elif(Enquiry.Update == procedure_type):
         self.__get_next_state = state.StandbyUpdateEquipmentIdInput()
     else:
         Console.puts("不正なデータが入力されました。")
         Console.puts("再度入力してください。")
         Console.puts("")
 def exit(self):
     if (self.__input.get_string() in ["y", "Y"]):
         result = UserProcedure(True).update_equipment_return_date(
             cmn_res.user.data[AccountRecord.EMPLOYEE_ID],
             cmn_res.equipment.data[EquipmentRecord.EQUIPMENT_ID],
             cmn_res.equipment.data[EquipmentRecord.END_DATE])
         if result == True:
             self.__get_next_state = state.SuccessUpdateEquipment()
         else:
             Console.puts("更新の受理に失敗しました。")
             Console.puts("再度試しても失敗する場合、システム管理者に問い合わせてください。", "\n")
             self.__get_next_state = state.ErrorHasOccurred()
     else:
         Console.puts("更新手続きをキャンセルしました。")
         self.__get_next_state = state.GotoNextAfterWaiting()
         self.__get_next_state.set_next_state(
             state.StandbyUpdateEquipmentIdInput())
Beispiel #26
0
 def entry(self):
     self.__start_time = time.time()
     self.__pressed_key = input.PressedKey()
     Console.clear()
     Console.puts("一定時間操作がなかったか終了コードを受け付けたためエントランスに戻ります。")
 def entry(self):
     Console.clear()
     Console.puts("ユーザID  :", cmn_res.user.data[AccountRecord.EMPLOYEE_ID])
     Console.puts("機材ID    :",
                  cmn_res.equipment.data[EquipmentRecord.EQUIPMENT_ID])
     Console.puts("機材名    :",
                  cmn_res.equipment.data[EquipmentRecord.EQUIPMENT_NAME])
     Console.puts("返却予定日:",
                  cmn_res.equipment.data[EquipmentRecord.END_DATE], "\n")
     Console.puts("上記の情報で備品の更新手続きが完了しました。\n")
     Console.puts("続けて他の機器の更新処理が実施できます。")
     self.__get_next_state = state.ErrorHasOccurred()
Beispiel #28
0
    def entry(self):
        Console.clear()
        Console.puts("以下の情報で登録します。よろしいですか?(Y/N)")
        Console.puts("RFID      :", cmn_res.user.data[AccountRecord.RFID])
        Console.puts("USER ID  :",
                     cmn_res.user.data[AccountRecord.EMPLOYEE_ID])
        Console.puts("LAST NAME  :",
                     cmn_res.user.data[AccountRecord.LAST_NAME])
        Console.puts("FIRST NAME  :",
                     cmn_res.user.data[AccountRecord.FIRST_NAME])

        Console.puts(">", end="")
        self.__input = input.SunitizedString(input.ConsoleTextField())

        self.__get_next_state = state.ErrorHasOccurred()
Beispiel #29
0
 def entry(self):
     cmn_res.initialize()
     self.__pressed_key = input.PressedKey()
     Console.clear()
     Console.puts("備品管理システムにようこそ")
     Console.puts("何かキーを押すとサービスを開始します")
Beispiel #30
0
 def entry(self):
     Console.puts("プログラムを終了します")