var Promise = require('bluebird'); var models = require("./models"); var fm = 0; var res = 0; var rt = 0; var mail = 0; //First get the basics, then load the items. Finally load sales and production data. //Create the venue types. Promise.each([ models.VenueType.findOrCreate({where: {name: 'Farmers Market'}, defaults: {name: 'Farmers Market'}}), models.VenueType.findOrCreate({where: {name: 'Restaurant'}, defaults: {name: 'Restaurant'}}), models.VenueType.findOrCreate({where: {name: 'Retail'}, defaults: {name: 'Retail'}}), models.VenueType.findOrCreate({where: {name: 'Mail'}, defaults: {name: 'Mail'}}) ], function(value, index, length) { switch(index) { case 0: fm = value[0].id; break; case 1: res = value[0].id; break; case 2: rt = value[0].id; break; case 3: mail = value[0].id; break; } }).then(function() { //Create the measures and venues. Promise.each([ //Initialize the users. models.User.findOrCreate({where: {login: 'wcrisman'}, defaults: {login: 'wcrisman', password: 'landFJ40', admin: true}}), //Initialize the measures. models.Measure.findOrCreate({where: {name: 'Jar 4oz'}, defaults: {name: 'Jar 4oz', postfix: '4oz'}}), models.Measure.findOrCreate({where: {name: 'Jar 8oz'}, defaults: {name: 'Jar 8oz', postfix: '8oz'}}), models.Measure.findOrCreate({where: {name: 'Jar 12oz'}, defaults: {name: 'Jar 12oz', postfix: '12oz'}}), models.Measure.findOrCreate({where: {name: 'Jar 16oz'}, defaults: {name: 'Jar 16oz', postfix: '16oz'}}), models.Measure.findOrCreate({where: {name: 'Jar 32oz'}, defaults: {name: 'Jar 32oz', postfix: '32oz'}}), models.Measure.findOrCreate({where: {name: 'Jar 64oz'}, defaults: {name: 'Jar 64oz', postfix: '64oz'}}), models.Measure.findOrCreate({where: {name: 'Pounds'}, defaults: {name: 'Pounds', postfix: 'lbs'}}), models.Measure.findOrCreate({where: {name: 'Each'}, defaults: {name: 'Each', postfix: ''}}), models.Measure.findOrCreate({where: {name: 'Bags'}, defaults: {name: 'Bags', postfix: 'bags'}}), models.Measure.findOrCreate({where: {name: 'Dozen Large'}, defaults: {name: 'Dozen Large', postfix: '12/lg'}}), models.Measure.findOrCreate({where: {name: 'Dozen Small'}, defaults: {name: 'Dozen Small', postfix: '12/sm'}}), models.Measure.findOrCreate({where: {name: 'Half Dozen Large'}, defaults: {name: 'Half Dozen Large', postfix: '6/lg'}}), models.Measure.findOrCreate({where: {name: 'Half Dozen Small'}, defaults: {name: 'Half Dozen Small', postfix: '6/sm'}}), //Initialize the venues. models.Venue.findOrCreate({where: {name: 'Boonville'}, defaults: {name: 'Boonville', typeId: fm}}), models.Venue.findOrCreate({where: {name: 'Clement St'}, defaults: {name: 'Clement St', typeId: fm}}), models.Venue.findOrCreate({where: {name: 'Ukiah'}, defaults: {name: 'Ukiah', typeId: fm}}), models.Venue.findOrCreate({where: {name: 'Mendocino'}, defaults: {name: 'Mendocino', typeId: fm}}), models.Venue.findOrCreate({where: {name: 'Ft Bragg'}, defaults: {name: 'Ft Bragg', typeId: fm}}), models.Venue.findOrCreate({where: {name: 'On Farm'}, defaults: {name: 'On Farm', typeId: rt}}), models.Venue.findOrCreate({where: {name: 'Unknown Restaurant'}, defaults: {name: 'Unknown Restaurant', typeId: res}}), models.Venue.findOrCreate({where: {name: 'Yorkville Market'}, defaults: {name: 'Yorkville Market', typeId: rt}}), models.Venue.findOrCreate({where: {name: 'Yorkville Cellars'}, defaults: {name: 'Yorkville Cellars', typeId: rt}}), models.Venue.findOrCreate({where: {name: 'Mail Order'}, defaults: {name: 'Mail Order', typeId: mail}}), models.Venue.findOrCreate({where: {name: 'Website Order'}, defaults: {name: 'Website Order', typeId: mail}}) ], function(value, index, length) { //Ignore results for now. }).then(function() { // var softErrors = []; // // //Read all the Categories, Subcategories, and Items. // require('./importItems.js')(models, softErrors).then(function() { // //Read all the sales data. // require('./importSales.js')(models, softErrors).then(function() { // //Log all errors at the end so they are easily visible. // if(softErrors.length) { // for(var i = 0; i < softErrors.length; i++) { // console.log(softErrors[i]); // } // } // // process.exit(0); // }).catch(function(e) { // console.log(e); // process.exit(1); // }); // }).catch(function(e) { // console.log(e); // process.exit(1); // }); }); });