fix price seperation
This commit is contained in:
		
							parent
							
								
									0d48e7281a
								
							
						
					
					
						commit
						b406f1d7c4
					
				
					 3 changed files with 49 additions and 5 deletions
				
			
		| 
						 | 
				
			
			@ -224,7 +224,7 @@
 | 
			
		|||
          </div>
 | 
			
		||||
          <div class="mb-3">
 | 
			
		||||
            <label class="form-label">مبلغ (تومان)</label>
 | 
			
		||||
            <input type="number" class="form-control" name="amount" id="id_charge_amount" min="1" required>
 | 
			
		||||
            <input type="text" inputmode="numeric" pattern="\d*" class="form-control" name="amount" id="id_charge_amount" dir="ltr" autocomplete="off" required>
 | 
			
		||||
          </div>
 | 
			
		||||
        </form>
 | 
			
		||||
      </div>
 | 
			
		||||
| 
						 | 
				
			
			@ -246,8 +246,17 @@
 | 
			
		|||
    else { el.classList.add('show'); el.style.display = 'block'; }
 | 
			
		||||
  }
 | 
			
		||||
  function submitSpecialCharge(){
 | 
			
		||||
    const fd = new FormData(document.getElementById('specialChargeForm'));
 | 
			
		||||
    const form = document.getElementById('specialChargeForm');
 | 
			
		||||
    const fd = new FormData(form);
 | 
			
		||||
    fd.append('csrfmiddlewaretoken', document.querySelector('input[name=csrfmiddlewaretoken]').value);
 | 
			
		||||
    // Ensure raw numeric amount is sent
 | 
			
		||||
    (function ensureRawAmount(){
 | 
			
		||||
      const amountInput = document.getElementById('id_charge_amount');
 | 
			
		||||
      if (amountInput){
 | 
			
		||||
        const raw = (amountInput.getAttribute('data-raw-value') || amountInput.value.replace(/\D/g, ''));
 | 
			
		||||
        if (raw) fd.set('amount', raw);
 | 
			
		||||
      }
 | 
			
		||||
    })();
 | 
			
		||||
    fetch('{% url "invoices:add_special_charge" instance.id step.id %}', { method: 'POST', body: fd })
 | 
			
		||||
      .then(r=>r.json()).then(resp=>{
 | 
			
		||||
        if (resp.success){
 | 
			
		||||
| 
						 | 
				
			
			@ -285,6 +294,8 @@
 | 
			
		|||
        }
 | 
			
		||||
      }).catch(()=> showToast('خطا در ارتباط با سرور', 'danger'));
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  // Number formatting is handled by number-formatter.js
 | 
			
		||||
</script>
 | 
			
		||||
{% endblock %}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -76,7 +76,7 @@
 | 
			
		|||
                </div>
 | 
			
		||||
                <div class="mb-3">
 | 
			
		||||
                  <label class="form-label">مبلغ (تومان)</label>
 | 
			
		||||
                  <input type="number" min="1" class="form-control" name="amount" id="id_amount" required>
 | 
			
		||||
                  <input type="text" inputmode="numeric" pattern="\d*" class="form-control" name="amount" id="id_amount" dir="ltr" autocomplete="off" required>
 | 
			
		||||
                </div>
 | 
			
		||||
                <div class="mb-3">
 | 
			
		||||
                  <label class="form-label">تاریخ</label>
 | 
			
		||||
| 
						 | 
				
			
			@ -405,6 +405,14 @@
 | 
			
		|||
 | 
			
		||||
  function buildForm(){
 | 
			
		||||
    const fd = new FormData(document.getElementById('formFinalPayment'));
 | 
			
		||||
    // Ensure raw numeric amount is sent
 | 
			
		||||
    (function ensureRawAmount(){
 | 
			
		||||
      const amountInput = document.getElementById('id_amount');
 | 
			
		||||
      if (amountInput){
 | 
			
		||||
        const raw = (amountInput.getAttribute('data-raw-value') || amountInput.value.replace(/\D/g, ''));
 | 
			
		||||
        if (raw) fd.set('amount', raw);
 | 
			
		||||
      }
 | 
			
		||||
    })();
 | 
			
		||||
    
 | 
			
		||||
    // تبدیل تاریخ شمسی به میلادی برای ارسال
 | 
			
		||||
    const persianDateValue = $('#id_payment_date').val();
 | 
			
		||||
| 
						 | 
				
			
			@ -465,6 +473,24 @@
 | 
			
		|||
  }
 | 
			
		||||
 | 
			
		||||
  // Legacy approve button removed; using modal forms below
 | 
			
		||||
 | 
			
		||||
  // Handle AJAX form submission with number formatting
 | 
			
		||||
  $(document).ready(function() {
 | 
			
		||||
    // Override buildForm function for AJAX submission
 | 
			
		||||
    const originalBuildForm = window.buildForm;
 | 
			
		||||
    window.buildForm = function() {
 | 
			
		||||
      // Set raw values before creating FormData
 | 
			
		||||
      if (window.setRawValuesForSubmission) {
 | 
			
		||||
        window.setRawValuesForSubmission();
 | 
			
		||||
      }
 | 
			
		||||
      const result = originalBuildForm ? originalBuildForm() : new FormData(document.querySelector('form'));
 | 
			
		||||
      // Restore formatted values for display
 | 
			
		||||
      if (window.restoreFormattedValues) {
 | 
			
		||||
        window.restoreFormattedValues();
 | 
			
		||||
      }
 | 
			
		||||
      return result;
 | 
			
		||||
    };
 | 
			
		||||
  });
 | 
			
		||||
</script>
 | 
			
		||||
{% endblock %}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -72,7 +72,7 @@
 | 
			
		|||
                    <div class="card-body">
 | 
			
		||||
                      <div class="mb-3">
 | 
			
		||||
                        <label class="form-label">مبلغ (تومان)</label>
 | 
			
		||||
                        <input type="number" min="1" class="form-control" name="amount" id="id_amount" required>
 | 
			
		||||
                        <input type="text" inputmode="numeric" pattern="\d*" class="form-control" name="amount" id="id_amount" dir="ltr" autocomplete="off" required>
 | 
			
		||||
                      </div>
 | 
			
		||||
                      <div class="mb-3">
 | 
			
		||||
                        <label class="form-label">تاریخ پرداخت/سررسید چک</label>
 | 
			
		||||
| 
						 | 
				
			
			@ -366,6 +366,12 @@
 | 
			
		|||
    }
 | 
			
		||||
    const form = document.getElementById('formAddPayment');
 | 
			
		||||
    const fd = buildFormData(form);
 | 
			
		||||
    // Ensure raw numeric amount is sent
 | 
			
		||||
    (function ensureRawAmount(){
 | 
			
		||||
      const amountInput = document.getElementById('id_amount');
 | 
			
		||||
      const raw = (amountInput.getAttribute('data-raw-value') || amountInput.value.replace(/\D/g, ''));
 | 
			
		||||
      if (raw) fd.set('amount', raw);
 | 
			
		||||
    })();
 | 
			
		||||
    
 | 
			
		||||
    // تبدیل تاریخ شمسی به میلادی برای ارسال
 | 
			
		||||
    const persianDateValue = $('#id_payment_date').val();
 | 
			
		||||
| 
						 | 
				
			
			@ -383,7 +389,7 @@
 | 
			
		|||
          setTimeout(() => { window.location.href = resp.redirect; }, 700);
 | 
			
		||||
        }
 | 
			
		||||
      } else {
 | 
			
		||||
        showToast(resp.message + ':' + resp.error || 'خطا در ثبت فیش', 'danger');
 | 
			
		||||
        showToast((resp.message || resp.error || 'خطا در ثبت فیش'), 'danger');
 | 
			
		||||
      }
 | 
			
		||||
    }).catch(() => showToast('خطا در ارتباط با سرور', 'danger'));
 | 
			
		||||
  });
 | 
			
		||||
| 
						 | 
				
			
			@ -460,6 +466,7 @@
 | 
			
		|||
      } catch (e) { console.error('Error initializing Persian Date Picker:', e); }
 | 
			
		||||
    }
 | 
			
		||||
  })();
 | 
			
		||||
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
{% endblock %}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue