mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-05-31 03:24:34 -04:00
transformlineitems -> switch
This commit is contained in:
parent
8fd560dcce
commit
a907933d57
@ -13,10 +13,13 @@
|
|||||||
namespace App\Utils;
|
namespace App\Utils;
|
||||||
|
|
||||||
use App\Models\Client;
|
use App\Models\Client;
|
||||||
|
use App\Utils\Traits\MakesDates;
|
||||||
use stdClass;
|
use stdClass;
|
||||||
|
|
||||||
class Helpers
|
class Helpers
|
||||||
{
|
{
|
||||||
|
use MakesDates;
|
||||||
|
|
||||||
public static function sharedEmailVariables(?Client $client, array $settings = null): array
|
public static function sharedEmailVariables(?Client $client, array $settings = null): array
|
||||||
{
|
{
|
||||||
if (!$client) {
|
if (!$client) {
|
||||||
@ -35,4 +38,42 @@ class Helpers
|
|||||||
|
|
||||||
return $elements;
|
return $elements;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A centralised way to format the custom fields content.
|
||||||
|
*
|
||||||
|
* @param mixed $custom_fields
|
||||||
|
* @param mixed $field
|
||||||
|
* @param mixed $value
|
||||||
|
* @param null|\App\Models\Client $client
|
||||||
|
*
|
||||||
|
* @return null|string
|
||||||
|
*/
|
||||||
|
public function formatCustomFieldValue($custom_fields, $field, $value, ?Client $client): ?string
|
||||||
|
{
|
||||||
|
$custom_field = '';
|
||||||
|
|
||||||
|
if ($custom_fields && property_exists($custom_fields, $field)) {
|
||||||
|
$custom_field = $custom_fields->{$field};
|
||||||
|
$custom_field_parts = explode('|', $custom_field);
|
||||||
|
|
||||||
|
if (count($custom_field_parts) >= 2) {
|
||||||
|
$custom_field = $custom_field_parts[1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
switch ($custom_field) {
|
||||||
|
case 'date':
|
||||||
|
return $this->formatDate($value, $client->date_format());
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'switch':
|
||||||
|
return trim($value) == 'yes' ? ctrans('texts.yes') : ctrans('texts.no');
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return is_null($value) ? '' : $value;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,7 @@ use App\Models\Country;
|
|||||||
use App\Models\Credit;
|
use App\Models\Credit;
|
||||||
use App\Models\Invoice;
|
use App\Models\Invoice;
|
||||||
use App\Models\Quote;
|
use App\Models\Quote;
|
||||||
|
use App\Utils\Helpers;
|
||||||
use App\Utils\Number;
|
use App\Utils\Number;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -591,9 +592,12 @@ trait MakesInvoiceValues
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Formats the line items for display.
|
* Formats the line items for display.
|
||||||
* @param array $items The array of invoice items
|
*
|
||||||
* @param string $table_type
|
* @param mixed $items
|
||||||
* @return array The formatted array of invoice items
|
* @param string $table_type
|
||||||
|
* @param mixed|null $custom_fields
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function transformLineItems($items, $table_type = '$product') :array
|
public function transformLineItems($items, $table_type = '$product') :array
|
||||||
{
|
{
|
||||||
@ -616,20 +620,20 @@ trait MakesInvoiceValues
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$helpers = new Helpers();
|
||||||
|
$_table_type = ltrim($table_type, '$'); // From $product -> product.
|
||||||
|
|
||||||
|
|
||||||
$data[$key][$table_type.'.product_key'] = $item->product_key;
|
$data[$key][$table_type.'.product_key'] = $item->product_key;
|
||||||
$data[$key][$table_type.'.service'] = is_null(optional($item)->service) ? $item->product_key : $item->service;
|
$data[$key][$table_type.'.service'] = is_null(optional($item)->service) ? $item->product_key : $item->service;
|
||||||
$data[$key][$table_type.'.notes'] = $item->notes;
|
$data[$key][$table_type.'.notes'] = $item->notes;
|
||||||
$data[$key][$table_type.'.description'] = $item->notes;
|
$data[$key][$table_type.'.description'] = $item->notes;
|
||||||
|
|
||||||
// $data[$key][$table_type.'.custom_value1'] = $item->custom_value1;
|
|
||||||
// $data[$key][$table_type.'.custom_value2'] = $item->custom_value2;
|
|
||||||
// $data[$key][$table_type.'.custom_value3'] = $item->custom_value3;
|
|
||||||
// $data[$key][$table_type.'.custom_value4'] = $item->custom_value4;
|
|
||||||
|
|
||||||
$data[$key][$table_type . '.' . ltrim($table_type, '$') . '1'] = $item->custom_value1; // $product.product1
|
|
||||||
$data[$key][$table_type . '.' . ltrim($table_type, '$') . '2'] = $item->custom_value2;
|
$data[$key][$table_type . ".{$_table_type}1"] = $helpers->formatCustomFieldValue($this->client->company->custom_fields, "{$_table_type}1", $item->custom_value1, $this->client);
|
||||||
$data[$key][$table_type . '.' . ltrim($table_type, '$') . '3'] = $item->custom_value3;
|
$data[$key][$table_type . ".{$_table_type}2"] = $helpers->formatCustomFieldValue($this->client->company->custom_fields, "{$_table_type}2", $item->custom_value2, $this->client);;
|
||||||
$data[$key][$table_type . '.' . ltrim($table_type, '$') . '4'] = $item->custom_value4;
|
$data[$key][$table_type . ".{$_table_type}3"] = $helpers->formatCustomFieldValue($this->client->company->custom_fields, "{$_table_type}3", $item->custom_value3, $this->client);;
|
||||||
|
$data[$key][$table_type . ".{$_table_type}4"] = $helpers->formatCustomFieldValue($this->client->company->custom_fields, "{$_table_type}4", $item->custom_value4, $this->client);;
|
||||||
|
|
||||||
$data[$key][$table_type.'.quantity'] = $item->quantity;
|
$data[$key][$table_type.'.quantity'] = $item->quantity;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user