https://api.movidesk.com/public/v1
Consumo del contrato de horas
URL: /timeAgreementConsumption Métodos: GET
Layout
timeAgreementConsumption
Propiedad | Tipo | Tamaño | Obligatorio | Descripción |
---|---|---|---|---|
id | cadena | 64 | Número del consumo del contrato de horas (solo lectura). Este ID corresponde al registro del cierre del período. En períodos abiertos, el ID devuelto es cero, ya que el cierre aún no ha sido generado. | |
name | cadena | 128 | ✓ | Nombre del contrato de horas |
startPeriod | FechaHora | 19 | ✓ | Inicio del período (formato 2019-10-01T00:00:00). Propiedad referente al campo "period", utilizada solo como filtro para buscar más de un período. |
endPeriod | DateTime | 19 | Fin del período. Propiedad referente al campo "period", utilizada solo como filtro para buscar más de un período. | |
baseAmount | decimal | 18,2 | Valor base del contrato | |
exceededHourAmount | decimal | Valor total de horas excedentes | ||
renewalDay | int | 2 | Día de renovación del contrato de horas | |
contractedHours | int | Horas contratadas | ||
differentiateHoursFranchise | bool | Indica si diferencia las horas de la franquicia por actividad | ||
differentiateHoursConsumption | bool | Se usa para diferenciar la franquicia de horas y valores por actividad y tipos de hora | ||
period | Datetime | Período del registro de horas. | ||
consumedHours | double | Horas consumidas en el contrato de horas. Este valor se muestra solo cuando el período está cerrado | ||
discount | decimal | 18,2 | Descuento en el contrato de horas | |
discountType | int | 1 | Porcentaje = 0, Moneda = 1 | |
timeAppointments | appointments | Lista con los registros de horas del contrato de horas. ver documentación | ||
expenses | expenses | Lista con los gastos del contrato de horas. ver documentación | ||
clients | person | Lista con los clientes del contrato de horas. ver documentación |
Puntos importantes
- Obligatoriedad del parámetro
name
: Para búsquedas utilizandostartPeriod
yendPeriod
, es obligatorio especificar el nombre del contrato de horas en la propiedadname
. - Error de falta de
$select
: Siname
no está especificado, la solicitud devolverá un error indicando que el parámetro$select
es necesario. - Prioridad del parámetro
$select
: Si$select
se usa en la solicitud, las propiedadesstartPeriod
,endPeriod
yperiod
se ignorarán, y el sistema devolverá un estado200 - ok
.
Por lo tanto, para una solicitud correcta que busca el consumo de horas, es necesario:
1. Especificar la propiedad name
con el nombre del contrato de horas.
2. No incluir $select
en la solicitud.
3. Utilizar el $filter
para definir el intervalo de period
en formato Datetime
.
Consumo de contrato de horas > Clientes
timeAgreementConsumption.client[n]
Propiedad | Tipo | Tamaño | Obligatorio | Descripción |
---|---|---|---|---|
id | string | 64 | ✓ | Id (Cod. ref.) de la empresa, departamento o persona relacionado como cliente del ticket (Solo lectura). |
businessName | string | 128 | Nombre del cliente (Solo lectura). | |
string | 128 | Correo electrónico principal del cliente (Solo lectura). | ||
phone | string | 128 | Teléfono principal del cliente (Solo lectura). | |
personType | int | 1 | ✓ | Persona = 1, Empresa = 2, Departamento = 4 (Solo lectura). |
profileType | int | 1 | ✓ | Agente = 1, Cliente = 2, Agente y Cliente = 3 (Solo lectura). |
isDeleted | bool | Verdadero si el cliente ha sido eliminado (Solo lectura). | ||
organization | person | Organización del cliente (Solo lectura). ver documentación |
Consumo de contrato de horas » Registros de horas
timeAgreementConsumption.timeAppointments[n]
Propiedad | Tipo | Tamaño | Obligatorio | Descripción |
---|---|---|---|---|
id | int | * | Id (Código) del registro (Solo lectura). *Debe ser proporcionado cuando sea necesario modificar un registro ya existente. | |
activity | string | 128 | ✓ | Debe ser una actividad registrada previamente en el sistema. |
date | datetime | ✓ | Debe contener la fecha con las horas en ceros. Ej: 2016-08-24T00:00:00. | |
periodStart | time | * | Período inicial del registro. Ej: 08:00:00. *Obligatorio cuando se determine por configuración. | |
periodEnd | time | * | Período final del registro. Ej: 12:00:00. *Obligatorio cuando se determine por configuración. | |
workTime | time | * | Tiempo total del registro. Ej: 04:00:00. *Obligatorio cuando se determine por configuración. | |
workTypeName | string | ✓ | Tipo del horario registrado. | |
createdBy | person | ✓ | Datos de la persona que realizó el registro. ver documentación | |
createdByTeam | team | * | Datos del equipo de la persona que registró el gasto. ver documentación |
Consumo de contrato de horas » Gastos
timeAgreementConsumption.expenses[n]
Propiedad | Tipo | Tamaño | Obligatorio | Descripción |
---|---|---|---|---|
id | int | 1 | Campo identificador único del gasto. | |
type | string | 128 | ✓ | Descripción del tipo de gasto relacionado con el registro. |
serviceReport | string | 128 | Número del informe de servicio emitido que contiene el gasto. Solo lectura. | |
createdBy | person | 128 | ✓ | Datos de la persona que registró el gasto. ver documentación |
createdByTeam | team | 128 | Datos del equipo de la persona que registró el gasto. ver documentación | |
date |
datetime UTC |
✓ | Fecha de creación del gasto. Debe ser menor o igual a la fecha actual. La fecha debe estar en formato UTC*. | |
quantity | int | 1 | * | Cantidad del gasto. *Obligatorio cuando no se informe el campo value. |
value | decimal | 18,2 | * |
Valor en moneda registrado. *Obligatorio cuando no se informe el campo quantity. |
Persona
timeAgreementConsumption.timeAppointments[n].createdBy
timeAgreementConsumption.expenses[n].createdBy
timeAgreementConsumption.clients[n].organization
Propiedad | Tipo | Tamaño | Obligatorio | Descripción |
---|---|---|---|---|
id | string | 64 | ✓ | Id (Cod. ref.) de la organización (Solo lectura). |
businessName | string | 128 | Nombre de la organización (Solo lectura). | |
string | 128 | Correo electrónico principal de la organización (Solo lectura). | ||
phone | string | 128 | Teléfono principal de la organización (Solo lectura). | |
personType | int | 1 | Tipo de persona: Persona = 1, Empresa = 2, Departamento = 4 (Solo lectura). | |
profileType | int | 1 | Perfil de la persona: Agente = 1, Cliente = 2, Agente y Cliente = 3 (Solo lectura). |
Equipo
timeAgreementConsumption.timeAppointments[n].createdByTeam
timeAgreementConsumption.expenses[n].createdByTeam
Propiedad | Tipo | Tamaño | Obligatorio | Descripción |
---|---|---|---|---|
id | int | ✓ | Id (Cod. ref.) del equipo (Solo lectura). | |
name | string | 128 | Nombre del equipo (Solo lectura). |
Trabajando con los datos
Para acceder a los datos es necesario que previamente se genere una clave para la API.
Para generar una clave para la API (token), accede a Movidesk, ve a Configuraciones / Cuenta / Parámetros y en la pestaña de entorno haz clic en el botón "Generar nueva clave" si aún no tienes una creada.
Podrás repetir esta operación siempre que quieras generar una nueva clave de acceso, pero recuerda que al generar una nueva clave, todos los programas que utilicen la clave antigua dejarán de funcionar.
Todo el flujo de datos (Visualización) debe tener el formato JSON como se muestra en el ejemplo a continuación:
{
"id": 1,
"name": "contrato",
"baseAmount": 0,
"exceededHourAmount": 0,
"renewalDay": 5,
"contractedHours": 30,
"differentiateHoursFranchise": false,
"differentiateHoursConsumption": false,
"period": "2018-12-01T00:00:00",
"consumedHours": 1,
"discount": null,
"discountType": null,
"timeAppointments": [
{
"id": 222,
"activity": "Actividad",
"date": "2018-12-19T00:00:00",
"periodStart": "10:41:00",
"periodEnd": "11:41:00",
"workTime": "01:00:00",
"workTypeName": "Extra",
"createdBy": {
"id": "571AE126-101B-43C7",
"personType": 1,
"profileType": 3,
"businessName": "Luiz",
"email": "email@movidesk.com",
"phone": "47983232821",
"address": null,
"complement": null,
"cep": null,
"city": null,
"bairro": null,
"number": null,
"reference": null
},
"createdByTeam": {
"id": 1755,
"name": "Nombre"
},
"ticketNumber": "98868",
"actionNumber": 83
}
],
"expenses": [
{
"id": 74,
"type": "tipo",
"serviceReport": "0",
"createdBy": {
"id": "571AE126-101B-43C7",
"personType": 1,
"profileType": 3,
"businessName": "Tatiana ",
"email": "andre.vargas@movidesk.com",
"phone": "47-84211821",
"address": null,
"complement": null,
"cep": null,
"city": null,
"bairro": null,
"number": null,
"reference": null
},
"createdByTeam": null,
"date": "2018-12-18T00:00:00",
"quantity": 14,
"value": 70
}
],
"clients": [
{
"id": "123",
"personType": 2,
"profileType": 2,
"businessName": "Maria",
"email": maria@gmail.com,
"phone": 48996888222,
"isDeleted": false,
"organization": null,
"address": null,
"complement": null,
"cep": null,
"city": null,
"bairro": null,
"number": null,
"reference": null
},
{
"id": "312",
"personType": 2,
"profileType": 2,
"businessName": "João",
"email": joao@gmail.com,
"phone": 48996338222,
"isDeleted": false,
"organization": null,
"address": null,
"complement": null,
"cep": null,
"city": null,
"bairro": null,
"number": null,
"reference": null
}
]
}
Obteniendo datos
Método GET
Obteniendo un único contrato de horas
GET: /timeAgreementConsumption
Parámetros: name, token
Ejemplo:
Obteniendo el contrato con el id 1
GET: https://api.movidesk.com/public/v1/timeAgreementConsumption?token=448f8647-50cb-47e2-995c-b2bbe474486a&name&startPeriod=periodoinicial&endPeriod=periodofinal
Respuesta:
{ "id": 1,
"name": "contrato",
"baseAmount": 0,
"exceededHourAmount": 0,
"renewalDay": 5,
"contractedHours": 30,
... Otras columnas en el formato del diseño anterior }