mirror of
https://github.com/itflow-org/itflow
synced 2026-11-11 07:01:16 +00:00
99 lines
3.5 KiB
PHP
99 lines
3.5 KiB
PHP
<?php
|
|
|
|
// Variable assignment from POST (or: blank/from DB is updating)
|
|
|
|
// create.php has no row to fall back on
|
|
$client_row = $client_row ?? null;
|
|
|
|
if (isset($_POST['client_name'])) {
|
|
$name = escapeSql($_POST['client_name']);
|
|
} elseif ($client_row) {
|
|
$name = mysqli_real_escape_string($mysqli, $client_row['client_name']);
|
|
} else {
|
|
$name = '';
|
|
}
|
|
|
|
if (isset($_POST['client_type'])) {
|
|
$type = escapeSql($_POST['client_type']);
|
|
} elseif ($client_row) {
|
|
$type = mysqli_real_escape_string($mysqli, $client_row['client_type']);
|
|
} else {
|
|
$type = '';
|
|
}
|
|
|
|
if (isset($_POST['client_website'])) {
|
|
$website = preg_replace("(^https?://)", "", escapeSql($_POST['client_website']));
|
|
} elseif ($client_row) {
|
|
$website = mysqli_real_escape_string($mysqli, $client_row['client_website']);
|
|
} else {
|
|
$website = '';
|
|
}
|
|
|
|
if (isset($_POST['client_referral'])) {
|
|
$referral = escapeSql($_POST['client_referral']);
|
|
} elseif ($client_row) {
|
|
$referral = mysqli_real_escape_string($mysqli, $client_row['client_referral']);
|
|
} else {
|
|
$referral = '';
|
|
}
|
|
|
|
// A client has no rate or net terms of its own - its contract's apply, else the defaults
|
|
// (functions/contract_billing.php). create.php turns client_rate and client_net_terms that
|
|
// aren't the defaults into a Standard terms contract; update.php says they weren't kept.
|
|
$rate = isset($_POST['client_rate']) && trim((string) $_POST['client_rate']) !== '' ? floatval($_POST['client_rate']) : null;
|
|
$net_terms = isset($_POST['client_net_terms']) && trim((string) $_POST['client_net_terms']) !== '' ? max(0, min(365, intval($_POST['client_net_terms']))) : null;
|
|
|
|
if (isset($_POST['client_currency_code'])) {
|
|
$currency_code = escapeSql($_POST['client_currency_code']);
|
|
} elseif ($client_row) {
|
|
$currency_code = mysqli_real_escape_string($mysqli, $client_row['client_currency_code']);
|
|
} else {
|
|
$currency_code = '';
|
|
}
|
|
|
|
|
|
if (isset($_POST['client_tax_id_number'])) {
|
|
$tax_id_number = escapeSql($_POST['client_tax_id_number']);
|
|
} elseif ($client_row) {
|
|
$tax_id_number = mysqli_real_escape_string($mysqli, $client_row['client_tax_id_number']);
|
|
} else {
|
|
$tax_id_number = '';
|
|
}
|
|
|
|
if (isset($_POST['client_abbreviation'])) {
|
|
$abbreviation = escapeSql(substr($_POST['client_abbreviation'], 0, 6));
|
|
} elseif ($client_row) {
|
|
$abbreviation = mysqli_real_escape_string($mysqli, $client_row['client_abbreviation']);
|
|
} else {
|
|
$abbreviation = '';
|
|
}
|
|
|
|
if (isset($_POST['client_is_lead'])) {
|
|
$lead = intval($_POST['client_is_lead']);
|
|
} elseif (isset($_POST['client_lead'])) {
|
|
$lead = intval($_POST['client_lead']);
|
|
} elseif ($client_row) {
|
|
$lead = intval($client_row['client_lead']);
|
|
} else {
|
|
$lead = 0; // Default: Not a lead
|
|
}
|
|
|
|
if (isset($_POST['client_notes'])) {
|
|
$notes = escapeSql($_POST['client_notes']);
|
|
} elseif ($client_row) {
|
|
$notes = mysqli_real_escape_string($mysqli, $client_row['client_notes']);
|
|
} else {
|
|
$notes = '';
|
|
}
|
|
|
|
// Its tax rate (0: the default) and exemption - client_default_tax_id,
|
|
// client_tax_exempt, client_tax_exempt_number, client_tax_exempt_expires
|
|
// (YYYY-MM-DD); those not sent keep what the client has
|
|
$tax_input = [];
|
|
foreach (['client_default_tax_id' => 'default_tax_id', 'client_tax_exempt' => 'tax_exempt', 'client_tax_exempt_number' => 'tax_exempt_number', 'client_tax_exempt_expires' => 'tax_exempt_expires'] as $api_field => $tax_field) {
|
|
if (isset($_POST[$api_field])) {
|
|
$tax_input[$tax_field] = $_POST[$api_field];
|
|
}
|
|
}
|
|
$tax_set_sql = taxClientSetSql($tax_input, $client_row ?? []);
|