Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package org.jleaf.erp.fin.bo.invoicear;
- import java.util.ArrayList;
- import java.util.List;
- import javax.persistence.Query;
- import org.jleaf.common.ComboIdConstants;
- import org.jleaf.common.CommonExceptionConstants;
- import org.jleaf.core.BusinessFunction;
- import org.jleaf.core.BusinessTransaction;
- import org.jleaf.core.CoreException;
- import org.jleaf.core.DefaultBusinessTransaction;
- 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.erp.fin.FinanceConstantsForSasa;
- import org.jleaf.erp.fin.FinanceExceptionConstantsForSasa;
- import org.jleaf.erp.fin.dao.InvoiceArBalanceHandoverForSasaDao;
- import org.jleaf.erp.fin.entity.HandoverInvoiceAr;
- import org.jleaf.erp.fin.entity.HandoverInvoiceArItem;
- import org.jleaf.erp.fin.entity.InvoiceArBalanceHandoverForSasa;
- import org.jleaf.erp.master.dao.AreaSalesPriceDao;
- import org.jleaf.erp.fin.dao.HandoverInvoiceArDao;
- import org.jleaf.erp.fin.dao.HandoverInvoiceArItemDao;
- import org.jleaf.util.Calc;
- import org.jleaf.util.DateUtil;
- import org.jleaf.util.DtoUtil;
- import org.jleaf.util.GsonUtil;
- import org.jleaf.util.ValidationUtil;
- import org.jleaf.validator.CommonBusinessValidator;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Qualifier;
- import org.springframework.stereotype.Service;
- /**
- * Remove Handover Invoice Ar Back
- *
- * @author Deo, Jan 21, 2020
- * @since 1.0.0
- * @version 1.0.0
- */
- //@formatter:off
- @Service
- @InfoIn(value = {
- @Info(name = "tenantLoginId", description = "Tenant Login id", type = Long.class),
- @Info(name = "userLoginId", description = "User Login id", type = Long.class),
- @Info(name = "roleLoginId", description = "Role Login id", type = Long.class),
- @Info(name = "datetime", description = "Datetime", type = String.class),
- @Info(name = "id", description = "Handover Invoice Ar Back Id", type = Long.class)
- })
- @InfoOut(value = { })
- @ErrorList(errorKeys ={
- CommonExceptionConstants.DATA_CANT_CHANGE_CAUSE_TENANT,
- FinanceExceptionConstantsForSasa.DOC_ALREADY_SUBMIT
- })
- //@formatter:off
- public class RemoveHandoverInvoiceArBack extends DefaultBusinessTransaction implements BusinessTransaction{
- @Autowired
- HandoverInvoiceArDao handoverInvoiceArDao;
- @Autowired
- InvoiceArBalanceHandoverForSasaDao invoiceArBalanceHandoverForSasaDao;
- @Autowired
- FindInvoiceArBalanceHandoverForSasaByIndex findInvoiceArBalanceHandoverForSasaByIndex;
- @Autowired
- @Qualifier("valTenantLoginCanUse")
- private BusinessFunction valTenantLoginCanUse;
- @Autowired
- @Qualifier("getHandoverInvoiceArBackItemListByHandoverInvoiceArId")
- private BusinessFunction getHandoverInvoiceArBackItemListByHandoverInvoiceArId;
- @Autowired
- @Qualifier("findHandoverInvoiceArById")
- private BusinessFunction findHandoverInvoiceArById;
- @Override
- public String getDescription() {
- return "Remove Handover Invoice Ar Back";
- }
- @SuppressWarnings("unchecked")
- @Override
- public Dto prepare(Dto inputDto, Dto originalDto) throws Exception {
- ValidationUtil.valNumeric(inputDto, "tenantLoginId");
- ValidationUtil.valNumeric(inputDto, "userLoginId");
- ValidationUtil.valNumeric(inputDto, "roleLoginId");
- ValidationUtil.valDatetime(inputDto, "datetime");
- ValidationUtil.valNumeric(inputDto, "id");
- Long tenantLoginId = inputDto.getLong("tenantLoginId");
- Long userLoginId = inputDto.getLong("userLoginId");
- Long roleLoginId = inputDto.getLong("roleLoginId");
- String datetime = inputDto.getString("datetime");
- Long id = inputDto.getLong("id");
- //========= Validation tenant login nya bukan superadmin =========
- Dto loginDto = new Dto();
- loginDto.put("tenantLoginId", tenantLoginId);
- loginDto.put("userLoginId", userLoginId);
- loginDto.put("roleLoginId", roleLoginId);
- valTenantLoginCanUse.execute(loginDto);
- Dto handoverInvoiceArDto = findHandoverInvoiceArById.execute(new Dto().put("id", id));
- //========= Validation tenantId nya sama dengan tenant login id =========
- if (!tenantLoginId.equals(handoverInvoiceArDto.getLong("tenantId"))) {
- throw new CoreException(CommonExceptionConstants.DATA_CANT_DELETE_CAUSE_TENANT, "Handover Invoice Ar Back");
- }
- //========= Validation statusDoc masih draft =========
- if(!FinanceConstantsForSasa.DRAFT_TRANSACTION.equals(handoverInvoiceArDto.get("statusDoc"))){
- throw new CoreException(FinanceExceptionConstantsForSasa.DOC_ALREADY_SUBMIT);
- }
- List<Dto> invoiceArBalanceHandoverListDto = new ArrayList<Dto>();
- //harus get data item untuk find data invoice ar balance untuk keperluan update flg_handover_back dibalikin menjadi N
- Dto handoverInvoiceArItemDto = getHandoverInvoiceArBackItemListByHandoverInvoiceArId.execute(new Dto().put("handoverInvoiceArId", id));
- List<Dto> handoverInvoiceArItemList = handoverInvoiceArItemDto.getList("handoverInvoiceArItemList");
- if (handoverInvoiceArItemList!=null && !handoverInvoiceArItemList.isEmpty()) {
- for(Dto itemListDto : handoverInvoiceArItemList) {
- // findInvoiceArBalanceHandoverForSasaByIndex
- Dto invoiceArBalanceHandoverDto = new Dto();
- invoiceArBalanceHandoverDto.put("invoiceId", itemListDto.getLong("invoiceId"));
- invoiceArBalanceHandoverDto.put("docTypeId", itemListDto.getLong("docTypeId"));
- Dto invoiceArBalanceHandoverDtoResult = findInvoiceArBalanceHandoverForSasaByIndex.execute(invoiceArBalanceHandoverDto);
- if (!tenantLoginId.equals(invoiceArBalanceHandoverDtoResult.getLong("tenantId")))
- throw new CoreException(CommonExceptionConstants.DATA_CANT_USE_DIFF_TENANT, "Handover Invoice AR", "Invoice Ar Balance Handover");
- invoiceArBalanceHandoverDtoResult.put("flgHandoverBack", GeneralConstants.NO);
- this.prepareUpdateAudit(invoiceArBalanceHandoverDtoResult, userLoginId, datetime);
- invoiceArBalanceHandoverListDto.add(itemListDto);
- }
- }
- //this.prepareUpdateAudit(handoverInvoiceArDto, userLoginId, datetime);
- inputDto.put("invoiceArBalanceHandoverListDto", invoiceArBalanceHandoverListDto);
- inputDto.put("handoverInvoiceArDto", handoverInvoiceArDto);
- return null;
- }
- @SuppressWarnings("unchecked")
- @Override
- public Dto process(Dto inputDto, Dto originalDto) throws Exception {
- // Remove Handover Invoice Ar
- Query qRemoveHandoverInvoiceAr = handoverInvoiceArDao.createNativeQuery("DELETE FROM fi_handover_invoice_ar WHERE handover_invoice_ar_id = :id");
- qRemoveHandoverInvoiceAr.setParameter("id", inputDto.getLong("id"));
- qRemoveHandoverInvoiceAr.executeUpdate();
- // Remove Handover Invoice Ar Item
- Query qRemoveHandoverInvoiceArItem = invoiceArBalanceHandoverForSasaDao.createNativeQuery("DELETE FROM fi_handover_invoice_ar_item WHERE handover_invoice_ar_item_id = :id");
- qRemoveHandoverInvoiceArItem.setParameter("id", inputDto.getLong("id"));
- qRemoveHandoverInvoiceArItem.executeUpdate();
- //=========add update flg_handover_back menjadi N=========
- List<Dto> invoiceArBalanceHandoverForSasaList = inputDto.getList("invoiceArBalanceHandoverListDto");
- if(invoiceArBalanceHandoverForSasaList != null && invoiceArBalanceHandoverForSasaList.size() > 0){
- for (Dto handoverInvoiceArItemResult : invoiceArBalanceHandoverForSasaList) {
- InvoiceArBalanceHandoverForSasa invoiceArBalanceHandoverForSasa = GsonUtil.fromDto(handoverInvoiceArItemResult, InvoiceArBalanceHandoverForSasa.class);
- invoiceArBalanceHandoverForSasaDao.merge(invoiceArBalanceHandoverForSasa.getId(), invoiceArBalanceHandoverForSasa);
- }
- }
- return new Dto();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement