mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2025-12-14 06:59:30 +00:00
Add a button to automatically add the ordered amount once delivered
This commit is contained in:
parent
b62d4aaeb7
commit
e6b1b533a8
5 changed files with 47 additions and 0 deletions
|
|
@ -135,6 +135,27 @@ class PartController extends AbstractController
|
||||||
return $this->renderPartForm('edit', $request, $part);
|
return $this->renderPartForm('edit', $request, $part);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[Route(path: '/{id}/delivered', name: 'part_delivered')]
|
||||||
|
public function delivered(Part $part, Request $request): Response
|
||||||
|
{
|
||||||
|
$this->denyAccessUnlessGranted('edit', $part);
|
||||||
|
|
||||||
|
$partLot = $part->getPartLots()[0] ?? null;
|
||||||
|
if (!$partLot instanceof PartLot) {
|
||||||
|
$this->addFlash('error', 'part.delivered.error.no_lot');
|
||||||
|
return $this->redirectToRoute('part_info', ['id' => $part->getID()]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$partLot->setAmount($partLot->getAmount() + $part->getOrderAmount());
|
||||||
|
$part->setOrderAmount(0);
|
||||||
|
$part->setOrderDelivery(null);
|
||||||
|
|
||||||
|
$this->em->persist($part);
|
||||||
|
$this->em->flush();
|
||||||
|
|
||||||
|
return $this->redirectToRoute('part_info', ['id' => $part->getID()]);
|
||||||
|
}
|
||||||
|
|
||||||
#[Route(path: '/{id}/delete', name: 'part_delete', methods: ['DELETE'])]
|
#[Route(path: '/{id}/delete', name: 'part_delete', methods: ['DELETE'])]
|
||||||
public function delete(Request $request, Part $part): RedirectResponse
|
public function delete(Request $request, Part $part): RedirectResponse
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -83,6 +83,7 @@ class EntityURLGenerator
|
||||||
'delete' => $this->deleteURL($entity),
|
'delete' => $this->deleteURL($entity),
|
||||||
'file_download' => $this->downloadURL($entity),
|
'file_download' => $this->downloadURL($entity),
|
||||||
'file_view' => $this->viewURL($entity),
|
'file_view' => $this->viewURL($entity),
|
||||||
|
'delivered' => $this->deliveredURL($entity),
|
||||||
default => throw new InvalidArgumentException('Method is not supported!'),
|
default => throw new InvalidArgumentException('Method is not supported!'),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
@ -169,6 +170,11 @@ class EntityURLGenerator
|
||||||
throw new \RuntimeException('Attachment has no internal nor external path!');
|
throw new \RuntimeException('Attachment has no internal nor external path!');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function deliveredURL(Part $entity): string
|
||||||
|
{
|
||||||
|
return $this->urlGenerator->generate('part_delivered', ['id' => $entity->getID()]);
|
||||||
|
}
|
||||||
|
|
||||||
public function downloadURL($entity): string
|
public function downloadURL($entity): string
|
||||||
{
|
{
|
||||||
if (!($entity instanceof Attachment)) {
|
if (!($entity instanceof Attachment)) {
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,14 @@
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
{% if is_granted('edit', part) %}
|
||||||
|
<br>
|
||||||
|
<a class="btn btn-info mt-2" href="{{ entity_url(part, 'delivered') }}">
|
||||||
|
<i class="fas fa-cloud-arrow-down"></i>
|
||||||
|
{% trans %}part.delivered.btn{% endtrans %}
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
|
||||||
<form method="post" class="mt-2" action="{{ entity_url(part, 'delete') }}"
|
<form method="post" class="mt-2" action="{{ entity_url(part, 'delete') }}"
|
||||||
{{ stimulus_controller('elements/delete_btn') }} {{ stimulus_action('elements/delete_btn', "submit", "submit") }}
|
{{ stimulus_controller('elements/delete_btn') }} {{ stimulus_action('elements/delete_btn', "submit", "submit") }}
|
||||||
|
|
|
||||||
|
|
@ -12022,6 +12022,12 @@ Bitte beachten Sie, dass Sie sich nicht als deaktivierter Benutzer ausgeben kön
|
||||||
<target>Bauteil aus Informationsquelle aktualisieren</target>
|
<target>Bauteil aus Informationsquelle aktualisieren</target>
|
||||||
</segment>
|
</segment>
|
||||||
</unit>
|
</unit>
|
||||||
|
<unit id="Bxk6TEx" name="part.delivered.btn">
|
||||||
|
<segment state="translated">
|
||||||
|
<source>part.delivered.btn</source>
|
||||||
|
<target>Bestellte Menge wurde geliefert</target>
|
||||||
|
</segment>
|
||||||
|
</unit>
|
||||||
<unit id="7pDRUQB" name="info_providers.update_part.title">
|
<unit id="7pDRUQB" name="info_providers.update_part.title">
|
||||||
<segment state="translated">
|
<segment state="translated">
|
||||||
<source>info_providers.update_part.title</source>
|
<source>info_providers.update_part.title</source>
|
||||||
|
|
|
||||||
|
|
@ -12023,6 +12023,12 @@ Please note, that you can not impersonate a disabled user. If you try you will g
|
||||||
<target>Update part from info providers</target>
|
<target>Update part from info providers</target>
|
||||||
</segment>
|
</segment>
|
||||||
</unit>
|
</unit>
|
||||||
|
<unit id="Bxk6TEx" name="part.delivered.btn">
|
||||||
|
<segment state="translated">
|
||||||
|
<source>part.delivered.btn</source>
|
||||||
|
<target>Ordered amount has been delivered</target>
|
||||||
|
</segment>
|
||||||
|
</unit>
|
||||||
<unit id="7pDRUQB" name="info_providers.update_part.title">
|
<unit id="7pDRUQB" name="info_providers.update_part.title">
|
||||||
<segment state="translated">
|
<segment state="translated">
|
||||||
<source>info_providers.update_part.title</source>
|
<source>info_providers.update_part.title</source>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue