List of usage examples for org.joda.time LocalDateTime now
public static LocalDateTime now()
ISOChronology
in the default time zone. From source file:com.nkapps.billing.dao.BankStatementDaoImpl.java
@Override public void saveToReportSmst() throws Exception { Session sessionQuery = getSession(); String q = " SELECT bs FROM BankStatement bs" + " WHERE bs.transferable = 6 AND (transfered = 0 OR bs.paymentDate > :paymentDate )"; Query query = sessionQuery.createQuery(q); Calendar cal = Calendar.getInstance(); cal.add(Calendar.DATE, -300); // update report click for last five days Date paymentDate = cal.getTime(); query.setParameter("paymentDate", paymentDate); List<BankStatement> bsList = query.list(); sessionQuery.close();//from w w w .jav a 2 s. c o m sessionQuery = getSession(); if (bsList != null) { LocalDateTime dateTime = LocalDateTime.now(); Session sessionTransaction = getSession(); Transaction transaction = sessionTransaction.beginTransaction(); for (BankStatement bs : bsList) { try { String operationDateStr = findOperationDate(bs.getPaymentDetails()); Date operationDate = new SimpleDateFormat("dd.MM.yyyy").parse(operationDateStr); query = sessionQuery.createQuery( "SELECT COALESCE(SUM(p.paymentSum),0) FROM Payment p WHERE p.paymentDate = :paymentDate AND p.sourceCode = 4"); query.setParameter("paymentDate", operationDate); BigDecimal smstPaymentSum = (BigDecimal) query.uniqueResult(); query = sessionTransaction .createQuery("SELECT rs FROM ReportSmst rs WHERE rs.operationDate = :operationDate"); query.setParameter("operationDate", operationDate); ReportSmst rs = (ReportSmst) query.uniqueResult(); if (rs == null) { rs = new ReportSmst(); rs.setOperationDate(operationDate); rs.setSmstPaymentSum(smstPaymentSum); rs.setDateCreated(dateTime); rs.setDateUpdated(dateTime); sessionTransaction.save(rs); ReportSmstBankStatement rsbs = new ReportSmstBankStatement(); ReportSmstBankStatementId rsbsId = new ReportSmstBankStatementId(); rsbsId.setBankStatement(bs); rsbsId.setReportSmst(rs); rsbs.setId(rsbsId); sessionTransaction.save(rsbs); } else { rs.setSmstPaymentSum(smstPaymentSum); rs.setDateUpdated(dateTime); sessionTransaction.update(rs); query = sessionQuery.createQuery( "SELECT rsbs FROM ReportSmstBankStatement rsbs JOIN rsbs.id.reportSmst rs JOIN rsbs.id.bankStatement bs WHERE rs = :rs AND bs = :bs"); query.setParameter("rs", rs); query.setParameter("bs", bs); ReportSmstBankStatement rsbs = (ReportSmstBankStatement) query.uniqueResult(); if (rsbs == null) { rsbs = new ReportSmstBankStatement(); ReportSmstBankStatementId rsbsId = new ReportSmstBankStatementId(); rsbsId.setBankStatement(bs); rsbsId.setReportSmst(rs); rsbs.setId(rsbsId); sessionTransaction.save(rsbs); } } if (bs.getTransfered() == 0) { bs.setTransfered((short) 3); bs.setDateUpdated(dateTime); sessionTransaction.update(bs); } } catch (Exception e) { logger.error("Error on report smst saving: bank_statement_id = " + bs.getId() + ", exception = " + e.getMessage()); } } transaction.commit(); sessionTransaction.close(); } sessionQuery.close(); }
From source file:com.nkapps.billing.dao.BankStatementDaoImpl.java
@Override public void editPaymentDate(String bankStatementId, Date paymentDate, Long issuerSerialNumber, String issuerIp) throws Exception { Session session = getSession();/*from ww w . j av a 2 s . c o m*/ Transaction transaction = session.beginTransaction(); BankStatement bs = (BankStatement) session.get(BankStatement.class, bankStatementId); if (bs == null) { throw new Exception(messageSource.getMessage("bank_statement.editable.bs_not_found", null, LocaleContextHolder.getLocale())); } LocalDateTime dateTime = LocalDateTime.now(); bs.setPaymentDate(paymentDate); bs.setIssuerSerialNumber(issuerSerialNumber); bs.setIssuerIp(issuerIp); bs.setDateUpdated(dateTime); session.update(bs); transaction.commit(); session.close(); }
From source file:com.nkapps.billing.dao.BankStatementDaoImpl.java
@Override public void editActionKey(String bankStatementId, String tin, Long issuerSerialNumber, String issuerIp) throws Exception { Session sessionQuery = getSession(); Session sessionTransaction = getSession(); Transaction transaction = sessionTransaction.beginTransaction(); BankStatement bs = (BankStatement) sessionTransaction.get(BankStatement.class, bankStatementId); if (bs == null) { throw new Exception(messageSource.getMessage("bank_statement.editable.bs_not_found", null, LocaleContextHolder.getLocale())); }/*from ww w .j a v a 2s . c om*/ if (bs.getBankStatementPayments().size() > 1) { throw new Exception(messageSource.getMessage("bank_statement.editable.bs_contains_many_payments", null, LocaleContextHolder.getLocale())); } if (!validTin(tin)) { throw new Exception(messageSource.getMessage("bank_statement.editable.tin_not_valid", null, LocaleContextHolder.getLocale())); } if (bs.getTransferable() == 0) { throw new Exception(messageSource.getMessage("bank_statement.editable.bs_not_transferable", null, LocaleContextHolder.getLocale())); } ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); Validator validator = factory.getValidator(); LocalDateTime dateTime = LocalDateTime.now(); String tinDebtor = tin.equals(bs.getTin()) ? null : bs.getTin(); transferBankStatementToPaymentManually(sessionQuery, sessionTransaction, validator, bs, tin, tinDebtor, issuerSerialNumber, issuerIp, dateTime); transaction.commit(); sessionTransaction.close(); sessionQuery.close(); }
From source file:com.nkapps.billing.dao.OverpaymentDaoImpl.java
@Override public BankStatement saveReturnState(String bankStatementId, Short returnState, BigDecimal returnSum, Long issuerSerialNumber, String issuerIp) throws Exception { Session session = getSession();//from w ww .ja va 2 s. co m Transaction transaction = session.beginTransaction(); BankStatement bs = (BankStatement) session.get(BankStatement.class, bankStatementId); String q = "SELECT COALESCE(bs.paymentSum,0) - COALESCE(bs.returnSum,0) - (SELECT COALESCE(SUM(kp.paidSum),0) FROM bs.bankStatementPayments bsp JOIN bsp.id.payment p JOIN p.keyPayments kp WHERE p.claim = 0) AS overpaymentSum" + " FROM BankStatement bs" + " WHERE bs = :bs"; Query query = session.createQuery(q); query.setParameter("bs", bs); BigDecimal overpaymentSum = (BigDecimal) query.uniqueResult(); LocalDateTime dateTime = LocalDateTime.now(); if (returnState == 0) { if (bs.getReturnSum() != null) { // get all overpayment sum overpaymentSum = overpaymentSum.add(bs.getReturnSum()); } bs.setReturnState(returnState); bs.setReturnSum(null); bs.setIssuerSerialNumber(issuerSerialNumber); bs.setIssuerIp(issuerIp); bs.setDateUpdated(dateTime); session.update(bs); returnStateRevert(session, bs, overpaymentSum, issuerSerialNumber, issuerIp, dateTime); } else { if (returnSum.compareTo(overpaymentSum) > 0) { // checking return sum must not be greater than overpayment sum returnSum = overpaymentSum; } bs.setReturnState(returnState); if (bs.getReturnSum() != null) { bs.setReturnSum(bs.getReturnSum().add(returnSum)); } else { bs.setReturnSum(returnSum); } bs.setIssuerSerialNumber(issuerSerialNumber); bs.setIssuerIp(issuerIp); bs.setDateUpdated(dateTime); session.update(bs); returnStateCommit(session, bs, returnSum, issuerSerialNumber, issuerIp, dateTime); } transaction.commit(); session.close(); return bs; }
From source file:com.nkapps.billing.dao.OverpaymentDaoImpl.java
@Override public String singleReturnBankStatementText(String bankStatementId, Long issuerSerialNumber, String issuerIp) throws Exception { Session session = getSession();//w w w . j ava 2 s. c o m Transaction transaction = session.beginTransaction(); StringBuilder result = new StringBuilder(); int year = Calendar.getInstance().get(Calendar.YEAR); ReturnNum rn = (ReturnNum) session.get(ReturnNum.class, year); if (rn == null) { rn = new ReturnNum(year); rn.setNum(0l); } Long num = rn.getNum(); BankStatement bs = (BankStatement) session.get(BankStatement.class, bankStatementId); if (bs.getReturnState() == 1 || bs.getReturnState() == 2) { Date returnDate = Calendar.getInstance().getTime(); LocalDateTime dateTime = LocalDateTime.now(); bs.setReturnState((short) 2); if (bs.getReturnNum() == null) { bs.setReturnNum(++num); } bs.setReturnDate(returnDate); bs.setIssuerSerialNumber(issuerSerialNumber); bs.setIssuerIp(issuerIp); bs.setDateUpdated(dateTime); session.update(bs); result.append(bankStatementReturnText(bs)); } rn.setNum(num); session.saveOrUpdate(rn); transaction.commit(); session.close(); return result.toString(); }
From source file:com.nkapps.billing.dao.OverpaymentDaoImpl.java
@Override public String allReturnBankStatementText(Date paymentDate, Long issuerSerialNumber, String issuerIp) throws Exception { Session session = getSession();// w w w .ja v a 2 s .c o m StringBuilder result = new StringBuilder(); int year = Calendar.getInstance().get(Calendar.YEAR); ReturnNum rn = (ReturnNum) session.get(ReturnNum.class, year); if (rn == null) { rn = new ReturnNum(year); rn.setNum(0l); } Long num = rn.getNum(); Query query = session.createQuery( "SELECT bs FROM BankStatement bs WHERE bs.paymentDate = :paymentDate AND bs.returnState IN (1,2)"); query.setParameter("paymentDate", paymentDate); List<BankStatement> bsList = query.list(); session.close(); session = getSession(); Transaction transaction = session.beginTransaction(); Date returnDate = Calendar.getInstance().getTime(); LocalDateTime dateTime = LocalDateTime.now(); for (BankStatement bs : bsList) { bs.setReturnState((short) 2); if (bs.getReturnNum() == null) { bs.setReturnNum(++num); } bs.setReturnDate(returnDate); bs.setIssuerSerialNumber(issuerSerialNumber); bs.setIssuerIp(issuerIp); bs.setDateUpdated(dateTime); session.update(bs); result.append(bankStatementReturnText(bs)); } rn.setNum(num); session.saveOrUpdate(rn); transaction.commit(); session.close(); return result.toString(); }
From source file:com.nkapps.billing.dao.PaymentDaoImpl.java
@Override public BigDecimal getTransactionId(String tin, Long serialNumber, BigDecimal keyCost) throws Exception { Session session = getSession();/*from w w w . ja v a 2s .c o m*/ Transaction transaction = session.beginTransaction(); KeyTransaction kt = new KeyTransaction(); kt.setTin(tin); kt.setSerialNumber(serialNumber); kt.setKeyCost(keyCost); kt.setCommitted((short) 0); LocalDateTime dateTime = LocalDateTime.now(); kt.setDateCreated(dateTime); kt.setDateUpdated(dateTime); session.save(kt); session.flush(); BigDecimal transactionId = kt.getId(); transaction.commit(); ; session.close(); return transactionId; }
From source file:com.nkapps.billing.dao.PaymentDaoImpl.java
@Override public void saveKeyPaymentAndTransaction(BigDecimal keyTransactionId, BigDecimal keyCost) throws Exception { Session session = getSession();// w ww.jav a 2 s. c o m Transaction transaction = session.beginTransaction(); LocalDateTime dateTime = LocalDateTime.now(); KeyTransaction ktr = (KeyTransaction) session.get(KeyTransaction.class, keyTransactionId); String q = " SELECT p.id AS id, p.tin AS tin, p.paymentNum AS paymentNum, p.paymentDate AS paymentDate," + " p.paymentSum AS paymentSum, p.sourceCode AS sourceCode," + " p.state AS state, p.tinDebtor as tinDebtor,p.claim as claim, p.issuerSerialNumber as issuerSerialNumber," + " p.issuerIp as issuerIp,p.dateCreated AS dateCreated, p.dateUpdated as dateUpdated, " + " p.paymentSum - COALESCE((SELECT SUM(paidSum) FROM KeyPayment kp WHERE kp.payment = p),0) AS overSum " + " FROM Payment p " + " WHERE p.tin = :tin AND p.state IN (1,2) AND p.claim = 0" + " ORDER BY p.paymentDate, p.paymentNum "; Query query = session.createQuery(q); query.setParameter("tin", ktr.getTin()); query.setResultTransformer(Transformers.aliasToBean(Payment.class)); List<Payment> paymentList = query.list(); for (Payment payment : paymentList) { if (payment.getOverSum().compareTo(keyCost) <= 0) { KeyPayment kp = new KeyPayment(); kp.setSerialNumber(ktr.getSerialNumber()); kp.setPayment(payment); kp.setPaidSum(payment.getOverSum()); kp.setDateCreated(dateTime); kp.setDateUpdated(dateTime); session.save(kp); payment.setState((short) 3); payment.setDateUpdated(dateTime); session.update(payment); keyCost = keyCost.subtract(payment.getOverSum()); } else { KeyPayment kp = new KeyPayment(); kp.setSerialNumber(ktr.getSerialNumber()); kp.setPayment(payment); kp.setPaidSum(keyCost); kp.setDateCreated(dateTime); kp.setDateUpdated(dateTime); session.save(kp); payment.setState((short) 2); payment.setDateUpdated(dateTime); session.update(payment); keyCost = BigDecimal.ZERO; } if (keyCost.compareTo(BigDecimal.ZERO) <= 0) { break; } } ktr.setCommitted((short) 1); ktr.setDateUpdated(dateTime); session.update(ktr); transaction.commit(); session.close(); }
From source file:com.nkapps.billing.dao.PaymentDaoImpl.java
@Override public void savePaymentManual(String bankStatementId, List<Payment> paymentList, Long issuerSerialNumber, String issuerIp) throws Exception { Session session = getSession();/* w w w. j av a 2s.c om*/ Transaction transaction = session.beginTransaction(); BankStatement bs = (BankStatement) session.get(BankStatement.class, bankStatementId); if (bs == null) { throw new Exception(messageSource.getMessage("bank_statement.editable.bs_not_found", null, LocaleContextHolder.getLocale())); } String q = "SELECT COALESCE(bs.paymentSum,0) - COALESCE(bs.returnSum,0) - (SELECT COALESCE(SUM(kp.paidSum),0) FROM bs.bankStatementPayments bsp JOIN bsp.id.payment p JOIN p.keyPayments kp WHERE p.claim = 0) AS overpaymentSum" + " FROM BankStatement bs" + " WHERE bs = :bs"; Query query = session.createQuery(q); query.setParameter("bs", bs); BigDecimal overpaymentSum = (BigDecimal) query.uniqueResult(); if (overpaymentSum.compareTo(BigDecimal.ZERO) > 0) { LocalDateTime dateTime = LocalDateTime.now(); overpaymentDao.returnStateCommit(session, bs, overpaymentSum, issuerSerialNumber, issuerIp, dateTime); // if bankstatement already converted to payment, then them must revert for (Payment payment : paymentList) { BigDecimal paymentSum = payment.getPaymentSum(); if (paymentSum.compareTo(overpaymentSum) > 0) { paymentSum = overpaymentSum; overpaymentSum = BigDecimal.ZERO; } else { overpaymentSum = overpaymentSum.subtract(paymentSum); } payment.setPaymentSum(paymentSum); payment.setIssuerSerialNumber(issuerSerialNumber); payment.setIssuerIp(issuerIp); payment.setDateCreated(dateTime); payment.setDateUpdated(dateTime); session.save(payment); BankStatementPayment bsp = new BankStatementPayment(); BankStatementPaymentId bspId = new BankStatementPaymentId(); bspId.setBankStatement(bs); bspId.setPayment(payment); bsp.setId(bspId); session.save(bsp); if (overpaymentSum.compareTo(BigDecimal.ZERO) <= 0) { break; } } } transaction.commit(); session.close(); }
From source file:com.nkapps.billing.dao.PaymentDaoImpl.java
@Override public void insertPaymentManual(String tin, String paymentNum, Date paymentDate, BigDecimal paymentSum, String tinDebtor, Long issuerSerialNumber, String issuerIp) throws Exception { Session session = getSession();//from w ww . j a v a2s . c o m Transaction transaction = session.beginTransaction(); Payment payment = new Payment(); payment.setTin(tin); payment.setPaymentNum(paymentNum); payment.setPaymentDate(paymentDate); payment.setPaymentSum(paymentSum); payment.setSourceCode((short) 5); // manual (vruchnuyu tolko) payment.setState((short) 1); payment.setTinDebtor(tinDebtor); payment.setClaim((short) 0); payment.setIssuerSerialNumber(issuerSerialNumber); payment.setIssuerIp(issuerIp); LocalDateTime dateTime = LocalDateTime.now(); payment.setDateCreated(dateTime); payment.setDateUpdated(dateTime); session.save(payment); transaction.commit(); session.close(); }