Ver Mensaje Individual
  #3 (permalink)  
Antiguo 04/04/2017, 16:57
Avatar de Middrel
Middrel
 
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Respuesta: ¿Cómo pasar un valor a una función?

Tengo una duda...

La función original llama a la variable qty y dependiendo de su valor hace el cálculo de el envío:

Código Javascript:
Ver original
  1. _calculateShipping: function( qty ) {
  2.             var shipping = 0;
  3.            
  4.             if( qty >= 6 ) {
  5.                 shipping = 10;
  6.             }
  7.             if( qty >= 12 && qty <= 30 ) {
  8.                 shipping = 20;  
  9.             }
  10.            
  11.             if( qty >= 30 && qty <= 60 ) {
  12.                 shipping = 30;  
  13.             }
  14.            
  15.             if( qty > 60 ) {
  16.                 shipping = 0;
  17.             }
  18.            
  19.             return shipping;
  20.        
  21.         },

ahora, yo necesito llamar a la variable "country" y cuando el valor sea "Ciudad de México" el envío sea de cero pesos y cualquier otro el envío sea de 100 pesos:

Código Javascript:
Ver original
  1. _calculateShipping: function( country ) {
  2.             var shipping = 0;
  3.            
  4.            
  5.             if( country == 'Ciudad de México' ) {
  6.                 shipping = 0;
  7.             } else {
  8.                
  9.                 shipping = 100;                
  10.             }
  11.  
  12.            
  13.             return shipping;
  14.        
  15.         },

el problema es que el valor de country no llega a la función... quizá no la estoy invocando bien, pero no estoy seguro :/ la variable esta disponible en:

Código Javascript:
Ver original
  1. displayUserDetails: function() {
  2.             if( this.$userDetails.length ) {
  3.                 if( this.storage.getItem( "shipping-name" ) == null ) {
  4.                     var name = this.storage.getItem( "billing-name" );
  5.                     var email = this.storage.getItem( "billing-email" );
  6.                     var city = this.storage.getItem( "billing-city" );
  7.                     var address = this.storage.getItem( "billing-address" );
  8.                     var zip = this.storage.getItem( "billing-zip" );
  9.                     var country = this.storage.getItem( "billing-country" );
  10.                    
  11.                     var html = "<div class='detail'>";
  12.                         html += "<h2>Facturación y envío</h2>";
  13.                         html += "<ul>";
  14.                         html += "<li>" + name + "</li>";
  15.                         html += "<li>" + email + "</li>";
  16.                         html += "<li>" + city + "</li>";
  17.                         html += "<li>" + address + "</li>";
  18.                         html += "<li>" + zip + "</li>";
  19.                         html += "<li>" + country + "</li>";
  20.                         html += "</ul></div>";
  21.                        
  22.                     this.$userDetails[0].innerHTML = html;
  23.                 } else {
  24.                     var name = this.storage.getItem( "billing-name" );
  25.                     var email = this.storage.getItem( "billing-email" );
  26.                     var city = this.storage.getItem( "billing-city" );
  27.                     var address = this.storage.getItem( "billing-address" );
  28.                     var zip = this.storage.getItem( "billing-zip" );
  29.                     var country = this.storage.getItem( "billing-country" );
  30.                    
  31.                     var sName = this.storage.getItem( "shipping-name" );
  32.                     var sEmail = this.storage.getItem( "shipping-email" );
  33.                     var sCity = this.storage.getItem( "shipping-city" );
  34.                     var sAddress = this.storage.getItem( "shipping-address" );
  35.                     var sZip = this.storage.getItem( "shipping-zip" );
  36.                     var sCountry = this.storage.getItem( "shipping-country" );
  37.                    
  38.                     var html = "<div class='detail'>";
  39.                         html += "<h2>Facturación</h2>";
  40.                         html += "<ul>";
  41.                         html += "<li>" + name + "</li>";
  42.                         html += "<li>" + email + "</li>";
  43.                         html += "<li>" + city + "</li>";
  44.                         html += "<li>" + address + "</li>";
  45.                         html += "<li>" + zip + "</li>";
  46.                         html += "<li>" + country + "</li>";
  47.                         html += "</ul></div>";
  48.                        
  49.                         html += "<div class='detail right'>";
  50.                         html += "<h2>Envío</h2>";
  51.                         html += "<ul>";
  52.                         html += "<li>" + sName + "</li>";
  53.                         html += "<li>" + sEmail + "</li>";
  54.                         html += "<li>" + sCity + "</li>";
  55.                         html += "<li>" + sAddress + "</li>";
  56.                         html += "<li>" + sZip + "</li>";
  57.                         html += "<li>" + sCountry + "</li>";
  58.                         html += "</ul></div>";
  59.                        
  60.                     this.$userDetails[0].innerHTML = html; 
  61.                
  62.                 }
  63.             }
  64.         },

así como "qty" en su propia función...