Example #1
0
    def submit_data(self, event=None):
        major = self.major_entry.get().strip()
        classification = self.classification_entry.get().strip()
        name = self.name_entry.get().strip()
        netid = self.net_id_entry.get().strip()

        for x in (major, classification, name, netid):
            if x == "":
                self.feedback_label.config(style="ErrorLabel.TLabel")
                self.feedback_label['text'] = 'Make sure there is an entry for every field.'
                return
        if self.dues.get() == "two":
            dues = 2
        elif self.dues.get() == "one":
            dues = 1
        else:
            dues = 0
        data = MIS_Database_Functions.check_member(netid)
        if data is not None:
            if data['major'] != major:
                MIS_Database_Functions.set_major(netid, major)
                Logger.write_to_log(Logger.get_event_log_file(), "Major updated to %s for net id %s\n" % (major, netid))
            if data['classification'] != classification:
                MIS_Database_Functions.set_classification(netid, classification)
                Logger.write_to_log(Logger.get_event_log_file(), "Classification updated to '%s' for net id '%s'\n" %
                                    (classification, netid))
            if data['name'] != name:
                MIS_Database_Functions.set_name(netid, name)
                Logger.write_to_log(Logger.get_event_log_file(), "Name updated to %s for net id %s\n" % (name, netid))
            if data['dues_paid'] != dues and dues > 0:
                MIS_Database_Functions.update_payment(netid, dues)
                Logger.write_to_log(Logger.get_event_log_file(), "Payment made for %s, %d semesters paid for\n"
                                    % (netid, dues))
                if self.payment_made.get() == 0:
                    Logger.write_to_log(Logger.get_event_log_file(), "Payment above NOT collected\n")
        else:
            MIS_Database_Functions.create_member(netid, name, major, classification, dues)
            Logger.write_to_log(Logger.get_event_log_file(),
                                'New Member: (%s, %s, %s, %s, %d)\n' % (netid, name, major, classification, dues))
            if dues > 0:
                Logger.write_to_log(Logger.get_event_log_file(), "Payment made for %s semesters for net id %s\n"
                                    % (str(dues), netid))
                if self.payment_made.get() == 0:
                    Logger.write_to_log(Logger.get_event_log_file(), "Payment above NOT collected\n")
        event_id = MIS_Database_Functions.get_most_recent_event_id()

        # Weird edge case: when user accidentally presses trial button, may end up recording a trial meeting for a
        # a user who has already paid for the semester. Code is corrected to make sure the users payment information is
        # not affected, this just makes sure the logs don't falsely record a trial meeting.
        if data is None and dues == 0:
            Logger.write_to_log(Logger.get_event_log_file(), "Trial Meeting for %s\n" % netid)
        elif hasattr(data, 'dues_paid'):
            if data['dues_paid'] == 0:
                Logger.write_to_log(Logger.get_event_log_file(), "Trial Meeting for %s\n" % netid)

        MIS_Database_Functions.create_ticket(event_id, netid)
        Logger.write_to_log(Logger.get_event_log_file(), "\n\n")
        self.clear_all()
        self.feedback_label.config(style="SuccessLabel.TLabel")
        self.feedback_label['text'] = name.split(" ")[1] + " was checked in successfully!\n" \
                                                                            "Welcome them to the meeting!"