|
@@ -962,10 +962,6 @@ watch(
|
|
|
|
|
|
|
|
if (!selectedPackage) return;
|
|
if (!selectedPackage) return;
|
|
|
|
|
|
|
|
- form.class_quantity = selectedPackage.quantity_classes;
|
|
|
|
|
-
|
|
|
|
|
- form.total_classes = selectedPackage.quantity_classes;
|
|
|
|
|
-
|
|
|
|
|
form.weekday = selectedPackage.weekday ?? null;
|
|
form.weekday = selectedPackage.weekday ?? null;
|
|
|
|
|
|
|
|
form.start_time = trimTime(selectedPackage.start_time);
|
|
form.start_time = trimTime(selectedPackage.start_time);
|
|
@@ -996,6 +992,45 @@ watch(
|
|
|
},
|
|
},
|
|
|
);
|
|
);
|
|
|
|
|
|
|
|
|
|
+const calculateClassQuantity = () => {
|
|
|
|
|
+ if (!form.signature_date || !form.end_date) return;
|
|
|
|
|
+
|
|
|
|
|
+ const parseDateStr = (dmy) => {
|
|
|
|
|
+ if (!dmy || dmy.length !== 10) return null;
|
|
|
|
|
+ const parts = dmy.split('/');
|
|
|
|
|
+ if (parts.length !== 3) return null;
|
|
|
|
|
+ return new Date(`${parts[2]}-${parts[1]}-${parts[0]}T00:00:00`);
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ const start = parseDateStr(form.signature_date);
|
|
|
|
|
+ const end = parseDateStr(form.end_date);
|
|
|
|
|
+
|
|
|
|
|
+ if (!start || !end || isNaN(start) || isNaN(end) || start > end) {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ let count = 0;
|
|
|
|
|
+ for (let d = new Date(start); d <= end; d.setDate(d.getDate() + 1)) {
|
|
|
|
|
+ const day = d.getDay();
|
|
|
|
|
+ if (form.weekday !== null && day === Number(form.weekday)) count++;
|
|
|
|
|
+ if (form.second_weekday !== null && day === Number(form.second_weekday)) count++;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ form.class_quantity = count;
|
|
|
|
|
+ form.total_classes = count;
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+watch(
|
|
|
|
|
+ [
|
|
|
|
|
+ () => form.signature_date,
|
|
|
|
|
+ () => form.end_date,
|
|
|
|
|
+ () => form.weekday,
|
|
|
|
|
+ () => form.second_weekday
|
|
|
|
|
+ ],
|
|
|
|
|
+ calculateClassQuantity,
|
|
|
|
|
+ { immediate: true }
|
|
|
|
|
+);
|
|
|
|
|
+
|
|
|
// Os valores do contrato vêm da modalidade escolhida na proposta comercial:
|
|
// Os valores do contrato vêm da modalidade escolhida na proposta comercial:
|
|
|
// o que estiver marcado "incluso no valor do curso" não é cobrado à parte
|
|
// o que estiver marcado "incluso no valor do curso" não é cobrado à parte
|
|
|
// (só entra no Total do Curso); o que "permite parcelar" vira cobrança
|
|
// (só entra no Total do Curso); o que "permite parcelar" vira cobrança
|