Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function cancelar_pedido($cont) {
- try {
- if (!function_exists("conectar")){//compruebo si existe la funcion conectar, si existe es porque ya se ha hecho el include de conexion.php
- include 'Conexion.php';
- }
- $cont->PermitirCambiarEstado = false;
- //////////// INICIO VALIDACIÓN WILSON /////////
- //comprueba que exista la Id del pedido y q se pueda modificar.
- $pedido = new Pedido;
- $pedido->id_pedido = $cont->id_pedido;
- $evento = 'listar_pedido_por_id';
- ejecutar_componentes_sin_vista($evento, $pedido);
- if ($pedido->transaccion) {
- //COMPROBACIÓN DE PREREQUISITOS
- if ($pedido->ped_estado != 'A') {
- //Validando si se puede cambiar el estado (seg{un el estado debe cumplir un prerequisito)
- if ($pedido->ped_estado == 'N') {
- $cont->PermitirCambiarEstado = true;
- }elseif ($pedido->ped_estado == 'RC') {
- $cont->mensaje_error = "ERROR. Este pedido ya se encuentra cancelado.";
- }else{
- $cont->mensaje_error = "ERROR. NO se puede CANCELAR este pedido.";
- }
- }else{
- $cont->mensaje_error = "ERROR. No se puede cambiar el estado de un pedido anulado.";
- }
- }else{
- $cont->mensaje_error = "ERROR. Pedido NO encontrado.";
- }
- ///////////FIN VALIDACIÓN WILSON//////////
- if ($cont->PermitirCambiarEstado) {
- $db = conectar();
- //CONFIRMAR PEDIDO
- $coll = $db->selectCollection('del_pedidos');
- $post = array(
- "ped_estado" => 'RC',
- "ped_updatedat" => $cont->ped_updatedat,
- "ped_cancelado_observacion" => $cont->ped_cancelado_observacion,
- );
- if ($coll->update(array('_id' => $cont->id_pedido), array('$set' => $post)))
- {
- $coll = $db->selectCollection('del_codigos');
- if (isset($cont->id_codigo)) {
- //$coll->remove(array('_id' => $cont->id_codigo), array('safe' => True));//ELIMINADO SEGURO
- }elseif($cont->localidad == "DetallePedidoWeb"){
- $coll->remove(array('id_pedido' => $cont->id_pedido), array('safe' => True));//ELIMINADO SEGURO
- }
- $cont->transaccion = true;
- }
- $pedido = new Pedido;
- $pedido->id_pedido = new MongoID($cont->id_pedido);
- $evento = 'listar_pedido_por_id';
- ejecutar_componentes_sin_vista($evento, $pedido);
- $comercio = new Comercio;
- $comercio->id_comercio = new MongoID($pedido->com_codigo);
- $evento = 'listar_comercio_por_id';
- ejecutar_componentes_sin_vista($evento, $comercio);
- //al usuario pedidos@libelulasoft.com que se cancelo
- //Enviar PUSH a usuario final
- $push_usu_final = new NotificacionPush;
- $push_usu_final->id_usuario = $pedido->usu_codigo;//Enviar a los Motorizado
- $push_usu_final->titulo = 'Tu pedido ha sido cancelado por el establecimiento '.$comercio->com_nombre;
- $push_usu_final->texto = 'Tu pedido ha sido cancelado por el establecimiento.';
- $push_usu_final->url = 'http://www.motodelivery.com.ec/';
- $push_usu_final->accion = '';
- $push_usu_final->valor = '';
- $evento = 'enviar_notificacion_push';
- ejecutar_componentes_sin_vista($evento, $push_usu_final);
- $usuario = new Usuario;
- $usuario->id_usuario = $pedido->usu_codigo;
- $evento = 'listar_usuario_por_id';
- ejecutar_componentes_sin_vista($evento, $usuario);
- //////////inicio prepara email ////////////////////
- $cont->AuxPathImagenesEmail = "http://www.motodelivery.com.ec/images/";
- $diccionario_listar_productos = array(
- 'PathImagenesEmail' => $cont->AuxPathImagenesEmail,
- 'titulo-mail' => 'Pedido cancelado',
- 'titulo-mail-2' => '',
- 'detalle-mail' => 'El establecimiento ha cancelado tu pedido No. '.$pedido->ped_codigo.', en unos minutos llegará tu pedido',
- 'detalle-mail-2' => 'Gracias por usar MotoDelivery, que tengas un buen día.',
- );
- if (file_exists('restaurantes/plantillas/mail_general.html')) {
- $plantilla=file_get_contents('restaurantes/plantillas/mail_general.html');
- }elseif (file_exists('../restaurantes/plantillas/mail_general.html')) {
- $plantilla=file_get_contents('../restaurantes/plantillas/mail_general.html');
- }
- foreach ($diccionario_listar_productos as $clave=>$valor) {
- $plantilla = str_replace('{'.$clave.'}', $valor, $plantilla);
- }
- $cont_email = new Usuario;
- $cont_email->asunto = "Pedido ".$pedido->ped_codigo." cancelado por el establecimiento.";
- $cont_email->email = $usuario->usu_email;//""pewil1@yahoo.com""Email del usuario
- $cont_email->mensaje = $plantilla;
- $evento = 'enviar_correo';
- ejecutar_componentes_sin_vista($evento, $cont_email);
- //---------------------------------------------
- //pedido confimado a pedidos
- $diccionario_listar_productos = array(
- 'PathImagenesEmail' => $cont->AuxPathImagenesEmail,
- 'titulo-mail' => 'Pedido CANCELADO',
- 'titulo-mail-2' => '',
- 'detalle-mail' => 'El establecimiento '.$comercio->com_nombre.' ha cancelado el pedido No. '.$pedido->ped_codigo.'',
- 'detalle-mail-2' => '<strong>Observacion:</strong>'.$cont->ped_cancelado_observacion,
- );
- if (file_exists('restaurantes/plantillas/mail_general.html')) {
- $plantilla=file_get_contents('restaurantes/plantillas/mail_general.html');
- }elseif (file_exists('../restaurantes/plantillas/mail_general.html')) {
- $plantilla=file_get_contents('../restaurantes/plantillas/mail_general.html');
- }
- foreach ($diccionario_listar_productos as $clave=>$valor) {
- $plantilla = str_replace('{'.$clave.'}', $valor, $plantilla);
- }
- $cont_email = new Usuario;
- $cont_email->asunto = "Pedido ".$pedido->ped_codigo." CANCELADO por el establecimiento.";
- $cont_email->email = 'doritamemo@hotmail.com';//""pewil1@yahoo.com""Email del usuario
- $cont_email->mensaje = $plantilla;
- $evento = 'enviar_correo';
- ejecutar_componentes_sin_vista($evento, $cont_email);
- }
- //al usuario normal
- }catch(MongoException $e) {
- $cont->transaccion = false;
- echo "No es posible consultar la informacion, error: ".$e->getMessage()."<br>";
- echo "Codigo de error: ".$e->getCode()."<br>";
- }
- return $cont;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement