Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package org.jleaf.ukmappsbo.bo.tenant;
- import org.jleaf.common.bo.combo.ValComboValueByCode;
- import org.jleaf.common.bo.role.FindRoleByName;
- import org.jleaf.common.bo.user.IsUserExistsByIndex;
- import org.jleaf.common.dao.*;
- import org.jleaf.common.entity.*;
- import org.jleaf.core.*;
- import org.jleaf.core.dao.QueryBuilder;
- import org.jleaf.erp.master.dao.AdminProcessLedgerDao;
- import org.jleaf.erp.master.dao.CashBankDao;
- import org.jleaf.erp.master.dao.CashBankOuDao;
- import org.jleaf.erp.master.dao.CoaDao;
- import org.jleaf.erp.master.dao.OutletRegistrationDao;
- import org.jleaf.erp.master.dao.WarehouseDao;
- import org.jleaf.erp.master.dao.WarehouseOuDao;
- import org.jleaf.erp.master.entity.CashBank;
- import org.jleaf.erp.master.entity.CashBankOu;
- import org.jleaf.erp.master.entity.Coa;
- import org.jleaf.erp.master.entity.OutletRegistration;
- import org.jleaf.erp.master.entity.Warehouse;
- import org.jleaf.erp.master.entity.WarehouseOu;
- import org.jleaf.ukmappsbo.UkmConstants;
- import org.jleaf.ukmappsbo.bo.user.IsUserExistByEmail;
- import org.jleaf.ukmappsbo.dao.OutletDao;
- import org.jleaf.ukmappsbo.entity.Outlet;
- import org.jleaf.util.DateUtil;
- import org.jleaf.util.GsonUtil;
- import org.jleaf.util.ValidationUtil;
- import org.json.simple.parser.Yytoken;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import javax.persistence.Query;
- import java.io.UnsupportedEncodingException;
- import java.math.BigInteger;
- import java.security.MessageDigest;
- import java.security.NoSuchAlgorithmException;
- import java.util.List;
- /**
- * @author Fikri 20 Mei 2020
- */
- @Service
- public class AddNewTenant extends DefaultBusinessTransaction implements BusinessTransaction {
- Logger log = LoggerFactory.getLogger(getClass());
- @Autowired
- TenantDao tenantDao;
- @Autowired
- PolicyDao policyDao;
- @Autowired
- OUTypeDao ouTypeDao;
- @Autowired
- OULegalDao ouLegalDao;
- @Autowired
- OutletDao outletDao;
- @Autowired
- OutletRegistrationDao outletRegistrationDao;
- @Autowired
- OUDao ouDao;
- @Autowired
- PolicyOUDao policyOUDao;
- @Autowired
- RoleDao roleDao;
- @Autowired
- SystemConfigDao systemConfigDao;
- @Autowired
- CashBankDao cashBankDao;
- @Autowired
- CashBankOuDao cashBankOuDao;
- @Autowired
- UserDao userDao;
- @Autowired
- UserRoleDao userRoleDao;
- @Autowired
- RoleTaskDao roleTaskDao;
- @Autowired
- AdminProcessLedgerDao adminProcessLedgerDao;
- @Autowired
- WarehouseOuDao WarehouseOuDao;
- @Autowired
- WarehouseDao WarehouseDao;
- @Autowired
- IsUserExistsByIndex isUserExistsByIndex;
- @Autowired
- IsTenantExistsByIndex isTenantExistsByIndex;
- @Autowired
- IsUserExistByEmail isUserExistByEmail;
- @Autowired
- FindRoleByName findRoleByName;
- @Autowired
- ValComboValueByCode valComboValueByCode;
- @Autowired
- CoaDao coaDao;
- @Override
- public String getDescription() {
- return "Add/Register Merchant/seller";
- }
- @Override
- public Dto prepare(Dto dto, Dto originalDto) throws Exception {
- valDtoContainsKey(dto);
- valBlank(dto);
- valSpecificType(dto);
- valOnlyNumber(dto);
- valPassword(dto);
- valData(dto);
- dto.put("empty", GeneralConstants.EMPTY_VALUE);
- dto.put("yes", GeneralConstants.YES);
- dto.put("no", GeneralConstants.NO);
- dto.put("nullLong", GeneralConstants.NULL_REF_VALUE_LONG);
- dto.put("kas", UkmConstants.KAS);
- dto.put("flgCashbank", UkmConstants.FLG_CASHBANK_C);
- dto.put("mainAcc", mainAcc(dto));
- dto.put("userId", dto.getLong("userId") != null ? dto.getLong("userId") : (long) -1);
- dto.put("tenantCode", dto.getString("ownerMobilePhoneNumber"));
- dto.put("ouTypeCode", "COM");
- dto.put("ouTypeName", "Company");
- dto.put("role", "OWNER");
- dto.put("roleType", "USER");
- dto.put("rank", "Good");
- dto.put("npwpStatus", "01");
- dto.put("addressDesc", "default");
- dto.put("groupPartner", "S");
- dto.put("typePartnerId", -99);// cari ke m_type_partner
- dto.put("dueDate", 0);
- dto.put("currencyCode", "IDR");
- dto.put("amountLimit", "1");
- dto.put("typePartnerCode", "SUPP");
- dto.put("typePartnerName", "Supplier");
- dto.put("typePartnerGroup","S");
- dto.put("tenantDto", setTenantDto(dto));
- dto.put("policyDto", setPolicyDto(dto));
- dto.put("ouTypeDto", setOuTypeDto(dto));
- dto.put("ouDto", setOuDto(dto));
- dto.put("ouLegalDto", setOuLegalDto(dto));
- dto.put("policyOuDto", setPolicyOuDto(dto));
- dto.put("roleDto", setRoleDto(dto));
- dto.put("userDto", setUserDto(dto));
- dto.put("userRoleDto", setUserRoleDto(dto));
- dto.put("cashbankDto", setCashbankDto(dto));
- dto.put("cashbankOuDto", setCashbankOuDto(dto));
- dto.put("warehouseDto", setWarehouseDto(dto));
- dto.put("warehouseOuDto", setWarehouseOuDto(dto));
- dto.put("outletDto", setOutletDto(dto));
- dto.put("outletRegistrationDto", setOutletRegistrationDto(dto));
- dto.put("systemConfigDto", setSystemConfigDto(dto));
- dto.put("coaDto", setCoaDto(dto));
- return null;
- }
- @Override
- public Dto process(Dto dto, Dto originalDto) throws Exception {
- String yearMonth = DateUtil.dateNow().substring(0,6);
- String datetime = dto.getString("datetime");
- Dto tenantDto = dto.getDto("tenantDto");
- tenantDto.put("key", hashString(dto.getString("tenantCode")));
- Tenant tenant = GsonUtil.fromDto(tenantDto, Tenant.class);
- this.tenantDao.persist(tenant);
- Long tenantId = tenant.getId();
- Dto policyDto = dto.getDto("policyDto");
- policyDto.put("tenantId", tenantId);
- Policy policy = GsonUtil.fromDto(policyDto, Policy.class);
- this.policyDao.persist(policy);
- Long policyId = policy.getId();
- Dto ouTypeDto = dto.getDto("ouTypeDto");
- ouTypeDto.put("tenantId", tenantId);
- OUType ouType = GsonUtil.fromDto(ouTypeDto, OUType.class);
- this.ouTypeDao.persist(ouType);
- Long ouTypeId = ouType.getId();
- Dto ouDto = dto.getDto("ouDto");
- ouDto.put("tenantId", tenantId);
- ouDto.put("typeId", ouTypeId);
- OU ou = GsonUtil.fromDto(ouDto, OU.class);
- this.ouDao.persist(ou);
- Long ouId = ou.getId();
- Dto ouLegalDto = dto.getDto("ouLegalDto");
- OULegal ouLegal = GsonUtil.fromDto(ouLegalDto, OULegal.class);
- ouLegal.setTenantId(tenantId);
- ouLegal.setOuId(ouId);
- this.ouLegalDao.persist(ouLegal);
- Dto policyOuDto = dto.getDto("policyOuDto");
- policyOuDto.put("policyId", policyId);
- policyOuDto.put("ouId", ouId);
- PolicyOU policyOU = GsonUtil.fromDto(policyOuDto, PolicyOU.class);
- this.policyOUDao.persist(policyOU);
- Dto roleDto = dto.getDto("roleDto");
- roleDto.put("tenantId", tenantId);
- Role role = GsonUtil.fromDto(roleDto, Role.class);
- this.roleDao.persist(role);
- Long roleId = role.getId();
- Dto userDto = dto.getDto("userDto");
- userDto.put("tenantId", tenantId);
- userDto.put("password", hashString(userDto.getString("password")));
- userDto.put("roleDefaultId", roleId);
- userDto.put("ouDefaultId", ouId);
- userDto.put("policyDefaultId", policyId);
- userDto.put("privateKey", hashString(tenantId.toString().concat(userDto.getString("name"))));
- User user = GsonUtil.fromDto(userDto, User.class);
- this.userDao.persist(user);
- Long userId = user.getId();
- Dto userRoleDto = dto.getDto("userRoleDto");
- userRoleDto.put("userId", userId);
- userRoleDto.put("roleId", roleId);
- userRoleDto.put("policyId", policyId);
- UserRole userRole = GsonUtil.fromDto(userRoleDto, UserRole.class);
- this.userRoleDao.persist(userRole);
- dto.put("roleId", roleId);
- initRoleTask(dto);
- initMasterForUkm(userId, tenantId, datetime);
- Dto coaDto = dto.getDto("coaDto");
- Coa coa = GsonUtil.fromDto(coaDto, Coa.class);
- coa.setTenantId(tenantId);
- coa.setGroupCoaId(getGroupCoaId(tenantId, dto.getString("flgCashbank")));
- coa.setSubAcc(countSubAcc(dto.getString("mainAcc"), tenantId));
- this.coaDao.persist(coa);
- Long coaId = coa.getId();
- Dto cashbankDto = dto.getDto("cashbankDto");
- cashbankDto.put("tenantId", tenantId);
- CashBank cashbank = GsonUtil.fromDto(cashbankDto, CashBank.class);
- cashbank.setCoaId(coaId);
- this.cashBankDao.persist(cashbank);
- Long cashbankId = cashbank.getId();
- Dto cashbankOuDto = dto.getDto("cashbankOuDto");
- CashBankOu cashbankOu = GsonUtil.fromDto(cashbankOuDto, CashBankOu.class);
- cashbankOu.setCashBankId(cashbankId);
- cashbankOu.setOuId(ouId);
- this.cashBankOuDao.persist(cashbankOu);
- Dto warehouseDto = dto.getDto("warehouseDto");
- Warehouse warehouse = GsonUtil.fromDto(warehouseDto, Warehouse.class);
- warehouse.setTenantId(tenantId);
- warehouse.setOuId(ouId);
- this.WarehouseDao.persist(warehouse);
- Long warehouseId = warehouse.getId();
- Dto warehouseOuDto = dto.getDto("warehouseOuDto");
- WarehouseOu warehouseOu = GsonUtil.fromDto(warehouseOuDto, WarehouseOu.class);
- warehouseOu.setWarehouseId(warehouseId);
- warehouseOu.setOuId(ouId);
- this.WarehouseOuDao.persist(warehouseOu);
- Dto outletDto = dto.getDto("outletDto");
- Outlet outlet = GsonUtil.fromDto(outletDto, Outlet.class);
- outlet.setTenantId(tenantId);
- outlet.setOuId(ouId);
- outlet.setWarehouseId(warehouseId);
- this.outletDao.persist(outlet);
- Dto systemConfigDto = dto.getDto("systemConfigDto");
- SystemConfig systemConfig = GsonUtil.fromDto(systemConfigDto, SystemConfig.class);
- systemConfig.setTenantId(tenantId);
- this.systemConfigDao.persist(systemConfig);
- Dto outletRegistrationDto = dto.getDto("outletRegistrationDto");
- log.info("Output outletRegistrationDto: " +outletRegistrationDto.toString());
- if(outletRegistrationDto.containsKey("id")) {
- outletRegistrationDto.remove("id");
- }
- OutletRegistration outletRegistration = GsonUtil.fromDto(outletRegistrationDto, OutletRegistration.class);
- outletRegistration.setTenantId(tenantId);
- outletRegistration.setOuId(ouId);
- outletRegistrationDao.persist(outletRegistration);
- Dto output = new Dto();
- output.put("tenantId", tenantId);
- output.put("tenantCode", tenant.getCode());
- output.put("username", user.getName());
- initAdminProcessLedger(userId, tenantId, ouId, yearMonth, datetime);
- return output;
- }
- private void initAdminProcessLedger(Long userId, Long tenantId, Long ouId, String yearMonth, String datetime) {
- QueryBuilder builder = new QueryBuilder();
- builder.add("SELECT f_init_admin_process_ledger_code(:userId,:tenantId,:ouId,:yearMonth,:datetime)");
- Query query = cashBankDao.createNativeQuery(builder.toString());
- query.setParameter("userId", userId);
- query.setParameter("tenantId", tenantId);
- query.setParameter("ouId", ouId);
- query.setParameter("yearMonth", yearMonth);
- query.setParameter("datetime", datetime);
- query.getResultList();
- }
- private void initMasterForUkm(Long userId, Long tenantId, String datetime){
- QueryBuilder builder = new QueryBuilder();
- builder.add("SELECT fs_create_master_for_ukm(:userId,:tenantId,:datetime)");
- Query query = cashBankDao.createNativeQuery(builder.toString());
- query.setParameter("userId", userId);
- query.setParameter("tenantId", tenantId);
- query.setParameter("datetime", datetime);
- query.getResultList();
- }
- private void valDtoContainsKey(Dto dto) {
- String[] requiredKey = {"businessName", "ownerMobilePhoneNumber", "ownerEmail", "ownerName", "password", "passwordConfirmation"};
- for (String key : requiredKey) {
- ValidationUtil.valDtoContainsKey(dto, key);
- }
- }
- private void valBlank(Dto dto) {
- String[] cannotBlankKey = {"businessName", "ownerMobilePhoneNumber", "ownerEmail", "ownerName", "password", "passwordConfirmation"};
- for (String key : cannotBlankKey) {
- if(dto.getString(key).equals(GeneralConstants.EMPTY_VALUE)) {
- throw new CoreException(key+" Can't Empty");
- }
- }
- }
- private void valSpecificType(Dto dto) {
- ValidationUtil.valEmail(dto, "ownerEmail");
- ValidationUtil.valDatetime(dto, "datetime");
- }
- private void valOnlyNumber(Dto dto) {
- String[] numberKey = {"ownerMobilePhoneNumber"};
- for (String key : numberKey) {
- String value = dto.getString(key);
- if (value != null && value != GeneralConstants.EMPTY_VALUE && !value.matches("[0-9.-]+")) {
- throw new CoreException("Invalid Format for " + key);
- }
- }
- }
- private void valPassword(Dto dto) {
- String password = dto.getString("password");
- String passwordConfirmation = dto.getString("passwordConfirmation");
- Integer passwordMinimumLength = 6;
- if (!password.equals(passwordConfirmation)) {
- throw new CoreException("Password & Confirmation password is not equals");
- }
- if (password.length() < passwordMinimumLength) {
- throw new CoreException("Password is too short, minimum 6 character");
- }
- }
- private void valData(Dto dto) throws Exception {
- // validasi tenant
- Dto isTenantExistsByIndexParam = new Dto();
- isTenantExistsByIndexParam.put("tenantCode", dto.getString("ownerMobilePhoneNumber"));
- Dto tenant = isTenantExistsByIndex.execute(isTenantExistsByIndexParam);
- if (tenant.getBoolean("exists")) {
- throw new CoreException("Phone number already registered as tenant");
- }
- // validasi username / mobile phone number
- Dto isUserExistsByIndexParam = new Dto();
- isUserExistsByIndexParam.put("name", dto.getString("ownerMobilePhoneNumber"));
- Dto user = isUserExistsByIndex.execute(isUserExistsByIndexParam);
- if (user.getBoolean("exists")) {
- throw new CoreException("Phone number already registered as user");
- }
- // validasi email
- Dto isUserExistByEmailParam = new Dto();
- isUserExistByEmailParam.put("email", dto.getString("ownerEmail"));
- Dto userByEmail = isUserExistByEmail.execute(isUserExistByEmailParam);
- if (userByEmail.getBoolean("exists")) {
- throw new CoreException("Email already registered as user");
- }
- }
- private String hashString(String string) throws NoSuchAlgorithmException {
- String digest = null;
- try {
- MessageDigest md = MessageDigest.getInstance("MD5");
- byte[] hash = md.digest(string.getBytes("UTF-8"));
- //converting byte array to Hexadecimal String
- StringBuilder sb = new StringBuilder(2 * hash.length);
- for (byte b : hash) {
- sb.append(String.format("%02x", b & 0xff));
- }
- digest = sb.toString();
- } catch (UnsupportedEncodingException ex) {
- log.info(ex.getMessage());
- } catch (NoSuchAlgorithmException ex) {
- log.info(ex.getMessage());
- }
- return digest;
- }
- // Generate DTO berdasarkan Entity
- private Dto setSystemConfigDto(Dto dto) {
- Dto data = new Dto();
- data.put("tenantId", dto.getLong("nullLong"));
- data.put("parameterId", getParameterValutaId());
- data.put("value", UkmConstants.CURR_CODE_IDR);
- this.prepareUpdateAudit(data, dto.getLong("userId"), dto.getString("datetime"));
- this.prepareInsertAudit(data, dto.getLong("userId"), dto.getString("datetime"));
- return data;
- }
- private Long getParameterValutaId() {
- Long id = -99l;
- QueryBuilder countryAndProvinceQuery = new QueryBuilder();
- countryAndProvinceQuery.add("SELECT parameter_id ")
- .add("FROM t_parameter ")
- .add("WHERE parameter_code = :currCode");
- Query query = tenantDao.createNativeQuery(countryAndProvinceQuery.toString());
- query.setParameter("currCode", UkmConstants.CURR_CODE);
- List<BigInteger> resultList = query.getResultList();
- if (resultList.size() > 0) {
- id = Long.valueOf(resultList.get(0).toString());
- }
- return id;
- }
- private Dto setTenantDto(Dto dto) {
- Dto data = new Dto();
- data.put("code", dto.getString("tenantCode"));
- data.put("name", dto.getString("businessName"));
- data.put("key", dto.getString("empty"));
- data.put("description", dto.getString("empty"));
- data.put("email", dto.getString("ownerEmail"));
- data.put("host", dto.getString("empty"));
- this.prepareUpdateAudit(data, dto.getLong("userId"), dto.getString("datetime"));
- this.prepareInsertAudit(data, dto.getLong("userId"), dto.getString("datetime"));
- return data;
- }
- private Dto setCoaDto(Dto dto) {
- String codeName = dto.getString("kas").toUpperCase().trim();
- Dto data = new Dto();
- data.put("tenantId", dto.getLong("nullLong"));
- data.put("mainAcc",dto.getString("mainAcc"));
- data.put("subAcc",dto.getString("empty"));
- data.put("groupCoaId",dto.getLong("nullLong"));
- data.put("description",codeName);
- data.put("sign",UkmConstants.SIGN_COA_D);
- log.info("Data Set Coa : " + data);
- this.prepareUpdateAudit(data, dto.getLong("userLoginId"), dto.getString("datetime"));
- this.prepareInsertAudit(data, dto.getLong("userLoginId"), dto.getString("datetime"));
- return data;
- }
- private Dto setCashbankDto(Dto dto) {
- Dto data = new Dto();
- data.put("tenantId", dto.getLong("nullLong"));
- data.put("code", dto.getString("kas"));
- data.put("name", dto.getString("kas"));
- data.put("flagCashBank", dto.getString("flgCashbank"));
- data.put("bankCode", dto.getString("empty"));
- data.put("accountNo", dto.getString("empty"));
- data.put("currencyCode", UkmConstants.CURR_CODE_IDR);
- data.put("accountName1", dto.getString("empty"));
- data.put("accountName2", dto.getString("empty"));
- data.put("address1", dto.getString("addressDesc"));
- data.put("address2", dto.getString("empty"));
- data.put("address3", dto.getString("empty"));
- data.put("coaId", dto.getString("nullLong"));
- data.put("creditLimit", UkmConstants.ZERO_QTY);
- this.prepareUpdateAudit(data, dto.getLong("userId"), dto.getString("datetime"));
- this.prepareInsertAudit(data, dto.getLong("userId"), dto.getString("datetime"));
- return data;
- }
- private Dto setCashbankOuDto(Dto dto) {
- Dto data = new Dto();
- data.put("cashbankId", dto.getLong("nullLong"));
- data.put("ouId", dto.getLong("nullLong"));
- this.prepareUpdateAudit(data, dto.getLong("userId"), dto.getString("datetime"));
- this.prepareInsertAudit(data, dto.getLong("userId"), dto.getString("datetime"));
- return data;
- }
- private Dto setWarehouseDto(Dto dto) {
- Dto data = new Dto();
- data.put("tenantId", dto.getLong("nullLong"));
- data.put("code", dto.getString("businessName"));
- data.put("name", dto.getString("businessName"));
- data.put("ouId", dto.getLong("nullLong"));
- data.put("flagWarehouse", dto.getString("yes"));
- data.put("address1", dto.getString("addressDesc"));
- data.put("address2", dto.getString("empty"));
- data.put("address3", dto.getString("empty"));
- data.put("city", dto.getString("empty"));
- data.put("zipCode", dto.getString("empty"));
- data.put("country", dto.getString("empty"));
- data.put("phone1", dto.getString("ownerMobilePhoneNumber"));
- data.put("phone2", dto.getString("empty"));
- data.put("fax1", dto.getString("empty"));
- data.put("fax2", dto.getString("empty"));
- data.put("email", dto.getString("ownerEmail"));
- this.prepareUpdateAudit(data, dto.getLong("userId"), dto.getString("datetime"));
- this.prepareInsertAudit(data, dto.getLong("userId"), dto.getString("datetime"));
- return data;
- }
- private Dto setWarehouseOuDto(Dto dto) {
- Dto data = new Dto();
- data.put("warehouseId", dto.getLong("nullLong"));
- data.put("ouId", dto.getLong("nullLong"));
- this.prepareUpdateAudit(data, dto.getLong("userId"), dto.getString("datetime"));
- this.prepareInsertAudit(data, dto.getLong("userId"), dto.getString("datetime"));
- return data;
- }
- private Dto setPolicyDto(Dto dto) {
- Dto data = new Dto();
- data.put("tenantId", dto.getLong("nullLong"));
- data.put("name", dto.getString("businessName"));
- data.put("code", dto.getString("ownerMobilePhoneNumber"));
- this.prepareUpdateAudit(data, dto.getLong("userId"), dto.getString("datetime"));
- this.prepareInsertAudit(data, dto.getLong("userId"), dto.getString("datetime"));
- return data;
- }
- private Dto setOutletDto(Dto dto) {
- Dto data = new Dto();
- data.put("tenantId", dto.getLong("nullLong"));
- data.put("outletName", dto.getString("businessName"));
- data.put("ouId", dto.getLong("nullLong"));
- data.put("flgInternal", dto.getString("yes"));
- data.put("partnerId", dto.getLong("nullLong"));
- data.put("warehouseId", dto.getLong("nullLong"));
- data.put("flgCreateFile", dto.getString("no"));
- data.put("openDatetime", dto.getString("datetime"));
- data.put("startDateTrx", dto.getString("startDate"));
- data.put("closeDatetime", dto.getString("empty"));
- data.put("flgEmbedded", dto.getString("no"));
- data.put("flgStockMinus", dto.getString("no"));
- data.put("flgCommission", dto.getString("no"));
- data.put("flgAccountsReceivable", dto.getString("no"));
- this.prepareUpdateAudit(data, dto.getLong("userId"), dto.getString("datetime"));
- this.prepareInsertAudit(data, dto.getLong("userId"), dto.getString("datetime"));
- return data;
- }
- private Dto setOuTypeDto(Dto dto) {
- Dto data = new Dto();
- data.put("tenantId", dto.getLong("nullLong"));
- data.put("code", dto.getString("ouTypeCode"));
- data.put("name", dto.getString("ouTypeName"));
- data.put("flagBusinessUnit", dto.getString("yes"));
- data.put("flagAccounting", dto.getString("no"));
- data.put("flagLegal", dto.getString("no"));
- data.put("flagSubBusinessUnit", dto.getString("no"));
- data.put("flagBranch", dto.getString("no"));
- this.prepareUpdateAudit(data, dto.getLong("userId"), dto.getString("datetime"));
- this.prepareInsertAudit(data, dto.getLong("userId"), dto.getString("datetime"));
- return data;
- }
- private Dto setOuDto(Dto dto) {
- Dto data = new Dto();
- data.put("tenantId", dto.getLong("nullLong"));
- data.put("code", dto.getString("ownerMobilePhoneNumber"));
- data.put("name", dto.getString("businessName"));
- data.put("parentId", dto.getLong("nullLong"));
- data.put("typeId", dto.getLong("nullLong"));
- this.prepareUpdateAudit(data, dto.getLong("userId"), dto.getString("datetime"));
- this.prepareInsertAudit(data, dto.getLong("userId"), dto.getString("datetime"));
- return data;
- }
- private Dto setOuLegalDto(Dto dto) {
- Dto data = new Dto();
- data.put("tenantId", dto.getLong("nullLong"));
- data.put("ouId", dto.getLong("nullLong"));
- data.put("name", dto.getString("businessName"));
- data.put("address1", dto.getString("address1"));
- data.put("address2", dto.getString("empty"));
- data.put("address3", dto.getString("empty"));
- data.put("city", dto.getString("city"));
- data.put("zipCode", dto.getString("empty"));
- data.put("stateOrProvince", dto.getString("empty"));
- data.put("country", dto.getString("empty"));
- data.put("phone1", dto.getString("ownerMobilePhoneNumber"));
- data.put("phone2", dto.getString("empty"));
- data.put("fax1", dto.getString("empty"));
- data.put("fax2", dto.getString("empty"));
- data.put("npwpNo", dto.getString("empty"));
- data.put("npwpDate", dto.getString("empty"));
- data.put("npwpName", dto.getString("empty"));
- data.put("npwpAddress", dto.getString("empty"));
- data.put("npwpFax", dto.getString("empty"));
- data.put("npwpPhone", dto.getString("empty"));
- data.put("flgPkp", UkmConstants.YES);
- this.prepareUpdateAudit(data, dto.getLong("userId"), dto.getString("datetime"));
- this.prepareInsertAudit(data, dto.getLong("userId"), dto.getString("datetime"));
- return data;
- }
- private Dto setPolicyOuDto(Dto dto) {
- Dto data = new Dto();
- data.put("policyId", dto.getLong("nullLong"));
- data.put("ouId", dto.getLong("nullLong"));
- this.prepareUpdateAudit(data, dto.getLong("userId"), dto.getString("datetime"));
- this.prepareInsertAudit(data, dto.getLong("userId"), dto.getString("datetime"));
- return data;
- }
- private Dto setRoleDto(Dto dto) {
- Dto data = new Dto();
- data.put("tenantId", dto.getLong("nullLong"));
- data.put("name", dto.getString("role"));
- data.put("roleType", dto.getString("roleType"));
- this.prepareUpdateAudit(data, dto.getLong("userId"), dto.getString("datetime"));
- this.prepareInsertAudit(data, dto.getLong("userId"), dto.getString("datetime"));
- return data;
- }
- private Dto setUserDto(Dto dto) {
- Dto data = new Dto();
- data.put("tenantId", dto.getLong("nullLong"));
- data.put("name", dto.getString("ownerMobilePhoneNumber"));
- data.put("fullName", dto.getString("ownerName"));
- data.put("password", dto.getString("password"));
- data.put("email", dto.getString("ownerEmail"));
- data.put("phone", dto.getString("ownerMobilePhoneNumber"));
- data.put("roleDefaultId", dto.getLong("nullLong"));
- data.put("ouDefaultId", dto.getLong("nullLong"));
- data.put("policyDefaultId", dto.getLong("nullLong"));
- data.put("privateKey", dto.getString("empty"));
- this.prepareUpdateAudit(data, dto.getLong("userId"), dto.getString("datetime"));
- this.prepareInsertAudit(data, dto.getLong("userId"), dto.getString("datetime"));
- return data;
- }
- private Dto setUserRoleDto(Dto dto) {
- Dto data = new Dto();
- data.put("userId", dto.getLong("nullLong"));
- data.put("roleId", dto.getLong("nullLong"));
- data.put("policyId", dto.getLong("nullLong"));
- this.prepareUpdateAudit(data, dto.getLong("userId"), dto.getString("datetime"));
- this.prepareInsertAudit(data, dto.getLong("userId"), dto.getString("datetime"));
- return data;
- }
- private Dto setOutletRegistrationDto(Dto dto){
- Dto data = new Dto();
- data.put("tenantId", dto.getLong("nullLong"));
- data.put("ouId", dto.getLong("nullLong"));
- data.put("outletName", dto.getString("businessName"));
- data.put("ownerName", dto.getString("ownerName"));
- data.put("phoneNumber", dto.getString("ownerMobilePhoneNumber"));
- data.put("stateOrProvince", dto.getString("city"));
- data.put("email", dto.getString("ownerEmail"));
- data.put("address", dto.getString("address1"));
- data.put("startDateTrx", GeneralConstants.EMPTY_VALUE);
- data.put("statusDoc", "D");
- data.put("approvedUser", dto.getString("empty"));
- data.put("approvedDatetime", dto.getString("empty"));
- this.prepareUpdateAudit(data, dto.getLong("userId"), dto.getString("datetime"));
- this.prepareInsertAudit(data, dto.getLong("userId"), dto.getString("datetime"));
- return data;
- }
- // INIT ROLE TASK
- private void initRoleTask(Dto dto) {
- QueryBuilder roleTaskQuery = new QueryBuilder();
- roleTaskQuery.add("INSERT INTO ")
- .add(RoleTask.TABLE_NAME)
- .add(" (role_id, task_id, create_datetime, create_user_id, update_datetime, update_user_id, version, active, active_datetime, non_active_datetime) ")
- .add(" SELECT ")
- .add(" :roleId, task_id, :createDatetime, :createUserId, :updateDatetime, :updateUserId, :version, :active, :activeDatetime, :nonActiveDatetime ")
- .add(" FROM ")
- .add(Task.TABLE_NAME)
- .add(" WHERE active = :active ");
- Query roleTask = roleTaskDao.createNativeQuery(roleTaskQuery.toString());
- roleTask.setParameter("roleId", dto.getLong("roleId"));
- roleTask.setParameter("createDatetime", dto.getString("datetime"));
- roleTask.setParameter("createUserId", dto.getLong("userId"));
- roleTask.setParameter("updateDatetime", dto.getString("datetime"));
- roleTask.setParameter("updateUserId", dto.getLong("userId"));
- roleTask.setParameter("version", 0);
- roleTask.setParameter("active", dto.getString("yes"));
- roleTask.setParameter("activeDatetime", dto.getString("datetime"));
- roleTask.setParameter("nonActiveDatetime", GeneralConstants.SPACE_VALUE);
- roleTask.executeUpdate();
- }
- private Long getGroupCoaId(Long tenantId,String flgCb){
- String code = flgCb.equals(UkmConstants.FLG_CASHBANK_C) ? "Kas" :"Bank";
- Long id = -99l;
- QueryBuilder builder = new QueryBuilder();
- builder.add("SELECT group_coa_id ")
- .add("FROM m_group_coa ")
- .add("WHERE tenant_id = :tenantId AND group_coa_code = :code");
- Query query = cashBankOuDao.createNativeQuery(builder.toString());
- query.setParameter("tenantId", tenantId);
- query.setParameter("code", code);
- List<BigInteger> resultList = query.getResultList();
- if (resultList.size() > 0) {
- id = Long.valueOf(resultList.get(0).toString());
- }
- return id;
- }
- private String countSubAcc(String mainAcc, Long tenantId){
- QueryBuilder builder = new QueryBuilder();
- builder.add(" SELECT LPAD(CAST(COALESCE(MAX(CAST(sub_acc AS BIGINT)), 0) +1 AS CHARACTER VARYING), 3, '0') ");
- builder.add(" FROM m_coa ");
- builder.add(" WHERE main_acc = :mainAcc ");
- builder.add(" AND tenant_id = :tenantId ");
- Query query = coaDao.createNativeQuery(builder.toString());
- query.setParameter("mainAcc", mainAcc);
- query.setParameter("tenantId", tenantId);
- Object result = query.getSingleResult();
- String data = result.toString();
- log.info("Count Sub Acc : " + data);
- return data;
- }
- private String mainAcc(Dto dto){
- String code = dto.getString("flgCashbank").equals(UkmConstants.FLG_CASHBANK_C) ? UkmConstants.MAIN_ACC_CASH : UkmConstants.MAIN_ACC_BANK;
- QueryBuilder builder = new QueryBuilder();
- builder.add(" SELECT A.parameter_value ");
- builder.add(" FROM t_system_config A ");
- builder.add(" JOIN t_parameter B ON A.parameter_id = B.parameter_id");
- builder.add(" WHERE A.tenant_id = :tenantId ");
- builder.add(" AND B.parameter_code = :code ");
- Query query = coaDao.createNativeQuery(builder.toString());
- query.setParameter("tenantId", dto.getLong("nullLong"));
- query.setParameter("code", code);
- String result = query.getSingleResult().toString();
- log.info("Main Acc : " + result);
- return result;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment