Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Adrian
/
EjemploDAE2020
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
bc480a6d
authored
Dec 13, 2020
by
Adrian
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Añadidas funciones
parent
61be9bed
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
42 additions
and
12 deletions
src/main/java/es/ujaen/dae/ujacoin/beans/RepositorioCuentas.java
src/main/java/es/ujaen/dae/ujacoin/beans/ServicioUjaBankImpl.java
src/main/java/es/ujaen/dae/ujacoin/beans/RepositorioCuentas.java
View file @
bc480a6d
...
...
@@ -8,6 +8,8 @@ package es.ujaen.dae.ujacoin.beans;
import
es.ujaen.dae.ujacoin.entidades.Cliente
;
import
es.ujaen.dae.ujacoin.entidades.Cuenta
;
import
es.ujaen.dae.ujacoin.entidades.Movimiento
;
import
es.ujaen.dae.ujacoin.entidades.Tarjeta
;
import
es.ujaen.dae.ujacoin.excepciones.TarjetaNoValida
;
import
es.ujaen.dae.ujacoin.util.TipoMovimiento
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
...
...
@@ -16,8 +18,6 @@ import javax.persistence.EntityManager;
import
javax.persistence.LockModeType
;
import
javax.persistence.PersistenceContext
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.transaction.annotation.Isolation
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
/**
...
...
@@ -66,6 +66,40 @@ public class RepositorioCuentas {
}
public
void
ingreso
(
Tarjeta
tarjetaOrigen
,
Cuenta
cuentaDestino
,
float
importe
){
Cuenta
cuentaDestinoEnlazada
=
em
.
find
(
Cuenta
.
class
,
cuentaDestino
.
getNumero
(),
LockModeType
.
PESSIMISTIC_WRITE
);
if
(!
cuentaDestinoEnlazada
.
getTitular
().
getTarjetasAsociadas
().
containsKey
(
tarjetaOrigen
.
getNumero
()))
throw
new
TarjetaNoValida
();
cuentaDestinoEnlazada
.
modificarSaldo
(
importe
);
Movimiento
movimiento
=
new
Movimiento
(
TipoMovimiento
.
TMIngreso
,
importe
,
LocalDateTime
.
now
(),
tarjetaOrigen
);
em
.
persist
(
movimiento
);
cuentaDestinoEnlazada
.
getMovimientos
().
add
(
movimiento
);
}
public
void
reintegro
(
Cuenta
cuentaOrigen
,
Tarjeta
tarjetaDestino
,
float
importe
){
Cuenta
cuentaOrigenEnlazada
=
em
.
find
(
Cuenta
.
class
,
cuentaOrigen
.
getNumero
(),
LockModeType
.
PESSIMISTIC_WRITE
);
if
(!
cuentaOrigenEnlazada
.
getTitular
().
getTarjetasAsociadas
().
containsKey
(
tarjetaDestino
.
getNumero
()))
throw
new
TarjetaNoValida
();
cuentaOrigenEnlazada
.
modificarSaldo
(-
importe
);
Movimiento
movimiento
=
new
Movimiento
(
TipoMovimiento
.
TMReintegro
,
importe
,
LocalDateTime
.
now
(),
tarjetaDestino
);
em
.
persist
(
movimiento
);
cuentaOrigenEnlazada
.
getMovimientos
().
add
(
movimiento
);
}
public
List
<
Cuenta
>
listarCuentasPorCliente
(
Cliente
cliente
)
{
em
.
merge
(
cliente
);
...
...
src/main/java/es/ujaen/dae/ujacoin/beans/ServicioUjaBankImpl.java
View file @
bc480a6d
...
...
@@ -99,45 +99,41 @@ public class ServicioUjaBankImpl implements ServicioUjaBank {
@Override
public
void
ingreso
(
Cuenta
cuenta
,
Tarjeta
tarjeta
,
float
importe
)
{
//cuenta.ingreso(tarjeta, importe);
repoCuentas
.
ingreso
(
tarjeta
,
cuenta
,
importe
);
}
@Override
public
void
reintegro
(
Cuenta
cuenta
,
Tarjeta
tarjeta
,
float
importe
)
{
// cuenta.reintegro(tarjeta, importe);
repoCuentas
.
reintegro
(
cuenta
,
tarjeta
,
importe
);
}
@Transactional
@Override
public
void
transferencia
(
Cuenta
cuentaOrigen
,
Cuenta
cuentaDestino
,
float
importe
)
{
repoCuentas
.
transferencia
(
cuentaOrigen
,
cuentaDestino
,
importe
);
}
@Override
@Transactional
public
Cuenta
a
ñ
adirCuenta
(
Cliente
cliente
)
{
Cuenta
cuentaNueva
=
new
Cuenta
(
generadorCuentasNuevas
(),
cliente
);
cliente
.
asignarCuenta
(
cuentaNueva
);
repoClientes
.
actualizar
(
cliente
);
repoCuentas
.
insertar
(
cuentaNueva
);
repoClientes
.
actualizar
(
cliente
);
return
cuentaNueva
;
}
@Override
@Transactional
public
void
a
ñ
adirTarjeta
(
Cliente
cliente
,
Tarjeta
tarjeta
)
{
//Tarjeta nuevaTarjeta = new Tarjeta(, cliente.getNombre(), String.valueOf(rand.nextInt(999)), LocalDate.now());
cliente
.
a
ñ
adirTarjeta
(
tarjeta
);
repoTarjetas
.
insertar
(
tarjeta
);
repoClientes
.
actualizar
(
cliente
);
repoClientes
.
insertar
(
cliente
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment