fix date in payment and imporove contract page.
This commit is contained in:
		
							parent
							
								
									af40e169ae
								
							
						
					
					
						commit
						204b0aa48e
					
				
					 14 changed files with 295 additions and 74 deletions
				
			
		| 
						 | 
				
			
			@ -150,7 +150,7 @@
 | 
			
		|||
                  <tr>
 | 
			
		||||
                    <td>{% if p.direction == 'in' %}<span class="badge bg-success">دریافتی{% else %}<span class="badge bg-warning text-dark">پرداختی{% endif %}</span></td>
 | 
			
		||||
                    <td>{{ p.amount|floatformat:0|intcomma:False }} تومان</td>
 | 
			
		||||
                    <td>{{ p.payment_date|date:'Y/m/d' }}</td>
 | 
			
		||||
                    <td>{{ p.jpayment_date }}</td>
 | 
			
		||||
                    <td>{{ p.get_payment_method_display }}</td>
 | 
			
		||||
                    <td>{{ p.reference_number|default:'-' }}</td>
 | 
			
		||||
                    <td>
 | 
			
		||||
| 
						 | 
				
			
			@ -316,11 +316,32 @@
 | 
			
		|||
  (function initPersianDatePicker(){
 | 
			
		||||
    if (window.$ && $.fn.persianDatepicker && $('#id_payment_date').length) {
 | 
			
		||||
      $('#id_payment_date').persianDatepicker({
 | 
			
		||||
        format: 'YYYY/MM/DD', initialValue: false, autoClose: true, persianDigit: false, observer: true,
 | 
			
		||||
        format: 'YYYY/MM/DD', 
 | 
			
		||||
        initialValue: false, 
 | 
			
		||||
        autoClose: true, 
 | 
			
		||||
        persianDigit: false, 
 | 
			
		||||
        observer: true,
 | 
			
		||||
        calendar: { persian: { locale: 'fa', leapYearMode: 'astronomical' } },
 | 
			
		||||
        onSelect: function(unix){
 | 
			
		||||
          const g = new window.persianDate(unix).toCalendar('gregorian').format('YYYY-MM-DD');
 | 
			
		||||
          $('#id_payment_date').attr('data-gregorian', g);
 | 
			
		||||
          // تبدیل تاریخ شمسی به میلادی برای ارسال به سرور
 | 
			
		||||
          const gregorianDate = new Date(unix);
 | 
			
		||||
          const year = gregorianDate.getFullYear();
 | 
			
		||||
          const month = String(gregorianDate.getMonth() + 1).padStart(2, '0');
 | 
			
		||||
          const day = String(gregorianDate.getDate()).padStart(2, '0');
 | 
			
		||||
          const gregorianDateString = `${year}-${month}-${day}`;
 | 
			
		||||
          
 | 
			
		||||
          // نمایش تاریخ شمسی در فیلد
 | 
			
		||||
          if (window.persianDate) {
 | 
			
		||||
            const persianDate = new window.persianDate(unix);
 | 
			
		||||
            const persianDateString = persianDate.format('YYYY/MM/DD');
 | 
			
		||||
            $('#id_payment_date').val(persianDateString);
 | 
			
		||||
          } else {
 | 
			
		||||
            // اگر persianDate در دسترس نبود، تاریخ میلادی را نمایش بده
 | 
			
		||||
            $('#id_payment_date').val(gregorianDateString);
 | 
			
		||||
          }
 | 
			
		||||
          
 | 
			
		||||
          // ذخیره تاریخ میلادی در فیلد مخفی برای ارسال به سرور
 | 
			
		||||
          $('#id_payment_date').attr('data-gregorian', gregorianDateString);
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -328,8 +349,14 @@
 | 
			
		|||
 | 
			
		||||
  function buildForm(){
 | 
			
		||||
    const fd = new FormData(document.getElementById('formFinalPayment'));
 | 
			
		||||
    const g = document.getElementById('id_payment_date').getAttribute('data-gregorian');
 | 
			
		||||
    if (g) { fd.set('payment_date', g); }
 | 
			
		||||
    
 | 
			
		||||
    // تبدیل تاریخ شمسی به میلادی برای ارسال
 | 
			
		||||
    const persianDateValue = $('#id_payment_date').val();
 | 
			
		||||
    const gregorianDateValue = $('#id_payment_date').attr('data-gregorian');
 | 
			
		||||
    if (persianDateValue && gregorianDateValue) {
 | 
			
		||||
      fd.set('payment_date', gregorianDateValue);
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    return fd;
 | 
			
		||||
  }
 | 
			
		||||
  (function(){
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -164,7 +164,7 @@
 | 
			
		|||
                          {% for p in payments %}
 | 
			
		||||
                          <tr>
 | 
			
		||||
                            <td>{{ p.amount|floatformat:0|intcomma:False }} تومان</td>
 | 
			
		||||
                            <td>{{ p.payment_date|date:'Y/m/d' }}</td>
 | 
			
		||||
                            <td>{{ p.jpayment_date }}</td>
 | 
			
		||||
                            <td>{{ p.get_payment_method_display }}</td>
 | 
			
		||||
                            <td>{{ p.reference_number|default:'-' }}</td>
 | 
			
		||||
                            <td>
 | 
			
		||||
| 
						 | 
				
			
			@ -359,6 +359,13 @@
 | 
			
		|||
    }
 | 
			
		||||
    const form = document.getElementById('formAddPayment');
 | 
			
		||||
    const fd = buildFormData(form);
 | 
			
		||||
    
 | 
			
		||||
    // تبدیل تاریخ شمسی به میلادی برای ارسال
 | 
			
		||||
    const persianDateValue = $('#id_payment_date').val();
 | 
			
		||||
    const gregorianDateValue = $('#id_payment_date').attr('data-gregorian');
 | 
			
		||||
    if (persianDateValue && gregorianDateValue) {
 | 
			
		||||
      fd.set('payment_date', gregorianDateValue);
 | 
			
		||||
    }
 | 
			
		||||
    fetch('{% url "invoices:add_quote_payment" instance.id step.id %}', {
 | 
			
		||||
      method: 'POST',
 | 
			
		||||
      body: fd
 | 
			
		||||
| 
						 | 
				
			
			@ -422,18 +429,24 @@
 | 
			
		|||
          observer: true,
 | 
			
		||||
          calendar: { persian: { locale: 'fa', leapYearMode: 'astronomical' } },
 | 
			
		||||
          onSelect: function(unix) {
 | 
			
		||||
            // تبدیل تاریخ شمسی به میلادی برای ارسال به سرور
 | 
			
		||||
            const gregorianDate = new Date(unix);
 | 
			
		||||
            const year = gregorianDate.getFullYear();
 | 
			
		||||
            const month = String(gregorianDate.getMonth() + 1).padStart(2, '0');
 | 
			
		||||
            const day = String(gregorianDate.getDate()).padStart(2, '0');
 | 
			
		||||
            const gregorianDateString = `${year}-${month}-${day}`;
 | 
			
		||||
            
 | 
			
		||||
            // نمایش تاریخ شمسی در فیلد
 | 
			
		||||
            if (window.persianDate) {
 | 
			
		||||
              const persianDate = new window.persianDate(unix);
 | 
			
		||||
              const persianDateString = persianDate.format('YYYY/MM/DD');
 | 
			
		||||
              $('#id_payment_date').val(persianDateString);
 | 
			
		||||
            } else {
 | 
			
		||||
              // اگر persianDate در دسترس نبود، تاریخ میلادی را نمایش بده
 | 
			
		||||
              $('#id_payment_date').val(gregorianDateString);
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
            // ذخیره تاریخ میلادی در فیلد مخفی برای ارسال به سرور
 | 
			
		||||
            $('#id_payment_date').attr('data-gregorian', gregorianDateString);
 | 
			
		||||
          }
 | 
			
		||||
        });
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -323,7 +323,7 @@
 | 
			
		|||
            {% else %}
 | 
			
		||||
              {% if next_step %}
 | 
			
		||||
                <a href="{% url 'processes:step_detail' instance.id next_step.id %}" 
 | 
			
		||||
                   class="btn btn-label-primary">
 | 
			
		||||
                   class="btn btn-primary">
 | 
			
		||||
                  مرحله بعد
 | 
			
		||||
                  <i class="bx bx-chevron-left bx-sm me-sm-n2"></i>
 | 
			
		||||
                </a>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -149,7 +149,7 @@
 | 
			
		|||
                    {% endif %}
 | 
			
		||||
                  {% else %}
 | 
			
		||||
                    {% if next_step %}
 | 
			
		||||
                      <a href="{% url 'processes:step_detail' instance.id next_step.id %}" class="btn btn-label-primary">
 | 
			
		||||
                      <a href="{% url 'processes:step_detail' instance.id next_step.id %}" class="btn btn-primary">
 | 
			
		||||
                        مرحله بعد
 | 
			
		||||
                        <i class="bx bx-chevron-left bx-sm me-sm-n2"></i>
 | 
			
		||||
                      </a>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue