Search 1.9 billion lines of Odoo code on GitHub

booking_webservice_methabook

Author: Trey (www.trey.es)
License: AGPL-3
Branch: 8.0
Repository: acysos/trey-addons
Dependencies: account, account_payment_partner, base, booking, booking_base, booking_webservice, purchase, and sale
Languages: HTML (946, 0.0%), JSON (3080500, 99.9%), Markdown (112, 0.0%), PO File (299, 0.0%), Python (1741, 0.1%), and XML (378, 0.0%)
Other repositories: RL-OtherApps/trey-addons, TheCloneMaster/trey-addons, kit9/trey-addons, and treytux/trey-addons

<h1>Booking Webservice Methabook</h1> <h1>WebService:</h1> <p>Son 4 funciones a implementar que iran asociados a un cron:</p> <ol> <li>Procesar JSON de con todas las reservas tras GET a la api</li> <li>PUT a la api con de las reservas, customer y suppliers procesados.</li> <li>PUT para marcar reservas como pagadas.</li> <li><p>PUT para indicar si el cliente tiene credito o no. (Controlar segun las fechas del ultimo barrido realizado y filtrar por todos los clientes con cambios en el campo credit).</p> <ol> <li><strong><em>Procesado de JSON:</em></strong></li> <li>endpoint: erpapi.iboosy.com/export Recorremos el json de forma unidireccional para procesar los bookings que a priori tengan estos dos campos. Cada &quot;booking del json&quot; corresponde al objeto booking ~~~ Crear/actualizar ==&gt; Crear/actualizar ==&gt; Crear/Actualizar solo reservas customer suplier con Customer y supplier | | no incluidos en listas de | | no validos * * Generar lista Generar lista de no validos de no validos ~~~</li> <li><strong><em>Put a la api con las reservas, customer y suppliers procesados.</em></strong></li> <li>endpoint: erpapi.iboosy.com/export/confirm</li> </ol></li> </ol> <p>~~~ { &quot;exportId&quot;: &quot;f4922009-51ba-4ea3-b71f-dc6c5a627079&quot;, &quot;exportedAt&quot;: &quot;2017/06/01 15:32&quot;, &quot;customers&quot;: [ { &quot;account&quot;: &quot;4300000058&quot; } ], &quot;suppliers&quot;: [ { &quot;account&quot;: &quot;4300000058&quot; } ], &quot;bookings&quot;: [ { &quot;locator&quot;: &quot;4300000058&quot; }, { &quot;locator&quot;: &quot;LOCXXXXX&quot; } ] } ~~~</p> <ol> <li><strong><em>Marcar Reserva como pagada</em></strong></li> <li><p>endpoint: erpapi.iboosy.com/booking/paid ~~~ { &quot;bookings&quot;: [ { &quot;locator&quot;: &quot;LOC00012&quot; }, { &quot;locator&quot;: &quot;LOC00013&quot; } ] } ~~~</p></li> <li><p><strong><em>Actualizar Credito del cliente:</em></strong></p></li> <li><p>endpoint: erpapi.iboosy.com/customer/changecredit ~~~ { &quot;Account&quot;:”4300000058”, “WithCredit”: true } ~~~ Casuisticas:</p></li> <li><p>No tiene saldo, limite_research = True (ya se se ha detectado, vuelve a no tener saldo)</p> <ul> <li>si han pasado los dias indicados en la compañia, <em>days</em>to<em>notify</em>customer_: notifica de nuevo</li> </ul></li> </ol> <ul> <li><p>No tiene saldo, <em>credit</em>limit<em>reached = False</em> (Nuevo con sin saldo)</p> <ul> <li><em>credit</em>limit<em>reached = True</em></li> <li>anotamos fecha</li> <li>notificamos api</li> </ul></li> <li><p>Tiene saldo, <em>credit</em>limit<em>reached = True</em> (viene de estar sin saldo, NUEVAmente con saldo)</p> <ul> <li>notificamos tiene saldo:</li> <li>notificamos api</li> </ul></li> <li><p>Tiene saldo, <em>credit</em>limit<em>reached = False</em> (situacion normal)</p> <ul> <li>tiene un 80% ?</li> <li>notificariamos</li> </ul></li> </ul> <h1>Vistas Webservice:</h1> <p>Menu Reservas/ Configuración / Webservice: Existe un webservice para cada acción: - Solole booking: Proceso principal de importación de reservas. - Solole Confirm Booking: Tras el procesamiento de las reservas se indican las reservas, los clientes y los proveedores importados en Odoo. - Solole Paid: Webservice para indicar a la plataforma de iboosy que queda pagada esa reserva. - Solole Change credit: Websevice para indicar si tiene saldo o no el cliente.</p> <h1>Tests:</h1> <p>En el directorio test hay tres ficheros: + El servidor: levanta el &quot;servicio&quot; de la api.</p> <ul> <li>api.py: para las pruebas de la estructura del JSON.</li> <li>test<em>webservice</em>methabook.py : para lanzar el procesado de las reservas</li> </ul> <p>Para realizar las pruebas de <strong>conexión</strong>: + Podemos lanzar el servidor Fake en el propio directorio de tests y nos proporciona la &quot;api&quot; con dos rutas para realizar los GET de exportación de reservas: <code> $ python web-server_api.py </code></p> <ul> <li>http://localhost:8080/ nos da un json con los datos que nos proporciono iboosy al principio. contienen datos insuficiones en campos de customer,booking,suppliers.</li> <li><p>http://localhost:8080/content2 nos da un json con datos reales, pero faltan Zones, para componer el lugar de la reserva.</p></li> <li><p>Siempre tener en cuenta la convivencia de los dos webservice: type=juniper y type=methabook</p></li> </ul> <p><strong>Para realizar las pruebas de carga de datos</strong>: + Descomentamos el boton: + &#39;First Load Bookings Json&#39; situado en <em>booking<em>webservice</em>methabook/views/webservice_view.xml</em>. + Desde Odoo, en apartado Reservas, apartado Webservice Log, vamos a copiar el json que produce el error: * Filtramos por Tipo: reserva, Estado: bookings * Seleccionamos la ultima importación. Pestaña Datos importados y copiamos el contenido entre corchetes para pegarlo en un fichero ubicado en tests para realizar su carga manual. + En la función <strong>first<em>load</em>bookings_json</strong> (<em>trey-addons/booking<em>webservice</em>methabook/models/webservice.py</em>) indicamos el fichero test a cargar y podemos empezar a importar reservas desde el fichero.</p>