ElectroCrisan Posted June 16, 2013 Share Posted June 16, 2013 (edited) en la pestaña pedido cuando entro en un pedido concreto abajo del todo a la derecha puedo poner descuentos o quitar los portes o poner un porcentaje de descuento el caso es que cuando quiero poner un descuento por importe me sale este error y ya no se que hacer para solucionarlo Catchable fatal error: Argument 3 passed to TaxCore::getProductTaxRate() must be an instance of Context, boolean given, called in /var/www/vhosts/electrocrisan.com/httpdocs/override/classes/tax/Tax.php on line 20 and defined in /var/www/vhosts/electrocrisan.com/httpdocs/classes/tax/Tax.php on line 252 Edited June 16, 2013 by ElectroCrisan (see edit history) Link to comment Share on other sites More sharing options...
nadie Posted June 16, 2013 Share Posted June 16, 2013 en la pestaña pedido cuando entro en un pedido concreto abajo del todo a la derecha puedo poner descuentos o quitar los portes o poner un porcentaje de descuento el caso es que cuando quiero poner un descuento por importe me sale este error y ya no se que hacer para solucionarlo Catchable fatal error: Argument 3 passed to TaxCore::getProductTaxRate() must be an instance of Context, boolean given, called in /var/www/vhosts/electrocrisan.com/httpdocs/override/classes/tax/Tax.php on line 20 and defined in /var/www/vhosts/electrocrisan.com/httpdocs/classes/tax/Tax.php on line 252 ¿Una preguntllla, tu has instalado "algo" o tienes un módulo que haya instalado este override: /override/classes/tax/Tax.php ? (Lo digo, porque el override no aparece de pronto hay) Link to comment Share on other sites More sharing options...
ElectroCrisan Posted June 16, 2013 Author Share Posted June 16, 2013 yo no se que es lo del override Link to comment Share on other sites More sharing options...
nadie Posted June 16, 2013 Share Posted June 16, 2013 yo no se que es lo del override ¿Puedes mostrarme el contenido del fichero que te he mencionado? Link to comment Share on other sites More sharing options...
ElectroCrisan Posted June 16, 2013 Author Share Posted June 16, 2013 el de tax.php o el de override? Link to comment Share on other sites More sharing options...
nadie Posted June 16, 2013 Share Posted June 16, 2013 el de tax.php o el de override? Del fichero: /override/classes/tax/Tax.php (Justo del fichero, "Tax.php", que tienes en la ruta "/override/classes/tax/") Link to comment Share on other sites More sharing options...
ElectroCrisan Posted June 16, 2013 Author Share Posted June 16, 2013 si te lo he mandado por privado Link to comment Share on other sites More sharing options...
ElectroCrisan Posted June 16, 2013 Author Share Posted June 16, 2013 ves algo raro en el archivo Link to comment Share on other sites More sharing options...
nadie Posted June 16, 2013 Share Posted June 16, 2013 si te lo he mandado por privado ves algo raro en el archivo No he recibido ningún privado ya que los tengo restringidos. Link to comment Share on other sites More sharing options...
nadie Posted June 16, 2013 Share Posted June 16, 2013 Lo que puedes hacer por ahora es eliminar el fichero: /override/classes/tax/Tax.php (Un override es una modificación del fichero original sin modificar el fichero original, que es lo que tienes en tu caso) si borras el: /override/classes/tax/Tax.php automaticamente, prestashop, trabajara con el fichero: /classes/tax/Tax.php ¿Por que tienes el override "/override/classes/tax/Tax.php"? Normalmente es debido a algun módulo, o alguna implementación que te hayan "echo", por eso te dije que me pegaras el código, ya que es posible que ese override este hay por algo en concreto. Link to comment Share on other sites More sharing options...
ElectroCrisan Posted June 16, 2013 Author Share Posted June 16, 2013 <?php class Tax extends TaxCore { /** * Return the product tax * * @param integer $id_product * @param integer $id_address * @return Tax Rate */ public static function getProductTaxRate($id_product, $id_address = null, $getCarrierRate = false) { include_once(_PS_ROOT_DIR_.'/modules/avalaratax/avalaratax.php'); /* Instanciate the Avalara module and check if active */ $avalara = new AvalaraTax(); if (!$avalara->active) return parent::getProductTaxRate($id_product, $id_address, $getCarrierRate); /* With Avalara, we disable the tax for non logged users */ if (!(int)$id_address) return 0.; $region = Db::getInstance()->getValue('SELECT s.`iso_code` FROM '._DB_PREFIX_.'address a LEFT JOIN '._DB_PREFIX_.'state s ON (s.`id_state` = a.`id_state`) WHERE a.`id_address` = '.(int)$id_address); /* If the Merchant does not want to calculate taxes outside his state and we are outside the state, we return 0 */ if ((!empty($region) && $region != Configuration::get('AVALARATAX_STATE') && !Configuration::get('AVALARATAX_TAX_OUTSIDE'))) return 0.; return (float)Db::getInstance()->getValue('SELECT ac.`tax_rate` FROM '._DB_PREFIX_.'avalara_'.($getCarrierRate ? 'carrier' : 'product').'_cache ac WHERE ac.`id_'.($getCarrierRate ? 'carrier' : 'product').'` = '.(int)$id_product.' AND ac.`region` = \''.pSQL($region).'\''); } public static function getCarrierTaxRate($id_carrier, $id_address = NULL) { return (float)self::getProductTaxRate($id_carrier, $id_address, true); } } Link to comment Share on other sites More sharing options...
nadie Posted June 16, 2013 Share Posted June 16, 2013 Ok, ese override se te ha instalado porque has instalado el modulo: AvaTax en la pestaña módulos - módulos (conscientemente o inconscientemente) Lo extraño es que te haya generado ese override (lo digo por que no es correcto), cuando a mi el módulo me ha generado este override: <?php class Tax extends TaxCore { /** * Return the product tax * * @param integer $id_product * @param integer $id_address * @return Tax Rate */ public static function getProductTaxRate($id_product, $id_address = null, Context $context = null, $getCarrierRate = false) { include_once(_PS_ROOT_DIR_.'/modules/avalaratax/avalaratax.php'); /* Instanciate the Avalara module and check if active */ $avalara = new AvalaraTax(); if (!$avalara->active) return parent::getProductTaxRate($id_product, $id_address, $context); /* With Avalara, we disable the tax for non logged users */ if (!(int)$id_address) return 0.; $region = Db::getInstance()->getValue('SELECT s.`iso_code` FROM '._DB_PREFIX_.'address a LEFT JOIN '._DB_PREFIX_.'state s ON (s.`id_state` = a.`id_state`) WHERE a.`id_address` = '.(int)$id_address); /* If the Merchant does not want to calculate taxes outside his state and we are outside the state, we return 0 */ if ((!empty($region) && $region != Configuration::get('AVALARATAX_STATE') && !Configuration::get('AVALARATAX_TAX_OUTSIDE'))) return 0.; return (float)Db::getInstance()->getValue('SELECT ac.`tax_rate` FROM '._DB_PREFIX_.'avalara_'.($getCarrierRate ? 'carrier' : 'product').'_cache ac WHERE ac.`id_'.($getCarrierRate ? 'carrier' : 'product').'` = '.(int)$id_product.' AND ac.`region` = \''.pSQL($region).'\''); } public static function getCarrierTaxRate($id_carrier, $id_address = NULL) { return (float)self::getProductTaxRate($id_carrier, $id_address, null, true); } } ¿Que versión del módulo: AvaTax usas (Lo puedes ver en la pestaña módulos - módulos) ? Link to comment Share on other sites More sharing options...
ElectroCrisan Posted June 16, 2013 Author Share Posted June 16, 2013 esta desactivado el modulo avalara si quieres pruebo a desistalarlo pero creo que me dio error si desistalaba quizas tenga que eliminarlo por completo Link to comment Share on other sites More sharing options...
ElectroCrisan Posted June 16, 2013 Author Share Posted June 16, 2013 uso otro de facturacion que compre por aqui el de factura optimizada pero no creo que sea ese ya que ese funciona perfecto Link to comment Share on other sites More sharing options...
nadie Posted June 16, 2013 Share Posted June 16, 2013 esta desactivado el modulo avalara si quieres pruebo a desistalarlo pero creo que me dio error si desistalaba quizas tenga que eliminarlo por completo Pues entonces elimina directamente el fichero (override) en cuestión. xD (Porque sino estas usando el módulo que te he comentado, ese fichero (override) "sobra") (Solo ese override, no borres nada mas) Añado: Si desinstalas el modulo "avalara" que ahora comentas que lo tienes desactivado, supongo que se vaciara o borrara directamente el override. Link to comment Share on other sites More sharing options...
ElectroCrisan Posted June 16, 2013 Author Share Posted June 16, 2013 gracias y doy el tema por solucionado solo me hizo falta eliminar el avalara y ya se quedo asi <?php class Tax extends TaxCore { /** * Return the product tax * * @param integer $id_product * @param integer $id_address * @return Tax Rate */ } Link to comment Share on other sites More sharing options...
nadie Posted June 16, 2013 Share Posted June 16, 2013 gracias y doy el tema por solucionado solo me hizo falta eliminar el avalara y ya se quedo asi <?php class Tax extends TaxCore { /** * Return the product tax * * @param integer $id_product * @param integer $id_address * @return Tax Rate */ } Un placer ayudarte y servirte! Si das el tema como solucionado, edita el titulo del tema, editando el primer mensaje, pulsando en editar, y después en "Usar editor completo", añadiendo la palabra "Solucionado" al titulo, esto ayudara, a mantener una mayor organización en el foro. Un saludo y recuerda que estaremos en el foro, para guiarte por este mundo oscuro y tenebroso. Link to comment Share on other sites More sharing options...
Recommended Posts