Jelajahi Sumber

wrong place lmfao

Matthew Trejo 1 bulan lalu
induk
melakukan
c1d854385d

TEMPAT SAMPAH
prisma/dev.db


+ 26 - 0
prisma/migrations/20251101034513_add_dir_establecimiento/migration.sql

@@ -0,0 +1,26 @@
+-- RedefineTables
+PRAGMA defer_foreign_keys=ON;
+PRAGMA foreign_keys=OFF;
+CREATE TABLE "new_configuraciones_tributarias" (
+    "id" TEXT NOT NULL PRIMARY KEY,
+    "ambiente" TEXT NOT NULL,
+    "tipoEmision" TEXT NOT NULL,
+    "razonSocial" TEXT NOT NULL,
+    "nombreComercial" TEXT NOT NULL,
+    "ruc" TEXT NOT NULL,
+    "dirMatriz" TEXT NOT NULL,
+    "dirEstablecimiento" TEXT NOT NULL DEFAULT '',
+    "estab" TEXT NOT NULL,
+    "ptoEmi" TEXT NOT NULL,
+    "secuencial" TEXT NOT NULL,
+    "obligadoContabilidad" TEXT NOT NULL DEFAULT 'NO',
+    "activo" BOOLEAN NOT NULL DEFAULT true,
+    "createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    "updatedAt" DATETIME NOT NULL
+);
+INSERT INTO "new_configuraciones_tributarias" ("activo", "ambiente", "createdAt", "dirMatriz", "estab", "id", "nombreComercial", "obligadoContabilidad", "ptoEmi", "razonSocial", "ruc", "secuencial", "tipoEmision", "updatedAt") SELECT "activo", "ambiente", "createdAt", "dirMatriz", "estab", "id", "nombreComercial", "obligadoContabilidad", "ptoEmi", "razonSocial", "ruc", "secuencial", "tipoEmision", "updatedAt" FROM "configuraciones_tributarias";
+DROP TABLE "configuraciones_tributarias";
+ALTER TABLE "new_configuraciones_tributarias" RENAME TO "configuraciones_tributarias";
+CREATE UNIQUE INDEX "configuraciones_tributarias_ruc_key" ON "configuraciones_tributarias"("ruc");
+PRAGMA foreign_keys=ON;
+PRAGMA defer_foreign_keys=OFF;

+ 1 - 0
prisma/schema.prisma

@@ -18,6 +18,7 @@ model ConfiguracionTributaria {
   nombreComercial       String
   ruc                   String @unique
   dirMatriz             String
+  dirEstablecimiento    String @default("")
   estab                 String // establecimiento
   ptoEmi                String // punto de emisión
   secuencial            String // secuencial actual

+ 18 - 1
src/components/configuracion/ConfiguracionTributariaManager.tsx

@@ -36,6 +36,7 @@ export function ConfiguracionTributariaManager() {
     nombreComercial: '',
     ruc: '',
     dirMatriz: '',
+    dirEstablecimiento: '',
     estab: '001',
     ptoEmi: '001',
     secuencial: '000000001',
@@ -51,6 +52,7 @@ export function ConfiguracionTributariaManager() {
       nombreComercial: '',
       ruc: '',
       dirMatriz: '',
+      dirEstablecimiento: '',
       estab: '001',
       ptoEmi: '001',
       secuencial: '000000001',
@@ -131,6 +133,7 @@ export function ConfiguracionTributariaManager() {
       nombreComercial: config.nombreComercial,
       ruc: config.ruc,
       dirMatriz: config.dirMatriz,
+      dirEstablecimiento: config.dirEstablecimiento || '',
       estab: config.estab,
       ptoEmi: config.ptoEmi,
       secuencial: config.secuencial,
@@ -292,6 +295,10 @@ export function ConfiguracionTributariaManager() {
                     <Label className="mt-2 text-muted-foreground">Dirección Matriz</Label>
                     <p>{config.dirMatriz}</p>
                   </div>
+                  <div className="col-span-2 md:col-span-3">
+                    <Label className="mt-2 text-muted-foreground">Dirección Establecimiento</Label>
+                    <p>{config.dirEstablecimiento || 'No especificada'}</p>
+                  </div>
                 </div>
               )}
             </CardContent>
@@ -456,7 +463,7 @@ function ConfiguracionForm({ formData, setFormData, onSave, onCancel, isEdit = f
           />
         </div>
         
-        <div className="space-y-2">
+        <div className="space-y-2 md:col-span-2">
           <Label htmlFor="dirMatriz">Dirección Matriz *</Label>
           <Input
             id="dirMatriz"
@@ -466,6 +473,16 @@ function ConfiguracionForm({ formData, setFormData, onSave, onCancel, isEdit = f
           />
         </div>
 
+        <div className="space-y-2 md:col-span-2">
+          <Label htmlFor="dirEstablecimiento">Dirección Establecimiento *</Label>
+          <Input
+            id="dirEstablecimiento"
+            value={formData.dirEstablecimiento}
+            onChange={(e) => setFormData({ ...formData, dirEstablecimiento: e.target.value })}
+            placeholder="Av. Secundaria 456"
+          />
+        </div>
+
         <div className="space-y-2">
           <Label htmlFor="obligadoContabilidad">Obligado a Llevar Contabilidad *</Label>
           <Select

+ 0 - 10
src/components/factura/InfoFacturaForm.tsx

@@ -42,16 +42,6 @@ export function InfoFacturaForm({ infoFactura, onChange }: InfoFacturaFormProps)
               />
             </div>
 
-            <div className="space-y-2">
-              <Label htmlFor="dirEstablecimiento">Dirección Establecimiento *</Label>
-              <Input
-                id="dirEstablecimiento"
-                value={infoFactura.dirEstablecimiento}
-                onChange={(e) => onChange('dirEstablecimiento', e.target.value)}
-                placeholder="Av. Secundaria 456"
-              />
-            </div>
-
             <div className="space-y-2">
               <Label htmlFor="telefonoComprador">Teléfono Comprador</Label>
               <Input

+ 12 - 0
src/components/factura/InfoTributariaForm.tsx

@@ -27,6 +27,7 @@ export function InfoTributariaForm({ infoTributaria, onChange }: InfoTributariaF
     onChange('nombreComercial', config.nombreComercial)
     onChange('ruc', config.ruc)
     onChange('dirMatriz', config.dirMatriz)
+    onChange('dirEstablecimiento', config.dirEstablecimiento || '')
     onChange('estab', config.estab)
     onChange('ptoEmi', config.ptoEmi)
     onChange('secuencial', config.secuencial)
@@ -209,6 +210,17 @@ export function InfoTributariaForm({ infoTributaria, onChange }: InfoTributariaF
             />
           </div>
 
+          <div className="space-y-2 lg:col-span-2">
+            <Label htmlFor="dirEstablecimiento">Dirección Establecimiento *</Label>
+            <Input
+              id="dirEstablecimiento"
+              value={infoTributaria.dirEstablecimiento}
+              onChange={(e) => onChange('dirEstablecimiento', e.target.value)}
+              placeholder="Av. Secundaria 456"
+              disabled={isLocked}
+            />
+          </div>
+
           <div className="space-y-2">
             <Label htmlFor="obligadoContabilidad">Obligado a Llevar Contabilidad *</Label>
             <Select value={infoTributaria.obligadoContabilidad} onValueChange={(value) => onChange('obligadoContabilidad', value)} disabled={isLocked}>

+ 1 - 1
src/hooks/factura/useFacturaState.ts

@@ -13,12 +13,12 @@ export function useFacturaState() {
     ptoEmi: '001',
     secuencial: '000000001',
     dirMatriz: '',
+    dirEstablecimiento: '',
     obligadoContabilidad: 'NO'
   })
 
   const [infoFactura, setInfoFactura] = useState<InfoFactura>({
     fechaEmision: new Date().toISOString().split('T')[0],
-    dirEstablecimiento: '',
     tipoIdentificacionComprador: '04',
     razonSocialComprador: '',
     identificacionComprador: '',

+ 1 - 1
src/hooks/factura/useXmlGeneration.ts

@@ -57,7 +57,7 @@ export function useXmlGeneration() {
   
   <infoFactura>
     <fechaEmision>${formatDateForSRI(infoFactura.fechaEmision)}</fechaEmision>
-    <dirEstablecimiento>${infoFactura.dirEstablecimiento}</dirEstablecimiento>
+    <dirEstablecimiento>${infoTributaria.dirEstablecimiento}</dirEstablecimiento>
     <obligadoContabilidad>${infoTributaria.obligadoContabilidad}</obligadoContabilidad>
     <tipoIdentificacionComprador>${infoFactura.tipoIdentificacionComprador}</tipoIdentificacionComprador>
     <razonSocialComprador>${infoFactura.razonSocialComprador}</razonSocialComprador>

+ 3 - 0
src/hooks/useConfiguracionesTributarias.ts

@@ -10,6 +10,7 @@ interface ConfiguracionTributaria {
   nombreComercial: string
   ruc: string
   dirMatriz: string
+  dirEstablecimiento: string
   estab: string
   ptoEmi: string
   secuencial: string
@@ -26,6 +27,7 @@ interface CreateConfiguracionData {
   nombreComercial: string
   ruc: string
   dirMatriz: string
+  dirEstablecimiento: string
   estab: string
   ptoEmi: string
   secuencial: string
@@ -39,6 +41,7 @@ interface UpdateConfiguracionData {
   nombreComercial?: string
   ruc?: string
   dirMatriz?: string
+  dirEstablecimiento?: string
   estab?: string
   ptoEmi?: string
   secuencial?: string

+ 1 - 1
src/lib/factura/xml-generator.ts

@@ -26,7 +26,7 @@ export class XmlGenerator {
 
   <infoFactura>
     <fechaEmision>${formatDateForSRI(infoFactura.fechaEmision)}</fechaEmision>
-    <dirEstablecimiento>${infoFactura.dirEstablecimiento}</dirEstablecimiento>
+    <dirEstablecimiento>${infoTributaria.dirEstablecimiento}</dirEstablecimiento>
     <obligadoContabilidad>${infoTributaria.obligadoContabilidad}</obligadoContabilidad>
     <tipoIdentificacionComprador>${infoFactura.tipoIdentificacionComprador}</tipoIdentificacionComprador>
     <razonSocialComprador>${infoFactura.razonSocialComprador}</razonSocialComprador>

+ 1 - 1
src/types/factura.ts

@@ -9,12 +9,12 @@ export interface InfoTributaria {
   ptoEmi: string
   secuencial: string
   dirMatriz: string
+  dirEstablecimiento: string
   obligadoContabilidad: string
 }
 
 export interface InfoFactura {
   fechaEmision: string
-  dirEstablecimiento: string
   tipoIdentificacionComprador: string
   razonSocialComprador: string
   identificacionComprador: string