Advertisement
Guest User

revisi BT RemoveHandoverInvoiceArBack

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