Skip to content

Commit d5b981e

Browse files
author
Daniel Fernández Giménez
committed
2981 - permitir concepto personalizado en la generación de asientos predefinidos y mejorar la estructura del formulario
1 parent 5a66cca commit d5b981e

3 files changed

Lines changed: 48 additions & 7 deletions

File tree

Lib/AsientoPredefinidoGenerator.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,8 @@ public static function generate(AsientoPredefinido $predefinido, array $form): A
5454
$asiento->idasientopre = $predefinido->id;
5555
$asiento->idempresa = (int)$form["idempresa"];
5656
$asiento->setDate($form["fecha"]);
57-
$asiento->concepto = CodePatterns::trans($predefinido->concepto, $asiento);
57+
$concepto = empty($form["concepto"]) ? $predefinido->concepto : $form["concepto"];
58+
$asiento->concepto = CodePatterns::trans($concepto, $asiento);
5859
$asiento->canal = $form["canal"] ?? null;
5960
if (false === $asiento->save()) {
6061
Tools::log()->warning('no-can-create-accounting-entry');

Test/main/AsientosPredefinidosTest.php

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public function testAsientoPredefinidoNomina(): void
4848

4949
// cargamos el asiento predefinido
5050
$asientoPredefinido = new AsientoPredefinido();
51-
$this->assertTrue($asientoPredefinido->loadFromCode(1));
51+
$this->assertTrue($asientoPredefinido->load(1));
5252

5353
// generamos el asiento
5454
$asiento = $asientoPredefinido->generate([
@@ -109,7 +109,7 @@ public function testAsientoPredefinidoCuotaAutonomo(): void
109109

110110
// cargamos el asiento predefinido
111111
$asientoPredefinido = new AsientoPredefinido();
112-
$this->assertTrue($asientoPredefinido->loadFromCode(2));
112+
$this->assertTrue($asientoPredefinido->load(2));
113113

114114
// generamos el asiento
115115
$asiento = $asientoPredefinido->generate([
@@ -223,6 +223,40 @@ public function testAsientoPredefinidoPagoNomina(): void
223223
$asiento->delete();
224224
}
225225

226+
public function testAsientoPredefinidoConConceptoPersonalizado(): void
227+
{
228+
// obtenemos la empresa predefinida
229+
$empresa = Empresas::default();
230+
231+
// cargamos el asiento predefinido de nómina
232+
$asientoPredefinido = new AsientoPredefinido();
233+
$this->assertTrue($asientoPredefinido->load(1));
234+
235+
// generamos el asiento pasando un concepto personalizado
236+
$conceptoPersonalizado = 'Concepto personalizado de prueba';
237+
$asiento = $asientoPredefinido->generate([
238+
'idempresa' => $empresa->idempresa,
239+
'fecha' => Tools::date(),
240+
'canal' => 0,
241+
'concepto' => $conceptoPersonalizado,
242+
'var_A' => 0,
243+
'var_B' => 0,
244+
'var_C' => 20,
245+
'var_L' => 30,
246+
'var_R' => 40,
247+
'var_D' => 50,
248+
]);
249+
250+
// comprobamos que el asiento se ha creado correctamente
251+
$this->assertTrue($asiento->exists());
252+
253+
// comprobamos que el concepto del asiento es el personalizado y no el del predefinido
254+
$this->assertEquals($conceptoPersonalizado, $asiento->concepto);
255+
256+
// borramos el asiento
257+
$asiento->delete();
258+
}
259+
226260
public function testMethodTest(): void
227261
{
228262
$asientoPredefinido = new AsientoPredefinido();

View/AsientoPredefinidoGenerar.html.twig

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
<form action="{{ fsc.getModel().url() }}&activetab=Generar" method="post">
1+
{% set model = fsc.getModel() %}
2+
3+
<form action="{{ model.url() }}&activetab=Generar" method="post">
24
{{ formToken() }}
35
<div class="card shadow mb-5">
46
<div class="card-body">
57
<div class="row g-2">
6-
<div class="col-sm-2">
8+
<div class="col-sm-3">
79
{{ trans("company") }}
810
<select name="idempresa" class="form-select mb-3">
911
{% for empresa in fsc.empresa.all({}, {'nombre': 'ASC'}) %}
@@ -15,15 +17,19 @@
1517
{% endfor %}
1618
</select>
1719
</div>
18-
<div class="col-sm-2">
20+
<div class="col-sm-3">
1921
{{ trans("date") }}
2022
<input type="date" class="form-control mb-3" name="fecha" value="{{ 'now' | date('Y-m-d') }}"
2123
required>
2224
</div>
23-
<div class="col-sm-2">
25+
<div class="col-sm-3">
2426
{{ trans("channel") }}
2527
<input type="number" class="form-control mb-3" name="canal" value=""/>
2628
</div>
29+
<div class="col-sm-3">
30+
{{ trans("concept") }}
31+
<input type="text" class="form-control mb-3" name="concepto" maxlength="255" value="{{ model.concepto }}"/>
32+
</div>
2733
{% for variable in fsc.views.EditAsientoPredefinidoVariable.cursor %}
2834
<div class="col-sm-3">
2935
{{ variable.mensaje }}

0 commit comments

Comments
 (0)