我有简单的销售管理功能,我想在点击按钮时记录销售和更新库存,使其工作我有三种方法
1:记录销售,我称之为两种方法" UpdatadeStockAfterSells"和" SaveSalesData"因为这两种方法依赖于从数据库中获取数据。
2:" UpdatadeStockAfterSells"在售完后更新库存
3:" SaveSalesData"用于记录销售。
" SaveSalesData"工作正常,但当我尝试更新股票应用程序继续崩溃,我真的不知道我在哪里弄错了。 概念是"我在另一个方法中调用两个方法,以便他们可以使用一些获取数据作为输入。
// for stock
mDatabaseReference = FirebaseDatabase.getInstance().getReference("stocks");
//for sales record
mDatabaseReference1 = FirebaseDatabase.getInstance().getReference("saleRecords");
public class recordSalesModel {
String productName;
String Quantity;
public recordSalesModel(){ }
public recordSalesModel(String productName) {
this.productName = productName;
}
public recordSalesModel(String productName, String quantity) {
this.productName = productName;
Quantity = quantity;
}
public String getProductName() {
return productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
public String getQuantity() {
return Quantity;
}
public void setQuantity(String quantity) {
Quantity = quantity;
}
}
//保存销售
public void SaveSalesData(String name, String quantity) {
recordSalesModel recordSalesModel = new recordSalesModel(name, quantity);
String uploadId = mDatabaseReference1.push().getKey();
mDatabaseReference1.child(uploadId).setValue(recordSalesModel, new DatabaseReference.CompletionListener() {
@Override
public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) {
Toast.makeText(getContext(), "Error : "+ databaseError, Toast.LENGTH_LONG).show();
}
});
Toast.makeText(getContext(), " successful Inserted", Toast.LENGTH_LONG).show();
}
//更新库存
public void UpdatadeStockAfterSells(String ChildKey, String quantity_sold, String stock_Remaining_Quantity, String Stock_Quantity) {
double NewRemainingStock = Double.valueOf(stock_Remaining_Quantity) - Double.valueOf(quantity_sold);
double NewRemainingStockPercentage = (Double.valueOf(NewRemainingStock) / Double.valueOf(Stock_Quantity)) * 100;
mDatabaseReference.child(ChildKey).child("percentageRemain").setValue(String.valueOf(NewRemainingStockPercentage), new DatabaseReference.CompletionListener() {
@Override
public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) {
Toast.makeText(getContext(), "Error : ==> "+databaseError, Toast.LENGTH_LONG).show();
}
});
mDatabaseReference.child(ChildKey).child("remainingQuantity").setValue(String.valueOf(NewRemainingStock), new DatabaseReference.CompletionListener() {
@Override
public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) {
Toast.makeText(getContext(), "Error : ==> "+databaseError, Toast.LENGTH_LONG).show();
}
});
Toast.makeText(getContext(), " UPDATED", Toast.LENGTH_LONG).show();
}
//记录销售的方法
public void RecoredSales() {
final String spiner_seleceted_name = areaSpinner.getSelectedItem().toString();
final String Selling_Quantity = quantity.getText().toString();
mDatabaseReference.orderByChild("productName").equalTo(spiner_seleceted_name).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot areaSnapshot : dataSnapshot.getChildren()) {
String stockRemainingQuantity = areaSnapshot.getValue(UploadStockModel.class).getRemainingQuantity();
String stockQuantity = areaSnapshot.getValue(UploadStockModel.class).getQuantity();
String KeyDb = areaSnapshot.getKey();
SaveSalesData(spiner_seleceted_name, Selling_Quantity );
UpdatadeStockAfterSells(KeyDb, Selling_Quantity, stockRemainingQuantity, stockQuantity);
}}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}