Advertisement
Guest User

Revisi BT RemoveHandoverInvoiceArBack New

a guest
Jan 22nd, 2020
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.80 KB | None | 0 0
  1. package org.jleaf.erp.fin.bo.invoicear;
  2.  
  3.  
  4. import java.util.ArrayList;
  5. import java.util.List;
  6.  
  7. import javax.persistence.Query;
  8.  
  9. import org.jleaf.common.ComboIdConstants;
  10. import org.jleaf.common.CommonExceptionConstants;
  11. import org.jleaf.core.BusinessFunction;
  12. import org.jleaf.core.BusinessTransaction;
  13. import org.jleaf.core.CoreException;
  14. import org.jleaf.core.DefaultBusinessTransaction;
  15. import org.jleaf.core.Dto;
  16. import org.jleaf.core.GeneralConstants;
  17. import org.jleaf.core.annotation.ErrorList;
  18. import org.jleaf.core.annotation.Info;
  19. import org.jleaf.core.annotation.InfoIn;
  20. import org.jleaf.core.annotation.InfoOut;
  21. import org.jleaf.erp.fin.FinanceConstantsForSasa;
  22. import org.jleaf.erp.fin.FinanceExceptionConstantsForSasa;
  23. import org.jleaf.erp.fin.dao.InvoiceArBalanceHandoverForSasaDao;
  24. import org.jleaf.erp.fin.entity.HandoverInvoiceAr;
  25. import org.jleaf.erp.fin.entity.HandoverInvoiceArItem;
  26. import org.jleaf.erp.fin.entity.InvoiceArBalanceHandoverForSasa;
  27. import org.jleaf.erp.master.dao.AreaSalesPriceDao;
  28. import org.jleaf.erp.fin.dao.HandoverInvoiceArDao;
  29. import org.jleaf.erp.fin.dao.HandoverInvoiceArItemDao;
  30. import org.jleaf.util.Calc;
  31. import org.jleaf.util.DateUtil;
  32. import org.jleaf.util.DtoUtil;
  33. import org.jleaf.util.GsonUtil;
  34. import org.jleaf.util.ValidationUtil;
  35. import org.jleaf.validator.CommonBusinessValidator;
  36. import org.slf4j.Logger;
  37. import org.slf4j.LoggerFactory;
  38. import org.springframework.beans.factory.annotation.Autowired;
  39. import org.springframework.beans.factory.annotation.Qualifier;
  40. import org.springframework.stereotype.Service;
  41.  
  42.  
  43. /**
  44. * Remove Handover Invoice Ar Back
  45. *
  46. * @author Deo, Jan 21, 2020
  47. * @since 1.0.0
  48. * @version 1.0.0
  49. */
  50.  
  51. //@formatter:off
  52. @Service
  53.  
  54. @InfoIn(value = {
  55. @Info(name = "tenantLoginId", description = "Tenant Login id", type = Long.class),
  56. @Info(name = "userLoginId", description = "User Login id", type = Long.class),
  57. @Info(name = "roleLoginId", description = "Role Login id", type = Long.class),
  58. @Info(name = "datetime", description = "Datetime", type = String.class),
  59.  
  60. @Info(name = "id", description = "Handover Invoice Ar Back Id", type = Long.class)
  61.  
  62. })
  63. @InfoOut(value = { })
  64. @ErrorList(errorKeys ={
  65. CommonExceptionConstants.DATA_CANT_CHANGE_CAUSE_TENANT,
  66. FinanceExceptionConstantsForSasa.DOC_ALREADY_SUBMIT
  67. })
  68. //@formatter:off
  69. public class RemoveHandoverInvoiceArBack extends DefaultBusinessTransaction implements BusinessTransaction{
  70.  
  71. @Autowired
  72. HandoverInvoiceArDao handoverInvoiceArDao;
  73.  
  74. @Autowired
  75. InvoiceArBalanceHandoverForSasaDao invoiceArBalanceHandoverForSasaDao;
  76.  
  77. @Autowired
  78. FindInvoiceArBalanceHandoverForSasaByIndex findInvoiceArBalanceHandoverForSasaByIndex;
  79.  
  80. @Autowired
  81. @Qualifier("valTenantLoginCanUse")
  82. private BusinessFunction valTenantLoginCanUse;
  83.  
  84. @Autowired
  85. @Qualifier("getHandoverInvoiceArBackItemListByHandoverInvoiceArId")
  86. private BusinessFunction getHandoverInvoiceArBackItemListByHandoverInvoiceArId;
  87.  
  88. @Autowired
  89. @Qualifier("findHandoverInvoiceArById")
  90. private BusinessFunction findHandoverInvoiceArById;
  91.  
  92. @Override
  93. public String getDescription() {
  94. return "Remove Handover Invoice Ar Back";
  95. }
  96.  
  97. @SuppressWarnings("unchecked")
  98. @Override
  99. public Dto prepare(Dto inputDto, Dto originalDto) throws Exception {
  100.  
  101. ValidationUtil.valNumeric(inputDto, "tenantLoginId");
  102. ValidationUtil.valNumeric(inputDto, "userLoginId");
  103. ValidationUtil.valNumeric(inputDto, "roleLoginId");
  104. ValidationUtil.valDatetime(inputDto, "datetime");
  105. ValidationUtil.valNumeric(inputDto, "id");
  106.  
  107. Long tenantLoginId = inputDto.getLong("tenantLoginId");
  108. Long userLoginId = inputDto.getLong("userLoginId");
  109. Long roleLoginId = inputDto.getLong("roleLoginId");
  110. String datetime = inputDto.getString("datetime");
  111. Long id = inputDto.getLong("id");
  112.  
  113. //========= Validation tenant login nya bukan superadmin =========
  114. Dto loginDto = new Dto();
  115. loginDto.put("tenantLoginId", tenantLoginId);
  116. loginDto.put("userLoginId", userLoginId);
  117. loginDto.put("roleLoginId", roleLoginId);
  118. valTenantLoginCanUse.execute(loginDto);
  119.  
  120. Dto handoverInvoiceArDto = findHandoverInvoiceArById.execute(new Dto().put("id", id));
  121.  
  122. //========= Validation tenantId nya sama dengan tenant login id =========
  123. if (!tenantLoginId.equals(handoverInvoiceArDto.getLong("tenantId"))) {
  124. throw new CoreException(CommonExceptionConstants.DATA_CANT_DELETE_CAUSE_TENANT, "Handover Invoice Ar Back");
  125. }
  126.  
  127.  
  128.  
  129. //========= Validation statusDoc masih draft =========
  130. if(!FinanceConstantsForSasa.DRAFT_TRANSACTION.equals(handoverInvoiceArDto.get("statusDoc"))){
  131. throw new CoreException(FinanceExceptionConstantsForSasa.DOC_ALREADY_SUBMIT);
  132. }
  133.  
  134. List<Dto> invoiceArBalanceHandoverListDto = new ArrayList<Dto>();
  135. //harus get data item untuk find data invoice ar balance untuk keperluan update flg_handover_back dibalikin menjadi N
  136. Dto handoverInvoiceArItemDto = getHandoverInvoiceArBackItemListByHandoverInvoiceArId.execute(new Dto().put("handoverInvoiceArId", id));
  137. List<Dto> handoverInvoiceArItemList = handoverInvoiceArItemDto.getList("handoverInvoiceArItemList");
  138.  
  139. if (handoverInvoiceArItemList!=null && !handoverInvoiceArItemList.isEmpty()) {
  140. for(Dto itemListDto : handoverInvoiceArItemList) {
  141.  
  142. // findInvoiceArBalanceHandoverForSasaByIndex
  143. Dto invoiceArBalanceHandoverDto = new Dto();
  144. invoiceArBalanceHandoverDto.put("invoiceId", itemListDto.getLong("invoiceId"));
  145. invoiceArBalanceHandoverDto.put("docTypeId", itemListDto.getLong("docTypeId"));
  146. Dto invoiceArBalanceHandoverDtoResult = findInvoiceArBalanceHandoverForSasaByIndex.execute(invoiceArBalanceHandoverDto);
  147.  
  148. if (!tenantLoginId.equals(invoiceArBalanceHandoverDtoResult.getLong("tenantId")))
  149. throw new CoreException(CommonExceptionConstants.DATA_CANT_USE_DIFF_TENANT, "Handover Invoice AR", "Invoice Ar Balance Handover");
  150.  
  151.  
  152. invoiceArBalanceHandoverDtoResult.put("flgHandoverBack", GeneralConstants.NO);
  153. this.prepareUpdateAudit(invoiceArBalanceHandoverDtoResult, userLoginId, datetime);
  154.  
  155. invoiceArBalanceHandoverListDto.add(itemListDto);
  156. }
  157. }
  158.  
  159. //this.prepareUpdateAudit(handoverInvoiceArDto, userLoginId, datetime);
  160.  
  161. inputDto.put("invoiceArBalanceHandoverListDto", invoiceArBalanceHandoverListDto);
  162.  
  163. inputDto.put("handoverInvoiceArDto", handoverInvoiceArDto);
  164.  
  165. return null;
  166. }
  167.  
  168. @SuppressWarnings("unchecked")
  169. @Override
  170. public Dto process(Dto inputDto, Dto originalDto) throws Exception {
  171.  
  172. // Remove Handover Invoice Ar
  173. Query qRemoveHandoverInvoiceAr = handoverInvoiceArDao.createNativeQuery("DELETE FROM fi_handover_invoice_ar WHERE handover_invoice_ar_id = :id");
  174. qRemoveHandoverInvoiceAr.setParameter("id", inputDto.getLong("id"));
  175. qRemoveHandoverInvoiceAr.executeUpdate();
  176.  
  177. // Remove Handover Invoice Ar Item
  178. Query qRemoveHandoverInvoiceArItem = invoiceArBalanceHandoverForSasaDao.createNativeQuery("DELETE FROM fi_handover_invoice_ar_item WHERE handover_invoice_ar_item_id = :id");
  179. qRemoveHandoverInvoiceArItem.setParameter("id", inputDto.getLong("id"));
  180. qRemoveHandoverInvoiceArItem.executeUpdate();
  181.  
  182. //=========add update flg_handover_back menjadi N=========
  183. List<Dto> invoiceArBalanceHandoverForSasaList = inputDto.getList("invoiceArBalanceHandoverListDto");
  184. if(invoiceArBalanceHandoverForSasaList != null && invoiceArBalanceHandoverForSasaList.size() > 0){
  185. for (Dto handoverInvoiceArItemResult : invoiceArBalanceHandoverForSasaList) {
  186.  
  187. InvoiceArBalanceHandoverForSasa invoiceArBalanceHandoverForSasa = GsonUtil.fromDto(handoverInvoiceArItemResult, InvoiceArBalanceHandoverForSasa.class);
  188. invoiceArBalanceHandoverForSasaDao.merge(invoiceArBalanceHandoverForSasa.getId(), invoiceArBalanceHandoverForSasa);
  189.  
  190. }
  191. }
  192.  
  193.  
  194. return new Dto();
  195. }
  196.  
  197. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement