private void checkForTaxExemption( final Invoice invoice, final Collection<PluginProperty> properties, final TenantContext context) { // Overridden by plugin properties? if (PluginProperties.findPluginPropertyValue( AvaTaxTaxCalculator.CUSTOMER_USAGE_TYPE, properties) != null) { return; } final List<CustomField> customFields = killbillAPI .getCustomFieldUserApi() .getCustomFieldsForObject(invoice.getAccountId(), ObjectType.ACCOUNT, context); final CustomField customField = Iterables.<CustomField>tryFind( customFields, new Predicate<CustomField>() { @Override public boolean apply(final CustomField customField) { return AvaTaxTaxCalculator.CUSTOMER_USAGE_TYPE.equals( customField.getFieldName()); } }) .orNull(); if (customField != null) { properties.add( new PluginProperty( AvaTaxTaxCalculator.CUSTOMER_USAGE_TYPE, customField.getFieldValue(), false)); } }
private void addTaxCodeToInvoiceItem( final UUID invoiceItemId, final String taxCode, final Collection<PluginProperty> properties) { final String pluginPropertyName = String.format("%s_%s", AvaTaxTaxCalculator.TAX_CODE, invoiceItemId); // Already in plugin properties? if (PluginProperties.findPluginPropertyValue(pluginPropertyName, properties) == null) { properties.add(new PluginProperty(pluginPropertyName, taxCode, false)); } }
public static PaymentInfo toPaymentInfo( @Nullable final AccountData account, final AdyenConfigProperties configuration, final Clock clock, final Iterable<PluginProperty> properties) { final WebPaymentFrontend paymentInfo = new WebPaymentFrontend(); final String propertyShipBeforeDate = PluginProperties.findPluginPropertyValue(PROPERTY_SHIP_BEFORE_DATE, properties); final DateTime shipBeforeDateTime = propertyShipBeforeDate == null ? clock.getUTCNow().plusHours(1) : new DateTime(propertyShipBeforeDate); paymentInfo.setShipBeforeDate(shipBeforeDateTime.toString("yyyy-MM-dd")); String countryCode = PluginProperties.getValue(PROPERTY_COUNTRY, null, properties); if (countryCode == null && account != null) { countryCode = account.getCountry(); } final String skinCode = PluginProperties.getValue( PROPERTY_SKIN_CODE, configuration.getSkin(countryCode), properties); paymentInfo.setSkinCode(skinCode); final String orderData = PluginProperties.findPluginPropertyValue(PROPERTY_ORDER_DATA, properties); paymentInfo.setOrderData(orderData); final String sessionValidity = PluginProperties.getValue( PROPERTY_SESSION_VALIDITY, clock.getUTCNow().plusMinutes(15).toString("yyyy-MM-dd'T'HH:mm:ssZZ"), properties); paymentInfo.setSessionValidity(sessionValidity); final String merchantReturnData = PluginProperties.findPluginPropertyValue(PROPERTY_MERCHANT_RETURN_DATA, properties); paymentInfo.setMerchantReturnData(merchantReturnData); final String allowedMethods = PluginProperties.findPluginPropertyValue(PROPERTY_ALLOWED_METHODS, properties); paymentInfo.setAllowedMethods(allowedMethods); final String blockedMethods = PluginProperties.findPluginPropertyValue(PROPERTY_BLOCKED_METHODS, properties); paymentInfo.setBlockedMethods(blockedMethods); final String brandCode = PluginProperties.getValue( PROPERTY_BRAND_CODE, configuration.getHppVariantOverride(), properties); paymentInfo.setBrandCode(brandCode); final String issuerId = PluginProperties.findPluginPropertyValue(PROPERTY_ISSUER_ID, properties); paymentInfo.setIssuerId(issuerId); final String offerEmail = PluginProperties.findPluginPropertyValue(PROPERTY_OFFER_EMAIL, properties); paymentInfo.setOfferEmail(offerEmail); final String serverUrl = PluginProperties.findPluginPropertyValue(PROPERTY_SERVER_URL, properties); final String resultUrl = PluginProperties.findPluginPropertyValue(PROPERTY_RESULT_URL, properties); paymentInfo.setResURL(Strings.nullToEmpty(serverUrl) + Strings.nullToEmpty(resultUrl)); return paymentInfo; }