Changeset 2714 for sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-payments/includes/payment-request.php
- Timestamp:
- 03/08/2016 05:22:20 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-payments/includes/payment-request.php
r2711 r2714 1342 1342 return ob_get_clean(); 1343 1343 } 1344 1345 /** 1346 * Wires via JP Morgan 1347 * 1348 * @param array $args 1349 * 1350 * @return string 1351 */ 1352 public static function _generate_payment_report_jpm_wires( $args ) { 1353 $args = wp_parse_args( $args, array( 1354 'data' => array(), 1355 'status' => '', 1356 'post_type' => '', 1357 ) ); 1358 1359 ob_start(); 1360 $report = fopen( 'php://output', 'w' ); 1361 1362 // JPM Header 1363 fputcsv( $report, array( 'HEADER', gmdate( 'YmdHis' ), '1' ) ); 1364 1365 $total = 0; 1366 $count = 0; 1367 1368 foreach ( $args['data'] as $entry ) { 1369 switch_to_blog( $entry->blog_id ); 1370 $post = get_post( $entry->post_id ); 1371 1372 if ( $args['status'] && $post->post_status != $args['status'] ) { 1373 restore_current_blog(); 1374 continue; 1375 } elseif ( $post->post_type != self::POST_TYPE ) { 1376 restore_current_blog(); 1377 continue; 1378 } elseif ( get_post_meta( $post->ID, '_camppayments_payment_method', true ) != 'Wire' ) { 1379 restore_current_blog(); 1380 continue; 1381 } 1382 1383 $amount = round( floatval( get_post_meta( $post->ID, '_camppayments_payment_amount', true ) ), 2); 1384 $total += $amount; 1385 $count += 1; 1386 1387 // If account starts with two letters, it's most likely an IBAN 1388 $account = get_post_meta( $post->ID, '_camppayments_beneficiary_account_number', true ); 1389 $account = WCP_Encryption::maybe_decrypt( $account ); 1390 $account = preg_replace( '#\s#','', $account ); 1391 $account_type = preg_match( '#^[a-z]{2}#i', $account ) ? 'IBAN' : 'ACCT'; 1392 1393 $row = array( 1394 '1-input-type' => 'P', 1395 '2-payment-method' => 'WIRES', 1396 '3-debit-bank-id' => apply_filters( 'wcb_payment_req_bank_id', '' ), // external file 1397 '4-account-number' => apply_filters( 'wcb_payment_req_bank_number', '' ), // external file 1398 '5-bank-to-bank' => 'N', 1399 '6-txn-currency' => get_post_meta( $post->ID, '_camppayments_currency', true ), 1400 '7-txn-amount' => number_format( $amount, 2, '.', '' ), 1401 '8-equiv-amount' => '', 1402 '9-clearing' => '', 1403 '10-ben-residence' => '', 1404 '11-rate-type' => '', 1405 '12-blank' => '', 1406 '13-value-date' => '', 1407 1408 '14-id-type' => $account_type, 1409 '15-id-value' => $account, 1410 '16-ben-name' => substr( WCP_Encryption::maybe_decrypt( 1411 get_post_meta( $post->ID, '_camppayments_beneficiary_name', true ) ), 0, 35 ), 1412 '17-address-1' => substr( WCP_Encryption::maybe_decrypt( 1413 get_post_meta( $post->ID, '_camppayments_beneficiary_street_address', true ) ), 0, 35 ), 1414 '18-address-2' => '', 1415 '19-city-state-zip' => substr( sprintf( '%s %s %s', 1416 WCP_Encryption::maybe_decrypt( get_post_meta( $post->ID, '_camppayments_beneficiary_city', true ) ), 1417 WCP_Encryption::maybe_decrypt( get_post_meta( $post->ID, '_camppayments_beneficiary_state', true ) ), 1418 WCP_Encryption::maybe_decrypt( get_post_meta( $post->ID, '_camppayments_beneficiary_zip_code', true ) ) 1419 ), 0, 32 ), 1420 '20-blank' => '', 1421 '21-country' => WCP_Encryption::maybe_decrypt( 1422 get_post_meta( $post->ID, '_camppayments_beneficiary_country_iso3166', true ) ), 1423 '22-blank' => '', 1424 '23-blank' => '', 1425 1426 '24-id-type' => 'SWIFT', 1427 '25-id-value' => get_post_meta( $post->ID, '_camppayments_bank_bic', true ), 1428 '26-ben-bank-name' => substr( get_post_meta( $post->ID, '_camppayments_bank_name', true ), 0, 35 ), 1429 '27-ben-bank-address-1' => substr( get_post_meta( $post->ID, '_camppayments_bank_street_address', true ), 0, 35 ), 1430 '28-ben-bank-address-2' => '', 1431 '29-ben-bank-address-3' => substr( sprintf( '%s %s %s', 1432 get_post_meta( $post->ID, '_camppayments_bank_city', true ), 1433 get_post_meta( $post->ID, '_camppayments_bank_state', true ), 1434 get_post_meta( $post->ID, '_camppayments_bank_zip_code', true ) 1435 ), 0, 35 ), 1436 '30-ben-bank-country' => get_post_meta( $post->ID, '_camppayments_bank_country_iso3166', true ), 1437 '31-supl-id-type' => '', 1438 '32-supl-id-value' => '', 1439 1440 '33-blank' => '', 1441 '34-blank' => '', 1442 '35-blank' => '', 1443 '36-blank' => '', 1444 '37-blank' => '', 1445 '38-blank' => '', 1446 '39-blank' => '', 1447 1448 // Filled out later if not empty. 1449 '40-id-type' => '', 1450 '41-id-value' => '', 1451 '42-interm-bank-name' => '', 1452 '43-interm-bank-address-1' => '', 1453 '44-interm-bank-address-2' => '', 1454 '45-interm-bank-address-3' => '', 1455 '46-interm-bank-country' => '', 1456 '47-supl-id-type' => '', 1457 '48-supl-id-value' => '', 1458 1459 '49-id-type' => '', 1460 '50-id-value' => '', 1461 '51-party-name' => '', 1462 '52-party-address-1' => '', 1463 '53-party-address-2' => '', 1464 '54-party-address-3' => '', 1465 '55-party-country' => '', 1466 1467 '56-blank' => '', 1468 '57-blank' => '', 1469 '58-blank' => '', 1470 '59-blank' => '', 1471 '60-blank' => '', 1472 '61-blank' => '', 1473 '62-blank' => '', 1474 '63-blank' => '', 1475 '64-blank' => '', 1476 '65-blank' => '', 1477 '66-blank' => '', 1478 '67-blank' => '', 1479 '68-blank' => '', 1480 '69-blank' => '', 1481 '70-blank' => '', 1482 '71-blank' => '', 1483 '72-blank' => '', 1484 '73-blank' => '', 1485 1486 '74-ref-text' => substr( get_post_meta( $post->ID, '_camppayments_invoice_number', true ), 0, 16 ), 1487 '75-internal-ref' => '', 1488 '76-on-behalf-of' => '', 1489 1490 '77-detial-1' => '', 1491 '78-detial-2' => '', 1492 '79-detial-3' => '', 1493 '80-detail-4' => '', 1494 1495 '81-blank' => '', 1496 '82-blank' => '', 1497 '83-blank' => '', 1498 '84-blank' => '', 1499 '85-blank' => '', 1500 '86-blank' => '', 1501 '87-blank' => '', 1502 '88-blank' => '', 1503 1504 '89-reporting-code' => '', 1505 '90-country' => '', 1506 '91-inst-1' => '', 1507 '92-inst-2' => '', 1508 '93-inst-3' => '', 1509 '94-inst-code-1' => '', 1510 '95-inst-text-1' => '', 1511 '96-inst-code-2' => '', 1512 '97-inst-text-2' => '', 1513 '98-inst-code-3' => '', 1514 '99-inst-text-3' => '', 1515 1516 '100-stor-code-1' => '', 1517 '101-stor-line-2' => '', // Hmm? 1518 '102-stor-code-2' => '', 1519 '103-stor-line-2' => '', 1520 '104-stor-code-3' => '', 1521 '105-stor-line-3' => '', 1522 '106-stor-code-4' => '', 1523 '107-stor-line-4' => '', 1524 '108-stor-code-5' => '', 1525 '109-stor-line-5' => '', 1526 '110-stor-code-6' => '', 1527 '111-stor-line-6' => '', 1528 1529 '112-priority' => '', 1530 '113-blank' => '', 1531 '114-charges' => '', 1532 '115-blank' => '', 1533 '116-details' => '', 1534 '117-note' => substr( sprintf( 'wcb-%d-%d', $entry->blog_id, $entry->post_id ), 0, 70 ), 1535 ); 1536 1537 // If an intermediary bank is given. 1538 $interm_swift = get_post_meta( $post->ID, '_camppayments_interm_bank_swift', true ); 1539 if ( ! empty( $iterm_swift ) ) { 1540 $row['40-id-type'] = 'SWIFT'; 1541 $row['41-id-value'] = $interm_swift; 1542 1543 $row['42-interm-bank-name'] = substr( get_post_meta( $post->ID, '_camppayments_interm_bank_name', true ), 0, 35 ); 1544 $row['43-interm-bank-address-1'] = substr( get_post_meta( $post->ID, '_camppayments_interm_bank_street_address', true ), 0, 35 ); 1545 1546 $row['44-interm-bank-address-2'] = ''; 1547 $row['45-interm-bank-address-3'] = substr( sprintf( '%s %s %s', 1548 get_post_meta( $post->ID, '_camppayments_interm_bank_city', true ), 1549 get_post_meta( $post->ID, '_camppayments_interm_bank_state', true ), 1550 get_post_meta( $post->ID, '_camppayments_interm_bank_zip_code', true ) 1551 ), 0, 32 ); 1552 1553 $row['46-interm-bank-country'] = get_post_meta( $post->ID, '_camppayments_interm_bank_country_iso3166', true ); 1554 1555 $row['47-supl-id-type'] = 'ACCT'; 1556 $row['48-supl-id-value'] = get_post_meta( $post->ID, '_camppayments_interm_bank_account', true ); 1557 } 1558 1559 // Use for debugging. 1560 // print_r( $row ); 1561 1562 fputcsv( $report, array_values( $row ) ); 1563 restore_current_blog(); 1564 } 1565 1566 // JPM Trailer 1567 fputcsv( $report, array( 'TRAILER', $count, $total ) ); 1568 1569 fclose( $report ); 1570 $results = ob_get_clean(); 1571 1572 // JPM chokes on accents and non-latin characters. 1573 $results = remove_accents( $results ); 1574 return $results; 1575 } 1344 1576 }
Note: See TracChangeset
for help on using the changeset viewer.