Pagos de un Estudiante


Routes

Method URI Action
GET /payments index
GET /payments/{id} show
POST /payments store
PATCH /payments/{id} update
DELETE /payments/{id} delete

Model

{
  "id": 1,
  "date": "2020-04-21",
  "receipt_number": "123456",
  "amount": 500000,           // Este valor se guarda en centimos. 500000 => 500.00
  "ref": null,                // Referencia a que se debe el pago. Ejm -> `inscription_payment`
  "related_type": null,       // Modelo relaciondo el pago. Ejm -> App\Inscription
  "related_id": null,         // Id del modelo relacionado al pago
  "type": 1,                  // Ver tipos de pago
  "status": 1,                // ver estados del pago
  "student_id": 1,            // ID de estudiate al que le pertenece el pago
  "period_id": 1,             // ID de periodo del pago
  "updated_at": "2020-04-19 18:18:48",
  "created_at": "2020-04-19 18:18:48"
}

Tipos de Pago

Tipo Valor Manejado
Efectivo 1
100% Banco 2
Transferencia Bancaria 3
Transferencia de Curso 4
Zelle 5

Estados del Pago

{primary} Un pago aprovado o rechazado se considera atendido

Status Valor Manejado
Pendiente por revisar 1
Aprovado 2
Rechazado 3

Relations

  • Pertecene a un estudiante BelongsTo student
  • Pertenece a un periodo BelongsTo period

{primary} Al obtener un modelo con el metodo show se puede utilizar un query string para cargar las relaciones ?with=relation o ?with=relationA,relationB


Index

{info} Si el usuario autenticado es un estudiante se obtendran solos los pagos realizados por el

Route GET /payments

Policies

  • admin
  • estudiante

Filters extends Query Filters

Filter Description
search=string Busca a traves de numero de comprobante receipt_number
type=int Filtra a traves de tipo de pago.
status=int Filtra a traves del estado del pago.
date=Y-m-d Filtra por la fecha. Soporta operadores de busqueda >, <, >=, <= (se debe colocar al inicio del value)
amount=int Filtra por monto. Soporta operadores de busqueda >, <, >=, <= (se debe colocar al inicio del value)
period=id Obtiene los pagos realizados en un periodo especifico

Store

Consideraciones

  • Si el usuario autenticado es un estudiante se asociara automáticamente al pago
  • Si el usuario autenticado es un admin el pago sera aprobado automáticamente.

Route POST /payments

Policies

  • admin
  • estudiante

Request Body

{
  "date": "required|date",
  "amount": "required|numeric",
  "type": "required|integer",
  "period_id": "required|integer|exists",

  // Solo admin
  "student_id": "required|integer|exists"
}

Update

Route PATCH /payment/{id}

Policies

  • admin

Request Body

{
  "status": "integer|in:1,2,3" // Estados de un pago
}

Delete

{info} Un pago que ya haya sido atendido (aprobado o rechazado) no podrá ser eliminado

Route DELETE /payment/{id}

Policies

  • admin
  • estudiante asociado al pago