Ejemplo n.º 1
0
class Maining:
    def __init__(self, log):
        self.settings = None
        self.data = None
        self.app = None
        self.log = log

    def set_object_data(self, data):
        self.log.add_log(type_message='INFO', message='start add data')
        self.settings = Settings(
            target=data.settings.target,
            scaner_port=data.settings.scaner_port,
            scaner_boundrate=data.settings.scaner_boundrate,
            have_cassa=data.settings.have_cassa)
        self.data = data.data
        self.app = None
        self.log.add_log(type_message='INFO', message='finish enter data')

    def start_frontol(self):
        try:
            self.log.add_log(type_message='INFO', message='start frontol')
            self.app = Application(
                target=self.settings.target,
                scaner_port=self.settings.scaner_port,
                scaner_boundrate=self.settings.scaner_boundrate)
            self.app.open_main_window(have_cassa=self.settings.have_cassa)
            self.log.add_log(type_message='INFO',
                             message='finish start frontol')
        except:
            self.log.add_log(type_message='ERR', message='init mistake')

    def add_positions_in_check_and_close(self, check: Checks()):
        self.log.add_log(type_message='INFO', message='add position')
        for row in check.positions:
            self.app.frontol_registration.enter_position(
                place_position=row.place_in_list,
                count=row.cout,
                need_mark=row.need_mark,
                mark=row.mark)
        self.app.frontol_registration.add_sale(need=check.sale)
        self.app.frontol_registration.close_check(type_pay=check.type_close)

    def make_check(self, check):
        self.log.add_log(type_message='INFO', message='start add check')
        data = Checks()
        data.check_type = check.check_type
        data.help_setting = check.help_setting
        data.sale = check.sale
        data.check_number = check.check_number
        data.type_close = check.type_close
        data.positions = check.positions
        if data.check_type != None:
            self.log.add_log(type_message='INFO', message='check type = None')
            self.app.frontol_registration.new_document_type(
                check_type=data.check_type, set_setting=data.help_setting)
        if data.check_type == 2:
            self.log.add_log(type_message='INFO', message='check type = 2')
            if data.help_setting == 2:
                self.log.add_log(type_message='INFO',
                                 message='check type = 2 and help setting = 2')
                self.app.frontol_registration.close_check_come_back()
            else:
                self.log.add_log(
                    type_message='INFO',
                    message='check type = 2 and help setting = other')
                self.add_positions_in_check_and_close(data)
        elif data.check_type == 3 or data.check_type == 4:
            self.log.add_log(type_message='INFO',
                             message='check type = 3 or 4')
            self.app.frontol_registration.add_sum_vnesenie(3)
        else:
            self.log.add_log(type_message='INFO', message='check type = other')
            self.add_positions_in_check_and_close(data)
        if data.check_type != None:
            self.log.add_log(type_message='INFO',
                             message='come back check tipe')
            self.app.frontol_registration.come_back_type_check(data.check_type)

    def make_document(self):
        #self.app.frontol_registration.open_registration_menu()
        for row in self.data:
            if row.document_type == 'registration':
                self.log.add_log(type_message='INFO',
                                 message='document type REGISTRATION')
                self.registration(row)
            if row.document_type == 'report':
                self.log.add_log(type_message='INFO',
                                 message='document type REPORT')
                self.report(row)

    def registration(self, position):
        self.log.add_log(type_message='INFO', message='start registration')
        self.app.frontol_registration.open_registration_menu()
        self.make_check(position)
        self.app.frontol_registration.exit()

    def exit_frontol(self):
        self.log.add_log(type_message='INFO', message='exit frontol')
        self.app.close_main_window()

    def report(self, position):
        self.log.add_log(type_message='INFO', message='start report')
        self.app.frontol_report.open_report_menu()
        self.app.frontol_report.print_report_by_id(
            report_id=position.report_type)
        self.app.frontol_report.exit_report_menu()

    def get_log(self):
        return self.log.log_list
Ejemplo n.º 2
0
class Main:
    def __init__(self, data):
        self.settings = Settings(
            target=data['settings']['target'],
            scaner_port=data['settings']['scaner_port'],
            scaner_boundrate=data['settings']['scaner_boundrate'],
            have_cassa=data['settings']['have_cassa'])
        self.data = data['data']
        self.app = None

    def start_frontol(self):
        try:
            self.app = Application(
                target=self.settings.target,
                scaner_port=self.settings.scaner_port,
                scaner_boundrate=self.settings.scaner_boundrate)
            self.app.open_main_window(have_cassa=self.settings.have_cassa)
        except:
            print('Ошибка при инициализации')

    def add_positions_in_check_and_close(self, check: Checks()):
        for row in check.positions:
            self.app.frontol_registration.enter_position(
                place_position=row['place_in_list'],
                count=row['cout'],
                need_mark=row['need_mark'],
                mark=row['mark'])
        self.app.frontol_registration.add_sale(need=check.sale)
        self.app.frontol_registration.close_check(type_pay=check.type_close)

    def make_check(self, check):
        data = Checks()
        data.check_type = check['check_type']
        data.help_setting = check['help_setting']
        data.sale = check['sale']
        data.check_number = check['check_number']
        data.type_close = check['type_close']
        data.positions = check['positions']
        if data.check_type != None:
            self.app.frontol_registration.new_document_type(
                check_type=data.check_type, set_setting=data.help_setting)
        if data.check_type == 2:
            if data.help_setting == 2:
                self.app.frontol_registration.close_check_come_back()
            else:
                self.add_positions_in_check_and_close(data)
        elif data.check_type == 3 or data.check_type == 4:
            self.app.frontol_registration.add_sum_vnesenie(3)
        else:
            self.add_positions_in_check_and_close(data)
        if data.check_type != None:
            self.app.frontol_registration.come_back_type_check(data.check_type)

    def make_document(self):
        #self.app.frontol_registration.open_registration_menu()
        for row in self.data:
            if row['document_type'] == 'registration':
                self.registration(row)
            if row['document_type'] == 'report':
                self.report(row)

    def registration(self, position):
        self.app.frontol_registration.open_registration_menu()
        self.make_check(position)
        self.app.frontol_registration.exit()

    def exit_frontol(self):
        self.app.close_main_window()

    def report(self, position):
        self.app.frontol_report.open_report_menu()
        self.app.frontol_report.print_report_by_id(
            report_id=position['report_type'])
        self.app.frontol_report.exit_report_menu()