Esempio n. 1
0
 def validate(self, issuePass=False):
     self.arr = []
     self.arr.append(self.idVar.get())
     if not self.fnameVar.get():
         logTC("First name field may not be empty", "ERROR")
         e = ErrorWindow(self.piwin, "First name field may not be empty.")
         return -1
     valid = validateName(self.fnameVar.get())
     if not valid[0]:
         logTC("Invalid character in first name field: '" + valid[1] + "'", "ERROR")
         e = ErrorWindow(self.piwin, "Invalid character in first name field: '" + valid[1] + "'")
         return -1
     self.arr.append(self.fnameVar.get().upper())
     if not self.mnameVar.get():
         logTC("Middle name field may not be empty", "ERROR")
         e = ErrorWindow(self.piwin, "Middle name field may not be empty.")
         return -1
     valid = validateName(self.mnameVar.get())
     if not valid[0]:
         logTC("Invalid character in middle name field: '" + valid[1] + "'", "ERROR")
         e = ErrorWindow(self.piwin, "Invalid character in middle name field: '" + valid[1] + "'")
         return -1
     self.arr.append(self.mnameVar.get().upper())
     if not self.lnameVar.get():
         logTC("Last name field may not be empty", "ERROR")
         e = ErrorWindow(self.piwin, "Last name field may not be empty.")
         return -1
     valid = validateName(self.lnameVar.get())
     if not valid[0]:
         logTC("Invalid character in last name field: '" + valid[1] + "'", "ERROR")
         e = ErrorWindow(self.piwin, "Invalid character in last name field: '" + valid[1] + "'")
         return -1
     self.arr.append(self.lnameVar.get().upper())
     if not self.muniVar.get():
         logTC("Location field may not be empty", "ERROR")
         e = ErrorWindow(self.piwin, "Location field may not be empty.")
         return -1
     valid = validateMuni(self.muniVar.get().upper())
     if not valid[0]:
         logTC("Invalid character in the location field: '" + valid[1] + "'", "ERROR")
         e = ErrorWindow(self.piwin, "Invalid character in the location field: '" + valid[1] + "'")
         return -1
     self.arr.append(self.muniVar.get().upper())
     self.arr.append(self.stateOptionsVar.get())
     self.arr.append(self.dat[6])
     if self.statusOptionsVar.get() == 'OK':
         self.arr.append(None)
     elif self.statusOptionsVar.get() == 'BLOCKED':
         self.arr.append('BLOCKED')
     elif self.statusOptionsVar.get() == 'BARRED':
         self.arr.append('BARRED')
     else:
         self.arr.append(None)
     if self.bandateVar.get():
         if self.bandateVar.get() in ("NEVER", "CONDITIONAL"):
             logTC("Invalid argument in bandate field!", "ERROR")
             e = ErrorWindow(self.piwin, "You cannot use NEVER or CONDITIONAL in the ban date field.", "425x100")
             return -1
         try:
             sd = Date(self.bandateVar.get())
             self.arr.append(self.bandateVar.get())
         except Exception as e:
             logTC("Invalid ban date entered!", "ERROR")
             e = ErrorWindow(self.piwin, "Invalid ban date entered!")
             return -1
     else:
         self.arr.append(None)
     if self.expdateVar.get():
         try:
             sd = Date(self.expdateVar.get())
             self.arr.append(self.expdateVar.get())
         except Exception as e:
             logTC("Invalid expiration date entered!", "ERROR")
             e = ErrorWindow(self.piwin, "Invalid expiration date entered!")
             return -1
     else:
         self.arr.append(None)
     if self.barcodeVar.get():
         barcode = self.barcodeVar.get()
         if not validateBarcode(barcode):
             logTC("Invalid barcode!", "ERROR")
             e = ErrorWindow(self.piwin, "Invalid barcode entered!")
         else:
             self.arr.append(self.barcodeVar.get())
     else:
         self.arr.append(None)
     if any(letter.isalpha() for letter in self.reasonText.get("1.0", tk.END)):
         self.arr.append(self.reasonText.get("1.0", tk.END))
     else:
         self.arr.append(None)
     self.arr.append(self.aiText.get("1.0", tk.END))
     if self.arr[7] in ("BLOCKED", "BARRED"):
         if not self.arr[8]:
             logTC("Patron with isBanned == BLOCKED or BARRED cannot have NULL Ban Date field.", "ERROR")
             e = ErrorWindow(self.piwin, "A BLOCKED or BARRED patron may not have their Ban Date field be blank.", "425x100")
             return -1
         if not self.arr[11]:
             logTC("Patron with isBanned == BLOCKED or BARRED cannot have NULL reason field.", "ERROR")
             e = ErrorWindow(self.piwin, "A BLOCKED or BARRED patron may not have their reason field be blank.", "425x100")
             return -1
     logArrTC(self.arr, dbArr=True)
     self.allowEdit(False)
     if issuePass:
         self.issuePass()
     else:
         self.commitToDB()
Esempio n. 2
0
 def commitToDB(self):
     self.commitButton.configure(state=tk.DISABLED)
     logTC("Committing the following new record to database:")
     logArrTC(self.arr, dbArr=True)
     addRecord("patrons", self.arr)
     self.close()