@ -24,85 +24,72 @@ struct CashierSettingsView: View {
var body : some View {
var body : some View {
List {
List {
Section {
Section {
LabeledContent {
TextField ( tournament . isFree ( ) ? " Gratuite " : " Inscription " , value : $ entryFee , format : . currency ( code : Locale . defaultCurrency ( ) ) )
TextField ( tournament . isFree ( ) ? " Gratuite " : " Inscription " , value : $ entryFee , format : . currency ( code : Locale . current . currency ? . identifier ? ? " EUR " ) )
. keyboardType ( . decimalPad )
. keyboardType ( . decimalPad )
. multilineTextAlignment ( . trailing )
. multilineTextAlignment ( . trailing )
. frame ( maxWidth : . infinity )
. frame ( maxWidth : . infinity )
. focused ( $ focusedField , equals : . _entryFee )
. focused ( $ focusedField , equals : . _entryFee )
} header : {
} label : {
Text ( " Prix de l'inscription " )
Text ( " Inscription " )
}
} footer : {
} footer : {
Text ( " Si vous souhaitez que Padel Club vous aide à suivre les encaissements, indiquer un prix d'inscription. Sinon Padel Club vous aidera à suivre simplement l'arrivée et la présence des joueurs. " )
Text ( " Si vous souhaitez que Padel Club vous aide à suivre les encaissements, indiquer un prix d'inscription. Sinon Padel Club vous aidera à suivre simplement l'arrivée et la présence des joueurs. " )
}
}
Section {
RowButtonView ( " Tout le monde est arrivé " , role : . destructive ) {
let players = tournament . selectedPlayers ( )
let players = tournament . selectedPlayers ( ) // t o u r n a m e n t s . f l a t M a p ( { $ 0 . s e l e c t e d P l a y e r s ( ) } )
players . forEach { player in
if players . anySatisfy ( { $0 . hasArrived = = false } ) {
player . hasArrived = true
Section {
}
RowButtonView ( " Tout le monde est arrivé " , role : . destructive ) {
do {
players . forEach { player in
try tournament . tournamentStore . playerRegistrations . addOrUpdate ( contentOfs : players )
player . hasArrived = true
} catch {
}
Logger . error ( error )
_save ( players : players )
}
}
} footer : {
Text ( " Indique tous les joueurs sont là " )
}
}
} footer : {
Text ( " Indique tous les joueurs sont là " )
}
}
Section {
if players . anySatisfy ( { $0 . hasArrived = = true } ) {
RowButtonView ( " Personne n'est là " , role : . destructive ) {
Section {
let players = tournament . selectedPlayers ( ) // t o u r n a m e n t s . f l a t M a p ( { $ 0 . s e l e c t e d P l a y e r s ( ) } )
RowButtonView ( " Personne n'est là " , role : . destructive ) {
players . forEach { player in
players . forEach { player in
player . hasArrived = false
player . hasArrived = false
}
}
do {
_save ( players : players )
try tournament . tournamentStore . playerRegistrations . addOrUpdate ( contentOfs : players )
} catch {
Logger . error ( error )
}
}
} footer : {
Text ( " Indique qu'aucun joueur n'est arrivé " )
}
}
} footer : {
Text ( " Indique qu'aucun joueur n'est arrivé " )
}
}
Section {
if players . anySatisfy ( { $0 . hasPaid ( ) = = false } ) {
RowButtonView ( " Tout le monde a réglé " , role : . destructive ) {
Section {
let players = tournament . selectedPlayers ( ) // t o u r n a m e n t s . f l a t M a p ( { $ 0 . s e l e c t e d P l a y e r s ( ) } )
RowButtonView ( " Tout le monde a réglé " , role : . destructive ) {
players . forEach { player in
players . forEach { player in
if player . hasPaid ( ) = = false {
if player . hasPaid ( ) = = false {
player . paymentType = . gift
player . paymentType = . gift
}
}
}
_save ( players : players )
}
}
do {
} footer : {
try tournament . tournamentStore . playerRegistrations . addOrUpdate ( contentOfs : players )
Text ( " Passe tous les joueurs qui n'ont pas réglé en offert " )
} catch {
Logger . error ( error )
}
}
}
} footer : {
Text ( " Passe tous les joueurs qui n'ont pas réglé en offert " )
}
}
Section {
if players . anySatisfy ( { $0 . hasPaid ( ) = = true } ) {
RowButtonView ( " Personne n'a réglé " , role : . destructive ) {
Section {
let store = tournament . tournamentStore
RowButtonView ( " Personne n'a réglé " , role : . destructive ) {
players . forEach { player in
let players = tournament . selectedPlayers ( )
player . paymentType = nil
players . forEach { player in
}
player . paymentType = nil
_save ( players : players )
}
do {
try store . playerRegistrations . addOrUpdate ( contentOfs : players )
} catch {
Logger . error ( error )
}
}
} footer : {
Text ( " Remet à zéro le type d'encaissement de tous les joueurs " )
}
}
} footer : {
Text ( " Remet à zéro le type d'encaissement de tous les joueurs " )
}
}
}
}
. navigationBarBackButtonHidden ( focusedField != nil )
. navigationBarBackButtonHidden ( focusedField != nil )
@ -119,7 +106,7 @@ struct CashierSettingsView: View {
HStack {
HStack {
if tournament . isFree ( ) {
if tournament . isFree ( ) {
ForEach ( priceTags , id : \ . self ) { priceTag in
ForEach ( priceTags , id : \ . self ) { priceTag in
Button ( priceTag . formatted ( . currency ( code : " EUR " ) ) ) {
Button ( priceTag . formatted ( . currency ( code : Locale . defaultCurrency ( ) ) ) ) {
entryFee = priceTag
entryFee = priceTag
tournament . entryFee = priceTag
tournament . entryFee = priceTag
focusedField = nil
focusedField = nil
@ -150,6 +137,14 @@ struct CashierSettingsView: View {
}
}
}
}
private func _save ( players : [ PlayerRegistration ] ) {
do {
try tournament . tournamentStore . playerRegistrations . addOrUpdate ( contentOfs : players )
} catch {
Logger . error ( error )
}
}
private func _save ( ) {
private func _save ( ) {
do {
do {
try dataStore . tournaments . addOrUpdate ( instance : tournament )
try dataStore . tournaments . addOrUpdate ( instance : tournament )