package co.smartreceipts.android.model.impl.columns.receipts;
import android.content.Context;
import android.support.annotation.NonNull;
import java.util.Arrays;
import co.smartreceipts.android.model.Price;
import co.smartreceipts.android.model.Receipt;
import co.smartreceipts.android.model.factory.PriceBuilderFactory;
import co.smartreceipts.android.settings.UserPreferenceManager;
import co.smartreceipts.android.settings.catalog.UserPreference;
import co.smartreceipts.android.sync.model.SyncState;
/**
* Provides a column that returns the total of the price and tax fields based on user settings
*/
public final class ReceiptNetExchangedPricePlusTaxColumn extends AbstractExchangedPriceColumn {
private final UserPreferenceManager mPreferences;
public ReceiptNetExchangedPricePlusTaxColumn(int id, @NonNull String name, @NonNull SyncState syncState, @NonNull Context context, @NonNull UserPreferenceManager preferences) {
super(id, name, syncState, context);
mPreferences = preferences;
}
@NonNull
@Override
protected Price getPrice(@NonNull Receipt receipt) {
if (mPreferences.get(UserPreference.Receipts.UsePreTaxPrice)) {
final PriceBuilderFactory factory = new PriceBuilderFactory();
factory.setPrices(Arrays.asList(receipt.getPrice(), receipt.getTax()), receipt.getTrip().getTripCurrency());
return factory.build();
} else {
return receipt.getPrice();
}
}
}