/**************************************************************** * Ċ Ġ* ĠGrid n ine ĠAB Ġhttp :// www . grid n ine . com Ċ Ġ* ĠProject : Ġcor al ina - docs - flow Ċ Ġ***************************************************************** / Ċ package Ġcom . fl int y . docs flow . web . core . way bill Ċ Ċ import Ġcom . fl int y . docs flow . common . core . model . domain . Standard Invoice ColumnType JS Ċ import Ġcom . fl int y . docs flow . common . core . model . domain . Way bill ColumnType JS Ċ import Ġcom . fl int y . docs flow . common . core . model . rest . Parse Standard Excel Request JS Ċ import Ġcom . fl int y . docs flow . common . core . model . ui . Way bill Editor Ċ import Ġcom . fl int y . docs flow . web . core . Docs flow RestClient Ċ import Ġcom . grid n ine . jasmine . common . core . model . Base VM JS Ċ import Ġcom . grid n ine . jasmine . common . core . model . Base VS JS Ċ import Ġcom . grid n ine . jasmine . common . core . model . Base VV JS Ċ import Ġcom . grid n ine . jasmine . web . core . remote . launch Ċ import Ġcom . grid n ine . jasmine . web . core . ui . Web Ui Library Adapter Ċ import Ġcom . grid n ine . jasmine . web . core . ui . components . Base Web Node Wrapper Ċ import Ġcom . grid n ine . jasmine . web . core . ui . components . Web Tag Ċ import Ġcom . grid n ine . jasmine . web . core . utils . Misc Utils JS Ċ import Ġcom . grid n ine . jasmine . web . standard . editor . Object Editor Ċ import Ġcom . grid n ine . jasmine . web . standard . editor . Object Editor Tool Ċ import Ġcom . grid n ine . jasmine . web . standard . editor . Web Editor Ċ import Ġcom . grid n ine . jasmine . web . standard . utils . Standard Ui Utils Ċ import Ġcom . grid n ine . jasmine . web . standard . widgets .* Ċ import Ġkotlinx . browser . window Ċ Ċ class ĠImport Way bill Editor Object Button Handler Ġ: ĠObject Editor Tool < Way bill Editor > Ġ{ ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġinvoke ( editor : ĠObject Editor < Way bill Editor >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġactual Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog Editor Ġ Ġ= Ġ ĠWay bill Parse Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . navigator . clipboard . read Text (). then Ġ{ Ġvalue Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( actual ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlaunch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠDocs flow RestClient . docs flow _ invoice _ parse Standard Invoice ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠParse Standard Excel Request JS (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . content Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvm Ġ= ĠWay bill Parse Dialog VM (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . items . addAll ( result . items . map Ġ{ Ġit . fields Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . columns . addAll ( it . items [ 0 ]. map Ġ{ ĠWay bill ColumnType JS . IGNORE Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Editor . read Data ( vm , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWeb Ui Library Adapter . get (). show Dialog ( dialog Editor ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" Ðĺ Ð¼ Ð¿ Ð¾ÑĢ ÑĤ ĠÐ½ Ð°Ðº Ð» Ð°Ð´ Ð½Ð¾Ð¹ " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdisplayName Ġ= Ġ" Ðĺ Ð¼ Ð¿ Ð¾ÑĢ ÑĤÐ¸ ÑĢÐ¾Ð² Ð°ÑĤÑĮ " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandler Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactual Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġdialog Editor . getData () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif (! data . columns . any Ġ{ Ġit Ġ== ĠWay bill ColumnType JS . ARTIC LE Ġ} Ġ|| Ġ! data . columns . any Ġ{ Ġit Ġ== ĠWay bill ColumnType JS . AMOUNT Ġ} ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStandard Ui Utils . show Error (" ÐĶ Ð¾Ð»Ð¶ Ð½Ñĭ ĠÐ±ÑĭÑĤÑĮ ĠÐ²ÑĭÐ± ÑĢÐ°Ð½ Ñĭ ĠÐºÐ¾Ð» Ð¾Ð½ ÐºÐ¸ ĠÐĲ ÑĢ ÑĤÐ¸ ÐºÑĥ Ð» ĠÐ¸ ĠÐļ Ð¾Ð» - Ð² Ð¾ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Data Ġ= Ġeditor . get Editor (). positions Widget . getData () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġarticle Index Ġ= Ġdata . columns . indexOf ( Way bill ColumnType JS . ARTIC LE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġamount Index Ġ= Ġdata . columns . indexOf ( Way bill ColumnType JS . AMOUNT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġposition Index Ġ= Ġdata . columns . indexOf ( Way bill ColumnType JS . POSITION ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar ĠhasError Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . items . forEach Ġ{ Ġitem Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġarticle Ġ= Ġitem [ article Index ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġposition Ġ= Ġcurrent Data . items . find Ġ{ Ġarticle . contains ( it . article !! )} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( position Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġamount Str Ġ= Ġitem [ amount Index ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġamount Ġ= Ġamount Str . replace (" Ġ", Ġ""). replace (",", Ġ". "). toDouble () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition . amount Ġ= Ġamount ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( position Index Ġ!= Ġ- 1 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition . position Ġ= Ġitem [ position Index ]. trim (). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif (! has Error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . close () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . get Editor (). positions Widget . read Data ( current Data , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdisplayName Ġ= Ġ" ÐĿ ÐµÑĤ " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandler Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactual Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . close () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠWay bill Parse Dialog VS : ĠBase VS JS () ĊĠĠĠ Ġclass ĠWay bill Parse Dialog VV : ĠBase VV JS () ĊĠĠĠ Ġclass ĠWay bill Parse Dialog VM : ĠBase VM JS (){ ĊĠĠĠĠĠĠĠ Ġval Ġitems Ġ= Ġarray ListOf < Mutable List < String >>() ĊĠĠĠĠĠĠĠ Ġval Ġcolumns Ġ= Ġarray ListOf < Way bill ColumnType JS >() ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠWay bill Parse Dialog Ġ: ĠWeb Editor < Way bill Parse Dialog VM , ĠWay bill Parse Dialog VS , ĠWay bill Parse Dialog VV >, ĊĠĠĠĠĠĠĠ ĠBase Web Node Wrapper < Web Tag > (){ ĊĠĠĠĠĠĠĠ Ġprivate Ġlateinit Ġvar Ġvm : Way bill Parse Dialog VM ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġcolumn Types Ġ= Ġarray ListOf < EnumValue Widget < Way bill ColumnType JS >>() ĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ node Ġ= ĠWeb Ui Library Adapter . get (). create Tag (" div ", Ġ" way bill Parse Dialog ${ Misc Utils JS . create UUID () }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ node . getStyle (). set Parameters (" width " Ġto Ġ" 8 0 0 px ", Ġ" height " Ġto Ġ" 5 0 0 px ", Ġ" overflow - y " Ġto Ġ" auto ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetData (): ĠWay bill Parse Dialog VM Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolumn Types . with Index (). forEach Ġ{ Ġvm . columns [ it . index ] Ġ= Ġit . value . getValue () !!} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġvm ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġread Data ( vm : ĠWay bill Parse Dialog VM , Ġvs : ĠWay bill Parse Dialog VS ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtable Ġ= ĠGeneral Table Box Widget { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ= Ġ" 1 0 0 %" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight Ġ= Ġ" 1 0 0 %" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvm . columns . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolumn Widths . add ( Web General Table Box Widget Column Width ( null , Ġ 1 5 0 , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġenum Ġ= ĠEnum Value Widget < Way bill ColumnType JS >{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ= Ġ" 1 0 0 %" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠallowNull Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenum Class Ġ= ĠWay bill ColumnType JS :: class ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenum . setValue ( Way bill ColumnType JS . IGNORE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolumn Types . add ( enum ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheader Components . add ( enum ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvm . items . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcomponents Ġ= Ġarray ListOf < Web General Table Box Widget Cell >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . forEach Ġ{ Ġitem Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomponents . add ( Web General Table Box Widget Cell ( Web Label Widget ( item ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtable . add Row ( null , Ġcomponents ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ node . getChildren (). addChild ( table ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . vm Ġ= Ġvm ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Readonly ( value : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// no ops ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġshow Validation ( vv : ĠWay bill Parse Dialog VV ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// no ops ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ}