mirror of
https://github.com/espocrm/espocrm.git
synced 2026-06-28 15:06:06 +00:00
ref
This commit is contained in:
@@ -44,6 +44,7 @@ class FieldType
|
||||
public const ARRAY = 'array';
|
||||
public const CHECKLIST = 'checklist';
|
||||
public const CURRENCY = 'currency';
|
||||
public const CURRENCY_CONVERTED = 'currencyConverted';
|
||||
public const PERSON_NAME = 'personName';
|
||||
public const ADDRESS = 'address';
|
||||
public const EMAIL = 'email';
|
||||
|
||||
@@ -31,6 +31,7 @@ namespace Espo\Core\Utils\Database\Orm\FieldConverters;
|
||||
|
||||
use Doctrine\DBAL\Types\Types;
|
||||
use Espo\Core\Currency\ConfigDataProvider;
|
||||
use Espo\Core\ORM\Type\FieldType;
|
||||
use Espo\Core\Utils\Config;
|
||||
use Espo\Core\Utils\Database\Orm\Defs\AttributeDefs;
|
||||
use Espo\Core\Utils\Database\Orm\Defs\EntityDefs;
|
||||
@@ -57,14 +58,14 @@ class Currency implements FieldConverter
|
||||
->withType(AttributeType::FLOAT)
|
||||
->withParamsMerged([
|
||||
'attributeRole' => 'value',
|
||||
'fieldType' => 'currency',
|
||||
'fieldType' => FieldType::CURRENCY,
|
||||
]);
|
||||
|
||||
$currencyDefs = AttributeDefs::create($name . 'Currency')
|
||||
->withType(AttributeType::VARCHAR)
|
||||
->withParamsMerged([
|
||||
'attributeRole' => 'currency',
|
||||
'fieldType' => 'currency',
|
||||
'fieldType' => FieldType::CURRENCY,
|
||||
]);
|
||||
|
||||
$convertedDefs = null;
|
||||
@@ -198,7 +199,7 @@ class Currency implements FieldConverter
|
||||
],
|
||||
],
|
||||
'attributeRole' => 'valueConverted',
|
||||
'fieldType' => 'currency',
|
||||
'fieldType' => FieldType::CURRENCY,
|
||||
]);
|
||||
|
||||
return [$amountDefs, $convertedDefs];
|
||||
@@ -331,7 +332,7 @@ class Currency implements FieldConverter
|
||||
'additionalSelect' => ["{$alias}.rate"],
|
||||
],
|
||||
'attributeRole' => 'valueConverted',
|
||||
'fieldType' => 'currency',
|
||||
'fieldType' => FieldType::CURRENCY,
|
||||
]);
|
||||
|
||||
return [$amountDefs, $convertedDefs];
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
|
||||
namespace Espo\Hooks\Common;
|
||||
|
||||
use Espo\Core\ORM\Type\FieldType;
|
||||
use Espo\ORM\Entity;
|
||||
use Espo\Core\Di;
|
||||
|
||||
@@ -44,7 +45,7 @@ class CurrencyConverted implements Di\MetadataAware, Di\ConfigAware
|
||||
$fieldDefs = $this->metadata->get(['entityDefs', $entity->getEntityType(), 'fields'], []);
|
||||
|
||||
foreach ($fieldDefs as $fieldName => $defs) {
|
||||
if (empty($defs['type']) || $defs['type'] !== 'currencyConverted') {
|
||||
if (empty($defs['type']) || $defs['type'] !== FieldType::CURRENCY_CONVERTED) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -84,8 +85,8 @@ class CurrencyConverted implements Di\MetadataAware, Di\ConfigAware
|
||||
$targetValue = $value;
|
||||
} else {
|
||||
$targetValue = $value;
|
||||
$targetValue = $targetValue / (isset($rates[$baseCurrency]) ? $rates[$baseCurrency] : 1.0);
|
||||
$targetValue = $targetValue * (isset($rates[$currency]) ? $rates[$currency] : 1.0);
|
||||
$targetValue = $targetValue / ($rates[$baseCurrency] ?? 1.0);
|
||||
$targetValue = $targetValue * ($rates[$currency] ?? 1.0);
|
||||
|
||||
$targetValue = round($targetValue, 2);
|
||||
}
|
||||
|
||||
@@ -29,30 +29,21 @@
|
||||
|
||||
namespace Espo\Hooks\Common;
|
||||
|
||||
use Espo\Core\ORM\Type\FieldType;
|
||||
use Espo\ORM\Entity;
|
||||
|
||||
use Espo\Core\Utils\{
|
||||
Config,
|
||||
FieldUtil,
|
||||
};
|
||||
use Espo\Core\Utils\Config;
|
||||
use Espo\Core\Utils\FieldUtil;
|
||||
|
||||
class CurrencyDefault
|
||||
{
|
||||
public static int $order = 200;
|
||||
|
||||
private Config $config;
|
||||
|
||||
private FieldUtil $fieldUtil;
|
||||
|
||||
public function __construct(Config $config, FieldUtil $fieldUtil)
|
||||
{
|
||||
$this->config = $config;
|
||||
$this->fieldUtil = $fieldUtil;
|
||||
}
|
||||
public function __construct(private Config $config, private FieldUtil $fieldUtil)
|
||||
{}
|
||||
|
||||
public function beforeSave(Entity $entity): void
|
||||
{
|
||||
$fieldList = $this->fieldUtil->getFieldByTypeList($entity->getEntityType(), 'currency');
|
||||
$fieldList = $this->fieldUtil->getFieldByTypeList($entity->getEntityType(), FieldType::CURRENCY);
|
||||
|
||||
$defaultCurrency = $this->config->get('defaultCurrency');
|
||||
|
||||
|
||||
@@ -35,6 +35,7 @@ use Espo\Core\Currency\Converter;
|
||||
use Espo\Core\Currency\Rates;
|
||||
use Espo\Core\Field\Currency;
|
||||
use Espo\Core\ORM\Entity as CoreEntity;
|
||||
use Espo\Core\ORM\Type\FieldType;
|
||||
use Espo\Core\Utils\Metadata;
|
||||
use Espo\ORM\Entity;
|
||||
use Espo\ORM\EntityManager;
|
||||
@@ -109,7 +110,7 @@ class DefaultEntityConverter implements EntityConverter
|
||||
$field = $fieldDefs->getName();
|
||||
$type = $fieldDefs->getType();
|
||||
|
||||
if ($type !== 'currency') {
|
||||
if ($type !== FieldType::CURRENCY) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
|
||||
namespace Espo\Tools\Export\Format\Xlsx;
|
||||
|
||||
use Espo\Core\ORM\Type\FieldType;
|
||||
use Espo\Core\Utils\Metadata;
|
||||
use Espo\ORM\Entity;
|
||||
use Espo\Tools\Export\Params;
|
||||
@@ -122,7 +123,7 @@ class ParamsHandler implements ProcessorParamsHandler
|
||||
foreach ($fieldList as $field) {
|
||||
$type = $this->metadata->get(['entityDefs', $entityType, 'fields', $field, 'type']);
|
||||
|
||||
if ($type === 'currencyConverted') {
|
||||
if ($type === FieldType::CURRENCY_CONVERTED) {
|
||||
if (!in_array($field, $attributeList)) {
|
||||
$attributeList[] = $field;
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@ namespace Espo\Tools\Export\Format\Xlsx;
|
||||
use Espo\Core\Field\Currency;
|
||||
use Espo\Core\Field\Date;
|
||||
use Espo\Core\Field\DateTime as DateTimeValue;
|
||||
use Espo\Core\ORM\Type\FieldType;
|
||||
use Espo\Entities\Attachment;
|
||||
use Espo\Core\FileStorage\Manager as FileStorageManager;
|
||||
use Espo\Core\ORM\EntityManager;
|
||||
@@ -190,8 +191,8 @@ class PhpSpreadsheetProcessor implements ProcessorInterface
|
||||
|
||||
$col = $azRange[$lastIndex];
|
||||
|
||||
$sheet->getStyle("A{$rowNumber}:{$col}{$rowNumber}")->applyFromArray($this->headerStyle);
|
||||
$sheet->setAutoFilter("A{$rowNumber}:{$col}{$rowNumber}");
|
||||
$sheet->getStyle("A$rowNumber:$col$rowNumber")->applyFromArray($this->headerStyle);
|
||||
$sheet->setAutoFilter("A$rowNumber:$col$rowNumber");
|
||||
|
||||
$typesCache = [];
|
||||
|
||||
@@ -210,7 +211,7 @@ class PhpSpreadsheetProcessor implements ProcessorInterface
|
||||
$rowNumber++;
|
||||
}
|
||||
|
||||
$sheet->getStyle("A{$headerRowNumber}:A{$rowNumber}")
|
||||
$sheet->getStyle("A$headerRowNumber:A$rowNumber")
|
||||
->getNumberFormat()
|
||||
->setFormatCode(NumberFormat::FORMAT_TEXT);
|
||||
|
||||
@@ -229,35 +230,35 @@ class PhpSpreadsheetProcessor implements ProcessorInterface
|
||||
|
||||
$type = $typesCache[$name];
|
||||
|
||||
$coordinate = $col . $startingRowNumber . ':' . $col . $rowNumber;
|
||||
$coordinate = "$col$startingRowNumber:$col$rowNumber";
|
||||
|
||||
switch ($type) {
|
||||
case 'currency':
|
||||
case 'currencyConverted':
|
||||
case FieldType::CURRENCY:
|
||||
case FieldType::CURRENCY_CONVERTED:
|
||||
break;
|
||||
|
||||
case 'int':
|
||||
case FieldType::INT:
|
||||
$sheet->getStyle($coordinate)
|
||||
->getNumberFormat()
|
||||
->setFormatCode('0');
|
||||
|
||||
break;
|
||||
|
||||
case 'float':
|
||||
case FieldType::FLOAT:
|
||||
$sheet->getStyle($coordinate)
|
||||
->getNumberFormat()
|
||||
->setFormatCode(NumberFormat::FORMAT_NUMBER_COMMA_SEPARATED1);
|
||||
break;
|
||||
|
||||
case 'date':
|
||||
case FieldType::DATE:
|
||||
$sheet->getStyle($coordinate)
|
||||
->getNumberFormat()
|
||||
->setFormatCode($this->dateTime->getDateFormat());
|
||||
|
||||
break;
|
||||
|
||||
case 'datetimeOptional':
|
||||
case 'datetime':
|
||||
case FieldType::DATETIME_OPTIONAL:
|
||||
case FieldType::DATETIME:
|
||||
$sheet->getStyle($coordinate)
|
||||
->getNumberFormat()
|
||||
->setFormatCode($this->dateTime->getDateTimeFormat());
|
||||
@@ -506,22 +507,22 @@ class PhpSpreadsheetProcessor implements ProcessorInterface
|
||||
$foreignField = null;
|
||||
|
||||
if (strpos($name, '_')) {
|
||||
list($foreignLink, $foreignField) = explode('_', $name);
|
||||
[$foreignLink, $foreignField] = explode('_', $name);
|
||||
}
|
||||
|
||||
$siteUrl = $this->config->getSiteUrl();
|
||||
|
||||
if ($name === 'name') {
|
||||
if ($entity->hasId()) {
|
||||
$link = $siteUrl . '/#' . $entityType . '/view/' . $entity->getId();
|
||||
$link = "$siteUrl/#$entityType/view/{$entity->getId()}";
|
||||
}
|
||||
} else if ($type === 'url') {
|
||||
} else if ($type === FieldType::URL) {
|
||||
$value = $entity->get($name);
|
||||
|
||||
if ($value) {
|
||||
$link = $this->sanitizeUrl($value);
|
||||
}
|
||||
} else if ($type === 'link') {
|
||||
} else if ($type === FieldType::LINK) {
|
||||
$idValue = $entity->get($name . 'Id');
|
||||
|
||||
if ($idValue && $foreignField) {
|
||||
@@ -536,33 +537,33 @@ class PhpSpreadsheetProcessor implements ProcessorInterface
|
||||
}
|
||||
|
||||
if ($foreignEntity) {
|
||||
$link = $siteUrl . '/#' . $foreignEntity . '/view/' . $idValue;
|
||||
$link = "$siteUrl/#$foreignEntity/view/$idValue";
|
||||
}
|
||||
}
|
||||
} else if ($type === 'file') {
|
||||
} else if ($type === FieldType::FILE) {
|
||||
$idValue = $entity->get($name . 'Id');
|
||||
|
||||
if ($idValue) {
|
||||
$link = $siteUrl . '/?entryPoint=download&id=' . $idValue;
|
||||
$link = "$siteUrl/?entryPoint=download&id=$idValue";
|
||||
}
|
||||
} else if ($type === 'linkParent') {
|
||||
} else if ($type === FieldType::LINK_PARENT) {
|
||||
$idValue = $entity->get($name . 'Id');
|
||||
$typeValue = $entity->get($name . 'Type');;
|
||||
$typeValue = $entity->get($name . 'Type');
|
||||
|
||||
if ($idValue && $typeValue) {
|
||||
$link = $siteUrl . '/#' . $typeValue . '/view/' . $idValue;
|
||||
$link = "$siteUrl/#$typeValue/view/$idValue";
|
||||
}
|
||||
} else if ($type === 'phone') {
|
||||
} else if ($type === FieldType::PHONE) {
|
||||
$value = $entity->get($name);
|
||||
|
||||
if ($value) {
|
||||
$link = 'tel:' . $value;
|
||||
$link = "tel:$value";
|
||||
}
|
||||
} else if ($type === 'email') {
|
||||
} else if ($type === FieldType::EMAIL) {
|
||||
$value = $entity->get($name);
|
||||
|
||||
if ($value) {
|
||||
$link = 'mailto:' . $value;
|
||||
$link = "mailto:$value";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user