Как сравнить дату и выполнить приведенный ниже код?

Если Дата покупки наступает после 31 марта / xxxx, она не должна рассчитывать elap_yend, rem_days, depre_cur, cur_wdv.

Также мне нужно рассчитать GST с некоторыми параметрами, то есть, если выбрано SGST и CGST, я должен не рассчитывать IGST, иначе, если IGST выбран или пометить его не следует рассчитывать SGST и CGST.

Как я могу это решить?

<body>

<div class="form-group mx-auto" >

<div class="form-row " >
    <div class="form-group col-md-2">
      <label>Purchase Date</label>
            <input type="date" class="form-control" id="pur_date" name="pur_date" onchange="cal()" required/>
    </div>
    <div class="form-group col-md-2">
      <label>End Date</label>
            <input type="date" class="form-control" id="end_date" name="end_date" onchange="cal()"required/>
    </div>
  </div>
  <div class="form-row " >
    <div class="form-group col-md-2">
      <label>Product Price</label>
            <input type="text" class="form-control" id="product_price" name="product_price" placeholder="Enter Amount"  required/>
    </div>
    <div class="form-group col-md-2">
      <label>IGST</label>
            <input type="text" class="form-control" id="igst" name="igst"  required/>
    </div>
  </div>
  <div class="form-row">
    <div class="form-group col-md-2">
      <label>SGST</label>
            <input type="text" class="form-control" id="sgst" name="sgst"   required/>
    </div>
    <div class="form-group col-md-2">
      <label>CGST</label>
            <input type="text" class="form-control" id="cgst" name="cgst"  required/>
    </div>
  </div>
  <div class="form-row">
  <div class="form-group col-md-2">
      <label>Total Amount</label>
            <input type="text" class="form-control" name="total" id="total" placeholder="Enter Total" required>
    </div>
    <div class="form-group col-md-2">
      <label>Depre Amount</label>
            <input type="text" class="form-control" name="dep_amount" id="dep_amount" required>
    </div>   
  </div>  
  <div class="form-row">
  <div class="form-group col-md-2">
      <label>Life in Days</label>
              <input type="text" class="form-control" name="life_days" id="life_days" placeholder="Enter Total life" required>
    </div>
  <div class="form-group col-md-2">
      <label>Elapsed Days(31/03)</label>
              <input type="text" class="form-control" name="elap_yend" id="elap_yend" onchange="cal()" readonly/>
    </div>

  </div>

  <div class="form-row">
    <div class="form-group col-md-2">
      <label>Remaining Days</label>
              <input type="text" class="form-control" name="rem_days" id="rem_days" placeholder="Enter Product No" required>
    </div>
    <div class="form-group col-md-2">
      <label>Current Depreciation</label>
            <input type="text" class="form-control" id="depre_cur" name="depre_cur" />
    </div>
  </div>
  <div class="form-row">
    <div class="form-group col-md-2">
      <label>W.D.V(Curr)</label>
            <input type="text" class="form-control" id="cur_wdv" name="cur_wdv" />
    </div>

  </div>
  <div class="form-row " >
    <div class="form-group col-md-2">
      <label>Next Year Starting</label>
            <input class="form-control" id="nextyearstart_date" name="pur_date" >
    </div>
    <div class="form-group col-md-2">
      <label>Next Year End Date</label>
            <input class="form-control" id="nextyearend_date" name="nextyearend_date" >
    </div>
    </div>
    <div class="form-row " >
    <div class="form-group col-md-2">
      <label>Depreciation 2</label>
    <input type="text" class="form-control" id="depre_next" name="depre_next"  required/>
    </div>
    </div>

  </div>
  <div class="form-row">
    <div class="form-group col-md-2">
      <label>W.D.V(Next)</label>
  <input type="text" class="form-control"  name="next_wdv" id="next_wdv"  /> 
    </div>
    <div class="form-group col-md-2">
      <label>Accum Depreciation</label>
            <input type="text" class="form-control" id="acc_depre" name="acc_depre" placeholder="Enter Location" required/>
    </div>
  </div>
  <div class="form-row">
  <div class="form-group col-md-2">
      <label>Sale Amount</label>
            <input type="text" class="form-control" id="sale_amount" name="sale_amount" placeholder="Enter sale amount" required/>
    </div>
    <div class="form-group col-md-2">
      <label>Profit/Loss</label>
            <input type="text" class="form-control" id="pro_los" name="pro_los" placeholder="Enter Product Desc" required/>
    </div>

  </div>
  </div>
  <button type="submit" class="btn btn-primary">Submit</button>

Javascript:

  <script type="text/javascript">
        function GetDays(){
                var dropdt = new Date(document.getElementById("end_date").value);
                 var pickdt = new Date(document.getElementById("pur_date").value);
                //var pickdt = new Date();
                return parseInt((dropdt - pickdt) / (24 * 3600 * 1000));
        }

        function cal(){
        if(document.getElementById("end_date")){
            document.getElementById("elap_yend").value=GetDays();
        }  
    }

    $(product_price).ready(function(){

    var $nextyearstart_date =  $( "#nextyearstart_date" );
    var $nextyearend_date =  $( "#nextyearend_date" );

    $nextyearstart_date.datepicker();
    $nextyearend_date.datepicker({
        onClose: function() {
        var product_price;
        var igst;
        var cgst;
        var sgst;

        product_price = parseFloat($('#product_price').val());

        life_days = parseFloat($('#life_days').val());

        elap_yend = parseFloat($('#elap_yend').val());

        dep_amount = parseFloat($('#dep_amount').val());

        depre_cur = parseFloat($('#depre_cur').val());

        igst = parseFloat($('#igst').val());

        cgst = parseFloat($('#cgst').val());

        sgst = parseFloat($('#sgst').val());

        var igst = product_price * 0.09;
        $('#igst').val(igst.toFixed(2));

        var cgst = product_price * 0.09;
        $('#cgst').val(cgst.toFixed(2));

        var sgst = product_price * 0;
        $('#sgst').val(sgst.toFixed(2));

        var total = product_price + igst + cgst + sgst;
        $('#total').val(total.toFixed(2));

        var dep_amount = product_price + (.5 * (igst + cgst + sgst));
        $('#dep_amount').val(dep_amount.toFixed(2));

        var rem_days = life_days - elap_yend;
        $('#rem_days').val(rem_days.toFixed(2));

        var depre_cur = (dep_amount/life_days) * elap_yend;    //life_days - elap_yend;
        $('#depre_cur').val(depre_cur.toFixed(2));

        var cur_wdv = dep_amount - depre_cur;    //life_days - elap_yend;
        $('#cur_wdv').val(cur_wdv.toFixed(2));
            var fromDate = $nextyearstart_date.datepicker('getDate');
            var toDate = $nextyearend_date.datepicker('getDate');

            var diff = new Date(toDate - fromDate);

            var Ddays = diff/1000/60/60/24;

            var depre_next = Ddays * (dep_amount/life_days);

        $('#depre_next').val(depre_next.toFixed(2));

        var next_wdv = cur_wdv - depre_next;
        $('#next_wdv').val(next_wdv.toFixed(2));

        var acc_depre = depre_cur + depre_next;
        $('#acc_depre').val(acc_depre.toFixed(2));

        var pro_los = depre_cur + depre_next;
        $('#pro_los').val(pro_los.toFixed(2));
           // alert(depre_next);
        }
    });
});

</script>

Не могли бы вы лучше сформулировать свой вопрос. Новые строки и вставки значительно улучшили бы читаемость.

Mouser 31.10.2018 12:18

Я хочу рассчитать CGST, SGST, IGST (с некоторым процентным соотношением, например: 9%), но дело в том, что если я устанавливаю флажок, он должен рассчитывать CST и SGST, иначе он должен рассчитывать IGST. Спасибо за ваш ответ

MONEYMSN 01.11.2018 05:37

мой Бог. Никто не отвечает на расчет GST. Помогите, пожалуйста

MONEYMSN 01.11.2018 14:27

Вы выглядите нетерпеливым. Здесь люди посвящают свое время решению вопросов. Я удивлен, что есть даже ответ с объемом кода в вашем вопросе. Многие люди говорят на разных языках и принадлежат к разным культурам. В вашем коде нет комментариев. Поэтому предоставьте нам необходимую информацию об аббревиатурах и другой номенклатуре, если вы хотите получить более полезный ответ.

Mouser 01.11.2018 16:36

Извините за это, но у меня есть решение. Спасибо за ваш ответ

MONEYMSN 02.11.2018 05:29
2
5
69
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Сравнение дат в JavaScript может быть непростым делом. Иногда лучше использовать стороннюю библиотеку дат, например MomentJS или Luxon.

Однако основы того, что вы хотите делать, довольно просты. Создайте дату, которую вы хотите использовать в качестве базового показателя, затем дату проверки и проведите простое сравнение.

const cutoffDate = new Date('March 31, 2018 23:59:59');
const testDate = new Date(); // now

if (testDate >= cutoffDate) {
  // do this calculation
} else {
  // ok, do this calculation
}

То, что всегда сбивает с толку, - это часовые пояса (вот почему сторонние библиотеки хороши). При использовании объекта JS Date помните, что он будет использовать часовой пояс браузера, поэтому созданный объект даты будет отличаться для пользователя в системе в Нью-Йорке и пользователя в системе в Шанхае.

Помогите мне в этом. Я хочу рассчитать CGST, SGST, IGST (с некоторым процентным соотношением, например: 9%), но дело в том, что если я устанавливаю флажок, он должен рассчитать CST и SGST, иначе он должен рассчитать IGST. Спасибо за ваш ответ

MONEYMSN 01.11.2018 06:40

@MONEYMSN Я потратил свое время, чтобы ответить на ваш вопрос о том, как проверять даты, чтобы выбрать путь вашего процесса. Я сделал все, что мог, чтобы дать вам инструменты, необходимые для достижения успеха в одиночку. Теперь вам решать, как продолжить работу с заявкой, я не могу сделать это за вас. Если у вас есть другой вопрос, задайте его в новом вопросе.

Steve -Cutter- Blades 01.11.2018 14:22

я в порядке с датами, и я сделал это, но мне нужно относительно этого расчета GST. Пожалуйста, помогите мне, я не могу взломать это. заранее спасибо

MONEYMSN 01.11.2018 14:26

Другие вопросы по теме