- 7个数据库表: suppliers, supply_contracts, supply_contract_items, sub_distributors, distribution_agreements, distribution_agreement_items, supplychain_accounting - CRUD JSON配置 (7个列表 + editable段) - API端点: create/update/delete (21个) + calculate_accounting + query_discount (2个) - 前端页面: index.ui + 5个功能页 + menu.ui - 记账计算: 自动查找有效合同/协议折扣,计算进货金额、分销金额、利润 - 折扣查找优先级: 精确产品 > 产品分类 > 默认折扣 - productid/prodtypeid引用product模块(即将开发)
52 lines
1.3 KiB
Bash
52 lines
1.3 KiB
Bash
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
cd "$SCRIPT_DIR"
|
|
|
|
# Find Sage root directory
|
|
SAGE_ROOT=""
|
|
for candidate in "$SCRIPT_DIR/../.." "$HOME/repos/sage" "$HOME/sage"; do
|
|
if [ -d "$candidate/wwwroot" ] && [ -d "$candidate/py3/bin" ]; then
|
|
SAGE_ROOT="$(cd "$candidate" && pwd)"
|
|
break
|
|
fi
|
|
done
|
|
|
|
if [ -z "$SAGE_ROOT" ]; then
|
|
echo "ERROR: Cannot find Sage root directory"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Sage root: $SAGE_ROOT"
|
|
|
|
# Install module
|
|
cd "$SCRIPT_DIR"
|
|
$SAGE_ROOT/py3/bin/pip install -e .
|
|
|
|
# Generate DDL from models
|
|
if [ -d "$SCRIPT_DIR/models" ]; then
|
|
echo "Generating DDL..."
|
|
cd "$SCRIPT_DIR/models"
|
|
$SAGE_ROOT/py3/bin/json2ddl mysql . > mysql.ddl.sql
|
|
echo "DDL generated: $SCRIPT_DIR/models/mysql.ddl.sql"
|
|
fi
|
|
|
|
# Generate CRUD UI from json definitions
|
|
if [ -d "$SCRIPT_DIR/json" ]; then
|
|
echo "Generating CRUD UI files..."
|
|
cd "$SCRIPT_DIR/json"
|
|
for f in *.json; do
|
|
echo " Processing $f..."
|
|
done
|
|
$SAGE_ROOT/py3/bin/xls2ui -m ../models -o ../wwwroot supplychain *.json
|
|
echo "CRUD UI files generated."
|
|
fi
|
|
|
|
# Create symlink in Sage wwwroot
|
|
echo "Creating wwwroot symlink..."
|
|
rm -f "$SAGE_ROOT/wwwroot/supplychain"
|
|
ln -s "$SCRIPT_DIR/wwwroot" "$SAGE_ROOT/wwwroot/supplychain"
|
|
|
|
echo "Build complete."
|