cli-dolibarr 3.2.0__tar.gz → 3.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/PKG-INFO +1 -1
- cli_dolibarr-3.2.1/cli_dolibarr/dolibarr/__init__.py +1 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/schema.py +8 -2
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/schema.json +287 -1
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr.egg-info/PKG-INFO +1 -1
- cli_dolibarr-3.2.0/cli_dolibarr/dolibarr/__init__.py +0 -1
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/LICENSE +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/README.md +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/README.md +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/__init__.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/_template.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/accountancy.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/agendaevents.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/apibridge.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/bankaccounts.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/boms.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/categories.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/config.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/contacts.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/contracts.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/delivery.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/documents.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/donations.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/expensereports.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/interventions.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/invoices.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/knowledge.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/login.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/member_types.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/members.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/mobilehub.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/mobilehubapi.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/mos.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/multicurrencies.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/orderprocessor.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/orders.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/partnerships.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/pdfa.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/products.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/projects.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/proposals.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/quickprint.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/receptions.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/recruitments.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/salaries.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/setup.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/shipments.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/status.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/stock.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/stockmodule.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/stockmovements.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/subscriptions.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/supplier_invoices.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/supplier_orders.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/supplier_proposals.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/supplierinvoices.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/supplierorders.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/supplierproposals.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/system.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/tasks.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/thirdparties.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/tickets.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/users.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/warehouses.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/webhook.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/workstations.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/zapier.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/core/__init__.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/core/client.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/core/config.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/core/output.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/core/schema_agents.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/core/schema_generator.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/core/schema_manager.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/core/session_client.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/dolibarr_cli.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/extrafields_cache.json +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/hermes_plugin/__init__.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/models_supplement.json +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/tests/__init__.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/tests/test_core.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/tests/test_enrich.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/tests/test_full_e2e.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/tests/test_tools.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/tools/__init__.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/tools/executor.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/tools/tools_schema.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/utils/__init__.py +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr.egg-info/SOURCES.txt +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr.egg-info/dependency_links.txt +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr.egg-info/entry_points.txt +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr.egg-info/requires.txt +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr.egg-info/top_level.txt +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/pyproject.toml +0 -0
- {cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/setup.cfg +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "3.2.1"
|
|
@@ -357,13 +357,13 @@ def refresh(ctx, admin_api_key):
|
|
|
357
357
|
4. Auto-infers remaining bad models
|
|
358
358
|
"""
|
|
359
359
|
client = _get_client(ctx)
|
|
360
|
+
original_key = client.session.headers.get('DOLAPIKEY', '')
|
|
360
361
|
resolved_key = _resolve_admin_key(ctx, admin_api_key)
|
|
361
|
-
if resolved_key:
|
|
362
|
-
client.session.headers['DOLAPIKEY'] = resolved_key
|
|
363
362
|
try:
|
|
364
363
|
manager = SchemaManager()
|
|
365
364
|
click.echo("Refreshing schema...")
|
|
366
365
|
|
|
366
|
+
# Step 1: sync with normal user key (swagger returns full API for normal users)
|
|
367
367
|
click.echo(" [1/4] Syncing from Dolibarr swagger...")
|
|
368
368
|
swagger = manager.fetch_swagger(client)
|
|
369
369
|
schema = manager.normalize(swagger)
|
|
@@ -372,7 +372,10 @@ def refresh(ctx, admin_api_key):
|
|
|
372
372
|
models_count = len(schema['models'])
|
|
373
373
|
click.echo(f" {endpoints} endpoints, {models_count} models")
|
|
374
374
|
|
|
375
|
+
# Step 2: extrafields with admin key (temporarily elevate permissions)
|
|
375
376
|
click.echo(" [2/4] Fetching extrafields...")
|
|
377
|
+
if resolved_key:
|
|
378
|
+
client.session.headers['DOLAPIKEY'] = resolved_key
|
|
376
379
|
ef_stats = {'injected_models': 0, 'injected_fields': 0, 'elementtypes': 0}
|
|
377
380
|
try:
|
|
378
381
|
ef_data = manager.fetch_extrafields(client)
|
|
@@ -381,6 +384,9 @@ def refresh(ctx, admin_api_key):
|
|
|
381
384
|
f"into {ef_stats['injected_models']} models")
|
|
382
385
|
except RuntimeError:
|
|
383
386
|
click.echo(" Skipped (requires admin API key)")
|
|
387
|
+
finally:
|
|
388
|
+
# Restore original key for subsequent steps
|
|
389
|
+
client.session.headers['DOLAPIKEY'] = original_key
|
|
384
390
|
|
|
385
391
|
click.echo(" [3/4] Enriching models...")
|
|
386
392
|
enrich_stats = manager.enrich()
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"synced_at": "2026-05-
|
|
2
|
+
"synced_at": "2026-05-23T12:37:44Z",
|
|
3
3
|
"source": "swagger",
|
|
4
4
|
"dolibarr_version": "1",
|
|
5
5
|
"endpoints": [
|
|
@@ -2984,6 +2984,244 @@
|
|
|
2984
2984
|
"request_body": null,
|
|
2985
2985
|
"response_schema": "string"
|
|
2986
2986
|
},
|
|
2987
|
+
{
|
|
2988
|
+
"path": "/productplus/hscode-specs",
|
|
2989
|
+
"method": "GET",
|
|
2990
|
+
"summary": "获取HS编码规格列表 🔐",
|
|
2991
|
+
"group": "productplus",
|
|
2992
|
+
"parameters": [
|
|
2993
|
+
{
|
|
2994
|
+
"name": "sortfield",
|
|
2995
|
+
"in": "query",
|
|
2996
|
+
"type": "string",
|
|
2997
|
+
"required": false
|
|
2998
|
+
},
|
|
2999
|
+
{
|
|
3000
|
+
"name": "sortorder",
|
|
3001
|
+
"in": "query",
|
|
3002
|
+
"type": "string",
|
|
3003
|
+
"required": false
|
|
3004
|
+
},
|
|
3005
|
+
{
|
|
3006
|
+
"name": "limit",
|
|
3007
|
+
"in": "query",
|
|
3008
|
+
"type": "integer",
|
|
3009
|
+
"required": false
|
|
3010
|
+
},
|
|
3011
|
+
{
|
|
3012
|
+
"name": "page",
|
|
3013
|
+
"in": "query",
|
|
3014
|
+
"type": "integer",
|
|
3015
|
+
"required": false
|
|
3016
|
+
}
|
|
3017
|
+
],
|
|
3018
|
+
"request_body": null,
|
|
3019
|
+
"response_schema": "array"
|
|
3020
|
+
},
|
|
3021
|
+
{
|
|
3022
|
+
"path": "/productplus/hscode-specs",
|
|
3023
|
+
"method": "POST",
|
|
3024
|
+
"summary": "创建HS编码规格 🔐",
|
|
3025
|
+
"group": "productplus",
|
|
3026
|
+
"parameters": [],
|
|
3027
|
+
"request_body": "productplusCreateHscodeSpecModel",
|
|
3028
|
+
"response_schema": "array"
|
|
3029
|
+
},
|
|
3030
|
+
{
|
|
3031
|
+
"path": "/productplus/hscode-specs/{id}",
|
|
3032
|
+
"method": "GET",
|
|
3033
|
+
"summary": "按ID获取HS编码规格 🔐",
|
|
3034
|
+
"group": "productplus",
|
|
3035
|
+
"parameters": [
|
|
3036
|
+
{
|
|
3037
|
+
"name": "id",
|
|
3038
|
+
"in": "path",
|
|
3039
|
+
"type": "integer",
|
|
3040
|
+
"required": true
|
|
3041
|
+
}
|
|
3042
|
+
],
|
|
3043
|
+
"request_body": null,
|
|
3044
|
+
"response_schema": "string"
|
|
3045
|
+
},
|
|
3046
|
+
{
|
|
3047
|
+
"path": "/productplus/hscode-specs/{id}",
|
|
3048
|
+
"method": "PUT",
|
|
3049
|
+
"summary": "更新HS编码规格 🔐",
|
|
3050
|
+
"group": "productplus",
|
|
3051
|
+
"parameters": [
|
|
3052
|
+
{
|
|
3053
|
+
"name": "id",
|
|
3054
|
+
"in": "path",
|
|
3055
|
+
"type": "integer",
|
|
3056
|
+
"required": true
|
|
3057
|
+
}
|
|
3058
|
+
],
|
|
3059
|
+
"request_body": "productplusUpdateHscodeSpecModel",
|
|
3060
|
+
"response_schema": "array"
|
|
3061
|
+
},
|
|
3062
|
+
{
|
|
3063
|
+
"path": "/productplus/hscode-specs/{id}",
|
|
3064
|
+
"method": "DELETE",
|
|
3065
|
+
"summary": "删除HS编码规格 🔐",
|
|
3066
|
+
"group": "productplus",
|
|
3067
|
+
"parameters": [
|
|
3068
|
+
{
|
|
3069
|
+
"name": "id",
|
|
3070
|
+
"in": "path",
|
|
3071
|
+
"type": "integer",
|
|
3072
|
+
"required": true
|
|
3073
|
+
}
|
|
3074
|
+
],
|
|
3075
|
+
"request_body": null,
|
|
3076
|
+
"response_schema": "array"
|
|
3077
|
+
},
|
|
3078
|
+
{
|
|
3079
|
+
"path": "/productplus/hscode-specs/by-code/{hscode}",
|
|
3080
|
+
"method": "GET",
|
|
3081
|
+
"summary": "按编码获取HS编码规格 🔐",
|
|
3082
|
+
"group": "productplus",
|
|
3083
|
+
"parameters": [
|
|
3084
|
+
{
|
|
3085
|
+
"name": "hscode",
|
|
3086
|
+
"in": "path",
|
|
3087
|
+
"type": "string",
|
|
3088
|
+
"required": true
|
|
3089
|
+
}
|
|
3090
|
+
],
|
|
3091
|
+
"request_body": null,
|
|
3092
|
+
"response_schema": "string"
|
|
3093
|
+
},
|
|
3094
|
+
{
|
|
3095
|
+
"path": "/productplus/currency-prices",
|
|
3096
|
+
"method": "GET",
|
|
3097
|
+
"summary": "获取多货币定价列表 🔐",
|
|
3098
|
+
"group": "productplus",
|
|
3099
|
+
"parameters": [
|
|
3100
|
+
{
|
|
3101
|
+
"name": "fk_product",
|
|
3102
|
+
"in": "query",
|
|
3103
|
+
"type": "integer",
|
|
3104
|
+
"required": false
|
|
3105
|
+
},
|
|
3106
|
+
{
|
|
3107
|
+
"name": "currency_code",
|
|
3108
|
+
"in": "query",
|
|
3109
|
+
"type": "string",
|
|
3110
|
+
"required": false
|
|
3111
|
+
},
|
|
3112
|
+
{
|
|
3113
|
+
"name": "fk_soc",
|
|
3114
|
+
"in": "query",
|
|
3115
|
+
"type": "integer",
|
|
3116
|
+
"required": false
|
|
3117
|
+
},
|
|
3118
|
+
{
|
|
3119
|
+
"name": "limit",
|
|
3120
|
+
"in": "query",
|
|
3121
|
+
"type": "integer",
|
|
3122
|
+
"required": false
|
|
3123
|
+
},
|
|
3124
|
+
{
|
|
3125
|
+
"name": "page",
|
|
3126
|
+
"in": "query",
|
|
3127
|
+
"type": "integer",
|
|
3128
|
+
"required": false
|
|
3129
|
+
}
|
|
3130
|
+
],
|
|
3131
|
+
"request_body": null,
|
|
3132
|
+
"response_schema": "array"
|
|
3133
|
+
},
|
|
3134
|
+
{
|
|
3135
|
+
"path": "/productplus/currency-prices",
|
|
3136
|
+
"method": "POST",
|
|
3137
|
+
"summary": "创建多货币定价 (Upsert逻辑) 🔐",
|
|
3138
|
+
"group": "productplus",
|
|
3139
|
+
"parameters": [],
|
|
3140
|
+
"request_body": "productplusCreateCurrencyPriceModel",
|
|
3141
|
+
"response_schema": "array"
|
|
3142
|
+
},
|
|
3143
|
+
{
|
|
3144
|
+
"path": "/productplus/currency-prices/{id}",
|
|
3145
|
+
"method": "GET",
|
|
3146
|
+
"summary": "按ID获取多货币定价 🔐",
|
|
3147
|
+
"group": "productplus",
|
|
3148
|
+
"parameters": [
|
|
3149
|
+
{
|
|
3150
|
+
"name": "id",
|
|
3151
|
+
"in": "path",
|
|
3152
|
+
"type": "integer",
|
|
3153
|
+
"required": true
|
|
3154
|
+
}
|
|
3155
|
+
],
|
|
3156
|
+
"request_body": null,
|
|
3157
|
+
"response_schema": "string"
|
|
3158
|
+
},
|
|
3159
|
+
{
|
|
3160
|
+
"path": "/productplus/currency-prices/{id}",
|
|
3161
|
+
"method": "PUT",
|
|
3162
|
+
"summary": "按ID更新多货币定价 🔐",
|
|
3163
|
+
"group": "productplus",
|
|
3164
|
+
"parameters": [
|
|
3165
|
+
{
|
|
3166
|
+
"name": "id",
|
|
3167
|
+
"in": "path",
|
|
3168
|
+
"type": "integer",
|
|
3169
|
+
"required": true
|
|
3170
|
+
}
|
|
3171
|
+
],
|
|
3172
|
+
"request_body": "productplusUpdateCurrencyPriceModel",
|
|
3173
|
+
"response_schema": "array"
|
|
3174
|
+
},
|
|
3175
|
+
{
|
|
3176
|
+
"path": "/productplus/currency-prices/{id}",
|
|
3177
|
+
"method": "DELETE",
|
|
3178
|
+
"summary": "删除多货币定价 🔐",
|
|
3179
|
+
"group": "productplus",
|
|
3180
|
+
"parameters": [
|
|
3181
|
+
{
|
|
3182
|
+
"name": "id",
|
|
3183
|
+
"in": "path",
|
|
3184
|
+
"type": "integer",
|
|
3185
|
+
"required": true
|
|
3186
|
+
}
|
|
3187
|
+
],
|
|
3188
|
+
"request_body": null,
|
|
3189
|
+
"response_schema": "array"
|
|
3190
|
+
},
|
|
3191
|
+
{
|
|
3192
|
+
"path": "/productplus/price-lookup",
|
|
3193
|
+
"method": "GET",
|
|
3194
|
+
"summary": "价格查询 - 阶梯价格 + 客户优先级 🔐",
|
|
3195
|
+
"group": "productplus",
|
|
3196
|
+
"parameters": [
|
|
3197
|
+
{
|
|
3198
|
+
"name": "id",
|
|
3199
|
+
"in": "query",
|
|
3200
|
+
"type": "integer",
|
|
3201
|
+
"required": false
|
|
3202
|
+
},
|
|
3203
|
+
{
|
|
3204
|
+
"name": "currency",
|
|
3205
|
+
"in": "query",
|
|
3206
|
+
"type": "string",
|
|
3207
|
+
"required": false
|
|
3208
|
+
},
|
|
3209
|
+
{
|
|
3210
|
+
"name": "qty",
|
|
3211
|
+
"in": "query",
|
|
3212
|
+
"type": "integer",
|
|
3213
|
+
"required": false
|
|
3214
|
+
},
|
|
3215
|
+
{
|
|
3216
|
+
"name": "socid",
|
|
3217
|
+
"in": "query",
|
|
3218
|
+
"type": "integer",
|
|
3219
|
+
"required": false
|
|
3220
|
+
}
|
|
3221
|
+
],
|
|
3222
|
+
"request_body": null,
|
|
3223
|
+
"response_schema": "array"
|
|
3224
|
+
},
|
|
2987
3225
|
{
|
|
2988
3226
|
"path": "/products/{id}",
|
|
2989
3227
|
"method": "GET",
|
|
@@ -11250,6 +11488,54 @@
|
|
|
11250
11488
|
}
|
|
11251
11489
|
}
|
|
11252
11490
|
},
|
|
11491
|
+
"productplusCreateHscodeSpecModel": {
|
|
11492
|
+
"properties": {
|
|
11493
|
+
"dummy": {
|
|
11494
|
+
"type": "integer",
|
|
11495
|
+
"description": "Restler POST参数占位"
|
|
11496
|
+
},
|
|
11497
|
+
"request_data": {
|
|
11498
|
+
"type": "array",
|
|
11499
|
+
"description": "请求体JSON"
|
|
11500
|
+
}
|
|
11501
|
+
}
|
|
11502
|
+
},
|
|
11503
|
+
"productplusUpdateHscodeSpecModel": {
|
|
11504
|
+
"properties": {
|
|
11505
|
+
"dummy": {
|
|
11506
|
+
"type": "integer",
|
|
11507
|
+
"description": "Restler PUT参数占位"
|
|
11508
|
+
},
|
|
11509
|
+
"request_data": {
|
|
11510
|
+
"type": "array",
|
|
11511
|
+
"description": "请求体JSON"
|
|
11512
|
+
}
|
|
11513
|
+
}
|
|
11514
|
+
},
|
|
11515
|
+
"productplusCreateCurrencyPriceModel": {
|
|
11516
|
+
"properties": {
|
|
11517
|
+
"dummy": {
|
|
11518
|
+
"type": "integer",
|
|
11519
|
+
"description": "Restler POST参数占位"
|
|
11520
|
+
},
|
|
11521
|
+
"request_data": {
|
|
11522
|
+
"type": "array",
|
|
11523
|
+
"description": "请求体JSON"
|
|
11524
|
+
}
|
|
11525
|
+
}
|
|
11526
|
+
},
|
|
11527
|
+
"productplusUpdateCurrencyPriceModel": {
|
|
11528
|
+
"properties": {
|
|
11529
|
+
"dummy": {
|
|
11530
|
+
"type": "integer",
|
|
11531
|
+
"description": "Restler PUT参数占位"
|
|
11532
|
+
},
|
|
11533
|
+
"request_data": {
|
|
11534
|
+
"type": "array",
|
|
11535
|
+
"description": "请求体JSON"
|
|
11536
|
+
}
|
|
11537
|
+
}
|
|
11538
|
+
},
|
|
11253
11539
|
"updateProductsModel": {
|
|
11254
11540
|
"properties": {
|
|
11255
11541
|
"label": {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "3.2.0"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/supplier_invoices.py
RENAMED
|
File without changes
|
|
File without changes
|
{cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/supplier_proposals.py
RENAMED
|
File without changes
|
{cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/supplierinvoices.py
RENAMED
|
File without changes
|
|
File without changes
|
{cli_dolibarr-3.2.0 → cli_dolibarr-3.2.1}/cli_dolibarr/dolibarr/commands/supplierproposals.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|