Saltar al contenido principal

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.