@@ -306,6 +306,12 @@ <h3>Persons:</h3>
306306 fill ( input ) ;
307307}
308308
309+ function changeItemPriceTotal ( input , itemId ) {
310+ const item = data . items . find ( byId ( itemId ) ) ;
311+ item . price = parseFloat ( input . value ) / ( item . amount == 0 ? 1 : item . amount ) ;
312+ fill ( input ) ;
313+ }
314+
309315function changeItemAmount ( input , itemId ) {
310316 data . items . find ( byId ( itemId ) ) . amount = parseFloat ( input . value ) ;
311317 fill ( input ) ;
@@ -337,7 +343,7 @@ <h3>Persons:</h3>
337343
338344function clearItem ( itemId ) {
339345 data . persons . forEach ( person => {
340- person . amounts [ itemId ] = 0
346+ person . amounts [ itemId ] = 0 ;
341347 } ) ;
342348 fill ( ) ;
343349}
@@ -384,11 +390,15 @@ <h3>Persons:</h3>
384390 document . getElementById ( "items" ) . innerHTML = data . items . map ( item => `<div id="id_${ item . id } " class="block">
385391 <div class="flex">
386392 <input class="itemName selectable" type="text" value="" oninput="changeItemName(this, ${ item . id } )" onkeydown="selectNext(event, this)" />
387- <span>Price:</span>
393+ <button onclick="deleteItem(${ item . id } )">X</button>
394+ </div>
395+ <div class="flex">
396+ <span>Price(1):</span>
388397 <input class="itemPrice selectable" type="number" oninput="changeItemPrice(this, ${ item . id } )" onkeydown="selectNext(event, this)" min="0" step="any" value="" />
389- <span>Amount :</span>
398+ <span>Qty :</span>
390399 <input class="itemAmount selectable" type="number" oninput="changeItemAmount(this, ${ item . id } )" onkeydown="selectNext(event, this)" min="0" step="any" value="" />
391- <button onclick="deleteItem(${ item . id } )">X</button>
400+ <span>Price:</span>
401+ <input class="itemPriceTotal selectable" type="number" oninput="changeItemPriceTotal(this, ${ item . id } )" onkeydown="selectNext(event, this)" min="0" step="any" value="" />
392402 </div>
393403 <hr>
394404 ${ data . persons . map ( person => `<div id="id_${ item . id } _${ person . id } " class="flex">
@@ -443,14 +453,15 @@ <h3>Persons:</h3>
443453function fill ( exclude ) {
444454 // set data
445455 function set ( element , value ) {
446- if ( element != exclude ) element . value = value ;
456+ if ( element != exclude ) element . value = typeof value !== "number" ? value : Number ( value . toFixed ( 6 ) ) ;
447457 }
448458
449459 data . items . forEach ( item => {
450460 let parent = document . querySelector ( `#id_${ item . id } ` ) ;
451461 set ( parent . querySelector ( ".itemName" ) , item . name ) ;
452462 set ( parent . querySelector ( ".itemPrice" ) , item . price ) ;
453463 set ( parent . querySelector ( ".itemAmount" ) , item . amount ) ;
464+ set ( parent . querySelector ( ".itemPriceTotal" ) , item . price * item . amount ) ;
454465 data . persons . forEach ( person => {
455466 let child = parent . querySelector ( `#id_${ item . id } _${ person . id } ` ) ;
456467 set ( child . querySelector ( ".personName" ) , person . name ) ;
0 commit comments