diff --git a/frontend/src/lib/components/fin/ConceptFields.svelte b/frontend/src/lib/components/fin/ConceptFields.svelte new file mode 100644 index 0000000..b6e7523 --- /dev/null +++ b/frontend/src/lib/components/fin/ConceptFields.svelte @@ -0,0 +1,185 @@ + + +
+ + + + + +
+ Clave de producto/servicio del SAT * +

+ Una clave del SAT solo puede estar asignada a un concepto de la empresa. +

+ {#if productService} +
+ + {productService.code} + — {productService.description} + + +
+ {:else} + + {#if searchingProductService} +

Buscando…

+ {:else if productServiceOptions.length > 0} + + {:else if productServiceQuery.trim().length >= 2} +

Sin coincidencias en el catálogo.

+ {/if} + {/if} + {#if productServiceError} +

{productServiceError}

+ {/if} +
+ + + + + + + + +
diff --git a/frontend/src/routes/dashboard/fin/conceptos/+page.svelte b/frontend/src/routes/dashboard/fin/conceptos/+page.svelte index ed87f66..11c1304 100644 --- a/frontend/src/routes/dashboard/fin/conceptos/+page.svelte +++ b/frontend/src/routes/dashboard/fin/conceptos/+page.svelte @@ -1,60 +1,23 @@ + + + {concept ? `Concepto ${concept.code}` : 'Concepto de facturación'} + + +
+ + + {#if loading && !concept} +

Cargando…

+ {:else if concept} +
+
+

+ + {concept.code} +

+

+ {concept.description} + {#if concept.product_service} + · {concept.product_service.code} + {/if} + · {concept.is_active ? 'Activo' : 'Inactivo'} +

+
+ +
+ + + +
+ + +
+ +
+ +
+
+ {/if} +
diff --git a/frontend/src/routes/dashboard/fin/conceptos/nuevo/+page.svelte b/frontend/src/routes/dashboard/fin/conceptos/nuevo/+page.svelte new file mode 100644 index 0000000..a6f0e12 --- /dev/null +++ b/frontend/src/routes/dashboard/fin/conceptos/nuevo/+page.svelte @@ -0,0 +1,99 @@ + + + + Nuevo concepto de facturación + + +
+ + +
+

+ Nuevo concepto +

+

+ Cada concepto se liga a una clave de producto/servicio del SAT. +

+
+ + + +
+ + +
+ + +
+ +
+
+