Rotaciones
Introducción
Rotaciones u Organizador de cultivo es una funcionalidad dentro del módulo de gestión que permite asignar cultivos por lote de una forma rápida y sencilla sin necesidad de generar un registro de siembra. A través de esta funcionalidad, los usuarios tienen la posibilidad de registrar información detallada sobre el cultivo, como la variedad sembrada, la cantidad de hectáreas que se sembrarán, el rendimiento estimado y otros detalles relevantes.
APIs
GET
Listado de todas las rotaciones de los campos sobre los cuales el usuario tiene permisos, para todas las campañas.
Content-Type: text/plain
GET /api/rotations
En la query string se pueden enviar los siguientes parámetros, los cuales aplican una condición AND para filtrar:
yeargroup
:number
, recibe el año en el cual se quieren buscar las rotaciones (2022, 2023, etc.)farms_id
:integer
, recibe uno o más IDs de campos separados por coma.
Ejemplo de respuesta:
[{
"farm_uuid": "25b02307-3da4-4d61-845a-45921715fd40",
"varieties": null,
"end_date": "2023-06-01T03:00:00Z",
"yeargroup": 2022,
"start_date": "2023-01-01T03:00:00Z",
"farm_id": 90677,
"field_id": 321961,
"crop_id": 1339,
"field_uuid": "d9f0c738-115f-4500-8a38-57244527418a",
"crop_name": "Maíz 2°",
"cicle_id": 82531,
"rotation_uuid": "334f581a-ee8b-4608-ada6-c4618e89e713",
"yield_crop": null,
"ha": null,
"field_name": "Test Field",
"crop_order": 1,
"metadata": null
},
{
"farm_uuid": "25b02307-3da4-4d61-845a-45921715fd40",
"varieties": null,
"end_date": "2023-10-18T03:00:00Z",
"yeargroup": 2022,
"start_date": "2023-01-12T03:00:00Z",
"farm_id": 90677,
"field_id": 321961,
"crop_id": 13,
"field_uuid": "d9f0c738-115f-4500-8a38-57244527418a",
"crop_name": "Maíz",
"cicle_id": 82531,
"rotation_uuid": "13483f90-5f19-462e-9c92-8df60ee16d6b",
"yield_crop": null,
"ha": null,
"field_name": "Test Field",
"crop_order": 2,
"metadata": null
}]
POST
Content-Type: application/json
POST /rotations
En el cuerpo de la consulta, incluir un array de objetos que representan cada rotación a crear. Cada objeto debe incluir:
field_id
:number
(obligatorio), id del lote al cual se quiere asociar la rotación.crop_id
:number
(obligatorio), id del cultivo.yeargroup
:number
(obligatorio), año en el cual se quiere definir la rotación.ha
:number
, hectáreas sobre las cuales se quiere definir la rotación.start_date
:datetime
(obligatorio), fecha de inicio de la rotación [formato YYYY-MM-DDTHH:mm:ssZ].end_date
:datetime
(obligatorio), fecha de fin de la rotación [formato YYYY-MM-DDTHH:mm:ssZ].
Respuesta:
La API responde dos listas; una con las rotaciones creadas y otra con las que no se pudieron crear.
Ejemplo de respuesta:
{
"data": {
"created_ones": [
{
"end_date": null,
"yeargroup": 2022,
"field_id": 258388,
"crop_id": 6,
"crop_name": null,
"cicle_id": 65805,
"start_date": null,
"ha": null,
"crop_order": 4,
"rotation_uuid": "b11f12b1-3265-4756-b18b-45de101da547"
}
],
"unabled_to_be_created": [
{
"varieties": null,
"end_date": "2024-02-01T00:00:00Z",
"yeargroup": 2023,
"start_date": "2023-11-01T00:00:00Z",
"field_id": 321961,
"reason": {
"error_code": -11,
"error_msg": "User is not allowed to perform this action"
},
"crop_id": 2,
"field_uuid": null,
"crop_name": null,
"cicle_id": null,
"rotation_uuid": null,
"yield_crop": null,
"ha": null,
"crop_order": null,
"metadata": null
}
]
}
}
PATCH
Content-Type: application/json
PATCH: /rotations/{rotation_uuid}
Se pueden modificar ciertos aspectos de una rotación:
- ha
- crop_id
- start_date
- end_date
Ejemplo de body:
PATCH /rotations/898430ea-fc6f-4a46-a7c6-9890ea702a41
{
"ha": 140,
"start_date":"2022-08-09 21:00:00.000",
"end_date": "2023-01-09 21:00:00.000",
"crop_id": 6
}
Ejemplo de respuesta:
Status: 200 OK
{
"crop_variety_id": 37582,
"crop_order": 1,
"end_date": "2023-01-09 21:00:00.000",
"yeargroup": 2022,
"crop_variety_name": "Colorado Chino",
"field_id": 258482,
"crop_id": 6,
"crop_name": "Cebada",
"cicle_id": 65847,
"rotation_uuid": "898430ea-fc6f-4a46-a7c6-9890ea702a41",
"ha": 140,
"start_date": "2022-08-09 21:00:00.000"
}
VARIEDADES EN ROTACIONES
/rotations/variety/{rotation_uuid}
GET
Devuelve un listado de las variedades disponibles para el cultivo asociado a la rotación.
Ejemplo de respuesta:
{
"varieties": [
{
"variety_id": 37634,
"variety_name": "Variedad 1"
},
{
"variety_id": 40138,
"variety_name": "Variedad 2"
}
]
}
POST
Éste método es usado para agregar una o más variedades a una rotación.
En el cuerpo se debe enviar un listado con las variedades que se quieren agregar.
Ejemplo de cuerpo:
{
"varieties": [37634, 33305]
}
varieties
: array de ids de variedades.
DELETE
Éste método se usa para eliminar una variable de una rotación.
/rotations/variety/{rotation_uuid}?variety_id={variety_id}
variety_id
: id de la variedad que se quiere eliminar.