def exit(self):
        equipment_rfid = self.__input.get_string()

        status = UserProcedure().get_equipment_status_by(rfid=equipment_rfid)

        # かざされたRFIDがDB照合結果、貸し出されているものでなく登録されているものだった場合
        if status == UserProcedure.EquipmentStatus.AVAILABLE:
            cmn_res.equipment.data = UserProcedure().get_equipment_record_by(rfid=equipment_rfid)
            self.__get_next_state = state.StandbyExpirationDateInputWhenBarrow()

        # かざされたRFIDがDB上貸し出されている場合
        elif status == UserProcedure.EquipmentStatus.ALREADY_RESERVED:
            Console.puts("貸し出されている備品です。", "\n")
            Console.puts("認識と異なる場合は、システム管理者に問い合わせください")
            self.__get_next_state = state.ErrorHasOccurred()

        # かざされたRFIDがDB上登録されていない場合
        elif status == UserProcedure.EquipmentStatus.NOT_EXIST:
            Console.puts("登録されていない備品です。", "\n")
            Console.puts("認識と異なる場合は、システム管理者に問い合わせください")
            self.__get_next_state = state.ErrorHasOccurred()

        # かざされたRFIDが故障中の場合
        elif status == UserProcedure.EquipmentStatus.OUT_OF_ORDER:
            Console.puts("故障中につき貸し出し対象外の備品です。")
            Console.puts("認識と異なる場合は、システム管理者に問い合わせください", "\n")
            self.__get_next_state = state.ErrorHasOccurred()
    def exit(self):
        equipment_rfid = self.__input.get_string()

        status = UserProcedure().get_equipment_status_by(rfid=equipment_rfid)

        # かざされたRFIDがDB照合結果、貸し出されているものだった場合(今は仮値)
        if status == UserProcedure.EquipmentStatus.ALREADY_RESERVED:
            cmn_res.equipment.data = UserProcedure().get_equipment_record_by(
                rfid=equipment_rfid)

            if UserProcedure(True).return_equipment(equipment_rfid) == True:
                self.__get_next_state = state.SuccessReturnEquipment()
            else:
                Console.puts("返却処理に失敗しました")
                Console.puts("再度試しても失敗する場合、システム管理者に問い合わせください", "\n")
                self.__get_next_state = state.ErrorHasOccurred()

        # かざされたRFIDがDB上貸し出されていない場合
        if status == UserProcedure.EquipmentStatus.AVAILABLE:
            Console.puts("貸し出されていない備品です。")
            Console.puts("認識と異なる場合は、システム管理者に問い合わせください", "\n")
            self.__get_next_state = state.ErrorHasOccurred()

        # かざされたRFIDがDB上登録されていない場合
        if status == UserProcedure.EquipmentStatus.NOT_EXIST:
            Console.puts("登録されていない備品です。")
            Console.puts("認識と異なる場合は、システム管理者に問い合わせください", "\n")
            self.__get_next_state = state.ErrorHasOccurred()

        # かざされたRFIDが故障中の場合
        if status == UserProcedure.EquipmentStatus.OUT_OF_ORDER:
            Console.puts("故障中につき貸し出し対象外の備品です。")
            Console.puts("認識と異なる場合は、システム管理者に問い合わせください", "\n")
            self.__get_next_state = state.ErrorHasOccurred()
예제 #3
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()
예제 #4
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 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())
예제 #6
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()
 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())
예제 #8
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()