diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/CHANGELOG.md b/sdk/formrecognizer/azure-ai-formrecognizer/CHANGELOG.md index dab7a6cc03e5..c96fa725c161 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/CHANGELOG.md +++ b/sdk/formrecognizer/azure-ai-formrecognizer/CHANGELOG.md @@ -1,7 +1,10 @@ # Release History -## 3.1.1 (Unreleased) +## 3.1.1 (2021-06-08) +**Bug Fixes** + +- Handles invoices that do not have sub-line item fields detected. ## 3.1.0 (2021-05-26) diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/README.md b/sdk/formrecognizer/azure-ai-formrecognizer/README.md index f28f61afb2ec..e0f2cd01f54c 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/README.md +++ b/sdk/formrecognizer/azure-ai-formrecognizer/README.md @@ -33,7 +33,7 @@ This table shows the relationship between SDK versions and supported API version |SDK version|Supported API version of service |-|- -|3.1.0 - Latest GA release| 2.0, 2.1 (default) +|3.1.X - Latest GA release| 2.0, 2.1 (default) |3.0.0| 2.0 #### Create a Form Recognizer resource diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_models.py b/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_models.py index 93b2d752cfda..12c1c4ff1008 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_models.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_models.py @@ -56,12 +56,12 @@ def get_field_value( return [ FormField._from_generated(field, value, read_result) for value in value.value_array - ] + ] if value.value_array else [] if value.type == "object": return { key: FormField._from_generated(key, value, read_result) for key, value in value.value_object.items() - } + } if value.value_object else {} if value.type == "selectionMark": return value.value_selection_mark if value.type == "countryRegion": diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/recordings/test_invoice_from_url.test_invoice_no_sub_line_items.yaml b/sdk/formrecognizer/azure-ai-formrecognizer/tests/recordings/test_invoice_from_url.test_invoice_no_sub_line_items.yaml new file mode 100644 index 000000000000..49724f6006f5 --- /dev/null +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/recordings/test_invoice_from_url.test_invoice_no_sub_line_items.yaml @@ -0,0 +1,547 @@ +interactions: +- request: + body: 'b''{"source": "blob_sas_url"}''' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '216' + Content-Type: + - application/json + User-Agent: + - azsdk-python-ai-formrecognizer/3.1.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: POST + uri: https://region.api.cognitive.microsoft.com/formrecognizer/v2.1/prebuilt/invoice/analyze?includeTextDetails=false + response: + body: + string: '' + headers: + apim-request-id: + - f85c12e0-8f1a-458c-99dd-540a46e864c7 + content-length: + - '0' + date: + - Mon, 07 Jun 2021 21:33:17 GMT + operation-location: + - https://region.api.cognitive.microsoft.com/formrecognizer/v2.1/prebuilt/invoice/analyzeResults/f85c12e0-8f1a-458c-99dd-540a46e864c7 + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '1604' + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - azsdk-python-ai-formrecognizer/3.1.1 Python/3.9.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://region.api.cognitive.microsoft.com/formrecognizer/v2.1/prebuilt/invoice/analyzeResults/f85c12e0-8f1a-458c-99dd-540a46e864c7 + response: + body: + string: '{"status": "succeeded", "createdDateTime": "2021-06-07T21:33:17Z", + "lastUpdatedDateTime": "2021-06-07T21:33:21Z", "analyzeResult": {"version": + "2.1.0", "readResults": [{"page": 1, "angle": 0.2076, "width": 1700, "height": + 2200, "unit": "pixel"}], "pageResults": [{"page": 1, "tables": [{"rows": 39, + "columns": 8, "cells": [{"rowIndex": 0, "columnIndex": 0, "text": "Ordered", + "boundingBox": [51, 344, 168, 344, 168, 384, 51, 384], "isHeader": true}, + {"rowIndex": 0, "columnIndex": 1, "text": "Shipped", "boundingBox": [168, + 344, 287, 344, 287, 384, 168, 384], "isHeader": true}, {"rowIndex": 0, "columnIndex": + 2, "text": "Item Number/Description", "boundingBox": [287, 344, 976, 344, + 976, 384, 287, 384], "isHeader": true}, {"rowIndex": 0, "columnIndex": 3, + "text": "Unit Proce", "boundingBox": [976, 344, 1096, 344, 1096, 384, 976, + 384], "isHeader": true}, {"rowIndex": 0, "columnIndex": 4, "text": "Discount", + "boundingBox": [1096, 344, 1192, 344, 1192, 384, 1096, 384], "isHeader": true}, + {"rowIndex": 0, "columnIndex": 5, "boundingBox": [1192, 344, 1318, 344, 1318, + 384, 1192, 384], "isHeader": true, "text": ""}, {"rowIndex": 0, "columnIndex": + 6, "text": "Extended", "boundingBox": [1318, 344, 1409, 344, 1409, 384, 1318, + 384], "isHeader": true}, {"rowIndex": 0, "columnIndex": 7, "boundingBox": + [1409, 344, 1624, 346, 1624, 384, 1409, 384], "isHeader": true, "text": ""}, + {"rowIndex": 1, "columnIndex": 0, "boundingBox": [51, 384, 168, 384, 168, + 461, 51, 461], "text": ""}, {"rowIndex": 1, "columnIndex": 1, "boundingBox": + [168, 384, 287, 384, 287, 461, 168, 461], "text": ""}, {"rowIndex": 1, "columnIndex": + 2, "text": "Water", "boundingBox": [287, 384, 976, 384, 976, 461, 287, 461]}, + {"rowIndex": 1, "columnIndex": 3, "boundingBox": [976, 384, 1096, 384, 1096, + 461, 976, 461], "text": ""}, {"rowIndex": 1, "columnIndex": 4, "boundingBox": + [1096, 384, 1192, 384, 1192, 461, 1096, 461], "text": ""}, {"rowIndex": 1, + "columnIndex": 5, "boundingBox": [1192, 384, 1318, 384, 1318, 461, 1192, 461], + "text": ""}, {"rowIndex": 1, "columnIndex": 6, "boundingBox": [1318, 384, + 1409, 384, 1409, 461, 1318, 461], "text": ""}, {"rowIndex": 1, "columnIndex": + 7, "text": "Price", "boundingBox": [1409, 384, 1624, 384, 1624, 461, 1409, + 461]}, {"rowIndex": 2, "columnIndex": 0, "boundingBox": [51, 461, 168, 461, + 168, 502, 51, 502], "text": ""}, {"rowIndex": 2, "columnIndex": 1, "boundingBox": + [168, 461, 287, 461, 287, 502, 168, 502], "text": ""}, {"rowIndex": 2, "columnIndex": + 2, "text": "Water", "boundingBox": [287, 461, 976, 461, 976, 502, 287, 502]}, + {"rowIndex": 2, "columnIndex": 3, "boundingBox": [976, 461, 1096, 461, 1096, + 502, 976, 502], "text": ""}, {"rowIndex": 2, "columnIndex": 4, "boundingBox": + [1096, 461, 1192, 461, 1192, 502, 1096, 502], "text": ""}, {"rowIndex": 2, + "columnIndex": 5, "boundingBox": [1192, 461, 1318, 461, 1318, 502, 1192, 502], + "text": ""}, {"rowIndex": 2, "columnIndex": 6, "boundingBox": [1318, 461, + 1409, 461, 1409, 502, 1318, 502], "text": ""}, {"rowIndex": 2, "columnIndex": + 7, "boundingBox": [1409, 461, 1624, 461, 1624, 504, 1409, 502], "text": ""}, + {"rowIndex": 3, "columnIndex": 0, "boundingBox": [51, 502, 168, 502, 168, + 544, 51, 544], "text": ""}, {"rowIndex": 3, "columnIndex": 1, "boundingBox": + [168, 502, 287, 502, 287, 544, 168, 544], "text": ""}, {"rowIndex": 3, "columnIndex": + 2, "text": "Water", "boundingBox": [287, 502, 976, 502, 976, 544, 287, 544]}, + {"rowIndex": 3, "columnIndex": 3, "boundingBox": [976, 502, 1096, 502, 1096, + 544, 976, 544], "text": ""}, {"rowIndex": 3, "columnIndex": 4, "boundingBox": + [1096, 502, 1192, 502, 1192, 544, 1096, 544], "text": ""}, {"rowIndex": 3, + "columnIndex": 5, "boundingBox": [1192, 502, 1318, 502, 1318, 546, 1192, 544], + "text": ""}, {"rowIndex": 3, "columnIndex": 6, "boundingBox": [1318, 502, + 1409, 502, 1409, 546, 1318, 546], "text": ""}, {"rowIndex": 3, "columnIndex": + 7, "boundingBox": [1409, 502, 1624, 504, 1624, 546, 1409, 546], "text": ""}, + {"rowIndex": 4, "columnIndex": 0, "boundingBox": [51, 544, 168, 544, 168, + 582, 51, 582], "text": ""}, {"rowIndex": 4, "columnIndex": 1, "boundingBox": + [168, 544, 287, 544, 287, 582, 168, 582], "text": ""}, {"rowIndex": 4, "columnIndex": + 2, "text": "Water", "boundingBox": [287, 544, 976, 544, 976, 584, 287, 582]}, + {"rowIndex": 4, "columnIndex": 3, "boundingBox": [976, 544, 1096, 544, 1096, + 584, 976, 584], "text": ""}, {"rowIndex": 4, "columnIndex": 4, "boundingBox": + [1096, 544, 1192, 544, 1192, 586, 1096, 584], "text": ""}, {"rowIndex": 4, + "columnIndex": 5, "boundingBox": [1192, 544, 1318, 546, 1318, 586, 1192, 586], + "text": ""}, {"rowIndex": 4, "columnIndex": 6, "boundingBox": [1318, 546, + 1409, 546, 1409, 586, 1318, 586], "text": ""}, {"rowIndex": 4, "columnIndex": + 7, "boundingBox": [1409, 546, 1624, 546, 1624, 586, 1409, 586], "text": ""}, + {"rowIndex": 5, "columnIndex": 0, "boundingBox": [51, 582, 168, 582, 168, + 621, 51, 621], "text": ""}, {"rowIndex": 5, "columnIndex": 1, "boundingBox": + [168, 582, 287, 582, 287, 621, 168, 621], "text": ""}, {"rowIndex": 5, "columnIndex": + 2, "text": "Water", "boundingBox": [287, 582, 976, 584, 976, 622, 287, 621]}, + {"rowIndex": 5, "columnIndex": 3, "boundingBox": [976, 584, 1096, 584, 1096, + 622, 976, 622], "text": ""}, {"rowIndex": 5, "columnIndex": 4, "boundingBox": + [1096, 584, 1192, 586, 1192, 622, 1096, 622], "text": ""}, {"rowIndex": 5, + "columnIndex": 5, "boundingBox": [1192, 586, 1318, 586, 1318, 624, 1192, 622], + "text": ""}, {"rowIndex": 5, "columnIndex": 6, "boundingBox": [1318, 586, + 1409, 586, 1409, 624, 1318, 624], "text": ""}, {"rowIndex": 5, "columnIndex": + 7, "boundingBox": [1409, 586, 1624, 586, 1624, 624, 1409, 624], "text": ""}, + {"rowIndex": 6, "columnIndex": 0, "boundingBox": [51, 621, 168, 621, 168, + 662, 51, 662], "text": ""}, {"rowIndex": 6, "columnIndex": 1, "boundingBox": + [168, 621, 287, 621, 287, 662, 168, 662], "text": ""}, {"rowIndex": 6, "columnIndex": + 2, "text": "Water", "boundingBox": [287, 621, 976, 622, 976, 664, 287, 662]}, + {"rowIndex": 6, "columnIndex": 3, "boundingBox": [976, 622, 1096, 622, 1096, + 664, 976, 664], "text": ""}, {"rowIndex": 6, "columnIndex": 4, "boundingBox": + [1096, 622, 1192, 622, 1192, 664, 1096, 664], "text": ""}, {"rowIndex": 6, + "columnIndex": 5, "boundingBox": [1192, 622, 1318, 624, 1318, 664, 1192, 664], + "text": ""}, {"rowIndex": 6, "columnIndex": 6, "boundingBox": [1318, 624, + 1409, 624, 1409, 664, 1318, 664], "text": ""}, {"rowIndex": 6, "columnIndex": + 7, "boundingBox": [1409, 624, 1624, 624, 1624, 664, 1409, 664], "text": ""}, + {"rowIndex": 7, "columnIndex": 0, "boundingBox": [51, 662, 168, 662, 168, + 704, 49, 704], "text": ""}, {"rowIndex": 7, "columnIndex": 1, "boundingBox": + [168, 662, 287, 662, 287, 704, 168, 704], "text": ""}, {"rowIndex": 7, "columnIndex": + 2, "text": "Water", "boundingBox": [287, 662, 976, 664, 976, 706, 287, 704]}, + {"rowIndex": 7, "columnIndex": 3, "boundingBox": [976, 664, 1096, 664, 1096, + 706, 976, 706], "text": ""}, {"rowIndex": 7, "columnIndex": 4, "boundingBox": + [1096, 664, 1192, 664, 1192, 706, 1096, 706], "text": ""}, {"rowIndex": 7, + "columnIndex": 5, "boundingBox": [1192, 664, 1318, 664, 1318, 706, 1192, 706], + "text": ""}, {"rowIndex": 7, "columnIndex": 6, "boundingBox": [1318, 664, + 1409, 664, 1409, 706, 1318, 706], "text": ""}, {"rowIndex": 7, "columnIndex": + 7, "boundingBox": [1409, 664, 1624, 664, 1624, 706, 1409, 706], "text": ""}, + {"rowIndex": 8, "columnIndex": 0, "boundingBox": [49, 704, 168, 704, 168, + 742, 49, 742], "text": ""}, {"rowIndex": 8, "columnIndex": 1, "boundingBox": + [168, 704, 287, 704, 287, 742, 168, 742], "text": ""}, {"rowIndex": 8, "columnIndex": + 2, "text": "Water", "boundingBox": [287, 704, 976, 706, 976, 745, 287, 742]}, + {"rowIndex": 8, "columnIndex": 3, "boundingBox": [976, 706, 1096, 706, 1096, + 745, 976, 745], "text": ""}, {"rowIndex": 8, "columnIndex": 4, "boundingBox": + [1096, 706, 1192, 706, 1192, 745, 1096, 745], "text": ""}, {"rowIndex": 8, + "columnIndex": 5, "boundingBox": [1192, 706, 1318, 706, 1318, 745, 1192, 745], + "text": ""}, {"rowIndex": 8, "columnIndex": 6, "boundingBox": [1318, 706, + 1409, 706, 1409, 747, 1318, 745], "text": ""}, {"rowIndex": 8, "columnIndex": + 7, "boundingBox": [1409, 706, 1624, 706, 1624, 747, 1409, 747], "text": ""}, + {"rowIndex": 9, "columnIndex": 0, "boundingBox": [49, 742, 168, 742, 168, + 782, 49, 782], "text": ""}, {"rowIndex": 9, "columnIndex": 1, "boundingBox": + [168, 742, 287, 742, 287, 784, 168, 782], "text": ""}, {"rowIndex": 9, "columnIndex": + 2, "text": "Water", "boundingBox": [287, 742, 976, 745, 976, 784, 287, 784]}, + {"rowIndex": 9, "columnIndex": 3, "boundingBox": [976, 745, 1096, 745, 1096, + 784, 976, 784], "text": ""}, {"rowIndex": 9, "columnIndex": 4, "boundingBox": + [1096, 745, 1192, 745, 1192, 784, 1096, 784], "text": ""}, {"rowIndex": 9, + "columnIndex": 5, "boundingBox": [1192, 745, 1318, 745, 1318, 784, 1192, 784], + "text": ""}, {"rowIndex": 9, "columnIndex": 6, "boundingBox": [1318, 745, + 1409, 747, 1409, 785, 1318, 784], "text": ""}, {"rowIndex": 9, "columnIndex": + 7, "boundingBox": [1409, 747, 1624, 747, 1624, 785, 1409, 785], "text": ""}, + {"rowIndex": 10, "columnIndex": 0, "boundingBox": [49, 782, 168, 782, 168, + 824, 49, 824], "text": ""}, {"rowIndex": 10, "columnIndex": 1, "boundingBox": + [168, 782, 287, 784, 287, 824, 168, 824], "text": ""}, {"rowIndex": 10, "columnIndex": + 2, "text": "Water", "boundingBox": [287, 784, 976, 784, 976, 825, 287, 824]}, + {"rowIndex": 10, "columnIndex": 3, "boundingBox": [976, 784, 1096, 784, 1096, + 825, 976, 825], "text": ""}, {"rowIndex": 10, "columnIndex": 4, "boundingBox": + [1096, 784, 1192, 784, 1192, 825, 1096, 825], "text": ""}, {"rowIndex": 10, + "columnIndex": 5, "boundingBox": [1192, 784, 1318, 784, 1318, 825, 1192, 825], + "text": ""}, {"rowIndex": 10, "columnIndex": 6, "boundingBox": [1318, 784, + 1409, 785, 1407, 827, 1318, 825], "text": ""}, {"rowIndex": 10, "columnIndex": + 7, "boundingBox": [1409, 785, 1624, 785, 1624, 825, 1407, 827], "text": ""}, + {"rowIndex": 11, "columnIndex": 0, "boundingBox": [49, 824, 168, 824, 168, + 865, 49, 865], "text": ""}, {"rowIndex": 11, "columnIndex": 1, "boundingBox": + [168, 824, 287, 824, 286, 865, 168, 865], "text": ""}, {"rowIndex": 11, "columnIndex": + 2, "text": "Water", "boundingBox": [287, 824, 976, 825, 976, 867, 286, 865]}, + {"rowIndex": 11, "columnIndex": 3, "boundingBox": [976, 825, 1096, 825, 1096, + 867, 976, 867], "text": ""}, {"rowIndex": 11, "columnIndex": 4, "boundingBox": + [1096, 825, 1192, 825, 1192, 867, 1096, 867], "text": ""}, {"rowIndex": 11, + "columnIndex": 5, "boundingBox": [1192, 825, 1318, 825, 1318, 867, 1192, 867], + "text": ""}, {"rowIndex": 11, "columnIndex": 6, "boundingBox": [1318, 825, + 1407, 827, 1407, 867, 1318, 867], "text": ""}, {"rowIndex": 11, "columnIndex": + 7, "boundingBox": [1407, 827, 1624, 825, 1624, 867, 1407, 867], "text": ""}, + {"rowIndex": 12, "columnIndex": 0, "boundingBox": [49, 865, 168, 865, 168, + 904, 49, 904], "text": ""}, {"rowIndex": 12, "columnIndex": 1, "boundingBox": + [168, 865, 286, 865, 286, 904, 168, 904], "text": ""}, {"rowIndex": 12, "columnIndex": + 2, "text": "Water", "boundingBox": [286, 865, 976, 867, 976, 905, 286, 904]}, + {"rowIndex": 12, "columnIndex": 3, "boundingBox": [976, 867, 1096, 867, 1096, + 905, 976, 905], "text": ""}, {"rowIndex": 12, "columnIndex": 4, "boundingBox": + [1096, 867, 1192, 867, 1192, 905, 1096, 905], "text": ""}, {"rowIndex": 12, + "columnIndex": 5, "boundingBox": [1192, 867, 1318, 867, 1318, 905, 1192, 905], + "text": ""}, {"rowIndex": 12, "columnIndex": 6, "boundingBox": [1318, 867, + 1407, 867, 1407, 905, 1318, 905], "text": ""}, {"rowIndex": 12, "columnIndex": + 7, "boundingBox": [1407, 867, 1624, 867, 1624, 905, 1407, 905], "text": ""}, + {"rowIndex": 13, "columnIndex": 0, "text": "1", "boundingBox": [49, 904, 168, + 904, 168, 944, 49, 944]}, {"rowIndex": 13, "columnIndex": 1, "text": "1", + "boundingBox": [168, 904, 286, 904, 286, 944, 168, 944]}, {"rowIndex": 13, + "columnIndex": 2, "text": "6566565 unit", "boundingBox": [286, 904, 976, 905, + 976, 944, 286, 944]}, {"rowIndex": 13, "columnIndex": 3, "boundingBox": [976, + 905, 1096, 905, 1096, 945, 976, 944], "text": ""}, {"rowIndex": 13, "columnIndex": + 4, "boundingBox": [1096, 905, 1192, 905, 1192, 945, 1096, 945], "text": ""}, + {"rowIndex": 13, "columnIndex": 5, "boundingBox": [1192, 905, 1318, 905, 1318, + 945, 1192, 945], "text": ""}, {"rowIndex": 13, "columnIndex": 6, "boundingBox": + [1318, 905, 1407, 905, 1407, 945, 1318, 945], "text": ""}, {"rowIndex": 13, + "columnIndex": 7, "boundingBox": [1407, 905, 1624, 905, 1624, 945, 1407, 945], + "text": ""}, {"rowIndex": 14, "columnIndex": 0, "boundingBox": [49, 944, 168, + 944, 167, 984, 49, 984], "text": ""}, {"rowIndex": 14, "columnIndex": 1, "boundingBox": + [168, 944, 286, 944, 286, 982, 167, 984], "text": ""}, {"rowIndex": 14, "columnIndex": + 2, "text": "S/N: 656656", "boundingBox": [286, 944, 976, 944, 976, 984, 286, + 982]}, {"rowIndex": 14, "columnIndex": 3, "boundingBox": [976, 944, 1096, + 945, 1096, 984, 976, 984], "text": ""}, {"rowIndex": 14, "columnIndex": 4, + "boundingBox": [1096, 945, 1192, 945, 1192, 984, 1096, 984], "text": ""}, + {"rowIndex": 14, "columnIndex": 5, "boundingBox": [1192, 945, 1318, 945, 1318, + 984, 1192, 984], "text": ""}, {"rowIndex": 14, "columnIndex": 6, "boundingBox": + [1318, 945, 1407, 945, 1407, 984, 1318, 984], "text": ""}, {"rowIndex": 14, + "columnIndex": 7, "boundingBox": [1407, 945, 1624, 945, 1624, 985, 1407, 984], + "text": ""}, {"rowIndex": 15, "columnIndex": 0, "text": "1", "boundingBox": + [49, 984, 167, 984, 167, 1022, 49, 1022]}, {"rowIndex": 15, "columnIndex": + 1, "text": "1", "boundingBox": [167, 984, 286, 982, 286, 1022, 167, 1022]}, + {"rowIndex": 15, "columnIndex": 2, "text": "6566565 unit", "boundingBox": + [286, 982, 976, 984, 976, 1022, 286, 1022]}, {"rowIndex": 15, "columnIndex": + 3, "boundingBox": [976, 984, 1096, 984, 1096, 1022, 976, 1022], "text": ""}, + {"rowIndex": 15, "columnIndex": 4, "boundingBox": [1096, 984, 1192, 984, 1192, + 1022, 1096, 1022], "text": ""}, {"rowIndex": 15, "columnIndex": 5, "boundingBox": + [1192, 984, 1318, 984, 1318, 1022, 1192, 1022], "text": ""}, {"rowIndex": + 15, "columnIndex": 6, "boundingBox": [1318, 984, 1407, 984, 1407, 1022, 1318, + 1022], "text": ""}, {"rowIndex": 15, "columnIndex": 7, "boundingBox": [1407, + 984, 1624, 985, 1624, 1022, 1407, 1022], "text": ""}, {"rowIndex": 16, "columnIndex": + 0, "text": "2", "boundingBox": [49, 1022, 167, 1022, 167, 1060, 49, 1060]}, + {"rowIndex": 16, "columnIndex": 1, "text": "2", "boundingBox": [167, 1022, + 286, 1022, 286, 1060, 167, 1060]}, {"rowIndex": 16, "columnIndex": 2, "text": + "6566565 unit", "boundingBox": [286, 1022, 976, 1022, 976, 1060, 286, 1060]}, + {"rowIndex": 16, "columnIndex": 3, "boundingBox": [976, 1022, 1096, 1022, + 1096, 1060, 976, 1060], "text": ""}, {"rowIndex": 16, "columnIndex": 4, "boundingBox": + [1096, 1022, 1192, 1022, 1192, 1060, 1096, 1060], "text": ""}, {"rowIndex": + 16, "columnIndex": 5, "boundingBox": [1192, 1022, 1318, 1022, 1318, 1060, + 1192, 1060], "text": ""}, {"rowIndex": 16, "columnIndex": 6, "boundingBox": + [1318, 1022, 1407, 1022, 1407, 1060, 1318, 1060], "text": ""}, {"rowIndex": + 16, "columnIndex": 7, "boundingBox": [1407, 1022, 1624, 1022, 1624, 1060, + 1407, 1060], "text": ""}, {"rowIndex": 17, "columnIndex": 0, "boundingBox": + [49, 1060, 167, 1060, 167, 1099, 49, 1099], "text": ""}, {"rowIndex": 17, + "columnIndex": 1, "boundingBox": [167, 1060, 286, 1060, 286, 1099, 167, 1099], + "text": ""}, {"rowIndex": 17, "columnIndex": 2, "text": "S/N: 656656", "boundingBox": + [286, 1060, 976, 1060, 976, 1099, 286, 1099]}, {"rowIndex": 17, "columnIndex": + 3, "boundingBox": [976, 1060, 1096, 1060, 1096, 1099, 976, 1099], "text": + ""}, {"rowIndex": 17, "columnIndex": 4, "boundingBox": [1096, 1060, 1192, + 1060, 1192, 1099, 1096, 1099], "text": ""}, {"rowIndex": 17, "columnIndex": + 5, "boundingBox": [1192, 1060, 1318, 1060, 1318, 1099, 1192, 1099], "text": + ""}, {"rowIndex": 17, "columnIndex": 6, "boundingBox": [1318, 1060, 1407, + 1060, 1407, 1099, 1318, 1099], "text": ""}, {"rowIndex": 17, "columnIndex": + 7, "boundingBox": [1407, 1060, 1624, 1060, 1624, 1099, 1407, 1099], "text": + ""}, {"rowIndex": 18, "columnIndex": 0, "boundingBox": [49, 1099, 167, 1099, + 167, 1137, 49, 1137], "text": ""}, {"rowIndex": 18, "columnIndex": 1, "boundingBox": + [167, 1099, 286, 1099, 286, 1137, 167, 1137], "text": ""}, {"rowIndex": 18, + "columnIndex": 2, "text": "S/N: 656656", "boundingBox": [286, 1099, 976, 1099, + 976, 1139, 286, 1137]}, {"rowIndex": 18, "columnIndex": 3, "boundingBox": + [976, 1099, 1096, 1099, 1096, 1139, 976, 1139], "text": ""}, {"rowIndex": + 18, "columnIndex": 4, "boundingBox": [1096, 1099, 1192, 1099, 1192, 1139, + 1096, 1139], "text": ""}, {"rowIndex": 18, "columnIndex": 5, "boundingBox": + [1192, 1099, 1318, 1099, 1318, 1139, 1192, 1139], "text": ""}, {"rowIndex": + 18, "columnIndex": 6, "boundingBox": [1318, 1099, 1407, 1099, 1407, 1139, + 1318, 1139], "text": ""}, {"rowIndex": 18, "columnIndex": 7, "boundingBox": + [1407, 1099, 1624, 1099, 1624, 1139, 1407, 1139], "text": ""}, {"rowIndex": + 19, "columnIndex": 0, "text": "1", "boundingBox": [49, 1137, 167, 1137, 167, + 1177, 49, 1177]}, {"rowIndex": 19, "columnIndex": 1, "text": "1", "boundingBox": + [167, 1137, 286, 1137, 286, 1177, 167, 1177]}, {"rowIndex": 19, "columnIndex": + 2, "text": "6566565 unit", "boundingBox": [286, 1137, 976, 1139, 976, 1179, + 286, 1177]}, {"rowIndex": 19, "columnIndex": 3, "boundingBox": [976, 1139, + 1096, 1139, 1096, 1179, 976, 1179], "text": ""}, {"rowIndex": 19, "columnIndex": + 4, "boundingBox": [1096, 1139, 1192, 1139, 1192, 1179, 1096, 1179], "text": + ""}, {"rowIndex": 19, "columnIndex": 5, "boundingBox": [1192, 1139, 1318, + 1139, 1318, 1179, 1192, 1179], "text": ""}, {"rowIndex": 19, "columnIndex": + 6, "boundingBox": [1318, 1139, 1407, 1139, 1407, 1179, 1318, 1179], "text": + ""}, {"rowIndex": 19, "columnIndex": 7, "boundingBox": [1407, 1139, 1624, + 1139, 1624, 1179, 1407, 1179], "text": ""}, {"rowIndex": 20, "columnIndex": + 0, "text": "1", "boundingBox": [49, 1177, 167, 1177, 167, 1215, 49, 1217]}, + {"rowIndex": 20, "columnIndex": 1, "text": "1", "boundingBox": [167, 1177, + 286, 1177, 286, 1215, 167, 1215]}, {"rowIndex": 20, "columnIndex": 2, "text": + "6566565 unit", "boundingBox": [286, 1177, 976, 1179, 976, 1217, 286, 1215]}, + {"rowIndex": 20, "columnIndex": 3, "boundingBox": [976, 1179, 1096, 1179, + 1096, 1217, 976, 1217], "text": ""}, {"rowIndex": 20, "columnIndex": 4, "boundingBox": + [1096, 1179, 1192, 1179, 1192, 1217, 1096, 1217], "text": ""}, {"rowIndex": + 20, "columnIndex": 5, "boundingBox": [1192, 1179, 1318, 1179, 1318, 1217, + 1192, 1217], "text": ""}, {"rowIndex": 20, "columnIndex": 6, "boundingBox": + [1318, 1179, 1407, 1179, 1407, 1217, 1318, 1217], "text": ""}, {"rowIndex": + 20, "columnIndex": 7, "boundingBox": [1407, 1179, 1624, 1179, 1624, 1217, + 1407, 1217], "text": ""}, {"rowIndex": 21, "columnIndex": 0, "text": "1", + "boundingBox": [49, 1217, 167, 1215, 167, 1255, 49, 1255]}, {"rowIndex": 21, + "columnIndex": 1, "text": "1", "boundingBox": [167, 1215, 286, 1215, 286, + 1255, 167, 1255]}, {"rowIndex": 21, "columnIndex": 2, "text": "6566565 unit", + "boundingBox": [286, 1215, 976, 1217, 976, 1255, 286, 1255]}, {"rowIndex": + 21, "columnIndex": 3, "boundingBox": [976, 1217, 1096, 1217, 1096, 1255, 976, + 1255], "text": ""}, {"rowIndex": 21, "columnIndex": 4, "boundingBox": [1096, + 1217, 1192, 1217, 1192, 1255, 1096, 1255], "text": ""}, {"rowIndex": 21, "columnIndex": + 5, "boundingBox": [1192, 1217, 1318, 1217, 1318, 1255, 1192, 1255], "text": + ""}, {"rowIndex": 21, "columnIndex": 6, "boundingBox": [1318, 1217, 1407, + 1217, 1407, 1255, 1318, 1255], "text": ""}, {"rowIndex": 21, "columnIndex": + 7, "boundingBox": [1407, 1217, 1624, 1217, 1624, 1255, 1407, 1255], "text": + ""}, {"rowIndex": 22, "columnIndex": 0, "text": "1", "boundingBox": [49, 1255, + 167, 1255, 167, 1294, 49, 1294]}, {"rowIndex": 22, "columnIndex": 1, "text": + "1", "boundingBox": [167, 1255, 286, 1255, 286, 1294, 167, 1294]}, {"rowIndex": + 22, "columnIndex": 2, "text": "6566565 unit", "boundingBox": [286, 1255, 976, + 1255, 976, 1294, 286, 1294]}, {"rowIndex": 22, "columnIndex": 3, "boundingBox": + [976, 1255, 1096, 1255, 1096, 1294, 976, 1294], "text": ""}, {"rowIndex": + 22, "columnIndex": 4, "boundingBox": [1096, 1255, 1192, 1255, 1192, 1294, + 1096, 1294], "text": ""}, {"rowIndex": 22, "columnIndex": 5, "boundingBox": + [1192, 1255, 1318, 1255, 1318, 1294, 1192, 1294], "text": ""}, {"rowIndex": + 22, "columnIndex": 6, "boundingBox": [1318, 1255, 1407, 1255, 1407, 1294, + 1318, 1294], "text": ""}, {"rowIndex": 22, "columnIndex": 7, "boundingBox": + [1407, 1255, 1624, 1255, 1624, 1295, 1407, 1294], "text": ""}, {"rowIndex": + 23, "columnIndex": 0, "text": "1", "boundingBox": [49, 1294, 167, 1294, 167, + 1332, 49, 1332]}, {"rowIndex": 23, "columnIndex": 1, "text": "1", "boundingBox": + [167, 1294, 286, 1294, 286, 1332, 167, 1332]}, {"rowIndex": 23, "columnIndex": + 2, "text": "6566565 unit", "boundingBox": [286, 1294, 976, 1294, 976, 1332, + 286, 1332]}, {"rowIndex": 23, "columnIndex": 3, "boundingBox": [976, 1294, + 1096, 1294, 1096, 1332, 976, 1332], "text": ""}, {"rowIndex": 23, "columnIndex": + 4, "boundingBox": [1096, 1294, 1192, 1294, 1192, 1332, 1096, 1332], "text": + ""}, {"rowIndex": 23, "columnIndex": 5, "boundingBox": [1192, 1294, 1318, + 1294, 1318, 1332, 1192, 1332], "text": ""}, {"rowIndex": 23, "columnIndex": + 6, "boundingBox": [1318, 1294, 1407, 1294, 1407, 1334, 1318, 1332], "text": + ""}, {"rowIndex": 23, "columnIndex": 7, "boundingBox": [1407, 1294, 1624, + 1295, 1624, 1334, 1407, 1334], "text": ""}, {"rowIndex": 24, "columnIndex": + 0, "boundingBox": [49, 1332, 167, 1332, 167, 1370, 49, 1370], "text": ""}, + {"rowIndex": 24, "columnIndex": 1, "boundingBox": [167, 1332, 286, 1332, 286, + 1370, 167, 1370], "text": ""}, {"rowIndex": 24, "columnIndex": 2, "text": + "S/N: 656656", "boundingBox": [286, 1332, 976, 1332, 976, 1370, 286, 1370]}, + {"rowIndex": 24, "columnIndex": 3, "boundingBox": [976, 1332, 1096, 1332, + 1096, 1370, 976, 1370], "text": ""}, {"rowIndex": 24, "columnIndex": 4, "boundingBox": + [1096, 1332, 1192, 1332, 1192, 1372, 1096, 1370], "text": ""}, {"rowIndex": + 24, "columnIndex": 5, "boundingBox": [1192, 1332, 1318, 1332, 1318, 1372, + 1192, 1372], "text": ""}, {"rowIndex": 24, "columnIndex": 6, "boundingBox": + [1318, 1332, 1407, 1334, 1407, 1370, 1318, 1372], "text": ""}, {"rowIndex": + 24, "columnIndex": 7, "boundingBox": [1407, 1334, 1624, 1334, 1624, 1372, + 1407, 1370], "text": ""}, {"rowIndex": 25, "columnIndex": 0, "text": "1", + "boundingBox": [49, 1370, 167, 1370, 167, 1410, 49, 1410]}, {"rowIndex": 25, + "columnIndex": 1, "text": "1", "boundingBox": [167, 1370, 286, 1370, 286, + 1410, 167, 1410]}, {"rowIndex": 25, "columnIndex": 2, "text": "6566565 unit", + "boundingBox": [286, 1370, 976, 1370, 976, 1412, 286, 1410]}, {"rowIndex": + 25, "columnIndex": 3, "boundingBox": [976, 1370, 1096, 1370, 1096, 1412, 976, + 1412], "text": ""}, {"rowIndex": 25, "columnIndex": 4, "boundingBox": [1096, + 1370, 1192, 1372, 1192, 1412, 1096, 1412], "text": ""}, {"rowIndex": 25, "columnIndex": + 5, "boundingBox": [1192, 1372, 1318, 1372, 1318, 1412, 1192, 1412], "text": + ""}, {"rowIndex": 25, "columnIndex": 6, "boundingBox": [1318, 1372, 1407, + 1370, 1407, 1412, 1318, 1412], "text": ""}, {"rowIndex": 25, "columnIndex": + 7, "boundingBox": [1407, 1370, 1624, 1372, 1624, 1412, 1407, 1412], "text": + ""}, {"rowIndex": 26, "columnIndex": 0, "boundingBox": [49, 1410, 167, 1410, + 167, 1449, 49, 1449], "text": ""}, {"rowIndex": 26, "columnIndex": 1, "boundingBox": + [167, 1410, 286, 1410, 286, 1449, 167, 1449], "text": ""}, {"rowIndex": 26, + "columnIndex": 2, "text": "Water", "boundingBox": [286, 1410, 976, 1412, 976, + 1449, 286, 1449]}, {"rowIndex": 26, "columnIndex": 3, "boundingBox": [976, + 1412, 1096, 1412, 1096, 1449, 976, 1449], "text": ""}, {"rowIndex": 26, "columnIndex": + 4, "boundingBox": [1096, 1412, 1192, 1412, 1192, 1449, 1096, 1449], "text": + ""}, {"rowIndex": 26, "columnIndex": 5, "boundingBox": [1192, 1412, 1318, + 1412, 1318, 1449, 1192, 1449], "text": ""}, {"rowIndex": 26, "columnIndex": + 6, "boundingBox": [1318, 1412, 1407, 1412, 1407, 1449, 1318, 1449], "text": + ""}, {"rowIndex": 26, "columnIndex": 7, "boundingBox": [1407, 1412, 1624, + 1412, 1624, 1450, 1407, 1449], "text": ""}, {"rowIndex": 27, "columnIndex": + 0, "boundingBox": [49, 1449, 167, 1449, 167, 1490, 49, 1490], "text": ""}, + {"rowIndex": 27, "columnIndex": 1, "boundingBox": [167, 1449, 286, 1449, 286, + 1490, 167, 1490], "text": ""}, {"rowIndex": 27, "columnIndex": 2, "text": + "Water", "boundingBox": [286, 1449, 976, 1449, 976, 1490, 286, 1490]}, {"rowIndex": + 27, "columnIndex": 3, "boundingBox": [976, 1449, 1096, 1449, 1096, 1490, 976, + 1490], "text": ""}, {"rowIndex": 27, "columnIndex": 4, "boundingBox": [1096, + 1449, 1192, 1449, 1192, 1492, 1096, 1490], "text": ""}, {"rowIndex": 27, "columnIndex": + 5, "boundingBox": [1192, 1449, 1318, 1449, 1318, 1492, 1192, 1492], "text": + ""}, {"rowIndex": 27, "columnIndex": 6, "boundingBox": [1318, 1449, 1407, + 1449, 1407, 1492, 1318, 1492], "text": ""}, {"rowIndex": 27, "columnIndex": + 7, "boundingBox": [1407, 1449, 1624, 1450, 1624, 1492, 1407, 1492], "text": + ""}, {"rowIndex": 28, "columnIndex": 0, "boundingBox": [49, 1490, 167, 1490, + 167, 1532, 48, 1532], "text": ""}, {"rowIndex": 28, "columnIndex": 1, "boundingBox": + [167, 1490, 286, 1490, 284, 1532, 167, 1532], "text": ""}, {"rowIndex": 28, + "columnIndex": 2, "text": "Water", "boundingBox": [286, 1490, 976, 1490, 976, + 1532, 284, 1532]}, {"rowIndex": 28, "columnIndex": 3, "boundingBox": [976, + 1490, 1096, 1490, 1096, 1534, 976, 1532], "text": ""}, {"rowIndex": 28, "columnIndex": + 4, "boundingBox": [1096, 1490, 1192, 1492, 1192, 1534, 1096, 1534], "text": + ""}, {"rowIndex": 28, "columnIndex": 5, "boundingBox": [1192, 1492, 1318, + 1492, 1318, 1534, 1192, 1534], "text": ""}, {"rowIndex": 28, "columnIndex": + 6, "boundingBox": [1318, 1492, 1407, 1492, 1407, 1534, 1318, 1534], "text": + ""}, {"rowIndex": 28, "columnIndex": 7, "boundingBox": [1407, 1492, 1624, + 1492, 1624, 1534, 1407, 1534], "text": ""}, {"rowIndex": 29, "columnIndex": + 0, "boundingBox": [48, 1532, 167, 1532, 167, 1570, 48, 1570], "text": ""}, + {"rowIndex": 29, "columnIndex": 1, "boundingBox": [167, 1532, 284, 1532, 284, + 1570, 167, 1570], "text": ""}, {"rowIndex": 29, "columnIndex": 2, "text": + "Water", "boundingBox": [284, 1532, 976, 1532, 976, 1572, 284, 1570]}, {"rowIndex": + 29, "columnIndex": 3, "boundingBox": [976, 1532, 1096, 1534, 1096, 1572, 976, + 1572], "text": ""}, {"rowIndex": 29, "columnIndex": 4, "boundingBox": [1096, + 1534, 1192, 1534, 1192, 1572, 1096, 1572], "text": ""}, {"rowIndex": 29, "columnIndex": + 5, "boundingBox": [1192, 1534, 1318, 1534, 1318, 1572, 1192, 1572], "text": + ""}, {"rowIndex": 29, "columnIndex": 6, "boundingBox": [1318, 1534, 1407, + 1534, 1407, 1572, 1318, 1572], "text": ""}, {"rowIndex": 29, "columnIndex": + 7, "boundingBox": [1407, 1534, 1624, 1534, 1624, 1570, 1407, 1572], "text": + ""}, {"rowIndex": 30, "columnIndex": 0, "boundingBox": [48, 1570, 167, 1570, + 167, 1608, 48, 1608], "text": ""}, {"rowIndex": 30, "columnIndex": 1, "boundingBox": + [167, 1570, 284, 1570, 284, 1608, 167, 1608], "text": ""}, {"rowIndex": 30, + "columnIndex": 2, "text": "Water", "boundingBox": [284, 1570, 976, 1572, 976, + 1610, 284, 1608]}, {"rowIndex": 30, "columnIndex": 3, "boundingBox": [976, + 1572, 1096, 1572, 1096, 1608, 976, 1610], "text": ""}, {"rowIndex": 30, "columnIndex": + 4, "boundingBox": [1096, 1572, 1192, 1572, 1192, 1608, 1096, 1608], "text": + ""}, {"rowIndex": 30, "columnIndex": 5, "boundingBox": [1192, 1572, 1318, + 1572, 1318, 1608, 1192, 1608], "text": ""}, {"rowIndex": 30, "columnIndex": + 6, "boundingBox": [1318, 1572, 1407, 1572, 1407, 1610, 1318, 1608], "text": + ""}, {"rowIndex": 30, "columnIndex": 7, "boundingBox": [1407, 1572, 1624, + 1570, 1624, 1610, 1407, 1610], "text": ""}, {"rowIndex": 31, "columnIndex": + 0, "boundingBox": [48, 1608, 167, 1608, 165, 1650, 48, 1650], "text": ""}, + {"rowIndex": 31, "columnIndex": 1, "boundingBox": [167, 1608, 284, 1608, 284, + 1650, 165, 1650], "text": ""}, {"rowIndex": 31, "columnIndex": 2, "text": + "Water", "boundingBox": [284, 1608, 976, 1610, 976, 1650, 284, 1650]}, {"rowIndex": + 31, "columnIndex": 3, "boundingBox": [976, 1610, 1096, 1608, 1096, 1652, 976, + 1650], "text": ""}, {"rowIndex": 31, "columnIndex": 4, "boundingBox": [1096, + 1608, 1192, 1608, 1192, 1652, 1096, 1652], "text": ""}, {"rowIndex": 31, "columnIndex": + 5, "boundingBox": [1192, 1608, 1318, 1608, 1318, 1652, 1192, 1652], "text": + ""}, {"rowIndex": 31, "columnIndex": 6, "boundingBox": [1318, 1608, 1407, + 1610, 1407, 1652, 1318, 1652], "text": ""}, {"rowIndex": 31, "columnIndex": + 7, "boundingBox": [1407, 1610, 1624, 1610, 1624, 1652, 1407, 1652], "text": + ""}, {"rowIndex": 32, "columnIndex": 0, "boundingBox": [48, 1650, 165, 1650, + 165, 1692, 48, 1692], "text": ""}, {"rowIndex": 32, "columnIndex": 1, "boundingBox": + [165, 1650, 284, 1650, 284, 1692, 165, 1692], "text": ""}, {"rowIndex": 32, + "columnIndex": 2, "text": "Water", "boundingBox": [284, 1650, 976, 1650, 976, + 1693, 284, 1692]}, {"rowIndex": 32, "columnIndex": 3, "boundingBox": [976, + 1650, 1096, 1652, 1096, 1692, 976, 1693], "text": ""}, {"rowIndex": 32, "columnIndex": + 4, "boundingBox": [1096, 1652, 1192, 1652, 1192, 1692, 1096, 1692], "text": + ""}, {"rowIndex": 32, "columnIndex": 5, "boundingBox": [1192, 1652, 1318, + 1652, 1318, 1692, 1192, 1692], "text": ""}, {"rowIndex": 32, "columnIndex": + 6, "boundingBox": [1318, 1652, 1407, 1652, 1407, 1693, 1318, 1692], "text": + ""}, {"rowIndex": 32, "columnIndex": 7, "boundingBox": [1407, 1652, 1624, + 1652, 1624, 1693, 1407, 1693], "text": ""}, {"rowIndex": 33, "columnIndex": + 0, "boundingBox": [48, 1692, 165, 1692, 165, 1730, 48, 1730], "text": ""}, + {"rowIndex": 33, "columnIndex": 1, "boundingBox": [165, 1692, 284, 1692, 284, + 1730, 165, 1730], "text": ""}, {"rowIndex": 33, "columnIndex": 2, "text": + "Water", "boundingBox": [284, 1692, 976, 1693, 976, 1732, 284, 1730]}, {"rowIndex": + 33, "columnIndex": 3, "boundingBox": [976, 1693, 1096, 1692, 1096, 1732, 976, + 1732], "text": ""}, {"rowIndex": 33, "columnIndex": 4, "boundingBox": [1096, + 1692, 1192, 1692, 1192, 1732, 1096, 1732], "text": ""}, {"rowIndex": 33, "columnIndex": + 5, "boundingBox": [1192, 1692, 1318, 1692, 1318, 1732, 1192, 1732], "text": + ""}, {"rowIndex": 33, "columnIndex": 6, "boundingBox": [1318, 1692, 1407, + 1693, 1407, 1732, 1318, 1732], "text": ""}, {"rowIndex": 33, "columnIndex": + 7, "boundingBox": [1407, 1693, 1624, 1693, 1624, 1732, 1407, 1732], "text": + ""}, {"rowIndex": 34, "columnIndex": 0, "boundingBox": [48, 1730, 165, 1730, + 165, 1770, 48, 1770], "text": ""}, {"rowIndex": 34, "columnIndex": 1, "boundingBox": + [165, 1730, 284, 1730, 284, 1770, 165, 1770], "text": ""}, {"rowIndex": 34, + "columnIndex": 2, "text": "Water", "boundingBox": [284, 1730, 976, 1732, 976, + 1772, 284, 1770]}, {"rowIndex": 34, "columnIndex": 3, "boundingBox": [976, + 1732, 1096, 1732, 1096, 1772, 976, 1772], "text": ""}, {"rowIndex": 34, "columnIndex": + 4, "boundingBox": [1096, 1732, 1192, 1732, 1192, 1772, 1096, 1772], "text": + ""}, {"rowIndex": 34, "columnIndex": 5, "boundingBox": [1192, 1732, 1318, + 1732, 1318, 1772, 1192, 1772], "text": ""}, {"rowIndex": 34, "columnIndex": + 6, "boundingBox": [1318, 1732, 1407, 1732, 1407, 1772, 1318, 1772], "text": + ""}, {"rowIndex": 34, "columnIndex": 7, "boundingBox": [1407, 1732, 1624, + 1732, 1624, 1772, 1407, 1772], "text": ""}, {"rowIndex": 35, "columnIndex": + 0, "boundingBox": [48, 1770, 165, 1770, 165, 1808, 48, 1808], "text": ""}, + {"rowIndex": 35, "columnIndex": 1, "boundingBox": [165, 1770, 284, 1770, 284, + 1808, 165, 1808], "text": ""}, {"rowIndex": 35, "columnIndex": 2, "text": + "Water", "boundingBox": [284, 1770, 976, 1772, 976, 1808, 284, 1808]}, {"rowIndex": + 35, "columnIndex": 3, "boundingBox": [976, 1772, 1096, 1772, 1096, 1808, 976, + 1808], "text": ""}, {"rowIndex": 35, "columnIndex": 4, "boundingBox": [1096, + 1772, 1192, 1772, 1192, 1808, 1096, 1808], "text": ""}, {"rowIndex": 35, "columnIndex": + 5, "boundingBox": [1192, 1772, 1318, 1772, 1318, 1808, 1192, 1808], "text": + ""}, {"rowIndex": 35, "columnIndex": 6, "boundingBox": [1318, 1772, 1407, + 1772, 1407, 1808, 1318, 1808], "text": ""}, {"rowIndex": 35, "columnIndex": + 7, "boundingBox": [1407, 1772, 1624, 1772, 1624, 1810, 1407, 1808], "text": + ""}, {"rowIndex": 36, "columnIndex": 0, "boundingBox": [48, 1808, 165, 1808, + 165, 1850, 48, 1850], "text": ""}, {"rowIndex": 36, "columnIndex": 1, "boundingBox": + [165, 1808, 284, 1808, 284, 1850, 165, 1850], "text": ""}, {"rowIndex": 36, + "columnIndex": 2, "text": "S/N: 656656", "boundingBox": [284, 1808, 976, 1808, + 976, 1850, 284, 1850]}, {"rowIndex": 36, "columnIndex": 3, "boundingBox": + [976, 1808, 1096, 1808, 1096, 1850, 976, 1850], "text": ""}, {"rowIndex": + 36, "columnIndex": 4, "boundingBox": [1096, 1808, 1192, 1808, 1192, 1850, + 1096, 1850], "text": ""}, {"rowIndex": 36, "columnIndex": 5, "boundingBox": + [1192, 1808, 1318, 1808, 1318, 1850, 1192, 1850], "text": ""}, {"rowIndex": + 36, "columnIndex": 6, "boundingBox": [1318, 1808, 1407, 1808, 1407, 1850, + 1318, 1850], "text": ""}, {"rowIndex": 36, "columnIndex": 7, "boundingBox": + [1407, 1808, 1624, 1810, 1624, 1848, 1407, 1850], "text": ""}, {"rowIndex": + 37, "columnIndex": 0, "text": "1", "boundingBox": [48, 1850, 165, 1850, 165, + 1913, 48, 1913]}, {"rowIndex": 37, "columnIndex": 1, "text": "1", "boundingBox": + [165, 1850, 284, 1850, 284, 1913, 165, 1913]}, {"rowIndex": 37, "columnIndex": + 2, "text": "6566565 unit", "boundingBox": [284, 1850, 976, 1850, 976, 1913, + 284, 1913]}, {"rowIndex": 37, "columnIndex": 3, "boundingBox": [976, 1850, + 1096, 1850, 1096, 1913, 976, 1913], "text": ""}, {"rowIndex": 37, "columnIndex": + 4, "boundingBox": [1096, 1850, 1192, 1850, 1192, 1913, 1096, 1913], "text": + ""}, {"rowIndex": 37, "columnIndex": 5, "boundingBox": [1192, 1850, 1318, + 1850, 1318, 1913, 1192, 1913], "text": ""}, {"rowIndex": 37, "columnIndex": + 6, "boundingBox": [1318, 1850, 1407, 1850, 1407, 1913, 1318, 1913], "text": + ""}, {"rowIndex": 37, "columnIndex": 7, "boundingBox": [1407, 1850, 1624, + 1848, 1624, 1913, 1407, 1913], "text": ""}, {"rowIndex": 38, "columnIndex": + 0, "boundingBox": [48, 1913, 165, 1913, 165, 1957, 48, 1957], "text": ""}, + {"rowIndex": 38, "columnIndex": 1, "boundingBox": [165, 1913, 284, 1913, 284, + 1957, 165, 1957], "text": ""}, {"rowIndex": 38, "columnIndex": 2, "boundingBox": + [284, 1913, 976, 1913, 976, 1958, 284, 1957], "text": ""}, {"rowIndex": 38, + "columnIndex": 3, "boundingBox": [976, 1913, 1096, 1913, 1096, 1958, 976, + 1958], "text": ""}, {"rowIndex": 38, "columnIndex": 4, "boundingBox": [1096, + 1913, 1192, 1913, 1192, 1960, 1096, 1958], "text": ""}, {"rowIndex": 38, "columnIndex": + 5, "text": "Subtotal", "boundingBox": [1192, 1913, 1318, 1913, 1318, 1960, + 1192, 1960]}, {"rowIndex": 38, "columnIndex": 6, "boundingBox": [1318, 1913, + 1407, 1913, 1407, 1960, 1318, 1960], "text": ""}, {"rowIndex": 38, "columnIndex": + 7, "boundingBox": [1407, 1913, 1624, 1913, 1624, 1960, 1407, 1960], "text": + ""}], "boundingBox": [44, 330, 1627, 344, 1621, 1955, 38, 1940]}, {"rows": + 4, "columns": 2, "cells": [{"rowIndex": 0, "columnIndex": 0, "columnSpan": + 2, "boundingBox": [1191, 1913, 1624, 1914, 1625, 1956, 1192, 1954], "text": + ""}, {"rowIndex": 1, "columnIndex": 0, "text": "Tax", "boundingBox": [1192, + 1954, 1408, 1955, 1408, 1996, 1192, 1996]}, {"rowIndex": 1, "columnIndex": + 1, "boundingBox": [1408, 1955, 1625, 1956, 1625, 1997, 1408, 1996], "text": + ""}, {"rowIndex": 2, "columnIndex": 0, "text": "Freight", "boundingBox": [1192, + 1996, 1408, 1996, 1408, 2037, 1192, 2037]}, {"rowIndex": 2, "columnIndex": + 1, "boundingBox": [1408, 1996, 1625, 1997, 1625, 2038, 1408, 2037], "text": + ""}, {"rowIndex": 3, "columnIndex": 0, "text": "Total", "boundingBox": [1192, + 2037, 1408, 2037, 1408, 2079, 1192, 2079]}, {"rowIndex": 3, "columnIndex": + 1, "text": "$0.00", "boundingBox": [1408, 2037, 1625, 2038, 1625, 2079, 1408, + 2079]}], "boundingBox": [1190, 1914, 1627, 1914, 1627, 2082, 1190, 2082]}]}], + "documentResults": [{"docType": "prebuilt:invoice", "pageRange": [1, 1], "fields": + {"InvoiceId": {"type": "string", "valueString": "92 9292 92", "text": "92 + 9292 92", "boundingBox": [226.6, 162.5, 361, 160.3, 361.4, 185.5, 227, 187.7], + "page": 1, "confidence": 0.995}, "InvoiceTotal": {"type": "number", "valueNumber": + 0, "text": "$0.00", "boundingBox": [1563, 2052, 1618, 2052, 1618, 2074, 1563, + 2074], "page": 1, "confidence": 0.995}, "Items": {"type": "array", "valueArray": + [{"type": "object", "text": "1", "boundingBox": [153, 1146, 164, 1146, 164, + 1167, 153, 1167], "page": 1, "confidence": 0.027}, {"type": "object", "text": + "1", "boundingBox": [153, 1381, 162, 1381, 162, 1397, 152, 1396], "page": + 1, "confidence": 0.036}]}}}]}}' + headers: + apim-request-id: + - af94a55f-ba01-471b-9b94-cd178a8f8394 + content-length: + - '31689' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 07 Jun 2021 21:33:22 GMT + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-content-type-options: + - nosniff + x-envoy-upstream-service-time: + - '45' + status: + code: 200 + message: OK +version: 1 diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_invoice_from_url.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_invoice_from_url.py index 6f0a34621a36..d0ebc90e5a26 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_invoice_from_url.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/test_invoice_from_url.py @@ -311,3 +311,18 @@ def test_pages_kwarg_specified(self, client): assert '1' == poller._polling_method._initial_response.http_response.request.query['pages'] result = poller.result() assert result + + @FormRecognizerPreparer() + @GlobalClientPreparer() + def test_invoice_no_sub_line_items(self, client): + + poller = client.begin_recognize_invoices_from_url( + invoice_url=self.invoice_no_sub_line_item, + ) + + result = poller.result() + invoice = result[0] + assert invoice.fields["Items"].value[0].value == {} + assert invoice.fields["Items"].value[0].value_data.text == "1" + assert invoice.fields["Items"].value[1].value == {} + assert invoice.fields["Items"].value[1].value_data.text == "1" diff --git a/sdk/formrecognizer/azure-ai-formrecognizer/tests/testcase.py b/sdk/formrecognizer/azure-ai-formrecognizer/tests/testcase.py index e2f4db5080dc..f674184f69d6 100644 --- a/sdk/formrecognizer/azure-ai-formrecognizer/tests/testcase.py +++ b/sdk/formrecognizer/azure-ai-formrecognizer/tests/testcase.py @@ -156,6 +156,7 @@ def __init__(self, method_name): self.label_table_variable_row_url_pdf = self.get_blob_url(testing_container_sas_url, "testingdata", "label_table_variable_rows1.pdf") self.label_table_fixed_row_url_pdf = self.get_blob_url(testing_container_sas_url, "testingdata", "label_table_fixed_rows1.pdf") self.multipage_receipt_url_pdf = self.get_blob_url(testing_container_sas_url, "testingdata", "multipage_receipt.pdf") + self.invoice_no_sub_line_item = self.get_blob_url(testing_container_sas_url, "testingdata", "ErrorImage.tiff") # file stream samples self.receipt_jpg = os.path.abspath(os.path.join(os.path.abspath(__file__), "..", "./sample_forms/receipt/contoso-allinone.jpg"))