def update_movement_from_form(dbo, username, data): """ Updates a movement record from posted form data """ validate_movement_form_data(dbo, data) l = dbo.locale movementid = utils.df_ki(data, "movementid") sql = db.make_update_user_sql(dbo, "adoption", username, "ID=%d" % movementid, ( ( "AdoptionNumber", utils.df_t(data, "adoptionno")), ( "OwnerID", db.di(utils.df_ki(data, "person"))), ( "RetailerID", db.di(utils.df_ki(data, "retailer"))), ( "AnimalID", db.di(utils.df_ki(data, "animal"))), ( "OriginalRetailerMovementID", db.di(utils.df_ki(data, "originalretailermovement"))), ( "MovementDate", utils.df_d(data, "movementdate", l)), ( "MovementType", utils.df_s(data, "type")), ( "ReturnDate", utils.df_d(data, "returndate", l)), ( "ReturnedReasonID", utils.df_s(data, "returncategory")), ( "Donation", utils.df_m(data, "donation", l)), ( "InsuranceNumber", utils.df_t(data, "insurance")), ( "ReasonForReturn", utils.df_t(data, "reason")), ( "ReservationDate", utils.df_d(data, "reservationdate", l)), ( "ReservationCancelledDate", utils.df_d(data, "reservationcancelled", l)), ( "IsTrial", utils.df_c(data, "trial")), ( "IsPermanentFoster", utils.df_c(data, "permanentfoster")), ( "TrialEndDate", utils.df_d(data, "trialenddate", l)), ( "Comments", utils.df_t(data, "comments")) )) preaudit = db.query(dbo, "SELECT * FROM adoption WHERE ID = %d" % movementid) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM adoption WHERE ID = %d" % movementid) audit.edit(dbo, username, "adoption", audit.map_diff(preaudit, postaudit)) animal.update_animal_status(dbo, utils.df_ki(data, "animal")) animal.update_variable_animal_data(dbo, utils.df_ki(data, "animal")) update_movement_donation(dbo, movementid)
def update_foundanimal_from_form(dbo, data, username): """ Updates a found animal record from the screen data: The webpy data object containing form parameters """ l = dbo.locale lfid = utils.df_ki(data, "id") if utils.df_kd(data, "datefound", l) is None: raise utils.ASMValidationError(_("Date found cannot be blank", l)) if utils.df_kd(data, "datereported", l) is None: raise utils.ASMValidationError(_("Date reported cannot be blank", l)) if utils.df_ki(data, "owner") == "0": raise utils.ASMValidationError(_("Found animals must have a contact", l)) preaudit = db.query(dbo, "SELECT * FROM animalfound WHERE ID = %d" % lfid) db.execute(dbo, db.make_update_user_sql(dbo, "animalfound", username, "ID=%d" % lfid, ( ( "AnimalTypeID", utils.df_s(data, "species")), ( "DateReported", utils.df_d(data, "datereported", l)), ( "ReturnToOwnerDate", utils.df_d(data, "returntoownerdate", l)), ( "DateFound", utils.df_d(data, "datefound", l)), ( "Sex", utils.df_s(data, "sex")), ( "BreedID", utils.df_s(data, "breed")), ( "AgeGroup", utils.df_t(data, "agegroup")), ( "BaseColourID", utils.df_s(data, "colour")), ( "DistFeat", utils.df_t(data, "markings")), ( "AreaFound", utils.df_t(data, "areafound")), ( "AreaPostcode", utils.df_t(data, "areapostcode")), ( "OwnerID", utils.df_s(data, "owner")), ( "Comments", utils.df_t(data, "comments")) ))) additional.save_values_for_link(dbo, data, lfid, "foundanimal") postaudit = db.query(dbo, "SELECT * FROM animalfound WHERE ID = %d" % lfid) audit.edit(dbo, username, "animalfound", audit.map_diff(preaudit, postaudit))
def insert_user_from_form(dbo, username, data): """ Creates a user record from posted form data. Uses the roles key (which should be a comma separated list of role ids) to create userrole records. """ nuserid = db.get_id(dbo, "users") sql = db.make_insert_sql("users", ( ( "ID", db.di(nuserid)), ( "UserName", utils.df_t(data, "username")), ( "RealName", utils.df_t(data, "realname")), ( "EmailAddress", utils.df_t(data, "email")), ( "Password", db.ds(hash_password(utils.df_ks(data, "password"), True))), ( "SuperUser", utils.df_s(data, "superuser")), ( "RecordVersion", db.di(0)), ( "SecurityMap", db.ds("dummy")), ( "OwnerID", utils.df_s(data, "person")), ( "LocationFilter", utils.df_t(data, "locationfilter")), ( "IPRestriction", utils.df_t(data, "iprestriction")) )) db.execute(dbo, sql) audit.create(dbo, username, "users", str(nuserid)) roles = utils.df_ks(data, "roles").strip() if roles != "": for rid in roles.split(","): if rid.strip() != "": db.execute(dbo, "INSERT INTO userrole VALUES (%d, %d)" % (nuserid, int(rid))) return nuserid
def update_test_from_form(dbo, username, data): """ Updates a test record from posted form data """ l = dbo.locale testid = utils.df_ki(data, "testid") if utils.df_kd(data, "required", l) is None: raise utils.ASMValidationError( _("Required date must be a valid date", l)) sql = db.make_update_user_sql( dbo, "animaltest", username, "ID=%d" % testid, (("AnimalID", db.di(utils.df_ki(data, "animal"))), ("TestTypeID", utils.df_s(data, "type")), ("TestResultID", utils.df_s(data, "result")), ("DateOfTest", utils.df_d(data, "given", l)), ("DateRequired", utils.df_d(data, "required", l)), ("Cost", utils.df_m(data, "cost", l)), ("Comments", utils.df_t(data, "comments")))) preaudit = db.query(dbo, "SELECT * FROM animaltest WHERE ID = %d" % testid) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM animaltest WHERE ID = %d" % testid) audit.edit(dbo, username, "animaltest", audit.map_diff(preaudit, postaudit)) # ASM2_COMPATIBILITY update_asm2_tests(dbo, testid)
def insert_foundanimal_from_form(dbo, data, username): """ Inserts a new found animal record from the screen data: The webpy data object containing form parameters """ l = dbo.locale if utils.df_kd(data, "datefound", l) is None: raise utils.ASMValidationError(_("Date found cannot be blank", l)) if utils.df_kd(data, "datereported", l) is None: raise utils.ASMValidationError(_("Date reported cannot be blank", l)) if utils.df_ki(data, "owner") == "0": raise utils.ASMValidationError(_("Found animals must have a contact", l)) nid = db.get_id(dbo, "animalfound") db.execute(dbo, db.make_insert_user_sql(dbo, "animalfound", username, ( ( "ID", db.di(nid)), ( "AnimalTypeID", utils.df_s(data, "species")), ( "DateReported", utils.df_d(data, "datereported", l)), ( "ReturnToOwnerDate", utils.df_d(data, "returntoownerdate", l)), ( "DateFound", utils.df_d(data, "datefound", l)), ( "Sex", utils.df_s(data, "sex")), ( "BreedID", utils.df_s(data, "breed")), ( "AgeGroup", utils.df_t(data, "agegroup")), ( "BaseColourID", utils.df_s(data, "colour")), ( "DistFeat", utils.df_t(data, "markings")), ( "AreaFound", utils.df_t(data, "areafound")), ( "AreaPostcode", utils.df_t(data, "areapostcode")), ( "OwnerID", utils.df_s(data, "owner")), ( "Comments", utils.df_t(data, "comments")) ))) audit.create(dbo, username, "animalfound", str(nid)) return nid
def insert_user_from_form(dbo, username, data): """ Creates a user record from posted form data. Uses the roles key (which should be a comma separated list of role ids) to create userrole records. """ nuserid = db.get_id(dbo, "users") sql = db.make_insert_sql( "users", (("ID", db.di(nuserid)), ("UserName", utils.df_t(data, "username")), ("RealName", utils.df_t(data, "realname")), ("EmailAddress", utils.df_t(data, "email")), ("Password", db.ds(hash_password(utils.df_ks(data, "password"), True))), ("SuperUser", utils.df_s(data, "superuser")), ("RecordVersion", db.di(0)), ("SecurityMap", db.ds("dummy")), ("OwnerID", utils.df_s(data, "person")), ("LocationFilter", utils.df_t(data, "locationfilter")), ("IPRestriction", utils.df_t(data, "iprestriction")))) db.execute(dbo, sql) audit.create(dbo, username, "users", str(nuserid)) roles = utils.df_ks(data, "roles").strip() if roles != "": for rid in roles.split(","): if rid.strip() != "": db.execute( dbo, "INSERT INTO userrole VALUES (%d, %d)" % (nuserid, int(rid))) return nuserid
def update_donation_from_form(dbo, username, data): """ Updates a donation record from posted form data """ l = dbo.locale donationid = utils.df_ki(data, "donationid") sql = db.make_update_user_sql( dbo, "ownerdonation", username, "ID=%d" % donationid, (("OwnerID", db.di(utils.df_ki(data, "person"))), ("AnimalID", db.di(utils.df_ki(data, "animal"))), ("MovementID", db.di(utils.df_ki(data, "movement"))), ("DonationTypeID", utils.df_s(data, "type")), ("DonationPaymentID", utils.df_s(data, "payment")), ("Frequency", utils.df_s(data, "frequency")), ("Donation", utils.df_m(data, "amount", l)), ("DateDue", utils.df_d(data, "due", l)), ("Date", utils.df_d(data, "received", l)), ("IsGiftAid", utils.df_s(data, "giftaid")), ("Comments", utils.df_t(data, "comments")))) preaudit = db.query( dbo, "SELECT * FROM ownerdonation WHERE ID = %d" % donationid) db.execute(dbo, sql) postaudit = db.query( dbo, "SELECT * FROM ownerdonation WHERE ID = %d" % donationid) audit.edit(dbo, username, "ownerdonation", audit.map_diff(preaudit, postaudit)) update_matching_transaction(dbo, username, donationid) check_create_next_donation(dbo, username, donationid) movement.update_movement_donation(dbo, utils.df_ki(data, "movement"))
def insert_donation_from_form(dbo, username, data): """ Creates a donation record from posted form data """ l = dbo.locale donationid = db.get_id(dbo, "ownerdonation") sql = db.make_insert_user_sql( dbo, "ownerdonation", username, (("ID", db.di(donationid)), ("OwnerID", db.di(utils.df_ki(data, "person"))), ("AnimalID", db.di(utils.df_ki(data, "animal"))), ("MovementID", db.di(utils.df_ki(data, "movement"))), ("DonationTypeID", utils.df_s(data, "type")), ("DonationPaymentID", utils.df_s(data, "payment")), ("Frequency", utils.df_s(data, "frequency")), ("Donation", utils.df_m(data, "amount", l)), ("DateDue", utils.df_d(data, "due", l)), ("Date", utils.df_d(data, "received", l)), ("NextCreated", db.di(0)), ("IsGiftAid", utils.df_s(data, "giftaid")), ("Comments", utils.df_t(data, "comments")))) db.execute(dbo, sql) audit.create(dbo, username, "ownerdonation", str(donationid)) update_matching_transaction(dbo, username, donationid) check_create_next_donation(dbo, username, donationid) movement.update_movement_donation(dbo, utils.df_ki(data, "movement")) return donationid
def insert_donation_from_form(dbo, username, data): """ Creates a donation record from posted form data """ l = dbo.locale donationid = db.get_id(dbo, "ownerdonation") sql = db.make_insert_user_sql(dbo, "ownerdonation", username, ( ( "ID", db.di(donationid)), ( "OwnerID", db.di(utils.df_ki(data, "person"))), ( "AnimalID", db.di(utils.df_ki(data, "animal"))), ( "MovementID", db.di(utils.df_ki(data, "movement"))), ( "DonationTypeID", utils.df_s(data, "type")), ( "DonationPaymentID", utils.df_s(data, "payment")), ( "Frequency", utils.df_s(data, "frequency")), ( "Donation", utils.df_m(data, "amount", l)), ( "DateDue", utils.df_d(data, "due", l)), ( "Date", utils.df_d(data, "received", l)), ( "NextCreated", db.di(0)), ( "IsGiftAid", utils.df_s(data, "giftaid")), ( "Comments", utils.df_t(data, "comments")) )) db.execute(dbo, sql) audit.create(dbo, username, "ownerdonation", str(donationid)) update_matching_transaction(dbo, username, donationid) check_create_next_donation(dbo, username, donationid) movement.update_movement_donation(dbo, utils.df_ki(data, "movement")) return donationid
def update_waitinglist_from_form(dbo, data, username): """ Updates a waiting list record from the screen data: The webpy data object containing form parameters """ l = dbo.locale wlid = utils.df_ki(data, "id") if utils.df_ks(data, "description") == "": raise utils.ASMValidationError(_("Description cannot be blank", l)) if utils.df_ki(data, "owner") == "0": raise utils.ASMValidationError(_("Waiting list entries must have a contact", l)) if utils.df_ks(data, "dateputon") == "": raise utils.ASMValidationError(_("Date put on cannot be blank", l)) preaudit = db.query(dbo, "SELECT * FROM animalwaitinglist WHERE ID = %d" % wlid) db.execute(dbo, db.make_update_user_sql(dbo, "animalwaitinglist", username, "ID=%d" % wlid, ( ( "SpeciesID", utils.df_s(data, "species")), ( "DatePutOnList", utils.df_d(data, "dateputon", l)), ( "OwnerID", utils.df_s(data, "owner")), ( "AnimalDescription", utils.df_t(data, "description")), ( "ReasonForWantingToPart", utils.df_t(data, "reasonforwantingtopart")), ( "CanAffordDonation", utils.df_c(data, "canafforddonation")), ( "Urgency", utils.df_s(data, "urgency")), ( "DateRemovedFromList", utils.df_d(data, "dateremoved", l)), ( "AutoRemovePolicy", utils.df_s(data, "autoremovepolicy")), ( "DateOfLastOwnerContact", utils.df_d(data, "dateoflastownercontact", l)), ( "ReasonForRemoval", utils.df_t(data, "reasonforremoval")), ( "Comments", utils.df_t(data, "comments")) ))) additional.save_values_for_link(dbo, data, wlid, "waitinglist") postaudit = db.query(dbo, "SELECT * FROM animalwaitinglist WHERE ID = %d" % wlid) audit.edit(dbo, username, "animalwaitinglist", audit.map_diff(preaudit, postaudit))
def update_donation_from_form(dbo, username, data): """ Updates a donation record from posted form data """ l = dbo.locale donationid = utils.df_ki(data, "donationid") sql = db.make_update_user_sql(dbo, "ownerdonation", username, "ID=%d" % donationid, ( ( "OwnerID", db.di(utils.df_ki(data, "person"))), ( "AnimalID", db.di(utils.df_ki(data, "animal"))), ( "MovementID", db.di(utils.df_ki(data, "movement"))), ( "DonationTypeID", utils.df_s(data, "type")), ( "DonationPaymentID", utils.df_s(data, "payment")), ( "Frequency", utils.df_s(data, "frequency")), ( "Donation", utils.df_m(data, "amount", l)), ( "DateDue", utils.df_d(data, "due", l)), ( "Date", utils.df_d(data, "received", l)), ( "IsGiftAid", utils.df_s(data, "giftaid")), ( "Comments", utils.df_t(data, "comments")) )) preaudit = db.query(dbo, "SELECT * FROM ownerdonation WHERE ID = %d" % donationid) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM ownerdonation WHERE ID = %d" % donationid) audit.edit(dbo, username, "ownerdonation", audit.map_diff(preaudit, postaudit)) update_matching_transaction(dbo, username, donationid) check_create_next_donation(dbo, username, donationid) movement.update_movement_donation(dbo, utils.df_ki(data, "movement"))
def update_user_from_form(dbo, username, data): """ Updates a user record from posted form data Uses the roles key (which should be a comma separated list of role ids) to create userrole records. """ userid = utils.df_ki(data, "userid") sql = db.make_update_sql("users", "ID=%d" % userid, ( ( "RealName", utils.df_t(data, "realname")), ( "EmailAddress", utils.df_t(data, "email")), ( "SuperUser", utils.df_s(data, "superuser")), ( "OwnerID", utils.df_s(data, "person")), ( "LocationFilter", utils.df_t(data, "locationfilter")), ( "IPRestriction", utils.df_t(data, "iprestriction")) )) preaudit = db.query(dbo, "SELECT * FROM users WHERE ID = %d" % userid) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM users WHERE ID = %d" % userid) audit.edit(dbo, username, "users", audit.map_diff(preaudit, postaudit, [ "USERNAME", ])) db.execute(dbo, "DELETE FROM userrole WHERE UserID = %d" % userid) if utils.df_ki(data, "issuperuser") == 0: roles = utils.df_ks(data, "roles").strip() if roles != "": for rid in roles.split(","): if rid.strip() != "": db.execute(dbo, "INSERT INTO userrole VALUES (%d, %d)" % (userid, int(rid)))
def update_user_from_form(dbo, username, data): """ Updates a user record from posted form data Uses the roles key (which should be a comma separated list of role ids) to create userrole records. """ userid = utils.df_ki(data, "userid") sql = db.make_update_sql( "users", "ID=%d" % userid, (("RealName", utils.df_t(data, "realname")), ("EmailAddress", utils.df_t(data, "email")), ("SuperUser", utils.df_s(data, "superuser")), ("OwnerID", utils.df_s(data, "person")), ("LocationFilter", utils.df_t(data, "locationfilter")), ("IPRestriction", utils.df_t(data, "iprestriction")))) preaudit = db.query(dbo, "SELECT * FROM users WHERE ID = %d" % userid) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM users WHERE ID = %d" % userid) audit.edit(dbo, username, "users", audit.map_diff(preaudit, postaudit, [ "USERNAME", ])) db.execute(dbo, "DELETE FROM userrole WHERE UserID = %d" % userid) if utils.df_ki(data, "issuperuser") == 0: roles = utils.df_ks(data, "roles").strip() if roles != "": for rid in roles.split(","): if rid.strip() != "": db.execute( dbo, "INSERT INTO userrole VALUES (%d, %d)" % (userid, int(rid)))
def insert_waitinglist_from_form(dbo, data, username): """ Creates a waiting list record from the screen data: The webpy data object containing form parameters """ l = dbo.locale if utils.df_ks(data, "description") == "": raise utils.ASMValidationError(_("Description cannot be blank", l)) if utils.df_ki(data, "owner") == "0": raise utils.ASMValidationError(_("Waiting list entries must have a contact", l)) if utils.df_ks(data, "dateputon") == "": raise utils.ASMValidationError(_("Date put on cannot be blank", l)) nwlid = db.get_id(dbo, "animalwaitinglist") db.execute(dbo, db.make_insert_user_sql(dbo, "animalwaitinglist", username, ( ( "ID", db.di(nwlid)), ( "SpeciesID", utils.df_s(data, "species")), ( "DatePutOnList", utils.df_d(data, "dateputon", l)), ( "OwnerID", utils.df_s(data, "owner")), ( "AnimalDescription", utils.df_t(data, "description")), ( "ReasonForWantingToPart", utils.df_t(data, "reasonforwantingtopart")), ( "CanAffordDonation", utils.df_c(data, "canafforddonation")), ( "Urgency", utils.df_s(data, "urgency")), ( "DateRemovedFromList", utils.df_d(data, "dateremoved", l)), ( "AutoRemovePolicy", utils.df_s(data, "autoremovepolicy")), ( "DateOfLastOwnerContact", db.dd(now(dbo.timezone))), ( "ReasonForRemoval", utils.df_t(data, "reasonforremoval")), ( "Comments", utils.df_t(data, "comments")), ( "UrgencyLastUpdatedDate", db.dd(now(dbo.timezone))), ( "UrgencyUpdateDate", db.dd(add_days(now(dbo.timezone), configuration.waiting_list_urgency_update_period(dbo)))) ))) audit.create(dbo, username, "animalwaitinglist", str(nwlid)) return nwlid
def insert_movement_from_form(dbo, username, data): """ Creates a movement record from posted form data """ movementid = db.get_id(dbo, "adoption") adoptionno = utils.df_ks(data, "adoptionno") animalid = utils.df_ki(data, "animal") if adoptionno == "": # No adoption number was supplied, generate a # unique number from the movementid idx = movementid while True: adoptionno = utils.padleft(idx, 6) data["adoptionno"] = adoptionno if 0 == db.query_int( dbo, "SELECT COUNT(*) FROM adoption WHERE AdoptionNumber LIKE '%s'" % adoptionno): break else: idx += 1 validate_movement_form_data(dbo, data) l = dbo.locale sql = db.make_insert_user_sql( dbo, "adoption", username, (("ID", db.di(movementid)), ("AdoptionNumber", db.ds(adoptionno)), ("OwnerID", db.di(utils.df_ki(data, "person"))), ("RetailerID", db.di(utils.df_ki(data, "retailer"))), ("AnimalID", db.di(utils.df_ki(data, "animal"))), ("OriginalRetailerMovementID", db.di(utils.df_ki(data, "originalretailermovement"))), ("MovementDate", utils.df_d(data, "movementdate", l)), ("MovementType", utils.df_s(data, "type")), ("ReturnDate", utils.df_d(data, "returndate", l)), ("ReturnedReasonID", utils.df_s(data, "returncategory")), ("Donation", utils.df_m(data, "donation", l)), ("InsuranceNumber", utils.df_t(data, "insurance")), ("ReasonForReturn", utils.df_t(data, "reason")), ("ReservationDate", utils.df_d(data, "reservationdate", l)), ("ReservationCancelledDate", utils.df_d(data, "reservationcancelled", l)), ("IsTrial", utils.df_c(data, "trial")), ("IsPermanentFoster", utils.df_c(data, "permanentfoster")), ("TrialEndDate", utils.df_d(data, "trialenddate", l)), ("Comments", utils.df_t(data, "comments")))) db.execute(dbo, sql) audit.create(dbo, username, "adoption", str(movementid)) animal.update_animal_status(dbo, animalid) animal.update_variable_animal_data(dbo, animalid) update_movement_donation(dbo, movementid) return movementid
def insert_regimen_from_form(dbo, username, data): """ Creates a regimen record from posted form data """ l = dbo.locale if utils.df_kd(data, "startdate", l) is None: raise utils.ASMValidationError(_("Start date must be a valid date", l)) if utils.df_ks(data, "treatmentname") == "": raise utils.ASMValidationError(_("Treatment name cannot be blank", l)) l = dbo.locale nregid = db.get_id(dbo, "animalmedical") timingrule = utils.df_ki(data, "timingrule") timingrulenofrequencies = utils.df_ki(data, "timingrulenofrequencies") timingrulefrequency = utils.df_ki(data, "timingrulefrequency") totalnumberoftreatments = utils.df_ki(data, "totalnumberoftreatments") treatmentsremaining = int(totalnumberoftreatments) * int(timingrule) treatmentrule = utils.df_ki(data, "treatmentrule") singlemulti = utils.df_ki(data, "singlemulti") if singlemulti == 0: timingrule = 0 timingrulenofrequencies = 0 timingrulefrequency = 0 treatmentsremaining = 1 if treatmentrule != 0: totalnumberoftreatments = 0 treatmentsremaining = 0 sql = db.make_insert_user_sql( dbo, "animalmedical", username, (("ID", db.di(nregid)), ("AnimalID", db.di(utils.df_ki(data, "animal"))), ("MedicalProfileID", utils.df_s(data, "profileid")), ("TreatmentName", utils.df_t(data, "treatmentname")), ("Dosage", utils.df_t(data, "dosage")), ("StartDate", utils.df_d(data, "startdate", l)), ("Status", db.di(0)), ("Cost", utils.df_m(data, "cost", l)), ("TimingRule", db.di(timingrule)), ("TimingRuleFrequency", db.di(timingrulefrequency)), ("TimingRuleNoFrequencies", db.di(timingrulenofrequencies)), ("TreatmentRule", utils.df_s(data, "treatmentrule")), ("TotalNumberOfTreatments", db.di(totalnumberoftreatments)), ("TreatmentsGiven", db.di(0)), ("TreatmentsRemaining", db.di(treatmentsremaining)), ("Comments", utils.df_t(data, "comments")))) db.execute(dbo, sql) audit.create( dbo, username, "animalmedical", str(nregid) + ": " + utils.df_ks(data, "treatmentname") + " " + utils.df_ks(data, "dosage")) update_medical_treatments(dbo, username, nregid)
def insert_regimen_from_form(dbo, username, data): """ Creates a regimen record from posted form data """ l = dbo.locale if utils.df_kd(data, "startdate", l) is None: raise utils.ASMValidationError(_("Start date must be a valid date", l)) if utils.df_ks(data, "treatmentname") == "": raise utils.ASMValidationError(_("Treatment name cannot be blank", l)) l = dbo.locale nregid = db.get_id(dbo, "animalmedical") timingrule = utils.df_ki(data, "timingrule") timingrulenofrequencies = utils.df_ki(data, "timingrulenofrequencies") timingrulefrequency = utils.df_ki(data, "timingrulefrequency") totalnumberoftreatments = utils.df_ki(data, "totalnumberoftreatments") treatmentsremaining = int(totalnumberoftreatments) * int(timingrule) treatmentrule = utils.df_ki(data, "treatmentrule") singlemulti = utils.df_ki(data, "singlemulti") if singlemulti == 0: timingrule = 0 timingrulenofrequencies = 0 timingrulefrequency = 0 treatmentsremaining = 1 if treatmentrule != 0: totalnumberoftreatments = 0 treatmentsremaining = 0 sql = db.make_insert_user_sql(dbo, "animalmedical", username, ( ( "ID", db.di(nregid)), ( "AnimalID", db.di(utils.df_ki(data, "animal"))), ( "MedicalProfileID", utils.df_s(data, "profileid")), ( "TreatmentName", utils.df_t(data, "treatmentname")), ( "Dosage", utils.df_t(data, "dosage")), ( "StartDate", utils.df_d(data, "startdate", l)), ( "Status", db.di(0)), ( "Cost", utils.df_m(data, "cost", l)), ( "TimingRule", db.di(timingrule)), ( "TimingRuleFrequency", db.di(timingrulefrequency)), ( "TimingRuleNoFrequencies", db.di(timingrulenofrequencies)), ( "TreatmentRule", utils.df_s(data, "treatmentrule")), ( "TotalNumberOfTreatments", db.di(totalnumberoftreatments)), ( "TreatmentsGiven", db.di(0)), ( "TreatmentsRemaining", db.di(treatmentsremaining)), ( "Comments", utils.df_t(data, "comments")) )) db.execute(dbo, sql) audit.create(dbo, username, "animalmedical", str(nregid) + ": " + utils.df_ks(data, "treatmentname") + " " + utils.df_ks(data, "dosage")) update_medical_treatments(dbo, username, nregid)
def insert_diarytaskdetail_from_form(dbo, username, data): """ Creates a diary task detail from form data """ nid = db.get_id(dbo, "diarytaskdetail") sql = db.make_insert_sql( "diarytaskdetail", (("ID", db.di(nid)), ("DiaryTaskHeadID", utils.df_s(data, "taskid")), ("DayPivot", utils.df_s(data, "pivot")), ("WhoFor", utils.df_t(data, "for")), ("Subject", utils.df_t(data, "subject")), ("Note", utils.df_t(data, "note")), ("RecordVersion", db.di(0)))) db.execute(dbo, sql) audit.create(dbo, username, "diarytaskdetail", str(nid)) return nid
def insert_movement_from_form(dbo, username, data): """ Creates a movement record from posted form data """ movementid = db.get_id(dbo, "adoption") adoptionno = utils.df_ks(data, "adoptionno") animalid = utils.df_ki(data, "animal") if adoptionno == "": # No adoption number was supplied, generate a # unique number from the movementid idx = movementid while True: adoptionno = utils.padleft(idx, 6) data["adoptionno"] = adoptionno if 0 == db.query_int(dbo, "SELECT COUNT(*) FROM adoption WHERE AdoptionNumber LIKE '%s'" % adoptionno): break else: idx += 1 validate_movement_form_data(dbo, data) l = dbo.locale sql = db.make_insert_user_sql(dbo, "adoption", username, ( ( "ID", db.di(movementid)), ( "AdoptionNumber", db.ds(adoptionno)), ( "OwnerID", db.di(utils.df_ki(data, "person"))), ( "RetailerID", db.di(utils.df_ki(data, "retailer"))), ( "AnimalID", db.di(utils.df_ki(data, "animal"))), ( "OriginalRetailerMovementID", db.di(utils.df_ki(data, "originalretailermovement"))), ( "MovementDate", utils.df_d(data, "movementdate", l)), ( "MovementType", utils.df_s(data, "type")), ( "ReturnDate", utils.df_d(data, "returndate", l)), ( "ReturnedReasonID", utils.df_s(data, "returncategory")), ( "Donation", utils.df_m(data, "donation", l)), ( "InsuranceNumber", utils.df_t(data, "insurance")), ( "ReasonForReturn", utils.df_t(data, "reason")), ( "ReservationDate", utils.df_d(data, "reservationdate", l)), ( "ReservationCancelledDate", utils.df_d(data, "reservationcancelled", l)), ( "IsTrial", utils.df_c(data, "trial")), ( "IsPermanentFoster", utils.df_c(data, "permanentfoster")), ( "TrialEndDate", utils.df_d(data, "trialenddate", l)), ( "Comments", utils.df_t(data, "comments")) )) db.execute(dbo, sql) audit.create(dbo, username, "adoption", str(movementid)) animal.update_animal_status(dbo, animalid) animal.update_variable_animal_data(dbo, animalid) update_movement_donation(dbo, movementid) return movementid
def attach_link_from_form(dbo, username, linktype, linkid, data): """ Attaches a link to a web resource from a form """ existingvid = db.query_int(dbo, "SELECT COUNT(*) FROM media WHERE WebsiteVideo = 1 " \ "AND LinkID = %d AND LinkTypeID = %d" % ( int(linkid), int(linktype) )) defvid = 0 if existingvid == 0 and utils.df_ki(data, "linktype") == MEDIATYPE_VIDEO_LINK: defvid = 1 mediaid = db.get_id(dbo, "media") url = utils.df_ks(data, "linktarget") if url.find("://") == -1: url = "http://" + url sql = db.make_insert_sql("media", ( ( "ID", db.di(mediaid) ), ( "MediaName", db.ds(url) ), ( "MediaType", utils.df_s(data, "linktype") ), ( "MediaNotes", utils.df_t(data, "comments") ), ( "WebsitePhoto", db.di(0) ), ( "WebsiteVideo", db.di(defvid) ), ( "DocPhoto", db.di(0) ), ( "ExcludeFromPublish", db.di(0) ), ( "NewSinceLastPublish", db.di(1) ), ( "UpdatedSinceLastPublish", db.di(0) ), ( "LinkID", db.di(linkid) ), ( "LinkTypeID", db.di(linktype) ), ( "Date", db.nowsql() ) )) db.execute(dbo, sql) audit.create(dbo, username, "media", str(mediaid) + ": for " + str(linkid) + "/" + str(linktype) + ": link to " + utils.df_ks(data, "linktarget"))
def attach_link_from_form(dbo, username, linktype, linkid, data): """ Attaches a link to a web resource from a form """ existingvid = db.query_int(dbo, "SELECT COUNT(*) FROM media WHERE WebsiteVideo = 1 " \ "AND LinkID = %d AND LinkTypeID = %d" % ( int(linkid), int(linktype) )) defvid = 0 if existingvid == 0 and utils.df_ki(data, "linktype") == MEDIATYPE_VIDEO_LINK: defvid = 1 mediaid = db.get_id(dbo, "media") url = utils.df_ks(data, "linktarget") if url.find("://") == -1: url = "http://" + url sql = db.make_insert_sql( "media", (("ID", db.di(mediaid)), ("MediaName", db.ds(url)), ("MediaType", utils.df_s(data, "linktype")), ("MediaNotes", utils.df_t(data, "comments")), ("WebsitePhoto", db.di(0)), ("WebsiteVideo", db.di(defvid)), ("DocPhoto", db.di(0)), ("ExcludeFromPublish", db.di(0)), ("NewSinceLastPublish", db.di(1)), ("UpdatedSinceLastPublish", db.di(0)), ("LinkID", db.di(linkid)), ("LinkTypeID", db.di(linktype)), ("Date", db.nowsql()))) db.execute(dbo, sql) audit.create( dbo, username, "media", str(mediaid) + ": for " + str(linkid) + "/" + str(linktype) + ": link to " + utils.df_ks(data, "linktarget"))
def update_vaccination_from_form(dbo, username, data): """ Updates a vaccination record from posted form data """ l = dbo.locale vaccid = utils.df_ki(data, "vaccid") if utils.df_kd(data, "required", l) is None: raise utils.ASMValidationError( _("Required date must be a valid date", l)) sql = db.make_update_user_sql( dbo, "animalvaccination", username, "ID=%d" % vaccid, (("AnimalID", db.di(utils.df_ki(data, "animal"))), ("VaccinationID", utils.df_s(data, "type")), ("DateOfVaccination", utils.df_d(data, "given", l)), ("DateRequired", utils.df_d(data, "required", l)), ("Cost", utils.df_m(data, "cost", l)), ("Comments", utils.df_t(data, "comments")))) preaudit = db.query( dbo, "SELECT * FROM animalvaccination WHERE ID = %d" % vaccid) db.execute(dbo, sql) postaudit = db.query( dbo, "SELECT * FROM animalvaccination WHERE ID = %d" % vaccid) audit.edit(dbo, username, "animalvaccination", audit.map_diff(preaudit, postaudit))
def update_regimen_from_form(dbo, username, data): """ Updates a regimen record from posted form data """ l = dbo.locale regimenid = utils.df_ki(data, "regimenid") if utils.df_ks(data, "treatmentname") == "": raise utils.ASMValidationError(_("Treatment name cannot be blank", l)) sql = db.make_update_user_sql( dbo, "animalmedical", username, "ID=%d" % regimenid, (("TreatmentName", utils.df_t(data, "treatmentname")), ("Dosage", utils.df_t(data, "dosage")), ("Status", utils.df_s(data, "status")), ("Cost", utils.df_m(data, "cost", l)), ("Comments", utils.df_t(data, "comments")))) preaudit = db.query(dbo, "SELECT * FROM animalmedical WHERE ID=%d" % regimenid) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM animalmedical WHERE ID=%d" % regimenid) audit.edit( dbo, username, "animalmedical", audit.map_diff(preaudit, postaudit, ["TREATMENTNAME", "DOSAGE"])) update_medical_treatments(dbo, username, utils.df_ki(data, "regimenid"))
def insert_diarytaskdetail_from_form(dbo, username, data): """ Creates a diary task detail from form data """ nid = db.get_id(dbo, "diarytaskdetail") sql = db.make_insert_sql("diarytaskdetail", ( ( "ID", db.di(nid)), ( "DiaryTaskHeadID", utils.df_s(data, "taskid")), ( "DayPivot", utils.df_s(data, "pivot")), ( "WhoFor", utils.df_t(data, "for")), ( "Subject", utils.df_t(data, "subject")), ( "Note", utils.df_t(data, "note")), ( "RecordVersion", db.di(0)) )) db.execute(dbo, sql) audit.create(dbo, username, "diarytaskdetail", str(nid)) return nid
def update_waitinglist_from_form(dbo, data, username): """ Updates a waiting list record from the screen data: The webpy data object containing form parameters """ l = dbo.locale wlid = utils.df_ki(data, "id") if utils.df_ks(data, "description") == "": raise utils.ASMValidationError(_("Description cannot be blank", l)) if utils.df_ki(data, "owner") == "0": raise utils.ASMValidationError( _("Waiting list entries must have a contact", l)) if utils.df_ks(data, "dateputon") == "": raise utils.ASMValidationError(_("Date put on cannot be blank", l)) preaudit = db.query(dbo, "SELECT * FROM animalwaitinglist WHERE ID = %d" % wlid) db.execute( dbo, db.make_update_user_sql( dbo, "animalwaitinglist", username, "ID=%d" % wlid, (("SpeciesID", utils.df_s(data, "species")), ("DatePutOnList", utils.df_d(data, "dateputon", l)), ("OwnerID", utils.df_s(data, "owner")), ("AnimalDescription", utils.df_t(data, "description")), ("ReasonForWantingToPart", utils.df_t(data, "reasonforwantingtopart")), ("CanAffordDonation", utils.df_c(data, "canafforddonation")), ("Urgency", utils.df_s(data, "urgency")), ("DateRemovedFromList", utils.df_d(data, "dateremoved", l)), ("AutoRemovePolicy", utils.df_s(data, "autoremovepolicy")), ("DateOfLastOwnerContact", utils.df_d(data, "dateoflastownercontact", l)), ("ReasonForRemoval", utils.df_t(data, "reasonforremoval")), ("Comments", utils.df_t(data, "comments"))))) additional.save_values_for_link(dbo, data, wlid, "waitinglist") postaudit = db.query( dbo, "SELECT * FROM animalwaitinglist WHERE ID = %d" % wlid) audit.edit(dbo, username, "animalwaitinglist", audit.map_diff(preaudit, postaudit))
def insert_waitinglist_from_form(dbo, data, username): """ Creates a waiting list record from the screen data: The webpy data object containing form parameters """ l = dbo.locale if utils.df_ks(data, "description") == "": raise utils.ASMValidationError(_("Description cannot be blank", l)) if utils.df_ki(data, "owner") == "0": raise utils.ASMValidationError( _("Waiting list entries must have a contact", l)) if utils.df_ks(data, "dateputon") == "": raise utils.ASMValidationError(_("Date put on cannot be blank", l)) nwlid = db.get_id(dbo, "animalwaitinglist") db.execute( dbo, db.make_insert_user_sql( dbo, "animalwaitinglist", username, (("ID", db.di(nwlid)), ("SpeciesID", utils.df_s(data, "species")), ("DatePutOnList", utils.df_d(data, "dateputon", l)), ("OwnerID", utils.df_s(data, "owner")), ("AnimalDescription", utils.df_t(data, "description")), ("ReasonForWantingToPart", utils.df_t(data, "reasonforwantingtopart")), ("CanAffordDonation", utils.df_c(data, "canafforddonation")), ("Urgency", utils.df_s(data, "urgency")), ("DateRemovedFromList", utils.df_d(data, "dateremoved", l)), ("AutoRemovePolicy", utils.df_s(data, "autoremovepolicy")), ("DateOfLastOwnerContact", db.dd(now(dbo.timezone))), ("ReasonForRemoval", utils.df_t(data, "reasonforremoval")), ("Comments", utils.df_t(data, "comments")), ("UrgencyLastUpdatedDate", db.dd(now(dbo.timezone))), ("UrgencyUpdateDate", db.dd( add_days( now(dbo.timezone), configuration.waiting_list_urgency_update_period(dbo))) )))) audit.create(dbo, username, "animalwaitinglist", str(nwlid)) return nwlid
def update_diarytaskhead_from_form(dbo, username, data): """ Updates a diary task header from form data """ tid = utils.df_ki(data, "diarytaskid") sql = db.make_update_sql("diarytaskhead", "ID=%d" % tid, (("Name", utils.df_t(data, "name")), ("RecordType", utils.df_s(data, "type")))) preaudit = db.query(dbo, "SELECT * FROM diarytaskhead WHERE ID=%d" % tid) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM diarytaskhead WHERE ID=%d" % tid) audit.edit(dbo, username, "diarytaskhead", audit.map_diff(preaudit, postaudit))
def insert_diarytaskhead_from_form(dbo, username, data): """ Creates a diary task header from form data """ nid = db.get_id(dbo, "diarytaskhead") sql = db.make_insert_sql("diarytaskhead", (("ID", db.di(nid)), ("Name", utils.df_t(data, "name")), ("RecordType", utils.df_s(data, "type")), ("RecordVersion", db.di(0)))) db.execute(dbo, sql) audit.create(dbo, username, "diarytaskhead", str(nid)) return nid
def update_diarytaskhead_from_form(dbo, username, data): """ Updates a diary task header from form data """ tid = utils.df_ki(data, "diarytaskid") sql = db.make_update_sql("diarytaskhead", "ID=%d" % tid, ( ( "Name", utils.df_t(data, "name")), ( "RecordType", utils.df_s(data, "type")) )) preaudit = db.query(dbo, "SELECT * FROM diarytaskhead WHERE ID=%d" % tid) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM diarytaskhead WHERE ID=%d" % tid) audit.edit(dbo, username, "diarytaskhead", audit.map_diff(preaudit, postaudit))
def update_movement_from_form(dbo, username, data): """ Updates a movement record from posted form data """ validate_movement_form_data(dbo, data) l = dbo.locale movementid = utils.df_ki(data, "movementid") sql = db.make_update_user_sql( dbo, "adoption", username, "ID=%d" % movementid, (("AdoptionNumber", utils.df_t(data, "adoptionno")), ("OwnerID", db.di(utils.df_ki(data, "person"))), ("RetailerID", db.di(utils.df_ki(data, "retailer"))), ("AnimalID", db.di(utils.df_ki(data, "animal"))), ("OriginalRetailerMovementID", db.di(utils.df_ki(data, "originalretailermovement"))), ("MovementDate", utils.df_d(data, "movementdate", l)), ("MovementType", utils.df_s(data, "type")), ("ReturnDate", utils.df_d(data, "returndate", l)), ("ReturnedReasonID", utils.df_s(data, "returncategory")), ("Donation", utils.df_m(data, "donation", l)), ("InsuranceNumber", utils.df_t(data, "insurance")), ("ReasonForReturn", utils.df_t(data, "reason")), ("ReservationDate", utils.df_d(data, "reservationdate", l)), ("ReservationCancelledDate", utils.df_d(data, "reservationcancelled", l)), ("IsTrial", utils.df_c(data, "trial")), ("IsPermanentFoster", utils.df_c(data, "permanentfoster")), ("TrialEndDate", utils.df_d(data, "trialenddate", l)), ("Comments", utils.df_t(data, "comments")))) preaudit = db.query(dbo, "SELECT * FROM adoption WHERE ID = %d" % movementid) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM adoption WHERE ID = %d" % movementid) audit.edit(dbo, username, "adoption", audit.map_diff(preaudit, postaudit)) animal.update_animal_status(dbo, utils.df_ki(data, "animal")) animal.update_variable_animal_data(dbo, utils.df_ki(data, "animal")) update_movement_donation(dbo, movementid)
def insert_diarytaskhead_from_form(dbo, username, data): """ Creates a diary task header from form data """ nid = db.get_id(dbo, "diarytaskhead") sql = db.make_insert_sql("diarytaskhead", ( ( "ID", db.di(nid)), ( "Name", utils.df_t(data, "name")), ( "RecordType", utils.df_s(data, "type")), ( "RecordVersion", db.di(0)) )) db.execute(dbo, sql) audit.create(dbo, username, "diarytaskhead", str(nid)) return nid
def insert_test_from_form(dbo, username, data): """ Creates a test record from posted form data """ l = dbo.locale if utils.df_kd(data, "required", l) is None: raise utils.ASMValidationError( _("Required date must be a valid date", l)) ntestid = db.get_id(dbo, "animaltest") sql = db.make_insert_user_sql( dbo, "animaltest", username, (("ID", db.di(ntestid)), ("AnimalID", db.di(utils.df_ki( data, "animal"))), ("TestTypeID", utils.df_s(data, "type")), ("TestResultID", utils.df_s(data, "result")), ("DateOfTest", utils.df_d(data, "given", l)), ("DateRequired", utils.df_d(data, "required", l)), ("Cost", utils.df_m(data, "cost", l)), ("Comments", utils.df_t(data, "comments")))) db.execute(dbo, sql) audit.create(dbo, username, "animaltest", str(ntestid)) # ASM2_COMPATIBILITY update_asm2_tests(dbo, ntestid) return ntestid
def insert_test_from_form(dbo, username, data): """ Creates a test record from posted form data """ l = dbo.locale if utils.df_kd(data, "required", l) is None: raise utils.ASMValidationError(_("Required date must be a valid date", l)) ntestid = db.get_id(dbo, "animaltest") sql = db.make_insert_user_sql(dbo, "animaltest", username, ( ( "ID", db.di(ntestid)), ( "AnimalID", db.di(utils.df_ki(data, "animal"))), ( "TestTypeID", utils.df_s(data, "type")), ( "TestResultID", utils.df_s(data, "result")), ( "DateOfTest", utils.df_d(data, "given", l)), ( "DateRequired", utils.df_d(data, "required", l)), ( "Cost", utils.df_m(data, "cost", l)), ( "Comments", utils.df_t(data, "comments")) )) db.execute(dbo, sql) audit.create(dbo, username, "animaltest", str(ntestid)) # ASM2_COMPATIBILITY update_asm2_tests(dbo, ntestid) return ntestid
def update_test_from_form(dbo, username, data): """ Updates a test record from posted form data """ l = dbo.locale testid = utils.df_ki(data, "testid") if utils.df_kd(data, "required", l) is None: raise utils.ASMValidationError(_("Required date must be a valid date", l)) sql = db.make_update_user_sql(dbo, "animaltest", username, "ID=%d" % testid, ( ( "AnimalID", db.di(utils.df_ki(data, "animal"))), ( "TestTypeID", utils.df_s(data, "type")), ( "TestResultID", utils.df_s(data, "result")), ( "DateOfTest", utils.df_d(data, "given", l)), ( "DateRequired", utils.df_d(data, "required", l)), ( "Cost", utils.df_m(data, "cost", l)), ( "Comments", utils.df_t(data, "comments")) )) preaudit = db.query(dbo, "SELECT * FROM animaltest WHERE ID = %d" % testid) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM animaltest WHERE ID = %d" % testid) audit.edit(dbo, username, "animaltest", audit.map_diff(preaudit, postaudit)) # ASM2_COMPATIBILITY update_asm2_tests(dbo, testid)
def update_diarytaskdetail_from_form(dbo, username, data): """ Updates a diary task detail from form data """ did = utils.df_ki(data, "diarytaskdetailid") sql = db.make_update_sql("diarytaskdetail", "ID=%d" % did, ( ( "DayPivot", utils.df_s(data, "pivot")), ( "WhoFor", utils.df_t(data, "for")), ( "Subject", utils.df_t(data, "subject")), ( "Note", utils.df_t(data, "note")) )) preaudit = db.query(dbo, "SELECT * FROM diarytaskdetail WHERE ID=%d" % did) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM diarytaskdetail WHERE ID=%d" % did) audit.edit(dbo, username, "diarytaskhead", audit.map_diff(preaudit, postaudit))
def update_diarytaskdetail_from_form(dbo, username, data): """ Updates a diary task detail from form data """ did = utils.df_ki(data, "diarytaskdetailid") sql = db.make_update_sql("diarytaskdetail", "ID=%d" % did, (("DayPivot", utils.df_s(data, "pivot")), ("WhoFor", utils.df_t(data, "for")), ("Subject", utils.df_t(data, "subject")), ("Note", utils.df_t(data, "note")))) preaudit = db.query(dbo, "SELECT * FROM diarytaskdetail WHERE ID=%d" % did) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM diarytaskdetail WHERE ID=%d" % did) audit.edit(dbo, username, "diarytaskhead", audit.map_diff(preaudit, postaudit))
def update_log_from_form(dbo, username, data): """ Updates a log from form data """ l = dbo.locale logid = utils.df_ki(data, "logid") if utils.df_kd(data, "logdate", l) is None: raise utils.ASMValidationError(i18n._("Log date must be a valid date", l)) sql = db.make_update_user_sql(dbo, "log", username, "ID=%d" % logid, ( ( "LogTypeID", utils.df_s(data, "type")), ( "Date", utils.df_d(data, "logdate", l) ), ( "Comments", utils.df_t(data, "entry") ) )) preaudit = db.query(dbo, "SELECT * FROM log WHERE ID=%d" % logid) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM log WHERE ID=%d" % logid) audit.edit(dbo, username, "log", audit.map_diff(preaudit, postaudit))
def update_voucher_from_form(dbo, username, data): """ Updates a voucher record from posted form data """ l = dbo.locale voucherid = utils.df_ki(data, "voucherid") sql = db.make_update_user_sql(dbo, "ownervoucher", username, "ID=%d" % voucherid, ( ( "VoucherID", utils.df_s(data, "type")), ( "DateIssued", utils.df_d(data, "issued", l)), ( "DateExpired", utils.df_d(data, "expires", l)), ( "Value", utils.df_m(data, "amount", l)), ( "Comments", utils.df_t(data, "comments")) )) preaudit = db.query(dbo, "SELECT * FROM ownervoucher WHERE ID = %d" % voucherid) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM ownervoucher WHERE ID = %d" % voucherid) audit.edit(dbo, username, "ownervoucher", audit.map_diff(preaudit, postaudit))
def insert_voucher_from_form(dbo, username, data): """ Creates a voucher record from posted form data """ l = dbo.locale voucherid = db.get_id(dbo, "ownervoucher") sql = db.make_insert_user_sql( dbo, "ownervoucher", username, (("ID", db.di(voucherid)), ("OwnerID", db.di(utils.df_ki(data, "personid"))), ("VoucherID", utils.df_s(data, "type")), ("DateIssued", utils.df_d(data, "issued", l)), ("DateExpired", utils.df_d(data, "expires", l)), ("Value", utils.df_m(data, "amount", l)), ("Comments", utils.df_t(data, "comments")))) db.execute(dbo, sql) audit.create(dbo, username, "ownervoucher", str(voucherid)) return voucherid
def insert_voucher_from_form(dbo, username, data): """ Creates a voucher record from posted form data """ l = dbo.locale voucherid = db.get_id(dbo, "ownervoucher") sql = db.make_insert_user_sql(dbo, "ownervoucher", username, ( ( "ID", db.di(voucherid)), ( "OwnerID", db.di(utils.df_ki(data, "personid"))), ( "VoucherID", utils.df_s(data, "type")), ( "DateIssued", utils.df_d(data, "issued", l)), ( "DateExpired", utils.df_d(data, "expires", l)), ( "Value", utils.df_m(data, "amount", l)), ( "Comments", utils.df_t(data, "comments")) )) db.execute(dbo, sql) audit.create(dbo, username, "ownervoucher", str(voucherid)) return voucherid
def update_profile_from_form(dbo, username, data): """ Updates a profile record from posted form data """ l = dbo.locale profileid = utils.df_ki(data, "profileid") if utils.df_ks(data, "treatmentname") == "": raise utils.ASMValidationError(_("Treatment name cannot be blank", l)) if utils.df_ks(data, "profilename") == "": raise utils.ASMValidationError(_("Profile name cannot be blank", l)) timingrule = utils.df_ki(data, "timingrule") timingrulenofrequencies = utils.df_ki(data, "timingrulenofrequencies") timingrulefrequency = utils.df_ki(data, "timingrulefrequency") totalnumberoftreatments = utils.df_ki(data, "totalnumberoftreatments") treatmentrule = utils.df_ki(data, "treatmentrule") singlemulti = utils.df_ki(data, "singlemulti") if singlemulti == 0: timingrule = 0 timingrulenofrequencies = 0 timingrulefrequency = 0 if treatmentrule != 0: totalnumberoftreatments = 0 sql = db.make_update_user_sql( dbo, "medicalprofile", username, "ID=%d" % profileid, (("ProfileName", utils.df_t(data, "profilename")), ("TreatmentName", utils.df_t(data, "treatmentname")), ("Dosage", utils.df_t(data, "dosage")), ("Cost", utils.df_m(data, "cost", l)), ("TimingRule", db.di(timingrule)), ("TimingRuleFrequency", db.di(timingrulefrequency)), ("TimingRuleNoFrequencies", db.di(timingrulenofrequencies)), ("TreatmentRule", utils.df_s(data, "treatmentrule")), ("TotalNumberOfTreatments", db.di(totalnumberoftreatments)), ("Comments", utils.df_t(data, "comments")))) preaudit = db.query(dbo, "SELECT * FROM medicalprofile WHERE ID=%d" % profileid) db.execute(dbo, sql) postaudit = db.query( dbo, "SELECT * FROM medicalprofile WHERE ID=%d" % profileid) audit.edit( dbo, username, "medicalprofile", audit.map_diff(preaudit, postaudit, ["TREATMENTNAME", "DOSAGE"]))
def update_voucher_from_form(dbo, username, data): """ Updates a voucher record from posted form data """ l = dbo.locale voucherid = utils.df_ki(data, "voucherid") sql = db.make_update_user_sql( dbo, "ownervoucher", username, "ID=%d" % voucherid, (("VoucherID", utils.df_s(data, "type")), ("DateIssued", utils.df_d(data, "issued", l)), ("DateExpired", utils.df_d(data, "expires", l)), ("Value", utils.df_m(data, "amount", l)), ("Comments", utils.df_t(data, "comments")))) preaudit = db.query(dbo, "SELECT * FROM ownervoucher WHERE ID = %d" % voucherid) db.execute(dbo, sql) postaudit = db.query( dbo, "SELECT * FROM ownervoucher WHERE ID = %d" % voucherid) audit.edit(dbo, username, "ownervoucher", audit.map_diff(preaudit, postaudit))
def insert_profile_from_form(dbo, username, data): """ Creates a profile record from posted form data """ l = dbo.locale if utils.df_ks(data, "treatmentname") == "": raise utils.ASMValidationError(_("Treatment name cannot be blank", l)) if utils.df_ks(data, "profilename") == "": raise utils.ASMValidationError(_("Profile name cannot be blank", l)) nprofid = db.get_id(dbo, "medicalprofile") timingrule = utils.df_ki(data, "timingrule") timingrulenofrequencies = utils.df_ki(data, "timingrulenofrequencies") timingrulefrequency = utils.df_ki(data, "timingrulefrequency") totalnumberoftreatments = utils.df_ki(data, "totalnumberoftreatments") treatmentrule = utils.df_ki(data, "treatmentrule") singlemulti = utils.df_ki(data, "singlemulti") if singlemulti == 0: timingrule = 0 timingrulenofrequencies = 0 timingrulefrequency = 0 if treatmentrule != 0: totalnumberoftreatments = 0 sql = db.make_insert_user_sql( dbo, "medicalprofile", username, (("ID", db.di(nprofid)), ("ProfileName", utils.df_t(data, "profilename")), ("TreatmentName", utils.df_t(data, "treatmentname")), ("Dosage", utils.df_t(data, "dosage")), ("Cost", utils.df_m(data, "cost", l)), ("TimingRule", db.di(timingrule)), ("TimingRuleFrequency", db.di(timingrulefrequency)), ("TimingRuleNoFrequencies", db.di(timingrulenofrequencies)), ("TreatmentRule", utils.df_s(data, "treatmentrule")), ("TotalNumberOfTreatments", db.di(totalnumberoftreatments)), ("Comments", utils.df_t(data, "comments")))) db.execute(dbo, sql) audit.create( dbo, username, "medicalprofile", str(nprofid) + ": " + utils.df_ks(data, "treatmentname") + " " + utils.df_ks(data, "dosage"))
def insert_vaccination_from_form(dbo, username, data): """ Creates a vaccination record from posted form data """ l = dbo.locale if utils.df_kd(data, "required", l) is None: raise utils.ASMValidationError(_("Required date must be a valid date", l)) nvaccid = db.get_id(dbo, "animalvaccination") sql = db.make_insert_user_sql(dbo, "animalvaccination", username, ( ( "ID", db.di(nvaccid)), ( "AnimalID", db.di(utils.df_ki(data, "animal"))), ( "VaccinationID", utils.df_s(data, "type")), ( "DateOfVaccination", utils.df_d(data, "given", l)), ( "DateRequired", utils.df_d(data, "required", l)), ( "Cost", utils.df_m(data, "cost", l)), ( "Comments", utils.df_t(data, "comments")) )) db.execute(dbo, sql) audit.create(dbo, username, "animalvaccination", str(nvaccid)) return nvaccid
def update_regimen_from_form(dbo, username, data): """ Updates a regimen record from posted form data """ l = dbo.locale regimenid = utils.df_ki(data, "regimenid") if utils.df_ks(data, "treatmentname") == "": raise utils.ASMValidationError(_("Treatment name cannot be blank", l)) sql = db.make_update_user_sql(dbo, "animalmedical", username, "ID=%d" % regimenid, ( ( "TreatmentName", utils.df_t(data, "treatmentname")), ( "Dosage", utils.df_t(data, "dosage")), ( "Status", utils.df_s(data, "status")), ( "Cost", utils.df_m(data, "cost", l)), ( "Comments", utils.df_t(data, "comments")) )) preaudit = db.query(dbo, "SELECT * FROM animalmedical WHERE ID=%d" % regimenid) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM animalmedical WHERE ID=%d" % regimenid) audit.edit(dbo, username, "animalmedical", audit.map_diff(preaudit, postaudit, [ "TREATMENTNAME", "DOSAGE" ])) update_medical_treatments(dbo, username, utils.df_ki(data, "regimenid"))
def update_vaccination_from_form(dbo, username, data): """ Updates a vaccination record from posted form data """ l = dbo.locale vaccid = utils.df_ki(data, "vaccid") if utils.df_kd(data, "required", l) is None: raise utils.ASMValidationError(_("Required date must be a valid date", l)) sql = db.make_update_user_sql(dbo, "animalvaccination", username, "ID=%d" % vaccid, ( ( "AnimalID", db.di(utils.df_ki(data, "animal"))), ( "VaccinationID", utils.df_s(data, "type")), ( "DateOfVaccination", utils.df_d(data, "given", l)), ( "DateRequired", utils.df_d(data, "required", l)), ( "Cost", utils.df_m(data, "cost", l)), ( "Comments", utils.df_t(data, "comments")) )) preaudit = db.query(dbo, "SELECT * FROM animalvaccination WHERE ID = %d" % vaccid) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM animalvaccination WHERE ID = %d" % vaccid) audit.edit(dbo, username, "animalvaccination", audit.map_diff(preaudit, postaudit))
def insert_vaccination_from_form(dbo, username, data): """ Creates a vaccination record from posted form data """ l = dbo.locale if utils.df_kd(data, "required", l) is None: raise utils.ASMValidationError( _("Required date must be a valid date", l)) nvaccid = db.get_id(dbo, "animalvaccination") sql = db.make_insert_user_sql( dbo, "animalvaccination", username, (("ID", db.di(nvaccid)), ("AnimalID", db.di(utils.df_ki( data, "animal"))), ("VaccinationID", utils.df_s(data, "type")), ("DateOfVaccination", utils.df_d(data, "given", l)), ("DateRequired", utils.df_d(data, "required", l)), ("Cost", utils.df_m(data, "cost", l)), ("Comments", utils.df_t(data, "comments")))) db.execute(dbo, sql) audit.create(dbo, username, "animalvaccination", str(nvaccid)) return nvaccid
def update_profile_from_form(dbo, username, data): """ Updates a profile record from posted form data """ l = dbo.locale profileid = utils.df_ki(data, "profileid") if utils.df_ks(data, "treatmentname") == "": raise utils.ASMValidationError(_("Treatment name cannot be blank", l)) if utils.df_ks(data, "profilename") == "": raise utils.ASMValidationError(_("Profile name cannot be blank", l)) timingrule = utils.df_ki(data, "timingrule") timingrulenofrequencies = utils.df_ki(data, "timingrulenofrequencies") timingrulefrequency = utils.df_ki(data, "timingrulefrequency") totalnumberoftreatments = utils.df_ki(data, "totalnumberoftreatments") treatmentrule = utils.df_ki(data, "treatmentrule") singlemulti = utils.df_ki(data, "singlemulti") if singlemulti == 0: timingrule = 0 timingrulenofrequencies = 0 timingrulefrequency = 0 if treatmentrule != 0: totalnumberoftreatments = 0 sql = db.make_update_user_sql(dbo, "medicalprofile", username, "ID=%d" % profileid, ( ( "ProfileName", utils.df_t(data, "profilename")), ( "TreatmentName", utils.df_t(data, "treatmentname")), ( "Dosage", utils.df_t(data, "dosage")), ( "Cost", utils.df_m(data, "cost", l)), ( "TimingRule", db.di(timingrule)), ( "TimingRuleFrequency", db.di(timingrulefrequency)), ( "TimingRuleNoFrequencies", db.di(timingrulenofrequencies)), ( "TreatmentRule", utils.df_s(data, "treatmentrule")), ( "TotalNumberOfTreatments", db.di(totalnumberoftreatments)), ( "Comments", utils.df_t(data, "comments")) )) preaudit = db.query(dbo, "SELECT * FROM medicalprofile WHERE ID=%d" % profileid) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM medicalprofile WHERE ID=%d" % profileid) audit.edit(dbo, username, "medicalprofile", audit.map_diff(preaudit, postaudit, [ "TREATMENTNAME", "DOSAGE" ]))
def insert_log_from_form(dbo, username, linktypeid, linkid, data): """ Creates a log from the form data username: User creating the diary linktypeid, linkid: The link data: The web.py form object """ l = dbo.locale if utils.df_kd(data, "logdate", l) is None: raise utils.ASMValidationError(i18n._("Log date must be a valid date", l)) logid = db.get_id(dbo, "log") sql = db.make_insert_user_sql(dbo, "log", username, ( ( "ID", db.di(logid)), ( "LogTypeID", utils.df_s(data, "type")), ( "LinkID", db.di(linkid) ), ( "LinkType", db.di(linktypeid) ), ( "Date", utils.df_d(data, "logdate", l) ), ( "Comments", utils.df_t(data, "entry") ) )) db.execute(dbo, sql) audit.create(dbo, username, "log", str(logid)) return logid
def insert_profile_from_form(dbo, username, data): """ Creates a profile record from posted form data """ l = dbo.locale if utils.df_ks(data, "treatmentname") == "": raise utils.ASMValidationError(_("Treatment name cannot be blank", l)) if utils.df_ks(data, "profilename") == "": raise utils.ASMValidationError(_("Profile name cannot be blank", l)) nprofid = db.get_id(dbo, "medicalprofile") timingrule = utils.df_ki(data, "timingrule") timingrulenofrequencies = utils.df_ki(data, "timingrulenofrequencies") timingrulefrequency = utils.df_ki(data, "timingrulefrequency") totalnumberoftreatments = utils.df_ki(data, "totalnumberoftreatments") treatmentrule = utils.df_ki(data, "treatmentrule") singlemulti = utils.df_ki(data, "singlemulti") if singlemulti == 0: timingrule = 0 timingrulenofrequencies = 0 timingrulefrequency = 0 if treatmentrule != 0: totalnumberoftreatments = 0 sql = db.make_insert_user_sql(dbo, "medicalprofile", username, ( ( "ID", db.di(nprofid)), ( "ProfileName", utils.df_t(data, "profilename")), ( "TreatmentName", utils.df_t(data, "treatmentname")), ( "Dosage", utils.df_t(data, "dosage")), ( "Cost", utils.df_m(data, "cost", l)), ( "TimingRule", db.di(timingrule)), ( "TimingRuleFrequency", db.di(timingrulefrequency)), ( "TimingRuleNoFrequencies", db.di(timingrulenofrequencies)), ( "TreatmentRule", utils.df_s(data, "treatmentrule")), ( "TotalNumberOfTreatments", db.di(totalnumberoftreatments)), ( "Comments", utils.df_t(data, "comments")) )) db.execute(dbo, sql) audit.create(dbo, username, "medicalprofile", str(nprofid) + ": " + utils.df_ks(data, "treatmentname") + " " + utils.df_ks(data, "dosage"))
def update_person_from_form(dbo, data, username): """ Updates an existing person record from incoming form data data: The webpy data object containing form parameters """ l = dbo.locale pid = utils.df_ki(data, "id") flags = utils.df_ks(data, "flags").split(",") def bi(b): return b and 1 or 0 homechecked = bi("homechecked" in flags) banned = bi("banned" in flags) volunteer = bi("volunteer" in flags) member = bi("member" in flags) homechecker = bi("homechecker" in flags) donor = bi("donor" in flags) shelter = bi("shelter" in flags) aco = bi("aco" in flags) staff = bi("staff" in flags) fosterer = bi("fosterer" in flags) retailer = bi("retailer" in flags) vet = bi("vet" in flags) giftaid = bi("giftaid" in flags) flagstr = "|".join(flags) + "|" sql = db.make_update_user_sql( dbo, "owner", username, "ID=%d" % pid, (("OwnerName", db.ds("%s %s %s" % (utils.df_ks(data, "title"), utils.df_ks( data, "forenames"), utils.df_ks(data, "surname")))), ("OwnerTitle", utils.df_t(data, "title")), ("OwnerInitials", utils.df_t(data, "initials")), ("OwnerForenames", utils.df_t(data, "forenames")), ("OwnerSurname", utils.df_t(data, "surname")), ("OwnerAddress", utils.df_t(data, "address")), ("OwnerTown", utils.df_t(data, "town")), ("OwnerCounty", utils.df_t(data, "county")), ("OwnerPostcode", utils.df_t(data, "postcode")), ("LatLong", utils.df_t(data, "latlong")), ("HomeTelephone", utils.df_t(data, "hometelephone")), ("WorkTelephone", utils.df_t(data, "worktelephone")), ("MobileTelephone", utils.df_t(data, "mobiletelephone")), ("EmailAddress", utils.df_t( data, "email")), ("IDCheck", db.di(homechecked)), ("Comments", utils.df_t(data, "comments")), ("IsBanned", db.di(banned)), ("IsVolunteer", db.di(volunteer)), ("IsMember", db.di(member)), ("MembershipExpiryDate", utils.df_d(data, "membershipexpires", l)), ("MembershipNumber", utils.df_t(data, "membershipnumber")), ("IsHomeChecker", db.di(homechecker)), ("IsDonor", db.di(donor)), ("IsShelter", db.di(shelter)), ("IsACO", db.di(aco)), ("IsStaff", db.di(staff)), ("IsFosterer", db.di(fosterer)), ("IsRetailer", db.di(retailer)), ("IsVet", db.di(vet)), ("IsGiftAid", db.di(giftaid)), ("AdditionalFlags", db.ds(flagstr)), ("HomeCheckAreas", utils.df_t(data, "areas")), ("DateLastHomeChecked", utils.df_d(data, "homechecked", l)), ("HomeCheckedBy", utils.df_s(data, "homecheckedby")), ("MatchActive", utils.df_s(data, "matchactive")), ("MatchAdded", utils.df_d(data, "matchadded", l)), ("MatchExpires", utils.df_d(data, "matchexpires", l)), ("MatchSex", utils.df_s( data, "matchsex")), ("MatchSize", utils.df_s(data, "matchsize")), ("MatchColour", utils.df_s(data, "matchcolour")), ("MatchAgeFrom", utils.df_s(data, "agedfrom")), ("MatchAgeTo", utils.df_s( data, "agedto")), ("MatchAnimalType", utils.df_s( data, "matchtype")), ("MatchSpecies", utils.df_s(data, "matchspecies")), ("MatchBreed", utils.df_s( data, "matchbreed1")), ("MatchBreed2", utils.df_s(data, "matchbreed2")), ("MatchGoodWithCats", utils.df_s(data, "matchgoodwithcats")), ("MatchGoodWithDogs", utils.df_s(data, "matchgoodwithdogs")), ("MatchGoodWithChildren", utils.df_s(data, "matchgoodwithchildren")), ("MatchHouseTrained", utils.df_s(data, "matchhousetrained")), ("MatchCommentsContain", utils.df_t(data, "commentscontain")))) preaudit = db.query(dbo, "SELECT * FROM owner WHERE ID=%d" % pid) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM owner WHERE ID=%d" % pid) audit.edit(dbo, username, "owner", audit.map_diff(preaudit, postaudit, [ "OWNERNAME", ])) # Save any additional field values given additional.save_values_for_link(dbo, data, pid, "person")
def update_person_from_form(dbo, data, username): """ Updates an existing person record from incoming form data data: The webpy data object containing form parameters """ l = dbo.locale pid = utils.df_ki(data, "id") flags = utils.df_ks(data, "flags").split(",") def bi(b): return b and 1 or 0 homechecked = bi("homechecked" in flags) banned = bi("banned" in flags) volunteer = bi("volunteer" in flags) member = bi("member" in flags) homechecker = bi("homechecker" in flags) donor = bi("donor" in flags) shelter = bi("shelter" in flags) aco = bi("aco" in flags) staff = bi("staff" in flags) fosterer = bi("fosterer" in flags) retailer = bi("retailer" in flags) vet = bi("vet" in flags) giftaid = bi("giftaid" in flags) flagstr = "|".join(flags) + "|" sql = db.make_update_user_sql(dbo, "owner", username, "ID=%d" % pid, ( ( "OwnerName", db.ds("%s %s %s" % ( utils.df_ks(data, "title"), utils.df_ks(data, "forenames"), utils.df_ks(data, "surname") ))), ( "OwnerTitle", utils.df_t(data, "title")), ( "OwnerInitials", utils.df_t(data, "initials")), ( "OwnerForenames", utils.df_t(data, "forenames")), ( "OwnerSurname", utils.df_t(data, "surname")), ( "OwnerAddress", utils.df_t(data, "address")), ( "OwnerTown", utils.df_t(data, "town")), ( "OwnerCounty", utils.df_t(data, "county")), ( "OwnerPostcode", utils.df_t(data, "postcode")), ( "LatLong", utils.df_t(data, "latlong")), ( "HomeTelephone", utils.df_t(data, "hometelephone")), ( "WorkTelephone", utils.df_t(data, "worktelephone")), ( "MobileTelephone", utils.df_t(data, "mobiletelephone")), ( "EmailAddress", utils.df_t(data, "email")), ( "IDCheck", db.di(homechecked) ), ( "Comments", utils.df_t(data, "comments")), ( "IsBanned", db.di(banned)), ( "IsVolunteer", db.di(volunteer)), ( "IsMember", db.di(member)), ( "MembershipExpiryDate", utils.df_d(data, "membershipexpires", l)), ( "MembershipNumber", utils.df_t(data, "membershipnumber")), ( "IsHomeChecker", db.di(homechecker)), ( "IsDonor", db.di(donor)), ( "IsShelter", db.di(shelter)), ( "IsACO", db.di(aco)), ( "IsStaff", db.di(staff)), ( "IsFosterer", db.di(fosterer)), ( "IsRetailer", db.di(retailer)), ( "IsVet", db.di(vet)), ( "IsGiftAid", db.di(giftaid)), ( "AdditionalFlags", db.ds(flagstr)), ( "HomeCheckAreas", utils.df_t(data, "areas")), ( "DateLastHomeChecked", utils.df_d(data, "homechecked", l)), ( "HomeCheckedBy", utils.df_s(data, "homecheckedby")), ( "MatchActive", utils.df_s(data, "matchactive")), ( "MatchAdded", utils.df_d(data, "matchadded", l)), ( "MatchExpires", utils.df_d(data, "matchexpires", l)), ( "MatchSex", utils.df_s(data, "matchsex")), ( "MatchSize", utils.df_s(data, "matchsize")), ( "MatchColour", utils.df_s(data, "matchcolour")), ( "MatchAgeFrom", utils.df_s(data, "agedfrom")), ( "MatchAgeTo", utils.df_s(data, "agedto")), ( "MatchAnimalType", utils.df_s(data, "matchtype")), ( "MatchSpecies", utils.df_s(data, "matchspecies")), ( "MatchBreed", utils.df_s(data, "matchbreed1")), ( "MatchBreed2", utils.df_s(data, "matchbreed2")), ( "MatchGoodWithCats", utils.df_s(data, "matchgoodwithcats")), ( "MatchGoodWithDogs", utils.df_s(data, "matchgoodwithdogs")), ( "MatchGoodWithChildren", utils.df_s(data, "matchgoodwithchildren")), ( "MatchHouseTrained", utils.df_s(data, "matchhousetrained")), ( "MatchCommentsContain", utils.df_t(data, "commentscontain")) )) preaudit = db.query(dbo, "SELECT * FROM owner WHERE ID=%d" % pid) db.execute(dbo, sql) postaudit = db.query(dbo, "SELECT * FROM owner WHERE ID=%d" % pid) audit.edit(dbo, username, "owner", audit.map_diff(preaudit, postaudit, [ "OWNERNAME", ])) # Save any additional field values given additional.save_values_for_link(dbo, data, pid, "person")