WT 1.1.25 Training Plan Exercise Alternatives
This commit is contained in:
@@ -60,85 +60,58 @@ class TrainingPlanRepository {
|
||||
plan.active = true;
|
||||
plan.status = "open";
|
||||
plan.dateAdd = DateTime.now();
|
||||
plan.name = getTrainingPlanById(trainingPlanId)!.nameTranslations[AppLanguage().appLocal.toString()];
|
||||
|
||||
TrainingPlan? trainingPlan = this.getTrainingPlanById(trainingPlanId);
|
||||
if (trainingPlan == null || trainingPlan.details == null) {
|
||||
print("trainingPlan null");
|
||||
return null;
|
||||
}
|
||||
plan.name = trainingPlan.nameTranslations[AppLanguage().appLocal.toString()];
|
||||
|
||||
// 3 calculate weights
|
||||
int index = 0;
|
||||
int exerciseTypeIdOrig = 0;
|
||||
trainingPlan.details!.forEach((elem) {
|
||||
List<CustomerTrainingPlanDetails> list = createDetail(plan, elem, exerciseTypeIdOrig, index);
|
||||
exerciseTypeIdOrig = elem.exerciseTypeId;
|
||||
list.forEach((element) {
|
||||
plan.details.add(element);
|
||||
index++;
|
||||
});
|
||||
/* CustomerTrainingPlanDetails detail = CustomerTrainingPlanDetails();
|
||||
detail.customerTrainingPlanDetailsId = ++index;
|
||||
detail.trainingPlanDetailsId = elem.trainingPlanDetailId;
|
||||
detail.exerciseTypeId = elem.exerciseTypeId;
|
||||
detail.repeats = elem.repeats;
|
||||
detail.set = elem.set;
|
||||
detail.dayId = elem.dayId;
|
||||
TrainingPlanDayRepository trainingPlanDayRepository = TrainingPlanDayRepository();
|
||||
detail.day = trainingPlanDayRepository.getNameById(elem.dayId);
|
||||
detail.parallel = elem.parallel;
|
||||
detail.restingTime = elem.restingTime;
|
||||
detail.exerciseType = Cache().getExerciseTypeById(detail.exerciseTypeId!);
|
||||
detail.alternatives = Common.getExerciseTypeAlternatives(detail.exerciseTypeId);
|
||||
if (elem.weight == -1) {
|
||||
if (detail.exerciseType!.unitQuantityUnit != null) {
|
||||
detail = getCalculatedWeightRepeats(elem.exerciseTypeId, detail);
|
||||
} else {
|
||||
detail.weight = 0;
|
||||
}
|
||||
} else if (elem.weight == -2) {
|
||||
final CustomerTrainingPlanDetails calculated = this.isWeightCalculatedByExerciseType(elem.exerciseTypeId, detail, plan);
|
||||
if (calculated.weight != -1) {
|
||||
detail.weight = calculated.weight;
|
||||
} else {
|
||||
detail.weight = -2;
|
||||
}
|
||||
} else {
|
||||
detail.weight = elem.weight;
|
||||
}
|
||||
print("Detail $detail exerciseType: ${detail.exerciseType!.exerciseTypeId}");
|
||||
|
||||
detail.state = ExercisePlanDetailState.start;
|
||||
if (detail.weight != null && detail.weight! > 0) {
|
||||
detail.baseOneRepMax = Common.calculate1RM(detail.weight!, detail.repeats!.toDouble());
|
||||
}
|
||||
detail.alternatives = Common.getExerciseTypeAlternatives(detail.exerciseTypeId);
|
||||
|
||||
// first repeat: 50% more
|
||||
if (detail.weight != null && detail.weight! > 0 && exerciseTypeIdOrig != detail.exerciseTypeId && detail.repeats! > 0) {
|
||||
CustomerTrainingPlanDetails firstDetail = CustomerTrainingPlanDetails();
|
||||
firstDetail.copy(detail);
|
||||
firstDetail.repeats = (detail.repeats! * 1.5).round();
|
||||
firstDetail.set = 1;
|
||||
detail.set = detail.set! - 1;
|
||||
if (detail.set! > 0) {
|
||||
index++;
|
||||
}
|
||||
detail.customerTrainingPlanDetailsId = index;
|
||||
plan.details.add(firstDetail);
|
||||
exerciseTypeIdOrig = detail.exerciseTypeId!;
|
||||
}
|
||||
|
||||
if (detail.set! > 0) {
|
||||
plan.details.add(detail);
|
||||
} */
|
||||
});
|
||||
|
||||
Cache().myTrainingPlan = plan;
|
||||
|
||||
//TrainingPlanApi().saveCustomerTrainingPlan(plan);
|
||||
return plan;
|
||||
}
|
||||
|
||||
CustomerTrainingPlanDetails createAlternativeDetail(
|
||||
CustomerTrainingPlan plan, CustomerTrainingPlanDetails detail, TrainingPlanDetail elem, int exerciseTypeId) {
|
||||
CustomerTrainingPlanDetails alternativeDetail = CustomerTrainingPlanDetails();
|
||||
alternativeDetail.copy(detail);
|
||||
alternativeDetail.exerciseTypeId = exerciseTypeId;
|
||||
alternativeDetail.exerciseType = Cache().getExerciseTypeById(exerciseTypeId);
|
||||
|
||||
if (elem.weight == -1) {
|
||||
if (alternativeDetail.exerciseType!.unitQuantityUnit != null) {
|
||||
alternativeDetail = getCalculatedWeightRepeats(elem.exerciseTypeId, alternativeDetail);
|
||||
} else {
|
||||
alternativeDetail.weight = 0;
|
||||
}
|
||||
} else if (elem.weight == -2) {
|
||||
final CustomerTrainingPlanDetails calculated = this.isWeightCalculatedByExerciseType(elem.exerciseTypeId, alternativeDetail, plan);
|
||||
if (calculated.weight != -1) {
|
||||
alternativeDetail.weight = calculated.weight;
|
||||
} else {
|
||||
alternativeDetail.weight = -2;
|
||||
}
|
||||
} else {
|
||||
alternativeDetail.weight = elem.weight;
|
||||
}
|
||||
//print("Detail $alternativeDetail exerciseType: ${alternativeDetail.exerciseType!.exerciseTypeId}");
|
||||
|
||||
return alternativeDetail;
|
||||
}
|
||||
|
||||
List<CustomerTrainingPlanDetails> createDetail(CustomerTrainingPlan plan, TrainingPlanDetail elem, int exerciseTypeIdOrig, int index,
|
||||
{bool changeExerciseType = false}) {
|
||||
List<CustomerTrainingPlanDetails> list = [];
|
||||
@@ -183,19 +156,17 @@ class TrainingPlanRepository {
|
||||
CustomerTrainingPlanDetails firstDetail = CustomerTrainingPlanDetails();
|
||||
firstDetail.copy(detail);
|
||||
firstDetail.repeats = (detail.repeats! * 1.5).round();
|
||||
firstDetail.baseOneRepMax = Common.calculate1RM(firstDetail.weight!, firstDetail.repeats!.toDouble());
|
||||
firstDetail.set = 1;
|
||||
detail.set = detail.set! - 1;
|
||||
if (detail.set! > 0) {
|
||||
index++;
|
||||
}
|
||||
detail.customerTrainingPlanDetailsId = index;
|
||||
//plan.details.add(firstDetail);
|
||||
list.add(firstDetail);
|
||||
exerciseTypeIdOrig = detail.exerciseTypeId!;
|
||||
}
|
||||
|
||||
if (detail.set! > 0) {
|
||||
//plan.details.add(detail);
|
||||
list.add(detail);
|
||||
}
|
||||
return list;
|
||||
@@ -237,7 +208,7 @@ class TrainingPlanRepository {
|
||||
}
|
||||
|
||||
for (var trainingPlan in Cache().getTrainingPlans()!) {
|
||||
print("internal ${trainingPlan.internalName}");
|
||||
//print("internal ${trainingPlan.internalName}");
|
||||
if (trainingPlan.internalName == internalName) {
|
||||
id = trainingPlan.trainingPlanId;
|
||||
break;
|
||||
@@ -266,7 +237,7 @@ class TrainingPlanRepository {
|
||||
if (exercise.exerciseTypeId == exerciseTypeId && exercise.dateAdd!.compareTo(dt) >= 0) {
|
||||
detail.weight = weight;
|
||||
lastExercise1RM = exercise;
|
||||
print("last exercise: $exercise");
|
||||
//print("last exercise: $exercise");
|
||||
}
|
||||
});
|
||||
|
||||
@@ -278,9 +249,9 @@ class TrainingPlanRepository {
|
||||
|
||||
double oneRepMax = calculateMax1RMSameDay(lastExercise1RM!);
|
||||
// Common.calculate1RM(lastExercise1RM!.unitQuantity!, lastExercise1RM!.quantity!);
|
||||
print("Exercise $exerciseTypeId - 1RM : $oneRepMax");
|
||||
//print("Exercise $exerciseTypeId - 1RM : $oneRepMax");
|
||||
weight = oneRepMax * Common.get1RMPercent(detail.repeats!);
|
||||
print("Exercise $exerciseTypeId - weight : $weight");
|
||||
//print("Exercise $exerciseTypeId - weight : $weight");
|
||||
//weight = Common.roundWeight(weight);
|
||||
//detail.weight = Common.calculateWeigthByChangedQuantity(detail.weight!, detail.repeats!.toDouble(), lastExercise1RM!.quantity!);
|
||||
//weight = lastExercise1RM!.unitQuantity! * detail.repeats! / lastExercise1RM!.quantity!;
|
||||
|
||||
Reference in New Issue
Block a user