Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package org.jleaf.erp.fin.bo.inquiryap;
- import java.util.List;
- import javax.persistence.Query;
- import org.jleaf.core.AbstractBusinessFunction;
- import org.jleaf.core.BusinessFunction;
- import org.jleaf.core.Dto;
- import org.jleaf.core.GeneralConstants;
- import org.jleaf.core.annotation.ErrorList;
- import org.jleaf.core.annotation.Info;
- import org.jleaf.core.annotation.InfoIn;
- import org.jleaf.core.annotation.InfoOut;
- import org.jleaf.core.dao.QueryBuilder;
- import org.jleaf.erp.fin.dao.InvoiceTaxApBalanceDao;
- import org.jleaf.erp.fin.entity.InvoiceApBalance;
- import org.jleaf.erp.fin.entity.InvoiceTaxApBalance;
- import org.jleaf.util.DtoUtil;
- import org.jleaf.util.ValidationUtil;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- //@formatter:off
- @Service
- @InfoIn(value = {
- @Info(name = "tenantId", description = "Tenant id", type = Long.class),
- @Info(name = "ouId", description = "OU id", type = Long.class),
- @Info(name = "userId", description = "user id", type = Long.class),
- @Info(name = "roleId", description = "role id", type = Long.class),
- @Info(name = "partnerId", description = "partner id", type = Long.class),
- @Info(name = "dateFrom", description = "date from", type = String.class),
- @Info(name = "dateTo", description = "date to", type = String.class)
- })
- @InfoOut(value = {
- @Info(name = "invoiceTaxList", description = "outstanding invoice tax list (invoiceTaxApBalanceId, docTypeId, invoiceApBalanceId, taxNo, taxDate, docDesc, docNo, docDate, baseCurrCode, baseAmount, currCode, taxAmount, taxCurrCode, govTaxAmount, outstandingAmount, dueDate, partnerId, partnerCode, partnerName, flgPayment)", type = List.class)
- })
- @ErrorList(errorKeys ={
- })
- //@formatter:off
- public class GetHistoryInvoiceTaxListForInquiryAp extends AbstractBusinessFunction implements BusinessFunction {
- @Autowired
- private InvoiceTaxApBalanceDao invoiceTaxApBalanceDao;
- @Override
- public String getDescription() {
- return "Get history invoice tax list for inquiry AP";
- }
- @Override
- public Dto execute(Dto inputDto) throws Exception {
- ValidationUtil.valDtoContainsKey(inputDto, "tenantId");
- ValidationUtil.valDtoContainsKey(inputDto, "ouId");
- ValidationUtil.valDtoContainsKey(inputDto, "userId");
- ValidationUtil.valDtoContainsKey(inputDto, "roleId");
- ValidationUtil.valDtoContainsKey(inputDto, "partnerId");
- ValidationUtil.valDtoContainsKey(inputDto, "dateFrom");
- ValidationUtil.valDtoContainsKey(inputDto, "dateTo");
- Long tenantId = inputDto.getLong("tenantId");
- Long ouId = inputDto.getLong("ouId");
- Long userId = inputDto.getLong("userId");
- Long roleId = inputDto.getLong("roleId");
- Long partnerId = inputDto.getLong("partnerId");
- String dateFrom = inputDto.getString("dateFrom");
- String dateTo = inputDto.getString("dateTo");
- QueryBuilder queryBuilder = new QueryBuilder();
- queryBuilder.add(" SELECT A.invoice_tax_ap_balance_id, A.doc_type_id, A.invoice_ap_balance_id, A.tax_no, A.tax_date, f_get_doc_desc(A.doc_type_id) AS doc_desc, B.doc_no, B.doc_date, ")
- .add(" B.curr_code AS base_curr_code, B.amount AS base_amount, A.curr_code AS curr_code, A.tax_amount, A.tax_curr_code, A.gov_tax_amount, ")
- .add(" (A.gov_tax_amount - A.payment_amount) AS outstanding_amount, A.due_date, A.partner_id, f_get_partner_code(A.partner_id) AS partner_code, f_get_partner_name(A.partner_id) AS partner_name, A.flg_payment ")
- .add(" FROM ")
- .add(InvoiceTaxApBalance.TABLE_NAME)
- .add(" A ")
- .add(" INNER JOIN ")
- .add(InvoiceApBalance.TABLE_NAME)
- .add(" B ON A.invoice_ap_balance_id = B.invoice_ap_balance_id ")
- .add(" WHERE A.tenant_id = :tenantId ")
- .add(" AND A.ou_id = :ouId ")
- .add(" AND B.doc_date BETWEEN :dateFrom AND :dateTo ")
- .add(" AND f_authorize_user_role_policy_partner(:tenantId, :userId, :roleId, A.partner_id) = 1 ")
- .addIfNotEquals(partnerId, GeneralConstants.NULL_REF_VALUE_LONG, " AND A.partner_id = :partnerId ")
- .add(" ORDER BY B.doc_no ASC, B.doc_date ASC, A.tax_curr_code ASC, outstanding_amount DESC ");
- Query query = invoiceTaxApBalanceDao.createNativeQuery(queryBuilder.toString());
- query.setParameter("tenantId", tenantId);
- query.setParameter("ouId", ouId);
- query.setParameter("userId", userId);
- query.setParameter("roleId", roleId);
- if (!GeneralConstants.NULL_REF_VALUE_LONG.equals(partnerId)) {
- query.setParameter("partnerId", partnerId);
- }
- query.setParameter("dateFrom", dateFrom);
- query.setParameter("dateTo", dateTo);
- List<Object[]> list = query.getResultList();
- return new Dto().put("invoiceTaxList", DtoUtil.createDtoListFromArray(list, "invoiceTaxApBalanceId", "docTypeId", "invoiceApBalanceId", "taxNo", "taxDate", "docDesc", "docNo", "docDate", "baseCurrCode", "baseAmount", "currCode", "taxAmount", "taxCurrCode", "govTaxAmount", "outstandingAmount", "dueDate", "partnerId", "partnerCode", "partnerName", "flgPayment"));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement