package Ġcom . example . basic login . Tables Ċ Ċ import Ġandroid . content . Content Values Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Log Ċ import Ġcom . example . basic login . Models . C uis ine Category Record Ċ import Ġcom . example . basic login . Models . D ish Item Record Ċ Ċ class ĠD SH ITM ( val Ġcontext : ĠContext ) Ġ: Generic Table Interface < D ish Item Record >{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdatabase : ĠD SH ITM Handler ĊĠĠĠ Ġprivate Ġval ĠTAG Ġ= Ġ" D SH ITM " ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġdatabase Ġ= ĠD SH ITM Handler ( context ) ĊĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun Ġis Code Exist ( code : String ): Boolean { ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ: ĠMutable List < D ish Item Record > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġval ĠQUERY _ SCRIPT Ġ Ġ= Ġ" SELECT Ġ* ĠFROM Ġ${ Table Constants . TBL _ D SH ITM }" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠWHERE Ġ${ Table Constants . D SH ITM _ D HI ITM CD } Ġ Ġ= Ġ\' $ code \' Ġ" ĊĊĠĠĠĠĠĠĠ Ġval Ġdb read Ġ= Ġdatabase . readable Database ĊĠĠĠĠĠĠĠ Ġval Ġquery output Ġ Ġ= Ġdb read . raw Query ( QUERY _ SCRIPT , null ) ĊĠĠĠĠĠĠĠ Ġif Ġ( query output . moveTo First ()){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdo Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Ġ= ĠD ish Item Record ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery output . getString ( 0 ). toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery output . getString ( 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery output . getString ( 2 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery output . getString ( 3 ). toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery output . getString ( 4 ). toInt () Ġ== Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery output . getString ( 5 ). toInt () Ġ== Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery output . getString ( 6 ). toInt () Ġ== Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery output . getString ( 7 ). toInt () Ġ== Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . add ( current ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} while ( query output . moveTo Next ()) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġquery output . close () ĊĠĠĠĠĠĠĠ Ġdb read . close () ĊĠĠĠĠĠĠĠ Ġoutput Records ( result ) ĊĠĠĠĠĠĠĠ Ġreturn Ġresult . size Ġ> Ġ 0 ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġgenerate Record ID (): Int { ĊĠĠĠĠĠĠĠ Ġval ĠQUERY _ SCRIPT Ġ= Ġ" SELECT ĠIF NULL ( MAX (${ Table Constants . D SH ITM _ ID }) Ġ+ Ġ 1 , 0 ) ĠFROM Ġ${ Table Constants . TBL _ D SH ITM } Ġ; " ĊĠĠĠĠĠĠĠ Ġval Ġdb read Ġ= Ġdatabase . readable Database ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġdb read . raw Query ( QUERY _ SCRIPT , Ġnull ) ĊĠĠĠĠĠĠĠ Ġvar Ġreturn id : ĠInt Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠ Ġif Ġ( result . moveTo First ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdo Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn id Ġ= Ġresult . getString ( 0 ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġwhile Ġ( result . moveTo Next ()) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġresult . close () ĊĠĠĠĠĠĠĠ Ġdb read . close () ĊĠĠĠĠĠĠĠ ĠLog . i ( TAG , Ġ" Key Ġgenerated Ġ: Ġ${ return id }") ĊĠĠĠĠĠĠĠ Ġreturn Ġreturn id ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġgenerate Item Code ( entry : ĠD ish Item Record ): String { ĊĊĠĠĠĠĠĠĠ Ġval Ġheader Ġ= Ġentry . cr uc at . toString (). pad Start ( 2 , Ġ' 0 ') ĊĊĠĠĠĠĠĠĠ Ġval ĠQUERY _ SCRIPT Ġ= Ġ" SELECT ĠIF NULL ( MAX (${ Table Constants . D SH ITM _ D HI ITM CD }) Ġ,' 0 ') ĠFROM Ġ${ Table Constants . TBL _ D SH ITM } Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" WHERE Ġ${ Table Constants . D SH ITM _ DH IC R UC AT } ĠLIKE Ġ'${ header }% '" ĊĠĠĠĠĠĠĠ Ġval Ġdb read Ġ= Ġdatabase . readable Database ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġdb read . raw Query ( QUERY _ SCRIPT , Ġnull ) ĊĠĠĠĠĠĠĠ Ġvar Ġreturn code : ĠString Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġif Ġ( result . moveTo First ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdo Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn code Ġ= Ġresult . getString ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġwhile Ġ( result . moveTo Next ()) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġresult . close () ĊĠĠĠĠĠĠĠ Ġdb read . close () ĊĊĠĠĠĠĠĠĠ Ġreturn code Ġ= Ġreturn code . pad Start ( 5 , Ġ' 0 ') ĊĠĠĠĠĠĠĠ Ġreturn code Ġ= Ġheader Ġ+ Ġreturn code ĊĠĠĠĠĠĠĠ ĠLog . i ( TAG , Ġ" Key Ġgenerated Ġ: Ġ${ return code }") ĊĠĠĠĠĠĠĠ Ġreturn Ġreturn code ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd Record ( entry : ĠD ish Item Record ): Boolean { ĊĠĠĠĠĠĠĠ Ġif Ġ( is Code Exist ( entry . code )){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException (" Code Ġalready Ġexist ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġentry . id Ġ= Ġgenerate Record ID () ĊĠĠĠĠĠĠĠ Ġentry . code Ġ= Ġgenerate Item Code ( entry ) ĊĊĠĠĠĠĠĠĠ Ġval Ġwrit edb Ġ= Ġdatabase . writable Database ĊĠĠĠĠĠĠĠ Ġvar Ġcv Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠ Ġcv . put ( Table Constants . D SH ITM _ ID , Ġentry . id Ġ) ĊĠĠĠĠĠĠĠ Ġcv . put ( Table Constants . D SH ITM _ D HI ITM CD , Ġentry . code Ġ) ĊĠĠĠĠĠĠĠ Ġcv . put ( Table Constants . D SH ITM _ D HI IT MN M , Ġentry . name ) ĊĠĠĠĠĠĠĠ Ġcv . put ( Table Constants . D SH ITM _ DH IC R UC AT , Ġentry . cr uc at ) ĊĠĠĠĠĠĠĠ Ġcv . put ( Table Constants . D SH ITM _ VE GAN OPT , if Ġ( entry . ve gan Opt ) Ġ 1 Ġelse Ġ 0 Ġ Ġ) ĊĠĠĠĠĠĠĠ Ġcv . put ( Table Constants . D SH ITM _ N UTF RE OPT , Ġif Ġ( entry . nut Free Opt ) Ġ 1 Ġelse Ġ 0 Ġ) ĊĠĠĠĠĠĠĠ Ġcv . put ( Table Constants . D SH ITM _ MIL KF RE OPT , Ġif Ġ( entry . mil k Free Opt ) Ġ 1 Ġelse Ġ 0 Ġ) ĊĠĠĠĠĠĠĠ Ġcv . put ( Table Constants . D SH ITM _ SP ICY OPT , Ġif Ġ( entry . sp icy Opt ) Ġ 1 Ġelse Ġ 0 Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġwrit edb . insert ( Table Constants . TBL _ D SH ITM , null , cv ) ĊĠĠĠĠĠĠĠ Ġreturn Ġ( result Ġ!= Ġ- 1 . to Long ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate Record ( entry : ĠD ish Item Record ): Boolean { ĊĠĠĠĠĠĠĠ Ġval Ġwrit edb Ġ= Ġdatabase . writable Database ĊĠĠĠĠĠĠĠ Ġvar Ġcv Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠ Ġcv . put ( Table Constants . D SH ITM _ ID , Ġentry . id Ġ) ĊĠĠĠĠĠĠĠ Ġcv . put ( Table Constants . D SH ITM _ D HI ITM CD , Ġentry . code Ġ) ĊĠĠĠĠĠĠĠ Ġcv . put ( Table Constants . D SH ITM _ D HI IT MN M , Ġentry . name ) ĊĠĠĠĠĠĠĠ Ġcv . put ( Table Constants . D SH ITM _ DH IC R UC AT , Ġentry . cr uc at ) ĊĠĠĠĠĠĠĠ Ġcv . put ( Table Constants . D SH ITM _ VE GAN OPT , if Ġ( entry . ve gan Opt ) Ġ 1 Ġelse Ġ 0 Ġ Ġ) ĊĠĠĠĠĠĠĠ Ġcv . put ( Table Constants . D SH ITM _ N UTF RE OPT , Ġif Ġ( entry . nut Free Opt ) Ġ 1 Ġelse Ġ 0 Ġ) ĊĠĠĠĠĠĠĠ Ġcv . put ( Table Constants . D SH ITM _ MIL KF RE OPT , Ġif Ġ( entry . mil k Free Opt ) Ġ 1 Ġelse Ġ 0 Ġ) ĊĠĠĠĠĠĠĠ Ġcv . put ( Table Constants . D SH ITM _ SP ICY OPT , Ġif Ġ( entry . sp icy Opt ) Ġ 1 Ġelse Ġ 0 Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġwrit edb . update ( Table Constants . TBL _ D SH ITM , cv ," ${ Table Constants . D SH ITM _ ID } Ġ= Ġ${ entry . id }", null ) ĊĠĠĠĠĠĠĠ Ġreturn Ġresult Ġ>= 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdelete Record ( entry : ĠD ish Item Record ): ĠBoolean { ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġ Ġdatabase . writable Database . delete ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTable Constants . TBL _ D SH ITM , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTable Constants . D SH ITM _ ID Ġ+ Ġ"=" Ġ+ Ġentry . id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn Ġresult Ġ> Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġoutput Records ( records : ĠList < D ish Item Record > ){ ĊĠĠĠĠĠĠĠ Ġfor Ġ( entry Ġin Ġrecords ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i ( TAG ," Out Ġ--> Ġ${ entry . id }, ${ entry . code }, ${ entry . name }, ${ entry . ve gan Opt }, ${ entry . nut Free Opt }, ${ entry . mil k Free Opt }, ${ entry . sp icy Opt }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfetch All Record (): List < D ish Item Record >{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ: ĠMutable List < D ish Item Record > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġval ĠQUERY _ SCRIPT Ġ Ġ= Ġ" SELECT Ġ* ĠFROM Ġ${ Table Constants . TBL _ D SH ITM }" ĊĊĠĠĠĠĠĠĠ Ġval Ġdb read Ġ= Ġdatabase . readable Database ĊĠĠĠĠĠĠĠ Ġval Ġquery output Ġ Ġ= Ġdb read . raw Query ( QUERY _ SCRIPT , null ) ĊĠĠĠĠĠĠĠ Ġif Ġ( query output . moveTo First ()){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdo Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Ġ= ĠD ish Item Record ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery output . getString ( 0 ). toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery output . getString ( 2 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery output . getString ( 3 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery output . getString ( 1 ). toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery output . getString ( 4 ). toInt () Ġ== Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery output . getString ( 5 ). toInt () Ġ== Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery output . getString ( 6 ). toInt () Ġ== Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery output . getString ( 7 ). toInt () Ġ== Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . add ( current ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} while ( query output . moveTo Next ()) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġquery output . close () ĊĠĠĠĠĠĠĠ Ġdb read . close () ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Record With Category ( cat : ĠInt ): List < D ish Item Record >{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ: ĠMutable List < D ish Item Record > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġval ĠQUERY _ SCRIPT Ġ Ġ= Ġ" SELECT Ġ* ĠFROM Ġ${ Table Constants . TBL _ D SH ITM } Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" WHERE Ġ${ Table Constants . D SH ITM _ DH IC R UC AT } Ġ= Ġ$ cat " ĊĊĠĠĠĠĠĠĠ Ġval Ġdb read Ġ= Ġdatabase . readable Database ĊĠĠĠĠĠĠĠ Ġval Ġquery output Ġ Ġ= Ġdb read . raw Query ( QUERY _ SCRIPT , null ) ĊĠĠĠĠĠĠĠ Ġif Ġ( query output . moveTo First ()){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdo Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Ġ= ĠD ish Item Record ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery output . getString ( 0 ). toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery output . getString ( 2 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery output . getString ( 3 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery output . getString ( 1 ). toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery output . getString ( 4 ). toInt () Ġ== Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery output . getString ( 5 ). toInt () Ġ== Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery output . getString ( 6 ). toInt () Ġ== Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery output . getString ( 7 ). toInt () Ġ== Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . add ( current ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} while ( query output . moveTo Next ()) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġquery output . close () ĊĠĠĠĠĠĠĠ Ġdb read . close () ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Record ByID ( id Ġ: ĠInt ): ĠD ish Item Record Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ: ĠMutable List < D ish Item Record > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġval ĠQUERY _ SCRIPT Ġ Ġ= Ġ" SELECT Ġ* ĠFROM Ġ${ Table Constants . TBL _ D SH ITM } Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" WHERE Ġ${ Table Constants . D SH ITM _ ID } Ġ= Ġ$ id " ĊĊĠĠĠĠĠĠĠ Ġval Ġdb read Ġ= Ġdatabase . readable Database ĊĠĠĠĠĠĠĠ Ġval Ġquery output Ġ Ġ= Ġdb read . raw Query ( QUERY _ SCRIPT , null ) ĊĠĠĠĠĠĠĠ Ġif Ġ( query output . moveTo First ()){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdo Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Ġ= ĠD ish Item Record ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery output . getString ( 0 ). toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery output . getString ( 2 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery output . getString ( 3 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery output . getString ( 1 ). toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery output . getString ( 4 ). toInt () Ġ== Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery output . getString ( 5 ). toInt () Ġ== Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery output . getString ( 6 ). toInt () Ġ== Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery output . getString ( 7 ). toInt () Ġ== Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . add ( current ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} while ( query output . moveTo Next ()) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġquery output . close () ĊĠĠĠĠĠĠĠ Ġdb read . close () ĊĠĠĠĠĠĠĠ Ġreturn Ġresult [ 0 ] ĊĠĠĠ Ġ} Ċ Ċ }