online_payment
Raz 7 months ago
parent c2595cd8ed
commit dafc180b61
  1. 2
      PadelClub.xcodeproj/xcshareddata/xcschemes/PadelClub TestFlight.xcscheme
  2. 46
      PadelClub/Views/Navigation/Umpire/UmpireView.swift
  3. 5
      PadelClub/Views/Team/EditingTeamView.swift

@ -31,7 +31,7 @@
shouldAutocreateTestPlan = "YES">
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
buildConfiguration = "Release"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"

@ -23,12 +23,15 @@ struct UmpireView: View {
@State private var umpireCustomContact: String
@State private var umpireCustomMailIsInvalid: Bool = false
@State private var umpireCustomPhoneIsInvalid: Bool = false
@State private var license: String
@State private var licenseMessage: String?
@FocusState private var focusedField: CustomUser.CodingKeys?
// @State var isConnected: Bool = false
init() {
_license = .init(wrappedValue: DataStore.shared.user.licenceId ?? "")
_umpireCustomMail = State(wrappedValue: DataStore.shared.user.umpireCustomMail ?? "")
_umpireCustomPhone = State(wrappedValue: DataStore.shared.user.umpireCustomPhone ?? "")
_umpireCustomContact = State(wrappedValue: DataStore.shared.user.umpireCustomContact ?? "")
@ -82,6 +85,9 @@ struct UmpireView: View {
let currentPlayerData = dataStore.user.currentPlayerData()
Section {
if let reason = licenseMessage {
Text(reason).foregroundStyle(.logoRed)
}
if let currentPlayerData {
//todo palmares
ImportedPlayerView(player: currentPlayerData, showProgression: true)
@ -94,6 +100,12 @@ struct UmpireView: View {
RowButtonView("Ma fiche joueur", systemImage: "person.bust") {
presentSearchView = true
}
TextField("ou indiquer votre licence FFT", text: $license)
.focused($focusedField, equals: ._licenceId)
.keyboardType(.alphabet)
.textContentType(nil)
.autocorrectionDisabled()
.frame(maxWidth: .infinity)
}
} footer: {
if dataStore.user.licenceId == nil {
@ -109,6 +121,8 @@ struct UmpireView: View {
Button("Supprimer ma fiche") {
dataStore.user.licenceId = nil
self.license = ""
self.licenseMessage = nil
self.dataStore.saveUser()
}
@ -229,6 +243,7 @@ struct UmpireView: View {
// }
// }
}
.id(StoreCenter.main.isAuthenticated)
.navigationTitle("Juge-Arbitre")
.toolbar {
#if DEBUG
@ -294,9 +309,10 @@ struct UmpireView: View {
_confirmUmpirePhone()
} else if old == ._umpireCustomContact {
_confirmUmpireContact()
} else if old == ._licenceId {
_confirmlicense()
}
}
.sheet(isPresented: self.$showSubscriptions, content: {
NavigationStack {
SubscriptionView(isPresented: self.$showSubscriptions)
@ -339,8 +355,19 @@ struct UmpireView: View {
}
}
private func _confirmlicense() {
licenseMessage = nil
if license.isEmpty {
dataStore.user.licenceId = nil
} else if license.isLicenseNumber {
_updateUserLicense(license: license)
} else {
licenseMessage = "La licence n'est pas valide. N'oubliez pas d'indiquer la lettre."
}
}
private func _updateUserLicense(license: String?) {
print("_updateUserLicense(license: ", license)
guard let license else { return }
let copyUser = CustomUser(username: "", email: "", firstName: "", lastName: "", phone: nil, country: nil, loserBracketMode: .automatic)
@ -350,9 +377,11 @@ struct UmpireView: View {
Task {
do {
try await self.dataStore.userStorage.tryPutBeforeUpdating(copyUser)
print("_updateUserLicense OK")
self.license = license
self.licenseMessage = nil
} catch {
print(error)
licenseMessage = "Un problème est survenu. La licence n'a pas été sauvegardée, il se peut qu'un autre utilisateur l'ait déjà indiquée pour son compte. N'hésitez pas à nous contacter."
self.license = ""
Logger.error(error)
}
}
@ -414,9 +443,6 @@ struct UmpireView: View {
.keyboardType(.emailAddress)
.autocapitalization(.none)
.focused($focusedField, equals: ._umpireCustomMail)
.onSubmit {
_confirmUmpireMail()
}
if umpireCustomMailIsInvalid {
Text("Vous n'avez pas indiqué un email valide.").foregroundStyle(.logoRed)
}
@ -427,9 +453,6 @@ struct UmpireView: View {
.frame(maxWidth: .infinity)
.keyboardType(.phonePad)
.focused($focusedField, equals: ._umpireCustomPhone)
.onSubmit {
_confirmUmpirePhone()
}
if umpireCustomPhoneIsInvalid {
Text("Vous n'avez pas indiqué un téléphone valide.").foregroundStyle(.logoRed)
}
@ -441,9 +464,6 @@ struct UmpireView: View {
.frame(maxWidth: .infinity)
.keyboardType(.default)
.focused($focusedField, equals: ._umpireCustomContact)
.onSubmit {
_confirmUmpireContact()
}
if dataStore.user.getSummonsMessageSignature() != nil, umpireCustomContact != dataStore.user.fullName() {
Text("Attention vous avez une signature personnalisée contenant un contact différent.").foregroundStyle(.logoRed)

@ -122,10 +122,11 @@ struct EditingTeamView: View {
Text("Payé en ligne")
}
if team.hasPaidOnline() {
if let refundMessage, refundMessage.isEmpty == false {
Text(refundMessage).foregroundStyle(.logoRed)
}
if team.hasPaidOnline() {
RowButtonView("Rembourser l'équipe", role: .destructive) {
await _processRefund()
}
@ -436,7 +437,7 @@ struct EditingTeamView: View {
} catch {
await MainActor.run {
isProcessingRefund = false
refundMessage = "Erreur lors du remboursement. Veuillez réessayer."
refundMessage = "Erreur lors du remboursement. Veuillez réessayer." + "\n" + error.localizedDescription
}
}
}

Loading…
Cancel
Save