accounts-payable-workflow

安装量: 45
排名: #16528

安装

npx skills add https://github.com/dengineproblem/agents-monorepo --skill accounts-payable-workflow
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 регулярно

返回排行榜