huge fix
This commit is contained in:
parent
810c87e2e0
commit
b5bf3a5dbe
51 changed files with 2397 additions and 326 deletions
|
|
@ -61,6 +61,7 @@
|
|||
<tr>
|
||||
<th>ردیف</th>
|
||||
<th>کاربر</th>
|
||||
<th>نوع کاربر</th>
|
||||
<th>کد ملی</th>
|
||||
<th>تلفن</th>
|
||||
<th>آدرس</th>
|
||||
|
|
@ -100,6 +101,27 @@
|
|||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
{% if customer.user_type == 'legal' %}
|
||||
<span class="badge bg-label-info">
|
||||
<i class="bx bx-buildings me-1"></i>حقوقی
|
||||
</span>
|
||||
<div class="mt-1">
|
||||
{% if customer.company_name %}
|
||||
<small class="text-muted d-block">{{ customer.company_name|truncatechars:25 }}</small>
|
||||
{% endif %}
|
||||
{% if customer.company_national_id %}
|
||||
<small class="text-muted d-block">
|
||||
<i class="bx bx-id-card me-1"></i>{{ customer.company_national_id }}
|
||||
</small>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% else %}
|
||||
<span class="badge bg-label-primary">
|
||||
<i class="bx bx-user me-1"></i>حقیقی
|
||||
</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>{{ customer.national_code|default:"کد ملی ثبت نشده" }}</td>
|
||||
<td>
|
||||
<div class="d-flex flex-column">
|
||||
|
|
@ -205,6 +227,16 @@
|
|||
<input type="hidden" id="customer-id" name="customer_id" value="">
|
||||
|
||||
<!-- User Information -->
|
||||
<div class="col-sm-12">
|
||||
<label class="form-label fw-bold" for="{{ form.user_type.id_for_label }}">{{ form.user_type.label }}</label>
|
||||
<div class="input-group input-group-merge">
|
||||
<span class="input-group-text"><i class="bx bx-user-circle"></i></span>
|
||||
{{ form.user_type }}
|
||||
</div>
|
||||
{% if form.user_type.errors %}
|
||||
<div class="invalid-feedback d-block">{{ form.user_type.errors.0 }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="col-sm-6">
|
||||
<label class="form-label fw-bold" for="{{ form.first_name.id_for_label }}">{{ form.first_name.label }}</label>
|
||||
|
|
@ -261,6 +293,29 @@
|
|||
{% endif %}
|
||||
</div>
|
||||
|
||||
<!-- Company Information (for legal entities) -->
|
||||
<div class="col-sm-12 company-fields" style="display: none;">
|
||||
<label class="form-label fw-bold" for="{{ form.company_name.id_for_label }}">{{ form.company_name.label }}</label>
|
||||
<div class="input-group input-group-merge">
|
||||
<span class="input-group-text"><i class="bx bx-buildings"></i></span>
|
||||
{{ form.company_name }}
|
||||
</div>
|
||||
{% if form.company_name.errors %}
|
||||
<div class="invalid-feedback d-block">{{ form.company_name.errors.0 }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="col-sm-12 company-fields" style="display: none;">
|
||||
<label class="form-label fw-bold" for="{{ form.company_national_id.id_for_label }}">{{ form.company_national_id.label }}</label>
|
||||
<div class="input-group input-group-merge">
|
||||
<span class="input-group-text"><i class="bx bx-id-card"></i></span>
|
||||
{{ form.company_national_id }}
|
||||
</div>
|
||||
{% if form.company_national_id.errors %}
|
||||
<div class="invalid-feedback d-block">{{ form.company_national_id.errors.0 }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="col-sm-12">
|
||||
<label class="form-label fw-bold" for="{{ form.bank_name.id_for_label }}">{{ form.bank_name.label }}</label>
|
||||
<div class="input-group input-group-merge">
|
||||
|
|
@ -347,6 +402,18 @@
|
|||
<td class="text-muted"><i class="bx bx-fingerprint me-1"></i>کد ملی</td>
|
||||
<td><strong id="cd-national-code">-</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="text-muted"><i class="bx bx-user-circle me-1"></i>نوع کاربر</td>
|
||||
<td><strong id="cd-user-type">-</strong></td>
|
||||
</tr>
|
||||
<tr id="cd-company-name-row" style="display: none;">
|
||||
<td class="text-muted"><i class="bx bx-buildings me-1"></i>نام شرکت</td>
|
||||
<td><strong id="cd-company-name">-</strong></td>
|
||||
</tr>
|
||||
<tr id="cd-company-id-row" style="display: none;">
|
||||
<td class="text-muted"><i class="bx bx-id-card me-1"></i>شناسه ملی شرکت</td>
|
||||
<td><strong id="cd-company-id">-</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="text-muted"><i class="bx bx-phone me-1"></i>شماره تلفن اول</td>
|
||||
<td><strong id="cd-phone1">-</strong></td>
|
||||
|
|
@ -495,6 +562,9 @@
|
|||
lengthMenu: [[10, 25, 50, -1], [10, 25, 50, "همه"]],
|
||||
order: [[0, 'asc']],
|
||||
responsive: true,
|
||||
columnDefs: [
|
||||
{ targets: [8], orderable: false } // عملیات column غیرقابل مرتبسازی
|
||||
]
|
||||
});
|
||||
|
||||
// Handle form submission
|
||||
|
|
@ -603,6 +673,21 @@
|
|||
$('#cd-username').text(c.user.username || '-');
|
||||
$('#cd-fullname').text(c.user.full_name || '-');
|
||||
$('#cd-national-code').text(c.national_code || '-');
|
||||
|
||||
// User type and company information
|
||||
const userTypeDisplay = c.user_type === 'legal' ? 'حقوقی' : 'حقیقی';
|
||||
$('#cd-user-type').text(userTypeDisplay);
|
||||
|
||||
if (c.user_type === 'legal') {
|
||||
$('#cd-company-name').text(c.company_name || '-');
|
||||
$('#cd-company-id').text(c.company_national_id || '-');
|
||||
$('#cd-company-name-row').show();
|
||||
$('#cd-company-id-row').show();
|
||||
} else {
|
||||
$('#cd-company-name-row').hide();
|
||||
$('#cd-company-id-row').hide();
|
||||
}
|
||||
|
||||
$('#cd-phone1').text(c.phone_number_1 || '-');
|
||||
$('#cd-phone2').text(c.phone_number_2 || '-');
|
||||
$('#cd-email').text(c.user.email || '-');
|
||||
|
|
@ -689,9 +774,12 @@
|
|||
'customer-id': customer.id,
|
||||
'id_first_name': customer.first_name,
|
||||
'id_last_name': customer.last_name,
|
||||
'user-type-select': customer.user_type,
|
||||
'id_phone_number_1': customer.phone_number_1,
|
||||
'id_phone_number_2': customer.phone_number_2,
|
||||
'id_national_code': customer.national_code,
|
||||
'id_company_name': customer.company_name,
|
||||
'id_company_national_id': customer.company_national_id,
|
||||
'id_card_number': customer.card_number,
|
||||
'id_account_number': customer.account_number,
|
||||
'id_address': customer.address,
|
||||
|
|
@ -711,6 +799,14 @@
|
|||
if (customer.bank_name !== undefined && customer.bank_name !== null) {
|
||||
$('#id_bank_name').val(customer.bank_name);
|
||||
}
|
||||
|
||||
// Ensure user type is applied and toggle company fields
|
||||
if (customer.user_type !== undefined && customer.user_type !== null) {
|
||||
$('#user-type-select').val(customer.user_type);
|
||||
}
|
||||
|
||||
// Toggle company fields based on user type
|
||||
toggleCompanyFields();
|
||||
|
||||
// Open modal
|
||||
$('#add-new-record').offcanvas('show');
|
||||
|
|
@ -753,8 +849,39 @@
|
|||
$('.is-invalid').removeClass('is-invalid');
|
||||
$('.invalid-feedback').remove();
|
||||
|
||||
// Reset user type to individual and hide company fields
|
||||
$('#user-type-select').val('individual');
|
||||
toggleCompanyFields();
|
||||
|
||||
// Open modal
|
||||
$('#add-new-record').offcanvas('show');
|
||||
}
|
||||
|
||||
function toggleCompanyFields() {
|
||||
const userType = $('#user-type-select').val();
|
||||
const companyFields = $('.company-fields');
|
||||
|
||||
if (userType === 'legal') {
|
||||
companyFields.show();
|
||||
// Make company fields required
|
||||
$('input[name="company_name"]').attr('required', true);
|
||||
$('input[name="company_national_id"]').attr('required', true);
|
||||
} else {
|
||||
companyFields.hide();
|
||||
// Remove required attribute from company fields
|
||||
$('input[name="company_name"]').removeAttr('required').val('');
|
||||
$('input[name="company_national_id"]').removeAttr('required').val('');
|
||||
// Clear any validation errors for company fields
|
||||
$('.company-fields .is-invalid').removeClass('is-invalid');
|
||||
$('.company-fields .invalid-feedback').remove();
|
||||
}
|
||||
}
|
||||
|
||||
// Initialize user type toggle functionality
|
||||
$(document).ready(function() {
|
||||
$('#user-type-select').on('change', toggleCompanyFields);
|
||||
// Initialize on page load
|
||||
toggleCompanyFields();
|
||||
});
|
||||
</script>
|
||||
{% endblock %}
|
||||
Loading…
Add table
Add a link
Reference in a new issue