added invoice text field to project and activity (#3335)

This commit is contained in:
Kevin Papst
2022-05-31 17:49:23 +02:00
committed by GitHub
parent a93e78bd34
commit 88bf534573
13 changed files with 116 additions and 3 deletions

View File

@@ -174,6 +174,12 @@ class Activity implements EntityWithMetaFields, EntityWithBudget
* )
*/
private $teams;
/**
* @var string|null
*
* @ORM\Column(name="invoice_text", type="text", nullable=true)
*/
private $invoiceText;
public function __construct()
{
@@ -338,6 +344,16 @@ class Activity implements EntityWithMetaFields, EntityWithBudget
return $this->teams;
}
public function getInvoiceText(): ?string
{
return $this->invoiceText;
}
public function setInvoiceText(?string $invoiceText): void
{
$this->invoiceText = $invoiceText;
}
/**
* @return string
*/

View File

@@ -246,6 +246,12 @@ class Project implements EntityWithMetaFields, EntityWithBudget
* )
*/
private $teams;
/**
* @var string|null
*
* @ORM\Column(name="invoice_text", type="text", nullable=true)
*/
private $invoiceText;
public function __construct()
{
@@ -520,6 +526,16 @@ class Project implements EntityWithMetaFields, EntityWithBudget
return true;
}
public function getInvoiceText(): ?string
{
return $this->invoiceText;
}
public function setInvoiceText(?string $invoiceText): void
{
$this->invoiceText = $invoiceText;
}
/**
* @return string
*/

View File

@@ -60,6 +60,10 @@ class ActivityEditForm extends AbstractType
'label' => 'label.description',
'required' => false,
])
->add('invoiceText', TextareaType::class, [
'label' => 'label.invoiceText',
'required' => false,
])
;
if ($new || !$isGlobal) {

View File

@@ -67,6 +67,10 @@ class ProjectEditForm extends AbstractType
'label' => 'label.description',
'required' => false,
])
->add('invoiceText', TextareaType::class, [
'label' => 'label.invoiceText',
'required' => false,
])
->add('orderNumber', TextType::class, [
'label' => 'label.orderNumber',
'required' => false,

View File

@@ -33,7 +33,11 @@ class ActivityInvoiceCalculator extends AbstractSumInvoiceCalculator implements
return;
}
$invoiceItem->setDescription($entry->getActivity()->getName());
if ($entry->getActivity()->getInvoiceText() !== null) {
$invoiceItem->setDescription($entry->getActivity()->getInvoiceText());
} else {
$invoiceItem->setDescription($entry->getActivity()->getName());
}
}
/**

View File

@@ -29,8 +29,11 @@ class ProjectInvoiceCalculator extends AbstractSumInvoiceCalculator implements C
protected function mergeSumInvoiceItem(InvoiceItem $invoiceItem, InvoiceItemInterface $entry)
{
$invoiceItem->setProject($entry->getProject());
$invoiceItem->setDescription($entry->getProject()->getName());
if ($entry->getProject()->getInvoiceText() !== null) {
$invoiceItem->setDescription($entry->getProject()->getInvoiceText());
} else {
$invoiceItem->setDescription($entry->getProject()->getName());
}
}
/**

View File

@@ -0,0 +1,44 @@
<?php
declare(strict_types=1);
/*
* This file is part of the Kimai time-tracking app.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
/**
* @version 1.20.2
*/
final class Version20220531145920 extends AbstractMigration
{
public function getDescription(): string
{
return 'Add invoice text columns to project and activity';
}
public function up(Schema $schema): void
{
$activities = $schema->getTable('kimai2_activities');
$activities->addColumn('invoice_text', 'text', ['notnull' => false, 'default' => null]);
$projects = $schema->getTable('kimai2_projects');
$projects->addColumn('invoice_text', 'text', ['notnull' => false, 'default' => null]);
}
public function down(Schema $schema): void
{
$activities = $schema->getTable('kimai2_activities');
$activities->dropColumn('invoice_text');
$projects = $schema->getTable('kimai2_projects');
$projects->dropColumn('invoice_text');
}
}