new store delivery time service
This commit is contained in:
@@ -29,7 +29,7 @@ public class ApiEndPoints {
|
||||
public static final String API_GET_STORE_INFO = PREFIX + "getStoreInfo" + SUFFIX;
|
||||
public static final String API_CHECK_CAMPAIGN_PIZZAPASS = PREFIX + "detectPizzaPassCampaign" + SUFFIX + "&token=";
|
||||
public static final String API_CHECK_CAMPAIGN_KEBAPPASS = PREFIX + "detectKebapPassCampaign" + SUFFIX + "&token=";
|
||||
public static final String API_CHECK_DELIVERY_TIME = PREFIX + "checkDeliveryTimeService" + SUFFIX;
|
||||
public static final String API_CHECK_DELIVERY_TIME = PREFIX + "checkDeliveryTimeServiceNew" + SUFFIX;
|
||||
public static final String API_GET_DELIVERY_TIME_OF_STORE = PREFIX + "getDeliveryTimeForStore" + SUFFIX;
|
||||
|
||||
|
||||
|
||||
@@ -21,8 +21,11 @@ import com.wdullaer.materialdatetimepicker.date.DatePickerDialog;
|
||||
import com.wdullaer.materialdatetimepicker.time.TimePickerDialog;
|
||||
import com.wdullaer.materialdatetimepicker.time.Timepoint;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
|
||||
import butterknife.BindString;
|
||||
@@ -389,13 +392,9 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
|
||||
private void showDatePickerDialog() {
|
||||
|
||||
Calendar nowDate = Calendar.getInstance();
|
||||
Calendar maxdate = Calendar.getInstance();
|
||||
maxdate.add(Calendar.DAY_OF_YEAR, 7);
|
||||
//maxdate.add(Calendar.MONTH, 1);
|
||||
|
||||
int nowYear = nowDate.get(Calendar.YEAR);
|
||||
int nowMonth = nowDate.get(Calendar.MONTH);
|
||||
int nowDay = nowDate.get(Calendar.DAY_OF_MONTH);
|
||||
final int nowYear = nowDate.get(Calendar.YEAR);
|
||||
final int nowMonth = nowDate.get(Calendar.MONTH);
|
||||
final int nowDay = nowDate.get(Calendar.DAY_OF_MONTH);
|
||||
|
||||
DatePickerDialog datePickerDialog = DatePickerDialog.newInstance(
|
||||
new DatePickerDialog.OnDateSetListener() {
|
||||
@@ -426,9 +425,10 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
|
||||
nowDay
|
||||
);
|
||||
|
||||
datePickerDialog.setSelectableDays(generateEnabledDays());
|
||||
|
||||
datePickerDialog.vibrate(false);
|
||||
datePickerDialog.setMinDate(nowDate);
|
||||
datePickerDialog.setMaxDate(maxdate);
|
||||
//datePickerDialog.autoDismiss(true);
|
||||
datePickerDialog.show(BaseActivity.currentActivity.getFragmentManager(), choosetext);
|
||||
}
|
||||
@@ -436,36 +436,57 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
|
||||
private void showTimePickerDialog(){
|
||||
|
||||
Calendar nowDate = Calendar.getInstance();
|
||||
|
||||
int orderYear = dateOfOrder.get(Calendar.YEAR);
|
||||
int orderMonth = dateOfOrder.get(Calendar.MONTH);
|
||||
int orderDay = dateOfOrder.get(Calendar.DAY_OF_MONTH);
|
||||
|
||||
int nowYear = nowDate.get(Calendar.YEAR);
|
||||
int nowMonth = nowDate.get(Calendar.MONTH);
|
||||
int nowDay = nowDate.get(Calendar.DAY_OF_MONTH);
|
||||
|
||||
int nowHour = nowDate.get(Calendar.HOUR_OF_DAY);
|
||||
int nowMinute = nowDate.get(Calendar.MINUTE);
|
||||
int nowSecond = nowDate.get(Calendar.SECOND);
|
||||
|
||||
int selectedDayIndex = dateOfOrder.get(Calendar.DAY_OF_WEEK);
|
||||
StoreWorkDayModel storeWorkDayModelOfSelectedDay = new StoreWorkDayModel();
|
||||
ArrayList<String> workingParts = new ArrayList<>();
|
||||
switch (selectedDayIndex){
|
||||
case 1:
|
||||
storeWorkDayModelOfSelectedDay = storeShiftModel.getSundayShift();
|
||||
workingParts = storeShiftModel.getSundayShift();
|
||||
break;
|
||||
case 2:
|
||||
storeWorkDayModelOfSelectedDay = storeShiftModel.getMondayShift();
|
||||
workingParts = storeShiftModel.getMondayShift();
|
||||
break;
|
||||
case 3:
|
||||
storeWorkDayModelOfSelectedDay = storeShiftModel.getTuesdayShift();
|
||||
workingParts = storeShiftModel.getTuesdayShift();
|
||||
break;
|
||||
case 4:
|
||||
storeWorkDayModelOfSelectedDay = storeShiftModel.getWednesdayShift();
|
||||
workingParts = storeShiftModel.getWednesdayShift();
|
||||
break;
|
||||
case 5:
|
||||
storeWorkDayModelOfSelectedDay = storeShiftModel.getThursdayShift();
|
||||
workingParts = storeShiftModel.getThursdayShift();
|
||||
break;
|
||||
case 6:
|
||||
storeWorkDayModelOfSelectedDay = storeShiftModel.getFridayShift();
|
||||
workingParts = storeShiftModel.getFridayShift();
|
||||
break;
|
||||
case 7:
|
||||
storeWorkDayModelOfSelectedDay = storeShiftModel.getSaturdayShift();
|
||||
workingParts = storeShiftModel.getSaturdayShift();
|
||||
break;
|
||||
}
|
||||
|
||||
if(orderYear == nowYear && orderMonth == nowMonth && orderDay == nowDay){
|
||||
ArrayList<String> realPartsOfToday = new ArrayList<>();
|
||||
for(String part : workingParts){
|
||||
if(isPartAvailable(part)){
|
||||
realPartsOfToday.add(part);
|
||||
}
|
||||
}
|
||||
if(!realPartsOfToday.isEmpty()){
|
||||
workingParts.clear();
|
||||
workingParts.addAll(realPartsOfToday);
|
||||
}
|
||||
}
|
||||
|
||||
TimePickerDialog timePickerDialog =
|
||||
TimePickerDialog.newInstance(
|
||||
@@ -494,17 +515,7 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
|
||||
true
|
||||
);
|
||||
|
||||
|
||||
|
||||
int shiftStartHour = Integer.valueOf(storeWorkDayModelOfSelectedDay.getShiftStartTime().substring(0,2));
|
||||
int shiftStartMinute = Integer.valueOf(storeWorkDayModelOfSelectedDay.getShiftStartTime().substring(3, 5));
|
||||
int shiftEndHour = Integer.valueOf(storeWorkDayModelOfSelectedDay.getShiftEndTime().substring(0,2));
|
||||
int shiftEndMinute = Integer.valueOf(storeWorkDayModelOfSelectedDay.getShiftEndTime().substring(3, 5));
|
||||
|
||||
//timePickerDialog.setMinTime(new Timepoint(shiftStartHour, shiftStartMinute));
|
||||
//timePickerDialog.setMaxTime(new Timepoint(shiftEndHour, shiftEndMinute));
|
||||
timePickerDialog.setSelectableTimes(generateEnabledTimePoints(storeWorkDayModelOfSelectedDay));
|
||||
|
||||
timePickerDialog.setSelectableTimes(generateEnabledTimePoints(workingParts));
|
||||
timePickerDialog.vibrate(false);
|
||||
//timePickerDialog.setMinTime(nowHour, nowMinute, nowSecond);
|
||||
timePickerDialog.show(BaseActivity.currentActivity.getFragmentManager(), choosetext);
|
||||
@@ -937,61 +948,179 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
|
||||
}
|
||||
*/
|
||||
|
||||
private Timepoint[] generateEnabledTimePoints(StoreWorkDayModel storeWorkDayModelOfSelectedDay){
|
||||
private Calendar[] generateEnabledDays(){
|
||||
|
||||
int shiftStartHour = Integer.valueOf(storeWorkDayModelOfSelectedDay.getShiftStartTime().substring(0,2));
|
||||
int shiftStartMinute = Integer.valueOf(storeWorkDayModelOfSelectedDay.getShiftStartTime().substring(3, 5));
|
||||
int shiftEndHour = Integer.valueOf(storeWorkDayModelOfSelectedDay.getShiftEndTime().substring(0,2));
|
||||
int shiftEndMinute = Integer.valueOf(storeWorkDayModelOfSelectedDay.getShiftEndTime().substring(3, 5));
|
||||
ArrayList<Calendar> enabledDayList = new ArrayList<>();
|
||||
|
||||
int breakStartHour = Integer.valueOf(storeWorkDayModelOfSelectedDay.getBreakStartTime().substring(0,2));
|
||||
int breakStartMinute = Integer.valueOf(storeWorkDayModelOfSelectedDay.getBreakStartTime().substring(3, 5));
|
||||
int breakEndHour = Integer.valueOf(storeWorkDayModelOfSelectedDay.getBreakEndTime().substring(0,2));
|
||||
int breakEndMinute = Integer.valueOf(storeWorkDayModelOfSelectedDay.getBreakEndTime().substring(3, 5));
|
||||
for(int i = 1; i < 8; i++){
|
||||
|
||||
int hour = shiftStartHour;
|
||||
int minute = shiftStartMinute;
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
ArrayList<String> dayParts = new ArrayList<>();
|
||||
|
||||
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
|
||||
|
||||
switch ((dayOfWeek + i) % 7){
|
||||
case 0:
|
||||
dayParts = storeShiftModel.getSaturdayShift();
|
||||
break;
|
||||
case 1:
|
||||
dayParts = storeShiftModel.getSundayShift();
|
||||
break;
|
||||
case 2:
|
||||
dayParts = storeShiftModel.getMondayShift();
|
||||
break;
|
||||
case 3:
|
||||
dayParts = storeShiftModel.getTuesdayShift();
|
||||
break;
|
||||
case 4:
|
||||
dayParts = storeShiftModel.getWednesdayShift();
|
||||
break;
|
||||
case 5:
|
||||
dayParts = storeShiftModel.getThursdayShift();
|
||||
break;
|
||||
case 6:
|
||||
dayParts = storeShiftModel.getFridayShift();
|
||||
break;
|
||||
}
|
||||
|
||||
if(!dayParts.isEmpty()){
|
||||
calendar.add(Calendar.DAY_OF_YEAR, i);
|
||||
enabledDayList.add(calendar);
|
||||
}
|
||||
}
|
||||
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
|
||||
ArrayList<String> todayParts = new ArrayList<>();
|
||||
switch (dayOfWeek){
|
||||
case 1:
|
||||
todayParts = storeShiftModel.getSundayShift();
|
||||
break;
|
||||
case 2:
|
||||
todayParts = storeShiftModel.getMondayShift();
|
||||
break;
|
||||
case 3:
|
||||
todayParts = storeShiftModel.getTuesdayShift();
|
||||
break;
|
||||
case 4:
|
||||
todayParts = storeShiftModel.getWednesdayShift();
|
||||
break;
|
||||
case 5:
|
||||
todayParts = storeShiftModel.getThursdayShift();
|
||||
break;
|
||||
case 6:
|
||||
todayParts = storeShiftModel.getFridayShift();
|
||||
break;
|
||||
case 7:
|
||||
todayParts = storeShiftModel.getSaturdayShift();
|
||||
break;
|
||||
}
|
||||
if(isDayAvailable(todayParts)){
|
||||
enabledDayList.add(Calendar.getInstance());
|
||||
}
|
||||
return enabledDayList.toArray(new Calendar[enabledDayList.size()]);
|
||||
|
||||
}
|
||||
|
||||
private Timepoint[] generateEnabledTimePoints(ArrayList<String> workingParts){
|
||||
|
||||
ArrayList<Timepoint> enabledTimePointList = new ArrayList<>();
|
||||
|
||||
// öğleden tatilinden önceki kısım
|
||||
while (hour <= breakStartHour){
|
||||
enabledTimePointList.add(new Timepoint(hour, minute));
|
||||
minute++;
|
||||
if(minute == 60){
|
||||
minute = 0;
|
||||
hour += 1;
|
||||
}
|
||||
try {
|
||||
for(String part : workingParts){
|
||||
part = part.replace(" ", "");
|
||||
String[] array = part.split("-");
|
||||
String partStart = array[0];
|
||||
String partEnd = array[1];
|
||||
|
||||
if(hour == breakStartHour && minute == breakStartMinute){
|
||||
break;
|
||||
int partStartHour = Integer.valueOf(partStart.substring(0,2));
|
||||
int partStartMinute = Integer.valueOf(partStart.substring(3, 5));
|
||||
int partEndHour = Integer.valueOf(partEnd.substring(0,2));
|
||||
int partEndMinute = Integer.valueOf(partEnd.substring(3, 5));
|
||||
|
||||
int hour = partStartHour;
|
||||
int minute = partStartMinute;
|
||||
|
||||
while (hour <= partEndHour){
|
||||
enabledTimePointList.add(new Timepoint(hour, minute));
|
||||
minute++;
|
||||
if(minute == 60){
|
||||
minute = 0;
|
||||
hour += 1;
|
||||
}
|
||||
|
||||
if(hour == partEndHour && minute > partEndMinute){
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}catch (Exception e){
|
||||
return enabledTimePointList.toArray(new Timepoint[enabledTimePointList.size()]);
|
||||
|
||||
}
|
||||
|
||||
// öğle tatilinden sonraki kısım
|
||||
if(breakEndMinute == 59){
|
||||
breakEndMinute = 0;
|
||||
breakEndHour += 1;
|
||||
}
|
||||
|
||||
hour = breakEndHour;
|
||||
minute = breakEndMinute;
|
||||
|
||||
|
||||
while (hour <= shiftEndHour){
|
||||
enabledTimePointList.add(new Timepoint(hour, minute));
|
||||
minute++;
|
||||
if(minute == 60){
|
||||
minute = 0;
|
||||
hour += 1;
|
||||
}
|
||||
|
||||
if(hour == shiftEndHour && minute == shiftEndMinute){
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return enabledTimePointList.toArray(new Timepoint[enabledTimePointList.size()]);
|
||||
}
|
||||
|
||||
private boolean isDayAvailable(ArrayList<String> parts){
|
||||
if(parts.size() < 2){
|
||||
return false;
|
||||
}
|
||||
for(String part : parts){
|
||||
if(isPartAvailable(part)){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean isPartAvailable(String part){
|
||||
try {
|
||||
Date nowDate = Calendar.getInstance().getTime();
|
||||
DateFormat dateFormat = new SimpleDateFormat("HH:mm");
|
||||
String nowTimeString = dateFormat.format(nowDate);
|
||||
part = part.replace(" ", "");
|
||||
String[] array = part.split("-");
|
||||
String partStart = array[0];
|
||||
String partEnd = array[1];
|
||||
|
||||
int partStartHour = Integer.valueOf(partStart.substring(0,2));
|
||||
int partStartMinute = Integer.valueOf(partStart.substring(3, 5));
|
||||
int partEndHour = Integer.valueOf(partEnd.substring(0,2));
|
||||
int partEndMinute = Integer.valueOf(partEnd.substring(3, 5));
|
||||
|
||||
Calendar partStartCalendar = Calendar.getInstance();
|
||||
partStartCalendar.set(Calendar.HOUR_OF_DAY, partStartHour);
|
||||
partStartCalendar.set(Calendar.MINUTE, partStartMinute);
|
||||
partStartCalendar.set(Calendar.SECOND, 0);
|
||||
Date partStartDate = partStartCalendar.getTime();
|
||||
|
||||
Calendar partEndCalendar = Calendar.getInstance();
|
||||
partEndCalendar.set(Calendar.HOUR_OF_DAY, partEndHour);
|
||||
partEndCalendar.set(Calendar.MINUTE, partEndMinute);
|
||||
partEndCalendar.set(Calendar.SECOND, 0);
|
||||
Date partEndDate = partEndCalendar.getTime();
|
||||
|
||||
if(partStartDate.after(nowDate) && partEndDate.after(nowDate)){
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
String[] array2 = nowTimeString.split(":");
|
||||
String nowHourString = array2[0];
|
||||
String nowMinuteString = array2[1];
|
||||
|
||||
int nowHour = Integer.valueOf(nowHourString);
|
||||
int nowMinute = Integer.valueOf(nowMinuteString);
|
||||
|
||||
return nowHour >= partStartHour && nowHour <= partEndHour &&
|
||||
nowMinute >= partStartMinute && nowMinute <= partEndMinute;
|
||||
*/
|
||||
}catch (Exception e){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -2,83 +2,56 @@ package ch.pizzamaxx.android.model;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class StoreShiftModel {
|
||||
|
||||
@SerializedName("1")
|
||||
private StoreWorkDayModel mondayShift;
|
||||
@SerializedName("monday")
|
||||
private ArrayList<String> mondayShift;
|
||||
|
||||
@SerializedName("2")
|
||||
private StoreWorkDayModel tuesdayShift;
|
||||
@SerializedName("tuesday")
|
||||
private ArrayList<String> tuesdayShift;
|
||||
|
||||
@SerializedName("3")
|
||||
private StoreWorkDayModel wednesdayShift;
|
||||
@SerializedName("wednesday")
|
||||
private ArrayList<String> wednesdayShift;
|
||||
|
||||
@SerializedName("4")
|
||||
private StoreWorkDayModel thursdayShift;
|
||||
@SerializedName("thursday")
|
||||
private ArrayList<String> thursdayShift;
|
||||
|
||||
@SerializedName("5")
|
||||
private StoreWorkDayModel fridayShift;
|
||||
@SerializedName("friday")
|
||||
private ArrayList<String> fridayShift;
|
||||
|
||||
@SerializedName("6")
|
||||
private StoreWorkDayModel saturdayShift;
|
||||
@SerializedName("saturday")
|
||||
private ArrayList<String> saturdayShift;
|
||||
|
||||
@SerializedName("7")
|
||||
private StoreWorkDayModel sundayShift;
|
||||
@SerializedName("sunday")
|
||||
private ArrayList<String> sundayShift;
|
||||
|
||||
public StoreWorkDayModel getMondayShift() {
|
||||
return mondayShift;
|
||||
public ArrayList<String> getMondayShift() {
|
||||
return mondayShift != null ? mondayShift : new ArrayList<String>();
|
||||
}
|
||||
|
||||
public void setMondayShift(StoreWorkDayModel mondayShift) {
|
||||
this.mondayShift = mondayShift;
|
||||
public ArrayList<String> getTuesdayShift() {
|
||||
return tuesdayShift != null ? tuesdayShift : new ArrayList<String>();
|
||||
}
|
||||
|
||||
public StoreWorkDayModel getTuesdayShift() {
|
||||
return tuesdayShift;
|
||||
public ArrayList<String> getWednesdayShift() {
|
||||
return wednesdayShift != null ? wednesdayShift : new ArrayList<String>();
|
||||
}
|
||||
|
||||
public void setTuesdayShift(StoreWorkDayModel tuesdayShift) {
|
||||
this.tuesdayShift = tuesdayShift;
|
||||
public ArrayList<String> getThursdayShift() {
|
||||
return thursdayShift != null ? thursdayShift : new ArrayList<String>();
|
||||
}
|
||||
|
||||
public StoreWorkDayModel getWednesdayShift() {
|
||||
return wednesdayShift;
|
||||
public ArrayList<String> getFridayShift() {
|
||||
return fridayShift != null ? fridayShift : new ArrayList<String>();
|
||||
}
|
||||
|
||||
public void setWednesdayShift(StoreWorkDayModel wednesdayShift) {
|
||||
this.wednesdayShift = wednesdayShift;
|
||||
public ArrayList<String> getSaturdayShift() {
|
||||
return saturdayShift != null ? saturdayShift : new ArrayList<String>();
|
||||
}
|
||||
|
||||
public StoreWorkDayModel getThursdayShift() {
|
||||
return thursdayShift;
|
||||
public ArrayList<String> getSundayShift() {
|
||||
return sundayShift != null ? sundayShift : new ArrayList<String>();
|
||||
}
|
||||
|
||||
public void setThursdayShift(StoreWorkDayModel thursdayShift) {
|
||||
this.thursdayShift = thursdayShift;
|
||||
}
|
||||
|
||||
public StoreWorkDayModel getFridayShift() {
|
||||
return fridayShift;
|
||||
}
|
||||
|
||||
public void setFridayShift(StoreWorkDayModel fridayShift) {
|
||||
this.fridayShift = fridayShift;
|
||||
}
|
||||
|
||||
public StoreWorkDayModel getSaturdayShift() {
|
||||
return saturdayShift;
|
||||
}
|
||||
|
||||
public void setSaturdayShift(StoreWorkDayModel saturdayShift) {
|
||||
this.saturdayShift = saturdayShift;
|
||||
}
|
||||
|
||||
public StoreWorkDayModel getSundayShift() {
|
||||
return sundayShift;
|
||||
}
|
||||
|
||||
public void setSundayShift(StoreWorkDayModel sundayShift) {
|
||||
this.sundayShift = sundayShift;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user