Download the PHP package raorsa/sage-middleware-client without Composer

On this page you can find all versions of the php package raorsa/sage-middleware-client. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package sage-middleware-client

Sage Middleware Client

Cliente PHP para consumir la API REST del middleware Laravel que hace de puente entre el ERP interno (SQL Server, tipo Sage) y aplicaciones externas (portal de cliente, apps de técnicos, etc.).

Este paquete no contiene lógica de negocio: cada clase es un wrapper fino sobre un grupo de endpoints del middleware — construye la URL, gestiona el login/token y el caché local, y decodifica la respuesta JSON. Toda la lógica real (filtros, cálculos, formateo de IDs) vive en el middleware.

Instalación

Uso básico

Cada clase de negocio (Clients, Invoices, DeliveryNotesClients, DeliveryNotesProviders, OrdersClients, OrdersProviders, Jobs, Incentives, Articles, Apparatus, CustomClient) extiende Raorsa\SageMiddlewareClient\components\baseClient y se instancia con el método estático make():

make() crea una conexión (login/password/name) nueva; el login contra el middleware (POST /login) es perezoso: solo se dispara la primera vez que se necesita un token, y el token obtenido se cachea (ver "Caché y autenticación" más abajo).

Si ya tienes una connexion construida (por ejemplo, en tests, o para compartir conexión entre varias clases de negocio), usa mount():

Casi todos los métodos aceptan un último parámetro bool $cache = true para omitir el caché de esa llamada concreta ($clients->clients(false)).

Caché y autenticación

Clases disponibles

Cada tabla indica el método del cliente, el endpoint del middleware al que llama y qué devuelve. La semántica completa de cada endpoint (filtros de negocio, formato de identificadores compuestos, etc.) la define el middleware; aquí solo se documenta el contrato desde el punto de vista del cliente.

Clients — clientes del ERP

Método Endpoint Descripción
clients(bool $cache = true) GET /clients/list Diccionario {código: nombre} de clientes válidos.
clientInfo(string $id, bool $cache = true) GET /clients/info/{id} Ficha completa de un cliente (incluye direcciones).
companyInfo(string $domain, bool $cache = true) GET /clients/team/{domain} Cliente asociado a un dominio de email de contacto.
validDomains(bool $cache = true) GET /clients/auth-domains Lista de dominios de email válidos para alta/login de usuarios del portal.

Invoices — facturas de cliente

Método Endpoint Descripción
list(string $team, bool $cache = true) GET /invoice/list/{team} Facturas de un cliente, ordenadas por fecha descendente.
info(string $id, bool $cache = true) GET /invoice/info/{id} Cabecera de una factura. $id es el identificador compuesto Serie-Ejercicio-Numero (p. ej. G-2024-00123).
lines(string $invoiceNumber, bool $cache = true) GET /invoice/lines/{invoiceNumber} Líneas de una factura. ⚠️ $invoiceNumber es solo NumeroFactura (no el identificador compuesto de info): si el número se repite entre series o ejercicios distintos, el middleware puede devolver líneas de más de un documento — bug conocido del lado servidor, pendiente de corregir allí.
download(string $id, bool $cache = true) GET /invoice/download/{id} PDF original de la factura (string binario).
img(string $id, bool $cache = true) GET /invoice/img/{id} Primera página de la factura en JPG.

DeliveryNotesClients / DeliveryNotesProviders — albaranes

Ambas clases comparten toda la lógica en la clase abstracta DeliveryNotes; solo cambia el prefijo de ruta (delivery para albaranes de cliente, delivery-provider para los de proveedor).

Método Endpoint Descripción
list(string $team, bool $cache = true) .../list/{team} Albaranes de un cliente/proveedor.
info(string $id, bool $cache = true) .../info/{id} Cabecera de un albarán. $id admite identificador compuesto parcial (serie, ejercicio y/o número, en cualquier combinación).
lines(string $id, bool $cache = true) .../lines/{id} Líneas de un albarán.
linesSN(string $sn, bool $cache = true) .../lines-sn/{sn} Líneas que coinciden con un número de serie de aparato.
emptyLines(string $year, bool $cache = true) .../empty-lines/{year} Líneas de un año sin número de serie asignado.
find(string $query, bool $cache = true) .../find/{query} Búsqueda flexible (coincidencia parcial) por el mismo identificador compuesto que info.
download(string $id, bool $cache = true) .../download/{id} PDF del albarán.
img(string $id, bool $cache = true) .../img/{id} JPG de la primera página del albarán.

OrdersClients / OrdersProviders — pedidos

Ambas clases comparten toda la lógica en la clase abstracta Orders; solo cambia el prefijo de ruta (orders para pedidos de cliente, orders-provider para los de proveedor). A diferencia de los albaranes, un pedido todavía no se ha servido: no hay número de serie de aparato ni PDF asociado, por lo que no existen linesSN, emptyLines, download ni img.

Método Endpoint Descripción
list(string $team, bool $cache = true) .../list/{team} Pedidos de un cliente/proveedor.
info(string $id, bool $cache = true) .../info/{id} Cabecera de un pedido. $id admite identificador compuesto parcial (serie, ejercicio y/o número, en cualquier combinación).
lines(string $id, bool $cache = true) .../lines/{id} Líneas de un pedido.
find(string $query, bool $cache = true) .../find/{query} Búsqueda flexible (coincidencia parcial) por el mismo identificador compuesto que info.

Jobs — órdenes de trabajo (OT)

Método Endpoint Descripción
list(bool $cache = true) GET /jobs/list OT activas, enriquecidas con número de serie del aparato y operaciones.
listReport(bool $cache = true) GET /jobs/list-report Todas las OT (pasen o no las validaciones internas) con el detalle de cada comprobación — pensado para auditoría, no para uso normal.
info(string $id, bool $cache = true) GET /jobs/job/{id} Una OT concreta. $id es el identificador compuesto Ejercicio-Numero.
getSN(string $id, bool $cache = true) GET /jobs/jobsn/{id} Número de serie del aparato asociado a una OT.
operations(bool $cache = true) GET /jobs/operations Catálogo {idOperación: nombre}.
operationsJobs(bool $cache = true) GET /jobs/operations-jobs Operaciones asignadas a cada OT activa.
importLog(string $date, bool $cache = true) GET /jobs/import/{date} Registros de importación de actividades de una fecha concreta.

Incentives — incentivos SAT

Método Endpoint Descripción
sat(?string $startDate = null, ?string $endDate = null, bool $cache = true) GET /incentives/sat/all[/{startDate}[/{endDate}]] Puntos de incentivo de todos los técnicos, opcionalmente acotado por fechas.
userSAT(string $user, bool $cache = true) GET /incentives/sat/user/{user} Resumen de puntos de un técnico concreto.
satDetails(string $user, ?string $startDate = null, ?string $endDate = null, bool $cache = true) GET /incentives/sat/details/{user}[/{startDate}[/{endDate}]] Igual que userSAT pero con el detalle de líneas que justifica el cálculo.

Articles — artículos

Método Endpoint Descripción
screwTips(bool $cache = true) GET /articles/screw-tip/list Lista de "punteras completas" disponibles.
findScrewTips(string $diameter, bool $cache = true) GET /articles/screw-tip/find/{diameter} Punteras que coinciden con un diámetro.
searchScrewTips(array $diameters, bool $cache = true) GET /articles/screw-tip/search/{diameters} Punteras que coinciden con cualquiera de varios diámetros (el array se envía unido por comas).

Apparatus — aparatos

Estos endpoints no forman parte de la documentación de API compartida por el equipo de middleware; la tabla siguiente refleja únicamente el contrato tal como lo usa este cliente (rutas y parámetros), no las reglas de negocio del servidor.

Método Endpoint Descripción
list(string $client, bool $cache = true) GET /apparatus/{client} Aparatos asociados a un cliente.
interventions(string $id, bool $cache = true) GET /apparatus/{id}/interventions Intervenciones registradas sobre un aparato.
integrated(string $id, bool $cache = true) GET /apparatus/{id}/integrated Componentes/elementos integrados en un aparato.
brandInfo(string $id, bool $cache = true) GET /apparatus/brand/{id} Ficha de una marca de aparato.
brands(bool $cache = true) GET /apparatus/brands Catálogo de marcas.
types(bool $cache = true) GET /apparatus/types Catálogo de tipos de aparato.
warranties(bool $cache = true) GET /apparatus/warranties Catálogo de tipos de garantía.
interventionsType(bool $cache = true) GET /apparatus/interventions-type Catálogo de tipos de intervención.

CustomClient — llamadas ad-hoc

Para endpoints del middleware que aún no tienen wrapper dedicado, o para prototipar:

Testing

Los tests no llaman a un middleware real: usan Symfony\Component\HttpClient\MockHttpClient con respuestas fijas en tests/resources/{clase}/{test}.json (ver tests/Traits/baseTest.php). Al añadir un método nuevo a una clase de negocio, el patrón habitual es añadir un test que use Nombre::mount($this->createConnexion(__FUNCTION__), $this->log, $this->cache) y un fixture JSON correspondiente.

Licencia

Apache-2.0


All versions of sage-middleware-client with dependencies

PHP Build Version
Package Version
Requires php Version >=8.2
symfony/http-client Version ^7.0
raorsa/rw-file-cache Version ^1.0
monolog/monolog Version *
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package raorsa/sage-middleware-client contains the following files

Loading the files please wait ...