feat(web): lotes y series en las líneas de entradas, salidas y transferencias de stock
Una ventana por línea con tabla editable; validación de suma de lotes y una serie por unidad. Probado contra SBODemoCL: entrada de inventario 156 con SU01 y su lote. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
a5592fac76
commit
abc1cc4ac6
16 files changed
+752
-10
No files matched your search
@@ -17,6 +17,9 @@
|
||||
@for (c of columns(); track c.key) {
|
||||
<th sboColResize [style.width]="c.width" [style.text-align]="alignOf(c)" [class.req]="c.required">{{ c.title }}</th>
|
||||
}
|
||||
@if (hasDetails()) {
|
||||
<th class="det">Lotes / Series</th>
|
||||
}
|
||||
@if (!readonly()) {
|
||||
<th class="del"><span class="sr">Quitar</span></th>
|
||||
}
|
||||
@@ -67,6 +70,13 @@
|
||||
}
|
||||
</td>
|
||||
}
|
||||
@if (hasDetails()) {
|
||||
<td class="det">
|
||||
@for (d of detailsOf(line); track d.key) {
|
||||
<button type="button" class="detbtn" [attr.aria-label]="d.title + ' de la línea ' + (i + 1)" (click)="openDetail(i, d)">{{ d.summary(line) }}</button>
|
||||
}
|
||||
</td>
|
||||
}
|
||||
@if (!readonly()) {
|
||||
<td class="del">
|
||||
<button type="button" [attr.aria-label]="'Quitar la línea ' + (i + 1)" title="Quitar línea" (click)="remove(i)">×</button>
|
||||
@@ -75,7 +85,7 @@
|
||||
</tr>
|
||||
} @empty {
|
||||
<tr class="none">
|
||||
<td [attr.colspan]="columns().length + (readonly() ? 1 : 2)">
|
||||
<td [attr.colspan]="columns().length + (readonly() ? 1 : 2) + (hasDetails() ? 1 : 0)">
|
||||
{{ readonly() ? 'El documento no tiene líneas.' : 'No hay líneas. Pulse «Añadir línea» para comenzar.' }}
|
||||
</td>
|
||||
</tr>
|
||||
@@ -84,6 +94,19 @@
|
||||
</table>
|
||||
</div>
|
||||
|
||||
@if (detailTarget(); as t) {
|
||||
<sbo-line-detail-dialog
|
||||
[title]="t.detail.title"
|
||||
[subtitle]="'Línea ' + (t.row + 1)"
|
||||
[columns]="t.detail.columns"
|
||||
[initial]="detailInitial()"
|
||||
[readonly]="readonly()"
|
||||
[hintFor]="detailHintFn()"
|
||||
(saved)="detailSaved($event)"
|
||||
(closed)="detailTarget.set(null)"
|
||||
/>
|
||||
}
|
||||
|
||||
@if (lookup(); as cfg) {
|
||||
<sbo-value-help
|
||||
[open]="true"
|
||||
|
||||
Reference in new issue
Block a user