mcpField
A
accounts-payable-workflow

accounts-payable-workflow

github.com/dengineproblemその他66 回インストール
リポジトリ

accounts-payable-workflow について

買掛金業務向けのワークフロースキルで、請求書の確認、承認、支払い計画、指標の監視を扱います。発注書・受領記録・請求書の照合と職務分掌を重視します。

主な機能

  1. 01発注書・受領記録・請求書の三点照合
  2. 02請求書の検証と重複検出
  3. 03金額に応じた承認マトリクス
  4. 04早期支払い割引を考慮した支払い計画
  5. 05処理効率と例外率の監視

活用シーン

  1. 01支払い前の発注・受領・請求内容の照合
  2. 02重複請求書の検出と承認振り分け
  3. 03早期支払い割引を考慮した日程調整
  4. 04買掛金処理の効率追跡

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/dengineproblem/agents-monorepo --skill accounts-payable-workflow

インストール後、Claude Code で/accounts-payable-workflowを入力して読み込まれたか確認します。

詳細

買掛金ワークフローの専門家

買掛金ワークフローの専門家。

基本原則

三点照合
  • 発注書(PO):購入の承認
  • 商品受領書:納品の証明
  • 仕入先請求書:支払いの請求
  • 承認前に、3つすべての書類が一致している必要があります
職務分掌
  • 請求書の入力と承認は別の担当者が行います
  • 支払いの承認と実行は別々に行います
  • 仕入先の変更には二重承認が必要です

自動化されたワークフロー

class APWorkflowEngine:
    def __init__(self):
        self.tolerance_price = 0.05  # 5%
        self.tolerance_qty = 0.02    # 2%

    def process_invoice(self, invoice):
        # 1. Захват данных и валидация
        extracted_data = self.ocr_extract(invoice)
        validation = self.validate_invoice_data(extracted_data)

        if not validation.is_valid:
            return self.route_to_exception_queue(invoice)

        # 2. Трехстороннее сопоставление
        matching = self.perform_three_way_match(extracted_data)

        if matching.has_exceptions:
            if matching.within_tolerance(self.tolerance_price, self.tolerance_qty):
                return self.route_for_payment(extracted_data)
            else:
                return self.route_for_approval(extracted_data, matching)

        # 3. Маршрутизация по матрице утверждений
        return self.route_based_on_amount(extracted_data)

承認マトリックス

approval_matrix:
  department_managers:
    amount_limit: 10000
    auto_approve_tolerance: 0.02

  finance_director:
    amount_limit: 50000
    requires_backup_documentation: true

  cfo_approval:
    amount_limit: 250000
    requires_board_notification: true

重複の検出

def detect_duplicates(new_invoice):
    # Точные совпадения
    exact = db.query(
        "SELECT * FROM invoices WHERE vendor_id = ? AND invoice_number = ?",
        new_invoice.vendor_id, new_invoice.invoice_number
    )

    # Нечеткое сопоставление
    potential = db.query(
        """SELECT * FROM invoices
           WHERE vendor_id = ?
           AND invoice_date BETWEEN ? AND ?
           AND ABS(amount - ?) < ?""",
        new_invoice.vendor_id,
        new_invoice.invoice_date - timedelta(days=30),
        new_invoice.invoice_date + timedelta(days=30),
        new_invoice.amount,
        new_invoice.amount * 0.05
    )

    return {'exact': exact, 'potential': potential}

支払いの最適化

class PaymentScheduler:
    def optimize_payment_schedule(self, approved_invoices):
        for invoice in approved_invoices:
            # Скидка за досрочную оплату
            discount_deadline = invoice.due_date - timedelta(days=invoice.early_pay_days)
            discount_value = invoice.amount * (invoice.early_pay_rate / 100)

            if discount_deadline >= date.today() and discount_value > 100:
                payment_date = discount_deadline
                payment_amount = invoice.amount - discount_value
            else:
                payment_date = invoice.due_date - timedelta(days=2)
                payment_amount = invoice.amount

            yield {
                'invoice_id': invoice.id,
                'payment_date': payment_date,
                'payment_amount': payment_amount,
                'discount_captured': discount_value
            }

KPI モニタリング

def generate_ap_metrics(start_date, end_date):
    return {
        'processing_efficiency': {
            'average_processing_time': calc_avg_time(start_date, end_date),
            'straight_through_rate': calc_stp_rate(start_date, end_date),
            'exception_rate': calc_exception_rate(start_date, end_date)
        },
        'cost_savings': {
            'early_payment_discounts': sum_discounts(start_date, end_date),
            'duplicates_prevented': count_duplicates(start_date, end_date)
        },
        'compliance': {
            'three_way_match_rate': calc_3way_compliance(start_date, end_date),
            'sod_violations': count_sod_violations(start_date, end_date)
        }
    }

ベストプラクティス

  • OCR と ML を使用してデータ入力を自動化します
  • 仕入先向けセルフサービス・ポータルを導入します
  • 銀行情報を暗号化します
  • 完全な監査証跡を維持します
  • SOX への準拠状況を定期的にテストします

コメント