Object subclass: #Club instanceVariableNames: 'nombre tarifa tarifaVIP recaudacion listaSocios' classVariableNames: '' poolDictionaries: '' category: 'Club'! !Club methodsFor: 'as yet unclassified' stamp: 'KevinVasquez 4/26/2020 14:30'! agregarSocio: unSocio listaSocios add: ( unSocio asignarTarifa: tarifa )! ! !Club methodsFor: 'as yet unclassified' stamp: 'KevinVasquez 4/26/2020 14:17'! nombresSocios ^ Set withAll: ( listaSocios collect: [ :socio | socio nombre ] )! ! !Club methodsFor: 'as yet unclassified' stamp: 'KevinVasquez 4/26/2020 14:00'! establecerTarifaSocioVIP: unaTarifa tarifaVIP := unaTarifa ! ! !Club methodsFor: 'as yet unclassified' stamp: 'KevinVasquez 4/26/2020 14:18'! cantidadDeSocios ^ listaSocios size! ! !Club methodsFor: 'as yet unclassified' stamp: 'KevinVasquez 4/26/2020 14:46'! recibirPagoDe: unNombre recaudacion := recaudacion + ( ( listaSocios detect: [ :socio | unNombre = socio nombre ] ) pagar )! ! !Club methodsFor: 'as yet unclassified' stamp: 'KevinVasquez 4/26/2020 14:03'! recaudacionTotal ^ recaudacion! ! !Club methodsFor: 'as yet unclassified' stamp: 'KevinVasquez 4/26/2020 14:31'! agregarSocioVIP: unSocio listaSocios add: ( unSocio ascenderVIPConTarifa: tarifaVIP )! ! !Club methodsFor: 'as yet unclassified' stamp: 'KevinVasquez 4/26/2020 14:58'! cantidadPagadaPor: unNombre ^ ( listaSocios detect: [ :socio | unNombre = socio nombre ] ) totalPagado! ! !Club methodsFor: 'as yet unclassified' stamp: 'KevinVasquez 4/26/2020 14:00'! establecerTarifaSocio: unaTarifa tarifa := unaTarifa! ! !Club methodsFor: 'as yet unclassified' stamp: 'KevinVasquez 4/26/2020 14:00'! establecerNombre: unNombre nombre := unNombre ! ! !Club methodsFor: 'as yet unclassified' stamp: 'KevinVasquez 4/26/2020 14:07'! initialize recaudacion := 0. listaSocios := OrderedCollection new! ! Object subclass: #Socio instanceVariableNames: 'nombre tarifa totalPagado' classVariableNames: '' poolDictionaries: '' category: 'Club'! !Socio methodsFor: 'as yet unclassified' stamp: 'KevinVasquez 4/26/2020 14:12'! nombre ^ nombre! ! !Socio methodsFor: 'as yet unclassified' stamp: 'KevinVasquez 4/26/2020 14:32'! asignarTarifa: unaTarifa tarifa := unaTarifa! ! !Socio methodsFor: 'as yet unclassified' stamp: 'KevinVasquez 4/26/2020 14:35'! ascenderVIPConTarifa: unaTarifa | socioVIP | socioVIP := SocioVIP new. socioVIP establecerNombre: nombre. ^ ( socioVIP asignarTarifa: unaTarifa )! ! !Socio methodsFor: 'as yet unclassified' stamp: 'KevinVasquez 4/26/2020 14:05'! establecerNombre: unNombre nombre := unNombre ! ! !Socio methodsFor: 'as yet unclassified' stamp: 'KevinVasquez 4/26/2020 15:11'! pagar totalPagado add: tarifa. ^ tarifa! ! !Socio methodsFor: 'as yet unclassified' stamp: 'KevinVasquez 4/26/2020 14:12'! ascenderVIP | socioVIP | socioVIP := SocioVIP new. socioVIP establecerNombre: ( self nombre ). ^ socioVIP ! ! !Socio methodsFor: 'as yet unclassified' stamp: 'KevinVasquez 4/26/2020 15:10'! totalPagado ^ totalPagado inject: 0 into: [ :acum :valor | acum + valor ] ! ! !Socio methodsFor: 'initialization' stamp: 'KevinVasquez 4/26/2020 15:10'! initialize totalPagado := OrderedCollection new! ! Object subclass: #SocioVIP instanceVariableNames: 'nombre tarifa totalPagado' classVariableNames: '' poolDictionaries: '' category: 'Club'! !SocioVIP methodsFor: 'as yet unclassified' stamp: 'KevinVasquez 4/26/2020 14:16'! nombre ^ nombre! ! !SocioVIP methodsFor: 'as yet unclassified' stamp: 'KevinVasquez 4/26/2020 14:35'! asignarTarifa: unaTarifa tarifa := unaTarifa ! ! !SocioVIP methodsFor: 'as yet unclassified' stamp: 'KevinVasquez 4/26/2020 14:13'! establecerNombre: unNombre nombre := unNombre! ! !SocioVIP methodsFor: 'as yet unclassified' stamp: 'KevinVasquez 4/26/2020 15:09'! pagar totalPagado add: tarifa. ^ tarifa! ! !SocioVIP methodsFor: 'as yet unclassified' stamp: 'KevinVasquez 4/26/2020 15:07'! totalPagado ^ totalPagado inject: 0 into: [ :acum :valor | acum + valor ]! ! !SocioVIP methodsFor: 'initialization' stamp: 'KevinVasquez 4/26/2020 15:08'! initialize totalPagado := OrderedCollection new.! !