protected boolean updateMessage() throws Exception {
   UpdateTemplateRequest request = basePage.getNewMobiliserRequest(UpdateTemplateRequest.class);
   request.setTemplate(message);
   UpdateTemplateResponse response = basePage.wsTemplateClient.updateTemplate(request);
   if (basePage.evaluateMobiliserResponse(response)) {
     return true;
   }
   return false;
 }
  protected void createMessage() {
    message.setLocale(basePage.convertLocale(localeStr));
    if (Constants.TEMPLATE_TYPE_SMS_KEY.equals(message.getTemplateType())) {
      MessageStringContent content = new MessageStringContent();
      content.setContentType("text/plain");
      content.setContent(getSmsText());
      message.setContent(content);
    } else {
      MessageStringContent content = new MessageStringContent();
      content.setContentType("text/plain");
      content.setContent(getPlainText());
      message.setContent(content);
      if (PortalUtils.exists(getHtmlText())) {
        MessageStringContent altContent = new MessageStringContent();
        altContent.setContentType("text/html");
        altContent.setContent(getHtmlText());
        message.setAlternativeContent(altContent);
      }
    }
    if (message.getId() == null) {
      try {
        CreateTemplateRequest request =
            basePage.getNewMobiliserRequest(CreateTemplateRequest.class);
        request.setTemplate(message);
        CreateTemplateResponse response = basePage.wsTemplateClient.createTemplate(request);
        if (!basePage.evaluateMobiliserResponse(response)) {
          return;
        }
        LOG.debug("message created successfully");
        message.setId(response.getTemplateId());
        info(getLocalizer().getString("create.message.success", this));

        setResponsePage(new EditMessagePage(message));
      } catch (Exception e) {
        LOG.error("Error in creating message. ", e);
        error(getLocalizer().getString("create.message.error", this));
      }
    } else {
      try {
        if (updateMessage()) {
          info(getLocalizer().getString("update.message.success", this));
        }
      } catch (Exception e) {
        error(getLocalizer().getString("update.message.error", this));
        LOG.error("Error in updating message", e);
      }
    }
  }
 private List<KeyValue<Long, String>> getAttachments() {
   attachmentsList = new ArrayList<KeyValue<Long, String>>();
   if (!isCreateMode) {
     try {
       FindAttachmentsRequest request =
           basePage.getNewMobiliserRequest(FindAttachmentsRequest.class);
       AttachmentSearchCriteria criteria = new AttachmentSearchCriteria();
       criteria.getTemplateExclusion().add(message.getId());
       request.setCriteria(criteria);
       FindAttachmentsResponse response = basePage.wsTemplateClient.findAttachments(request);
       if (basePage.evaluateMobiliserResponse(response)) {
         List<MessageAttachment> attachments = response.getAttachments();
         for (MessageAttachment att : attachments) {
           attachmentsList.add(new KeyValue<Long, String>(att.getId(), att.getName()));
         }
       }
     } catch (Exception e) {
       error(getLocalizer().getString("load.attachment.error", this));
       LOG.error("Error in getAttachments", e);
     }
   }
   return attachmentsList;
 }
Ejemplo n.º 4
0
  protected void approveCustomer(boolean bApprove) {
    ContinuePendingCustomerResponse response = null;

    try {
      ContinuePendingCustomerRequest request =
          mobBasePage.getNewMobiliserRequest(ContinuePendingCustomerRequest.class);
      request.setTaskId(getCustomer().getTaskId());
      request.setApprove(bApprove);
      response = mobBasePage.wsCustomerClient.continuePendingCustomer(request);
      if (!mobBasePage.evaluateMobiliserResponse(response)) {
        if (bApprove) {
          LOG.warn("# An error occurred while approving customer");
        } else {
          LOG.warn("# An error occurred while rejecting customer");
        }
        return;
      }

    } catch (Exception e) {
      if (bApprove) {

        LOG.error("# An error occurred while approving customer");
        error(getLocalizer().getString("customer.approval.error", mobBasePage));
      } else {
        LOG.error("# An error occurred while rejecting customer");
        error(getLocalizer().getString("customer.rejection.error", mobBasePage));
      }
    }

    // Create SVA for customer after approval
    if (bApprove) {

      boolean isSvaCreated = false;
      try {
        // the customer object at this point does not contain
        // customer id value from DB so set the id obtained from
        // response
        customer.setId(response.getCustomerId());
        isSvaCreated = mobBasePage.createSvaWalletWithPI(customer);
      } catch (Exception e1) {
        LOG.error(
            "# An error occured while creating SVA for customer[" + customer.getId() + "]", e1);

      } finally {
        if (!isSvaCreated
            && PortalUtils.exists(response)
            && PortalUtils.exists(response.getCustomerId())) {
          try {
            mobBasePage.deleteCustomer(customer.getId());
          } catch (Exception e1) {
            LOG.error(
                "# An error occured while deleting the customer[" + customer.getId() + "]", e1);
          }
        }
      }

      // DPP agent related processing
      Integer custType = customer.getCustomerTypeId();
      if (custType == Constants.CUSTOMER_ROLE_MONEY_MERCHANT
          || custType == Constants.CUSTOMER_ROLE_MONEY_MERCHANT_AGENT
          || custType == Constants.CUSTOMER_ROLE_MONEY_MERCHANT_DEALER) {
        inheritParentPI();
        // createBalanceAlerts();
        // saveAgentLimitSettings();
      }
    } // End of SVA Creation and DPP agent processing

    if (bApprove) {
      LOG.info("Customer approved successfully");
      mobBasePage
          .getMobiliserWebSession()
          .info(getLocalizer().getString("customer.approved.successfull", mobBasePage));

    } else {
      LOG.info("Customer rejected successfully");
      mobBasePage
          .getMobiliserWebSession()
          .info(getLocalizer().getString("customer.rejected.successfull", mobBasePage));
    }

    setResponsePage(ApproveCustomersPage.class);
  }
Ejemplo n.º 5
0
  protected boolean updateCustomer() {
    try {
      Identification existingMsisdn =
          mobBasePage.getIdentificationByCustomer(
              getCustomer().getId(), Constants.IDENT_TYPE_MSISDN);
      Identification existingUserName =
          mobBasePage.getIdentificationByCustomer(
              getCustomer().getId(), Constants.IDENT_TYPE_USERNAME);
      String existingMsisdnStr = null;
      if (PortalUtils.exists(existingMsisdn)) {
        existingMsisdnStr = existingMsisdn.getIdentification();
      }
      String existingUserNameStr = null;
      if (PortalUtils.exists(existingUserName)) {
        existingUserNameStr = existingUserName.getIdentification();
      }
      String existingNetworkProviderStr = null;
      if (PortalUtils.exists(existingMsisdn)) {
        existingNetworkProviderStr = existingMsisdn.getProvider();
      }
      // do the unique identification check only when msisdn is modified
      // OR when a new msisdn is given
      if ((PortalUtils.exists(existingMsisdnStr)
              && !existingMsisdnStr.equals(getCustomer().getMsisdn()))
          || (!PortalUtils.exists(existingMsisdnStr)
              && PortalUtils.exists(getCustomer().getMsisdn()))) {
        if (PortalUtils.exists(getCustomer().getMsisdn())
            && !mobBasePage.uniqueIdentificationCheck(
                getCustomer().getMsisdn(), Constants.IDENT_TYPE_MSISDN, getCustomer().getId())) {
          getCustomer().setMsisdn(existingMsisdnStr);
          return false;
        }
      }
      // do the unique identification check when user name is modified
      // OR when a new user name is given
      if ((PortalUtils.exists(existingUserNameStr)
              && !existingUserNameStr.equals(getCustomer().getUserName()))
          || (!PortalUtils.exists(existingUserNameStr)
              && PortalUtils.exists(getCustomer().getUserName()))) {
        if (PortalUtils.exists(getCustomer().getUserName())
            && !mobBasePage.uniqueIdentificationCheck(
                getCustomer().getUserName(),
                Constants.IDENT_TYPE_USERNAME,
                getCustomer().getId())) {
          getCustomer().setUserName(existingUserNameStr);
          return false;
        }
      }
      // check if customer status has been changed
      boolean isStatusChanged = false;
      if (!getCustomer().isActive()) {
        isStatusChanged = true;
        getCustomer().setActive(true);
      }

      if (PortalUtils.exists(getCustomer().getOriginalFeeSetId())) {
        if (getCustomer().getOriginalFeeSetId().longValue()
            != getCustomer().getFeeSetId().longValue()) {
          detachFeeSetFromCustomer(
              getCustomer().getOriginalFeeSetId(), getCustomer().getFeeSetId());
        }
      }
      getCustomer().setOriginalFeeSetId(getCustomer().getFeeSetId());
      // Check whether individual limit configuration changed

      if (PortalUtils.exists(getCustomer().getOriginalLimitSetId())) {
        if (!PortalUtils.exists(getCustomer().getLimitId())
            || getCustomer().getOriginalLimitSetId().longValue()
                != getCustomer().getLimitId().longValue()) {
          if (getCustomer().getIsIndividualLimitSet()) {
            List<LimitSetClass> limitSetClassList =
                mobBasePage.getLimitSetClassList(
                    getCustomer().getOriginalLimitSetId().longValue(),
                    Constants.LIMIT_LIMITSET_TYPE);
            if (PortalUtils.exists(limitSetClassList)) {
              for (LimitSetClass limitSetClass : limitSetClassList) {
                if (getCustomer().getOriginalLimitSetId().longValue()
                    == limitSetClass.getLimitSet().getId().longValue()) {
                  mobBasePage.removeLimitClass(
                      limitSetClass.getLimitClass().getId(),
                      limitSetClass.getLimitSet().getId(),
                      Integer.valueOf(Constants.LIMIT_LIMITSET_TYPE));

                  mobBasePage.removeLimitSet(getCustomer().getOriginalLimitSetId().longValue());

                  getCustomer().setIsIndividualLimitSet(Boolean.FALSE);
                }
              }
            }
          }

          if (PortalUtils.exists(getCustomer().getLimitId())
              && getCustomer().getLimitId().longValue() == 0) {
            getCustomer().setLimitId(null);
          }
          getCustomer().setOriginalLimitSetId(getCustomer().getLimitId());
        }
      }

      if (!mobBasePage.updateCustomerDetail(getCustomer())) return false;

      if (PortalUtils.exists(getCustomer().getAddress().getId())) {
        if (!mobBasePage.updateCustomerAddress(getCustomer())) return false;
      } else {
        if (mobBasePage.createCustomerAddress(getCustomer()) == null) return false;
      }
      if (isStatusChanged) {
        if (!mobBasePage.deleteCustomer(getCustomer().getId())) return false;
        getCustomer().setActive(false);
        setResponsePage(new ContactNotePage(new CstHomePage()));
        info(getLocalizer().getString("customer.deactivated.success", mobBasePage));
        LOG.info(
            "Customer["
                + mobBasePage.getMobiliserWebSession().getCustomer().getId()
                + "] has been succesfully deactivated");
        return false;
      }

      if (getCustomer().isActive()
          && (getCustomer().getBlackListReason() == null
              || getCustomer().getCancelationReason() == Constants.CANCELATION_REASON_OK)) {
        if (PortalUtils.exists(getCustomer().getMsisdn())) {
          if ((PortalUtils.exists(existingMsisdnStr)
                  && !existingMsisdnStr.equals(
                      getInternationalMsisdnFormat(getCustomer().getMsisdn())))
              || (PortalUtils.exists(existingNetworkProviderStr)
                  && !existingNetworkProviderStr.equals(getCustomer().getNetworkProvider()))) {
            if (mobBasePage.updateIdentificationByCustomer(
                getCustomer().getId(),
                Constants.IDENT_TYPE_MSISDN,
                existingMsisdn.getId(),
                getInternationalMsisdnFormat(getCustomer().getMsisdn()),
                getCustomer().getNetworkProvider())) {
              getCustomer().setMsisdn(getInternationalMsisdnFormat(getCustomer().getMsisdn()));
            } else {
              getCustomer().setMsisdn(existingMsisdn.getIdentification());
              return false;
            }
          } else if (!PortalUtils.exists(existingMsisdnStr)) {
            mobBasePage.createCustomerMsisdn(getCustomer());
            if (mobBasePage.isCreateStatus())
              getCustomer().setMsisdn(getInternationalMsisdnFormat(getCustomer().getMsisdn()));
            else {
              getCustomer().setMsisdn(null);
              return false;
            }
          }
        } else if (PortalUtils.exists(existingMsisdn)
            && PortalUtils.exists(existingMsisdn.getId())) {
          // remove identification
          DeleteIdentificationRequest req =
              mobBasePage.getNewMobiliserRequest(DeleteIdentificationRequest.class);
          req.setIdentificationId(existingMsisdn.getId());
          DeleteIdentificationResponse res = mobBasePage.wsIdentClient.deleteIdentification(req);
          if (!mobBasePage.evaluateMobiliserResponse(res)) {
            return false;
          }
        }
        // create or update user name
        if (PortalUtils.exists(getCustomer().getUserName())) {
          if (PortalUtils.exists(existingUserNameStr)
              && !existingUserNameStr.equals(getCustomer().getUserName())) {
            if (!mobBasePage.updateIdentificationByCustomer(
                getCustomer().getId(),
                Constants.IDENT_TYPE_USERNAME,
                existingUserName.getId(),
                getCustomer().getUserName(),
                null)) {
              getCustomer().setUserName(existingUserName.getIdentification());
              return false;
            }
          } else if (!PortalUtils.exists(existingUserNameStr)) {
            mobBasePage.createCustomerUserName(getCustomer());
            if (!mobBasePage.isCreateStatus()) {
              getCustomer().setUserName(null);
              return false;
            }
          }
        } else if (PortalUtils.exists(existingUserName)
            && PortalUtils.exists(existingUserName.getId())) {
          // remove identification
          DeleteIdentificationRequest req =
              mobBasePage.getNewMobiliserRequest(DeleteIdentificationRequest.class);
          req.setIdentificationId(existingUserName.getId());
          DeleteIdentificationResponse res = mobBasePage.wsIdentClient.deleteIdentification(req);
          if (!mobBasePage.evaluateMobiliserResponse(res)) {
            return false;
          }
        }
      }
      return true;

    } catch (Exception e) {
      LOG.error(
          "# An error occurred while updating details for customer[" + getCustomer().getId() + "]",
          e);
      error(getLocalizer().getString("customer.update.error", mobBasePage));
      return false;
    }
  }