Commit c003a2d9 by Jemsheer K D

Product Info File Transfer

parent 8817811d
......@@ -2,7 +2,7 @@
"formatVersion": 1,
"database": {
"version": 1,
"identityHash": "f0f04a9cfaa656acfc2d490784fc1275",
"identityHash": "52bcef8cc56682309aec7ce43b21d1a6",
"entities": [
{
"tableName": "waste",
......@@ -1367,11 +1367,61 @@
},
"indices": [],
"foreignKeys": []
},
{
"tableName": "sellingAreaStock",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `barcode` TEXT NOT NULL, `itemCode` TEXT NOT NULL, `itemDescription` TEXT NOT NULL, `sellingAreaStock` REAL NOT NULL, `sendStatus` INTEGER NOT NULL)",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "INTEGER",
"notNull": true
},
{
"fieldPath": "barcode",
"columnName": "barcode",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "itemCode",
"columnName": "itemCode",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "itemDescription",
"columnName": "itemDescription",
"affinity": "TEXT",
"notNull": true
},
{
"fieldPath": "sellingAreaStock",
"columnName": "sellingAreaStock",
"affinity": "REAL",
"notNull": true
},
{
"fieldPath": "sendStatus",
"columnName": "sendStatus",
"affinity": "INTEGER",
"notNull": true
}
],
"primaryKey": {
"columnNames": [
"id"
],
"autoGenerate": true
},
"indices": [],
"foreignKeys": []
}
],
"setupQueries": [
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, \"f0f04a9cfaa656acfc2d490784fc1275\")"
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, \"52bcef8cc56682309aec7ce43b21d1a6\")"
]
}
}
\ No newline at end of file
......@@ -35,6 +35,7 @@ import in.techware.carrefour.dbUtils.repositories.PrintLabelRepository;
import in.techware.carrefour.dbUtils.repositories.PromotionRepository;
import in.techware.carrefour.dbUtils.repositories.ReceiptRepository;
import in.techware.carrefour.dbUtils.repositories.ReturnRepository;
import in.techware.carrefour.dbUtils.repositories.SellingAreaStockRepository;
import in.techware.carrefour.dbUtils.repositories.StockTakeRepository;
import in.techware.carrefour.dbUtils.repositories.StoreToOffsiteRepository;
import in.techware.carrefour.dbUtils.repositories.TransformQuantityRepository;
......@@ -61,6 +62,7 @@ import in.techware.carrefour.model.PrintLabelBean;
import in.techware.carrefour.model.PromotionBean;
import in.techware.carrefour.model.ReceiptBean;
import in.techware.carrefour.model.ReturnBean;
import in.techware.carrefour.model.SellingAreaStockBean;
import in.techware.carrefour.model.StockTakeBean;
import in.techware.carrefour.model.StoreToOffsiteBean;
import in.techware.carrefour.model.TransformQuantityBean;
......@@ -138,6 +140,8 @@ public class FileTransferActivity extends BaseAppCompatNoDrawerActivity {
private NewOrderRepository.NewOrderRepositoryListener newOrderRepositoryListener;
private LabelRequestRepository labelRequestRepository;
private LabelRequestRepository.LabelRequestRepositoryListener labelRequestRepositoryListener;
private SellingAreaStockRepository sellingAreaStockRepository;
private SellingAreaStockRepository.SellingAreaStockRepositoryListener sellingAreaStockRepositoryListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
......@@ -319,7 +323,14 @@ public class FileTransferActivity extends BaseAppCompatNoDrawerActivity {
}
break;
case HomeMenuUtil.CODE_INFO:
setLabelRequestRepository();
if (labelType == AppConstants.PRODUCT_INFO_PAGE_LABEL_REQUEST) {
setLabelRequestRepository();
} else if (labelType == AppConstants.PRODUCT_INFO_PAGE_WEEK_MOVEMENT) {
setSellingAreaStockRepository();
} else {
setLabelRequestRepository();
setSellingAreaStockRepository();
}
break;
case HomeMenuUtil.CODE_MERCHAND:
switch (selectedSubMenuBean.getCode()) {
......@@ -2302,8 +2313,12 @@ public class FileTransferActivity extends BaseAppCompatNoDrawerActivity {
bean.setSendStatus(1);
labelRequestRepository.updateLabelRequest(bean, labelRequestRepositoryListener);
}
setProgressScreenVisibility(false, false);
finishTask(AppConstants.FILE_TRANSFER_RESULT_SEND_DATA_COMPLETED);
if (labelType != -1) {
setProgressScreenVisibility(false, false);
finishTask(AppConstants.FILE_TRANSFER_RESULT_SEND_DATA_COMPLETED);
} else {
sellingAreaStockRepository.getAllUnsentSellingAreaStocks(sellingAreaStockRepositoryListener);
}
}
@Override
......@@ -2333,6 +2348,95 @@ public class FileTransferActivity extends BaseAppCompatNoDrawerActivity {
};
}
private void setSellingAreaStockRepository() {
sellingAreaStockRepository = SellingAreaStockRepository.getInstance();
sellingAreaStockRepositoryListener = new SellingAreaStockRepository.SellingAreaStockRepositoryListener() {
@Override
public void onAddCompleted(SellingAreaStockBean sellingAreaStockBean) {
}
@Override
public void onAllListLoaded(ArrayList<SellingAreaStockBean> sellingAreaStockList) {
}
@Override
public void onAllSentListLoaded(ArrayList<SellingAreaStockBean> sellingAreaStockList) {
}
@Override
public void onAllUnsentListLoaded(ArrayList<SellingAreaStockBean> sellingAreaStockList) {
if (sellingAreaStockList != null && !sellingAreaStockList.isEmpty()) {
// ArrayList<SellingAreaStockBean> list = FileTransferUtil.getUniqueSellingAreaStockList(sellingAreaStockList);
StringBuilder stringBuilder = new StringBuilder();
for (SellingAreaStockBean bean : sellingAreaStockList) {
if (sellingAreaStockList.indexOf(bean) != 0) {
stringBuilder.append("\n");
}
stringBuilder
.append(BarcodeUtil.getFormattedBarcode(bean.getBarcode()))
.append(" ")
.append(BarcodeUtil.getPadLeft(bean.getItemCode(), 9, "0"))
.append(" ")
.append(BarcodeUtil.getPadLeft(bean.getItemDescription(), 35, "0"))
.append(" ")
.append(BarcodeUtil.getFormattedQuantity(bean.getSellingAreaStock(), 8, true));
}
viewModel.setSellingAreaStockList(sellingAreaStockList);
String fileName = AppConstants.getFileName(selectedMenuBean,
null, AppConstants.PRODUCT_INFO_PAGE_LABEL_REQUEST);
fop.writeFile(stringBuilder.toString(), fileName);
labelType = AppConstants.PRODUCT_INFO_PAGE_WEEK_MOVEMENT;
uploadFile(fileName, "");
}
}
@Override
public void onDeleteAllCompleted() {
}
@Override
public void onDeleteAllSentCompleted() {
for (SellingAreaStockBean bean : viewModel.getSellingAreaStockList()) {
bean.setSendStatus(1);
sellingAreaStockRepository.updateSellingAreaStock(bean, sellingAreaStockRepositoryListener);
}
setProgressScreenVisibility(false, false);
finishTask(AppConstants.FILE_TRANSFER_RESULT_SEND_DATA_COMPLETED);
}
@Override
public void onDeleteAllUnsentCompleted() {
}
@Override
public void onDeleteCompleted(SellingAreaStockBean sellingAreaStockBean) {
}
@Override
public void onFailed() {
}
@Override
public void onSellingAreaStockBeanLoaded(SellingAreaStockBean sellingAreaStockBean) {
}
@Override
public void onUpdateCompleted(SellingAreaStockBean sellingAreaStockBean) {
}
};
}
public void onFileTransferMainMenuClick(View view) {
view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);
......@@ -2482,7 +2586,13 @@ public class FileTransferActivity extends BaseAppCompatNoDrawerActivity {
}
break;
case HomeMenuUtil.CODE_INFO:
labelRequestRepository.deleteAllSentLabelRequests(labelRequestRepositoryListener);
if (labelType == AppConstants.PRODUCT_INFO_PAGE_LABEL_REQUEST) {
labelRequestRepository.deleteAllSentLabelRequests(labelRequestRepositoryListener);
} else if (labelType == AppConstants.PRODUCT_INFO_PAGE_WEEK_MOVEMENT) {
sellingAreaStockRepository.deleteAllSentSellingAreaStocks(sellingAreaStockRepositoryListener);
} else {
labelRequestRepository.deleteAllSentLabelRequests(labelRequestRepositoryListener);
}
break;
case HomeMenuUtil.CODE_MERCHAND:
switch (selectedSubMenuBean.getCode()) {
......@@ -2662,7 +2772,13 @@ public class FileTransferActivity extends BaseAppCompatNoDrawerActivity {
}
private void sendDataInfo() {
labelRequestRepository.getAllUnsentLabelRequests(labelRequestRepositoryListener);
if (labelType == AppConstants.PRODUCT_INFO_PAGE_LABEL_REQUEST) {
labelRequestRepository.getAllUnsentLabelRequests(labelRequestRepositoryListener);
} else if (labelType == AppConstants.PRODUCT_INFO_PAGE_WEEK_MOVEMENT) {
sellingAreaStockRepository.getAllUnsentSellingAreaStocks(sellingAreaStockRepositoryListener);
} else {
labelRequestRepository.getAllUnsentLabelRequests(labelRequestRepositoryListener);
}
}
......
......@@ -26,9 +26,13 @@ import in.techware.carrefour.activity.receive.ReceiveActivity;
import in.techware.carrefour.adapters.MenuListRecyclerAdapter;
import in.techware.carrefour.config.Config;
import in.techware.carrefour.dbUtils.repositories.FoodBankRepository;
import in.techware.carrefour.dbUtils.repositories.LabelRequestRepository;
import in.techware.carrefour.dbUtils.repositories.SellingAreaStockRepository;
import in.techware.carrefour.dialogs.ConfirmationDialog;
import in.techware.carrefour.model.FoodBankBean;
import in.techware.carrefour.model.LabelRequestBean;
import in.techware.carrefour.model.MenuBean;
import in.techware.carrefour.model.SellingAreaStockBean;
import in.techware.carrefour.util.AppConstants;
import in.techware.carrefour.util.menuUtils.HomeMenuUtil;
import in.techware.carrefour.viewModels.HomeViewModel;
......@@ -44,6 +48,10 @@ public class HomeActivity extends BaseAppCompatNoDrawerActivity {
private MenuBean selectedMenuBean;
private FoodBankRepository foodBankRepository;
private FoodBankRepository.FoodBankRepositoryListener foodBankRepositoryListener;
private LabelRequestRepository labelRequestRepository;
private LabelRequestRepository.LabelRequestRepositoryListener labelRequestRepositoryListener;
private SellingAreaStockRepository sellingAreaStockRepository;
private SellingAreaStockRepository.SellingAreaStockRepositoryListener sellingAreaStockRepositoryListener;
@Override
......@@ -140,6 +148,8 @@ public class HomeActivity extends BaseAppCompatNoDrawerActivity {
});
initFoodBankRepository();
initLabelRequestRepository();
initSellingAreaStockRepository();
confirmationDialogListener = new ConfirmationDialog.ConfirmationDialogActionListener() {
@Override
......@@ -147,6 +157,11 @@ public class HomeActivity extends BaseAppCompatNoDrawerActivity {
if (selectedMenuBean != null) {
switch (selectedMenuBean.getCode()) {
case HomeMenuUtil.CODE_INFO:
labelRequestRepository.deleteAllUnsentLabelRequests(labelRequestRepositoryListener);
sellingAreaStockRepository.deleteAllUnsentSellingAreaStocks(sellingAreaStockRepositoryListener);
navigateToProductInfoActivity();
break;
case HomeMenuUtil.CODE_FOOD_BANK:
foodBankRepository.deleteAllUnsentFoodBanks(foodBankRepositoryListener);
navigateToFoodBankActivity();
......@@ -160,6 +175,11 @@ public class HomeActivity extends BaseAppCompatNoDrawerActivity {
public void onNoClicked() {
if (selectedMenuBean != null) {
switch (selectedMenuBean.getCode()) {
case HomeMenuUtil.CODE_INFO:
startActivityForResult(new Intent(getApplicationContext(), FileTransferActivity.class)
.putExtra("menuBean", selectedMenuBean)
.putExtra("labelType", -1), REQ_FILE_TRANSFER);
break;
case HomeMenuUtil.CODE_FOOD_BANK:
startActivityForResult(new Intent(getApplicationContext(), FileTransferActivity.class)
.putExtra("menuBean", selectedMenuBean), REQ_FILE_TRANSFER);
......@@ -248,6 +268,140 @@ public class HomeActivity extends BaseAppCompatNoDrawerActivity {
}
private void initLabelRequestRepository() {
labelRequestRepository = LabelRequestRepository.getInstance();
labelRequestRepositoryListener = new LabelRequestRepository.LabelRequestRepositoryListener() {
@Override
public void onAddCompleted(LabelRequestBean labelRequestBean) {
}
@Override
public void onAllListLoaded(ArrayList<LabelRequestBean> labelRequestList) {
}
@Override
public void onAllSentListLoaded(ArrayList<LabelRequestBean> labelRequestList) {
}
@Override
public void onAllUnsentListLoaded(ArrayList<LabelRequestBean> labelRequestList) {
if (labelRequestList != null && !labelRequestList.isEmpty()) {
showConfirmationDialog();
} else {
sellingAreaStockRepository.getAllUnsentSellingAreaStocks(sellingAreaStockRepositoryListener);
}
}
@Override
public void onDeleteAllCompleted() {
}
@Override
public void onDeleteAllSentCompleted() {
}
@Override
public void onDeleteAllUnsentCompleted() {
}
@Override
public void onDeleteCompleted(LabelRequestBean labelRequestBean) {
}
@Override
public void onFailed() {
}
@Override
public void onUpdateCompleted(LabelRequestBean labelRequestBean) {
}
@Override
public void onLabelRequestBeanLoaded(LabelRequestBean labelRequestBean) {
}
};
}
private void initSellingAreaStockRepository() {
sellingAreaStockRepository = SellingAreaStockRepository.getInstance();
sellingAreaStockRepositoryListener = new SellingAreaStockRepository.SellingAreaStockRepositoryListener() {
@Override
public void onAddCompleted(SellingAreaStockBean sellingAreaStockBean) {
}
@Override
public void onAllListLoaded(ArrayList<SellingAreaStockBean> sellingAreaStockList) {
}
@Override
public void onAllSentListLoaded(ArrayList<SellingAreaStockBean> sellingAreaStockList) {
}
@Override
public void onAllUnsentListLoaded(ArrayList<SellingAreaStockBean> sellingAreaStockList) {
if (sellingAreaStockList != null && !sellingAreaStockList.isEmpty()) {
showConfirmationDialog();
} else {
navigateToProductInfoActivity();
}
}
@Override
public void onDeleteAllCompleted() {
}
@Override
public void onDeleteAllSentCompleted() {
}
@Override
public void onDeleteAllUnsentCompleted() {
}
@Override
public void onDeleteCompleted(SellingAreaStockBean sellingAreaStockBean) {
}
@Override
public void onFailed() {
}
@Override
public void onUpdateCompleted(SellingAreaStockBean sellingAreaStockBean) {
}
@Override
public void onSellingAreaStockBeanLoaded(SellingAreaStockBean sellingAreaStockBean) {
}
};
}
public void showConfirmationDialog() {
confirmationDialog = new ConfirmationDialog(this);
confirmationDialog.setConfirmationDialogActionListener(confirmationDialogListener);
......@@ -284,8 +438,7 @@ public class HomeActivity extends BaseAppCompatNoDrawerActivity {
.putExtra("menuBean", menuBean));
break;
case HomeMenuUtil.CODE_INFO:
startActivity(new Intent(HomeActivity.this, ProductInfoActivity.class)
.putExtra("menuBean", menuBean));
labelRequestRepository.getAllUnsentLabelRequests(labelRequestRepositoryListener);
break;
case HomeMenuUtil.CODE_MERCHAND:
startActivity(new Intent(HomeActivity.this, MerchandiseActivity.class)
......@@ -335,6 +488,11 @@ public class HomeActivity extends BaseAppCompatNoDrawerActivity {
.putExtra("menuBean", selectedMenuBean));
}
private void navigateToProductInfoActivity() {
startActivity(new Intent(HomeActivity.this, ProductInfoActivity.class)
.putExtra("menuBean", selectedMenuBean));
}
public void goToSubMenu(View view) {
startActivity(new Intent(getApplicationContext(), ITActivity.class));
......
......@@ -24,10 +24,13 @@ import java.util.ArrayList;
import in.techware.carrefour.R;
import in.techware.carrefour.activity.BaseAppCompatNoDrawerActivity;
import in.techware.carrefour.activity.FileTransferActivity;
import in.techware.carrefour.config.Config;
import in.techware.carrefour.dbUtils.repositories.LabelRequestRepository;
import in.techware.carrefour.dialogs.ConfirmationDialog;
import in.techware.carrefour.dialogs.PopupMessage;
import in.techware.carrefour.dialogs.SelectDialog;
import in.techware.carrefour.listeners.BarcodeUpdateListener;
import in.techware.carrefour.model.BasicDataBean;
import in.techware.carrefour.model.LabelRequestBean;
import in.techware.carrefour.model.MenuBean;
import in.techware.carrefour.model.PrinterBean;
......@@ -181,11 +184,21 @@ public class LabelRequestActivity extends BaseAppCompatNoDrawerActivity {
}
private void initViews() {
llSelectPrinter = findViewById(R.id.ll_label_request_printer);
txtSelectPrinter = findViewById(R.id.txt_label_request_printer);
// cbPrinter = findViewById(R.id.cb_label_request_quantity);
txtLastEntryBarcode = findViewById(R.id.txt_label_request_last_entry_barcode);
txtLastEntryQuantity = findViewById(R.id.txt_label_request_last_entry_quantity);
txtDescription = findViewById(R.id.txt_label_request_item_description);
txtDescription = findViewById(R.id.txt_label_request_item_description);
etxtBarcode = findViewById(R.id.etxt_label_request_barcode);
etxtItemCode = findViewById(R.id.etxt_label_request_item_code);
etxtNoOfLabels = findViewById(R.id.etxt_label_request_no_of_labels);
btnExit = findViewById(R.id.btn_label_request_exit);
btnMainPage = findViewById(R.id.btn_label_request_main_page);
btnOrder = findViewById(R.id.btn_label_request_order);
......@@ -202,8 +215,14 @@ public class LabelRequestActivity extends BaseAppCompatNoDrawerActivity {
}
clearViews();
setLabelRequestRepository();
llSelectPrinter.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onLabelRequestPrinterClick(v);
}
});
btnExit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
......@@ -409,6 +428,12 @@ public class LabelRequestActivity extends BaseAppCompatNoDrawerActivity {
};
}
private void onSaveCompleted() {
viewModel.setLastEntry(viewModel.getLabelRequestList().get(viewModel.lastLabelRequestIndex()));
setData();
llSelectPrinter.setEnabled(true);
}
private void setData() {
if (viewModel.getProductInfoBean() != null) {
String str = getString(R.string.label_updated_on)
......@@ -422,6 +447,21 @@ public class LabelRequestActivity extends BaseAppCompatNoDrawerActivity {
etxtNoOfLabels.setText(viewModel.getProductInfoBean().getNumLabels());
txtDescription.setText(viewModel.getProductInfoBean().getItemDescription());
if (viewModel.getLastEntry() != null) {
txtLastEntryBarcode.setText(viewModel.getLastEntry().getBarcode());
txtLastEntryQuantity.setText(BarcodeUtil.removeTrailingZeroes(viewModel.getLastEntry().getNoOfLabels()));
} else {
txtLastEntryBarcode.setText("");
txtLastEntryQuantity.setText("");
}
if (viewModel.getPrinterBean() != null) {
llSelectPrinter.setEnabled(false);
txtSelectPrinter.setText(viewModel.getPrinterBean().getName());
} else {
llSelectPrinter.setEnabled(true);
}
}
}
......@@ -444,6 +484,82 @@ public class LabelRequestActivity extends BaseAppCompatNoDrawerActivity {
setProgressScreenVisibility(false, false);
}
private void setLabelRequestRepository() {
labelRequestRepository = LabelRequestRepository.getInstance();
labelRequestRepositoryListener = new LabelRequestRepository.LabelRequestRepositoryListener() {
@Override
public void onAddCompleted(LabelRequestBean labelRequestBean) {
viewModel.getLabelRequestList().add(labelRequestBean);
onSaveCompleted();
}
@Override
public void onDeleteCompleted(LabelRequestBean labelRequestBean) {
int index = viewModel.indexOf(labelRequestBean);
if (index != -1)
viewModel.getLabelRequestList().remove(index);
setData();
}
@Override
public void onDeleteAllCompleted() {
}
@Override
public void onDeleteAllSentCompleted() {
}
@Override
public void onDeleteAllUnsentCompleted() {
}
@Override
public void onUpdateCompleted(LabelRequestBean labelRequestBean) {
int index = viewModel.indexOf(labelRequestBean);
if (index != -1) {
viewModel.getLabelRequestList().set(index, labelRequestBean);
onSaveCompleted();
}
}
@Override
public void onLabelRequestBeanLoaded(LabelRequestBean labelRequestBean) {
}
@Override
public void onAllListLoaded(ArrayList<LabelRequestBean> labelRequestListBean) {
}
@Override
public void onAllUnsentListLoaded(ArrayList<LabelRequestBean> labelRequestList) {
viewModel.setLabelRequestList(labelRequestList);
if(!labelRequestList.isEmpty()){
viewModel.setLastEntry(labelRequestList.get(viewModel.lastLabelRequestIndex()));
}
setData();
swipeView.setRefreshing(false);
setProgressScreenVisibility(false, false);
}
@Override
public void onAllSentListLoaded(ArrayList<LabelRequestBean> labelRequestListBean) {
}
@Override
public void onFailed() {
}
};
}
private void saveLabelRequestBean() {
LabelRequestBean labelRequestBean = viewModel.generateLabelRequestBean();
......@@ -456,6 +572,37 @@ public class LabelRequestActivity extends BaseAppCompatNoDrawerActivity {
}
}
public void onLabelRequestPrinterClick(View view) {
view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);
//mVibrator.vibrate(25);
if (Config.getInstance().getBasicDataBean() == null) {
Config.getInstance().setBasicDataBean(new BasicDataBean());
}
Config.getInstance().getBasicDataBean().setPrinterList(viewModel.getPrinterList());
SelectDialog selectDialog = new SelectDialog(this,
AppConstants.ACTION_CHOOSE_PRINTER);
selectDialog.setTitle(getString(R.string.label_select_printer));
selectDialog.setSelectDialogActionListener(new SelectDialog.SelectDialogActionListener() {
@Override
public void actionCompletedSuccessfully(int position, String value) {
txtSelectPrinter.setText(value);
viewModel.setPrinterBean(viewModel.getPrinterList().get(position));
viewModel.setPrinterSelectedPosition(position);
setData();
}
@Override
public void actionFailed(String errorMsg) {
setData();
llSelectPrinter.setEnabled(true);
}
});
selectDialog.show();
}
private void onLabelRequestMainPageClick(View view) {
view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);
......
......@@ -24,14 +24,14 @@ import java.util.ArrayList;
import in.techware.carrefour.R;
import in.techware.carrefour.activity.BaseAppCompatNoDrawerActivity;
import in.techware.carrefour.activity.FileTransferActivity;
import in.techware.carrefour.activity.it.FacingActivity;
import in.techware.carrefour.app.App;
import in.techware.carrefour.dbUtils.repositories.SellingAreaStockRepository;
import in.techware.carrefour.dialogs.ConfirmationDialog;
import in.techware.carrefour.dialogs.PopupMessage;
import in.techware.carrefour.listeners.BarcodeUpdateListener;
import in.techware.carrefour.model.SellingAreaStockBean;
import in.techware.carrefour.model.MenuBean;
import in.techware.carrefour.model.ProductInfoBean;
import in.techware.carrefour.model.SellingAreaStockBean;
import in.techware.carrefour.util.AppConstants;
import in.techware.carrefour.util.BarcodeUtil;
import in.techware.carrefour.util.TimeUtil;
......@@ -92,6 +92,9 @@ public class WeekMovementActivity extends BaseAppCompatNoDrawerActivity {
private Button btnOrder;
private MenuBean selectedMenuBean;
private ProductInfoViewModel viewModel;
private SellingAreaStockRepository sellingAreaStockRepository;
private SellingAreaStockRepository.SellingAreaStockRepositoryListener sellingAreaStockRepositoryListener;
private View.OnClickListener clickListener;
@Override
......@@ -155,7 +158,7 @@ public class WeekMovementActivity extends BaseAppCompatNoDrawerActivity {
if (viewModel.getSelectedPageType() == AppConstants.PRODUCT_INFO_PAGE_MAIN_PAGE) {
onWeekMovementMainPageClick(btnMainPage);
} else if (viewModel.getSelectedPageType() == AppConstants.PRODUCT_INFO_PAGE_LABEL_REQUEST) {
onWeekMovementLabelRequestClick(btnLabel);
onWeekMovementSellingAreaStockClick(btnLabel);
} else if (viewModel.getSelectedPageType() == AppConstants.PRODUCT_INFO_PAGE_ORDER_INFO) {
onWeekMovementOrderClick(btnOrder);
} else if (viewModel.getSelectedPageType() == AppConstants.PRODUCT_INFO_PAGE_WEEK_MOVEMENT) {
......@@ -187,7 +190,7 @@ public class WeekMovementActivity extends BaseAppCompatNoDrawerActivity {
private void getData(boolean isSwipeRefreshing) {
swipeView.setRefreshing(isSwipeRefreshing);
viewModel.setPrinterList(DropDownMenuUtil.getPrinterList());
sellingAreaStockRepository.getAllUnsentWeekMovements(sellingAreaStockRepositoryListener);
sellingAreaStockRepository.getAllUnsentSellingAreaStocks(sellingAreaStockRepositoryListener);
}
......@@ -210,7 +213,7 @@ public class WeekMovementActivity extends BaseAppCompatNoDrawerActivity {
}
return super.onOptionsItemSelected(item);
}
private void initViews() {
// itemCodeEditText = findViewById(R.id.etxt_item_code);
txtDescription = findViewById(R.id.txt_week_movement_item_description);
......@@ -290,7 +293,7 @@ public class WeekMovementActivity extends BaseAppCompatNoDrawerActivity {
btnLabel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onWeekMovementLabelRequestClick(v);
onWeekMovementSellingAreaStockClick(v);
}
});
btnOrder.setOnClickListener(new View.OnClickListener() {
......@@ -300,18 +303,18 @@ public class WeekMovementActivity extends BaseAppCompatNoDrawerActivity {
}
});
etxtQuantity.setOnFocusChangeListener(new View.OnFocusChangeListener() {
etxtSellingAreaStock.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
Log.i(TAG, "onFocusChange: QUANTITY FOCUS : " + hasFocus);
if (hasFocus) {
etxtQuantity.setText("");
etxtSellingAreaStock.setText("");
}/* else {
etxtQuantity.setText("1");
etxtSellingAreaStock.setText("1");
}*/
}
});
etxtQuantity.addTextChangedListener(new TextWatcher() {
etxtSellingAreaStock.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
......@@ -324,10 +327,10 @@ public class WeekMovementActivity extends BaseAppCompatNoDrawerActivity {
@Override
public void afterTextChanged(Editable s) {
if (etxtQuantity.getText().toString().length() > 0) {
double value = Double.parseDouble(etxtQuantity.getText().toString());
if (etxtSellingAreaStock.getText().toString().length() > 0) {
double value = Double.parseDouble(etxtSellingAreaStock.getText().toString());
if (value > 99999 || value < 1) {
etxtQuantity.setText("");
etxtSellingAreaStock.setText("");
Toast.makeText(App.getInstance(), R.string.message_invalid_quantity,
Toast.LENGTH_SHORT).show();
} else {
......@@ -340,24 +343,24 @@ public class WeekMovementActivity extends BaseAppCompatNoDrawerActivity {
});
etxtQuantity.setOnKeyListener(new View.OnKeyListener() {
etxtSellingAreaStock.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if ((event.getAction() == KeyEvent.ACTION_UP) && (keyCode == KeyEvent.KEYCODE_ENTER)) {
Log.i(TAG, "onEditorAction: " + etxtQuantity.getText().toString());
if (etxtQuantity.getText().toString().length() > 0) {
Log.i(TAG, "onEditorAction: " + etxtSellingAreaStock.getText().toString());
if (etxtSellingAreaStock.getText().toString().length() > 0) {
final int quantity = Integer.parseInt(etxtQuantity.getText().toString());
final int quantity = Integer.parseInt(etxtSellingAreaStock.getText().toString());
if (quantity > 99) {
ConfirmationDialog confirmationDialog = new ConfirmationDialog(FacingActivity.this);
ConfirmationDialog confirmationDialog = new ConfirmationDialog(WeekMovementActivity.this);
confirmationDialog.setConfirmationDialogActionListener(
new ConfirmationDialog.ConfirmationDialogActionListener() {
@Override
public void onYesClicked() {
viewModel.setQuantity(quantity);
viewModel.setSellingAreaStock(quantity);
// viewModel.setQuantityEnabled(false);
if (viewModel.isDataCollected()) {
saveFacingBean();
if (viewModel.getProductInfoBean() != null) {
saveSellingAreaStockBean();
}
}
......@@ -366,16 +369,16 @@ public class WeekMovementActivity extends BaseAppCompatNoDrawerActivity {
/*viewModel.setQuantity(quantity);
// viewModel.setQuantityEnabled(false);
if (viewModel.isDataCollected()) {
saveFacingBean();
saveSellingAreaStockBean();
}*/
}
});
confirmationDialog.show(R.string.message_quantity_is_greater_than_10);
} else {
viewModel.setQuantity(quantity);
viewModel.setSellingAreaStock(quantity);
// viewModel.setQuantityEnabled(false);
if (viewModel.isDataCollected()) {
saveFacingBean();
if (viewModel.getProductInfoBean() != null) {
saveSellingAreaStockBean();
}
}
......@@ -451,7 +454,7 @@ public class WeekMovementActivity extends BaseAppCompatNoDrawerActivity {
} else {
// etxtStore.setOnFocusChangeListener(focusChangedListener);
// etxtBarcode.setOnFocusChangeListener(focusChangedListener);
// etxtQuantity.setOnFocusChangeListener(focusChangedListener);
// etxtSellingAreaStock.setOnFocusChangeListener(focusChangedListener);
// etxtBarcode.setFocusableInTouchMode(false);
etxtItemCode.setFocusableInTouchMode(false);
etxtSellingAreaStock.setFocusableInTouchMode(false);
......@@ -481,6 +484,10 @@ public class WeekMovementActivity extends BaseAppCompatNoDrawerActivity {
};
}
private void onSaveCompleted() {
setData();
}
private void setData() {
if (viewModel.getProductInfoBean() != null) {
String str = getString(R.string.label_updated_on)
......@@ -610,6 +617,90 @@ public class WeekMovementActivity extends BaseAppCompatNoDrawerActivity {
setProgressScreenVisibility(false, false);
}
private void setSellingAreaStockRepository() {
sellingAreaStockRepository = SellingAreaStockRepository.getInstance();
sellingAreaStockRepositoryListener = new SellingAreaStockRepository.SellingAreaStockRepositoryListener() {
@Override
public void onAddCompleted(SellingAreaStockBean sellingAreaStockBean) {
viewModel.getSellingAreaStockList().add(sellingAreaStockBean);
onSaveCompleted();
}
@Override
public void onDeleteCompleted(SellingAreaStockBean sellingAreaStockBean) {
int index = viewModel.indexOf(sellingAreaStockBean);
if (index != -1)
viewModel.getSellingAreaStockList().remove(index);
setData();
}
@Override
public void onDeleteAllCompleted() {
}
@Override
public void onDeleteAllSentCompleted() {
}
@Override
public void onDeleteAllUnsentCompleted() {
}
@Override
public void onUpdateCompleted(SellingAreaStockBean sellingAreaStockBean) {
int index = viewModel.indexOf(sellingAreaStockBean);
if (index != -1) {
viewModel.getSellingAreaStockList().set(index, sellingAreaStockBean);
onSaveCompleted();
}
}
@Override
public void onSellingAreaStockBeanLoaded(SellingAreaStockBean sellingAreaStockBean) {
}
@Override
public void onAllListLoaded(ArrayList<SellingAreaStockBean> sellingAreaStockListBean) {
}
@Override
public void onAllUnsentListLoaded(ArrayList<SellingAreaStockBean> sellingAreaStockList) {
viewModel.setSellingAreaStockList(sellingAreaStockList);
setData();
swipeView.setRefreshing(false);
setProgressScreenVisibility(false, false);
}
@Override
public void onAllSentListLoaded(ArrayList<SellingAreaStockBean> sellingAreaStockListBean) {
}
@Override
public void onFailed() {
}
};
}
private void saveSellingAreaStockBean() {
SellingAreaStockBean sellingAreaStockBean = viewModel.generateSellingAreaStockBean();
if (viewModel.indexOf(sellingAreaStockBean) >= 0) {
// SellingAreaStockBean oldSellingAreaStockBean = viewModel.getSellingAreaStockList().get(viewModel.indexOf(sellingAreaStockBean));
// sellingAreaStockBean.setQuantity(sellingAreaStockBean.getQuantity() - oldSellingAreaStockBean.getQuantity());
sellingAreaStockRepository.updateSellingAreaStock(sellingAreaStockBean, sellingAreaStockRepositoryListener);
} else {
sellingAreaStockRepository.insertSellingAreaStock(sellingAreaStockBean, sellingAreaStockRepositoryListener);
}
}
private void onWeekMovementMainPageClick(View view) {
view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);
//mVibrator.vibrate(25);
......@@ -644,7 +735,7 @@ public class WeekMovementActivity extends BaseAppCompatNoDrawerActivity {
}
}
private void onWeekMovementLabelRequestClick(View view) {
private void onWeekMovementSellingAreaStockClick(View view) {
view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);
//mVibrator.vibrate(25);
......
......@@ -242,7 +242,7 @@ public class ReceiveOrderActivity extends BaseAppCompatNoDrawerActivity {
Log.i(TAG, "onEditorAction: " + etxtQuantity.getText().toString());
if (etxtQuantity.getText().toString().length() > 0) {
final double quantity = Double.parseDouble(etxtQuantity.getText().toString());
if (quantity <= viewModel.getQuantityOriginal()) {
if (viewModel.getReceiveOrderBean() != null && quantity <= viewModel.getReceiveOrderBean().getQuantity()) {
if (quantity > 1000) {
ConfirmationDialog confirmationDialog =
new ConfirmationDialog(ReceiveOrderActivity.this);
......@@ -305,6 +305,7 @@ public class ReceiveOrderActivity extends BaseAppCompatNoDrawerActivity {
int index = viewModel.indexOf(BarcodeUtil.getFormattedBarcode(barcode));
if (index != -1) {
ReceiveOrderBean receiveOrderBean = viewModel.getReceiveOrderList().get(index);
viewModel.setReceiveOrderBean(receiveOrderBean);
txtDescription.setText(receiveOrderBean.getDescription());
txtQuantity.setText(BarcodeUtil.removeTrailingZeroes(receiveOrderBean.getQuantity()));
viewModel.setDescription(receiveOrderBean.getDescription());
......@@ -451,6 +452,7 @@ public class ReceiveOrderActivity extends BaseAppCompatNoDrawerActivity {
private void onSaveCompleted() {
viewModel.clearReceiveOrder();
viewModel.setReceiveOrderBean(null);
viewModel.setLastEntry(viewModel.getReceiptList().get(viewModel.lastIndex()));
populateViewModel();
etxtBarcode.performClick();
......
......@@ -27,6 +27,7 @@ import in.techware.carrefour.dbUtils.dao.PromotionDao;
import in.techware.carrefour.dbUtils.dao.ReceiptDao;
import in.techware.carrefour.dbUtils.dao.ReceiveOrderDao;
import in.techware.carrefour.dbUtils.dao.ReturnDao;
import in.techware.carrefour.dbUtils.dao.SellingAreaStockDao;
import in.techware.carrefour.dbUtils.dao.StockTakeDao;
import in.techware.carrefour.dbUtils.dao.StoreToOffsiteDao;
import in.techware.carrefour.dbUtils.dao.TransformQuantityDao;
......@@ -52,6 +53,7 @@ import in.techware.carrefour.dbUtils.entity.PromotionEntity;
import in.techware.carrefour.dbUtils.entity.ReceiptEntity;
import in.techware.carrefour.dbUtils.entity.ReceiveOrderEntity;
import in.techware.carrefour.dbUtils.entity.ReturnEntity;
import in.techware.carrefour.dbUtils.entity.SellingAreaStockEntity;
import in.techware.carrefour.dbUtils.entity.StockTakeEntity;
import in.techware.carrefour.dbUtils.entity.StoreToOffsiteEntity;
import in.techware.carrefour.dbUtils.entity.TransformQuantityEntity;
......@@ -89,7 +91,8 @@ import in.techware.carrefour.dbUtils.entity.WasteEntity;
OrderEntity.class,
ReceiveOrderEntity.class,
ReceiptEntity.class,
LabelRequestEntity.class
LabelRequestEntity.class,
SellingAreaStockEntity.class
}, version = 1)
@TypeConverters({DataTypeConverters.class})
public abstract class CarrefourRoomDatabase extends RoomDatabase {
......@@ -161,4 +164,6 @@ public abstract class CarrefourRoomDatabase extends RoomDatabase {
public abstract LabelRequestDao labelRequestDao();
public abstract SellingAreaStockDao sellingAreaStockDao();
}
package in.techware.carrefour.dbUtils.dao;
import android.arch.persistence.room.Dao;
import android.arch.persistence.room.Delete;
import android.arch.persistence.room.Insert;
import android.arch.persistence.room.OnConflictStrategy;
import android.arch.persistence.room.Query;
import android.arch.persistence.room.Update;
import java.util.List;
import in.techware.carrefour.dbUtils.entity.SellingAreaStockEntity;
/**
* Created by Jemsheer K D on 25 July, 2018.
* Package in.techware.carrefour.dbUtils.dao
* Project Carrefour
*/
@Dao
public interface SellingAreaStockDao {
@Query("SELECT * FROM sellingAreaStock")
List<SellingAreaStockEntity> loadAllSellingAreaStocks();
@Insert(onConflict = OnConflictStrategy.REPLACE)
void insertAll(List<SellingAreaStockEntity> sellingAreaStockEntityList);
@Query("select * from sellingAreaStock where id = :id ORDER BY id DESC LIMIT 1")
List<SellingAreaStockEntity> getSellingAreaStock(String id);
@Query("select * from sellingAreaStock where sendStatus = 0 ORDER BY id")
List<SellingAreaStockEntity> getAllUnsentSellingAreaStock();
@Query("select * from sellingAreaStock where sendStatus = 1 ORDER BY id")
List<SellingAreaStockEntity> getAllSentSellingAreaStock();
@Query("DELETE from sellingAreaStock where sendStatus = 0")
void deleteAllUnsentSellingAreaStock();
@Query("DELETE from sellingAreaStock where sendStatus = 1")
void deleteAllSentSellingAreaStock();
@Query("DELETE FROM sellingAreaStock")
void deleteAll();
@Insert
long insert(SellingAreaStockEntity sellingAreaStockEntity);
@Update
void update(SellingAreaStockEntity sellingAreaStockEntity);
@Delete
void delete(SellingAreaStockEntity sellingAreaStockEntity);
}
package in.techware.carrefour.dbUtils.repositories;
import android.os.AsyncTask;
import java.util.ArrayList;
import java.util.List;
import in.techware.carrefour.dbUtils.CarrefourRoomDatabase;
import in.techware.carrefour.dbUtils.dao.SellingAreaStockDao;
import in.techware.carrefour.dbUtils.entity.SellingAreaStockEntity;
import in.techware.carrefour.model.SellingAreaStockBean;
/**
* Created by Jemsheer K D on 25 July, 2018.
* Package in.techware.carrefour.dbUtils.repositories
* Project Carrefour
*/
public class SellingAreaStockRepository {
private static SellingAreaStockRepository instance;
public static SellingAreaStockRepository getInstance() {
if (instance == null) {
synchronized (CarrefourRoomDatabase.class) {
if (instance == null) {
instance = new SellingAreaStockRepository();
}
}
}
return instance;
}
public void insertSellingAreaStock(SellingAreaStockBean sellingAreaStockBean, SellingAreaStockRepositoryListener listener) {
InsertSellingAreaStockTask insertSellingAreaStockTask = new InsertSellingAreaStockTask(sellingAreaStockBean, listener);
insertSellingAreaStockTask.execute();
}
public void updateSellingAreaStock(SellingAreaStockBean sellingAreaStockBean, SellingAreaStockRepositoryListener listener) {
UpdateSellingAreaStockTask updateSellingAreaStockTask = new UpdateSellingAreaStockTask(sellingAreaStockBean, listener);
updateSellingAreaStockTask.execute();
}
public void deleteSellingAreaStock(SellingAreaStockBean sellingAreaStockBean, SellingAreaStockRepositoryListener listener) {
DeleteSellingAreaStockTask deleteSellingAreaStockTask = new DeleteSellingAreaStockTask(sellingAreaStockBean, listener);
deleteSellingAreaStockTask.execute();
}
public void getAllSellingAreaStocks(SellingAreaStockRepositoryListener listener) {
GetAllSellingAreaStockTask getAllSellingAreaStockTask = new GetAllSellingAreaStockTask(listener);
getAllSellingAreaStockTask.execute();
}
public void getAllUnsentSellingAreaStocks(SellingAreaStockRepositoryListener listener) {
GetAllUnsentSellingAreaStockTask getAllUnsentSellingAreaStockTask = new GetAllUnsentSellingAreaStockTask(listener);
getAllUnsentSellingAreaStockTask.execute();
}
public void getAllSentSellingAreaStocks(SellingAreaStockRepositoryListener listener) {
GetAllSentSellingAreaStockTask getAllSentSellingAreaStockTask = new GetAllSentSellingAreaStockTask(listener);
getAllSentSellingAreaStockTask.execute();
}
public void getSellingAreaStock(String sellingAreaStockID, SellingAreaStockRepositoryListener listener) {
GetSellingAreaStockTask getSellingAreaStockTask = new GetSellingAreaStockTask(sellingAreaStockID, listener);
getSellingAreaStockTask.execute();
}
public void deleteAllSellingAreaStocks(SellingAreaStockRepositoryListener listener) {
DeleteAllSellingAreaStockTask deleteAllSellingAreaStockTask = new DeleteAllSellingAreaStockTask(listener);
deleteAllSellingAreaStockTask.execute();
}
public void deleteAllUnsentSellingAreaStocks(SellingAreaStockRepositoryListener listener) {
DeleteAllUnsentSellingAreaStockTask deleteAllUnsentSellingAreaStockTask = new DeleteAllUnsentSellingAreaStockTask(listener);
deleteAllUnsentSellingAreaStockTask.execute();
}
public void deleteAllSentSellingAreaStocks(SellingAreaStockRepositoryListener listener) {
DeleteAllSentSellingAreaStockTask deleteAllSentSellingAreaStockTask = new DeleteAllSentSellingAreaStockTask(listener);
deleteAllSentSellingAreaStockTask.execute();
}
public static interface SellingAreaStockRepositoryListener {
void onAddCompleted(SellingAreaStockBean sellingAreaStockBean);
void onAllListLoaded(ArrayList<SellingAreaStockBean> sellingAreaStockList);
void onAllSentListLoaded(ArrayList<SellingAreaStockBean> sellingAreaStockList);
void onAllUnsentListLoaded(ArrayList<SellingAreaStockBean> sellingAreaStockList);
void onDeleteAllCompleted();
void onDeleteAllSentCompleted();
void onDeleteAllUnsentCompleted();
void onDeleteCompleted(SellingAreaStockBean sellingAreaStockBean);
void onFailed();
void onSellingAreaStockBeanLoaded(SellingAreaStockBean sellingAreaStockBean);
void onUpdateCompleted(SellingAreaStockBean sellingAreaStockBean);
}
private static class InsertSellingAreaStockTask extends AsyncTask<String, Integer, Long> {
private final SellingAreaStockBean sellingAreaStockBean;
private final SellingAreaStockRepositoryListener listener;
public InsertSellingAreaStockTask(SellingAreaStockBean sellingAreaStockBean, SellingAreaStockRepositoryListener listener) {
super();
this.sellingAreaStockBean = sellingAreaStockBean;
this.listener = listener;
}
@Override
protected Long doInBackground(String... params) {
//System.out.println(">>>>>>>>>doInBackground");
SellingAreaStockEntity sellingAreaStockEntity = new SellingAreaStockEntity(sellingAreaStockBean);
SellingAreaStockDao sellingAreaStockDao = CarrefourRoomDatabase.getDatabase().sellingAreaStockDao();
long id = sellingAreaStockDao.insert(sellingAreaStockEntity);
return id;
}
@Override
protected void onPostExecute(Long id) {
super.onPostExecute(id);
if (id != -1) {
sellingAreaStockBean.setId(id);
listener.onAddCompleted(sellingAreaStockBean);
} else
listener.onFailed();
}
}
private static class UpdateSellingAreaStockTask extends AsyncTask<String, Integer, Boolean> {
private final SellingAreaStockBean sellingAreaStockBean;
private final SellingAreaStockRepositoryListener listener;
public UpdateSellingAreaStockTask(SellingAreaStockBean sellingAreaStockBean, SellingAreaStockRepositoryListener listener) {
super();
this.sellingAreaStockBean = sellingAreaStockBean;
this.listener = listener;
}
@Override
protected Boolean doInBackground(String... params) {
System.out.println(">>>>>>>>>doInBackground");
SellingAreaStockEntity sellingAreaStockEntity = new SellingAreaStockEntity(sellingAreaStockBean);
SellingAreaStockDao sellingAreaStockDao = CarrefourRoomDatabase.getDatabase().sellingAreaStockDao();
sellingAreaStockDao.update(sellingAreaStockEntity);
return true;
}
@Override
protected void onPostExecute(Boolean result) {
super.onPostExecute(result);
if (result)
listener.onUpdateCompleted(sellingAreaStockBean);
else
listener.onFailed();
}
}
private static class DeleteSellingAreaStockTask extends AsyncTask<String, Integer, Boolean> {
private final SellingAreaStockBean sellingAreaStockBean;
private final SellingAreaStockRepositoryListener listener;
public DeleteSellingAreaStockTask(SellingAreaStockBean sellingAreaStockBean, SellingAreaStockRepositoryListener listener) {
super();
this.sellingAreaStockBean = sellingAreaStockBean;
this.listener = listener;
}
@Override
protected Boolean doInBackground(String... params) {
System.out.println(">>>>>>>>>doInBackground");
SellingAreaStockEntity sellingAreaStockEntity = new SellingAreaStockEntity(sellingAreaStockBean);
SellingAreaStockDao sellingAreaStockDao = CarrefourRoomDatabase.getDatabase().sellingAreaStockDao();
sellingAreaStockDao.delete(sellingAreaStockEntity);
return true;
}
@Override
protected void onPostExecute(Boolean result) {
super.onPostExecute(result);
if (result)
listener.onDeleteCompleted(sellingAreaStockBean);
else
listener.onFailed();
}
}
private static class GetAllSellingAreaStockTask extends AsyncTask<String, Integer, ArrayList<SellingAreaStockBean>> {
private final SellingAreaStockRepositoryListener listener;
public GetAllSellingAreaStockTask(SellingAreaStockRepositoryListener listener) {
super();
this.listener = listener;
}
@Override
protected ArrayList<SellingAreaStockBean> doInBackground(String... params) {
System.out.println(">>>>>>>>>doInBackground");
SellingAreaStockDao sellingAreaStockDao = CarrefourRoomDatabase.getDatabase().sellingAreaStockDao();
List<SellingAreaStockEntity> sellingAreaStockEntities = sellingAreaStockDao.loadAllSellingAreaStocks();
ArrayList<SellingAreaStockBean> sellingAreaStockList = new ArrayList<>();
for (SellingAreaStockEntity phoneSellingAreaStockEntity : sellingAreaStockEntities) {
SellingAreaStockBean sellingAreaStockBean = phoneSellingAreaStockEntity.getBean();
sellingAreaStockList.add(sellingAreaStockBean);
}
return sellingAreaStockList;
}
@Override
protected void onPostExecute(ArrayList<SellingAreaStockBean> result) {
super.onPostExecute(result);
if (result != null) {
listener.onAllListLoaded(result);
} else
listener.onFailed();
}
}
private static class GetAllUnsentSellingAreaStockTask extends AsyncTask<String, Integer, ArrayList<SellingAreaStockBean>> {
private final SellingAreaStockRepositoryListener listener;
public GetAllUnsentSellingAreaStockTask(SellingAreaStockRepositoryListener listener) {
super();
this.listener = listener;
}
@Override
protected ArrayList<SellingAreaStockBean> doInBackground(String... params) {
System.out.println(">>>>>>>>>doInBackground");
SellingAreaStockDao sellingAreaStockDao = CarrefourRoomDatabase.getDatabase().sellingAreaStockDao();
List<SellingAreaStockEntity> sellingAreaStockEntities = sellingAreaStockDao.getAllUnsentSellingAreaStock();
ArrayList<SellingAreaStockBean> sellingAreaStockList = new ArrayList<>();
for (SellingAreaStockEntity phoneSellingAreaStockEntity : sellingAreaStockEntities) {
SellingAreaStockBean sellingAreaStockBean = phoneSellingAreaStockEntity.getBean();
sellingAreaStockList.add(sellingAreaStockBean);
}
return sellingAreaStockList;
}
@Override
protected void onPostExecute(ArrayList<SellingAreaStockBean> result) {
super.onPostExecute(result);
if (result != null) {
listener.onAllUnsentListLoaded(result);
} else
listener.onFailed();
}
}
private static class GetAllSentSellingAreaStockTask extends AsyncTask<String, Integer, ArrayList<SellingAreaStockBean>> {
private final SellingAreaStockRepositoryListener listener;
public GetAllSentSellingAreaStockTask(SellingAreaStockRepositoryListener listener) {
super();
this.listener = listener;
}
@Override
protected ArrayList<SellingAreaStockBean> doInBackground(String... params) {
System.out.println(">>>>>>>>>doInBackground");
SellingAreaStockDao sellingAreaStockDao = CarrefourRoomDatabase.getDatabase().sellingAreaStockDao();
List<SellingAreaStockEntity> sellingAreaStockEntities = sellingAreaStockDao.getAllSentSellingAreaStock();
ArrayList<SellingAreaStockBean> sellingAreaStockList = new ArrayList<>();
for (SellingAreaStockEntity phoneSellingAreaStockEntity : sellingAreaStockEntities) {
SellingAreaStockBean sellingAreaStockBean = phoneSellingAreaStockEntity.getBean();
sellingAreaStockList.add(sellingAreaStockBean);
}
return sellingAreaStockList;
}
@Override
protected void onPostExecute(ArrayList<SellingAreaStockBean> result) {
super.onPostExecute(result);
if (result != null) {
listener.onAllSentListLoaded(result);
} else
listener.onFailed();
}
}
private static class GetSellingAreaStockTask extends AsyncTask<String, Integer, SellingAreaStockBean> {
private final String sellingAreaStockID;
private final SellingAreaStockRepositoryListener listener;
public GetSellingAreaStockTask(String sellingAreaStockID, SellingAreaStockRepositoryListener listener) {
super();
this.sellingAreaStockID = sellingAreaStockID;
this.listener = listener;
}
@Override
protected SellingAreaStockBean doInBackground(String... params) {
System.out.println(">>>>>>>>>doInBackground");
SellingAreaStockDao sellingAreaStockDao = CarrefourRoomDatabase.getDatabase().sellingAreaStockDao();
List<SellingAreaStockEntity> sellingAreaStockEntities = sellingAreaStockDao.getSellingAreaStock(sellingAreaStockID);
if (sellingAreaStockEntities != null && !sellingAreaStockEntities.isEmpty()) {
return sellingAreaStockEntities.get(0).getBean();
} else {
return null;
}
}
@Override
protected void onPostExecute(SellingAreaStockBean result) {
super.onPostExecute(result);
if (result != null)
listener.onSellingAreaStockBeanLoaded(result);
else
listener.onFailed();
}
}
private static class DeleteAllSellingAreaStockTask extends AsyncTask<String, Integer, Boolean> {
private final SellingAreaStockRepositoryListener listener;
public DeleteAllSellingAreaStockTask(SellingAreaStockRepositoryListener listener) {
super();
this.listener = listener;
}
@Override
protected Boolean doInBackground(String... params) {
System.out.println(">>>>>>>>>doInBackground");
SellingAreaStockDao sellingAreaStockDao = CarrefourRoomDatabase.getDatabase().sellingAreaStockDao();
sellingAreaStockDao.deleteAll();
return true;
}
@Override
protected void onPostExecute(Boolean result) {
super.onPostExecute(result);
if (result) {
listener.onDeleteAllCompleted();
} else
listener.onFailed();
}
}
private static class DeleteAllUnsentSellingAreaStockTask extends AsyncTask<String, Integer, Boolean> {
private final SellingAreaStockRepositoryListener listener;
public DeleteAllUnsentSellingAreaStockTask(SellingAreaStockRepositoryListener listener) {
super();
this.listener = listener;
}
@Override
protected Boolean doInBackground(String... params) {
System.out.println(">>>>>>>>>doInBackground");
SellingAreaStockDao sellingAreaStockDao = CarrefourRoomDatabase.getDatabase().sellingAreaStockDao();
sellingAreaStockDao.deleteAllUnsentSellingAreaStock();
return true;
}
@Override
protected void onPostExecute(Boolean result) {
super.onPostExecute(result);
if (result) {
listener.onDeleteAllUnsentCompleted();
} else
listener.onFailed();
}
}
private static class DeleteAllSentSellingAreaStockTask extends AsyncTask<String, Integer, Boolean> {
private final SellingAreaStockRepositoryListener listener;
public DeleteAllSentSellingAreaStockTask(SellingAreaStockRepositoryListener listener) {
super();
this.listener = listener;
}
@Override
protected Boolean doInBackground(String... params) {
System.out.println(">>>>>>>>>doInBackground");
SellingAreaStockDao sellingAreaStockDao = CarrefourRoomDatabase.getDatabase().sellingAreaStockDao();
sellingAreaStockDao.deleteAllSentSellingAreaStock();
return true;
}
@Override
protected void onPostExecute(Boolean result) {
super.onPostExecute(result);
if (result) {
listener.onDeleteAllSentCompleted();
} else
listener.onFailed();
}
}
}
......@@ -267,11 +267,12 @@ public class DropDownMenuUtil {
if (str.length() > 0) {
ReceiveOrderBean receiveOrderBean = new ReceiveOrderBean();
receiveOrderBean.setOrder(str);
receiveOrderBean.setSupplier(str.length() >= 51 ? str.substring(51, 51 + 10) : "");
receiveOrderBean.setOrderNo((str.length() >= 8 ? str.substring(0, 8) : "").trim());
receiveOrderBean.setBarcode(str.length() >= 21 ? str.substring(8, 21) : "");
receiveOrderBean.setDescription((str.length() >= 8 ? str.substring(0, 8) : "") +
(str.length() > 21 ? str.substring(21) : ""));
receiveOrderBean.setSupplier(receiveOrderBean.getDescription().length() >= 51
? receiveOrderBean.getDescription().substring(51, 51 + 10) : "");
double quantity = Double.parseDouble(receiveOrderBean.getDescription().substring(8, 13))
+ (Double.parseDouble(receiveOrderBean.getDescription().substring(13, 16))) / 1000;
receiveOrderBean.setQuantity(quantity);
......
......@@ -44,6 +44,7 @@ class FileTransferViewModel : ViewModel() {
var newOrderList: ArrayList<NewOrderBean> = ArrayList()
var receiptList: ArrayList<ReceiptBean> = arrayListOf()
var labelRequestList: java.util.ArrayList<LabelRequestBean> = arrayListOf()
var labelRequestList: ArrayList<LabelRequestBean> = arrayListOf()
var sellingAreaStockList: ArrayList<SellingAreaStockBean> = arrayListOf()
}
\ No newline at end of file
......@@ -140,4 +140,12 @@ class ProductInfoViewModel : ViewModel() {
return -1
}
fun lastLabelRequestIndex(): Int {
return if (labelRequestList.isNotEmpty()) labelRequestList.size - 1 else -1
}
fun lastSellingAreaStockIndex(): Int {
return if (sellingAreaStockList.isNotEmpty()) sellingAreaStockList.size - 1 else -1
}
}
\ No newline at end of file
......@@ -25,6 +25,7 @@ class ReceiveOrderViewModel : ViewModel() {
var selectedMenuBean: MenuBean? = null
var selectedSubMenuBean: MenuBean? = null
var userBean: UserBean? = null
var receiveOrderBean: ReceiveOrderBean? = null
var lastEntry: ReceiptBean? = null
var isModifyEnabled: Boolean = false
......
......@@ -156,7 +156,8 @@
android:focusable="false"
android:focusableInTouchMode="true"
android:hint="@string/label_quantity"
android:imeOptions="actionDone|actionNext|actionGo" />
android:imeOptions="actionDone|actionNext|actionGo"
android:inputType="numberDecimal" />
<View
android:layout_width="0dp"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment