Advertisement
Guest User

depositoService imple

a guest
Sep 20th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.86 KB | None | 0 0
  1. /*
  2. * To change this license header, choose License Headers in Project Properties.
  3. * To change this template file, choose Tools | Templates
  4. * and open the template in the editor.
  5. */
  6. package snp.gob.bo.gimodel.servicio.impl;
  7.  
  8. import java.math.BigDecimal;
  9. import java.text.DateFormat;
  10. import java.text.SimpleDateFormat;
  11. import java.util.ArrayList;
  12. import java.util.Collections;
  13. import java.util.Date;
  14. import java.util.List;
  15. import java.util.Objects;
  16. import javax.sql.DataSource;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.dao.DataAccessException;
  19. import org.springframework.jdbc.core.JdbcTemplate;
  20. import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
  21. import org.springframework.stereotype.Service;
  22. import snp.gob.bo.gimodel.entidad.Deposito;
  23. import snp.gob.bo.gimodel.entidad.Recibo;
  24. import snp.gob.bo.gimodel.entidad.ReciboDeposito;
  25. import snp.gob.bo.gimodel.entidad.Tasa;
  26. import snp.gob.bo.gimodel.entidad.Usuario;
  27. import snp.gob.bo.gimodel.mapper.DepositoMapper;
  28. import snp.gob.bo.gimodel.mapper.ReciboDepositoMapper;
  29. import snp.gob.bo.gimodel.servicio.DepositoService;
  30. import snp.gob.bo.gimodel.servicio.ReciboService;
  31.  
  32. /**
  33. *
  34. * @author Chano Rojas
  35. * @see ReciboDominio
  36. * @see ReciboServiceImpl
  37. * @version 1.0, 05/06/2016
  38. */
  39. @Service("depositoService")
  40. public class DepositoServiceImpl implements DepositoService {
  41.  
  42. private DataSource dataSource;
  43. private JdbcTemplate jdbcTemplate;
  44. private NamedParameterJdbcTemplate namedParameterJdbcTemplate;
  45.  
  46. @Autowired
  47. ReciboService reciboService;
  48.  
  49. @Override
  50. @Autowired
  51. public void setDataSource(DataSource dataSource) throws Exception {
  52. try {
  53. this.dataSource = dataSource;
  54. this.jdbcTemplate = new JdbcTemplate(dataSource);
  55. } catch (Exception e) {
  56. throw e;
  57. }
  58. }
  59.  
  60. //
  61. @Override
  62. public Deposito crudDeposito(Deposito deposito, int parametro) throws Exception {
  63. try {
  64. Deposito dep = new Deposito();
  65. String SQL = "select * from crud_deposito("
  66. + "?,"
  67. + "?,"
  68. + "?,"
  69. + "?,"
  70. + "?,"
  71. + "?,"
  72. + "?,"
  73. + "?,"
  74. + "?,"
  75. + "?,"
  76. + "?,"
  77. + "?,"
  78. + "?,"
  79. + "?,"
  80. + "?,"
  81. + "?,"
  82. + "?);";
  83. dep = (Deposito) jdbcTemplate.queryForObject(SQL, new DepositoMapper(),
  84. deposito.getIdDeposito(),
  85. deposito.getIdLogTrans(),
  86. deposito.getBanco(),
  87. deposito.getNumeroDeposito(),
  88. deposito.getFechaDeposito(),
  89. deposito.getMonto(),
  90. deposito.getDeposCodDep(),
  91. deposito.getDeposCodAgencia(),
  92. deposito.getNombreDepositante(),
  93. deposito.getCodAgencia(),
  94. deposito.getCodDepositante(),
  95. deposito.getSaldo(),
  96. deposito.getFechaRegistroDeposito(),
  97. deposito.getSucursalBanco(),
  98. deposito.getEstado(),
  99. deposito.getIdUsuario(),
  100. parametro
  101. );
  102. return dep;
  103. } catch (DataAccessException e) {
  104. throw e;
  105. }
  106. }
  107.  
  108. @Override
  109. public List<Deposito> lstDeposito(Deposito deposito, int parametro) throws Exception {
  110. try {
  111. List<Deposito> lstdep = new ArrayList<Deposito>();
  112. String SQL = "select * from crud_deposito("
  113. + "?,"
  114. + "?,"
  115. + "?,"
  116. + "?,"
  117. + "?,"
  118. + "?,"
  119. + "?,"
  120. + "?,"
  121. + "?,"
  122. + "?,"
  123. + "?,"
  124. + "?,"
  125. + "?,"
  126. + "?,"
  127. + "?,"
  128. + "?,"
  129. + "?);";
  130. lstdep = (List<Deposito>) (Deposito) jdbcTemplate.query(SQL, new DepositoMapper(),
  131. deposito.getIdDeposito(),
  132. deposito.getIdLogTrans(),
  133. deposito.getBanco(),
  134. deposito.getNumeroDeposito(),
  135. deposito.getFechaDeposito(),
  136. deposito.getMonto(),
  137. deposito.getDeposCodDep(),
  138. deposito.getDeposCodAgencia(),
  139. deposito.getNombreDepositante(),
  140. deposito.getCodAgencia(),
  141. deposito.getCodDepositante(),
  142. deposito.getSaldo(),
  143. deposito.getFechaRegistroDeposito(),
  144. deposito.getSucursalBanco(),
  145. deposito.getEstado(),
  146. deposito.getIdUsuario(),
  147. parametro
  148. );
  149. if (!lstdep.isEmpty()) {
  150. return lstdep;
  151. }
  152. return Collections.EMPTY_LIST;
  153. } catch (DataAccessException e) {
  154. throw e;
  155. }
  156. }
  157.  
  158. @Override
  159. public List<Deposito> listaDepositoConSaldoPorUSuario(Usuario usuario) throws Exception {
  160. try {
  161. String SQL = "select * from deposito where estado='AC' and idlogtrans=? order by iddeposito DESC";
  162. if (!jdbcTemplate.query(SQL, new DepositoMapper(), usuario.getIdusuario()).isEmpty()) {
  163. return jdbcTemplate.query(SQL, new DepositoMapper(), usuario.getIdusuario());
  164. }
  165. } catch (Exception e) {
  166. throw e;
  167. }
  168. return Collections.EMPTY_LIST;
  169. }
  170.  
  171. @Override
  172. public List<Deposito> listaDepositoConSaldoPorUSuarioSaldo(Usuario usuario) {
  173. String SQL = "select * from deposito where estado='AC' and saldo > 0 and idusuario=? order by iddeposito DESC";
  174. if (!jdbcTemplate.query(SQL, new DepositoMapper(), usuario.getIdusuario()).isEmpty()) {
  175. return jdbcTemplate.query(SQL, new DepositoMapper(), usuario.getIdusuario());
  176. }
  177. return Collections.EMPTY_LIST;
  178. }
  179.  
  180. @Override
  181. public List<Deposito> listaDepositoConSaldo() {
  182. String SQL = "select * from deposito where estado='AC' and saldo <> 0 order by iddeposito DESC";
  183.  
  184. if (!jdbcTemplate.query(SQL, new DepositoMapper()).isEmpty()) {
  185. return jdbcTemplate.query(SQL, new DepositoMapper());
  186. }
  187. return Collections.EMPTY_LIST;
  188. }
  189.  
  190. @Override
  191. public BigDecimal actualizaSaldoDepositoPorTasa(Tasa tasa, Deposito deposito) {
  192. BigDecimal montoSaldo = new BigDecimal("0.00");
  193. if (deposito.getSaldo().compareTo(tasa.getCosto()) == 1) {
  194. BigDecimal resto = deposito.getSaldo().subtract(tasa.getCosto());
  195. if (resto.compareTo(new BigDecimal("0.00")) == 1) {
  196.  
  197. montoSaldo = deposito.getSaldo().subtract(tasa.getCosto());
  198. } else {
  199. montoSaldo = new BigDecimal("-1");
  200. }
  201.  
  202. } else {
  203. montoSaldo = new BigDecimal("-1");
  204. }
  205. return montoSaldo;
  206. }
  207.  
  208. @Override
  209. public BigDecimal actualizaSaldoDepositoModificar(Recibo rec, Deposito deposito) {
  210. String SQL = "select * from recibodeposito where idrecibo='" + rec.getIdRecibo() + "' and iddeposito='" + deposito.getIdDeposito() + "'";
  211. List<ReciboDeposito> reciboDep = jdbcTemplate.query(SQL, new ReciboDepositoMapper());
  212. return deposito.getSaldo().add(reciboDep.get(0).getMonto());
  213.  
  214. }
  215.  
  216. @Override
  217. public ReciboDeposito encuentrareciboDepositoPorIdreciboyIdDeposito(Recibo rec, Deposito deposito) {
  218. String SQL = "select * from recibodeposito where idrecibo='" + rec.getIdRecibo() + "' and iddeposito='" + deposito.getIdDeposito() + "'";
  219. List<ReciboDeposito> reciboDep = jdbcTemplate.query(SQL, new ReciboDepositoMapper());
  220. return reciboDep.get(0);
  221.  
  222. }
  223.  
  224. @Override
  225. public List<Deposito> generalistaDepositosConSaldo(List<Deposito> listaDepositos) {
  226. List<Deposito> listaFinal = new ArrayList<Deposito>();
  227. for (Deposito deposito : listaDepositos) {
  228. if (deposito.getSaldo().compareTo(BigDecimal.ZERO) > 0) {
  229. listaFinal.add(deposito);
  230. }
  231. }
  232. return listaFinal;
  233. }
  234.  
  235. @Override
  236. public String encuentraDepositosPorRecibo(Recibo recibo) throws Exception {
  237. try {
  238. String SQL = "select * from deposito where iddeposito in(select iddeposito from recibodeposito where idrecibo=?); ";
  239. String cadenaDepositos = "";
  240. List<Deposito> lista = jdbcTemplate.query(SQL, new DepositoMapper(), recibo.getIdRecibo());
  241. if (!lista.isEmpty()) {
  242. for (int i = 0; i < lista.size(); i++) {
  243. if (i == 0) {
  244. cadenaDepositos = cadenaDepositos + lista.get(i).getNumeroDeposito();
  245. } else {
  246. cadenaDepositos = cadenaDepositos + "," + lista.get(i).getNumeroDeposito();
  247. }
  248. }
  249. }
  250. return cadenaDepositos;
  251. } catch (Exception e) {
  252. throw e;
  253. }
  254. }
  255.  
  256. @Override
  257. public String encuentraDepositantePorRecibo(Recibo recibo) throws Exception {
  258. try {
  259. String SQL = "select * from deposito where iddeposito in(select iddeposito from recibodeposito where idrecibo=?); ";
  260. String cadenaDepositos = "";
  261. List<Deposito> lista = jdbcTemplate.query(SQL, new DepositoMapper(), recibo.getIdRecibo());
  262. if (!lista.isEmpty()) {
  263. for (int i = 0; i < lista.size(); i++) {
  264. if (i == 0) {
  265. cadenaDepositos = cadenaDepositos + lista.get(i).getNombreDepositante();
  266. } else {
  267. cadenaDepositos = cadenaDepositos + "," + lista.get(i).getNombreDepositante();
  268. }
  269. }
  270. }
  271. return cadenaDepositos;
  272. } catch (Exception e) {
  273. throw e;
  274. }
  275. }
  276.  
  277. @Override
  278. public String encuentraFechaDespositoPorRecibo(Recibo recibo) throws Exception {
  279. try {
  280. String SQL = "select * from deposito where iddeposito in(select iddeposito from recibodeposito where idrecibo=?); ";
  281. String cadenaDepositos = "";
  282. List<Deposito> lista = jdbcTemplate.query(SQL, new DepositoMapper(), recibo.getIdRecibo());
  283. if (!lista.isEmpty()) {
  284. DateFormat fecha = new SimpleDateFormat("dd/MM/yyyy");
  285. for (int i = 0; i < lista.size(); i++) {
  286. if (i == 0) {
  287. cadenaDepositos = cadenaDepositos + fecha.format(lista.get(i).getFechaDeposito());
  288. } else {
  289. cadenaDepositos = cadenaDepositos + "," + fecha.format(lista.get(i).getFechaDeposito());
  290. }
  291. }
  292. }
  293. return cadenaDepositos;
  294. } catch (Exception e) {
  295. throw e;
  296. }
  297. }
  298.  
  299. @Override
  300. public String encuentraCodigoDepositoPorRecibo(Recibo recibo) throws Exception {
  301. try {
  302. String SQL = "select * from deposito where iddeposito in(select iddeposito from recibodeposito where idrecibo=?); ";
  303. String cadenaDepositos = "";
  304. List<Deposito> lista = jdbcTemplate.query(SQL, new DepositoMapper(), recibo.getIdRecibo());
  305. if (!lista.isEmpty()) {
  306. for (int i = 0; i < lista.size(); i++) {
  307. if (i == 0) {
  308. cadenaDepositos = cadenaDepositos + lista.get(i).getDeposCodDep();
  309. } else {
  310. cadenaDepositos = cadenaDepositos + "," + lista.get(i).getDeposCodDep();
  311. }
  312. }
  313. }
  314. return cadenaDepositos;
  315. } catch (Exception e) {
  316. throw e;
  317. }
  318. }
  319.  
  320. @Override
  321. public List<Deposito> depositosPorRecibo(Recibo recibo) throws Exception {
  322. try {
  323. String SQL = "select * from deposito where iddeposito in(select iddeposito from recibodeposito where idrecibo=?); ";
  324. String cadenaDepositos = "";
  325. List<Deposito> lista = jdbcTemplate.query(SQL, new DepositoMapper(), recibo.getIdRecibo());
  326. if (!lista.isEmpty()) {
  327. for (int i = 0; i < lista.size(); i++) {
  328. if (i == 0) {
  329. cadenaDepositos = cadenaDepositos + lista.get(i).getNumeroDeposito();
  330. } else {
  331. cadenaDepositos = cadenaDepositos + "," + lista.get(i).getNumeroDeposito();
  332. }
  333. }
  334. }
  335. return lista;
  336. } catch (Exception e) {
  337. throw e;
  338. }
  339. }
  340.  
  341. @Override
  342. public int encuentraPosicionDeposito(Deposito deposito, List<Deposito> lstDeposito) throws Exception {
  343. try {
  344. int posicion = 0;
  345. int cont = 0;
  346. for (Deposito deposito1 : lstDeposito) {
  347. if (Objects.equals(deposito1.getNumeroDeposito(), deposito.getNumeroDeposito())) {
  348. posicion = cont;
  349. }
  350. cont++;
  351. }
  352. return posicion;
  353. } catch (Exception e) {
  354. throw e;
  355. }
  356. }
  357.  
  358. @Override
  359. public Boolean depositoParaModificarEliminar(Deposito deposito) throws Exception {
  360. try {
  361. String Sql = "select * from recibodeposito where iddeposito=?";
  362. Recibo recibo = reciboService.buscaReciboPorIdRecibo(jdbcTemplate.query(Sql, new ReciboDepositoMapper(), deposito.getIdDeposito()).get(0).getIdRecibo());
  363. if (reciboService.buscaRecibosActivos(recibo.getIdRecibo()) != null) {
  364. return true;
  365. }
  366. } catch (Exception ex) {
  367. }
  368. return false;
  369. }
  370.  
  371. @Override
  372. public Deposito depositoPorIdDeposto(Long idDeposito) {
  373. String SQL = "select * from deposito where estado='AC' and iddeposito=?";
  374. List<Deposito> listaDeposito = jdbcTemplate.query(SQL, new DepositoMapper(), idDeposito);
  375. if (!listaDeposito.isEmpty()) {
  376. return listaDeposito.get(0);
  377. }
  378. return new Deposito();
  379. }
  380.  
  381. @Override
  382. public List<Deposito> listaDepositosPorRecibo(Recibo recibo) throws Exception {
  383. try {
  384. String SQL = "select * from deposito where estado='AC' and iddeposito in(select iddeposito from recibodeposito where idrecibo=?); ";
  385. if (!jdbcTemplate.query(SQL, new DepositoMapper(), recibo.getIdRecibo()).isEmpty()) {
  386. return jdbcTemplate.query(SQL, new DepositoMapper(), recibo.getIdRecibo());
  387. }
  388. } catch (Exception e) {
  389. throw e;
  390. }
  391. return Collections.EMPTY_LIST;
  392. }
  393.  
  394. @Override
  395. public List<Deposito> listaDepositosPorRangoDeFechas(Date ini, Date fin) throws Exception {
  396. try {
  397. SimpleDateFormat formatoIni = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
  398. SimpleDateFormat formatoFin = new SimpleDateFormat("yyyy-MM-dd 23:59:59");
  399. String fechaIni;
  400. String fechaFin;
  401. if (ini != null && fin != null) {
  402. fechaIni = formatoIni.format(ini);
  403. fechaFin = formatoFin.format(fin);
  404. String SQL = "select * from deposito where fecha_registro_deposito between '" + fechaIni + "' and '" + fechaFin + "' and estado = 'AC';";
  405. List<Deposito> listaDeposito = jdbcTemplate.query(SQL, new DepositoMapper());
  406. if (!listaDeposito.isEmpty()) {
  407. return listaDeposito;
  408. } else {
  409. return Collections.EMPTY_LIST;
  410. }
  411. } else {
  412. return Collections.EMPTY_LIST;
  413. }
  414. } catch (Exception e) {
  415. }
  416. return Collections.EMPTY_LIST;
  417. }
  418.  
  419. @Override
  420. public List<Deposito> listaDepositosPorRangoDeFechasPorIdUsuario(Date ini, Date fin, Long idUsuario) throws Exception {
  421. try {
  422. SimpleDateFormat formatoIni = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
  423. SimpleDateFormat formatoFin = new SimpleDateFormat("yyyy-MM-dd 23:59:59");
  424. String fechaIni;
  425. String fechaFin;
  426. if (ini != null && fin != null) {
  427. fechaIni = formatoIni.format(ini);
  428. fechaFin = formatoFin.format(fin);
  429. String SQL = "select * from deposito where fecha_registro_deposito between '" + fechaIni + "' and '" + fechaFin + "' and idusuario = " + idUsuario + " and estado = 'AC';";
  430. List<Deposito> listaDeposito = jdbcTemplate.query(SQL, new DepositoMapper());
  431. if (!listaDeposito.isEmpty()) {
  432. return listaDeposito;
  433. } else {
  434. return Collections.EMPTY_LIST;
  435. }
  436. } else {
  437. return Collections.EMPTY_LIST;
  438. }
  439. } catch (Exception e) {
  440. }
  441. return Collections.EMPTY_LIST;
  442. }
  443.  
  444. @Override
  445. public List<Deposito> listaDepositosPorRangoDeFechasPorIdRegional(Date ini, Date fin, Long idRegional) throws Exception {
  446. try {
  447. SimpleDateFormat formatoIni = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
  448. SimpleDateFormat formatoFin = new SimpleDateFormat("yyyy-MM-dd 23:59:59");
  449. String fechaIni;
  450. String fechaFin;
  451. if (ini != null && fin != null) {
  452. fechaIni = formatoIni.format(ini);
  453. fechaFin = formatoFin.format(fin);
  454. String SQL = "select * from deposito where iddeposito in \n"
  455. + "(select rd.iddeposito\n"
  456. + "from recibo r, recibodeposito rd\n"
  457. + "where r.idrecibo = rd.idrecibo and r.estado_recibo='REMI' and r.fecha_emision_recibo between '" + fechaIni + "' and '" + fechaFin + "' and r.idregional = " + idRegional + ") and estado = 'AC';";
  458. List<Deposito> listaDeposito = jdbcTemplate.query(SQL, new DepositoMapper());
  459. if (!listaDeposito.isEmpty()) {
  460. return listaDeposito;
  461. } else {
  462. return Collections.EMPTY_LIST;
  463. }
  464. } else {
  465. return Collections.EMPTY_LIST;
  466. }
  467. } catch (Exception e) {
  468. }
  469. return Collections.EMPTY_LIST;
  470. }
  471.  
  472. @Override
  473. public BigDecimal totalMontoPorRangoDeFechas(Date ini, Date fin) throws Exception {
  474. String SQL = "select sum(monto) from deposito where fecha_registro_deposito between ? and ?;";
  475. return jdbcTemplate.queryForObject(SQL, BigDecimal.class, ini, fin);
  476. }
  477.  
  478. @Override
  479. public List<Deposito> listaDepositosPorRangoDeFechasPorAgencia(Date ini, Date fin, Integer agencia) throws Exception {
  480. try {
  481. SimpleDateFormat formatoIni = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
  482. SimpleDateFormat formatoFin = new SimpleDateFormat("yyyy-MM-dd 23:59:59");
  483. String fechaIni;
  484. String fechaFin;
  485. if (ini != null && fin != null) {
  486. fechaIni = formatoIni.format(ini);
  487. fechaFin = formatoFin.format(fin);
  488. String SQL = "select * from deposito where fecha_registro_deposito between '" + fechaIni + "' and '" + fechaFin + "' and depos_cod_dep = " + agencia + " and estado = 'AC';";
  489. List<Deposito> listaDeposito = jdbcTemplate.query(SQL, new DepositoMapper());
  490. if (!listaDeposito.isEmpty()) {
  491. return listaDeposito;
  492. } else {
  493. return Collections.EMPTY_LIST;
  494. }
  495. } else {
  496. return Collections.EMPTY_LIST;
  497. }
  498. } catch (Exception e) {
  499. }
  500. return Collections.EMPTY_LIST;
  501. }
  502.  
  503. @Override
  504. public Boolean validaNumeroDeposito(Deposito deposito) {
  505. Boolean existeDeposito;
  506. String SQL = "select * from deposito where iddeposito in \n"
  507. + "(select rd.iddeposito from recibo r, recibodeposito rd where r.idrecibo = rd.idrecibo and r.estado_recibo='REMI')and numero_deposito='" + deposito.getNumeroDeposito() + "' and estado = 'AC';";
  508. List<Deposito> listaDeposito = jdbcTemplate.query(SQL, new DepositoMapper());
  509. existeDeposito = !listaDeposito.isEmpty();
  510. return existeDeposito;
  511. }
  512.  
  513. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement