package Ġmodules . m 4 . logic Ċ Ċ import Ġinterfaces . I Controller Ċ import Ġinterfaces . I Index Manager Ċ import Ġio . ktor . util .* Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġkotlinx . serialization . Experimental Serialization Api Ċ import Ġmodules . m 1 . misc . Song Property Main DataModel Ċ import Ġmodules . m 4 . Item Ċ import Ġmodules . m 4 . gui . G Item Finder Ċ import Ġmodules . m 4 . gui . G Item Settings Ċ import Ġmodules . m 4 . gui . Item Configurator Wizard Ċ import Ġmodules . m 4 . misc . ItemProperty Ċ import Ġmodules . m 4 . misc . getItem From ItemProperty Ċ import Ġmodules . m 4 . misc . getItem Property From Item Ċ import Ġmodules . m 4 stock post ing . Item Stock Post ing Ċ import Ġmodules . m 4 stock post ing . logic . Item Stock Post ing Controller Ċ import Ġmodules . mx . item Index Manager Ċ import Ġt orn ad of x . Controller Ċ import Ġt orn ad of x . Scope Ċ Ċ @ Internal API Ċ @ Experimental Serialization Api Ċ class ĠItem Controller Ġ: ĠI Controller , ĠController () Ġ{ ĊĠ Ġoverride Ġval ĠmoduleName Long Ġ= Ġ" Item Controller " ĊĠ Ġoverride Ġval Ġmodule Ġ= Ġ" M 4 " ĊĠ Ġoverride Ġfun Ġget Index Manager (): ĠI Index Manager Ġ{ ĊĠĠĠ Ġreturn Ġitem Index Manager !! ĊĠ Ġ} ĊĊĠ Ġprivate Ġval Ġwizard Ġ= Ġfind < Item Configurator Wizard >() ĊĊĠ Ġoverride Ġfun Ġsearch Entry () Ġ{ ĊĠĠĠ Ġfind < G Item Finder >(). open Modal () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġnew Entry () Ġ{ ĊĠĠĠ Ġwizard . item . commit () ĊĠĠĠ Ġif Ġ( wizard . item . isValid Ġ&& Ġwizard . item . u ID . value Ġ!= Ġ- 1 ) Ġ{ ĊĠĠĠĠĠ Ġset Entry Lock ( wizard . item . u ID . value , Ġfalse ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġwizard . item . price Categories . value . clear () ĊĠĠĠ Ġwizard . item . storage s . value . clear () ĊĠĠĠ Ġwizard . item . item Ġ= ĠItem Property () ĊĠĠĠ Ġwizard . item . validate () ĊĠĠĠ Ġwizard . is Complete Ġ= Ġfalse ĊĠ Ġ} ĊĊĠ Ġoverride Ġsuspend Ġfun Ġsave Entry ( unlock : ĠBoolean ) Ġ{ ĊĠĠĠ Ġif Ġ( wizard . item . isValid ) Ġ{ ĊĠĠĠĠĠ Ġwizard . item . commit () ĊĠĠĠĠĠ Ġwizard . item . u ID . value Ġ= Ġsave ( ĊĠĠĠĠĠĠĠ Ġentry Ġ= ĠgetItem From ItemProperty ( wizard . item . item ), ĊĠĠĠĠĠĠĠ Ġunlock Ġ= Ġunlock ĊĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġwizard . is Complete Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġshow Entry ( u ID : ĠInt ) Ġ{ ĊĠĠĠ Ġval Ġentry Ġ= Ġget ( u ID ) Ġas ĠItem ĊĠĠĠ Ġwizard . item . item Ġ= ĠgetItem Property From Item ( entry ) ĊĠ Ġ} ĊĊĠ Ġfun Ġcreate And Return Item (): ĠItem Ġ{ ĊĠĠĠ Ġval Ġitem Ġ= ĠItem (- 1 , Ġ"") ĊĠĠĠ Ġval Ġwizard Ġ= ĠItem Configurator Wizard () ĊĠĠĠ Ġwizard . show Header Ġ= Ġfalse ĊĠĠĠ Ġwizard . show Steps Ġ= Ġfalse ĊĠĠĠ Ġwizard . item . item Ġ= ĠgetItem Property From Item ( item ) ĊĠĠĠ Ġwizard . open Modal ( block Ġ= Ġtrue ) ĊĠĠĠ Ġreturn ĠgetItem From ItemProperty ( wizard . item . item ) ĊĠ Ġ} ĊĊĠ Ġfun Ġselect And Return Item (): ĠItem Ġ{ ĊĠĠĠ Ġval Ġitem : ĠItem ĊĠĠĠ Ġval Ġnew Scope Ġ= ĠScope () ĊĠĠĠ Ġval Ġdata Transfer Ġ= ĠSong Property Main DataModel () ĊĠĠĠ Ġdata Transfer . u ID . value Ġ= Ġ- 2 ĊĠĠĠ Ġset In Scope ( data Transfer , Ġnew Scope ) ĊĠĠĠ Ġt orn ad of x . find < G Item Finder >( new Scope ). open Modal ( block Ġ= Ġtrue ) ĊĠĠĠ Ġitem Ġ= Ġif Ġ( data Transfer . name . value Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġload ( data Transfer . u ID . value ) Ġas ĠItem ĊĠĠĠ Ġ} Ġelse ĠItem (- 1 , Ġ"") ĊĠĠĠ Ġreturn Ġitem ĊĠ Ġ} ĊĊĠ Ġfun Ġshow Settings () Ġ{ ĊĠĠĠ Ġval Ġsettings Ġ= Ġfind < G Item Settings >() ĊĠĠĠ Ġsettings . open Modal () ĊĠ Ġ} ĊĊĠ Ġfun Ġadd Stock ( storage UID : ĠInt , Ġstorage Unit UID : ĠInt , Ġamount : ĠDouble , Ġnote : ĠString Ġ= Ġ"") Ġ{ ĊĠĠĠ Ġwizard . item ĊĠĠĠĠĠ Ġ. storage s . value [ storage UID ] ĊĠĠĠĠĠ Ġ. storage Units [ storage Unit UID ]. stock Ġ+= Ġamount ĊĠĠĠ Ġval Ġstock Post ing Ġ= ĠItem Stock Post ing ( ĊĠĠĠĠĠ Ġu ID Ġ= Ġ- 1 , ĊĠĠĠĠĠ Ġitem UID Ġ= Ġwizard . item . u ID . value , ĊĠĠĠĠĠ Ġstorage Unit From UID Ġ= Ġ- 1 , ĊĠĠĠĠĠ Ġstorage Unit To UID Ġ= Ġstorage UID , ĊĠĠĠĠĠ Ġamount Ġ= Ġamount , ĊĠĠĠĠĠ Ġnote Ġ= Ġnote ĊĠĠĠ Ġ) ĊĠĠĠ Ġstock Post ing . book () ĊĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠ ĠItem Stock Post ing Controller (). save ( stock Post ing ) ĊĠĠĠĠĠ ĠItem Controller (). save Entry ( unlock Ġ= Ġfalse ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ