Jump to content

Error al crear pedidos con empleados


mikel EPALZA

Recommended Posts

Hola tengo 2 problemas que he descubierto ahora, ya que mi tienda lleva funcionando un año.

 

1º) Problema 1 en el servidor, tienda en producción

 

He creado un empleado como vendedor y despues de dar los permisos de pedidos, clientes y reglas de descuentos, al entrar como empleado solo me deja elegir el cliente, pero si eligo los productos y pulso en añadir no hace nada y no se añade nada.

 

2º) Problema 2 en el servidor de prueba en modo localhost.

 

Hago lo mismo  y me permite elegir el cliente y los productos y añadirlos.

 

a ) pero al pulsar sobre crear pedido me sale el siguiente error:

 

    

Can't save Order
at line 340 in file classes/PaymentModule.php

if (!$result)338. 					{339. 						PrestaShopLogger::addLog('PaymentModule::validateOrder - Order cannot be created', 3, null, 'Cart', (int)$id_cart, true);340. 						throw new PrestaShopException('Can\'t save Order');341. 					}

Espero que alguien me pueda ayudar con estos 2  problemas porque necesito arreglarlo para el comercial.

 

Muchas gracias

Mikel Epalza

Gerente de Grupo Or-com Distribuciones

www.or-com.es

Edited by mikel EPALZA (see edit history)
Link to comment
Share on other sites

Hola Mikel,

 

¿Qué versión de PS estás usando?.

 

¿Eso te ocurre al generar pedidos en el BO o en FO?.

 

Saludos

 

Hola Ipaelo,

 

te explico, en el servidor tengo la tienda en producción con la version 1.6.0.14  y  en localhost acabo de actualizar hace unos cuantos dias(desde que salio la nueva version) a la version 1.6.1.1 para testearla bien con mi plantilla y ver que no haya problemas al subirla al servidor de producción. En ambos casos me ocurre lo mismo y sólo en el BO

 

Las dos tiendas estan instaladas desde hace un año o más, desde que empece con la version 1.5.6.

 

Hasta ahora no me había propuesto subcontratar un comercial y por lo tanto nunca habia creado un empleado. te adjunto los errores que me aparecen:

 

[PrestaShopException]

Can't save Order

at line 345 in file classes/PaymentModule.php

340.                     // Creating order341.                     $result = $order->add();342. 343.                     if (!$result) {344.                         PrestaShopLogger::addLog('PaymentModule::validateOrder - Order cannot be created', 3, null, 'Cart', (int)$id_cart, true);345.                         throw new PrestaShopException('Can\'t save Order');346.                     }347. 348.                     // Amount paid by customer is not the right one -> Status = payment error349.                     // We don't use the following condition to avoid the float precision issues : http://www.php.net/manual/en/language.types.float.php350.                     // if ($order->total_paid != $order->total_paid_real)
  • PaymentModuleCore->validateOrder - [line 1160 - controllers/admin/AdminOrdersController.php] - [9 Arguments]
    1155.                     $employee = new Employee((int)Context::getContext()->cookie->id_employee);1156.                     $payment_module->validateOrder(1157.                         (int)$cart->id, (int)$id_order_state,1158.                         $cart->getOrderTotal(true, Cart::BOTH), $payment_module->displayName, $this->l('Manual order -- Employee:').' '.1159.                         substr($employee->firstname, 0, 1).'. '.$employee->lastname, array(), null, false, $cart->secure_key1160.                     );1161.                     if ($payment_module->currentOrder) {1162.                         Tools::redirectAdmin(self::$currentIndex.'&id_order='.$payment_module->currentOrder.'&vieworder'.'&token='.$this->token);1163.                     }1164.                 }1165.             } else {
  • AdminOrdersControllerCore->postProcess - [line 178 - classes/controller/Controller.php]
    173.             if (!$this->content_only && ($this->display_header || (isset($this->className) && $this->className))) {174.                 $this->setMedia();175.             }176. 177.             // postProcess handles ajaxProcess178.             $this->postProcess();179. 180.             if (!empty($this->redirect_after)) {181.                 $this->redirect();182.             }183. 
  • ControllerCore->run - [line 367 - classes/Dispatcher.php]
    362.             if (isset($params_hook_action_dispatcher)) {363.                 Hook::exec('actionDispatcher', $params_hook_action_dispatcher);364.             }365. 366.             // Running controller367.             $controller->run();368.         } catch (PrestaShopException $e) {369.             $e->displayMessage();370.         }371.     }372. 
  • DispatcherCore->dispatch - [line 58 - admin712re30h1/index.php]
    53. if (!isset($_REQUEST['controller']) && isset($_REQUEST['tab'])) {54.     $_REQUEST['controller'] = strtolower($_REQUEST['tab']);55. }56. 57. // Prepare and trigger admin dispatcher58. Dispatcher::getInstance()->dispatch();

En resumen que al crear un empleado y darle permisos. cuando entro al BO con este empleado y crear un pedido y darle a guardar aparecen estos errores. ¿podría ser porque necesita otro tipo de permisos o mas permisos? o eso, o al pasar de la version 1.5.6 a la  version 1.6 algo se fastidió.

 

Bueno saludos y muchas gracias por tu atención

 

 

NOTA 1: ACABO DE HACER UNA PRUEBA, LE HE DADO TODOS LOS PERMISOS AL EMPLEADO COMERCIAL, LOS MISMOS QUE TIENE EL SUPERADMIN Y HACE LO MISMO. Y ES MAS, ALGO QUE AUN NO SE ME HABIA DADO EL CASO. HE PROBADO A CREAR UN PEDIDO COMO SUPERADMIN Y ME DA EL MISMO ERROR.

 

NOTA 2: ME DIO POR PENSAR Y SE ME HA OCURRIDO COMPARAR 2 BD, UNA LA DE LA VERSION 1.6.1.1 ORIGINAL Y LIMPIA Y LA OTRA LA QUE TENGO EN LOCALHOST DESPUES DE ACTUALIZAR DE LA VERSION 1.6.0.14 A LA VERSION 1.6.1.1  Y DESGRACIADAMENTE HAY DIFERENCIAS.

             

              EN LA TABLA _ORDERS ME FALTAN 2 CAMPOS LLAMADOS ROUND_MODE Y ROUND_TYPE. MENUDO MARRON PORQUE LA ACTUALIZACION DEBERIA HABER INCLUIDO LOS NUEVOS CAMPOS EN LA BD. Y lo peor que ahora voy a tener que tirarme un monton de tiempo comparando todas las tablas y sus campos uno a uno.

Edited by mikel EPALZA (see edit history)
Link to comment
Share on other sites

¿No tendrás un Override la clase Order por casualidad?

 

A esta persona le pasaba igual https://www.prestashop.com/forums/topic/279469-cant-save-order-at-line-268-in-file-classespaymentmodulephp/ y era eso.

 

¿Has probado por casualidad a hacer un pedido en el BO de la 1.6.1.1 limpia?.

 

Y aquí con la 1.6.0.9 también tenían el error: https://www.prestashop.com/forums/topic/393538-after-confirm-order-appear-a-page-with-error-server-500/?hl=%2Bround_mode&do=findComment&comment=1960754

 

La solución es añadir el campo como bien indicas, en este hilo les daba un error 500 con un módulo de pago por lo mismo y con la 1.6.0.11:  https://www.prestashop.com/forums/topic/394979-solucionado-error-500-m%C3%B3dulo-bank-wire-transferencia-bancaria-prestashop-16011/

 

Prueba a añadir la columna y seguimos mirando.

 

Por cierto, eres un crack.

Link to comment
Share on other sites

¿No tendrás un Override la clase Order por casualidad?

 

A esta persona le pasaba igual https://www.prestashop.com/forums/topic/279469-cant-save-order-at-line-268-in-file-classespaymentmodulephp/ y era eso.

 

¿Has probado por casualidad a hacer un pedido en el BO de la 1.6.1.1 limpia?.

 

Y aquí con la 1.6.0.9 también tenían el error: https://www.prestashop.com/forums/topic/393538-after-confirm-order-appear-a-page-with-error-server-500/?hl=%2Bround_mode&do=findComment&comment=1960754

 

La solución es añadir el campo como bien indicas, en este hilo les daba un error 500 con un módulo de pago por lo mismo y con la 1.6.0.11:  https://www.prestashop.com/forums/topic/394979-solucionado-error-500-m%C3%B3dulo-bank-wire-transferencia-bancaria-prestashop-16011/

 

Prueba a añadir la columna y seguimos mirando.

 

Por cierto, eres un crack.

 

Hola de nuevo,

 

gracias por los enlaces de los post aunque despues de verlos dicen lo mismo que yo ya habia descubierto. por otra parte no tengo ningun override ni en localhost ni en la tienda de produccion. Si tengo la carpeta CLASES / ORDER pero dentro solo tienen el archivo index.php pero no tengo ninguna clase order.

 

bueno ahora continuando con nuestro asunto. he terminado de crear todos los campos que me faltaban, más o menos eran unos 30 campos, CASI NADA Y ENCIMA HACERLO A MANO PORQUE NO ENTIENDO DEMASIADO DE SENTENCIAS SQL Y LAS QUE PROBE NO FUNCIONABAN.

 

tras acabar he entrado de nuevo en el BO y ahora no aparece ningún error. Sino que simplemente no hace nada.

 

me explico, entro en pedidos como empleado comercial, selecciono un cliente y me deja elegirlo y añadirlo.

 

primer problema, antes, al añadir el cliente mostraba todos los pedidos y carritos abandonados de ese cliente y ahora no lo hace.

segundo problema, busco un producto y lo encuentra pero cuando pulso el boton añadir no hace nada, ni lo añade ni nada. y el icono del logo de prestashop (el pajarito) se queda dando vueltas sin parar indefinidamente como que esta intentando añadir el producto pero no lo añade.

 

con este problema ya no puedo seguir adelante para probar a finalizar el pedido y ver si aparece o no el problema de codigo que de daba antes. asi que ahora te voy a hacer una pregunta un poco puntillosa.

 

si yo cojo todos los archivos del prestashop orginal (sin instalar o instalado de la tienda limpia)  de la carpetas adminXXXX, clases y controlers y los copio y los pego en mi prestashop.

 

¿ ME CARGARIA MI TIENDA DE LOCAL ?

¿ O POR EL CONTRARIO SE ARREGLARÍAN TODOS LOS PROBLEMAS ?

 

lo pregunto para no cargarme mi tienda en localhost y si sabes que eso puede funcionar lo pruebo.

 

Saludos y muchas gracias por toda tu ayuda.

 

La verdad es que hace tiempo que necesitaba un experto como tu para estas cosas.

Edited by mikel EPALZA (see edit history)
Link to comment
Share on other sites

  • 4 weeks later...

Hola Mikel,

 

¿Tantos campos?.  No se añadieron tantos según pude leer en el archivo de actualizaciones.

 

A ver los cambios lo has hecho en la bd, no en los archivos.  Siempre que hagas copia de los archivos que tienes ahora puedes probar a hacer lo que comentas.  Yo lo he hecho alguna vez con las mismas versiones de PS porque ya lo había cambiado tanto que recordaba cual era el último archivo que toqué y conseguí que volviera a estar como al principio.

 

Siento mucho haber tardado tanto en contestarte pero he estado fuera de España.

Link to comment
Share on other sites

  • nadie locked this topic
Guest
This topic is now closed to further replies.
×
×
  • Create New...