/* ------------------------------------------------------------------ */ /* پرداختها به تأمینکنندگان (تسویه حساب) */ /* ------------------------------------------------------------------ */ function ttbol_cs_install_payments_table() { global $wpdb; require_once ABSPATH . 'wp-admin/includes/upgrade.php'; $charset = $wpdb->get_charset_collate(); $pay = ttbol_cs_t( 'payments' ); dbDelta( "CREATE TABLE {$pay} ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, supplier VARCHAR(190) NOT NULL DEFAULT '', amount BIGINT NOT NULL DEFAULT 0, pay_date DATE NOT NULL, note TEXT NULL, created_at DATETIME NOT NULL, PRIMARY KEY (id), KEY supplier (supplier(60)), KEY pay_date (pay_date) ) {$charset};" ); } register_activation_hook( __FILE__, 'ttbol_cs_install_payments_table' ); function ttbol_cs_supplier_total_due( $supplier ) { global $wpdb; $itm = ttbol_cs_t( 'items' ); $inv = ttbol_cs_t( 'invoices' ); return (int) $wpdb->get_var( $wpdb->prepare( "SELECT COALESCE(SUM(i.qty_sold * i.unit_price),0) FROM {$itm} i INNER JOIN {$inv} v ON v.id = i.invoice_id WHERE v.supplier = %s", $supplier ) ); } function ttbol_cs_supplier_total_paid( $supplier ) { global $wpdb; $pay = ttbol_cs_t( 'payments' ); return (int) $wpdb->get_var( $wpdb->prepare( "SELECT COALESCE(SUM(amount),0) FROM {$pay} WHERE supplier = %s", $supplier ) ); } add_action( 'admin_menu', function () { add_submenu_page( 'ttbol-cs', 'تسویه حساب', 'تسویه حساب', TTBOL_CS_CAP, 'ttbol-cs-balance', 'ttbol_cs_page_balance' ); } ); function ttbol_cs_page_balance() { if ( ! current_user_can( TTBOL_CS_CAP ) ) { wp_die( 'دسترسی ندارید.' ); } global $wpdb; $pay = ttbol_cs_t( 'payments' ); // اطمینان از وجود جدول (برای سایتهایی که پلاگین قبلاً فعال بوده و activation دوباره اجرا نشده) if ( $wpdb->get_var( "SHOW TABLES LIKE '{$pay}'" ) !== $pay ) { ttbol_cs_install_payments_table(); } // حذف پرداخت if ( isset( $_GET['delpay'] ) && check_admin_referer( 'ttbol_cs_delpay' ) ) { $wpdb->delete( $pay, array( 'id' => (int) $_GET['delpay'] ), array( '%d' ) ); echo '
پرداخت حذف شد.
پرداخت ثبت شد.
تأمینکننده و مبلغ معتبر لازم است.
| تأمینکننده | کل بدهی (از فروش امانی) | کل پرداختشده | مانده حساب |
|---|---|---|---|
| ' . esc_html( $s ) . ' | ' . ttbol_cs_money( $due ) . ' تومان | ' . ttbol_cs_money( $paid ) . ' تومان | ' . ttbol_cs_money( $left ) . ' تومان |
هنوز پرداختی ثبت نشده.
'; } else { echo '| تأمینکننده | تاریخ | مبلغ | توضیح | |
|---|---|---|---|---|
| ' . esc_html( $r->supplier ) . ' | ' . esc_html( $r->pay_date ) . ' | ' . ttbol_cs_money( $r->amount ) . ' تومان | ' . esc_html( $r->note ) . ' | حذف |