Browse Source

Database updates for sample roasting feature.

Neal Wilson 11 years ago
parent
commit
9ff08dc4f0
1 changed files with 25 additions and 0 deletions
  1. 25
    0
      config/Windows/navigation.xml

+ 25
- 0
config/Windows/navigation.xml View File

241
 			query.exec("INSERT INTO TypicaFeatures VALUES('base-features', TRUE, 1)");
241
 			query.exec("INSERT INTO TypicaFeatures VALUES('base-features', TRUE, 1)");
242
 			query = query.invalidate();
242
 			query = query.invalidate();
243
 		};
243
 		};
244
+		
245
+		/* Some changes to the database are required for sample roasting features in
246
+		   Typica 1.6 and later. */
247
+		var DBCreateSampleRoasting = function() {
248
+			var query = new QSqlQuery;
249
+			query.exec("CREATE OR REPLACE FUNCTION log_use() RETURNS trigger AS $$ DECLARE i integer := array_lower(NEW.unroasted_id, 1); u integer := array_upper(NEW.unroasted_id, 1); BEGIN IF NEW.transaction_type = 'ROAST' THEN WHILE i <= u LOOP INSERT INTO use VALUES(NEW.time, NEW.unroasted_id[i], NEW.unroasted_quantity[i]); i := i + 1; END LOOP; END IF; RETURN NEW; END; $$ LANGUAGE plpgsql");
250
+			query.exec("CREATE TABLE IF NOT EXISTS item_attributes (id bigint PRIMARY KEY NOT NULL, name text NOT NULL)");
251
+			query.exec("CREATE TABLE IF NOT EXISTS coffee_sample_items(arrival timestamp without time zone, vendor text, attribute_ids bigint[], attribute_values text[]. item_id bigint) INHERITS (items)");
252
+			query.exec("INSERT INTO TypicaFeatures VALUES('sample-roasting', TRUE, 1)");
253
+			query = query.invalidate();
254
+		};
255
+
244
 		query = new QSqlQuery();
256
 		query = new QSqlQuery();
245
 		/* A table keeps track of database versioning information. This table is created
257
 		/* A table keeps track of database versioning information. This table is created
246
 		   if required. */
258
 		   if required. */
260
 		{
272
 		{
261
 			DBCreateBase();
273
 			DBCreateBase();
262
 		}
274
 		}
275
+		query.exec("SELECT feature, enabled, version FROM TypicaFeatures WHERE feature = 'sample-roasting'");
276
+		if(query.next())
277
+		{
278
+			if(query.value(2) < 1)
279
+			{
280
+				DBCreateSampleRoasting();
281
+			}
282
+		}
283
+		else
284
+		{
285
+			DBCreateSampleRoasting();
286
+		}
287
+		query = query.invalidate();
263
         ]]>
288
         ]]>
264
     </program>
289
     </program>
265
 </window>
290
 </window>

Loading…
Cancel
Save