entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

-1voto

estado reparaciones

Voy a empezar a hacer una tienda de venta de movil y reparaciones de móviles con Prestashop . Quieren poner una sección que se llama "estado de mi reparación" , en la que el cliente ponga el identificador numérico que le han dado al dejar su artículo a reparar y le diga si puede recogerlo o no. Se maneja dos estados , PENDIENTE ó DISPONIBLE EN TIENDA .

El administrador manejará esos estado a través de una bbdd

¿ Me podrías orientar en como podría hacerlo ?

2 Respuestas

0voto

Andhii1293 Puntos2930

Te dan código de la aplicación?, porque si no en todo caso creo que tendrías que pedir información al soporte de la pagina sobre como hacerlo. Por lo que vi es como un wordpress o jomla, pero enfocado a tiendas virtuales.

Si te dan el código de dicha plantilla, seria bueno que especificas el lenguaje que usa, que tipo de conexión a BD tiene, y cosas por demás necesarias para ayudarte.

2votos

MitsuGami Puntos8010

Modelado básico:

Ejemplo resultado de consulta:

Dado el modelo ER anterior, para obtener el resultado mostrado en la imagen solo basta crear una DAO y una simple función
que reciba el ID de la reparación para obtener los datos referentes a esa reparación.

<?php

namespace Acme\Dao;
require_once 'class.ReparationDao.php';

class ReparationDaoImpl implements ReparationDao {

    public function get_by_id(int $id) {
        $sql = "SELECT 
        c.id_cliente,
        c.nombres + ' ' + c.apellidos,
        a.nombre,
        r.fecha,
        r.estado
        FROM Cliente c

        INNER JOIN Reparacion r ON (c.id_cliente = r.id_cliente)
        INNER JOIN Orden_Reparacion ore ON (r.id_reparacion = ore.id_reparacion)
        INNER JOIN Articulo a ON (ore.id_articulo = a.id_articulo)

        WHERE r.id_reparacion = ?";

        $stmt = $connection->prepare(sql);
        $stmt->bind_param("d", $id);
        $stmt->execute();
        $stmt->bind_result($clientId, $client, $article, $date, $state);

        $result = array();
        while($stmt->fetch()) {
            $result['clientId'] = $clientId;
            $result['client'] = $client;
            $result['article'] = $article;
            $result['date'] = $date;
            $result['state'] = $state;
        }

        $stmt->close();
        return $result;
    }

    // otros métodos
}
?>

Finalmente solo creamos un handler para buscar las reparaciones.

<?php
// ReparationHandler.php

require_once 'ruta/hacia/class.ReparationDaoImpl.php';
use Acme\Dao\ReparationDaoImpl as ReparationDao;

$reparation = new ReparationDao();
$reparationId = $_GET['idreparation'];

return json_encode($reparation->get_by_id($reparationId));

Y en tu vista:

<form id="searchReparationForm">
    <input type="text" pattern="[0-9]" placeholder="ID de la reparación" required >
    <button type="submit">Buscar reparación</button>
</form>

<table id="tbl-reparation">
    <thead>
        <tr>
            <th>Id cliente</th>
            <th>Cliente</th>
            <th>Artículo</th>
            <th>Fecha</th>
            <th>Estado</th>
        </tr>
    </thead>
    <tbody>

    </tbody>
</table>

<script src="js/buscar_reparacion.js"></script>

Donde jalas el siguiente código JS para buscar una reparación mediante AJAX.

var searchForm = document.querySelector('#searchReparationForm');
searchForm.addEventListener('submit', function(e) {
    e.preventDefault();
    var reparationId = parseInt(searchForm.querySelector('input').value);
    var ajax = new XMLHttpRequest();
    ajax.open('GET', '/ruta/hacia/ReparationHandler.php?idreparacion=' + reparationId);
    ajax.onload = function() {
        if(ajax.status === 200) {
            $tbody = document.querySelector('#tbl-reparation > tbody');
            var reparationData = JSON.parse(ajax.response);

            var tr = document.createElement('tr');
            for(var key in reparationData) {
                var td = document.createElement('td');
                td.innerHTML = reparationData[key];
                tr.appendChild(td);
            }
            tbody.appendChild(tr);
        } else {
            // mostrar error
        }
    }
    ajax.send();
});

Podrías mejorar todo esto por ejemplo, añadiendo a la tabla reparacion la foreign key de la tabla Tecnicos. Además podrías hacer una pequeña aplicación para los técnicos, donde actualicen el estado (marcando con un check por ejemplo) de X reparación realizada. Cuando se envíe el formulario, se podría enviar un email al cliente informando que su reparación está lista.

Esa es la idea. Solo debes adaptarlo a prestashop y si creando un servicio REST para que las aplicaciones móviles puedan comunicarse con la aplicación php.

1voto

gonzalss comentado

Muchísimas amigo

¿ A ver como integro esto en prestashop ?

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta