/* * Copyright (c) 2011 Denis Solonenko. * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Public License v2.0 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html */ package ru.orangesoftware.financisto2.activity; import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import ru.orangesoftware.financisto2.R; import ru.orangesoftware.financisto2.bus.GreenRobotBus; import ru.orangesoftware.financisto2.bus.TransactionDeleted; import ru.orangesoftware.financisto2.db.DatabaseAdapter; import ru.orangesoftware.financisto2.model.Transaction; import ru.orangesoftware.financisto2.model.TransactionStatus; /** * Created by IntelliJ IDEA. * User: Denis Solonenko * Date: 8/13/11 12:02 AM */ public class BlotterOperations { private final Context context; private final GreenRobotBus bus; private final DatabaseAdapter db; private final Transaction originalTransaction; private final Transaction targetTransaction; private boolean newFromTemplate = false; public BlotterOperations(Context context, DatabaseAdapter db, long transactionId, GreenRobotBus bus) { this.context = context; this.db = db; this.bus = bus; this.originalTransaction = db.getTransaction(transactionId); if (this.originalTransaction.isSplitChild()) { this.targetTransaction = db.getTransaction(this.originalTransaction.parentId); } else { this.targetTransaction = this.originalTransaction; } } public BlotterOperations asNewFromTemplate() { newFromTemplate = true; return this; } public void editTransaction() { if (targetTransaction.isTransfer()) { TransferActivity_.intent(context) .transactionId(targetTransaction.id) .isNewFromTemplate(newFromTemplate) .isDuplicate(false) .start(); } else { TransactionActivity_.intent(context) .transactionId(targetTransaction.id) .isNewFromTemplate(newFromTemplate) .isDuplicate(false) .start(); } } public void deleteTransaction() { int titleId = targetTransaction.isTemplate() ? R.string.delete_template_confirm : (originalTransaction.isSplitChild() ? R.string.delete_transaction_parent_confirm : R.string.delete_transaction_confirm); new AlertDialog.Builder(context) .setMessage(titleId) .setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface arg0, int arg1) { long transactionIdToDelete = targetTransaction.id; db.deleteTransaction(transactionIdToDelete); bus.post(new TransactionDeleted(transactionIdToDelete)); } }) .setNegativeButton(R.string.no, null) .show(); } public long duplicateTransaction(int multiplier) { long newId; if (multiplier > 1) { newId = db.duplicateTransactionWithMultiplier(targetTransaction.id, multiplier); } else { newId = db.duplicateTransaction(targetTransaction.id); } return newId; } public void duplicateAsTemplate() { db.duplicateTransactionAsTemplate(targetTransaction.id); } public void clearTransaction() { db.updateTransactionStatus(targetTransaction.id, TransactionStatus.CL); } public void reconcileTransaction() { db.updateTransactionStatus(targetTransaction.id, TransactionStatus.RC); } }