/** * Zeigt das Menu in Abhaengigkeit der Action. * * <p>Ist die Action == EDIT, wird im Item R.id.menu_item_create_RegelmBuchung_fromUmsatz die ID * des Umsatzes unter ID in einem Intent gespeichert. * * <p>Ist die Action == EDIT und ist es eine Umbuchung, wird unter R.id.menu_item_toUmbuchung die * ID der Gegenbuchung unter ID in einem Intent gespeichert. */ @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { super.onCreateOptionsMenu(menu, inflater); Intent intent = new Intent(); inflater.inflate(R.menu.fragment_buchungen, menu); switch (getMainAction()) { case ADD: menu.findItem(R.id.menu_item_delete_Buchung).setVisible(false); menu.findItem(R.id.menu_item_toUmbuchung).setVisible(false); menu.findItem(R.id.menu_item_create_RegelmBuchung_fromUmsatz).setVisible(false); break; case EDIT: MenuItem item; if (mUmsatz.isInserted()) { intent.putExtra(ID, mUmsatz.getID()); item = menu.findItem(R.id.menu_item_create_RegelmBuchung_fromUmsatz); item.setIntent(intent); } item = menu.findItem(R.id.menu_item_toUmbuchung); if (mUmsatz.isUmbuchung()) { menu.findItem(R.id.menu_item_delete_Buchung).setVisible(false); menu.findItem(R.id.menu_item_SplitBuchung).setVisible(false); intent.putExtra(ID, mUmsatz.getAsLong(R.string.column_transferID)); item.setIntent(intent); } else { item.setVisible(false); } break; } }
@Override public void onDismiss(@LayoutRes int layoutID, DialogInterface dialog) { if (mUmsatz.getSplitBuchung().size() == 0) { mUmsatz.removeSplittBuchung(); } else { mUmsatz.put(R.string.column_amount, mUmsatz.getSplitBuchung().getSplitBuchungsSummeAmount()); } bindView(); }
@Override public void onTextChanged(View view, String newText, long newID) { switch (view.getId()) { case R.id.actvCat: mUmsatz.put(R.string.column_catID, newID); break; case R.id.tvMemo: mUmsatz.put(R.string.column_memo, newText); break; } }
@Override public void onLongValueChanged(View view, long newAmount) { switch (view.getId()) { case R.id.tvAmount: mUmsatz.put(R.string.column_amount, newAmount); } }
@Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); switch (getMainAction()) { case EDIT: setTitle(R.string.menu_item_edit_Buchung); setSubTitle(Account.getAccountName(mUmsatz.getAccountID())); break; case ADD: setTitle(R.string.menu_item_add_Buchung); setSubTitle(Account.getAccountName(mUmsatz.getAccountID())); break; default: setTitle(Account.getAccountName(mUmsatz.getAccountID())); } }
/** Bindet die View an Daten. Wird gerufen, wenn sich Inhalte der View geaendert haben koennen */ @CallSuper protected void bindView() { View contentView = getView(); for (int resID : viewResIDs) { TextView view = (TextView) contentView.findViewById(resID); switch (resID) { case R.id.tvAmount: CalculatorTextCurrency ecAmount = (CalculatorTextCurrency) view; ecAmount.setValue(mUmsatz.getAsLong(R.string.column_amount, 0)); if (mUmsatz.isUmbuchung() || mUmsatz.hasSplitBuchung()) { ecAmount.setFocusable(false); } break; case R.id.actvCat: MonMaAutoCompleteTextView actvCat = (MonMaAutoCompleteTextView) view; MonMaAutoCompleteTextView.Target target = MonMaAutoCompleteTextView.Target.Categorie; actvCat.initialize(target, this); Long id = mUmsatz.getAsLong( R.string.column_catID, -mUmsatz.getAsLong(R.string.column_transferaccountID, NOID)); String text = Categorie.getCatName(id); actvCat.setText(text); if (mUmsatz.hasSplitBuchung()) { actvCat.setText(R.string.Splittbuchung); actvCat.setFocusable(false); } else { if (mUmsatz.isUmbuchung()) { actvCat.setFocusable(false); } } break; case R.id.tvBtag: AWDateTextView tvBtag = (AWDateTextView) view; tvBtag.setDate(mUmsatz.getBuchungsDatum()); break; case R.id.tvMemo: view.setText(mUmsatz.getMemo()); break; case R.id.actvPayee: MonMaAutoCompleteTextView actvPayee = (MonMaAutoCompleteTextView) view; actvPayee.setText(mUmsatz.getPartnerName()); break; } } }
private void showSplitBuchung() { mUmsatz.put(R.string.column_hasDetail, true); DialogFragmentSplitZeilen f = DialogFragmentSplitZeilen.newInstance(mUmsatz); f.show(getFragmentManager(), f.getTAG()); f.setOnDismissListener(this); f.setOnCancelListener(this); args.putBoolean(SHOWDIALOG, true); }
@Override protected void setInternalArguments(Bundle args) { super.setInternalArguments(args); args.putIntArray(VIEWRESIDS, viewResIDs); args.putIntArray(FROMRESIDS, fromResIDs); args.putInt(LAYOUT, layout); mUmsatz = args.getParcelable(UMSATZ); showDetails = args.getBoolean(SHOWDIALOG, false); if (mUmsatz.isDetail()) { showDetails = true; Long id = mUmsatz.getAsLong(R.string.column_transferID); try { mUmsatz = new BankUmsatz(id); args.putParcelable(UMSATZ, mUmsatz); } catch (AWApplicationGeschaeftsObjekt.LineNotFoundException e) { // TODO Execption bearbeiten e.printStackTrace(); } } }
/** * Wenn 'Save' gewaehlt wurde, wird aus Payee die ID gelesen und in R.string.column_wpid * eingefuegt. Ist diese ID nicht belegt, wurde ein (neuer) Text eingegeben. Dieser wird als * Partner angelegt und dessen ID benutzt */ @Override protected void onActionFinishClicked() { MonMaAutoCompleteTextView actv = (MonMaAutoCompleteTextView) getView().findViewById(R.id.actvPayee); long id = actv.getSelectionID(); if (id == NOID) { String partnername = actv.getText().toString(); mUmsatz.put(R.string.column_partnername, partnername); } else { mUmsatz.put(R.string.column_wpid, id); } DBHelper db = DBHelper.getInstance(); if (mUmsatz.isInserted()) { mUmsatz.update(db); } else { mUmsatz.insert(db); } Snackbar.make(getView(), getString(R.string.awlib_datensatzSaved), Snackbar.LENGTH_SHORT) .show(); super.onActionFinishClicked(); }
@Override public void onViewCreated(View v, Bundle savedInstanceState) { super.onViewCreated(v, savedInstanceState); MonMaAutoCompleteTextView actv; for (int resID : viewResIDs) { View view = v.findViewById(resID); switch (resID) { case R.id.tvMemo: ((AWEditText) view).setOnTextChangedListener(this); break; case R.id.tvBtag: AWDateTextView dtv = (AWDateTextView) view; dtv.setOnDateChangedListener(this); break; case R.id.tvAmount: CalculatorTextCurrency ctc = (CalculatorTextCurrency) view; ctc.setOnLongValueChangedListener(this); if (mUmsatz.isUmbuchung() || mUmsatz.hasSplitBuchung()) { ctc.setFocusable(false); } break; case R.id.actvPayee: actv = (MonMaAutoCompleteTextView) view; actv.initialize(MonMaAutoCompleteTextView.Target.Payee, this); actv.setText(mUmsatz.getPartnerName()); break; case R.id.actvCat: if (mUmsatz.hasSplitBuchung() || mUmsatz.isUmbuchung()) { EditText et = (EditText) view; et.setFocusable(false); } break; } } bindView(); if (showDetails) { showDetails = false; showSplitBuchung(); } }
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menu_item_SplitBuchung: mUmsatz.removeGegenbuchung(); showSplitBuchung(); return true; case R.id.menu_item_delete_Buchung: final DBHelper db = DBHelper.getInstance(); AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); // Add the buttons final SplittableCashUmsatz umsatz = mUmsatz; builder.setPositiveButton( R.string.btnDelete, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int id) { umsatz.delete(db); Snackbar.make( getView(), getString(R.string.awlib_datensatzDeleted), Snackbar.LENGTH_SHORT) .show(); FragmentAbstractBuchung.super.onActionFinishClicked(); } }); builder.setNegativeButton( R.string.btnVerwerfen, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int id) { // nix tun } }); builder.setTitle(R.string.BankUmsatzLoeschen); AlertDialog dialog = builder.create(); dialog.show(); return true; } return super.onOptionsItemSelected(item); }
@Override public void onDateChanged(AWDateTextView view, Calendar cal) { mUmsatz.put(R.string.column_btag, view.getDate()); }