private String getProcessorName(Integer userId) throws PluggableTaskException { ContactBL contactLoader; String processorName = null; contactLoader = new ContactBL(); contactLoader.set(userId); UserDTO user = new UserDAS().find(userId); if (user.getCustomer() != null && user.getCustomer().getMetaFields() != null) { String metaFieldName = parameters.get(PARAM_CUSTOM_FIELD_PAYMENT_PROCESSOR.getName()); MetaFieldValue customField = user.getCustomer().getMetaField(metaFieldName); if (customField == null) { // todo: try to search by id, may be temporary (now is applied) try { Integer metaFieldNameId = Integer.valueOf(metaFieldName); customField = user.getCustomer().getMetaField(metaFieldNameId); } catch (Exception ex) { // do nothing } } if (customField == null) { LOG.warn( "Can't find Custom Field with type " + parameters.get(PARAM_CUSTOM_FIELD_PAYMENT_PROCESSOR.getName()) + " user = " + userId); processorName = null; } else { processorName = (String) customField.getValue(); } } return processorName; }
public MetaFieldValueWS(MetaFieldValue metaFieldValue) { if (metaFieldValue.getField() != null) { this.fieldName = metaFieldValue.getField().getName(); this.disabled = metaFieldValue.getField().isDisabled(); this.mandatory = metaFieldValue.getField().isMandatory(); this.dataType = metaFieldValue.getField().getDataType(); this.displayOrder = metaFieldValue.getField().getDisplayOrder(); setDefaultValue( metaFieldValue.getField().getDefaultValue() != null ? metaFieldValue.getField().getDefaultValue().getValue() : null); } this.id = metaFieldValue.getId(); this.setValue(metaFieldValue.getValue()); }
private LineItem getLineItem( Integer itemId, InvoiceLineDTO invoiceLine, String uniqueTrackingCode, Integer userId) throws TaskException { // Get the meta field names String secondaryZipCodeExtensionFieldname = getParameter(SECONDARY_ZIP_CODE_EXTN_FIELDNAME, "Secondary Zip code extension"); String secondaryZipCodeFieldname = getParameter(SECONDARY_ZIP_CODE_FIELDNAME, "Secondary Zip code"); String billingZipCodeFieldname = getParameter(BILLING_ZIP_CODE_FIELDNAME, "Billing Zip code extension"); String regulatoryCodeFieldname = getParameter(REGULATORY_CODE_FIELDNAME, "Regulatory Code"); String salesTypeCodeFieldname = getParameter(SALES_TYPE_CODE_FIELDNAME, "Sales Type Code"); String taxExemptionCodeFieldname = getParameter(TAX_EXEMPTION_CODE_FIELDNAME, "Tax exemption code"); String transactionTypeCodeFieldname = getParameter(TRANSACTION_TYPE_CODE_FIELDNAME, "Transaction Type Code"); LineItem lineItem = new LineItem(); lineItem.setBillToNumber(""); // TODO: need to be addressed ? String customerNumber = null; List<NewInvoiceContext.OrderContext> orders = invoice.getOrders(); // We need to get the fresh item from the database because // the item in the invoiceLine doesn't yet contain meta fields. ItemDTO item = new ItemDAS().find(itemId); OrderDTO orderDTO = null; UserDTO invoiceToUser = null; for (NewInvoiceContext.OrderContext orderCtx : orders) { if (orderCtx.order.getId().intValue() == invoiceLine.getOrder().getId()) { orderDTO = orderCtx.order; break; } } if (null == orderDTO) { orderDTO = orders.get(0).order; } invoiceToUser = new UserDAS().find(userId); customerNumber = invoiceToUser.getCustomer().getId() + ""; lineItem.setCustomerNumber(customerNumber); lineItem.setInvoiceNumber("JB" + uniqueTrackingCode); lineItem.setLineNumber(""); // TODO: need to be addressed ? lineItem.setOrigNumber(""); // TODO: need to be addressed ? MetaFieldValue<String> p2PPlus4 = invoiceToUser.getCustomer().getMetaField(secondaryZipCodeExtensionFieldname); if (p2PPlus4 != null) { lineItem.setP2PPlus4(p2PPlus4.getValue()); } else { lineItem.setP2PPlus4(""); } MetaFieldValue<String> p2PZipcode = invoiceToUser.getCustomer().getMetaField(secondaryZipCodeFieldname); if (p2PZipcode != null) { lineItem.setP2PZipcode(p2PZipcode.getValue()); } else { lineItem.setP2PZipcode(""); } MetaFieldValue<String> plus4 = invoiceToUser.getCustomer().getMetaField(billingZipCodeFieldname); if (plus4 != null) { lineItem.setPlus4(plus4.getValue()); } else { lineItem.setPlus4(""); } LOG.debug("Meta fields: p2PPlus4: %s, p2PZipcode: %s, plus4:%s", p2PPlus4, p2PZipcode, plus4); MetaFieldValue<String> regulatoryCode = null; regulatoryCode = item.getMetaField(regulatoryCodeFieldname); if (regulatoryCode == null || regulatoryCode.getValue() == null || regulatoryCode.getValue().isEmpty()) { lineItem.setRegulatoryCode("00"); } else { lineItem.setRegulatoryCode(regulatoryCode.getValue()); } lineItem.setRevenue(invoiceLine.getAmount().floatValue()); MetaFieldValue<String> salesTypeCode = orderDTO.getMetaField(salesTypeCodeFieldname); if (salesTypeCode == null || salesTypeCode.getValue() == null || salesTypeCode.getValue().isEmpty()) { lineItem.setSalesTypeCode("R"); } else { lineItem.setSalesTypeCode(salesTypeCode.getValue()); } lineItem.setSeconds( invoiceLine.getQuantity() != null ? invoiceLine.getQuantity().intValue() : 0); List<String> taxExemptionCodeList = new ArrayList<String>(); // First get the tax exemption code from the customer MetaFieldValue<String> taxExemptionCode = invoiceToUser.getCustomer().getMetaField(taxExemptionCodeFieldname); LOG.debug("Tax exemption code from customer: %s", taxExemptionCode); if (!(taxExemptionCode != null && taxExemptionCode.getValue() != null && !taxExemptionCode.getValue().isEmpty())) { taxExemptionCode = item.getMetaField(taxExemptionCodeFieldname); LOG.debug("Tax exemption code from product: %s", taxExemptionCode); } if (taxExemptionCode == null) { LOG.debug("Setting tax exemption code to be 00"); taxExemptionCodeList.add("00"); } else { taxExemptionCodeList.add(taxExemptionCode.getValue()); } LOG.debug( "Meta fields: regulatoryCode: %s, salesTypeCode: %s, taxExemptionCode: %s", regulatoryCode, salesTypeCode, taxExemptionCode); lineItem.setTaxExemptionCodeList(taxExemptionCodeList); lineItem.setTaxIncludedCode("0"); lineItem.setTermNumber(""); // TODO: Need to check if trans date will be current date or based on data year and data month ? lineItem.setTransDate("07-10-2012"); MetaFieldValue<String> transTypeCode = null; transTypeCode = item.getMetaField(transactionTypeCodeFieldname); if (transTypeCode == null || transTypeCode.getValue() == null || transTypeCode.getValue().isEmpty()) { throw new SessionInternalError( "No valid transaction type code found on the product", new String[] {"ItemDTOEx,transTypeCode,no.valid.transactionTypeCode.on.product"}); } lineItem.setTransTypeCode(transTypeCode.getValue()); lineItem.setUnits(invoiceLine.getQuantity() != null ? invoiceLine.getQuantity().intValue() : 0); lineItem.setUnitType("00"); if (invoiceToUser.getContact().getPostalCode() != null && plus4 != null && plus4.getValue() != null && !plus4.getValue().isEmpty()) { lineItem.setZipcode(invoiceToUser.getContact().getPostalCode()); lineItem.setTaxSitusRule("05"); } else if (invoiceToUser.getContact().getPostalCode() != null && (plus4 == null || plus4.getValue() == null || plus4.getValue().isEmpty())) { lineItem.setZipcode(invoiceToUser.getContact().getPostalCode()); lineItem.setPlus4("0000"); lineItem.setTaxSitusRule("05"); } return lineItem; }