<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.xiot.ru/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AXIOTCalculator.js</id>
	<title>MediaWiki:XIOTCalculator.js - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.xiot.ru/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AXIOTCalculator.js"/>
	<link rel="alternate" type="text/html" href="https://wiki.xiot.ru/index.php?title=MediaWiki:XIOTCalculator.js&amp;action=history"/>
	<updated>2026-10-10T06:03:55Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://wiki.xiot.ru/index.php?title=MediaWiki:XIOTCalculator.js&amp;diff=2850&amp;oldid=prev</id>
		<title>Admin: Новая страница: «$(document).ready(function() {   function updateTotal() {     let total = 0;     $(&quot;#xiot-license-table tr[data-code]&quot;).each(function() {       const $row = $(this);       const checked = $row.find(&quot;.license-check&quot;).is(&quot;:checked&quot;);       const qty = parseInt($row.find(&quot;.license-qty&quot;).val() || 1);       const price = parseInt($row.data(&quot;price&quot;));       const subtotal = checked ? qty * price : 0;       $row.find(&quot;.license-total&quot;).text(subtotal.toLocaleString(&quot;...»</title>
		<link rel="alternate" type="text/html" href="https://wiki.xiot.ru/index.php?title=MediaWiki:XIOTCalculator.js&amp;diff=2850&amp;oldid=prev"/>
		<updated>2025-11-12T18:57:44Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «$(document).ready(function() {   function updateTotal() {     let total = 0;     $(&amp;quot;#xiot-license-table tr[data-code]&amp;quot;).each(function() {       const $row = $(this);       const checked = $row.find(&amp;quot;.license-check&amp;quot;).is(&amp;quot;:checked&amp;quot;);       const qty = parseInt($row.find(&amp;quot;.license-qty&amp;quot;).val() || 1);       const price = parseInt($row.data(&amp;quot;price&amp;quot;));       const subtotal = checked ? qty * price : 0;       $row.find(&amp;quot;.license-total&amp;quot;).text(subtotal.toLocaleString(&amp;quot;...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;$(document).ready(function() {&lt;br /&gt;
  function updateTotal() {&lt;br /&gt;
    let total = 0;&lt;br /&gt;
    $(&amp;quot;#xiot-license-table tr[data-code]&amp;quot;).each(function() {&lt;br /&gt;
      const $row = $(this);&lt;br /&gt;
      const checked = $row.find(&amp;quot;.license-check&amp;quot;).is(&amp;quot;:checked&amp;quot;);&lt;br /&gt;
      const qty = parseInt($row.find(&amp;quot;.license-qty&amp;quot;).val() || 1);&lt;br /&gt;
      const price = parseInt($row.data(&amp;quot;price&amp;quot;));&lt;br /&gt;
      const subtotal = checked ? qty * price : 0;&lt;br /&gt;
      $row.find(&amp;quot;.license-total&amp;quot;).text(subtotal.toLocaleString(&amp;quot;ru-RU&amp;quot;) + &amp;quot; ₽&amp;quot;);&lt;br /&gt;
      total += subtotal;&lt;br /&gt;
    });&lt;br /&gt;
    $(&amp;quot;#xiot-total&amp;quot;).text(total.toLocaleString(&amp;quot;ru-RU&amp;quot;) + &amp;quot; ₽&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  $(&amp;quot;.license-check&amp;quot;).on(&amp;quot;change&amp;quot;, function() {&lt;br /&gt;
    const $row = $(this).closest(&amp;quot;tr&amp;quot;);&lt;br /&gt;
    const enabled = $(this).is(&amp;quot;:checked&amp;quot;);&lt;br /&gt;
    $row.find(&amp;quot;.license-qty&amp;quot;).prop(&amp;quot;disabled&amp;quot;, !enabled);&lt;br /&gt;
    updateTotal();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  $(&amp;quot;.license-qty&amp;quot;).on(&amp;quot;input&amp;quot;, updateTotal);&lt;br /&gt;
&lt;br /&gt;
  $(&amp;quot;#xiot-generate&amp;quot;).on(&amp;quot;click&amp;quot;, function() {&lt;br /&gt;
    const selected = [];&lt;br /&gt;
    $(&amp;quot;#xiot-license-table tr[data-code]&amp;quot;).each(function() {&lt;br /&gt;
      const $row = $(this);&lt;br /&gt;
      if ($row.find(&amp;quot;.license-check&amp;quot;).is(&amp;quot;:checked&amp;quot;)) {&lt;br /&gt;
        selected.push({&lt;br /&gt;
          code: $row.data(&amp;quot;code&amp;quot;),&lt;br /&gt;
          qty: parseInt($row.find(&amp;quot;.license-qty&amp;quot;).val()),&lt;br /&gt;
          price: parseInt($row.data(&amp;quot;price&amp;quot;))&lt;br /&gt;
        });&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    if (selected.length === 0) {&lt;br /&gt;
      alert(&amp;quot;Выберите хотя бы одну лицензию&amp;quot;);&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    let code = &amp;quot;ORDER-&amp;quot; + Date.now() + &amp;quot;\n&amp;quot;;&lt;br /&gt;
    let sum = 0;&lt;br /&gt;
    selected.forEach(item =&amp;gt; {&lt;br /&gt;
      const subtotal = item.qty * item.price;&lt;br /&gt;
      sum += subtotal;&lt;br /&gt;
      code += `${item.code} × ${item.qty} = ${subtotal.toLocaleString(&amp;quot;ru-RU&amp;quot;)} ₽\n`;&lt;br /&gt;
    });&lt;br /&gt;
    code += `\nИтого: ${sum.toLocaleString(&amp;quot;ru-RU&amp;quot;)} ₽`;&lt;br /&gt;
&lt;br /&gt;
    $(&amp;quot;#xiot-code-output&amp;quot;).html(&lt;br /&gt;
      `&amp;lt;pre style=&amp;quot;background:#f7f7f7;padding:10px;border:1px solid #ccc;&amp;quot;&amp;gt;${code}&amp;lt;/pre&amp;gt;` +&lt;br /&gt;
      `&amp;lt;button id=&amp;quot;xiot-copy&amp;quot;&amp;gt;📋 Скопировать&amp;lt;/button&amp;gt;`&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    $(&amp;quot;#xiot-copy&amp;quot;).on(&amp;quot;click&amp;quot;, () =&amp;gt; {&lt;br /&gt;
      navigator.clipboard.writeText(code);&lt;br /&gt;
      alert(&amp;quot;Код заказа скопирован в буфер обмена&amp;quot;);&lt;br /&gt;
    });&lt;br /&gt;
  });&lt;br /&gt;
});&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>