package com.refresh.pos.ui.inventory;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentIntegratorSupportV4;
import com.google.zxing.integration.android.IntentResult;
import com.refresh.pos.R;
import com.refresh.pos.domain.inventory.Inventory;
import com.refresh.pos.domain.inventory.ProductCatalog;
import com.refresh.pos.techicalservices.NoDaoSetException;
import com.refresh.pos.ui.component.UpdatableFragment;
/**
* A dialog of adding a Product.
*
* @author Refresh Team
*
*/
@SuppressLint("ValidFragment")
public class AddProductDialogFragment extends DialogFragment {
private EditText barcodeBox;
private ProductCatalog productCatalog;
private Button scanButton;
private EditText priceBox;
private EditText nameBox;
private Button confirmButton;
private Button clearButton;
private UpdatableFragment fragment;
private Resources res;
/**
* Construct a new AddProductDialogFragment
* @param fragment
*/
public AddProductDialogFragment(UpdatableFragment fragment) {
super();
this.fragment = fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
try {
productCatalog = Inventory.getInstance().getProductCatalog();
} catch (NoDaoSetException e) {
e.printStackTrace();
}
View v = inflater.inflate(R.layout.layout_addproduct, container,
false);
res = getResources();
barcodeBox = (EditText) v.findViewById(R.id.barcodeBox);
scanButton = (Button) v.findViewById(R.id.scanButton);
priceBox = (EditText) v.findViewById(R.id.priceBox);
nameBox = (EditText) v.findViewById(R.id.nameBox);
confirmButton = (Button) v.findViewById(R.id.confirmButton);
clearButton = (Button) v.findViewById(R.id.clearButton);
initUI();
return v;
}
/**
* Construct a new
*/
private void initUI() {
scanButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
IntentIntegratorSupportV4 scanIntegrator = new IntentIntegratorSupportV4(AddProductDialogFragment.this);
scanIntegrator.initiateScan();
}
});
confirmButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (nameBox.getText().toString().equals("")
|| barcodeBox.getText().toString().equals("")
|| priceBox.getText().toString().equals("")) {
Toast.makeText(getActivity().getBaseContext(),
res.getString(R.string.please_input_all), Toast.LENGTH_SHORT)
.show();
} else {
boolean success = productCatalog.addProduct(nameBox
.getText().toString(), barcodeBox.getText()
.toString(), Double.parseDouble(priceBox.getText()
.toString()));
if (success) {
Toast.makeText(getActivity().getBaseContext(),
res.getString(R.string.success) + ", "
+ nameBox.getText().toString(),
Toast.LENGTH_SHORT).show();
fragment.update();
clearAllBox();
AddProductDialogFragment.this.dismiss();
} else {
Toast.makeText(getActivity().getBaseContext(),
res.getString(R.string.fail),
Toast.LENGTH_SHORT).show();
}
}
}
});
clearButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(barcodeBox.getText().toString().equals("") && nameBox.getText().toString().equals("") && priceBox.getText().toString().equals("")){
AddProductDialogFragment.this.dismiss();
} else {
clearAllBox();
}
}
});
}
/**
* Clear all box
*/
private void clearAllBox() {
barcodeBox.setText("");
nameBox.setText("");
priceBox.setText("");
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
IntentResult scanningResult = IntentIntegrator.parseActivityResult(
requestCode, resultCode, intent);
if (scanningResult != null) {
String scanContent = scanningResult.getContents();
barcodeBox.setText(scanContent);
} else {
Toast.makeText(getActivity().getBaseContext(),
res.getString(R.string.fail),
Toast.LENGTH_SHORT).show();
}
}
}