public void updateRow(View v, int i) { RelativeLayout rl = (RelativeLayout) v.getParent(); TextView tvQuantity = (TextView) rl.findViewById(R.id.salesitemrowquantity); int q = (Integer.valueOf(tvQuantity.getText().toString())) + i; tvQuantity.setText("" + q); TextView tvPrice = (TextView) rl.findViewById(R.id.salesitemrowprice); BigDecimal p = new BigDecimal(tvPrice.getText().toString()); TextView tvTotal = (TextView) rl.findViewById(R.id.salesitemrowtotalcost); tvTotal.setText(p.multiply(new BigDecimal(q)).setScale(2).toString()); UpdateSalesItemLocator ucl = (UpdateSalesItemLocator) tvQuantity.getTag(); ArrayList<SalesItemsSold> list = FundraiserCounterActivity.readGsFilex(v.getContext()); SalesItemsSold gscs = list.get(ucl.personRow); SalesItem row = gscs.getItemsSoldList().get(ucl.getSalesItemRow()); row.setQuantity(q); FundraiserCounterActivity.saveGsFilex(v.getContext(), list); LinearLayout ll = (LinearLayout) v.getParent().getParent(); RelativeLayout rlTotalRow = (RelativeLayout) ll.findViewById(R.id.rlsalesitemtotalrow); TextView tvTotalQuantity = (TextView) rlTotalRow.findViewById(R.id.salesitemrowquantity); TextView tvTotalTotal = (TextView) rlTotalRow.findViewById(R.id.salesitemrowtotalcost); tvTotalQuantity.setText("" + (Integer.parseInt(tvTotalQuantity.getText().toString()) + i)); BigDecimal bd = new BigDecimal(tvTotalTotal.getText().toString()); if (i == 1) bd = bd.add(row.getCost()); if (i == -1) bd = bd.subtract(row.getCost()); tvTotalTotal.setText(bd.toString()); }
protected String getSalesItemListEmailString(int id) { StringBuffer sb = new StringBuffer(100); ArrayList<SalesItemsSold> arrayList = FundraiserCounterActivity.readGsFilex(this); SalesItemsSold gscs = arrayList.get(id); BigDecimal personTotal = new BigDecimal("0.00").setScale(2); sb.append(gscs.getName() + "\n"); int namelen = 20; int quantitylen = 5; int costlen = 8; int saletotallen = 8; for (Iterator<SalesItem> iter2 = gscs.getItemsSoldList().iterator(); iter2.hasNext(); ) { SalesItem gsc = iter2.next(); namelen = FundraiserUtil.whichIsLarger(gsc.getName().length(), namelen); quantitylen = FundraiserUtil.whichIsLarger(gsc.getQuantity(), quantitylen); costlen = FundraiserUtil.whichIsLarger(("" + gsc.getCost()).toString().length(), costlen); saletotallen = FundraiserUtil.whichIsLarger(gsc.getTotal().toString().length(), namelen); } for (Iterator<SalesItem> iter2 = gscs.getItemsSoldList().iterator(); iter2.hasNext(); ) { SalesItem gsc = iter2.next(); sb.append(gsc.toStringBuffer(namelen, quantitylen, costlen, saletotallen)); BigDecimal saleTotal = gsc.getTotal(); personTotal = personTotal.add(saleTotal); } sb.append(" total = " + personTotal.toString()); return sb.toString(); }
private void removeItemFromList( ArrayList<SalesItemsSold> list, String gsNameFinal, String itemName, Context context) { ArrayList<SalesItemsSold> newList = new ArrayList<SalesItemsSold>(); SalesItemsSold salesItemsSold; for (Iterator<SalesItemsSold> iter = list.iterator(); iter.hasNext(); ) { salesItemsSold = iter.next(); if (gsNameFinal.equals(salesItemsSold.getName())) { ArrayList<SalesItem> salesItemsSoldList = salesItemsSold.getItemsSoldList(); ArrayList<SalesItem> newSalesItemsSoldList = new ArrayList<SalesItem>(); SalesItem saleItem; for (Iterator<SalesItem> iter2 = salesItemsSoldList.iterator(); iter2.hasNext(); ) { saleItem = iter2.next(); if (!saleItem.getName().equals(itemName)) { newSalesItemsSoldList.add(saleItem); } } salesItemsSold.setItemsSoldList(newSalesItemsSoldList); } newList.add(salesItemsSold); } FundraiserCounterActivity.saveGsFilex(context, newList); }
private void populateScreen() { setContentView(R.layout.salesitemupdate); Intent sender = getIntent(); final int id = sender.getExtras().getInt("id"); final ArrayList<SalesItemsSold> list = FundraiserCounterActivity.readGsFilex(this); if (list == null || id < 0 || id > list.size()) { return; } SalesItemsSold gscs = list.get(id); TextView titleView = (TextView) findViewById(R.id.salesitemfortextview); String gsName = gscs.getName(); final String gsNameFinal = gsName; titleView.setText("Sales Items for " + gsName); LinearLayout ll = (LinearLayout) findViewById(R.id.mylayoutxxyz); if (ll == null) { return; } Button emailButton = (Button) findViewById(R.id.salesitemUpdateEmailButton); emailButton.setOnClickListener( new View.OnClickListener() { public void onClick(View v) { Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); emailIntent.setType("plain/text"); emailIntent.putExtra( android.content.Intent.EXTRA_SUBJECT, "Sales List as of " + (new Date()).toString()); emailIntent.putExtra( android.content.Intent.EXTRA_TEXT, "List of Items\n" + getSalesItemListEmailString(id)); startActivity(emailIntent); } }); ArrayList<SalesItem> gsList = gscs.getItemsSoldList(); int i = 0; int totalQuantity = 0; BigDecimal totalCost = BigDecimal.ZERO; for (Iterator<SalesItem> iterator = gsList.iterator(); iterator.hasNext(); ) { final SalesItem saleItem = (SalesItem) iterator.next(); LayoutInflater linflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); RelativeLayout rl = (RelativeLayout) linflater.inflate(R.layout.salesitemlistupdaterow, null); TextView tvDesc = (TextView) rl.findViewById(R.id.salesitemrowdesc); tvDesc.setText(saleItem.getName()); tvDesc.setLongClickable(true); tvDesc.setOnLongClickListener( new OnLongClickListener() { public boolean onLongClick(View v) { final View vv = v; new AlertDialog.Builder(v.getContext()) .setIcon(android.R.drawable.ic_dialog_alert) .setTitle("Delete Item?") .setMessage("Do you want to delete\n\n" + saleItem.getName() + "?") .setPositiveButton( "Delete", new DialogInterface.OnClickListener() { public void onClick( DialogInterface dialog, int which) { // they have clicked on the description so remove this item removeItemFromList( list, gsNameFinal, saleItem.getName(), vv.getContext()); populateScreen(); } }) .setNegativeButton("cancel", null) .show(); return true; } }); TextView tvPrice = (TextView) rl.findViewById(R.id.salesitemrowprice); tvPrice.setText("" + saleItem.getCost().setScale(2)); TextView tvQuantity = (TextView) rl.findViewById(R.id.salesitemrowquantity); int quantity = saleItem.getQuantity(); totalQuantity += quantity; totalCost = totalCost.add(saleItem.getTotal()); tvQuantity.setText("" + quantity); UpdateSalesItemLocator ucl = new UpdateSalesItemLocator(id, i, gsList); tvQuantity.setTag(ucl); TextView tvTotal = (TextView) rl.findViewById(R.id.salesitemrowtotalcost); tvTotal.setText( saleItem .getCost() .multiply(new BigDecimal(saleItem.getQuantity())) .setScale(2) .toString()); Button plusSign = (Button) rl.findViewById(R.id.salesitemrowplus); plusSign.setOnClickListener( new View.OnClickListener() { public void onClick(View v) { (new UpdateSalesItemTotals()).updateRow(v, 1); } }); Button plusMinus = (Button) rl.findViewById(R.id.salesitemrowminus); plusMinus.setOnClickListener( new View.OnClickListener() { public void onClick(View v) { (new UpdateSalesItemTotals()).updateRow(v, -1); } }); ll.addView(rl); LayoutInflater x = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); TextView tvLine = (TextView) x.inflate(R.layout.thelineb, null); ll.addView(tvLine); i += 1; } writeTotalLine(id, ll, i, totalQuantity, totalCost); }