105 lines
2.1 KiB
Bash
Executable File
105 lines
2.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -u
|
|
set -o pipefail
|
|
|
|
BASE_URL="${BASE_URL:-http://127.0.0.1:8020}"
|
|
PGHOST="${PGHOST:-192.168.1.110}"
|
|
PGUSER="${PGUSER:-clientflow}"
|
|
PGDATABASE="${PGDATABASE:-clientflow}"
|
|
OPP_ID="${OPP_ID:-}"
|
|
|
|
if [ -z "${PGPASSWORD:-}" ]; then
|
|
echo "Define PGPASSWORD antes de correr."
|
|
exit 2
|
|
fi
|
|
|
|
psqlc() {
|
|
PGPASSWORD="$PGPASSWORD" PAGER=cat psql \
|
|
-h "$PGHOST" \
|
|
-U "$PGUSER" \
|
|
-d "$PGDATABASE" \
|
|
-v ON_ERROR_STOP=1 \
|
|
-c "$1"
|
|
}
|
|
|
|
psqlq() {
|
|
PGPASSWORD="$PGPASSWORD" PAGER=cat psql \
|
|
-h "$PGHOST" \
|
|
-U "$PGUSER" \
|
|
-d "$PGDATABASE" \
|
|
-At \
|
|
-v ON_ERROR_STOP=1 \
|
|
-c "$1"
|
|
}
|
|
|
|
if [ -z "$OPP_ID" ]; then
|
|
OPP_ID="$(psqlq "
|
|
SELECT opportunity_id
|
|
FROM operation_links
|
|
WHERE system='odoo'
|
|
AND external_type='sale_order'
|
|
ORDER BY updated_at DESC
|
|
LIMIT 1;
|
|
")"
|
|
fi
|
|
|
|
echo "== Teste estado físico Odoo =="
|
|
echo "OPP_ID=$OPP_ID"
|
|
echo
|
|
|
|
echo "Venda Odoo ligada:"
|
|
psqlc "
|
|
SELECT
|
|
opportunity_id,
|
|
external_id,
|
|
external_name,
|
|
external_url,
|
|
status,
|
|
updated_at
|
|
FROM operation_links
|
|
WHERE opportunity_id::text = '$OPP_ID'
|
|
AND system='odoo'
|
|
AND external_type='sale_order';
|
|
"
|
|
|
|
echo
|
|
echo -n "POST sync-status -> "
|
|
curl -s -o /dev/null -w "%{http_code}\n" \
|
|
-X POST "$BASE_URL/opportunities/$OPP_ID/odoo/sync-status"
|
|
|
|
echo
|
|
echo "Estado físico guardado:"
|
|
psqlc "
|
|
SELECT
|
|
opportunity_id,
|
|
external_id,
|
|
external_name,
|
|
status,
|
|
payload->>'label' AS label,
|
|
payload->>'reason' AS reason,
|
|
payload->>'next_action' AS next_action,
|
|
payload->>'ready_to_ship' AS ready_to_ship,
|
|
updated_at
|
|
FROM operation_links
|
|
WHERE opportunity_id::text = '$OPP_ID'
|
|
AND system='odoo'
|
|
AND external_type='physical_status'
|
|
ORDER BY updated_at DESC
|
|
LIMIT 1;
|
|
"
|
|
|
|
echo
|
|
echo "Resumo Odoo:"
|
|
psqlc "
|
|
SELECT
|
|
payload->'sale_order' AS sale_order,
|
|
jsonb_array_length(COALESCE(payload->'pickings', '[]'::jsonb)) AS pickings,
|
|
jsonb_array_length(COALESCE(payload->'productions', '[]'::jsonb)) AS productions
|
|
FROM operation_links
|
|
WHERE opportunity_id::text = '$OPP_ID'
|
|
AND system='odoo'
|
|
AND external_type='physical_status'
|
|
ORDER BY updated_at DESC
|
|
LIMIT 1;
|
|
"
|