next time delivery option for free shipping

This commit is contained in:
2019-12-28 14:41:08 +03:00
parent d9885f9c1e
commit 140787d1d9
3 changed files with 58 additions and 5 deletions

View File

@@ -29,6 +29,7 @@ public class ApiConstants {
public static final String DATATRANS_REFERENCE_NUMBER_TEST = "968927"; // Taken from Datatrans sample app
public static final String DATATRANS_SIGNATURE_TEST = "30916165706580013"; // Taken from Datatrans sample app
public static final String SHIPPING_METHOD_CODE_FREE_SHIPPING = "free.free";
public static final String SHIPPING_METHOD_CODE_PICK_UP_FROM_STORE = "pickup.pickup";
public static final String CART_SUBTOTAL = "zwischensumme";

View File

@@ -104,6 +104,7 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
private ProductOnOrderSummaryRecyclerAdapter productOnOrderSummaryRecyclerAdapter;
private StoreShiftModel storeShiftModel;
private PaymentTokenModel braintreePaymentTokenModel;
private boolean isChoosingDeliveyTimeForFreeShipping;
public CreateOrderSummaryFragment() {}
@@ -226,7 +227,12 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
@Override
public void onResponse(Call<ResponseObject> call, Response<ResponseObject> response) {
if(response.isSuccessful() && response.body().isSuccess()){
if(createOrderActivity.getSelectedShippingMethod().getCode().equalsIgnoreCase(ApiConstants.SHIPPING_METHOD_CODE_PICK_UP_FROM_STORE)){
if(createOrderActivity.getSelectedShippingMethod().getCode().equalsIgnoreCase(ApiConstants.SHIPPING_METHOD_CODE_FREE_SHIPPING)){
DialogHelper.hideLoadingDialog();
showDeliveryTimePreferenceDialog();
}
else if(createOrderActivity.getSelectedShippingMethod().getCode().equalsIgnoreCase(ApiConstants.SHIPPING_METHOD_CODE_PICK_UP_FROM_STORE)){
getDeliveryTimeOfStore(choosePickUpDateTimeText);
}
else {
@@ -248,6 +254,32 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
}
private void showDeliveryTimePreferenceDialog(){
DialogHelper.showTwoButtonsDialog(
getString(R.string.info),
getString(R.string.delivery_time_preference_message),
R.string.delivery_time_preference_as_soon_as_possible,
new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
DialogHelper.showLoadingDialog();
isChoosingDeliveyTimeForFreeShipping = false;
checkDeliveryTime();
}
},
R.string.delivery_time_preference_choose_delivery_time,
new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
DialogHelper.showLoadingDialog();
isChoosingDeliveyTimeForFreeShipping = true;
getDeliveryTimeOfStore(null);
}
},
false
);
}
private void checkDeliveryTime(){
ApiService
.apiInterface
@@ -301,8 +333,13 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
if(response.body().isSuccess()){
storeShiftModel = response.body().getData();
if(dialogMessage == null || dialogMessage.isEmpty()){
showDatePickerDialog();
}
else {
showRestaurantOutOfOrderDialog(dialogMessage);
}
}
else {
DialogHelper.showAlertDialog(BaseActivity.currentActivity, genericErrorText);
}
@@ -388,6 +425,10 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
final int nowMonth = nowDate.get(Calendar.MONTH);
final int nowDay = nowDate.get(Calendar.DAY_OF_MONTH);
if(isChoosingDeliveyTimeForFreeShipping && nowDate.get(Calendar.HOUR_OF_DAY) == 23){
nowDate.add(Calendar.DAY_OF_YEAR, 1);
}
DatePickerDialog datePickerDialog = DatePickerDialog.newInstance(
new DatePickerDialog.OnDateSetListener() {
@Override
@@ -434,8 +475,11 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
dateOfOrder.get(Calendar.MONTH) == nowDate.get(Calendar.MONTH) &&
dateOfOrder.get(Calendar.DAY_OF_MONTH) == nowDate.get(Calendar.DAY_OF_MONTH);
if(isTheSameDate &&
createOrderActivity.getSelectedShippingMethod().getCode().equalsIgnoreCase(ApiConstants.SHIPPING_METHOD_CODE_PICK_UP_FROM_STORE)){
if(isTheSameDate && isChoosingDeliveyTimeForFreeShipping){
nowDate.add( Calendar.MINUTE, 75);
}
// createOrderActivity.getSelectedShippingMethod().getCode().equalsIgnoreCase(ApiConstants.SHIPPING_METHOD_CODE_PICK_UP_FROM_STORE)
else if(isTheSameDate){
nowDate.add( Calendar.MINUTE, 10);
}
@@ -519,7 +563,11 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
timePickerDialog.setSelectableTimes(generateEnabledTimePoints(workingParts));
timePickerDialog.vibrate(false);
//timePickerDialog.setMinTime(nowHour, nowMinute, nowSecond);
if(isTheSameDate){
timePickerDialog.setMinTime(nowHour, nowMinute, nowSecond);
}
timePickerDialog.show(BaseActivity.currentActivity.getFragmentManager(), choosetext);
}

View File

@@ -192,6 +192,10 @@
<string name="payment_canceled">Die Zahlung wurde storniert.</string>
<string name="andorid_pay_not_found">Android Pay konnte nicht finden.</string>
<string name="choose_pick_up_date_time">Bitte wählen Sie aus wann Sie Ihre Bestellung abholen möchten.</string>
<string name="info">Information</string>
<string name="delivery_time_preference_message">Bitte wählen Sie die Zeit für den gewünschten Termin aus.</string>
<string name="delivery_time_preference_as_soon_as_possible">Schnell wie möglich</string>
<string name="delivery_time_preference_choose_delivery_time">Termin auswählenn</string>
<!-- CreateOrderSummaryFragment-->
<!-- CreateOrderResultFragment-->