File: 3sequence.sqlite3

package info (click to toggle)
nutsqlite 2.0.6-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 764 kB
  • sloc: sh: 5,650; makefile: 2
file content (35 lines) | stat: -rw-r--r-- 1,549 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/*
  Custom script to add next meal automatically.  Invoke it thus:
	.read sequence.sqlite3
  This is something NUTsqlite can't do, complicated meal ordering with
  automatic changes to personal options!
*/

begin;

with newcm (meal_id) as (
 with cm1 (base, meal) as (
  with cm (base, meal) as (
   select currentmeal / 100, currentmeal % 100 from options
   )
  select case when meal = 3 then date(substr(base, 1, 4) || '-' || substr(base, 5, 2) || '-' || substr(base, 7, 2), '+1 day') else substr(base, 1, 4) || '-' || substr(base, 5, 2) || '-' || substr(base, 7, 2) end, case when meal = 3 then 1 else meal + 1 end from cm
  )
 select cast( substr(base, 1, 4) || substr(base, 6, 2) || substr(base, 9, 2) as int) * 100 + meal from cm1
 )
update options set currentmeal = (select meal_id from newcm);

update nutr_def set nutopt = -1 where nutrdesc = 'Total Fat';
update nutr_def set nutopt = 0.0 where nutrdesc = 'Non-Fiber Carb';
update options set defanal_am = case when defanal_am >= 45 then 45 else defanal_am + 1 end;

drop view if exists z_mn;
create temp view z_mn as
 with meal (m, mod2) as (
  select options.currentmeal % 100, maxmeal % 2 from options, am_analysis_header
  )
 select case when mod2 = 0 then case when m = 1 then 'R Breakfast' when m = 2 then 'R Dinner' else 'R Supper' end else case when m = 1 then 'P Breakfast' when m = 2 then 'P Dinner' else 'P Supper' end end as mn from meal;

insert into currentmeal select NDB_No, Gm_Wgt, NutrDesc from theusual where meal_name = (select mn from z_mn);
drop view z_mn;

commit;