package com.mozu.mozuandroidinstoreassistant.app.layout.order;
import android.content.Context;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.mozu.api.contracts.commerceruntime.orders.OrderItem;
import com.mozu.api.contracts.commerceruntime.products.Product;
import com.mozu.api.contracts.commerceruntime.products.ProductOption;
import com.mozu.mozuandroidinstoreassistant.app.R;
import com.mozu.mozuandroidinstoreassistant.app.data.IData;
import com.mozu.mozuandroidinstoreassistant.app.data.order.OrderItemRow;
import com.mozu.mozuandroidinstoreassistant.app.layout.IRowLayout;
import com.mozu.mozuandroidinstoreassistant.app.models.StringUtils;
import java.text.NumberFormat;
import butterknife.ButterKnife;
import butterknife.InjectView;
public class NewOrderItemLayout extends LinearLayout implements IRowLayout {
@InjectView(R.id.product_code)
public TextView productCode;
@InjectView(R.id.product_name)
public TextView productName;
@InjectView(R.id.fulfillment_type)
public TextView productFulfillment;
@InjectView(R.id.product_quantity)
public TextView productQuantity;
@InjectView(R.id.product_price)
public TextView productPrice;
@InjectView(R.id.product_total)
public TextView productTotal;
@InjectView(R.id.product_discount)
public TextView productDiscount;
@InjectView(R.id.product_discount_price)
public TextView productDiscountTotal;
@InjectView(R.id.product_variation)
public TextView productVariation;
public NewOrderItemLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
public NewOrderItemLayout(Context context) {
super(context);
}
public NewOrderItemLayout(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
private Double getProductPrice(Product product) {
if (product.getPrice().getSalePrice() != null) {
return product.getPrice().getSalePrice();
} else {
return product.getPrice().getPrice();
}
}
@Override
public void bindData(IData data) {
if (productTotal == null) {
ButterKnife.inject(this, this);
}
if (data instanceof OrderItemRow) {
NumberFormat mNumberFormat = NumberFormat.getCurrencyInstance();
OrderItem orderItem = ((OrderItemRow) data).orderItem;
productCode.setText(orderItem.getProduct().getProductCode());
productName.setText(orderItem.getProduct().getName());
productFulfillment.setText(orderItem.getFulfillmentMethod() + "_" + orderItem.getFulfillmentLocationCode());
productQuantity.setText(orderItem.getQuantity().toString());
productPrice.setText(mNumberFormat.format(getProductPrice(orderItem.getProduct())));
productTotal.setText(mNumberFormat.format(orderItem.getSubtotal()));
if (orderItem.getProduct().getOptions().size() > 0) {
StringBuffer optionsVal = new StringBuffer();
for (ProductOption option : orderItem.getProduct().getOptions()) {
if (optionsVal.length() > 0)
optionsVal.append(", ");
optionsVal.append(StringUtils.FirstLetterUpper(getPropertyValue(option.getAttributeFQN())));
optionsVal.append(": ");
optionsVal.append(option.getValue());
}
productVariation.setText(optionsVal.toString());
productVariation.setVisibility(VISIBLE);
}
if (orderItem.getProductDiscount() != null) {
productDiscount.setVisibility(View.VISIBLE);
productDiscount.setText(orderItem.getProductDiscount().getDiscount().getName());
productDiscountTotal.setVisibility(View.VISIBLE);
productDiscountTotal.setText("(" + mNumberFormat.format(orderItem.getProductDiscount().getImpact()) + ")");
}
}
}
private String getPropertyValue(String fullyQualifiedName) {
String delimiter = getResources().getString(R.string.attribute_delimiter);
if (!TextUtils.isEmpty(fullyQualifiedName)) {
return fullyQualifiedName.substring(fullyQualifiedName.indexOf(delimiter) + 1, fullyQualifiedName.length()).toUpperCase();
} else {
return "";
}
}
}