This commit is contained in:
Daniel Camargo 2013-08-02 11:16:52 -03:00
parent f80e4dd2a6
commit fbf20ff2eb
4 changed files with 76 additions and 74 deletions

View File

@ -200,23 +200,67 @@ NGApp.controller('restaurant', function ($scope, $http, $routeParams, Restaurant
$scope.service = RestaurantService; $scope.service = RestaurantService;
// Alias to ServiceAccount.user
$scope.user = $scope.service.account.user;
$scope.service.init(); $scope.service.init();
$scope.cart = CartService; $scope.cart = CartService;
// Credit card years
var date = new Date().getFullYear();
var years = [];
for (var x = date; x <= date + 20; x++) {
years[years.length] = x;
}
$scope.form = {
tip: App.order.tip,
name: $scope.user.name,
phone: App.phone.format( $scope.user.phone ),
address: $scope.user.address,
notes: ( $scope.user && $scope.user.presets && $scope.user.presets[$routeParams.id]) ? $scope.user.presets[$routeParams.id].notes : '',
card: {
number: $scope.user.card,
month: $scope.user.card_exp_month,
year: $scope.user.card_exp_year
},
months: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
years: years
};
$scope.AB = {
dollar: (App.config.ab && App.config.ab.dollarSign == 'show') ? '$' : '',
changeablePrice: function (dish) {
return (App.config.ab && App.config.ab.changeablePrice == 'show' && dish.changeable_price) ? '+' : ''
},
restaurantPage: (App.config.ab && App.config.ab.restaurantPage == 'restaurant-page-noimage') ? ' restaurant-pic-wrapper-hidden' : ''
};
$scope.$watch( 'service.loaded', function( newValue, oldValue, scope ) { $scope.$watch( 'service.loaded', function( newValue, oldValue, scope ) {
if( newValue ){ if( newValue ){
$scope.restaurant = $scope.service.restaurant; $scope.restaurant = $scope.service.restaurant;
$scope.user = $scope.service.account.user; $scope.cart.restaurant = $scope.restaurant;
$scope.cart.updateTotal();
$scope.lastOrderDelivery = $scope.service.lastOrderDelivery; $scope.lastOrderDelivery = $scope.service.lastOrderDelivery;
$scope.community = $scope.service.community; $scope.community = $scope.service.community;
$scope.showRestaurantDeliv = $scope.service.showRestaurantDeliv; $scope.showRestaurantDeliv = $scope.service.showRestaurantDeliv;
$scope.AB = $scope.service.AB;
$scope.form = $scope.service.form;
// $scope.cart = $scope.service.cart;
} }
}); });
/*
// Validate gift card at the notes field
service.$watch( 'form.notes', function( newValue, oldValue, scope ) {
service.giftcard.text.content = service.form.notes;
service.giftcard.text.start();
});
*/
// service.cart = {
// totalFixed: parseFloat(service.restaurant.delivery_min - service.cartService.total()).toFixed(2)
// }
$('.config-icon').addClass('config-icon-mobile-hide'); $('.config-icon').addClass('config-icon-mobile-hide');
$('.nav-back').addClass('nav-back-show'); $('.nav-back').addClass('nav-back-show');

View File

@ -163,15 +163,13 @@ var Restaurant = function(id) {
} }
} }
self.deliveryDiff = function() { self.deliveryDiff = function(total) {
var total = self.delivery_min_amt == 'subtotal' ? App.cart.subtotal() : App.cart.total(); var diff = parseFloat(self.delivery_min - total).toFixed(2);
var diff = parseFloat(App.restaurant.delivery_min - total).toFixed(2);
/* console.log(App.cart.subtotal(), App.cart.total(),self.delivery_min_amt, total, diff); */ /* console.log(App.cart.subtotal(), App.cart.total(),self.delivery_min_amt, total, diff); */
return diff; return diff;
} }
self.meetDeliveryMin = function() { self.meetDeliveryMin = function(total) {
var total = self.delivery_min_amt == 'subtotal' ? App.cart.subtotal() : App.cart.total();
return total < parseFloat(self.delivery_min) ? true : false; return total < parseFloat(self.delivery_min) ? true : false;
} }

View File

@ -113,19 +113,16 @@ NGApp.factory( 'CartService', function ( RestaurantService ) {
* @return void * @return void
*/ */
updateTotal: function () { updateTotal: function () {
///TODO: REMOVE THIS RETURN
return;
var var
totalText = (App.config.ab && App.config.ab.dollarSign == 'show' ? '$' : '') + this.charged(), totalText = (App.config.ab && App.config.ab.dollarSign == 'show' ? '$' : '') + this.charged(),
tipText = '', tipText = '',
feesText = '', feesText = '',
totalItems = 0, totalItems = 0,
credit = 0, credit = 0,
hasFees = ((App.restaurant.delivery_fee && App.order.delivery_type == 'delivery') || App.restaurant.fee_customer) ? true : false; hasFees = ((service.restaurant.delivery_fee && App.order.delivery_type == 'delivery') || service.restaurant.fee_customer) ? true : false;
if (App.credit.restaurant[App.restaurant.id]) { if (App.credit.restaurant[service.restaurant.id]) {
credit = parseFloat(App.credit.restaurant[App.restaurant.id]); credit = parseFloat(App.credit.restaurant[service.restaurant.id]);
} }
for (var x in service.items) { for (var x in service.items) {
@ -158,9 +155,10 @@ NGApp.factory( 'CartService', function ( RestaurantService ) {
totalText = (App.config.ab && App.config.ab.dollarSign == 'show' ? '$' : '') + this.charged(); totalText = (App.config.ab && App.config.ab.dollarSign == 'show' ? '$' : '') + this.charged();
} }
if (App.restaurant.meetDeliveryMin() && App.order.delivery_type == 'delivery') { var _total = service.restaurant.delivery_min_amt == 'subtotal' ? service.subtotal() : service.total();
if (service.restaurant.meetDeliveryMin(_total) && App.order.delivery_type == 'delivery') {
$('.delivery-minimum-error').show(); $('.delivery-minimum-error').show();
$('.delivery-min-diff').html(App.restaurant.deliveryDiff()); $('.delivery-min-diff').html(service.restaurant.deliveryDiff(_total));
} else { } else {
$('.delivery-minimum-error').hide(); $('.delivery-minimum-error').hide();
@ -223,7 +221,7 @@ NGApp.factory( 'CartService', function ( RestaurantService ) {
$('.cart-paymentType').html(''); $('.cart-paymentType').html('');
} }
if (serviceHighlightEnabled && $('.cart-summary').css('display') != 'none') { if (App.cartHighlightEnabled && $('.cart-summary').css('display') != 'none') {
$('.cart-summary').removeClass('cart-summary-detail'); $('.cart-summary').removeClass('cart-summary-detail');
$('.cart-summary').effect('highlight', {}, 500, function () { $('.cart-summary').effect('highlight', {}, 500, function () {
$('.cart-summary').addClass('cart-summary-detail'); $('.cart-summary').addClass('cart-summary-detail');
@ -354,7 +352,7 @@ NGApp.factory( 'CartService', function ( RestaurantService ) {
cart: service.getCart(), cart: service.getCart(),
pay_type: App.order['pay_type'], pay_type: App.order['pay_type'],
delivery_type: App.order['delivery_type'], delivery_type: App.order['delivery_type'],
restaurant: App.restaurant.id, restaurant: service.restaurant.id,
make_default: $('#default-order-check').is(':checked'), make_default: $('#default-order-check').is(':checked'),
notes: $('[name="notes"]').val(), notes: $('[name="notes"]').val(),
lat: (App.loc.pos()) ? App.loc.pos().lat : null, lat: (App.loc.pos()) ? App.loc.pos().lat : null,
@ -435,7 +433,7 @@ NGApp.factory( 'CartService', function ( RestaurantService ) {
if (App.config && App.config.user && App.config.user.last_order) { if (App.config && App.config.user && App.config.user.last_order) {
// Check if the order was made at this community // Check if the order was made at this community
if (App.config.user.last_order.communities.indexOf(App.restaurant.id_community) > -1) { if (App.config.user.last_order.communities.indexOf(service.restaurant.id_community) > -1) {
// Get the last address the user used at this community // Get the last address the user used at this community
var lastAddress = App.config.user.last_order.address; var lastAddress = App.config.user.last_order.address;
@ -448,7 +446,7 @@ NGApp.factory( 'CartService', function ( RestaurantService ) {
// Log the legacy address // Log the legacy address
App.log.order({ App.log.order({
'address': lastAddress, 'address': lastAddress,
'restaurant': App.restaurant.name 'restaurant': service.restaurant.name
}, 'legacy address'); }, 'legacy address');
} }
} }
@ -464,7 +462,7 @@ NGApp.factory( 'CartService', function ( RestaurantService ) {
// Use the restautant's position to create the bounding box - just for tests // Use the restautant's position to create the bounding box - just for tests
if( App.useRestaurantBoundingBox ){ if( App.useRestaurantBoundingBox ){
var latLong = new google.maps.LatLng( App.restaurant.loc_lat, App.restaurant.loc_long ); var latLong = new google.maps.LatLng( service.restaurant.loc_lat, service.restaurant.loc_long );
} }
if( !latLong ){ if( !latLong ){
@ -490,7 +488,7 @@ NGApp.factory( 'CartService', function ( RestaurantService ) {
$( '[name=pay-address]' ).val( App.loc.formatedAddress( theClosestAddress ) ); $( '[name=pay-address]' ).val( App.loc.formatedAddress( theClosestAddress ) );
} }
if (!App.restaurant.deliveryHere({ lat: lat, lon: lon})) { if (!service.restaurant.deliveryHere({ lat: lat, lon: lon})) {
App.alert( 'Sorry, you are out of delivery range or have an invalid address. \nPlease check your address, or order takeout.' ); App.alert( 'Sorry, you are out of delivery range or have an invalid address. \nPlease check your address, or order takeout.' );
@ -498,7 +496,7 @@ NGApp.factory( 'CartService', function ( RestaurantService ) {
$( '[name=pay-address]' ).val( App.loc.formatedAddress( theClosestAddress ) ); $( '[name=pay-address]' ).val( App.loc.formatedAddress( theClosestAddress ) );
// Log the error // Log the error
App.log.order( { 'address' : $( '[name=pay-address]' ).val(), 'restaurant' : App.restaurant.name } , 'address out of delivery range' ); App.log.order( { 'address' : $( '[name=pay-address]' ).val(), 'restaurant' : service.restaurant.name } , 'address out of delivery range' );
App.busy.unBusy(); App.busy.unBusy();
return; return;
@ -532,7 +530,7 @@ NGApp.factory( 'CartService', function ( RestaurantService ) {
$('.delivery-payment-info, .content-padder-before').hide(); $('.delivery-payment-info, .content-padder-before').hide();
$( '[name="pay-address"]' ).focus(); $( '[name="pay-address"]' ).focus();
// Log the error // Log the error
App.log.order( { 'address' : $( '[name=pay-address]' ).val(), 'restaurant' : App.restaurant.name } , 'address not found or invalid' ); App.log.order( { 'address' : $( '[name=pay-address]' ).val(), 'restaurant' : service.restaurant.name } , 'address not found or invalid' );
} }
} }
@ -541,7 +539,7 @@ NGApp.factory( 'CartService', function ( RestaurantService ) {
App.alert( 'Oops, it looks like your address is incomplete. \nPlease enter a street name, number and zip code.' ); App.alert( 'Oops, it looks like your address is incomplete. \nPlease enter a street name, number and zip code.' );
App.busy.unBusy(); App.busy.unBusy();
// Log the error // Log the error
App.log.order( { 'address' : $( '[name=pay-address]' ).val(), 'restaurant' : App.restaurant.name } , 'address not found' ); App.log.order( { 'address' : $( '[name=pay-address]' ).val(), 'restaurant' : service.restaurant.name } , 'address not found' );
}; };
// Call the geo method // Call the geo method
@ -618,7 +616,7 @@ NGApp.factory( 'CartService', function ( RestaurantService ) {
'total': this.final_price, 'total': this.final_price,
'subtotal': this.price, 'subtotal': this.price,
'tip': this.tip, 'tip': this.tip,
'restaurant': App.restaurant.name, 'restaurant': service.restaurant.name,
'paytype': this.pay_type, 'paytype': this.pay_type,
'ordertype': this.order_type, 'ordertype': this.order_type,
'user': this.user, 'user': this.user,
@ -666,8 +664,8 @@ NGApp.factory( 'CartService', function ( RestaurantService ) {
*/ */
_breackDownDelivery: function () { _breackDownDelivery: function () {
var delivery = 0; var delivery = 0;
if (App.restaurant.delivery_fee && App.order.delivery_type == 'delivery') { if (service.restaurant.delivery_fee && App.order.delivery_type == 'delivery') {
delivery = parseFloat(App.restaurant.delivery_fee); delivery = parseFloat(service.restaurant.delivery_fee);
} }
delivery = App.ceil(delivery); delivery = App.ceil(delivery);
return delivery; return delivery;
@ -680,15 +678,15 @@ NGApp.factory( 'CartService', function ( RestaurantService ) {
*/ */
_breackDownFee: function (feeTotal) { _breackDownFee: function (feeTotal) {
var fee = 0; var fee = 0;
if (App.restaurant.fee_customer) { if (service.restaurant.fee_customer) {
fee = (feeTotal * (parseFloat(App.restaurant.fee_customer) / 100)); fee = (feeTotal * (parseFloat(service.restaurant.fee_customer) / 100));
} }
fee = App.ceil(fee); fee = App.ceil(fee);
return fee; return fee;
}, },
_breackDownTaxes: function (feeTotal) { _breackDownTaxes: function (feeTotal) {
var taxes = (feeTotal * (App.restaurant.tax / 100)); var taxes = (feeTotal * (service.restaurant.tax / 100));
taxes = App.ceil(taxes); taxes = App.ceil(taxes);
return taxes; return taxes;
}, },
@ -728,8 +726,8 @@ NGApp.factory( 'CartService', function ( RestaurantService ) {
var finalAmount = this.total(); var finalAmount = this.total();
if (App.order.pay_type == 'card' && App.credit.restaurant[App.restaurant.id]) { if (App.order.pay_type == 'card' && App.credit.restaurant[service.restaurant.id]) {
finalAmount = finalAmount - App.ceil(App.credit.restaurant[App.restaurant.id]).toFixed(2); finalAmount = finalAmount - App.ceil(App.credit.restaurant[service.restaurant.id]).toFixed(2);
if (finalAmount < 0) { if (finalAmount < 0) {
finalAmount = 0; finalAmount = 0;
} }

View File

@ -114,9 +114,9 @@ NGApp.factory('RestaurantService', function ($http, $routeParams, $rootScope, Ac
service.load(); service.load();
} }
service.load = function(){ service.account = AccountService;
service.account = AccountService; service.load = function(){
App.cache('Restaurant', $routeParams.id, function () { App.cache('Restaurant', $routeParams.id, function () {
@ -144,50 +144,12 @@ service.load = function(){
var complete = function () { var complete = function () {
var date = new Date().getFullYear();
var years = [];
for (var x = date; x <= date + 20; x++) {
years[years.length] = x;
}
service.loaded = true; service.loaded = true;
service.lastOrderDelivery = lastOrderDelivery; service.lastOrderDelivery = lastOrderDelivery;
service.showRestaurantDeliv = ((lastOrderDelivery == 'delivery' || service.restaurant.delivery == '1' || service.restaurant.takeout == '0') && lastOrderDelivery != 'takeout'); service.showRestaurantDeliv = ((lastOrderDelivery == 'delivery' || service.restaurant.delivery == '1' || service.restaurant.takeout == '0') && lastOrderDelivery != 'takeout');
service.AB = {
dollar: (App.config.ab && App.config.ab.dollarSign == 'show') ? '$' : '',
changeablePrice: function (dish) {
return (App.config.ab && App.config.ab.changeablePrice == 'show' && dish.changeable_price) ? '+' : ''
},
restaurantPage: (App.config.ab && App.config.ab.restaurantPage == 'restaurant-page-noimage') ? ' restaurant-pic-wrapper-hidden' : ''
};
service.form = {
tip: App.order.tip,
name: service.account.user.name,
phone: App.phone.format(service.account.user.phone),
address: service.account.user.address,
notes: ( service.account.user && service.account.user.presets && service.account.user.presets[service.restaurant.id_restaurant]) ? service.account.user.presets[service.restaurant.id_restaurant].notes : '',
card: {
number: service.account.user.card,
month: service.account.user.card_exp_month,
year: service.account.user.card_exp_year
},
months: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
years: years
};
/*
// Validate gift card at the notes field
service.$watch( 'form.notes', function( newValue, oldValue, scope ) {
service.giftcard.text.content = service.form.notes;
service.giftcard.text.start();
});
*/
// service.cart = {
// totalFixed: parseFloat(service.restaurant.delivery_min - service.cartService.total()).toFixed(2)
// }
}; };
// double check what phase we are in // double check what phase we are in