Sulfur backend API Reference

El login exitoso de UserService devuelve un Colaborador con un campo "token". Dicho token se debe incluir como header de las llamadas del resto de las operaciones de cada servicio.

API Endpoint
https://sulfur.magnesium.link/api
Schemes: https
Version: 1.1

notificaciones

Get notificaciones

GET /notificaciones
200 OK

successful operation

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "hora": {
      "id": "integer (int64)",
      "dia": "23-01-2017",
      "horaIn": "08:15",
      "horaOut": "17:34",
      "subtotal": "PT23H59M",
      "colaborador": {
        "id": "integer (int64)",
        "email": "string",
        "nombre": "string",
        "cargo": {
          "id": "integer (int64)",
          "nombre": "string",
          "codigo": "string",
          "precioHoraHistoria": [
            {
              "id": "integer (int64)",
              "precioHora": "number (double)",
              "vigenciaDesde": "23-01-2017"
            }
          ]
        },
        "role": "string",
        "token": "string"
      },
      "horaDetalleList": [
        {
          "id": "integer (int64)",
          "proyecto": {
            "id": "integer (int64)",
            "codigo": "string",
            "nombre": "string",
            "prioridad": "integer (int32)"
          },
          "tipoTarea": {
            "id": "integer (int64)",
            "codigo": "string",
            "nombre": "string",
            "prioridad": "integer (int32)"
          },
          "duracion": "PT23H59M",
          "cargo": {
            "id": "integer (int64)",
            "nombre": "string",
            "codigo": "string",
            "precioHoraHistoria": [
              {
                "id": "integer (int64)",
                "precioHora": "number (double)",
                "vigenciaDesde": "23-01-2017"
              }
            ]
          }
        }
      ],
      "completa": "boolean",
      "subtotalDetalles": "PT23H59M"
    },
    "id": "integer (int64)",
    "tipo": "string",
    "texto": "string",
    "colaborador": {
      "id": "integer (int64)",
      "email": "string",
      "nombre": "string",
      "cargo": {
        "id": "integer (int64)",
        "nombre": "string",
        "codigo": "string",
        "precioHoraHistoria": [
          {
            "id": "integer (int64)",
            "precioHora": "number (double)",
            "vigenciaDesde": "23-01-2017"
          }
        ]
      },
      "role": "string",
      "token": "string"
    },
    "fechaHora": "23-01-2017T16:45"
  }
]

Disparar alerta horas sin cargar

PUT /notificaciones/alertas/horas-sin-cargar
default

successful operation

Response Content-Types: application/json

Get notificaciones por colaborador

GET /notificaciones/colaborador/{colaborador_id}/{fecha_ini}/{fecha_fin}
colaborador_id

(no description)

type
integer (int64)
in
path
fecha_ini

(no description)

type
string
in
path
fecha_fin

(no description)

type
string
in
path
200 OK

successful operation

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "hora": {
      "id": "integer (int64)",
      "dia": "23-01-2017",
      "horaIn": "08:15",
      "horaOut": "17:34",
      "subtotal": "PT23H59M",
      "colaborador": {
        "id": "integer (int64)",
        "email": "string",
        "nombre": "string",
        "cargo": {
          "id": "integer (int64)",
          "nombre": "string",
          "codigo": "string",
          "precioHoraHistoria": [
            {
              "id": "integer (int64)",
              "precioHora": "number (double)",
              "vigenciaDesde": "23-01-2017"
            }
          ]
        },
        "role": "string",
        "token": "string"
      },
      "horaDetalleList": [
        {
          "id": "integer (int64)",
          "proyecto": {
            "id": "integer (int64)",
            "codigo": "string",
            "nombre": "string",
            "prioridad": "integer (int32)"
          },
          "tipoTarea": {
            "id": "integer (int64)",
            "codigo": "string",
            "nombre": "string",
            "prioridad": "integer (int32)"
          },
          "duracion": "PT23H59M",
          "cargo": {
            "id": "integer (int64)",
            "nombre": "string",
            "codigo": "string",
            "precioHoraHistoria": [
              {
                "id": "integer (int64)",
                "precioHora": "number (double)",
                "vigenciaDesde": "23-01-2017"
              }
            ]
          }
        }
      ],
      "completa": "boolean",
      "subtotalDetalles": "PT23H59M"
    },
    "id": "integer (int64)",
    "tipo": "string",
    "texto": "string",
    "colaborador": {
      "id": "integer (int64)",
      "email": "string",
      "nombre": "string",
      "cargo": {
        "id": "integer (int64)",
        "nombre": "string",
        "codigo": "string",
        "precioHoraHistoria": [
          {
            "id": "integer (int64)",
            "precioHora": "number (double)",
            "vigenciaDesde": "23-01-2017"
          }
        ]
      },
      "role": "string",
      "token": "string"
    },
    "fechaHora": "23-01-2017T16:45"
  }
]

cargos

Get cargos

GET /cargos
200 OK

successful operation

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "id": "integer (int64)",
    "nombre": "string",
    "codigo": "string",
    "precioHoraHistoria": [
      {
        "id": "integer (int64)",
        "precioHora": "number (double)",
        "vigenciaDesde": "23-01-2017"
      }
    ]
  }
]

Create Cargo

POST /cargos
undefined
Request Content-Types: application/json
Request Example
{
  "id": "integer (int64)",
  "nombre": "string",
  "codigo": "string",
  "precioHoraHistoria": [
    {
      "id": "integer (int64)",
      "precioHora": "number (double)",
      "vigenciaDesde": "23-01-2017"
    }
  ]
}
200 OK

successful operation

409 Conflict

Código o Id ya existe

500 Internal Server Error

Error interno

Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "integer (int64)",
  "nombre": "string",
  "codigo": "string",
  "precioHoraHistoria": [
    {
      "id": "integer (int64)",
      "precioHora": "number (double)",
      "vigenciaDesde": "23-01-2017"
    }
  ]
}

Get Cargo

GET /cargos/{id}
id

(no description)

type
integer (int64)
in
path
200 OK

successful operation

404 Not Found

Id no encontrado

Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "integer (int64)",
  "nombre": "string",
  "codigo": "string",
  "precioHoraHistoria": [
    {
      "id": "integer (int64)",
      "precioHora": "number (double)",
      "vigenciaDesde": "23-01-2017"
    }
  ]
}

Actualizar precioHora Cargo

POST /cargos/{id}
undefined
id

(no description)

type
integer (int64)
in
path
Request Content-Types: application/json
Request Example
{
  "id": "integer (int64)",
  "precioHora": "number (double)",
  "vigenciaDesde": "23-01-2017"
}
200 OK

successful operation

304 Not Modified

No modificado

409 Conflict

Código o Id ya existe

Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "integer (int64)",
  "nombre": "string",
  "codigo": "string",
  "precioHoraHistoria": [
    {
      "id": "integer (int64)",
      "precioHora": "number (double)",
      "vigenciaDesde": "23-01-2017"
    }
  ]
}

Edit cargo

PUT /cargos/{id}
undefined
id

(no description)

type
integer (int64)
in
path
Request Content-Types: application/json
Request Example
{
  "id": "integer (int64)",
  "nombre": "string",
  "codigo": "string",
  "precioHoraHistoria": [
    {
      "id": "integer (int64)",
      "precioHora": "number (double)",
      "vigenciaDesde": "23-01-2017"
    }
  ]
}
200 OK

successful operation

304 Not Modified

Error: objeto no modificado

Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "integer (int64)",
  "nombre": "string",
  "codigo": "string",
  "precioHoraHistoria": [
    {
      "id": "integer (int64)",
      "precioHora": "number (double)",
      "vigenciaDesde": "23-01-2017"
    }
  ]
}

configuracion

Get email destinatarios

GET /configuracion/destinatarios
200 OK

successful operation

Response Content-Types: application/json
Response Example (200 OK)
[
  "string"
]

Add email destinatario

POST /configuracion/destinatarios
Request Content-Types: application/json
Request Example
"string"
200 OK

successful operation

Response Content-Types: application/json
Response Example (200 OK)
[
  "string"
]

Delete email destinatario

DELETE /configuracion/destinatarios
Request Content-Types: application/json
Request Example
"string"
200 OK

successful operation

Response Content-Types: application/json
Response Example (200 OK)
[
  "string"
]

Get email enabled

GET /configuracion/mail
default

successful operation

Response Content-Types: application/json

Set mail enabled

POST /configuracion/mail
Request Content-Types: application/json
Request Example
"boolean"
500 Internal Server Error

Error interno

Response Content-Types: application/json

Get email periodicidad

GET /configuracion/periodicidad
default

successful operation

Response Content-Types: application/json

Set mail periodicidad

POST /configuracion/periodicidad
Request Content-Types: application/json
Request Example
"integer (int64)"
500 Internal Server Error

Error interno

Response Content-Types: application/json

status

Get system status

GET /status

successful operation

Response Content-Types: application/json
Response Example (200 OK)
{
  "project": "string",
  "version": "string",
  "node": "string",
  "swaggerUrl": "string",
  "docsUrl": "string"
}

GET /status/alertas

default

successful operation

Response Content-Types: application/json

reportes

Get estimaciones

GET /reportes
200 OK

successful operation

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "id": "integer (int64)",
    "proyecto": {
      "id": "integer (int64)",
      "codigo": "string",
      "nombre": "string",
      "prioridad": "integer (int32)"
    },
    "descripcion": "string",
    "fecha": "23-01-2017",
    "estimacionCargos": [
      {
        "id": "integer (int64)",
        "cargo": {
          "id": "integer (int64)",
          "nombre": "string",
          "codigo": "string",
          "precioHoraHistoria": [
            {
              "id": "integer (int64)",
              "precioHora": "number (double)",
              "vigenciaDesde": "23-01-2017"
            }
          ]
        },
        "precioTotal": "number (double)",
        "estimacionTipoTareas": [
          {
            "id": "integer (int64)",
            "tipoTarea": {
              "id": "integer (int64)",
              "codigo": "string",
              "nombre": "string",
              "prioridad": "integer (int32)"
            },
            "duracion": "PT23H59M"
          }
        ]
      }
    ]
  }
]

Estimaciones de Proyecto y TipoTarea agrupadas por Cargo

GET /reportes/estimaciones/proyecto/{proyecto_id}/tarea/{tarea_id}
proyecto_id

(no description)

type
integer (int64)
in
path
tarea_id

(no description)

type
integer (int64)
in
path

successful operation

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "proyecto": {
      "id": "integer (int64)",
      "codigo": "string",
      "nombre": "string",
      "prioridad": "integer (int32)"
    },
    "tipoTarea": {
      "id": "integer (int64)",
      "codigo": "string",
      "nombre": "string",
      "prioridad": "integer (int32)"
    },
    "cargo": {
      "id": "integer (int64)",
      "nombre": "string",
      "codigo": "string",
      "precioHoraHistoria": [
        {
          "id": "integer (int64)",
          "precioHora": "number (double)",
          "vigenciaDesde": "23-01-2017"
        }
      ]
    },
    "precioTotal": "number (double)"
  }
]

Reporte de horas cargadas por fechas

GET /reportes/horas/fechas/{fecha_ini}/{fecha_fin}
fecha_ini

(no description)

type
string
in
path
fecha_fin

(no description)

type
string
in
path
200 OK

successful operation

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "cantidadHoras": "number (double)",
    "precioTotal": "number (double)",
    "cantidadHorasEstimadas": "number (double)",
    "precioEstimado": "number (double)",
    "proyecto": {
      "id": "integer (int64)",
      "codigo": "string",
      "nombre": "string",
      "prioridad": "integer (int32)"
    },
    "tipoTarea": {
      "id": "integer (int64)",
      "codigo": "string",
      "nombre": "string",
      "prioridad": "integer (int32)"
    },
    "cargo": {
      "id": "integer (int64)",
      "nombre": "string",
      "codigo": "string",
      "precioHoraHistoria": [
        {
          "id": "integer (int64)",
          "precioHora": "number (double)",
          "vigenciaDesde": "23-01-2017"
        }
      ]
    }
  }
]

Reporte de horas cargadas por fechas y proyecto

GET /reportes/horas/fechas/{fecha_ini}/{fecha_fin}/proyecto/{proyecto_id}
fecha_ini

(no description)

type
string
in
path
fecha_fin

(no description)

type
string
in
path
proyecto_id

(no description)

type
integer (int64)
in
path
200 OK

successful operation

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "cantidadHoras": "number (double)",
    "precioTotal": "number (double)",
    "cantidadHorasEstimadas": "number (double)",
    "precioEstimado": "number (double)",
    "proyecto": {
      "id": "integer (int64)",
      "codigo": "string",
      "nombre": "string",
      "prioridad": "integer (int32)"
    },
    "tipoTarea": {
      "id": "integer (int64)",
      "codigo": "string",
      "nombre": "string",
      "prioridad": "integer (int32)"
    },
    "cargo": {
      "id": "integer (int64)",
      "nombre": "string",
      "codigo": "string",
      "precioHoraHistoria": [
        {
          "id": "integer (int64)",
          "precioHora": "number (double)",
          "vigenciaDesde": "23-01-2017"
        }
      ]
    }
  }
]

Horas de Proyecto agrupadas por Cargo

GET /reportes/horas/proyecto/{proyecto_id}
proyecto_id

(no description)

type
integer (int64)
in
path
200 OK

successful operation

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "cantidadHoras": "number (double)",
    "precioTotal": "number (double)",
    "cantidadHorasEstimadas": "number (double)",
    "precioEstimado": "number (double)",
    "proyecto": {
      "id": "integer (int64)",
      "codigo": "string",
      "nombre": "string",
      "prioridad": "integer (int32)"
    },
    "tipoTarea": {
      "id": "integer (int64)",
      "codigo": "string",
      "nombre": "string",
      "prioridad": "integer (int32)"
    },
    "cargo": {
      "id": "integer (int64)",
      "nombre": "string",
      "codigo": "string",
      "precioHoraHistoria": [
        {
          "id": "integer (int64)",
          "precioHora": "number (double)",
          "vigenciaDesde": "23-01-2017"
        }
      ]
    }
  }
]

Horas de Proyecto y TipoTarea agrupadas por Cargo

GET /reportes/horas/proyecto/{proyecto_id}/tarea/{tarea_id}
proyecto_id

(no description)

type
integer (int64)
in
path
tarea_id

(no description)

type
integer (int64)
in
path
200 OK

successful operation

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "cantidadHoras": "number (double)",
    "precioTotal": "number (double)",
    "cantidadHorasEstimadas": "number (double)",
    "precioEstimado": "number (double)",
    "proyecto": {
      "id": "integer (int64)",
      "codigo": "string",
      "nombre": "string",
      "prioridad": "integer (int32)"
    },
    "tipoTarea": {
      "id": "integer (int64)",
      "codigo": "string",
      "nombre": "string",
      "prioridad": "integer (int32)"
    },
    "cargo": {
      "id": "integer (int64)",
      "nombre": "string",
      "codigo": "string",
      "precioHoraHistoria": [
        {
          "id": "integer (int64)",
          "precioHora": "number (double)",
          "vigenciaDesde": "23-01-2017"
        }
      ]
    }
  }
]

Horas de Proyecto, TipoTarea y Cargo agrupadas por Colaborador

GET /reportes/horas/proyecto/{proyecto_id}/tarea/{tarea_id}/cargo/{cargo_id}
proyecto_id

(no description)

type
integer (int64)
in
path
tarea_id

(no description)

type
integer (int64)
in
path
cargo_id

(no description)

type
integer (int64)
in
path
200 OK

successful operation

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "cantidadHoras": "number (double)",
    "precioTotal": "number (double)",
    "cantidadHorasEstimadas": "number (double)",
    "precioEstimado": "number (double)",
    "proyecto": {
      "id": "integer (int64)",
      "codigo": "string",
      "nombre": "string",
      "prioridad": "integer (int32)"
    },
    "tipoTarea": {
      "id": "integer (int64)",
      "codigo": "string",
      "nombre": "string",
      "prioridad": "integer (int32)"
    },
    "cargo": {
      "id": "integer (int64)",
      "nombre": "string",
      "codigo": "string",
      "precioHoraHistoria": [
        {
          "id": "integer (int64)",
          "precioHora": "number (double)",
          "vigenciaDesde": "23-01-2017"
        }
      ]
    }
  }
]

tareas

Get tipos tarea

GET /tareas
200 OK

successful operation

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "id": "integer (int64)",
    "codigo": "string",
    "nombre": "string",
    "prioridad": "integer (int32)"
  }
]

Create Tipo Tarea

POST /tareas
undefined
Request Content-Types: application/json
Request Example
{
  "id": "integer (int64)",
  "codigo": "string",
  "nombre": "string",
  "prioridad": "integer (int32)"
}
200 OK

successful operation

409 Conflict

Código o Id ya existe

500 Internal Server Error

Error interno

Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "integer (int64)",
  "codigo": "string",
  "nombre": "string",
  "prioridad": "integer (int32)"
}

Get tipo Tarea

GET /tareas/{id}
id

(no description)

type
integer (int64)
in
path
200 OK

successful operation

404 Not Found

Id no encontrado

Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "integer (int64)",
  "codigo": "string",
  "nombre": "string",
  "prioridad": "integer (int32)"
}

Edit tipo area

PUT /tareas/{id}
undefined
id

(no description)

type
integer (int64)
in
path
Request Content-Types: application/json
Request Example
{
  "id": "integer (int64)",
  "codigo": "string",
  "nombre": "string",
  "prioridad": "integer (int32)"
}
200 OK

successful operation

304 Not Modified

Error: objeto no modificado

Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "integer (int64)",
  "codigo": "string",
  "nombre": "string",
  "prioridad": "integer (int32)"
}

colaboradores

Get colaboradores

GET /colaboradores
200 OK

successful operation

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "id": "integer (int64)",
    "email": "string",
    "nombre": "string",
    "cargo": {
      "id": "integer (int64)",
      "nombre": "string",
      "codigo": "string",
      "precioHoraHistoria": [
        {
          "id": "integer (int64)",
          "precioHora": "number (double)",
          "vigenciaDesde": "23-01-2017"
        }
      ]
    },
    "role": "string",
    "token": "string"
  }
]

Create colaborador

POST /colaboradores
undefined
Request Content-Types: application/json
Request Example
{
  "id": "integer (int64)",
  "email": "string",
  "nombre": "string",
  "cargo": {
    "id": "integer (int64)",
    "nombre": "string",
    "codigo": "string",
    "precioHoraHistoria": [
      {
        "id": "integer (int64)",
        "precioHora": "number (double)",
        "vigenciaDesde": "23-01-2017"
      }
    ]
  },
  "role": "string",
  "token": "string"
}
200 OK

successful operation

Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "integer (int64)",
  "email": "string",
  "nombre": "string",
  "cargo": {
    "id": "integer (int64)",
    "nombre": "string",
    "codigo": "string",
    "precioHoraHistoria": [
      {
        "id": "integer (int64)",
        "precioHora": "number (double)",
        "vigenciaDesde": "23-01-2017"
      }
    ]
  },
  "role": "string",
  "token": "string"
}

Get colaboradores por cargo

POST /colaboradores/cargo
undefined
Request Content-Types: application/json
Request Example
{
  "id": "integer (int64)",
  "nombre": "string",
  "codigo": "string",
  "precioHoraHistoria": [
    {
      "id": "integer (int64)",
      "precioHora": "number (double)",
      "vigenciaDesde": "23-01-2017"
    }
  ]
}
200 OK

successful operation

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "id": "integer (int64)",
    "email": "string",
    "nombre": "string",
    "cargo": {
      "id": "integer (int64)",
      "nombre": "string",
      "codigo": "string",
      "precioHoraHistoria": [
        {
          "id": "integer (int64)",
          "precioHora": "number (double)",
          "vigenciaDesde": "23-01-2017"
        }
      ]
    },
    "role": "string",
    "token": "string"
  }
]

Get colaborador

GET /colaboradores/{id}
id

(no description)

type
integer (int64)
in
path
200 OK

successful operation

Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "integer (int64)",
  "email": "string",
  "nombre": "string",
  "cargo": {
    "id": "integer (int64)",
    "nombre": "string",
    "codigo": "string",
    "precioHoraHistoria": [
      {
        "id": "integer (int64)",
        "precioHora": "number (double)",
        "vigenciaDesde": "23-01-2017"
      }
    ]
  },
  "role": "string",
  "token": "string"
}

Edit colaborador

PUT /colaboradores/{id}
undefined
id

(no description)

type
integer (int64)
in
path
Request Content-Types: application/json
Request Example
{
  "id": "integer (int64)",
  "email": "string",
  "nombre": "string",
  "cargo": {
    "id": "integer (int64)",
    "nombre": "string",
    "codigo": "string",
    "precioHoraHistoria": [
      {
        "id": "integer (int64)",
        "precioHora": "number (double)",
        "vigenciaDesde": "23-01-2017"
      }
    ]
  },
  "role": "string",
  "token": "string"
}
200 OK

successful operation

Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "integer (int64)",
  "email": "string",
  "nombre": "string",
  "cargo": {
    "id": "integer (int64)",
    "nombre": "string",
    "codigo": "string",
    "precioHoraHistoria": [
      {
        "id": "integer (int64)",
        "precioHora": "number (double)",
        "vigenciaDesde": "23-01-2017"
      }
    ]
  },
  "role": "string",
  "token": "string"
}

auth

Authenticate user

POST /users/login
email

(no description)

type
string
in
formData
password

(no description)

type
string
in
formData
200 OK

successful operation

Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "integer (int64)",
  "email": "string",
  "nombre": "string",
  "cargo": {
    "id": "integer (int64)",
    "nombre": "string",
    "codigo": "string",
    "precioHoraHistoria": [
      {
        "id": "integer (int64)",
        "precioHora": "number (double)",
        "vigenciaDesde": "23-01-2017"
      }
    ]
  },
  "role": "string",
  "token": "string"
}

Cambiar password

PUT /users/recuperar
token

(no description)

type
string
in
formData
password

(no description)

type
string
in
formData
200 OK

successful operation

Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "integer (int64)",
  "email": "string",
  "nombre": "string",
  "cargo": {
    "id": "integer (int64)",
    "nombre": "string",
    "codigo": "string",
    "precioHoraHistoria": [
      {
        "id": "integer (int64)",
        "precioHora": "number (double)",
        "vigenciaDesde": "23-01-2017"
      }
    ]
  },
  "role": "string",
  "token": "string"
}

Recuperar password

POST /users/recuperar/{email}
email

(no description)

type
string
in
path
default

successful operation

Response Content-Types: application/json

Recuperar email

GET /users/recuperar/{token}
token

(no description)

type
string
in
path
default

successful operation

Response Content-Types: application/json

horas

Create hora

POST /horas
undefined
Request Content-Types: application/json
Request Example
{
  "id": "integer (int64)",
  "dia": "23-01-2017",
  "horaIn": "08:15",
  "horaOut": "17:34",
  "colaborador": {
    "id": "integer (int64)",
    "email": "string",
    "nombre": "string",
    "cargo": {
      "id": "integer (int64)",
      "nombre": "string",
      "codigo": "string",
      "precioHoraHistoria": [
        {
          "id": "integer (int64)",
          "precioHora": "number (double)",
          "vigenciaDesde": "23-01-2017"
        }
      ]
    },
    "role": "string",
    "token": "string"
  },
  "horaDetalleList": [
    {
      "id": "integer (int64)",
      "proyecto": {
        "id": "integer (int64)",
        "codigo": "string",
        "nombre": "string",
        "prioridad": "integer (int32)"
      },
      "tipoTarea": {
        "id": "integer (int64)",
        "codigo": "string",
        "nombre": "string",
        "prioridad": "integer (int32)"
      },
      "duracion": "PT23H59M",
      "cargo": {
        "id": "integer (int64)",
        "nombre": "string",
        "codigo": "string",
        "precioHoraHistoria": [
          {
            "id": "integer (int64)",
            "precioHora": "number (double)",
            "vigenciaDesde": "23-01-2017"
          }
        ]
      }
    }
  ]
}
200 OK

successful operation

400 Bad Request

Objeto inválido

401 Unauthorized

No Autorizado

409 Conflict

Código o Id ya existe

500 Internal Server Error

Error interno

Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "integer (int64)",
  "dia": "23-01-2017",
  "horaIn": "08:15",
  "horaOut": "17:34",
  "subtotal": "PT23H59M",
  "colaborador": {
    "id": "integer (int64)",
    "email": "string",
    "nombre": "string",
    "cargo": {
      "id": "integer (int64)",
      "nombre": "string",
      "codigo": "string",
      "precioHoraHistoria": [
        {
          "id": "integer (int64)",
          "precioHora": "number (double)",
          "vigenciaDesde": "23-01-2017"
        }
      ]
    },
    "role": "string",
    "token": "string"
  },
  "horaDetalleList": [
    {
      "id": "integer (int64)",
      "proyecto": {
        "id": "integer (int64)",
        "codigo": "string",
        "nombre": "string",
        "prioridad": "integer (int32)"
      },
      "tipoTarea": {
        "id": "integer (int64)",
        "codigo": "string",
        "nombre": "string",
        "prioridad": "integer (int32)"
      },
      "duracion": "PT23H59M",
      "cargo": {
        "id": "integer (int64)",
        "nombre": "string",
        "codigo": "string",
        "precioHoraHistoria": [
          {
            "id": "integer (int64)",
            "precioHora": "number (double)",
            "vigenciaDesde": "23-01-2017"
          }
        ]
      }
    }
  ],
  "completa": "boolean",
  "subtotalDetalles": "PT23H59M"
}

Get horas por usuario y fechas

GET /horas/user/{id}/{fecha_ini}/{fecha_fin}
id

(no description)

type
integer (int64)
in
path
fecha_ini

(no description)

type
string
in
path
fecha_fin

(no description)

type
string
in
path
200 OK

successful operation

400 Bad Request

Objeto inválido

401 Unauthorized

No Autorizado

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "id": "integer (int64)",
    "dia": "23-01-2017",
    "horaIn": "08:15",
    "horaOut": "17:34",
    "subtotal": "PT23H59M",
    "colaborador": {
      "id": "integer (int64)",
      "email": "string",
      "nombre": "string",
      "cargo": {
        "id": "integer (int64)",
        "nombre": "string",
        "codigo": "string",
        "precioHoraHistoria": [
          {
            "id": "integer (int64)",
            "precioHora": "number (double)",
            "vigenciaDesde": "23-01-2017"
          }
        ]
      },
      "role": "string",
      "token": "string"
    },
    "horaDetalleList": [
      {
        "id": "integer (int64)",
        "proyecto": {
          "id": "integer (int64)",
          "codigo": "string",
          "nombre": "string",
          "prioridad": "integer (int32)"
        },
        "tipoTarea": {
          "id": "integer (int64)",
          "codigo": "string",
          "nombre": "string",
          "prioridad": "integer (int32)"
        },
        "duracion": "PT23H59M",
        "cargo": {
          "id": "integer (int64)",
          "nombre": "string",
          "codigo": "string",
          "precioHoraHistoria": [
            {
              "id": "integer (int64)",
              "precioHora": "number (double)",
              "vigenciaDesde": "23-01-2017"
            }
          ]
        }
      }
    ],
    "completa": "boolean",
    "subtotalDetalles": "PT23H59M"
  }
]

Get horas por rango de fecha

GET /horas/{fecha_ini}/{fecha_fin}
fecha_ini

(no description)

type
string
in
path
fecha_fin

(no description)

type
string
in
path
200 OK

successful operation

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "id": "integer (int64)",
    "dia": "23-01-2017",
    "horaIn": "08:15",
    "horaOut": "17:34",
    "subtotal": "PT23H59M",
    "colaborador": {
      "id": "integer (int64)",
      "email": "string",
      "nombre": "string",
      "cargo": {
        "id": "integer (int64)",
        "nombre": "string",
        "codigo": "string",
        "precioHoraHistoria": [
          {
            "id": "integer (int64)",
            "precioHora": "number (double)",
            "vigenciaDesde": "23-01-2017"
          }
        ]
      },
      "role": "string",
      "token": "string"
    },
    "horaDetalleList": [
      {
        "id": "integer (int64)",
        "proyecto": {
          "id": "integer (int64)",
          "codigo": "string",
          "nombre": "string",
          "prioridad": "integer (int32)"
        },
        "tipoTarea": {
          "id": "integer (int64)",
          "codigo": "string",
          "nombre": "string",
          "prioridad": "integer (int32)"
        },
        "duracion": "PT23H59M",
        "cargo": {
          "id": "integer (int64)",
          "nombre": "string",
          "codigo": "string",
          "precioHoraHistoria": [
            {
              "id": "integer (int64)",
              "precioHora": "number (double)",
              "vigenciaDesde": "23-01-2017"
            }
          ]
        }
      }
    ],
    "completa": "boolean",
    "subtotalDetalles": "PT23H59M"
  }
]

Get hora

GET /horas/{id}
id

(no description)

type
integer (int64)
in
path
200 OK

successful operation

404 Not Found

Id no encontrado

Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "integer (int64)",
  "dia": "23-01-2017",
  "horaIn": "08:15",
  "horaOut": "17:34",
  "subtotal": "PT23H59M",
  "colaborador": {
    "id": "integer (int64)",
    "email": "string",
    "nombre": "string",
    "cargo": {
      "id": "integer (int64)",
      "nombre": "string",
      "codigo": "string",
      "precioHoraHistoria": [
        {
          "id": "integer (int64)",
          "precioHora": "number (double)",
          "vigenciaDesde": "23-01-2017"
        }
      ]
    },
    "role": "string",
    "token": "string"
  },
  "horaDetalleList": [
    {
      "id": "integer (int64)",
      "proyecto": {
        "id": "integer (int64)",
        "codigo": "string",
        "nombre": "string",
        "prioridad": "integer (int32)"
      },
      "tipoTarea": {
        "id": "integer (int64)",
        "codigo": "string",
        "nombre": "string",
        "prioridad": "integer (int32)"
      },
      "duracion": "PT23H59M",
      "cargo": {
        "id": "integer (int64)",
        "nombre": "string",
        "codigo": "string",
        "precioHoraHistoria": [
          {
            "id": "integer (int64)",
            "precioHora": "number (double)",
            "vigenciaDesde": "23-01-2017"
          }
        ]
      }
    }
  ],
  "completa": "boolean",
  "subtotalDetalles": "PT23H59M"
}

Edit hora

PUT /horas/{id}
undefined
id

(no description)

type
integer (int64)
in
path
Request Content-Types: application/json
Request Example
{
  "id": "integer (int64)",
  "dia": "23-01-2017",
  "horaIn": "08:15",
  "horaOut": "17:34",
  "colaborador": {
    "id": "integer (int64)",
    "email": "string",
    "nombre": "string",
    "cargo": {
      "id": "integer (int64)",
      "nombre": "string",
      "codigo": "string",
      "precioHoraHistoria": [
        {
          "id": "integer (int64)",
          "precioHora": "number (double)",
          "vigenciaDesde": "23-01-2017"
        }
      ]
    },
    "role": "string",
    "token": "string"
  },
  "horaDetalleList": [
    {
      "id": "integer (int64)",
      "proyecto": {
        "id": "integer (int64)",
        "codigo": "string",
        "nombre": "string",
        "prioridad": "integer (int32)"
      },
      "tipoTarea": {
        "id": "integer (int64)",
        "codigo": "string",
        "nombre": "string",
        "prioridad": "integer (int32)"
      },
      "duracion": "PT23H59M",
      "cargo": {
        "id": "integer (int64)",
        "nombre": "string",
        "codigo": "string",
        "precioHoraHistoria": [
          {
            "id": "integer (int64)",
            "precioHora": "number (double)",
            "vigenciaDesde": "23-01-2017"
          }
        ]
      }
    }
  ]
}
200 OK

successful operation

304 Not Modified

Error: objeto no modificado

Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "integer (int64)",
  "dia": "23-01-2017",
  "horaIn": "08:15",
  "horaOut": "17:34",
  "subtotal": "PT23H59M",
  "colaborador": {
    "id": "integer (int64)",
    "email": "string",
    "nombre": "string",
    "cargo": {
      "id": "integer (int64)",
      "nombre": "string",
      "codigo": "string",
      "precioHoraHistoria": [
        {
          "id": "integer (int64)",
          "precioHora": "number (double)",
          "vigenciaDesde": "23-01-2017"
        }
      ]
    },
    "role": "string",
    "token": "string"
  },
  "horaDetalleList": [
    {
      "id": "integer (int64)",
      "proyecto": {
        "id": "integer (int64)",
        "codigo": "string",
        "nombre": "string",
        "prioridad": "integer (int32)"
      },
      "tipoTarea": {
        "id": "integer (int64)",
        "codigo": "string",
        "nombre": "string",
        "prioridad": "integer (int32)"
      },
      "duracion": "PT23H59M",
      "cargo": {
        "id": "integer (int64)",
        "nombre": "string",
        "codigo": "string",
        "precioHoraHistoria": [
          {
            "id": "integer (int64)",
            "precioHora": "number (double)",
            "vigenciaDesde": "23-01-2017"
          }
        ]
      }
    }
  ],
  "completa": "boolean",
  "subtotalDetalles": "PT23H59M"
}

estimacion

Get estimaciones

GET /estimaciones
200 OK

successful operation

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "id": "integer (int64)",
    "proyecto": {
      "id": "integer (int64)",
      "codigo": "string",
      "nombre": "string",
      "prioridad": "integer (int32)"
    },
    "descripcion": "string",
    "fecha": "23-01-2017",
    "estimacionCargos": [
      {
        "id": "integer (int64)",
        "cargo": {
          "id": "integer (int64)",
          "nombre": "string",
          "codigo": "string",
          "precioHoraHistoria": [
            {
              "id": "integer (int64)",
              "precioHora": "number (double)",
              "vigenciaDesde": "23-01-2017"
            }
          ]
        },
        "precioTotal": "number (double)",
        "estimacionTipoTareas": [
          {
            "id": "integer (int64)",
            "tipoTarea": {
              "id": "integer (int64)",
              "codigo": "string",
              "nombre": "string",
              "prioridad": "integer (int32)"
            },
            "duracion": "PT23H59M"
          }
        ]
      }
    ]
  }
]

Create estimacion

POST /estimaciones
undefined
Request Content-Types: application/json
Request Example
{
  "id": "integer (int64)",
  "proyecto": {
    "id": "integer (int64)",
    "codigo": "string",
    "nombre": "string",
    "prioridad": "integer (int32)"
  },
  "descripcion": "string",
  "fecha": "23-01-2017",
  "estimacionCargos": [
    {
      "id": "integer (int64)",
      "cargo": {
        "id": "integer (int64)",
        "nombre": "string",
        "codigo": "string",
        "precioHoraHistoria": [
          {
            "id": "integer (int64)",
            "precioHora": "number (double)",
            "vigenciaDesde": "23-01-2017"
          }
        ]
      },
      "precioTotal": "number (double)",
      "estimacionTipoTareas": [
        {
          "id": "integer (int64)",
          "tipoTarea": {
            "id": "integer (int64)",
            "codigo": "string",
            "nombre": "string",
            "prioridad": "integer (int32)"
          },
          "duracion": "PT23H59M"
        }
      ]
    }
  ]
}
200 OK

successful operation

400 Bad Request

Objeto inválido

401 Unauthorized

No Autorizado

409 Conflict

Código o Id ya existe

500 Internal Server Error

Error interno

Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "integer (int64)",
  "proyecto": {
    "id": "integer (int64)",
    "codigo": "string",
    "nombre": "string",
    "prioridad": "integer (int32)"
  },
  "descripcion": "string",
  "fecha": "23-01-2017",
  "estimacionCargos": [
    {
      "id": "integer (int64)",
      "cargo": {
        "id": "integer (int64)",
        "nombre": "string",
        "codigo": "string",
        "precioHoraHistoria": [
          {
            "id": "integer (int64)",
            "precioHora": "number (double)",
            "vigenciaDesde": "23-01-2017"
          }
        ]
      },
      "precioTotal": "number (double)",
      "estimacionTipoTareas": [
        {
          "id": "integer (int64)",
          "tipoTarea": {
            "id": "integer (int64)",
            "codigo": "string",
            "nombre": "string",
            "prioridad": "integer (int32)"
          },
          "duracion": "PT23H59M"
        }
      ]
    }
  ]
}

Get estimaciones por proyecto

GET /estimaciones/proyecto/{id}
id

(no description)

type
integer (int64)
in
path
200 OK

successful operation

400 Bad Request

Objeto inválido

401 Unauthorized

No Autorizado

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "id": "integer (int64)",
    "proyecto": {
      "id": "integer (int64)",
      "codigo": "string",
      "nombre": "string",
      "prioridad": "integer (int32)"
    },
    "descripcion": "string",
    "fecha": "23-01-2017",
    "estimacionCargos": [
      {
        "id": "integer (int64)",
        "cargo": {
          "id": "integer (int64)",
          "nombre": "string",
          "codigo": "string",
          "precioHoraHistoria": [
            {
              "id": "integer (int64)",
              "precioHora": "number (double)",
              "vigenciaDesde": "23-01-2017"
            }
          ]
        },
        "precioTotal": "number (double)",
        "estimacionTipoTareas": [
          {
            "id": "integer (int64)",
            "tipoTarea": {
              "id": "integer (int64)",
              "codigo": "string",
              "nombre": "string",
              "prioridad": "integer (int32)"
            },
            "duracion": "PT23H59M"
          }
        ]
      }
    ]
  }
]

Get hora

GET /estimaciones/{id}
id

(no description)

type
integer (int64)
in
path
200 OK

successful operation

404 Not Found

Id no encontrado

Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "integer (int64)",
  "proyecto": {
    "id": "integer (int64)",
    "codigo": "string",
    "nombre": "string",
    "prioridad": "integer (int32)"
  },
  "descripcion": "string",
  "fecha": "23-01-2017",
  "estimacionCargos": [
    {
      "id": "integer (int64)",
      "cargo": {
        "id": "integer (int64)",
        "nombre": "string",
        "codigo": "string",
        "precioHoraHistoria": [
          {
            "id": "integer (int64)",
            "precioHora": "number (double)",
            "vigenciaDesde": "23-01-2017"
          }
        ]
      },
      "precioTotal": "number (double)",
      "estimacionTipoTareas": [
        {
          "id": "integer (int64)",
          "tipoTarea": {
            "id": "integer (int64)",
            "codigo": "string",
            "nombre": "string",
            "prioridad": "integer (int32)"
          },
          "duracion": "PT23H59M"
        }
      ]
    }
  ]
}

Edit estimacion

PUT /estimaciones/{id}
undefined
id

(no description)

type
integer (int64)
in
path
Request Content-Types: application/json
Request Example
{
  "id": "integer (int64)",
  "proyecto": {
    "id": "integer (int64)",
    "codigo": "string",
    "nombre": "string",
    "prioridad": "integer (int32)"
  },
  "descripcion": "string",
  "fecha": "23-01-2017",
  "estimacionCargos": [
    {
      "id": "integer (int64)",
      "cargo": {
        "id": "integer (int64)",
        "nombre": "string",
        "codigo": "string",
        "precioHoraHistoria": [
          {
            "id": "integer (int64)",
            "precioHora": "number (double)",
            "vigenciaDesde": "23-01-2017"
          }
        ]
      },
      "precioTotal": "number (double)",
      "estimacionTipoTareas": [
        {
          "id": "integer (int64)",
          "tipoTarea": {
            "id": "integer (int64)",
            "codigo": "string",
            "nombre": "string",
            "prioridad": "integer (int32)"
          },
          "duracion": "PT23H59M"
        }
      ]
    }
  ]
}
200 OK

successful operation

304 Not Modified

Error: objeto no modificado

Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "integer (int64)",
  "proyecto": {
    "id": "integer (int64)",
    "codigo": "string",
    "nombre": "string",
    "prioridad": "integer (int32)"
  },
  "descripcion": "string",
  "fecha": "23-01-2017",
  "estimacionCargos": [
    {
      "id": "integer (int64)",
      "cargo": {
        "id": "integer (int64)",
        "nombre": "string",
        "codigo": "string",
        "precioHoraHistoria": [
          {
            "id": "integer (int64)",
            "precioHora": "number (double)",
            "vigenciaDesde": "23-01-2017"
          }
        ]
      },
      "precioTotal": "number (double)",
      "estimacionTipoTareas": [
        {
          "id": "integer (int64)",
          "tipoTarea": {
            "id": "integer (int64)",
            "codigo": "string",
            "nombre": "string",
            "prioridad": "integer (int32)"
          },
          "duracion": "PT23H59M"
        }
      ]
    }
  ]
}

proyectos

Get proyectos

GET /proyectos
200 OK

successful operation

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "id": "integer (int64)",
    "codigo": "string",
    "nombre": "string",
    "prioridad": "integer (int32)"
  }
]

Create Proyecto

POST /proyectos
undefined
Request Content-Types: application/json
Request Example
{
  "id": "integer (int64)",
  "codigo": "string",
  "nombre": "string",
  "prioridad": "integer (int32)"
}
200 OK

successful operation

409 Conflict

Código o Id ya existe

500 Internal Server Error

Error interno

Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "integer (int64)",
  "codigo": "string",
  "nombre": "string",
  "prioridad": "integer (int32)"
}

Get tipo Tarea

GET /proyectos/{id}
id

(no description)

type
integer (int64)
in
path
200 OK

successful operation

404 Not Found

Id no encontrado

Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "integer (int64)",
  "codigo": "string",
  "nombre": "string",
  "prioridad": "integer (int32)"
}

Edit proyecto

PUT /proyectos/{id}
undefined
id

(no description)

type
integer (int64)
in
path
Request Content-Types: application/json
Request Example
{
  "id": "integer (int64)",
  "codigo": "string",
  "nombre": "string",
  "prioridad": "integer (int32)"
}
200 OK

successful operation

304 Not Modified

Error: objeto no modificado

Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "integer (int64)",
  "codigo": "string",
  "nombre": "string",
  "prioridad": "integer (int32)"
}

Schema Definitions

Cargo: object

id: integer (int64)
nombre: string
codigo: string
precioHoraHistoria: PrecioHora
Example
{
  "id": "integer (int64)",
  "nombre": "string",
  "codigo": "string",
  "precioHoraHistoria": [
    {
      "id": "integer (int64)",
      "precioHora": "number (double)",
      "vigenciaDesde": "23-01-2017"
    }
  ]
}

Notificacion: object

hora: Hora
id: integer (int64)
tipo: string LOGIN, NUEVA_HORA, EDICION_HORA, FALTAN_HORAS, CAMBIO_PASSWORD
texto: string
colaborador: Colaborador
fechaHora: string (date)
Example
{
  "hora": {
    "id": "integer (int64)",
    "dia": "23-01-2017",
    "horaIn": "08:15",
    "horaOut": "17:34",
    "subtotal": "PT23H59M",
    "colaborador": {
      "id": "integer (int64)",
      "email": "string",
      "nombre": "string",
      "cargo": {
        "id": "integer (int64)",
        "nombre": "string",
        "codigo": "string",
        "precioHoraHistoria": [
          {
            "id": "integer (int64)",
            "precioHora": "number (double)",
            "vigenciaDesde": "23-01-2017"
          }
        ]
      },
      "role": "string",
      "token": "string"
    },
    "horaDetalleList": [
      {
        "id": "integer (int64)",
        "proyecto": {
          "id": "integer (int64)",
          "codigo": "string",
          "nombre": "string",
          "prioridad": "integer (int32)"
        },
        "tipoTarea": {
          "id": "integer (int64)",
          "codigo": "string",
          "nombre": "string",
          "prioridad": "integer (int32)"
        },
        "duracion": "PT23H59M",
        "cargo": {
          "id": "integer (int64)",
          "nombre": "string",
          "codigo": "string",
          "precioHoraHistoria": [
            {
              "id": "integer (int64)",
              "precioHora": "number (double)",
              "vigenciaDesde": "23-01-2017"
            }
          ]
        }
      }
    ],
    "completa": "boolean",
    "subtotalDetalles": "PT23H59M"
  },
  "id": "integer (int64)",
  "tipo": "string",
  "texto": "string",
  "colaborador": {
    "id": "integer (int64)",
    "email": "string",
    "nombre": "string",
    "cargo": {
      "id": "integer (int64)",
      "nombre": "string",
      "codigo": "string",
      "precioHoraHistoria": [
        {
          "id": "integer (int64)",
          "precioHora": "number (double)",
          "vigenciaDesde": "23-01-2017"
        }
      ]
    },
    "role": "string",
    "token": "string"
  },
  "fechaHora": "23-01-2017T16:45"
}

Proyecto: object

id: integer (int64)
codigo: string
nombre: string
prioridad: integer (int32)
Example
{
  "id": "integer (int64)",
  "codigo": "string",
  "nombre": "string",
  "prioridad": "integer (int32)"
}

HoraDetalle: object

id: integer (int64)
proyecto: Proyecto
tipoTarea: TipoTarea
duracion: string (date-time)
cargo: Cargo
Example
{
  "id": "integer (int64)",
  "proyecto": {
    "id": "integer (int64)",
    "codigo": "string",
    "nombre": "string",
    "prioridad": "integer (int32)"
  },
  "tipoTarea": {
    "id": "integer (int64)",
    "codigo": "string",
    "nombre": "string",
    "prioridad": "integer (int32)"
  },
  "duracion": "PT23H59M",
  "cargo": {
    "id": "integer (int64)",
    "nombre": "string",
    "codigo": "string",
    "precioHoraHistoria": [
      {
        "id": "integer (int64)",
        "precioHora": "number (double)",
        "vigenciaDesde": "23-01-2017"
      }
    ]
  }
}

MagnesiumStatus: object

project: string
version: string
node: string
swaggerUrl: string
docsUrl: string
Example
{
  "project": "string",
  "version": "string",
  "node": "string",
  "swaggerUrl": "string",
  "docsUrl": "string"
}

EstimacionTipoTarea: object

id: integer (int64)
tipoTarea: TipoTarea
duracion: string (date-time)
Example
{
  "id": "integer (int64)",
  "tipoTarea": {
    "id": "integer (int64)",
    "codigo": "string",
    "nombre": "string",
    "prioridad": "integer (int32)"
  },
  "duracion": "PT23H59M"
}

PrecioHora: object

id: integer (int64)
precioHora: number (double)
vigenciaDesde: string (date)
Example
{
  "id": "integer (int64)",
  "precioHora": "number (double)",
  "vigenciaDesde": "23-01-2017"
}

TipoTarea: object

id: integer (int64)
codigo: string
nombre: string
prioridad: integer (int32)
Example
{
  "id": "integer (int64)",
  "codigo": "string",
  "nombre": "string",
  "prioridad": "integer (int32)"
}

Colaborador: object

id: integer (int64)
email: string
nombre: string
cargo: Cargo
role: string
token: string
Example
{
  "id": "integer (int64)",
  "email": "string",
  "nombre": "string",
  "cargo": {
    "id": "integer (int64)",
    "nombre": "string",
    "codigo": "string",
    "precioHoraHistoria": [
      {
        "id": "integer (int64)",
        "precioHora": "number (double)",
        "vigenciaDesde": "23-01-2017"
      }
    ]
  },
  "role": "string",
  "token": "string"
}

EstimacionCargo: object

id: integer (int64)
cargo: Cargo
precioTotal: number (double)
estimacionTipoTareas: EstimacionTipoTarea
Example
{
  "id": "integer (int64)",
  "cargo": {
    "id": "integer (int64)",
    "nombre": "string",
    "codigo": "string",
    "precioHoraHistoria": [
      {
        "id": "integer (int64)",
        "precioHora": "number (double)",
        "vigenciaDesde": "23-01-2017"
      }
    ]
  },
  "precioTotal": "number (double)",
  "estimacionTipoTareas": [
    {
      "id": "integer (int64)",
      "tipoTarea": {
        "id": "integer (int64)",
        "codigo": "string",
        "nombre": "string",
        "prioridad": "integer (int32)"
      },
      "duracion": "PT23H59M"
    }
  ]
}

Hora: object

id: integer (int64)
dia: string (date)
horaIn: string (date-time)
horaOut: string (date-time)
subtotal: string (date-time)
colaborador: Colaborador
horaDetalleList: HoraDetalle
completa: boolean
subtotalDetalles: string (date-time)
Example
{
  "id": "integer (int64)",
  "dia": "23-01-2017",
  "horaIn": "08:15",
  "horaOut": "17:34",
  "subtotal": "PT23H59M",
  "colaborador": {
    "id": "integer (int64)",
    "email": "string",
    "nombre": "string",
    "cargo": {
      "id": "integer (int64)",
      "nombre": "string",
      "codigo": "string",
      "precioHoraHistoria": [
        {
          "id": "integer (int64)",
          "precioHora": "number (double)",
          "vigenciaDesde": "23-01-2017"
        }
      ]
    },
    "role": "string",
    "token": "string"
  },
  "horaDetalleList": [
    {
      "id": "integer (int64)",
      "proyecto": {
        "id": "integer (int64)",
        "codigo": "string",
        "nombre": "string",
        "prioridad": "integer (int32)"
      },
      "tipoTarea": {
        "id": "integer (int64)",
        "codigo": "string",
        "nombre": "string",
        "prioridad": "integer (int32)"
      },
      "duracion": "PT23H59M",
      "cargo": {
        "id": "integer (int64)",
        "nombre": "string",
        "codigo": "string",
        "precioHoraHistoria": [
          {
            "id": "integer (int64)",
            "precioHora": "number (double)",
            "vigenciaDesde": "23-01-2017"
          }
        ]
      }
    }
  ],
  "completa": "boolean",
  "subtotalDetalles": "PT23H59M"
}

Estimacion: object

id: integer (int64)
proyecto: Proyecto
descripcion: string
fecha: string (date)
estimacionCargos: EstimacionCargo
Example
{
  "id": "integer (int64)",
  "proyecto": {
    "id": "integer (int64)",
    "codigo": "string",
    "nombre": "string",
    "prioridad": "integer (int32)"
  },
  "descripcion": "string",
  "fecha": "23-01-2017",
  "estimacionCargos": [
    {
      "id": "integer (int64)",
      "cargo": {
        "id": "integer (int64)",
        "nombre": "string",
        "codigo": "string",
        "precioHoraHistoria": [
          {
            "id": "integer (int64)",
            "precioHora": "number (double)",
            "vigenciaDesde": "23-01-2017"
          }
        ]
      },
      "precioTotal": "number (double)",
      "estimacionTipoTareas": [
        {
          "id": "integer (int64)",
          "tipoTarea": {
            "id": "integer (int64)",
            "codigo": "string",
            "nombre": "string",
            "prioridad": "integer (int32)"
          },
          "duracion": "PT23H59M"
        }
      ]
    }
  ]
}

EstimacionProyectoTipoTareaXCargo: object

proyecto: Proyecto
tipoTarea: TipoTarea
cargo: Cargo
precioTotal: number (double)
Example
{
  "proyecto": {
    "id": "integer (int64)",
    "codigo": "string",
    "nombre": "string",
    "prioridad": "integer (int32)"
  },
  "tipoTarea": {
    "id": "integer (int64)",
    "codigo": "string",
    "nombre": "string",
    "prioridad": "integer (int32)"
  },
  "cargo": {
    "id": "integer (int64)",
    "nombre": "string",
    "codigo": "string",
    "precioHoraHistoria": [
      {
        "id": "integer (int64)",
        "precioHora": "number (double)",
        "vigenciaDesde": "23-01-2017"
      }
    ]
  },
  "precioTotal": "number (double)"
}

ReporteHoras1: object

cantidadHoras: number (double)
precioTotal: number (double)
cantidadHorasEstimadas: number (double)
precioEstimado: number (double)
proyecto: Proyecto
tipoTarea: TipoTarea
cargo: Cargo
Example
{
  "cantidadHoras": "number (double)",
  "precioTotal": "number (double)",
  "cantidadHorasEstimadas": "number (double)",
  "precioEstimado": "number (double)",
  "proyecto": {
    "id": "integer (int64)",
    "codigo": "string",
    "nombre": "string",
    "prioridad": "integer (int32)"
  },
  "tipoTarea": {
    "id": "integer (int64)",
    "codigo": "string",
    "nombre": "string",
    "prioridad": "integer (int32)"
  },
  "cargo": {
    "id": "integer (int64)",
    "nombre": "string",
    "codigo": "string",
    "precioHoraHistoria": [
      {
        "id": "integer (int64)",
        "precioHora": "number (double)",
        "vigenciaDesde": "23-01-2017"
      }
    ]
  }
}