Advertisement
Guest User

BT AddHandoverInvoiceArBackItem

a guest
Jan 28th, 2020
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.24 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 org.jleaf.common.ComboIdConstants;
  8. import org.jleaf.common.CommonExceptionConstants;
  9. import org.jleaf.core.BusinessFunction;
  10. import org.jleaf.core.BusinessTransaction;
  11. import org.jleaf.core.CoreException;
  12. import org.jleaf.core.DefaultBusinessTransaction;
  13. import org.jleaf.core.Dto;
  14. import org.jleaf.core.GeneralConstants;
  15. import org.jleaf.core.annotation.ErrorList;
  16. import org.jleaf.core.annotation.Info;
  17. import org.jleaf.core.annotation.InfoIn;
  18. import org.jleaf.core.annotation.InfoOut;
  19. import org.jleaf.erp.cb.CashBankConstants;
  20. import org.jleaf.erp.fin.ComboIdForSasa;
  21. import org.jleaf.erp.fin.FinanceConstants;
  22. import org.jleaf.erp.fin.FinanceConstantsForSasa;
  23. import org.jleaf.erp.fin.FinanceExceptionConstants;
  24. import org.jleaf.erp.fin.FinanceExceptionConstantsForSasa;
  25. import org.jleaf.erp.fin.dao.AllocationArCostDao;
  26. import org.jleaf.erp.fin.dao.AllocationArDao;
  27. import org.jleaf.erp.fin.dao.AllocationArInvoiceDao;
  28. import org.jleaf.erp.fin.dao.InvoiceArBalanceDao;
  29. import org.jleaf.erp.fin.dao.InvoiceTaxArBalanceDao;
  30. import org.jleaf.erp.fin.dao.ReceiptArBalanceDao;
  31. import org.jleaf.erp.fin.entity.AllocationAr;
  32. import org.jleaf.erp.fin.entity.AllocationArCost;
  33. import org.jleaf.erp.fin.entity.AllocationArInvoice;
  34. import org.jleaf.erp.fin.entity.InvoiceArBalance;
  35. import org.jleaf.erp.fin.entity.InvoiceTaxArBalance;
  36. import org.jleaf.erp.fin.entity.ReceiptArBalance;
  37. import org.jleaf.erp.master.MasterConstants;
  38. import org.jleaf.erp.master.MasterExceptionConstants;
  39. //import org.jleaf.erp.sls.SalesExceptionConstantsForKtmt;
  40. import org.jleaf.erp.fin.entity.InvoiceArBalanceHandoverForSasa;
  41. import org.jleaf.erp.fin.dao.InvoiceArBalanceHandoverForSasaDao;
  42. import org.jleaf.erp.fin.entity.HandoverInvoiceAr;
  43. import org.jleaf.erp.fin.entity.HandoverInvoiceArItem;
  44. import org.jleaf.erp.fin.dao.HandoverInvoiceArDao;
  45. import org.jleaf.erp.fin.dao.HandoverInvoiceArItemDao;
  46. import org.jleaf.util.Calc;
  47. import org.jleaf.util.DateUtil;
  48. import org.jleaf.util.DtoUtil;
  49. import org.jleaf.util.GsonUtil;
  50. import org.jleaf.util.ValidationUtil;
  51. import org.jleaf.validator.CommonBusinessValidator;
  52. import org.slf4j.Logger;
  53. import org.slf4j.LoggerFactory;
  54. import org.springframework.beans.factory.annotation.Autowired;
  55. import org.springframework.beans.factory.annotation.Qualifier;
  56. import org.springframework.stereotype.Service;
  57.  
  58.  
  59.  
  60. /**
  61. * Add Invoice Ar Back Item
  62. *
  63. * @author Deo, Jan 28, 2020
  64. * @since 1.0.0
  65. * @version 1.0.0
  66. */
  67. //@formatter:off
  68. @Service
  69. @InfoIn(value = {
  70. @Info(name = "tenantLoginId", description = "Tenant Login id", type = Long.class),
  71. @Info(name = "userLoginId", description = "User Login id", type = Long.class),
  72. @Info(name = "roleLoginId", description = "Role Login id", type = Long.class),
  73. @Info(name = "datetime", description = "Datetime", type = String.class),
  74.  
  75. @Info(name = "handoverInvoiceArId", description = "Handover Invoice Ar id", type = Long.class),
  76. @Info(name = "versionHeader", description = "Version Header", type = Long.class),
  77. @Info(name = "refId", description = "ref id", type = Long.class),
  78. @Info(name = "refDocTypeId", description = "ref doc id", type = Long.class),
  79. @Info(name = "refDocNo", description = "ref doc no", type = String.class),
  80. @Info(name = "refDocDate", description = "ref doc date", type = String.class),
  81. @Info(name = "partnerId", description = "partner id", type = Long.class),
  82. @Info(name = "dueDate", description = "due date", type = String.class),
  83. @Info(name = "currCode", description = "curr code", type = String.class),
  84. @Info(name = "invoiceAmount", description = "invoice amount", type = Double.class),
  85. @Info(name = "outstandingAmount", description = "outstanding amount", type = Double.class),
  86. @Info(name = "handoverStatus", description = "handover status", type = String.class),
  87. @Info(name = "remark", description = "remark", type = String.class),
  88. })
  89. @InfoOut(value = {
  90. @Info(name = "id", description = "Handover Invoice Ar Back Id", type = Long.class),
  91. @Info(name = "tenantId", description = "tenantId", type = Long.class),
  92. @Info(name = "handoverInvoiceArId", description = "ou Id", type = Long.class),
  93. @Info(name = "refId", description = "ref Id", type = Long.class),
  94. @Info(name = "refDocTypeId", description = "ref Doc Type Id", type = Long.class),
  95. @Info(name = "refDocNo", description = "ref doc No", type = String.class),
  96. @Info(name = "refDocDate", description = "ref doc Date", type = String.class),
  97. @Info(name = "partnerId", description = "partner id", type = Long.class),
  98. @Info(name = "dueDate", description = "due date", type = String.class),
  99. @Info(name = "currCode", description = "curr code", type = String.class),
  100. @Info(name = "invoiceAmount", description = "invoice amount", type = Double.class),
  101. @Info(name = "outstandingAmount", description = "outstanding amount", type = Double.class),
  102. @Info(name = "remark", description = "remark", type = String.class),
  103. @Info(name = "createUserId", description = "create User Id", type = Long.class),
  104. @Info(name = "createDateTime", description = "create Date Time", type = String.class),
  105. @Info(name = "updateUserId", description = "update User Id", type = String.class),
  106. @Info(name = "updateDateTime", description = "update Date Time", type = String.class),
  107. @Info(name = "version", description = "version", type = Long.class)
  108. })
  109. @ErrorList(errorKeys ={
  110. CommonExceptionConstants.DATA_CANT_CHANGE_CAUSE_TENANT,
  111. FinanceExceptionConstantsForSasa.DOC_ALREADY_SUBMIT,
  112. FinanceExceptionConstantsForSasa.DOCUMENT_VERSION_NOT_UPTODATE,
  113. FinanceExceptionConstantsForSasa.INVOICE_AR_MUST_BE_ALREADY_HANDOVER,
  114. FinanceExceptionConstantsForSasa.INVOICE_AR_IS_ALREADY_OR_INPROGRESS_CREATED_IN_OTHER_DOC_HANDOVER_INVOICE_AR_BACK,
  115. FinanceExceptionConstantsForSasa.EMPLOYEE_ID_DOESNT_MATCH_WITH_INVOICE_AR_EMPLOYEE,
  116. FinanceExceptionConstantsForSasa.HANDOVER_INVOICE_AR_BACK_MUST_HAVE_AT_LEAST_ONE_ITEM,
  117. FinanceExceptionConstantsForSasa.HANDOVER_INVOICE_AR_ITEMS_ERROR
  118. })
  119. //@formatter:off
  120.  
  121. public class AddHandoverInvoiceArBackItem extends DefaultBusinessTransaction implements BusinessTransaction {
  122. private static final Logger log = LoggerFactory.getLogger(AddHandoverInvoiceArBackItem.class);
  123.  
  124. @Override
  125. public String getDescription() {
  126. return "Add to List Handover Invoice Ar Back Item";
  127. }
  128.  
  129. @Autowired
  130. HandoverInvoiceArDao handoverInvoiceArDao;
  131.  
  132. @Autowired
  133. HandoverInvoiceArItemDao handoverInvoiceArItemDao;
  134.  
  135. @Autowired
  136. InvoiceArBalanceHandoverForSasaDao invoiceArBalanceHandoverForSasaDao;
  137.  
  138. @Autowired
  139. @Qualifier("valComboValueByCode")
  140. private BusinessFunction valComboValueByCode;
  141.  
  142. @Autowired
  143. @Qualifier("isHandoverInvoiceArItemExistsByIndex")
  144. private BusinessFunction isHandoverInvoiceArItemExistsByIndex;
  145.  
  146. @Autowired
  147. @Qualifier("isHandoverInvoiceArByIndex")
  148. private BusinessFunction isHandoverInvoiceArByIndex;
  149.  
  150. @Autowired
  151. @Qualifier("isHandoverInvoiceArItemByIndex")
  152. private BusinessFunction isHandoverInvoiceArItemByIndex;
  153.  
  154. @Autowired
  155. @Qualifier("valTenantLoginCanUse")
  156. private BusinessFunction valTenantLoginCanUse;
  157.  
  158. @Autowired
  159. @Qualifier("findHandoverInvoiceArById")
  160. private BusinessFunction findHandoverInvoiceArById;
  161.  
  162. @Autowired
  163. @Qualifier("findHandoverInvoiceArItemById")
  164. private BusinessFunction findHandoverInvoiceArItemById;
  165.  
  166. @Autowired
  167. @Qualifier("findInvoiceArBalanceHandoverForSasaByIndex")
  168. private BusinessFunction findInvoiceArBalanceHandoverForSasaByIndex;
  169.  
  170.  
  171.  
  172.  
  173. @SuppressWarnings("unchecked")
  174. @Override
  175. public Dto prepare(Dto inputDto, Dto originalDto) throws Exception {
  176.  
  177. ValidationUtil.valNumeric(inputDto, "tenantLoginId");
  178. ValidationUtil.valNumeric(inputDto, "userLoginId");
  179. ValidationUtil.valNumeric(inputDto, "roleLoginId");
  180. ValidationUtil.valDatetime(inputDto, "datetime");
  181.  
  182. ValidationUtil.valNumeric(inputDto, "handoverInvoiceArId");
  183. ValidationUtil.valNumeric(inputDto, "versionHeader");
  184. ValidationUtil.valNumeric(inputDto, "refId");
  185. ValidationUtil.valNumeric(inputDto, "refDocTypeId");
  186. ValidationUtil.valBlankOrNull(inputDto, "refDocNo");
  187. ValidationUtil.valBlankOrNull(inputDto, "refDocDate");
  188. ValidationUtil.valNumeric(inputDto, "partnerId");
  189. ValidationUtil.valBlankOrNull(inputDto, "dueDate");
  190. ValidationUtil.valBlankOrNull(inputDto, "currCode");
  191. ValidationUtil.valNumber(inputDto, "invoiceAmount");
  192. ValidationUtil.valNumber(inputDto, "outstandingAmount");
  193. ValidationUtil.valBlankOrNull(inputDto, "handoverStatus");
  194. ValidationUtil.valBlankOrNull(inputDto, "remark");
  195.  
  196.  
  197. Long tenantLoginId = inputDto.getLong("tenantLoginId");
  198. Long userLoginId = inputDto.getLong("userLoginId");
  199. Long roleLoginId = inputDto.getLong("roleLoginId");
  200. String datetime = inputDto.getString("datetime");
  201.  
  202. Long handoverInvoiceArId = inputDto.getLong("handoverInvoiceArId");
  203. Long versionHeader = inputDto.getLong("versionHeader");
  204. Long refId = inputDto.getLong("refId");
  205. Long refDocTypeId = inputDto.getLong("refDocTypeId");
  206. String refDocNo = inputDto.getString("refDocNo");
  207. String refDocDate = inputDto.getString("refDocDate");
  208. Long partnerId = inputDto.getLong("partnerId");
  209. String dueDate = inputDto.getString("dueDate");
  210. String currCode = inputDto.getString("currCode");
  211. Double invoiceAmount = inputDto.getDouble("invoiceAmount");
  212. Double outstandingAmount = inputDto.getDouble("outstandingAmount");
  213. String handoverStatus = inputDto.getString("handoverStatus");
  214. String remark = inputDto.getString("remark");
  215.  
  216. //========= Validation tenant login id can be use =========
  217. Dto loginDto = new Dto();
  218. loginDto.put("tenantLoginId", tenantLoginId);
  219. loginDto.put("userLoginId", userLoginId);
  220. loginDto.put("roleLoginId", roleLoginId);
  221. valTenantLoginCanUse.execute(loginDto);
  222.  
  223. Dto handoverInvoiceArDto = findHandoverInvoiceArById.execute(new Dto().put("id", handoverInvoiceArId));
  224. //========= Validation tenantId nya sama dengan tenant login id =========
  225. if (!tenantLoginId.equals(handoverInvoiceArDto.getLong("tenantId"))) {
  226. throw new CoreException(CommonExceptionConstants.DATA_CANT_CHANGE_CAUSE_TENANT, "Handover Invoice Ar Back");
  227. }
  228.  
  229. //========= Validation statusDoc masih draft =========
  230. if(!FinanceConstantsForSasa.DRAFT_TRANSACTION.equals(handoverInvoiceArDto.get("statusDoc"))){
  231. throw new CoreException(FinanceExceptionConstantsForSasa.DOC_ALREADY_SUBMIT);
  232. }
  233.  
  234. //========= Validation version harus uptodate =========
  235. if (!handoverInvoiceArDto.getLong("version").equals(versionHeader)) {
  236. throw new CoreException(FinanceExceptionConstantsForSasa.DOCUMENT_VERSION_NOT_UPTODATE,"Handover Invoice Ar Back");
  237. }
  238.  
  239.  
  240. // 4 validasi item :
  241. // 1 cek ke data balance serah terima invoice findInvoiceArBalanceHandoverForSasaByIndex data nya harus ada
  242. // 2 validasi dapat menggunakan data invoice ar balance karna tenantId nya sama dengan tenantLoginId
  243. // 3 validasi invoice ar nya memang sudah dilakukan serah terima invoice ( berdasarkan ref_id dan ref_doc_type_id, cek fi_invoice_ar_balance_handover_for_sasa.flg_handover nya sudah Y )
  244. // 4 validasi invoice ar nya belum dan tidak sedang dilakukan serah terima invoice balik di dokumen lain (berdasarkan ref_id dan ref_doc_type_id, cek fi_invoice_ar_balance_handover_for_sasa.flg_handover_back nya masih N )
  245. // 5 validasi invoice ar yang akan dibuat dokumen serah terima invoice balik tidak duplikat
  246. // 6 validasi employee_id atas invoice ar yang ada di fi_invoice_ar_balance_handover_for_sasa sama dengan employee_id atas data header serah terima invoice balik
  247. // 7 cek status nya harus ada di combo value handover status ( pakai BF valComboValueByCode )
  248. // 8 validasi berdasarkan unique index, data invoice ar nya belum ada disistem atas dokumen serah terima invoice ar balik ybs
  249.  
  250.  
  251.  
  252. //cek ke data balance serah terima invoice findInvoiceArBalanceHandoverForSasaByIndex data nya harus ada
  253. Dto invoiceArBalanceHandoverDto = new Dto();
  254. invoiceArBalanceHandoverDto.put("invoiceId", refId);
  255. invoiceArBalanceHandoverDto.put("docTypeId", refDocTypeId);
  256. Dto invoiceArBalanceHandoverDtoResult = findInvoiceArBalanceHandoverForSasaByIndex.execute(invoiceArBalanceHandoverDto);
  257.  
  258. //========= Validation tenantId nya sama dengan tenant login id =========
  259. if (!tenantLoginId.equals(invoiceArBalanceHandoverDtoResult.getLong("tenantId"))) {
  260. throw new CoreException(CommonExceptionConstants.DATA_CANT_CHANGE_CAUSE_TENANT, "Invoice Ar Balance Handover");
  261. }
  262.  
  263. //validasi invoice ar nya memang sudah dilakukan serah terima invoice
  264. if(!GeneralConstants.YES.equals(invoiceArBalanceHandoverDtoResult.getString("flgHandover")))
  265. {
  266. throw new CoreException(FinanceExceptionConstantsForSasa.INVOICE_AR_MUST_BE_ALREADY_HANDOVER, "invoiceArBalanceHandover","invoiceId");
  267. }
  268.  
  269. //validasi invoice ar nya belum dan tidak sedang dilakukan serah terima invoice balik di dokumen lain
  270. if(!GeneralConstants.NO.equals(invoiceArBalanceHandoverDtoResult.getString("flgHandoverBack")))
  271. {
  272. throw new CoreException(FinanceExceptionConstantsForSasa.INVOICE_AR_IS_ALREADY_OR_INPROGRESS_CREATED_IN_OTHER_DOC_HANDOVER_INVOICE_AR_BACK, "invoiceArBalanceHandover","invoiceId");
  273. }
  274.  
  275. //validasi employee_id atas invoice ar yang ada di fi_invoice_ar_balance_handover_for_sasa sama dengan employee_id atas data header serah terima invoice balik
  276. if(!handoverInvoiceArDto.getString("employeeId").equals(invoiceArBalanceHandoverDtoResult.getString("employeeId")))
  277. {
  278. throw new CoreException(FinanceExceptionConstantsForSasa.EMPLOYEE_ID_DOESNT_MATCH_WITH_INVOICE_AR_EMPLOYEE, "employeeId");
  279. }
  280.  
  281. //cek status nya harus ada di combo value handover status
  282. Dto comboValueHandoverStatusDto = new Dto();
  283. comboValueHandoverStatusDto.put("comboId", FinanceConstantsForSasa.HANDOVER_STATUS); //combo handover statu
  284. comboValueHandoverStatusDto.put("code", handoverStatus); //status
  285. comboValueHandoverStatusDto.put("varName", "Handover Status");
  286. valComboValueByCode.execute(comboValueHandoverStatusDto);
  287.  
  288.  
  289. //======== Validation Unique Index IsHandoverInvoiceArItemExistsByIndex =======
  290. Dto uniqueIndexDto = new Dto();
  291. uniqueIndexDto.put("handoverInvoiceArId", handoverInvoiceArId);
  292. uniqueIndexDto.put("refId", refId);
  293. uniqueIndexDto.put("refDocTypeId", refDocTypeId);
  294. Dto resultUniqueIndexDto = isHandoverInvoiceArItemExistsByIndex.execute(uniqueIndexDto);
  295.  
  296. if (resultUniqueIndexDto.getBoolean("exists")) {
  297. throw new CoreException(FinanceExceptionConstantsForSasa.INVOICE_AR_ALREADY_EXISTS, handoverInvoiceArId,
  298. refId, refDocTypeId);
  299. }
  300.  
  301. //=========update flg_handover_back menjadi I (In Progress)=========
  302. invoiceArBalanceHandoverDtoResult.put("flgHandover", FinanceConstantsForSasa.IN_PROGRESS_TRANSACTION);
  303. this.prepareUpdateAudit(invoiceArBalanceHandoverDtoResult, userLoginId, datetime);
  304.  
  305. // @Info(name = "handoverInvoiceArId", description = "Handover Invoice Ar id", type = Long.class),
  306. // @Info(name = "versionHeader", description = "Version Header", type = Long.class),
  307. // @Info(name = "refId", description = "ref id", type = Long.class),
  308. // @Info(name = "refDocTypeId", description = "ref doc id", type = Long.class),
  309. // @Info(name = "refDocNo", description = "ref doc no", type = String.class),
  310. // @Info(name = "refDocDate", description = "ref doc date", type = String.class),
  311. // @Info(name = "partnerId", description = "partner id", type = Long.class),
  312. // @Info(name = "dueDate", description = "due date", type = String.class),
  313. // @Info(name = "currCode", description = "curr code", type = String.class),
  314. // @Info(name = "invoiceAmount", description = "invoice amount", type = Double.class),
  315. // @Info(name = "outstandingAmount", description = "outstanding amount", type = Double.class),
  316. // @Info(name = "handoverStatus", description = "handover status", type = String.class),
  317. // @Info(name = "remark", description = "remark", type = String.class),
  318.  
  319. Dto handoverInvoiceArBackItemDto = new Dto();
  320. handoverInvoiceArBackItemDto.put("tenantId", tenantLoginId);
  321. handoverInvoiceArBackItemDto.put("handoverInvoiceArId", handoverInvoiceArId);
  322. handoverInvoiceArBackItemDto.put("versionHeader", versionHeader);
  323. handoverInvoiceArBackItemDto.put("refId", refId);
  324. handoverInvoiceArBackItemDto.put("refDocTypeId", refDocTypeId);
  325. handoverInvoiceArBackItemDto.put("refDocNo", refDocNo);
  326. handoverInvoiceArBackItemDto.put("refDocDate", refDocDate);
  327. handoverInvoiceArBackItemDto.put("partnerId", partnerId);
  328. handoverInvoiceArBackItemDto.put("dueDate", dueDate);
  329. handoverInvoiceArBackItemDto.put("currCode", currCode);
  330. handoverInvoiceArBackItemDto.put("invoiceAmount", invoiceAmount);
  331. handoverInvoiceArBackItemDto.put("outstandingAmount", outstandingAmount);
  332. handoverInvoiceArBackItemDto.put("handoverStatus", handoverStatus);
  333. handoverInvoiceArBackItemDto.put("flgHandover", invoiceArBalanceHandoverDtoResult.getString("flgHandover"));
  334. handoverInvoiceArBackItemDto.put("remark", remark);
  335. this.prepareInsertAudit(handoverInvoiceArBackItemDto, userLoginId, datetime);
  336. this.prepareUpdateAudit(handoverInvoiceArBackItemDto, userLoginId, datetime);
  337.  
  338.  
  339. // handoverInvoiceArBackItemDto.add(invoiceArBalanceHandoverDtoResult);
  340. //isHandoverInvoiceArItemByIndex.execute(uniqueIndexDto);
  341.  
  342. //update version
  343. handoverInvoiceArDto.put("version", versionHeader);
  344. this.prepareUpdateAudit(handoverInvoiceArDto, userLoginId, datetime);
  345.  
  346. inputDto.put("handoverInvoiceArDto", handoverInvoiceArDto);
  347. inputDto.put("handoverInvoiceArBackItemDto", handoverInvoiceArBackItemDto);
  348.  
  349. return null;
  350. }
  351.  
  352.  
  353. // Menambah data item serah terima invoice ar balik di table fi_handover_invoice_ar_item
  354. // Update data header (version nya) di table fi_handover_invoice_ar
  355.  
  356. @SuppressWarnings({ "unchecked" })
  357. @Override
  358. public Dto process(Dto inputDto, Dto originalDto) throws Exception {
  359.  
  360. // add Handover InvoiceAr
  361. HandoverInvoiceAr handoverInvoiceAr = GsonUtil.fromDto(inputDto.getDto("handoverInvoiceArDto"), HandoverInvoiceAr.class);
  362. handoverInvoiceArDao.merge(handoverInvoiceAr.getId(), handoverInvoiceAr);
  363. //document = salesOrderDao.merge(docDto.getLong("id"), document);
  364.  
  365.  
  366. // add Handover InvoiceAr Item
  367. HandoverInvoiceArItem handoverInvoiceArItem = GsonUtil.fromDto(inputDto.getDto("handoverInvoiceArBackItemDto"), HandoverInvoiceArItem.class);
  368. handoverInvoiceArItemDao.merge(handoverInvoiceArItem.getId(), handoverInvoiceArItem);
  369.  
  370. // //=========add update flg_handover_back menjadi I (In Progress)=========
  371. // List<Dto> invoiceArBalanceHandoverForSasaList = inputDto.getList("invoiceArBalanceHandoverForSasaList");
  372. // if(invoiceArBalanceHandoverForSasaList != null && invoiceArBalanceHandoverForSasaList.size() > 0){
  373. // for (Dto invoiceArBalanceHandoverDtoResult : invoiceArBalanceHandoverForSasaList) {
  374. //
  375. // InvoiceArBalanceHandoverForSasa invoiceArBalanceHandoverForSasa = GsonUtil.fromDto(invoiceArBalanceHandoverDtoResult, InvoiceArBalanceHandoverForSasa.class);
  376. // invoiceArBalanceHandoverForSasaDao.merge(invoiceArBalanceHandoverForSasa.getId(), invoiceArBalanceHandoverForSasa);
  377. //
  378. // }
  379. // }
  380.  
  381. return new Dto(handoverInvoiceAr);
  382. }
  383.  
  384.  
  385.  
  386. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement