diff --git a/edivorce/apps/core/static/js/main.js b/edivorce/apps/core/static/js/main.js
index 1bd1227f..dd25d2cf 100755
--- a/edivorce/apps/core/static/js/main.js
+++ b/edivorce/apps/core/static/js/main.js
@@ -366,6 +366,12 @@ $(function () {
} else {
$('#fact_sheet_c').hide();
}
+
+ // Initiate Child support payor.
+ populateChildSupportPayor(childWithBoth, childWithYou, childWithSpouse);
+ $('.determine-payor').on('change', function() {
+ populateChildSupportPayor(childWithBoth, childWithYou, childWithSpouse);
+ });
};
var populateChildrenFactSheets = function() {
@@ -389,6 +395,67 @@ $(function () {
evaluateFactSheetShowCriteria(childrenData);
};
+ var populateChildSupportPayor = function(childWithBoth, childWithYou, childWithSpouse) {
+ // Get the payor and different amounts using the Factsheets presented and their values
+ //
+ var amount_b_you = $('#fact_b_your_child_support_paid').val();
+ var amount_b_spouse = $('#fact_b_your_spouse_child_support_paid').val();
+ var amount_c_you = $('#fact_c_your_child_support_paid').val();
+ var amount_c_spouse = $('#fact_c_your_spouse_child_support_paid').val();
+
+ // Show factsheet logic is same as evaluateFactSheetShowCriteria()
+ var show_factsheet_b = childWithBoth ? true : false;
+ var show_factsheet_c = ((childWithYou && (childWithSpouse || childWithBoth)) || (childWithSpouse && (childWithYou || childWithBoth))) ? true : false;
+ var payor_b = findPayor(amount_b_you, amount_b_spouse);
+ var payor_c = findPayor(amount_c_you, amount_c_spouse);
+ var diff_amounts_b = Math.abs(amount_b_you - amount_b_spouse);
+ var diff_amounts_c = Math.abs(amount_c_you - amount_c_spouse);
+ var payor_total = '';
+ var diff_amounts_total = 0;
+
+ if (show_factsheet_b && show_factsheet_c) {
+ // If payor is same for Factsheet B and C, total is Sum of two differences
+ // Otherwise it is subtraction and whoever with the greater number is the payor.
+ // Payor is Both when amounts are same (when total is 0)
+ if (payor_b === payor_c) {
+ payor_total = payor_b;
+ diff_amounts_total = diff_amounts_b + diff_amounts_c;
+ } else {
+ diff_amounts_total = Math.abs(diff_amounts_b - diff_amounts_c);
+ if (diff_amounts_b > diff_amounts_c) {
+ payor_total = payor_b;
+ } else if (diff_amounts_b < diff_amounts_c) {
+ payor_total = payor_c;
+ } else {
+ payor_total = 'Both myself and my spouse';
+ }
+ }
+ } else if (show_factsheet_b && !show_factsheet_c) {
+ // If only Factsheet B, use values from Factsheet B
+ payor_total = payor_b;
+ diff_amounts_total = diff_amounts_b;
+ } else if (show_factsheet_c && !show_factsheet_b) {
+ // If only Factsheet C, use values from Factsheet C
+ payor_total = payor_c;
+ diff_amounts_total = diff_amounts_c;
+ }
+
+ // Update value for Payor radio button and Factsheet D total support amount field.
+ $('#total_spouse_paid_child_support').val(diff_amounts_total);
+ $('input[name=child_support_payor][value="' + payor_total + '"]').prop("checked", true).change();
+ };
+
+ var findPayor = function(amount_you, amount_spouse) {
+ // Find payor based on the amount.
+ if (parseFloat(amount_you) > parseFloat(amount_spouse)) {
+ return 'Myself (Claimant 1)';
+ } else if (parseFloat(amount_you) < parseFloat(amount_spouse)) {
+ return 'My Spouse (Claimant 2)';
+ } else {
+ return 'Both myself and my spouse';
+ }
+ };
+
var saveChildQuestions = function(options) {
if (options !== undefined && options.persist) {
var childrenData = [];
diff --git a/edivorce/apps/core/templates/question/06_children_facts.html b/edivorce/apps/core/templates/question/06_children_facts.html
index 705fb18e..d630b7e9 100644
--- a/edivorce/apps/core/templates/question/06_children_facts.html
+++ b/edivorce/apps/core/templates/question/06_children_facts.html
@@ -115,12 +115,12 @@
- {% money_input_field id="fact_b_your_child_support_paid" name="your_child_support_paid_b" class="fact-sheet-input claimants-child-support-amounts" data_calc_delta="true" data_delta_term_selector=".claimants-child-support-amounts" data_delta_target_selector="input[name=difference_payment_amounts_b]" placeholder="enter amount" %}
+ {% money_input_field id="fact_b_your_child_support_paid" name="your_child_support_paid_b" class="fact-sheet-input claimants-child-support-amounts determine-payor" data_calc_delta="true" data_delta_term_selector=".claimants-child-support-amounts" data_delta_target_selector="input[name=difference_payment_amounts_b]" placeholder="enter amount" %}
|
- {% money_input_field id="fact_b_your_spouse_child_support_paid" name="your_spouse_child_support_paid_b" class="fact-sheet-input claimants-child-support-amounts" data_calc_delta="true" data_delta_term_selector=".claimants-child-support-amounts" data_delta_target_selector="input[name=difference_payment_amounts_b]" placeholder="enter amount" %}
+ {% money_input_field id="fact_b_your_spouse_child_support_paid" name="your_spouse_child_support_paid_b" class="fact-sheet-input claimants-child-support-amounts determine-payor" data_calc_delta="true" data_delta_term_selector=".claimants-child-support-amounts" data_delta_target_selector="input[name=difference_payment_amounts_b]" placeholder="enter amount" %}
|
@@ -227,7 +227,7 @@
- {% money_input_field name="difference_payment_amounts_b" value="" class="money fact-sheet-input different-payment-amounts" readonly="" data_mirror="true" data_mirror_target="#total_spouse_paid_child_support_b" data_mirror_broadcast_change="true" data_sum="true" data_sum_class="different-payment-amounts" data_sum_target_id="total_spouse_paid_child_support" %}
+ {% money_input_field name="difference_payment_amounts_b" value="" class="money fact-sheet-input different-payment-amounts" readonly="" %}
|
@@ -302,7 +302,7 @@
- {% money_input_field id="fact_c_your_spouse_child_support_paid" name="your_spouse_child_support_paid_c" class="fact-sheet-input money claimants-child-support-paid" data_calc_delta="true" data_delta_term_selector=".claimants-child-support-paid" data_delta_target_selector="input[name=difference_payment_amounts_c]" %}
+ {% money_input_field id="fact_c_your_spouse_child_support_paid" name="your_spouse_child_support_paid_c" class="fact-sheet-input money claimants-child-support-paid determine-payor" data_calc_delta="true" data_delta_term_selector=".claimants-child-support-paid" data_delta_target_selector="input[name=difference_payment_amounts_c]" %}
|
@@ -357,7 +357,7 @@
- {% money_input_field id="fact_c_your_child_support_paid" name="your_child_support_paid_c" class="fact-sheet-input money claimants-child-support-paid" data_calc_delta="true" data_delta_term_selector=".claimants-child-support-paid" data_delta_target_selector="input[name=difference_payment_amounts_c]" %}
+ {% money_input_field id="fact_c_your_child_support_paid" name="your_child_support_paid_c" class="fact-sheet-input money claimants-child-support-paid determine-payor" data_calc_delta="true" data_delta_term_selector=".claimants-child-support-paid" data_delta_target_selector="input[name=difference_payment_amounts_c]" %}
|
@@ -367,7 +367,7 @@
- {% money_input_field id="difference_payment_amounts_c" name="difference_payment_amounts_c" class="fact-sheet-input different-payment-amounts" readonly="" data_mirror="true" data_mirror_target="#total_spouse_paid_child_support_c" data_mirror_broadcast_change="true" data_sum="true" data_sum_class="different-payment-amounts" data_sum_target_id="total_spouse_paid_child_support" %}
+ {% money_input_field id="difference_payment_amounts_c" name="difference_payment_amounts_c" class="fact-sheet-input different-payment-amounts" readonly="" %}
|
@@ -401,21 +401,39 @@
Please select one
-
-
-
-
-
-
-
-
-
+ {% if derived.show_fact_sheet_b or derived.show_fact_sheet_c %}
+
+
+
+
+
+
+
+
+
+ {% else %}
+
+
+
+
+
+
+
+
+
+ {% endif %}
@@ -474,18 +492,10 @@
This information is needed for the Judge. You will be able to indicate a different child support amount in a following step.
- {% if derived.show_fact_sheet_b and derived.show_fact_sheet_c %}
+ {% if derived.show_fact_sheet_b or derived.show_fact_sheet_c %}
{% money_input_field id="total_spouse_paid_child_support" name="total_spouse_paid_child_support" value=derived.guideline_amounts_difference_total class="fact-sheet-input money input-narrow form-block response-textbox" readonly="" %}
- {% elif derived.show_fact_sheet_b %}
-
- {% money_input_field id="total_spouse_paid_child_support_b" name="total_spouse_paid_child_support" class="fact-sheet-input money input-narrow form-block response-textbox" readonly="" %}
-
- {% elif derived.show_fact_sheet_c %}
-
- {% money_input_field id="total_spouse_paid_child_support_c" name="total_spouse_paid_child_support" class="fact-sheet-input money input-narrow form-block response-textbox" readonly="" %}
-
{% else %}
{% money_input_field name="total_spouse_paid_child_support" value_src="payor_monthly_child_support_amount" class="fact-sheet-input money input-narrow form-block response-textbox" readonly="" %}
diff --git a/edivorce/apps/core/utils/derived.py b/edivorce/apps/core/utils/derived.py
index 00be7f3c..6c8f0f24 100644
--- a/edivorce/apps/core/utils/derived.py
+++ b/edivorce/apps/core/utils/derived.py
@@ -33,6 +33,8 @@ DERIVED_DATA = [
'show_fact_sheet_f_you',
'show_fact_sheet_f_spouse',
'has_fact_sheets',
+ 'child_support_payor_b',
+ 'child_support_payor_c',
'guideline_amounts_difference_b',
'guideline_amounts_difference_c',
'guideline_amounts_difference_total',
@@ -243,6 +245,48 @@ def has_fact_sheets(responses, derived):
derived['show_fact_sheet_d'], derived['show_fact_sheet_e'],
derived['show_fact_sheet_f'], ])
+def child_support_payor_b(responses, derived):
+ """ Return who the payor is depends on the monthly amount from Factsheet B """
+ try:
+ amount_1 = float(responses.get('your_child_support_paid_b', 0))
+ except ValueError:
+ amount_1 = 0
+
+ try:
+ amount_2 = float(responses.get('your_spouse_child_support_paid_b', 0))
+ except ValueError:
+ amount_2 = 0
+
+ if amount_1 > amount_2:
+ payor = 'you'
+ elif amount_1 < amount_2:
+ payor = 'spouse'
+ else:
+ payor = 'both'
+
+ return payor
+
+def child_support_payor_c(responses, derived):
+ """ Return who the payor is depends on the monthly amount from Factsheet C """
+ try:
+ amount_1 = float(responses.get('your_child_support_paid_c', 0))
+ except ValueError:
+ amount_1 = 0
+
+ try:
+ amount_2 = float(responses.get('your_spouse_child_support_paid_c', 0))
+ except ValueError:
+ amount_2 = 0
+
+ if amount_1 > amount_2:
+ payor = 'you'
+ elif amount_1 < amount_2:
+ payor = 'spouse'
+ else:
+ payor = 'both'
+
+ return payor
+
def guideline_amounts_difference_b(responses, derived):
"""
Return the difference between the guideline amounts to be paid by
@@ -286,9 +330,14 @@ def guideline_amounts_difference_total(responses, derived):
amount_b = derived['guideline_amounts_difference_b'] if derived['show_fact_sheet_b'] else 0
amount_c = derived['guideline_amounts_difference_c'] if derived['show_fact_sheet_c'] else 0
-
- return amount_b + amount_c
+ payor_b = derived['child_support_payor_b']
+ payor_c = derived['child_support_payor_c']
+
+ if payor_b == payor_c:
+ return amount_b + amount_c
+ else:
+ return abs(amount_b - amount_c)
def schedule_1_amount(responses, derived):
""" Return the amount as defined in schedule 1 for child support """