package com.example.basket; import java.util.Date; import android.app.Activity; import android.app.Fragment; import android.app.FragmentManager; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; import com.basket.activities.CheckoutActivity; import com.basket.containers.AddressContainer; import com.basket.containers.BasketSession; import com.basket.containers.CreditCardContainer; import com.basket.fragments.CreditCardButton; import com.basket.fragments.SelectAddressButton; import com.basket.general.CarJsonSpringAndroidSpiceService; import com.basket.general.Order; import com.basket.general.SelectedCreditCard; import com.basket.general.SelectedShippingAddress; import com.basket.lists.Bid_Order_List; import com.basket.lists.Products_In_Checkout_List_View; import com.basket.restrequest.BPlaceOrderRequest; import com.basket.restrequest.PlaceOrderRequest; import com.octo.android.robospice.SpiceManager; import com.octo.android.robospice.exception.RequestCancelledException; import com.octo.android.robospice.persistence.exception.SpiceException; import com.octo.android.robospice.request.listener.RequestListener; import com.octo.android.robospice.request.listener.RequestProgress; import com.octo.android.robospice.request.listener.RequestProgressListener; public class BidCheckoutActivity extends Activity { public static boolean changeCreditCard =false; public static boolean changeShippingAddressCard = false; private Fragment items,selCardFrag,selShipFrag; private Order orderToPlace; private SpiceManager spiceManager = new SpiceManager(CarJsonSpringAndroidSpiceService.class); private double total =0; private int number; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_checkout); total=BasketSession.getBidCheckout().getWinningBid().getAmmount(); TextView t =(TextView)this.findViewById(R.id.totaltextview); t.setText("$"+Double.toString(total)); FragmentManager fragMan = this.getFragmentManager(); Fragment pickCardButtonFrag = fragMan.findFragmentById(R.id.creditcardfieldplaceholder); if(pickCardButtonFrag==null){ pickCardButtonFrag = new CreditCardButton(); fragMan.beginTransaction().add(R.id.creditcardfieldplaceholder, pickCardButtonFrag).commit(); } Fragment pickAddressButtonFrag = fragMan.findFragmentById(R.id.shippingaddressfieldplaceholder); if(pickAddressButtonFrag==null){ pickAddressButtonFrag = new SelectAddressButton(); fragMan.beginTransaction().add(R.id.shippingaddressfieldplaceholder, pickAddressButtonFrag).commit(); } items = fragMan.findFragmentById(R.id.productsForCheckoutPlaceholder); if(items==null){ items = new Bid_Order_List(); fragMan.beginTransaction().add(R.id.productsForCheckoutPlaceholder, items).commit(); } Button checkOut = (Button) findViewById(R.id.CheckOut); checkOut.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { Bid_Order_List list = (Bid_Order_List) items; if (CreditCardContainer.paymentSelection==null || AddressContainer.shippingSelection==null || list.getProducts2().size()==0) { } else { if(!spiceManager.isStarted()) { Date now = new Date(); orderToPlace = new Order(); orderToPlace.setsDate(now.toString()); orderToPlace.setAccount(1); orderToPlace.setBidEvent(BasketSession.getBidCheckout()); orderToPlace.setCreditCard(CreditCardContainer.paymentSelection); orderToPlace.setDay(1); orderToPlace.setMonth(5); orderToPlace.setYear(2005); java.util.Date dt = new java.util.Date(); java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String currentTime = sdf.format(dt); orderToPlace.setShipAdress(AddressContainer.shippingSelection); spiceManager.start(BidCheckoutActivity.this); spiceManager.execute(new BPlaceOrderRequest(orderToPlace,BasketSession.getUser().getUserId(),CreditCardContainer.paymentSelection.getCardId(),CreditCardContainer.paymentSelection.getBilling().getAid(),AddressContainer.shippingSelection.getAid(),currentTime,total,BasketSession.getBidCheckout().getId()), new PlaceOrderListener()); } } } }); } @Override protected void onStart(){ super.onStart(); if(changeCreditCard){ this.changeCreditCardSelection(); CheckoutActivity.changeCreditCard = false; BidCheckoutActivity.changeCreditCard = false; } if(changeShippingAddressCard){ this.changeShippingAddressSelection(); BidCheckoutActivity.changeShippingAddressCard = false; CheckoutActivity.changeShippingAddressCard =false; } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.checkout, menu); return true; } public void changeCreditCardSelection() { FragmentManager fragMan = this.getFragmentManager(); selCardFrag = new SelectedCreditCard(); fragMan.beginTransaction().replace(R.id.creditcardfieldplaceholder, selCardFrag).commit(); } public void changeShippingAddressSelection() { FragmentManager fragMan = this.getFragmentManager(); selShipFrag = new SelectedShippingAddress(); fragMan.beginTransaction().replace(R.id.shippingaddressfieldplaceholder, selShipFrag).commit(); } private class PlaceOrderListener implements RequestListener<Boolean>, RequestProgressListener { @Override public void onRequestFailure(SpiceException arg0) { Log.d("error",arg0.getMessage()); if (!(arg0 instanceof RequestCancelledException)) { Toast.makeText(BidCheckoutActivity.this, "Order could not be placed", Toast.LENGTH_SHORT).show(); } spiceManager.shouldStop(); } @Override public void onRequestSuccess(Boolean CreatedUser) { spiceManager.shouldStop(); BasketSession.getUser().getUserOrders().add(orderToPlace); Toast.makeText(BidCheckoutActivity.this, "Order placed", Toast.LENGTH_SHORT).show(); BidCheckoutActivity.this.finish(); } @Override public void onRequestProgressUpdate(RequestProgress arg0) { } } }