diff --git a/ace-controller-mobile/src/main/java/com/arrebol/apc/controller/mobile/controller/exchange/ExchangeEnebledUsersController.java b/ace-controller-mobile/src/main/java/com/arrebol/apc/controller/mobile/controller/exchange/ExchangeEnebledUsersController.java index 62611be..e7a9c3c 100644 --- a/ace-controller-mobile/src/main/java/com/arrebol/apc/controller/mobile/controller/exchange/ExchangeEnebledUsersController.java +++ b/ace-controller-mobile/src/main/java/com/arrebol/apc/controller/mobile/controller/exchange/ExchangeEnebledUsersController.java @@ -113,7 +113,7 @@ public class ExchangeEnebledUsersController implements Serializable { Date date = new Date(); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); - calendar.add(Calendar.HOUR, -7); + calendar.add(Calendar.HOUR_OF_DAY, -7); date = calendar.getTime(); parameters.add(new ModelParameter(TransferCfg.FIELD_LAST_UPDATED_ON, date)); parameters.add(new ModelParameter(TransferCfg.FIELD_ID, transerId)); diff --git a/ace-controller-mobile/src/main/java/com/arrebol/apc/controller/mobile/controller/loan/LoanController.java b/ace-controller-mobile/src/main/java/com/arrebol/apc/controller/mobile/controller/loan/LoanController.java index e901e5c..404663b 100644 --- a/ace-controller-mobile/src/main/java/com/arrebol/apc/controller/mobile/controller/loan/LoanController.java +++ b/ace-controller-mobile/src/main/java/com/arrebol/apc/controller/mobile/controller/loan/LoanController.java @@ -284,6 +284,12 @@ public class LoanController implements Serializable { String comments = "Se pago " + precio + texto; + Date date = new Date(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.add(Calendar.HOUR_OF_DAY, -7); + date = calendar.getTime(); + LoanDetails details = new LoanDetails( UUID.randomUUID().toString(), new Loan(feesToPayByLoanRequestJaxb.getIdLoan()), @@ -294,7 +300,7 @@ public class LoanController implements Serializable { LoanDetailsType.PAYMENT, comments, feesToPayByLoanRequestJaxb.getIdUser(), - new Date()); + date); parameters.add(new ModelParameter(LoanDetailsCfg.FIELD_ID, ids)); @@ -408,9 +414,6 @@ public class LoanController implements Serializable { throw new Exception(user_unavailable); } -//DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - Date date = new Date();//dateFormat.parse(jaxb.getStrDate()); - LoanByUser loanByUser = new LoanByUser( new LoanByUserId(null, jaxb.getUserId()), LoanStatus.PENDING, @@ -420,6 +423,12 @@ public class LoanController implements Serializable { LoanType loanType = loanTypeRepository.findLoanType(jaxb.getLoanTypeId()); RouteCtlg routeCtlg = new RouteCtlg(jaxb.getRouteId()); + Date date = new Date(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.add(Calendar.HOUR_OF_DAY, -7); + date = calendar.getTime(); + Loan loan = new Loan( new LoanType(loanType.getId()), null, @@ -548,7 +557,13 @@ public class LoanController implements Serializable { LoanFeeNotification notification = null; try { + Date date = new Date(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.add(Calendar.HOUR_OF_DAY, -7); + date = calendar.getTime(); + List parameters = new ArrayList<>(); Loan loan = loanRepository.findLoanById(transfer.getLoanId()); @@ -712,7 +727,12 @@ public class LoanController implements Serializable { PersonJaxb endorsement) throws Exception { logger.debug("renovation"); try { + Date date = new Date(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.add(Calendar.HOUR_OF_DAY, -7); + date = calendar.getTime(); Loan currentLoan = loanRepository.findLoanById(loan); LoanType newCredit = loanTypeRepository.findLoanType(credit); @@ -844,7 +864,12 @@ public class LoanController implements Serializable { PersonJaxb endorsement) throws Exception { logger.debug("renovationHasPaymentToday"); try { + Date date = new Date(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.add(Calendar.HOUR_OF_DAY, -7); + date = calendar.getTime(); Loan currentLoan = loanRepository.findLoanById(loan); LoanType newCredit = loanTypeRepository.findLoanType(credit); @@ -972,6 +997,12 @@ public class LoanController implements Serializable { totalAmountPaid = loan.getAmountPaid().add(discount); newLastReferenceNumber = loan.getLastReferenceNumber() + 1; + Date date = new Date(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.add(Calendar.HOUR_OF_DAY, -7); + date = calendar.getTime(); + loanDetails = new LoanDetails( new Loan(loanByRenovation.getLoanOld().getId()), new User(user), @@ -980,7 +1011,7 @@ public class LoanController implements Serializable { newLastReferenceNumber, LoanDetailsType.RENOVATION_PAYMENT, user, - new Date(), + date, "Retención de " + discount + " el la entrega del crédito renovado"); } @@ -1055,6 +1086,12 @@ public class LoanController implements Serializable { totalAmountPaid = loan.getAmountPaid().add(discount); newLastReferenceNumber = loan.getLastReferenceNumber() + 1; + Date date = new Date(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.add(Calendar.HOUR_OF_DAY, -7); + date = calendar.getTime(); + loanDetails = new LoanDetails( new Loan(loanByRenovation.getLoanOld().getId()), new User(user), @@ -1063,7 +1100,7 @@ public class LoanController implements Serializable { newLastReferenceNumber, LoanDetailsType.RENOVATION_PAYMENT, user, - new Date(), + date, "Retención de " + discount + " el la entrega del crédito renovado"); } @@ -1269,11 +1306,17 @@ public class LoanController implements Serializable { loans.add(new Loan(row.getIdLoan())); }); + Date date = new Date(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.add(Calendar.HOUR_OF_DAY, -7); + date = calendar.getTime(); + loanParams.add(new ModelParameter(LoanCfg.FIELD_LOAN_STATUS, loanStatus)); loanParams.add(new ModelParameter(LoanCfg.FIELD_AMOUNT_PAID, new BigDecimal(0))); loanParams.add(new ModelParameter(LoanCfg.FIELD_LAST_REFERENCE_NUMBER, 0)); loanParams.add(new ModelParameter(LoanCfg.FIELD_LAST_UPDATED_BY, updateLoanToDeliveryStatusList.getIdUpdateUser())); - loanParams.add(new ModelParameter(LoanCfg.FIELD_LAST_UPDATED_ON, new Date())); + loanParams.add(new ModelParameter(LoanCfg.FIELD_LAST_UPDATED_ON, date)); loanParams.add(new ModelParameter(LoanCfg.FIELD_ID, ids)); loanByUserParams.add(new ModelParameter(LoanByUserCfg.FIELD_LOAN_BY_USER_STATUS, loanStatus)); @@ -1300,7 +1343,12 @@ public class LoanController implements Serializable { logger.debug("updateLoanByIdFromCertifiedView"); try { List parameters = new ArrayList<>(); + Date date = new Date(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.add(Calendar.HOUR_OF_DAY, -7); + date = calendar.getTime(); parameters.add( new ModelParameter(LoanCfg.FIELD_LOAN_STATUS, action ? LoanStatus.APPROVED : LoanStatus.REJECTED) diff --git a/ace-controller-mobile/src/main/java/com/arrebol/apc/controller/mobile/repository/loan/LoanByRenovationRepository.java b/ace-controller-mobile/src/main/java/com/arrebol/apc/controller/mobile/repository/loan/LoanByRenovationRepository.java index 094353f..a796137 100644 --- a/ace-controller-mobile/src/main/java/com/arrebol/apc/controller/mobile/repository/loan/LoanByRenovationRepository.java +++ b/ace-controller-mobile/src/main/java/com/arrebol/apc/controller/mobile/repository/loan/LoanByRenovationRepository.java @@ -1,8 +1,8 @@ /* * Arrebol Consultancy copyright. - * + * * This code belongs to Arrebol Consultancy - * its use, redistribution or modification are prohibited + * its use, redistribution or modification are prohibited * without written authorization from Arrebol Consultancy. */ package com.arrebol.apc.controller.mobile.repository.loan; @@ -23,6 +23,7 @@ import com.arrebol.apc.model.loan.LoanDetails; import java.io.Serializable; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Calendar; import java.util.Date; import java.util.List; import org.apache.logging.log4j.LogManager; @@ -35,185 +36,197 @@ import org.hibernate.query.Query; */ public class LoanByRenovationRepository extends GenericRepository implements Serializable { - private static final long serialVersionUID = 1357519239619447184L; - final Logger logger = LogManager.getLogger(LoanByRenovationRepository.class); + private static final long serialVersionUID = 1357519239619447184L; + final Logger logger = LogManager.getLogger(LoanByRenovationRepository.class); - /** - * - * @param newLoanId - * @return - * @throws Exception - */ - public LoanByRenovation findLoanRenovationByNewLoanId(String newLoanId) throws Exception { - logger.debug("findLoanRenovationByNewLoanId"); - try { - List parameters = new ArrayList<>(); + /** + * + * @param newLoanId + * @return + * @throws Exception + */ + public LoanByRenovation findLoanRenovationByNewLoanId(String newLoanId) throws Exception { + logger.debug("findLoanRenovationByNewLoanId"); + try { + List parameters = new ArrayList<>(); - parameters.add( - new ModelParameter(LoanByRenovationCfg.FIELD_LOAN_NEW, new Loan(newLoanId)) - ); + parameters.add( + new ModelParameter(LoanByRenovationCfg.FIELD_LOAN_NEW, new Loan(newLoanId)) + ); - return (LoanByRenovation) createNamedQueryUniqueResult( - LoanByRenovation.class, - LoanByRenovationCfg.QUERY_FIND_LOAN_RENOVATION_BY_NEW_LOAN_ID, - parameters); - } catch (Exception e) { - logger.error("findLoanRenovationByNewLoanId", e); - throw e; - } - } + return (LoanByRenovation) createNamedQueryUniqueResult( + LoanByRenovation.class, + LoanByRenovationCfg.QUERY_FIND_LOAN_RENOVATION_BY_NEW_LOAN_ID, + parameters); + } catch (Exception e) { + logger.error("findLoanRenovationByNewLoanId", e); + throw e; + } + } - /** - * - * @param loanByRenovation - * @param userId - * @param comments - * @param action - * @param amount - * @param discount - * @param loanDetails - * @param totalAmountPaid - * @param newLastReferenceNumber - * @param comission - * @return - * @throws Exception - */ - public boolean updateLoanRenovationFromCerfierView( - LoanByRenovation loanByRenovation, - String userId, - String comments, - boolean action, - BigDecimal amount, - BigDecimal discount, - LoanDetails loanDetails, - BigDecimal totalAmountPaid, - Integer newLastReferenceNumber, - ComissionType comission) throws Exception { - logger.debug("updateLoanRenovationFromCerfierView"); - boolean success = false; - try { - openConnection(); + /** + * + * @param loanByRenovation + * @param userId + * @param comments + * @param action + * @param amount + * @param discount + * @param loanDetails + * @param totalAmountPaid + * @param newLastReferenceNumber + * @param comission + * @return + * @throws Exception + */ + public boolean updateLoanRenovationFromCerfierView( + LoanByRenovation loanByRenovation, + String userId, + String comments, + boolean action, + BigDecimal amount, + BigDecimal discount, + LoanDetails loanDetails, + BigDecimal totalAmountPaid, + Integer newLastReferenceNumber, + ComissionType comission) throws Exception { + logger.debug("updateLoanRenovationFromCerfierView"); + boolean success = false; + try { + openConnection(); - Date lastUpdatedOn = new Date(); - List parameters = new ArrayList<>(); + Date date2 = new Date(); + Calendar calendar2 = Calendar.getInstance(); + calendar2.setTime(date2); + calendar2.add(Calendar.HOUR_OF_DAY, -7); + date2 = calendar2.getTime(); - // Update loanByRenovation details in Renovation table - parameters.add(new ModelParameter(LoanByRenovationCfg.FIELD_LOAN_RENOVATION_STATUS, action ? LoanRenovationStatus.APPROVED : LoanRenovationStatus.REJECTED)); - parameters.add(new ModelParameter(LoanByRenovationCfg.FIELD_COMMENTS, comments)); - parameters.add(new ModelParameter(LoanByRenovationCfg.FIELD_LAST_UPDATED_BY, userId)); - parameters.add(new ModelParameter(LoanByRenovationCfg.FIELD_LAST_UPDATED_ON, lastUpdatedOn)); - parameters.add(new ModelParameter(LoanByRenovationCfg.FIELD_ID, loanByRenovation.getId())); + Date lastUpdatedOn = date2; + List parameters = new ArrayList<>(); - if (0 < executeQuery(LoanByRenovationCfg.QUERY_UPDATE_LOAN_RENOVATION, parameters)) { + // Update loanByRenovation details in Renovation table + parameters.add(new ModelParameter(LoanByRenovationCfg.FIELD_LOAN_RENOVATION_STATUS, action ? LoanRenovationStatus.APPROVED : LoanRenovationStatus.REJECTED)); + parameters.add(new ModelParameter(LoanByRenovationCfg.FIELD_COMMENTS, comments)); + parameters.add(new ModelParameter(LoanByRenovationCfg.FIELD_LAST_UPDATED_BY, userId)); + parameters.add(new ModelParameter(LoanByRenovationCfg.FIELD_LAST_UPDATED_ON, lastUpdatedOn)); + parameters.add(new ModelParameter(LoanByRenovationCfg.FIELD_ID, loanByRenovation.getId())); - parameters.clear(); + if (0 < executeQuery(LoanByRenovationCfg.QUERY_UPDATE_LOAN_RENOVATION, parameters)) { - // Update NEW loan details in Loan table - parameters.add(new ModelParameter(LoanCfg.FIELD_LOAN_STATUS, action ? LoanStatus.APPROVED : LoanStatus.REJECTED)); - parameters.add(new ModelParameter(LoanCfg.FIELD_COMMENTS, comments)); - parameters.add(new ModelParameter(LoanCfg.FIELD_CREATED_ON, lastUpdatedOn)); - parameters.add(new ModelParameter(LoanCfg.FIELD_LAST_UPDATED_BY, userId)); - parameters.add(new ModelParameter(LoanCfg.FIELD_LAST_UPDATED_ON, lastUpdatedOn)); - parameters.add(new ModelParameter(LoanCfg.FIELD_ID, loanByRenovation.getLoanNew().getId())); + parameters.clear(); - if (0 < executeQuery(LoanCfg.QUERY_UPDATE_LOAN_WITH_CREATED_ON_BY_ID_FROM_CERTIFIER_VIEW, parameters)) { - parameters.clear(); + // Update NEW loan details in Loan table + parameters.add(new ModelParameter(LoanCfg.FIELD_LOAN_STATUS, action ? LoanStatus.APPROVED : LoanStatus.REJECTED)); + parameters.add(new ModelParameter(LoanCfg.FIELD_COMMENTS, comments)); + parameters.add(new ModelParameter(LoanCfg.FIELD_CREATED_ON, lastUpdatedOn)); + parameters.add(new ModelParameter(LoanCfg.FIELD_LAST_UPDATED_BY, userId)); + parameters.add(new ModelParameter(LoanCfg.FIELD_LAST_UPDATED_ON, lastUpdatedOn)); + parameters.add(new ModelParameter(LoanCfg.FIELD_ID, loanByRenovation.getLoanNew().getId())); - // Update OLD loan details in Loan table - String commentsOldLoan = action ? "Crédito renovado" : "El certificador rechazo la renovación de este crédito"; - String strQuery = LoanCfg.QUERY_UPDATE_LOAN_BY_ID_FROM_CERTIFIER_VIEW; + if (0 < executeQuery(LoanCfg.QUERY_UPDATE_LOAN_WITH_CREATED_ON_BY_ID_FROM_CERTIFIER_VIEW, parameters)) { + parameters.clear(); - if (action && null != loanDetails && null != totalAmountPaid && null != newLastReferenceNumber) { - parameters.add(new ModelParameter(LoanCfg.FIELD_AMOUNT_PAID, totalAmountPaid)); - parameters.add(new ModelParameter(LoanCfg.FIELD_LAST_REFERENCE_NUMBER, newLastReferenceNumber)); + // Update OLD loan details in Loan table + String commentsOldLoan = action ? "Crédito renovado" : "El certificador rechazo la renovación de este crédito"; + String strQuery = LoanCfg.QUERY_UPDATE_LOAN_BY_ID_FROM_CERTIFIER_VIEW; - strQuery = LoanCfg.QUERY_UPDATE_DISCOUNT_AND_LOAN_BY_ID_FROM_CERTIFIER_VIEW; - } + if (action && null != loanDetails && null != totalAmountPaid && null != newLastReferenceNumber) { + parameters.add(new ModelParameter(LoanCfg.FIELD_AMOUNT_PAID, totalAmountPaid)); + parameters.add(new ModelParameter(LoanCfg.FIELD_LAST_REFERENCE_NUMBER, newLastReferenceNumber)); - parameters.add(new ModelParameter(LoanCfg.FIELD_LOAN_STATUS, action ? LoanStatus.FINISH : LoanStatus.APPROVED)); - parameters.add(new ModelParameter(LoanCfg.FIELD_COMMENTS, commentsOldLoan)); - parameters.add(new ModelParameter(LoanCfg.FIELD_LAST_UPDATED_BY, userId)); - parameters.add(new ModelParameter(LoanCfg.FIELD_LAST_UPDATED_ON, lastUpdatedOn)); - parameters.add(new ModelParameter(LoanCfg.FIELD_ID, loanByRenovation.getLoanOld().getId())); + strQuery = LoanCfg.QUERY_UPDATE_DISCOUNT_AND_LOAN_BY_ID_FROM_CERTIFIER_VIEW; + } - if (0 < executeQuery(strQuery, parameters)) { + parameters.add(new ModelParameter(LoanCfg.FIELD_LOAN_STATUS, action ? LoanStatus.FINISH : LoanStatus.APPROVED)); + parameters.add(new ModelParameter(LoanCfg.FIELD_COMMENTS, commentsOldLoan)); + parameters.add(new ModelParameter(LoanCfg.FIELD_LAST_UPDATED_BY, userId)); + parameters.add(new ModelParameter(LoanCfg.FIELD_LAST_UPDATED_ON, lastUpdatedOn)); + parameters.add(new ModelParameter(LoanCfg.FIELD_ID, loanByRenovation.getLoanOld().getId())); - // Update OLD loanByUser details in Loan By User Table - List params = new ArrayList<>(); + if (0 < executeQuery(strQuery, parameters)) { - params.add(new ModelParameter(LoanByUserCfg.FIELD_LOAN, new Loan(loanByRenovation.getLoanOld().getId()))); - params.add(new ModelParameter(LoanByUserCfg.FIELD_LOAN_BY_USER_STATUS, action ? LoanStatus.FINISH : LoanStatus.APPROVED)); + // Update OLD loanByUser details in Loan By User Table + List params = new ArrayList<>(); - Query query1 = getSession().createNamedQuery(LoanByUserCfg.QUERY_UPDATE_LOAN_BY_USER_BY_LOAND_ID); + params.add(new ModelParameter(LoanByUserCfg.FIELD_LOAN, new Loan(loanByRenovation.getLoanOld().getId()))); + params.add(new ModelParameter(LoanByUserCfg.FIELD_LOAN_BY_USER_STATUS, action ? LoanStatus.FINISH : LoanStatus.APPROVED)); - params.forEach((param) -> { - query1.setParameter(param.getParameter(), param.getValue()); - }); + Query query1 = getSession().createNamedQuery(LoanByUserCfg.QUERY_UPDATE_LOAN_BY_USER_BY_LOAND_ID); - query1.executeUpdate(); + params.forEach((param) -> { + query1.setParameter(param.getParameter(), param.getValue()); + }); - // Update NEW loanByUser details in Loan By User Table - params.clear(); + query1.executeUpdate(); - params.add(new ModelParameter(LoanByUserCfg.FIELD_LOAN, new Loan(loanByRenovation.getLoanNew().getId()))); - params.add(new ModelParameter(LoanByUserCfg.FIELD_LOAN_BY_USER_STATUS, action ? LoanStatus.APPROVED : LoanStatus.REJECTED)); + // Update NEW loanByUser details in Loan By User Table + params.clear(); - Query query2 = getSession().createNamedQuery(LoanByUserCfg.QUERY_UPDATE_LOAN_BY_USER_BY_LOAND_ID); + params.add(new ModelParameter(LoanByUserCfg.FIELD_LOAN, new Loan(loanByRenovation.getLoanNew().getId()))); + params.add(new ModelParameter(LoanByUserCfg.FIELD_LOAN_BY_USER_STATUS, action ? LoanStatus.APPROVED : LoanStatus.REJECTED)); - params.forEach((param) -> { - query2.setParameter(param.getParameter(), param.getValue()); - }); + Query query2 = getSession().createNamedQuery(LoanByUserCfg.QUERY_UPDATE_LOAN_BY_USER_BY_LOAND_ID); - query2.executeUpdate(); + params.forEach((param) -> { + query2.setParameter(param.getParameter(), param.getValue()); + }); - if (action) { - // Insert new loanDetails (discount) in Loan Details table - if (null != loanDetails) { - getSession().save(loanDetails); - } + query2.executeUpdate(); - // Insert delivery details (To know cash that certifier deliveried) in Delivery Table - Delivery delivery = new Delivery( - new User(userId), - new Loan(loanByRenovation.getLoanNew().getId()), - amount, - userId, - new Date(), - comission - ); + if (action) { + // Insert new loanDetails (discount) in Loan Details table + if (null != loanDetails) { + getSession().save(loanDetails); + } - getSession().save(delivery); - } + Date date = new Date(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.add(Calendar.HOUR_OF_DAY, -7); + date = calendar.getTime(); - flushAndClear(); - closeConnection(); + // Insert delivery details (To know cash that certifier deliveried) in Delivery Table + Delivery delivery = new Delivery( + new User(userId), + new Loan(loanByRenovation.getLoanNew().getId()), + amount, + userId, + date, + comission + ); - logger.info("Certifier delivery the loan details: " + loanByRenovation); - success = true; - } else { - rollback(); - } - } else { - rollback(); - } + getSession().save(delivery); + } + + flushAndClear(); + closeConnection(); + + logger.info("Certifier delivery the loan details: " + loanByRenovation); + success = true; + } else { + rollback(); + } } else { - rollback(); + rollback(); } - return success; - } catch (Exception e) { + } else { rollback(); - logger.error("updateLoanRenovationFromCerfierView", e); - throw e; - } - } + } + return success; + } catch (Exception e) { + rollback(); + logger.error("updateLoanRenovationFromCerfierView", e); + throw e; + } + } - private int executeQuery(String xmlQuery, List parameters) { - Query query = getSession().createNamedQuery(xmlQuery); + private int executeQuery(String xmlQuery, List parameters) { + Query query = getSession().createNamedQuery(xmlQuery); - parameters.forEach((param) -> { - query.setParameter(param.getParameter(), param.getValue()); - }); + parameters.forEach((param) -> { + query.setParameter(param.getParameter(), param.getValue()); + }); - return query.executeUpdate(); - } + return query.executeUpdate(); + } } diff --git a/ace-controller-mobile/src/main/java/com/arrebol/apc/controller/mobile/repository/loan/LoanDetailsRepository.java b/ace-controller-mobile/src/main/java/com/arrebol/apc/controller/mobile/repository/loan/LoanDetailsRepository.java index 9dd0bfc..ca876d7 100644 --- a/ace-controller-mobile/src/main/java/com/arrebol/apc/controller/mobile/repository/loan/LoanDetailsRepository.java +++ b/ace-controller-mobile/src/main/java/com/arrebol/apc/controller/mobile/repository/loan/LoanDetailsRepository.java @@ -1,8 +1,8 @@ /* * Arrebol Consultancy copyright. - * + * * This code belongs to Arrebol Consultancy - * its use, redistribution or modification are prohibited + * its use, redistribution or modification are prohibited * without written authorization from Arrebol Consultancy. */ package com.arrebol.apc.controller.mobile.repository.loan; @@ -16,6 +16,7 @@ import com.arrebol.apc.model.loan.LoanDetails; import java.io.Serializable; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Calendar; import java.util.Date; import java.util.List; import javax.persistence.Tuple; @@ -31,169 +32,175 @@ import org.hibernate.query.Query; */ public class LoanDetailsRepository extends GenericRepository implements Serializable { - /** - * - * @param details - * @return - * @throws Exception - */ - public boolean saveLoanDetails(LoanDetails details) throws Exception { - logger.debug("saveLoanDetails"); - try { - return save(details); - } catch (Exception e) { - logger.error("saveLoanDetails", e); - throw e; - } - } + /** + * + * @param details + * @return + * @throws Exception + */ + public boolean saveLoanDetails(LoanDetails details) throws Exception { + logger.debug("saveLoanDetails"); + try { + return save(details); + } catch (Exception e) { + logger.error("saveLoanDetails", e); + throw e; + } + } - public List findFeesToPayByLoanId(String xmlQuery, List parameters) throws Exception { - logger.debug("findFeesToPayByLoanId"); + public List findFeesToPayByLoanId(String xmlQuery, List parameters) throws Exception { + logger.debug("findFeesToPayByLoanId"); - List results = new ArrayList<>(); - try { - List tuples = xmlQueryTuple(xmlQuery, parameters); + List results = new ArrayList<>(); + try { + List tuples = xmlQueryTuple(xmlQuery, parameters); - tuples.forEach((tuple) -> { - results.add(new LoanDetails(tuple.get("id", String.class), tuple.get("createdOn", Date.class), tuple.get("feeStatus", FeeStatus.class))); + tuples.forEach((tuple) -> { + results.add(new LoanDetails(tuple.get("id", String.class), tuple.get("createdOn", Date.class), tuple.get("feeStatus", FeeStatus.class))); + }); + } catch (Exception e) { + logger.error("findFeesToPayByLoanId", e); + throw e; + } + + return results; + } + + /** + * + * @param xmlQuery + * @param parameters + * @return + * @throws Exception + */ + public List findLoanDetailsByLoanId(String xmlQuery, List parameters) throws Exception { + logger.debug("findLoanDetailsByLoanId"); + + List results = new ArrayList<>(); + try { + results = createNamedQueryResultList(LoanDetails.class, xmlQuery, parameters); + } catch (Exception e) { + logger.error("findLoanDetailsByLoanId", e); + throw e; + } + + return results; + } + + /** + * + * @param xmlQuery + * @param parameters + * @param loanDetails + * @return + * @throws Exception + */ + public boolean updatePaidFeesStatusInLoanDetailIds(String xmlQuery, List parameters, LoanDetails loanDetails) throws Exception { + boolean success = false; + + Session sssn = null; + Transaction trnsctn = null; + try { + sssn = HibernateUtil.getSessionFactory().getCurrentSession(); + trnsctn = sssn.beginTransaction(); + + Loan loan = sssn.get(Loan.class, loanDetails.getLoan().getId()); + + if (null != parameters && !parameters.isEmpty()) { + Query query = sssn.createNamedQuery(xmlQuery); + parameters.forEach((param) -> { + query.setParameter(param.getParameter(), param.getValue()); }); - } catch (Exception e) { - logger.error("findFeesToPayByLoanId", e); - throw e; - } + query.executeUpdate(); + logger.debug("Query update executed"); + } + BigDecimal totalFees = loan.getAmountPaid().add(loanDetails.getPaymentAmount()); - return results; - } + loanDetails.setReferenceNumber(loan.getLastReferenceNumber() + 1); - /** - * - * @param xmlQuery - * @param parameters - * @return - * @throws Exception - */ - public List findLoanDetailsByLoanId(String xmlQuery, List parameters) throws Exception { - logger.debug("findLoanDetailsByLoanId"); + sssn.save(loanDetails); - List results = new ArrayList<>(); - try { - results = createNamedQueryResultList(LoanDetails.class, xmlQuery, parameters); - } catch (Exception e) { - logger.error("findLoanDetailsByLoanId", e); - throw e; - } + loan.setAmountPaid(totalFees); + loan.setLastReferenceNumber(loan.getLastReferenceNumber() + 1); + loan.setLastUpdatedBy(loanDetails.getCreatedBy()); - return results; - } + Date date = new Date(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.add(Calendar.HOUR_OF_DAY, -7); + date = calendar.getTime(); + loan.setLastUpdatedOn(date); - /** - * - * @param xmlQuery - * @param parameters - * @param loanDetails - * @return - * @throws Exception - */ - public boolean updatePaidFeesStatusInLoanDetailIds(String xmlQuery, List parameters, LoanDetails loanDetails) throws Exception { - boolean success = false; + sssn.update(loan); - Session sssn = null; - Transaction trnsctn = null; - try { - sssn = HibernateUtil.getSessionFactory().getCurrentSession(); - trnsctn = sssn.beginTransaction(); + trnsctn.commit(); - Loan loan = sssn.get(Loan.class, loanDetails.getLoan().getId()); - - if (null != parameters && !parameters.isEmpty()) { - Query query = sssn.createNamedQuery(xmlQuery); - parameters.forEach((param) -> { - query.setParameter(param.getParameter(), param.getValue()); - }); - query.executeUpdate(); - logger.debug("Query update executed"); - } - BigDecimal totalFees = loan.getAmountPaid().add(loanDetails.getPaymentAmount()); - - loanDetails.setReferenceNumber(loan.getLastReferenceNumber() + 1); - - sssn.save(loanDetails); - - loan.setAmountPaid(totalFees); - loan.setLastReferenceNumber(loan.getLastReferenceNumber() + 1); - loan.setLastUpdatedBy(loanDetails.getCreatedBy()); - loan.setLastUpdatedOn(new Date()); - - sssn.update(loan); - - trnsctn.commit(); - - logger.info("Entity updated"); - success = true; - } catch (Exception e) { - logger.error("Method updatePaidFeesStatusInLoanDetailIds() ", e); - if (null != trnsctn) { - trnsctn.rollback(); - } - throw e; - } - /* finally { + logger.info("Entity updated"); + success = true; + } catch (Exception e) { + logger.error("Method updatePaidFeesStatusInLoanDetailIds() ", e); + if (null != trnsctn) { + trnsctn.rollback(); + } + throw e; + } + /* finally { if (null != sssn) { sssn.close(); } }*/ - return success; - } + return success; + } - /** - * - * @param hbmQuery - * @param params - * @return - */ - public Long countLoandDetails(String hbmQuery, List params) { - Long count; - Transaction transaction = null; - try { - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); - transaction = session.beginTransaction(); + /** + * + * @param hbmQuery + * @param params + * @return + */ + public Long countLoandDetails(String hbmQuery, List params) { + Long count; + Transaction transaction = null; + try { + Session session = HibernateUtil.getSessionFactory().getCurrentSession(); + transaction = session.beginTransaction(); - Query query = session.createNamedQuery(hbmQuery); + Query query = session.createNamedQuery(hbmQuery); - params.forEach((param) -> { - query.setParameter(param.getParameter(), param.getValue()); - }); + params.forEach((param) -> { + query.setParameter(param.getParameter(), param.getValue()); + }); - count = (Long) query.getSingleResult(); + count = (Long) query.getSingleResult(); - transaction.commit(); + transaction.commit(); - return count; - } catch (Exception e) { - logger.error("countLoandDetails", e); - if (null != transaction) { - transaction.rollback(); - } - throw e; - } - } + return count; + } catch (Exception e) { + logger.error("countLoandDetails", e); + if (null != transaction) { + transaction.rollback(); + } + throw e; + } + } - /** - * - * @param hbmQuery - * @param parameters - * @return - * @throws Exception - */ - public boolean updateLoanDetails(String hbmQuery, List parameters) throws Exception { - try { - return updateCreateNamedQuery(hbmQuery, parameters); - } catch (Exception e) { - logger.error("Method updateLoanDetails", e); - throw e; - } - } + /** + * + * @param hbmQuery + * @param parameters + * @return + * @throws Exception + */ + public boolean updateLoanDetails(String hbmQuery, List parameters) throws Exception { + try { + return updateCreateNamedQuery(hbmQuery, parameters); + } catch (Exception e) { + logger.error("Method updateLoanDetails", e); + throw e; + } + } - private static final long serialVersionUID = -6088464996350747643L; - final Logger logger = LogManager.getLogger(LoanDetailsRepository.class); + private static final long serialVersionUID = -6088464996350747643L; + final Logger logger = LogManager.getLogger(LoanDetailsRepository.class); } diff --git a/ace-ws-rest/src/main/java/com/arrebol/apc/ws/gasoline/GasolineWS.java b/ace-ws-rest/src/main/java/com/arrebol/apc/ws/gasoline/GasolineWS.java index a898df3..ac1c27b 100644 --- a/ace-ws-rest/src/main/java/com/arrebol/apc/ws/gasoline/GasolineWS.java +++ b/ace-ws-rest/src/main/java/com/arrebol/apc/ws/gasoline/GasolineWS.java @@ -1,8 +1,8 @@ /* * Arrebol Consultancy copyright. - * + * * This code belongs to Arrebol Consultancy - * its use, redistribution or modification are prohibited + * its use, redistribution or modification are prohibited * without written authorization from Arrebol Consultancy. */ package com.arrebol.apc.ws.gasoline; @@ -14,6 +14,7 @@ import com.arrebol.apc.model.core.User; import com.arrebol.apc.model.enums.GenericStatus; import com.arrebol.apc.model.gasoline.Gasoline; import java.io.Serializable; +import java.util.Calendar; import java.util.Date; import java.util.UUID; import javax.ws.rs.FormParam; @@ -32,45 +33,51 @@ import org.apache.logging.log4j.Logger; @Path("gasoline") public class GasolineWS implements Serializable { - @PUT - @Path("save-new-gasoline-payment") - @Produces(MediaType.APPLICATION_JSON) - public Response saveNewGasolinePayment(@FormParam("idUser") String idUser, - @FormParam("idOffice") String idOffice, - @FormParam("idRoute") String idRoute, - @FormParam("total") Double total, - @FormParam("km") Double km, - @FormParam("quantity") Double quantity, - @FormParam("description") String description) { - Response response; - try { - GasolineController controller = new GasolineController(); + @PUT + @Path("save-new-gasoline-payment") + @Produces(MediaType.APPLICATION_JSON) + public Response saveNewGasolinePayment(@FormParam("idUser") String idUser, + @FormParam("idOffice") String idOffice, + @FormParam("idRoute") String idRoute, + @FormParam("total") Double total, + @FormParam("km") Double km, + @FormParam("quantity") Double quantity, + @FormParam("description") String description) { + Response response; + try { + GasolineController controller = new GasolineController(); - Gasoline gasoline = new Gasoline( - UUID.randomUUID().toString(), - new User(idUser), - new Office(idOffice), - new RouteCtlg(idRoute), - quantity, - km, - total, - GenericStatus.ENABLED, - description, - idUser, - new Date()); + Date date = new Date(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.add(Calendar.HOUR_OF_DAY, -7); + date = calendar.getTime(); - if (controller.saveNewGasolinePayment(gasoline)) { - response = Response.ok().build(); - } else { - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } - } catch (Exception e) { - logger.error("saveNewGasolineEntry"); + Gasoline gasoline = new Gasoline( + UUID.randomUUID().toString(), + new User(idUser), + new Office(idOffice), + new RouteCtlg(idRoute), + quantity, + km, + total, + GenericStatus.ENABLED, + description, + idUser, + date); + + if (controller.saveNewGasolinePayment(gasoline)) { + response = Response.ok().build(); + } else { response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } - return response; - } + } + } catch (Exception e) { + logger.error("saveNewGasolineEntry"); + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + } + return response; + } - private static final long serialVersionUID = -5280895557294295916L; - final Logger logger = LogManager.getLogger(getClass()); + private static final long serialVersionUID = -5280895557294295916L; + final Logger logger = LogManager.getLogger(getClass()); } diff --git a/ace-ws-rest/src/main/java/com/arrebol/apc/ws/loan/LoanWS.java b/ace-ws-rest/src/main/java/com/arrebol/apc/ws/loan/LoanWS.java index 2985e3c..7e19589 100644 --- a/ace-ws-rest/src/main/java/com/arrebol/apc/ws/loan/LoanWS.java +++ b/ace-ws-rest/src/main/java/com/arrebol/apc/ws/loan/LoanWS.java @@ -1,8 +1,8 @@ /* * Arrebol Consultancy copyright. - * + * * This code belongs to Arrebol Consultancy - * its use, redistribution or modification are prohibited + * its use, redistribution or modification are prohibited * without written authorization from Arrebol Consultancy. */ package com.arrebol.apc.ws.loan; @@ -22,12 +22,12 @@ import com.arrebol.apc.model.enums.TransferStatus; import com.arrebol.apc.model.loan.Loan; import com.arrebol.apc.model.loan.LoanDetails; import com.arrebol.apc.model.system.logs.Bitacora; -import com.arrebol.apc.model.ws.parsed.LoanRequestedJaxb; import com.arrebol.apc.model.views.AvailableCustomersView; import com.arrebol.apc.model.views.AvailableEndorsementsView; import com.arrebol.apc.model.views.LoanToDeliveryByCertifierView; import com.arrebol.apc.model.ws.parsed.FeesToPayByLoanRequestJaxb; import com.arrebol.apc.model.ws.parsed.LoanDetailJaxb; +import com.arrebol.apc.model.ws.parsed.LoanRequestedJaxb; import com.arrebol.apc.model.ws.parsed.NewAmountJaxb; import com.arrebol.apc.model.ws.parsed.NewTransferAccountJaxb; import com.arrebol.apc.model.ws.parsed.RenovationWithEndorsementJaxb; @@ -61,770 +61,769 @@ import org.glassfish.jersey.media.multipart.FormDataParam; @Path("loan") public class LoanWS implements Serializable { - private static final long serialVersionUID = -5416113076264972459L; + private static final long serialVersionUID = -5416113076264972459L; - @GET - @Path("findAllLoans") - @Produces(MediaType.APPLICATION_JSON) - public Response findAllLoanTypeByOffice(@QueryParam("id") String id) { - logger.debug("updateOrderInList"); - Response response; - try { - response = Response.ok(loanController.findAllLoanTypeByOffice(id)).build(); - } catch (Exception e) { - logger.error("updateOrderInList", e); + @GET + @Path("findAllLoans") + @Produces(MediaType.APPLICATION_JSON) + public Response findAllLoanTypeByOffice(@QueryParam("id") String id) { + logger.debug("updateOrderInList"); + Response response; + try { + response = Response.ok(loanController.findAllLoanTypeByOffice(id)).build(); + } catch (Exception e) { + logger.error("updateOrderInList", e); + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + } + return response; + } + + @GET + @Path("findAllAvailableCustomersByType") + @Produces(MediaType.APPLICATION_JSON) + public Response findAllAvailableCustomersByType(@QueryParam("name") String name) { + logger.debug("findAllAvailableCustomersByType"); + Response response; + try { + GenericEntity> results + = new GenericEntity>( + loanController.findAllAvailableCustomersByType("%" + name + "%")) { + }; + + response = Response.ok(results).build(); + } catch (Exception e) { + logger.error("findAllAvailableCustomersByType", e); + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + } + return response; + } + + @GET + @Path("find-fees-to-pay-by-loan-id") + @Produces(MediaType.APPLICATION_JSON) + public Response findFeesToPayByLoanId(@QueryParam("idLoan") String idLoan) { + logger.debug("findFeesToPayByLoanId"); + Response response; + try { + GenericEntity> results + = new GenericEntity>( + loanController.findFeesToPayByLoanId(idLoan)) { + }; + + response = Response.ok(results).build(); + } catch (Exception e) { + logger.error("findFeesToPayByLoanId", e); + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + } + return response; + } + + @PUT + @Path("update-paid-fees-status-in-loan-detail-ids") + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + public Response updatePaidFeesStatusInLoanDetailIds(FeesToPayByLoanRequestJaxb feesToPayByLoanRequestJaxb) { + logger.debug("updatePaidFeesStatusInLoanDetailIds"); + + Response response; + try { + if (loanController.updatePaidFeesStatusInLoanDetailIds(feesToPayByLoanRequestJaxb)) { + response = Response.ok().build(); + } else { response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } - return response; - } - - @GET - @Path("findAllAvailableCustomersByType") - @Produces(MediaType.APPLICATION_JSON) - public Response findAllAvailableCustomersByType(@QueryParam("name") String name) { - logger.debug("findAllAvailableCustomersByType"); - Response response; - try { - GenericEntity> results - = new GenericEntity>( - loanController.findAllAvailableCustomersByType("%" + name + "%")) { - }; - - response = Response.ok(results).build(); - } catch (Exception e) { - logger.error("findAllAvailableCustomersByType", e); + } + } catch (Exception e) { + if (e.getMessage().contains("User unavailable to this operation")) { + response = Response.status(Response.Status.CONFLICT).build(); + } else { response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } - return response; - } + } + logger.error("updatePaidFeesStatusInLoanDetailIds", e); - @GET - @Path("find-fees-to-pay-by-loan-id") - @Produces(MediaType.APPLICATION_JSON) - public Response findFeesToPayByLoanId(@QueryParam("idLoan") String idLoan) { - logger.debug("findFeesToPayByLoanId"); - Response response; - try { - GenericEntity> results - = new GenericEntity>( - loanController.findFeesToPayByLoanId(idLoan)) { - }; + } + return response; + } - response = Response.ok(results).build(); - } catch (Exception e) { - logger.error("findFeesToPayByLoanId", e); + @GET + @Path("findAllAvailableEndorsementsByType") + @Produces(MediaType.APPLICATION_JSON) + public Response findAllAvailableEndorsementsByType(@QueryParam("name") String name) { + logger.debug("findAllAvailableEndorsementsByType"); + Response response; + try { + GenericEntity> results + = new GenericEntity>( + loanController.findAllAvailableEndorsementsByType("%" + name + "%")) { + }; + + response = Response.ok(results).build(); + } catch (Exception e) { + logger.error("findAllAvailableEndorsementsByType", e); + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + } + return response; + } + + @PUT + @Path("create") + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + public Response createLoan(LoanRequestedJaxb loan) { + logger.debug("createLoan"); + + Response response; + try { + if (loanController.createLoan(loan)) { + response = Response.ok().build(); + } else { response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } - return response; - } - - @PUT - @Path("update-paid-fees-status-in-loan-detail-ids") - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - public Response updatePaidFeesStatusInLoanDetailIds(FeesToPayByLoanRequestJaxb feesToPayByLoanRequestJaxb) { - logger.debug("updatePaidFeesStatusInLoanDetailIds"); - - Response response; - try { - if (loanController.updatePaidFeesStatusInLoanDetailIds(feesToPayByLoanRequestJaxb)) { - response = Response.ok().build(); - } else { - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } - } catch (Exception e) { - if (e.getMessage().contains("User unavailable to this operation")) { - response = Response.status(Response.Status.CONFLICT).build(); - } else { - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } - logger.error("updatePaidFeesStatusInLoanDetailIds", e); - - } - return response; - } - - @GET - @Path("findAllAvailableEndorsementsByType") - @Produces(MediaType.APPLICATION_JSON) - public Response findAllAvailableEndorsementsByType(@QueryParam("name") String name) { - logger.debug("findAllAvailableEndorsementsByType"); - Response response; - try { - GenericEntity> results - = new GenericEntity>( - loanController.findAllAvailableEndorsementsByType("%" + name + "%")) { - }; - - response = Response.ok(results).build(); - } catch (Exception e) { - logger.error("findAllAvailableEndorsementsByType", e); + } + } catch (Exception e) { + if (e.getMessage().contains("User unavailable to this operation")) { + response = Response.status(Response.Status.CONFLICT).build(); + } else { response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } - return response; - } + } + logger.error("createLoan", e); - @PUT - @Path("create") - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - public Response createLoan(LoanRequestedJaxb loan) { - logger.debug("createLoan"); + } + return response; + } - Response response; - try { - if (loanController.createLoan(loan)) { - response = Response.ok().build(); - } else { - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } - } catch (Exception e) { - if (e.getMessage().contains("User unavailable to this operation")) { - response = Response.status(Response.Status.CONFLICT).build(); - } else { - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } - logger.error("createLoan", e); + @PUT + @Path("create-with-image") + @Consumes(MediaType.MULTIPART_FORM_DATA) + @Produces(MediaType.APPLICATION_JSON) + public Response createLoanWithImage( + // LoanRequestedJaxb loan, + @FormDataParam("thumbnail") ThumbnailJaxb thumbnail, + @FormDataParam("thumbnail") FormDataContentDisposition thumbnailMetaData) { + logger.debug("createLoan"); - } - return response; - } - - @PUT - @Path("create-with-image") - @Consumes(MediaType.MULTIPART_FORM_DATA) - @Produces(MediaType.APPLICATION_JSON) - public Response createLoanWithImage( - // LoanRequestedJaxb loan, - @FormDataParam("thumbnail") ThumbnailJaxb thumbnail, - @FormDataParam("thumbnail") FormDataContentDisposition thumbnailMetaData) { - logger.debug("createLoan"); - - Response response; - try { - if (true/*loanController.createLoan(loan)*/) { - response = Response.ok().build(); - } else { - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } - } catch (Exception e) { - if (e.getMessage().contains("User unavailable to this operation")) { - response = Response.status(Response.Status.CONFLICT).build(); - } else { - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } - logger.error("createLoan", e); - - } - return response; - } - - @PUT - @Path("create-with-image2") - @Consumes(MediaType.MULTIPART_FORM_DATA) - @Produces(MediaType.APPLICATION_JSON) - public Response createLoanWithImage2( - // LoanRequestedJaxb loan, - @FormDataParam("file") InputStream file, - @FormDataParam("file") FormDataContentDisposition fileDisposition) { - logger.debug("createLoan"); - - Response response; - try { - if (true/*loanController.createLoan(loan)*/) { - response = Response.ok().build(); - } else { - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } - } catch (Exception e) { - if (e.getMessage().contains("User unavailable to this operation")) { - response = Response.status(Response.Status.CONFLICT).build(); - } else { - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } - logger.error("createLoan", e); - - } - return response; - } - - @POST - @Path("saveNewAmount") - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - public Response saveNewAmount(NewAmountJaxb newAmountJaxb) { - logger.debug("saveNewAmount"); - Response response; - try { - if (newAmountJaxb.getAmount().compareTo(BigDecimal.ZERO) <= 0 && !newAmountJaxb.getManager()) { - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } else { - if (systemPreferenceController.findConfigurationButton(newAmountJaxb.getUserId(), newAmountJaxb.getOfficeId()).isActiveButton()) { - - if (loanController.saveNewAmount(newAmountJaxb)) { - response = Response.ok().build(); - } else { - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } - } else { - response = Response.status(Response.Status.CONFLICT).build(); - } - } - } catch (Exception e) { - logger.error("saveNewAmount", e); + Response response; + try { + if (true/*loanController.createLoan(loan)*/) { + response = Response.ok().build(); + } else { response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } - return response; - } + } + } catch (Exception e) { + if (e.getMessage().contains("User unavailable to this operation")) { + response = Response.status(Response.Status.CONFLICT).build(); + } else { + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + } + logger.error("createLoan", e); - @POST - @Path("saveNewTransferAccount") - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - public Response saveNewTransferAccount(NewTransferAccountJaxb transfer) { - logger.debug("saveNewTransferAccount"); - Response response; - try { - if (transfer.getAmount().compareTo(BigDecimal.ZERO) <= 0 && !transfer.getManager()) { - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + } + return response; + } + + @PUT + @Path("create-with-image2") + @Consumes(MediaType.MULTIPART_FORM_DATA) + @Produces(MediaType.APPLICATION_JSON) + public Response createLoanWithImage2( + // LoanRequestedJaxb loan, + @FormDataParam("file") InputStream file, + @FormDataParam("file") FormDataContentDisposition fileDisposition) { + logger.debug("createLoan"); + + Response response; + try { + if (true/*loanController.createLoan(loan)*/) { + response = Response.ok().build(); + } else { + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + } + } catch (Exception e) { + if (e.getMessage().contains("User unavailable to this operation")) { + response = Response.status(Response.Status.CONFLICT).build(); + } else { + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + } + logger.error("createLoan", e); + + } + return response; + } + + @POST + @Path("saveNewAmount") + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + public Response saveNewAmount(NewAmountJaxb newAmountJaxb) { + logger.debug("saveNewAmount"); + Response response; + try { + if (newAmountJaxb.getAmount().compareTo(BigDecimal.ZERO) <= 0 && !newAmountJaxb.getManager()) { + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + } else { + if (systemPreferenceController.findConfigurationButton(newAmountJaxb.getUserId(), newAmountJaxb.getOfficeId()).isActiveButton()) { + + if (loanController.saveNewAmount(newAmountJaxb)) { + response = Response.ok().build(); + } else { + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + } } else { - if (systemPreferenceController.findConfigurationButton(transfer.getUserId(), transfer.getOfficeId()).isActiveButton()) { - - if (loanController.saveNewTransferAmount(transfer)) { - response = Response.ok().build(); - } else { - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } - } else { - response = Response.status(Response.Status.CONFLICT).build(); - } + response = Response.status(Response.Status.CONFLICT).build(); } - } catch (Exception e) { - logger.error("saveNewTransferAccount", e); + } + } catch (Exception e) { + logger.error("saveNewAmount", e); + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + } + return response; + } + + @POST + @Path("saveNewTransferAccount") + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + public Response saveNewTransferAccount(NewTransferAccountJaxb transfer) { + logger.debug("saveNewTransferAccount"); + Response response; + try { + if (transfer.getAmount().compareTo(BigDecimal.ZERO) <= 0 && !transfer.getManager()) { response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } - return response; - } + } else { + if (systemPreferenceController.findConfigurationButton(transfer.getUserId(), transfer.getOfficeId()).isActiveButton()) { - @GET - @Path("findNewCreditLimit") - @Produces(MediaType.APPLICATION_JSON) - public Response findNewCreditLimit(@QueryParam("office") String office, @QueryParam("loan") String loan) { - logger.debug("findNewCreditLimit"); - Response response; - try { - /** - * This method is for get all loan types applying some business - * rules, like number of Fees and if you are ok in 100% you can get - * next loan. - */ - //response = Response.ok(loanController.findNewCreditLimit(office, loan)).build(); - response = Response.ok(loanController.findAllLoansTypeByOffice(office)).build(); - } catch (Exception e) { - logger.error("findNewCreditLimit", e); - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } - return response; - } - - @PUT - @Path("renovation") - @Produces(MediaType.APPLICATION_JSON) - public Response renovation( - @FormParam("loan") String loan, - @FormParam("credit") String credit, - @FormParam("user") String user, - @FormParam("office") String office, - @FormParam("amount") double amount, - @FormParam("currentOwner") String currentOwner) { - logger.debug("renovation"); - - Response response; - try { - if (systemPreferenceController.findConfigurationButton(user, office).isActiveButton()) { - if (validateRenovationData(loan, credit, user)) { - if (loanController.renovation(loan, credit, user, new BigDecimal(amount), null)) { - response = Response.ok().build(); - } else { - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } - } else { - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } + if (loanController.saveNewTransferAmount(transfer)) { + response = Response.ok().build(); + } else { + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + } } else { - response = Response.status(Response.Status.CONFLICT).build(); + response = Response.status(Response.Status.CONFLICT).build(); } - } catch (Exception e) { - logger.error("renovation", e); - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } - return response; - } + } + } catch (Exception e) { + logger.error("saveNewTransferAccount", e); + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + } + return response; + } - @PUT - @Path("renovation-has-payment-today") - @Produces(MediaType.APPLICATION_JSON) - public Response renovationHasPaymentToday( - @FormParam("loan") String loan, - @FormParam("credit") String credit, - @FormParam("user") String user, - @FormParam("office") String office, - @FormParam("amount") double amount, - @FormParam("currentOwner") String currentOwner) { - logger.debug("renovationHasPaymentToday"); + @GET + @Path("findNewCreditLimit") + @Produces(MediaType.APPLICATION_JSON) + public Response findNewCreditLimit(@QueryParam("office") String office, @QueryParam("loan") String loan) { + logger.debug("findNewCreditLimit"); + Response response; + try { + /** + * This method is for get all loan types applying some business rules, + * like number of Fees and if you are ok in 100% you can get next loan. + */ + //response = Response.ok(loanController.findNewCreditLimit(office, loan)).build(); + response = Response.ok(loanController.findAllLoansTypeByOffice(office)).build(); + } catch (Exception e) { + logger.error("findNewCreditLimit", e); + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + } + return response; + } - Response response; - try { - if (systemPreferenceController.findConfigurationButton(user, office).isActiveButton()) { - if (validateRenovationData(loan, credit, user)) { - if (loanController.renovationHasPaymentToday(loan, credit, user, new BigDecimal(amount), currentOwner, null)) { - response = Response.ok().build(); - } else { - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } - } else { - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } + @PUT + @Path("renovation") + @Produces(MediaType.APPLICATION_JSON) + public Response renovation( + @FormParam("loan") String loan, + @FormParam("credit") String credit, + @FormParam("user") String user, + @FormParam("office") String office, + @FormParam("amount") double amount, + @FormParam("currentOwner") String currentOwner) { + logger.debug("renovation"); + + Response response; + try { + if (systemPreferenceController.findConfigurationButton(user, office).isActiveButton()) { + if (validateRenovationData(loan, credit, user)) { + if (loanController.renovation(loan, credit, user, new BigDecimal(amount), null)) { + response = Response.ok().build(); + } else { + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + } } else { - response = Response.status(Response.Status.CONFLICT).build(); + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); } - } catch (Exception e) { - logger.error("renovationHasPaymentToday", e); - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } - return response; - } + } else { + response = Response.status(Response.Status.CONFLICT).build(); + } + } catch (Exception e) { + logger.error("renovation", e); + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + } + return response; + } - @GET - @Path("deliveryList") - @Produces(MediaType.APPLICATION_JSON) - public Response deliveryList(@QueryParam("user") String userId) { - logger.debug("deliveryList"); - Response response; - try { - GenericEntity> results - = new GenericEntity< List< LoanToDeliveryByCertifierView>>( - loanController.findLoansByCertifier(userId) - ) { - }; + @PUT + @Path("renovation-has-payment-today") + @Produces(MediaType.APPLICATION_JSON) + public Response renovationHasPaymentToday( + @FormParam("loan") String loan, + @FormParam("credit") String credit, + @FormParam("user") String user, + @FormParam("office") String office, + @FormParam("amount") double amount, + @FormParam("currentOwner") String currentOwner) { + logger.debug("renovationHasPaymentToday"); - response = Response.ok(results).build(); - } catch (Exception e) { - logger.error("deliveryList", e); - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } - return response; - } - - @POST - @Path("certifierAction") - @Produces(MediaType.APPLICATION_JSON) - public Response certifierAction( - @FormParam(value = "id") String id, - @FormParam(value = "user") String user, - @FormParam(value = "office") String office, - @FormParam(value = "comments") String comments, - @FormParam(value = "action") boolean action, - @FormParam(value = "amount") double amount, - @FormParam(value = "discount") double discount) { - logger.debug("certifierAction"); - Response response; - try { - if (systemPreferenceController.findConfigurationButton(user, office).isActiveButton()) { - if (loanController.certifierAction(id, user, comments, action, new BigDecimal(amount), new BigDecimal(discount))) { - response = Response.ok().build(); - } else { - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } + Response response; + try { + if (systemPreferenceController.findConfigurationButton(user, office).isActiveButton()) { + if (validateRenovationData(loan, credit, user)) { + if (loanController.renovationHasPaymentToday(loan, credit, user, new BigDecimal(amount), currentOwner, null)) { + response = Response.ok().build(); + } else { + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + } } else { - response = Response.status(Response.Status.CONFLICT).build(); + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); } - } catch (Exception e) { - logger.error("certifierAction", e); - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } - return response; - } + } else { + response = Response.status(Response.Status.CONFLICT).build(); + } + } catch (Exception e) { + logger.error("renovationHasPaymentToday", e); + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + } + return response; + } - @POST - @Path("certifier-action-with-comission") - @Produces(MediaType.APPLICATION_JSON) - public Response certifierActionWithComission( - @FormParam(value = "id") String id, - @FormParam(value = "user") String user, - @FormParam(value = "office") String office, - @FormParam(value = "comments") String comments, - @FormParam(value = "action") boolean action, - @FormParam(value = "amount") double amount, - @FormParam(value = "discount") double discount, - @FormParam(value = "includeComission") boolean includeComission) { - logger.debug("certifierAction"); - Response response; - try { - if (systemPreferenceController.findConfigurationButton(user, office).isActiveButton()) { - if (loanController.certifierAction(id, user, comments, action, new BigDecimal(amount), new BigDecimal(discount), includeComission ? ComissionType.INCLUDED : ComissionType.EXCLUDED)) { - response = Response.ok().build(); - } else { - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } + @GET + @Path("deliveryList") + @Produces(MediaType.APPLICATION_JSON) + public Response deliveryList(@QueryParam("user") String userId) { + logger.debug("deliveryList"); + Response response; + try { + GenericEntity> results + = new GenericEntity< List< LoanToDeliveryByCertifierView>>( + loanController.findLoansByCertifier(userId) + ) { + }; + + response = Response.ok(results).build(); + } catch (Exception e) { + logger.error("deliveryList", e); + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + } + return response; + } + + @POST + @Path("certifierAction") + @Produces(MediaType.APPLICATION_JSON) + public Response certifierAction( + @FormParam(value = "id") String id, + @FormParam(value = "user") String user, + @FormParam(value = "office") String office, + @FormParam(value = "comments") String comments, + @FormParam(value = "action") boolean action, + @FormParam(value = "amount") double amount, + @FormParam(value = "discount") double discount) { + logger.debug("certifierAction"); + Response response; + try { + if (systemPreferenceController.findConfigurationButton(user, office).isActiveButton()) { + if (loanController.certifierAction(id, user, comments, action, new BigDecimal(amount), new BigDecimal(discount))) { + response = Response.ok().build(); } else { - response = Response.status(Response.Status.CONFLICT).build(); + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); } - } catch (Exception e) { - logger.error("certifierAction", e); - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } - return response; - } + } else { + response = Response.status(Response.Status.CONFLICT).build(); + } + } catch (Exception e) { + logger.error("certifierAction", e); + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + } + return response; + } - @GET - @Path("approved-details") - @Produces(MediaType.APPLICATION_JSON) - public Response approvedDetailsByIdLoan(@QueryParam("id") String loan) { - logger.debug("approvedDetailsByIdLoan"); - Response response; - try { + @POST + @Path("certifier-action-with-comission") + @Produces(MediaType.APPLICATION_JSON) + public Response certifierActionWithComission( + @FormParam(value = "id") String id, + @FormParam(value = "user") String user, + @FormParam(value = "office") String office, + @FormParam(value = "comments") String comments, + @FormParam(value = "action") boolean action, + @FormParam(value = "amount") double amount, + @FormParam(value = "discount") double discount, + @FormParam(value = "includeComission") boolean includeComission) { + logger.debug("certifierAction"); + Response response; + try { + if (systemPreferenceController.findConfigurationButton(user, office).isActiveButton()) { + if (loanController.certifierAction(id, user, comments, action, new BigDecimal(amount), new BigDecimal(discount), includeComission ? ComissionType.INCLUDED : ComissionType.EXCLUDED)) { + response = Response.ok().build(); + } else { + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + } + } else { + response = Response.status(Response.Status.CONFLICT).build(); + } + } catch (Exception e) { + logger.error("certifierAction", e); + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + } + return response; + } - GenericEntity> results - = new GenericEntity< List< LoanDetailJaxb>>( - loanController.approvedDetailsByIdLoan(loan) - ) { - }; + @GET + @Path("approved-details") + @Produces(MediaType.APPLICATION_JSON) + public Response approvedDetailsByIdLoan(@QueryParam("id") String loan) { + logger.debug("approvedDetailsByIdLoan"); + Response response; + try { - response = Response.ok(results).build(); - } catch (Exception e) { - logger.error("approvedDetailsByIdLoan", e); - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } - return response; - } + GenericEntity> results + = new GenericEntity< List< LoanDetailJaxb>>( + loanController.approvedDetailsByIdLoan(loan) + ) { + }; - @PUT - @Path("renovation-with-endorsement") - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - public Response renovationWithEndorsement(RenovationWithEndorsementJaxb renovation) { - logger.debug("renovationWithEndorsement"); + response = Response.ok(results).build(); + } catch (Exception e) { + logger.error("approvedDetailsByIdLoan", e); + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + } + return response; + } - Response response; - try { - if (systemPreferenceController.findConfigurationButton(renovation.getUser(), renovation.getOffice()).isActiveButton()) { - if (validateRenovationData(renovation.getLoan(), renovation.getCredit(), renovation.getUser())) { - if (renovation.isHasPaymentToday()) { - if (loanController.renovationHasPaymentToday(renovation.getLoan(), renovation.getCredit(), renovation.getUser(), new BigDecimal(renovation.getAmount()), renovation.getCurrentOwner(), renovation.getEndorsement())) { - response = Response.ok().build(); - } else { - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + @PUT + @Path("renovation-with-endorsement") + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + public Response renovationWithEndorsement(RenovationWithEndorsementJaxb renovation) { + logger.debug("renovationWithEndorsement"); + + Response response; + try { + if (systemPreferenceController.findConfigurationButton(renovation.getUser(), renovation.getOffice()).isActiveButton()) { + if (validateRenovationData(renovation.getLoan(), renovation.getCredit(), renovation.getUser())) { + if (renovation.isHasPaymentToday()) { + if (loanController.renovationHasPaymentToday(renovation.getLoan(), renovation.getCredit(), renovation.getUser(), new BigDecimal(renovation.getAmount()), renovation.getCurrentOwner(), renovation.getEndorsement())) { + response = Response.ok().build(); + } else { + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + } + } else { + if (loanController.renovation(renovation.getLoan(), renovation.getCredit(), renovation.getUser(), new BigDecimal(renovation.getAmount()), renovation.getEndorsement())) { + response = Response.ok().build(); + } else { + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + } + } + } else { + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + } + } else { + response = Response.status(Response.Status.CONFLICT).build(); + } + } catch (Exception e) { + logger.error("renovationWithEndorsement", e); + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + } + return response; + } + + @PUT + @Path("delete-today-payment") + @Produces(MediaType.APPLICATION_JSON) + public Response deleteTodayPayment( + @FormParam(value = "customer") String customerId, + @FormParam(value = "loan") String loanId, + @FormParam(value = "user") String userId, + @FormParam(value = "office") String office, + @FormParam(value = "comments") String comments, + @FormParam(value = "action") String action) { + logger.debug("deleteTodayPayment"); + Response response; + try { + DeleteLoanDetailsJaxb deleteLoanDetailsJaxb = loanController.enebleToDeleteTodayDetails(customerId, userId); + if (deleteLoanDetailsJaxb.getApprovedOrPendingRenovation()) { + Bitacora bitacora = new Bitacora(); + StringBuilder builder = new StringBuilder("Eliminar "); + + builder.append(("DELETE_PAYMENT".equals(action) ? "abono" : "multa")); + + bitacora.setAction(builder.toString()); + bitacora.setCommentsUser(comments); + bitacora.setCreatedBy(userId); + bitacora.setCreatedOn(new Date()); + bitacora.setNameUser("Certificador"); + bitacora.setOffice(new Office(office)); + + switch (action) { + case "DELETE_PAYMENT": + if (deleteLoanDetailsJaxb.getTodayPayment()) { + List details = loanController.getLoanDetailsCurdatebyIdLoan(loanId); + + if (details != null && !details.isEmpty()) { + + Loan loanUpdate = loanController.getLoanById(loanId); + BigDecimal tempMonto = BigDecimal.ZERO; + + for (LoanDetails detail : details) { + loanUpdate.setAmountPaid(loanUpdate.getAmountPaid().subtract(detail.getPaymentAmount())); + loanUpdate.setLastReferenceNumber(loanUpdate.getLastReferenceNumber() - 1); + tempMonto = tempMonto.add(detail.getPaymentAmount()); } - } else { - if (loanController.renovation(renovation.getLoan(), renovation.getCredit(), renovation.getUser(), new BigDecimal(renovation.getAmount()), renovation.getEndorsement())) { - response = Response.ok().build(); - } else { - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + + bitacora.setDescription("Un abono del cliente " + loanUpdate.getCustomer().getFullName() + " se borro desde la APP Movil monto $" + tempMonto.toString()); + + if (loanController.deleteLoanDetailsByLoanCurdate(new Loan(loanId))) { + Date date = new Date(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.add(Calendar.DAY_OF_YEAR, -1); + date = calendar.getTime(); + loanUpdate.setLastUpdatedOn(date); + + loanController.updateLoan(loanUpdate); + + //bitacoraCtrl.saveBitacora(bitacora); } - } - } else { - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } - } else { - response = Response.status(Response.Status.CONFLICT).build(); - } - } catch (Exception e) { - logger.error("renovationWithEndorsement", e); - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } - return response; - } + } + response = Response.ok().build(); + } else { + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + } + break; + case "DELETE_FEE": + if (deleteLoanDetailsJaxb.getTodayFee()) { - @PUT - @Path("delete-today-payment") - @Produces(MediaType.APPLICATION_JSON) - public Response deleteTodayPayment( - @FormParam(value = "customer") String customerId, - @FormParam(value = "loan") String loanId, - @FormParam(value = "user") String userId, - @FormParam(value = "office") String office, - @FormParam(value = "comments") String comments, - @FormParam(value = "action") String action) { - logger.debug("deleteTodayPayment"); - Response response; - try { - DeleteLoanDetailsJaxb deleteLoanDetailsJaxb = loanController.enebleToDeleteTodayDetails(customerId, userId); - if (deleteLoanDetailsJaxb.getApprovedOrPendingRenovation()) { - Bitacora bitacora = new Bitacora(); - StringBuilder builder = new StringBuilder("Eliminar "); + List details = loanController.getLoanDetailsFeeCurdatebyIdLoan(loanId); - builder.append(("DELETE_PAYMENT".equals(action) ? "abono" : "multa")); + if (details != null && !details.isEmpty()) { + Loan loanUpdate = loanController.getLoanById(loanId); + BigDecimal tempMonto = BigDecimal.ZERO; - bitacora.setAction(builder.toString()); - bitacora.setCommentsUser(comments); - bitacora.setCreatedBy(userId); - bitacora.setCreatedOn(new Date()); - bitacora.setNameUser("Certificador"); - bitacora.setOffice(new Office(office)); - - switch (action) { - case "DELETE_PAYMENT": - if (deleteLoanDetailsJaxb.getTodayPayment()) { - List details = loanController.getLoanDetailsCurdatebyIdLoan(loanId); - - if (details != null && !details.isEmpty()) { - - Loan loanUpdate = loanController.getLoanById(loanId); - BigDecimal tempMonto = BigDecimal.ZERO; - - for (LoanDetails detail : details) { - loanUpdate.setAmountPaid(loanUpdate.getAmountPaid().subtract(detail.getPaymentAmount())); - loanUpdate.setLastReferenceNumber(loanUpdate.getLastReferenceNumber() - 1); - tempMonto = tempMonto.add(detail.getPaymentAmount()); - } - - bitacora.setDescription("Un abono del cliente " + loanUpdate.getCustomer().getFullName() + " se borro desde la APP Movil monto $" + tempMonto.toString()); - - if (loanController.deleteLoanDetailsByLoanCurdate(new Loan(loanId))) { - Date date = new Date(); - Calendar calendar = Calendar.getInstance(); - calendar.setTime(date); - calendar.add(Calendar.DAY_OF_YEAR, -1); - date = calendar.getTime(); - loanUpdate.setLastUpdatedOn(date); - - loanController.updateLoan(loanUpdate); - - //bitacoraCtrl.saveBitacora(bitacora); - } - } - response = Response.ok().build(); - } else { - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + for (LoanDetails detail : details) { + loanUpdate.setAmountToPay(loanUpdate.getAmountToPay().subtract(detail.getPaymentAmount())); + tempMonto = tempMonto.add(detail.getPaymentAmount()); } - break; - case "DELETE_FEE": - if (deleteLoanDetailsJaxb.getTodayFee()) { + bitacora.setDescription("Una multa del cliente " + loanUpdate.getCustomer().getFullName() + " se borro desde la APP Movil monto $" + tempMonto.toString()); + if (loanController.deleteLoanDetailsFeeByLoanCurdate(loanId)) { + loanController.deleteLoanFeeNotificationByLoanCurdate(loanId); - List details = loanController.getLoanDetailsFeeCurdatebyIdLoan(loanId); + Date date = new Date(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.add(Calendar.DAY_OF_YEAR, -1); + date = calendar.getTime(); + loanUpdate.setLastUpdatedOn(date); - if (details != null && !details.isEmpty()) { - Loan loanUpdate = loanController.getLoanById(loanId); - BigDecimal tempMonto = BigDecimal.ZERO; - - for (LoanDetails detail : details) { - loanUpdate.setAmountToPay(loanUpdate.getAmountToPay().subtract(detail.getPaymentAmount())); - tempMonto = tempMonto.add(detail.getPaymentAmount()); - } - bitacora.setDescription("Una multa del cliente " + loanUpdate.getCustomer().getFullName() + " se borro desde la APP Movil monto $" + tempMonto.toString()); - if (loanController.deleteLoanDetailsFeeByLoanCurdate(loanId)) { - loanController.deleteLoanFeeNotificationByLoanCurdate(loanId); - - Date date = new Date(); - Calendar calendar = Calendar.getInstance(); - calendar.setTime(date); - calendar.add(Calendar.DAY_OF_YEAR, -1); - date = calendar.getTime(); - loanUpdate.setLastUpdatedOn(date); - - loanController.updateLoan(loanUpdate); - //bitacoraCtrl.saveBitacora(bitacora); - } - } - response = Response.ok().build(); - } else { - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + loanController.updateLoan(loanUpdate); + //bitacoraCtrl.saveBitacora(bitacora); } - break; - default: - response = Response.ok().build(); - } - } else { - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + } + response = Response.ok().build(); + } else { + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + } + break; + default: + response = Response.ok().build(); } - } catch (Exception e) { - logger.error("deleteTodayPayment"); + } else { response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } + } + } catch (Exception e) { + logger.error("deleteTodayPayment"); + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + } - return response; - } + return response; + } - @GET - @Path("eneble-to-delete-today-details") - @Produces(MediaType.APPLICATION_JSON) - public Response enebleToDeleteTodayDetails(@QueryParam("id") String customerId, @QueryParam("user") String userId) { - logger.debug("enebleToDeleteTodayDetails"); - Response response; - try { - response = Response.ok(loanController.enebleToDeleteTodayDetails(customerId, userId)).build(); - } catch (Exception e) { - logger.error("enebleToDeleteTodayDetails"); - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } + @GET + @Path("eneble-to-delete-today-details") + @Produces(MediaType.APPLICATION_JSON) + public Response enebleToDeleteTodayDetails(@QueryParam("id") String customerId, @QueryParam("user") String userId) { + logger.debug("enebleToDeleteTodayDetails"); + Response response; + try { + response = Response.ok(loanController.enebleToDeleteTodayDetails(customerId, userId)).build(); + } catch (Exception e) { + logger.error("enebleToDeleteTodayDetails"); + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + } - return response; - } + return response; + } - @PUT - @Path("update-loan-type-by-loan-id") - @Produces(MediaType.APPLICATION_JSON) - public Response updateLoanTypeByLoanId(@FormParam("idLoan") String idLoan, - @FormParam("idLoanType") String idLoanType) { - Response response; - GenericAPCResponserJaxb apcResponse = new GenericAPCResponserJaxb(); - try { - if (loanController.updatePaymentTotalLoanById(idLoan, idLoanType)) { - apcResponse.setSuccessful(Boolean.TRUE); - apcResponse.setEnabledSubmit(Boolean.FALSE); - apcResponse.setMessage("Se actualizo el monto del prestamo"); - response = Response.ok().entity(apcResponse).build(); - } else { - apcResponse.setSuccessful(Boolean.FALSE); - apcResponse.setEnabledSubmit(Boolean.FALSE); - apcResponse.setMessage("No se actualizo el monto del prestamo"); - response = Response.ok().entity(apcResponse).build(); - } - } catch (Exception e) { - apcResponse.setSuccessful(Boolean.FALSE); + @PUT + @Path("update-loan-type-by-loan-id") + @Produces(MediaType.APPLICATION_JSON) + public Response updateLoanTypeByLoanId(@FormParam("idLoan") String idLoan, + @FormParam("idLoanType") String idLoanType) { + Response response; + GenericAPCResponserJaxb apcResponse = new GenericAPCResponserJaxb(); + try { + if (loanController.updatePaymentTotalLoanById(idLoan, idLoanType)) { + apcResponse.setSuccessful(Boolean.TRUE); apcResponse.setEnabledSubmit(Boolean.FALSE); - apcResponse.setMessage("Error al actualizar el monto del prestamo"); + apcResponse.setMessage("Se actualizo el monto del prestamo"); response = Response.ok().entity(apcResponse).build(); - logger.error("deleteClosingDay", e); - - } - return response; - } - - @GET - @Path("find-all-transfer-to-authorize") - @Produces(MediaType.APPLICATION_JSON) - public Response findAllTransferToAuthorize() { - logger.debug("findAllTransferToAuthorize"); - Response response; - try { - GenericEntity> results - = new GenericEntity>( - loanController.findAllTransferToAuthorize()) { - }; - - response = Response.ok(results).build(); - } catch (Exception e) { - logger.error("findAllTransferToAuthorize", e); - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } - return response; - } - - @PUT - @Path("update-transfer-list") - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - public Response updateTransferList(AuthorizeTransferList authorizeTransferList) { - Response response; - GenericAPCResponserJaxb apcResponse = new GenericAPCResponserJaxb(); - try { - if (loanController.updateTransferList(authorizeTransferList, TransferStatus.AUTHORIZED)) { - apcResponse.setSuccessful(Boolean.TRUE); - apcResponse.setEnabledSubmit(Boolean.FALSE); - String message = authorizeTransferList.getTransferListToUpdateStatus().size() == 1 ? "Se autorizo la transferencia bancaria" : "Se autorizaron las transferencias bancarias"; - apcResponse.setMessage(message); - response = Response.ok().entity(apcResponse).build(); - } else { - apcResponse.setSuccessful(Boolean.FALSE); - apcResponse.setEnabledSubmit(Boolean.FALSE); - String message = authorizeTransferList.getTransferListToUpdateStatus().size() == 1 ? "No se autorizo la trasferencia bancaria" : "No se autorizaron las trasferencias bancaria"; - apcResponse.setMessage(message); - response = Response.ok().entity(apcResponse).build(); - } - } catch (Exception e) { + } else { apcResponse.setSuccessful(Boolean.FALSE); apcResponse.setEnabledSubmit(Boolean.FALSE); - String message = authorizeTransferList.getTransferListToUpdateStatus().size() == 1 ? "Error al autorizar la transferencia bancaria" : "Error al autorizar las transferencias bancaria"; + apcResponse.setMessage("No se actualizo el monto del prestamo"); + response = Response.ok().entity(apcResponse).build(); + } + } catch (Exception e) { + apcResponse.setSuccessful(Boolean.FALSE); + apcResponse.setEnabledSubmit(Boolean.FALSE); + apcResponse.setMessage("Error al actualizar el monto del prestamo"); + response = Response.ok().entity(apcResponse).build(); + logger.error("deleteClosingDay", e); + + } + return response; + } + + @GET + @Path("find-all-transfer-to-authorize") + @Produces(MediaType.APPLICATION_JSON) + public Response findAllTransferToAuthorize() { + logger.debug("findAllTransferToAuthorize"); + Response response; + try { + GenericEntity> results + = new GenericEntity>( + loanController.findAllTransferToAuthorize()) { + }; + + response = Response.ok(results).build(); + } catch (Exception e) { + logger.error("findAllTransferToAuthorize", e); + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + } + return response; + } + + @PUT + @Path("update-transfer-list") + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + public Response updateTransferList(AuthorizeTransferList authorizeTransferList) { + Response response; + GenericAPCResponserJaxb apcResponse = new GenericAPCResponserJaxb(); + try { + if (loanController.updateTransferList(authorizeTransferList, TransferStatus.AUTHORIZED)) { + apcResponse.setSuccessful(Boolean.TRUE); + apcResponse.setEnabledSubmit(Boolean.FALSE); + String message = authorizeTransferList.getTransferListToUpdateStatus().size() == 1 ? "Se autorizo la transferencia bancaria" : "Se autorizaron las transferencias bancarias"; apcResponse.setMessage(message); - response = Response.ok().entity(apcResponse).build(); - logger.error("updateTransferList", e); - - } - return response; - } - - @GET - @Path("find-all-loans-in-pending-status-to-delivery") - @Produces(MediaType.APPLICATION_JSON) - public Response findAllLoanInPendingStatusToDeliveryView() { - logger.debug("findAllLoanInPendingStatusToDeliveryView"); - Response response; - try { - GenericEntity> results - = new GenericEntity>( - loanController.findAllLoanInPendingStatusToDeliveryView()) { - }; - - response = Response.ok(results).build(); - } catch (Exception e) { - logger.error("findAllLoanInPendingStatusToDeliveryView", e); - response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); - } - return response; - } - - @PUT - @Path("update-loan-pending-status-to-delivery") - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - public Response updateLoanPendingStatusToDelivery(UpdateLoanToDeliveryStatusList updateLoanToDeliveryStatusList) { - Response response; - GenericAPCResponserJaxb apcResponse = new GenericAPCResponserJaxb(); - try { - if (loanController.updateLoanPendingStatusToDelivery(updateLoanToDeliveryStatusList, LoanStatus.TO_DELIVERY)) { - apcResponse.setSuccessful(Boolean.TRUE); - apcResponse.setEnabledSubmit(Boolean.FALSE); - String message = updateLoanToDeliveryStatusList.getLoanToDeliveryList().size() == 1 ? "Se liberó el prestamo" : "Se liberaron los prestamos"; - apcResponse.setMessage(message); - response = Response.ok().entity(apcResponse).build(); - } else { - apcResponse.setSuccessful(Boolean.FALSE); - apcResponse.setEnabledSubmit(Boolean.FALSE); - String message = updateLoanToDeliveryStatusList.getLoanToDeliveryList().size() == 1 ? "No se liberó el prestamo" : "No se liberaron los prestamos"; - apcResponse.setMessage(message); - response = Response.ok().entity(apcResponse).build(); - } - } catch (Exception e) { + } else { apcResponse.setSuccessful(Boolean.FALSE); apcResponse.setEnabledSubmit(Boolean.FALSE); - String message = updateLoanToDeliveryStatusList.getLoanToDeliveryList().size() == 1 ? "Error al liberar el prestamo" : "Error al liberar los prestamos"; + String message = authorizeTransferList.getTransferListToUpdateStatus().size() == 1 ? "No se autorizo la trasferencia bancaria" : "No se autorizaron las trasferencias bancaria"; apcResponse.setMessage(message); - response = Response.ok().entity(apcResponse).build(); - logger.error("updateLoanPendingStatusToDelivery", e); + } + } catch (Exception e) { + apcResponse.setSuccessful(Boolean.FALSE); + apcResponse.setEnabledSubmit(Boolean.FALSE); + String message = authorizeTransferList.getTransferListToUpdateStatus().size() == 1 ? "Error al autorizar la transferencia bancaria" : "Error al autorizar las transferencias bancaria"; + apcResponse.setMessage(message); - } - return response; - } + response = Response.ok().entity(apcResponse).build(); + logger.error("updateTransferList", e); - /** - * - * @param loan - * @param credit - * @param user - * @param date yyyy-MM-dd HH:mm:ss - * @return - */ - private boolean validateRenovationData(String loan, String credit, String user) { - if (null == loan || loan.length() != 36) { - return false; - } - if (null == credit || credit.length() != 36) { - return false; - } - return !(null == user || user.length() != 36); - } + } + return response; + } - final Logger logger = LogManager.getLogger(LoanWS.class); - private final LoanController loanController; - private final SystemPreferenceController systemPreferenceController; + @GET + @Path("find-all-loans-in-pending-status-to-delivery") + @Produces(MediaType.APPLICATION_JSON) + public Response findAllLoanInPendingStatusToDeliveryView() { + logger.debug("findAllLoanInPendingStatusToDeliveryView"); + Response response; + try { + GenericEntity> results + = new GenericEntity>( + loanController.findAllLoanInPendingStatusToDeliveryView()) { + }; - public LoanWS() { - this.loanController = new LoanController(); - this.systemPreferenceController = new SystemPreferenceController(); - } + response = Response.ok(results).build(); + } catch (Exception e) { + logger.error("findAllLoanInPendingStatusToDeliveryView", e); + response = Response.status(Response.Status.NOT_ACCEPTABLE).build(); + } + return response; + } + + @PUT + @Path("update-loan-pending-status-to-delivery") + @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) + public Response updateLoanPendingStatusToDelivery(UpdateLoanToDeliveryStatusList updateLoanToDeliveryStatusList) { + Response response; + GenericAPCResponserJaxb apcResponse = new GenericAPCResponserJaxb(); + try { + if (loanController.updateLoanPendingStatusToDelivery(updateLoanToDeliveryStatusList, LoanStatus.TO_DELIVERY)) { + apcResponse.setSuccessful(Boolean.TRUE); + apcResponse.setEnabledSubmit(Boolean.FALSE); + String message = updateLoanToDeliveryStatusList.getLoanToDeliveryList().size() == 1 ? "Se liberó el prestamo" : "Se liberaron los prestamos"; + apcResponse.setMessage(message); + response = Response.ok().entity(apcResponse).build(); + } else { + apcResponse.setSuccessful(Boolean.FALSE); + apcResponse.setEnabledSubmit(Boolean.FALSE); + String message = updateLoanToDeliveryStatusList.getLoanToDeliveryList().size() == 1 ? "No se liberó el prestamo" : "No se liberaron los prestamos"; + apcResponse.setMessage(message); + response = Response.ok().entity(apcResponse).build(); + } + } catch (Exception e) { + apcResponse.setSuccessful(Boolean.FALSE); + apcResponse.setEnabledSubmit(Boolean.FALSE); + String message = updateLoanToDeliveryStatusList.getLoanToDeliveryList().size() == 1 ? "Error al liberar el prestamo" : "Error al liberar los prestamos"; + apcResponse.setMessage(message); + + response = Response.ok().entity(apcResponse).build(); + logger.error("updateLoanPendingStatusToDelivery", e); + + } + return response; + } + + /** + * + * @param loan + * @param credit + * @param user + * @param date yyyy-MM-dd HH:mm:ss + * @return + */ + private boolean validateRenovationData(String loan, String credit, String user) { + if (null == loan || loan.length() != 36) { + return false; + } + if (null == credit || credit.length() != 36) { + return false; + } + return !(null == user || user.length() != 36); + } + + final Logger logger = LogManager.getLogger(LoanWS.class); + private final LoanController loanController; + private final SystemPreferenceController systemPreferenceController; + + public LoanWS() { + this.loanController = new LoanController(); + this.systemPreferenceController = new SystemPreferenceController(); + } }