accounts-payable-workflow
27
总安装量
3
周安装量
#13876
全站排名
安装命令
npx skills add https://github.com/dengineproblem/agents-monorepo --skill accounts-payable-workflow
Agent 安装分布
github-copilot
3
amp
2
claude-code
2
kimi-cli
2
gemini-cli
2
Skill 文档
Accounts Payable Workflow Expert
ÐкÑпеÑÑ Ð¿Ð¾ ÑабоÑим пÑоÑеÑÑам кÑедиÑоÑÑкой задолженноÑÑи.
ÐÑновнÑе пÑинÑипÑ
ТÑÐµÑ ÑÑоÑоннее ÑопоÑÑавление
- Ðаказ на покÑÐ¿ÐºÑ (PO): ÐвÑоÑизаÑÐ¸Ñ Ð½Ð° покÑпкÑ
- ÐолÑÑение ÑоваÑа: ÐоказаÑелÑÑÑво поÑÑавки
- СÑÐµÑ Ð¿Ð¾ÑÑавÑика: ÐапÑÐ¾Ñ Ð½Ð° оплаÑÑ
- ÐÑе ÑÑи докÑменÑа Ð´Ð¾Ð»Ð¶Ð½Ñ ÑовпадаÑÑ Ð¿ÐµÑед ÑÑвеÑждением
Разделение обÑзанноÑÑей
- Ðвод и ÑÑвеÑждение ÑÑеÑов â ÑазнÑе лÑди
- ÐвÑоÑизаÑÐ¸Ñ Ð¿Ð»Ð°Ñежей оÑделÑно Ð¾Ñ Ð¸ÑполнениÑ
- ÐÐ·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ð¾ÑÑавÑика ÑÑебÑÑÑ Ð´Ð²Ð¾Ð¹Ð½Ð¾Ð³Ð¾ ÑÑвеÑждениÑ
ÐвÑомаÑизиÑованнÑй ÑабоÑий пÑоÑеÑÑ
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 ÑегÑлÑÑно