-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathProyecto_BD.SQL
More file actions
1106 lines (919 loc) · 53.8 KB
/
Copy pathProyecto_BD.SQL
File metadata and controls
1106 lines (919 loc) · 53.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
-- Para eliminar tablas, procedimientos, vistas y disparadores
DROP TABLE AUDITORIA CASCADE CONSTRAINTS;
DROP TABLE ORDEN CASCADE CONSTRAINTS;
DROP TABLE EMP_TEL CASCADE CONSTRAINTS;
DROP TABLE EMP_EMAIL CASCADE CONSTRAINTS;
DROP TABLE EMPLEADO CASCADE CONSTRAINTS;
DROP TABLE TIPO_EMP CASCADE CONSTRAINTS;
DROP TABLE TIPO_ORDEN CASCADE CONSTRAINTS;
DROP TABLE POSICION CASCADE CONSTRAINTS;
DROP TABLE ESTANTE CASCADE CONSTRAINTS;
DROP TABLE PROVEE CASCADE CONSTRAINTS;
DROP TABLE CLIENTE_TELE CASCADE CONSTRAINTS;
DROP TABLE CLIENTE_EMAIL CASCADE CONSTRAINTS;
DROP TABLE CLIENTE CASCADE CONSTRAINTS;
DROP TABLE TIPO_PRODUCT CASCADE CONSTRAINTS;
DROP TABLE PRODUCTO CASCADE CONSTRAINTS;
DROP TABLE CEDIS CASCADE CONSTRAINTS;
DROP PROCEDURE Registrar_Cliente;
DROP PROCEDURE Productos_Reubicacion;
DROP VIEW Inventario_Electronica;
DROP VIEW Eficiencia_Operativa;
DROP TRIGGER VALIDAR_OPERATIVO;
DROP TRIGGER VALIDAR_AUDITOR_ADMIN;
--Inicio de Spool para la creación de tablas e inserción.
SPOOL 'C:/Users/herle/Downloads/Proyecto_BD';
--Creación de tablas.
CREATE TABLE CEDIS (
IDCEDIS INT,
NOMBRE VARCHAR2(20) NOT NULL,
DIRECCION VARCHAR2(100) NOT NULL,
CONSTRAINT CEDISPK PRIMARY KEY (IDCEDIS)
);
CREATE TABLE PRODUCTO (
SKU INT,
NOMBRE VARCHAR2(250) NOT NULL,
DESCRIPCION VARCHAR2(250) NOT NULL,
PESO NUMBER(10,2) NOT NULL,
ANCHO NUMBER(10,2) NOT NULL,
LARGO NUMBER(10,2) NOT NULL,
CONSTRAINT PRODUCTOPK PRIMARY KEY (SKU),
CONSTRAINT CHK_PRODUCTO_DIMENSIONES CHECK (PESO > 0 AND ANCHO > 0 AND LARGO > 0)
);
CREATE TABLE TIPO_PRODUCT (
SKU INT,
TIPOPRODUCTO VARCHAR2(20) NOT NULL,
CONSTRAINT TIPOPROPK PRIMARY KEY (SKU),
CONSTRAINT TIPOPRO_FK FOREIGN KEY (SKU) REFERENCES PRODUCTO(SKU),
CONSTRAINT TIPOPRODCK CHECK (TIPOPRODUCTO IN ('ELECTRONICA', 'ROPA', 'LIBROS', 'BELLEZA'))
);
CREATE TABLE CLIENTE (
IDCLIENTE INT,
RFC VARCHAR2(13) NOT NULL,
NOMBRE VARCHAR2(29) NOT NULL,
CONSTRAINT CLIENTEPK PRIMARY KEY (IDCLIENTE),
CONSTRAINT RFC_UNI UNIQUE (RFC)
);
CREATE TABLE CLIENTE_EMAIL(
IDCLIENTE INT,
EMAIL VARCHAR2(25) NOT NULL,
CONSTRAINT CLIEMPK PRIMARY KEY (IDCLIENTE, EMAIL),
CONSTRAINT CLIEMFK FOREIGN KEY (IDCLIENTE) REFERENCES CLIENTE(IDCLIENTE),
CONSTRAINT CLIEMUNI UNIQUE (EMAIL),
CONSTRAINT CLIEMEMAIL_CK CHECK (EMAIL LIKE '%@%')
);
CREATE TABLE CLIENTE_TELE(
IDCLIENTE INT,
TELEFONO VARCHAR2(15) NOT NULL,
CONSTRAINT CLITELPK PRIMARY KEY (IDCLIENTE, TELEFONO),
CONSTRAINT CLITELFK FOREIGN KEY (IDCLIENTE) REFERENCES CLIENTE(IDCLIENTE),
CONSTRAINT CLITELUNI UNIQUE (TELEFONO)
);
CREATE TABLE PROVEE(
IDPROVEE INT,
IDCLIENTE INT NOT NULL,
SKU INT NOT NULL,
FECHAHORA DATE NOT NULL,
CONSTRAINT PROVPK PRIMARY KEY (IDPROVEE),
CONSTRAINT PCLIFK FOREIGN KEY (IDCLIENTE) REFERENCES CLIENTE (IDCLIENTE),
CONSTRAINT PPRODFK FOREIGN KEY (SKU) REFERENCES PRODUCTO (SKU),
CONSTRAINT PUNIQUE UNIQUE (IDCLIENTE, SKU, FECHAHORA)
);
CREATE TABLE ESTANTE (
IDESTANTE INT,
UBICACION VARCHAR2 (50) NOT NULL,
IDCEDIS INT NOT NULL,
CONSTRAINT ESTPK PRIMARY KEY (IDESTANTE),
CONSTRAINT ESTFK FOREIGN KEY (IDCEDIS) REFERENCES CEDIS (IDCEDIS)
);
CREATE TABLE POSICION (
IDPOSICIONSUB INT,
IDESTANTE INT NOT NULL,
NOPOS INT NOT NULL,
SECCION VARCHAR2(4) NOT NULL,
NIVEL VARCHAR2(4) NOT NULL,
IDPROVEE INT NOT NULL,
CONSTRAINT PPOSPK PRIMARY KEY (IDPOSICIONSUB),
CONSTRAINT PESTFK FOREIGN KEY (IDESTANTE) REFERENCES ESTANTE (IDESTANTE),
CONSTRAINT PPEEFK FOREIGN KEY (IDPROVEE) REFERENCES PROVEE (IDPROVEE),
CONSTRAINT POUNI UNIQUE (IDESTANTE, NOPOS)
);
CREATE TABLE TIPO_ORDEN (
IDTIPOORDEN INT,
DESCRIPCION VARCHAR2(50) NOT NULL,
CONSTRAINT TIORPK PRIMARY KEY (IDTIPOORDEN),
CONSTRAINT TOCHECK CHECK (DESCRIPCION IN ('INGRESO', 'SALIDA'))
);
CREATE TABLE TIPO_EMP(
IDTIPOEMPLEADO INT,
DESCRIPCION VARCHAR2(50) NOT NULL,
CONSTRAINT TIEMPK PRIMARY KEY (IDTIPOEMPLEADO),
CONSTRAINT TIEMUNI UNIQUE (DESCRIPCION),
CONSTRAINT DESCH CHECK (DESCRIPCION IN ('ADMINISTRATIVO', 'OPERATIVO', 'AUXILIAR'))
);
CREATE TABLE EMPLEADO (
IDEMPLEADO INT,
RFC VARCHAR2(13) NOT NULL,
HORARIOLABORAL VARCHAR2 (50) NOT NULL,
PILA VARCHAR2(15) NOT NULL,
APPAT VARCHAR2(15) NOT NULL,
APMAT VARCHAR2(15) NULL,
DIRECCION VARCHAR2 (100) NOT NULL,
IDEMPSUP INT NULL,
IDTIPOEMPLEADO INT NOT NULL,
IDCEDIS INT NOT NULL,
CONSTRAINT EMPPK PRIMARY KEY (IDEMPLEADO),
CONSTRAINT SUPFK FOREIGN KEY (IDEMPSUP) REFERENCES EMPLEADO (IDEMPLEADO),
CONSTRAINT TEMFK FOREIGN KEY (IDTIPOEMPLEADO) REFERENCES TIPO_EMP (IDTIPOEMPLEADO),
CONSTRAINT CEDFK FOREIGN KEY (IDCEDIS) REFERENCES CEDIS (IDCEDIS),
CONSTRAINT ERFCUNI UNIQUE (RFC)
);
CREATE TABLE EMP_EMAIL(
IDEMPLEADO INT,
EMAIL VARCHAR2 (25) NOT NULL,
CONSTRAINT EMEPK PRIMARY KEY (IDEMPLEADO, EMAIL),
CONSTRAINT EMEFK FOREIGN KEY (IDEMPLEADO) REFERENCES EMPLEADO (IDEMPLEADO),
CONSTRAINT EMEUNI UNIQUE (EMAIL),
CONSTRAINT EMECH CHECK (EMAIL LIKE '%@%')
);
CREATE TABLE EMP_TEL(
IDEMPLEADO INT,
TELEFONO VARCHAR2(15) NOT NULL,
CONSTRAINT EMTEPK PRIMARY KEY (IDEMPLEADO, TELEFONO),
CONSTRAINT EMTEFK FOREIGN KEY (IDEMPLEADO) REFERENCES EMPLEADO (IDEMPLEADO),
CONSTRAINT EMTEUNI UNIQUE (TELEFONO)
);
CREATE TABLE ORDEN (
FOLIO INT,
FECHACREACION DATE NOT NULL,
ESTADO VARCHAR2(15) NOT NULL,
IDTIPOORDEN INT NOT NULL,
IDEMPLEADO INT NOT NULL,
IDPROVEE INT NOT NULL,
IDCEDIS INT NOT NULL,
CANTIDAD INT NOT NULL,
CONSTRAINT ORDPK PRIMARY KEY (FOLIO),
CONSTRAINT TORDFK FOREIGN KEY (IDTIPOORDEN) REFERENCES TIPO_ORDEN (IDTIPOORDEN),
CONSTRAINT OEMPFK FOREIGN KEY (IDEMPLEADO) REFERENCES EMPLEADO (IDEMPLEADO),
CONSTRAINT OPROFK FOREIGN KEY (IDPROVEE) REFERENCES PROVEE (IDPROVEE),
CONSTRAINT OCEDFK FOREIGN KEY (IDCEDIS) REFERENCES CEDIS (IDCEDIS),
CONSTRAINT ESTCH CHECK (ESTADO IN ('PENDIENTE', 'EN PROCESO', 'COMPLETADA')),
CONSTRAINT OCANTIDAD CHECK (CANTIDAD > 0)
);
CREATE TABLE AUDITORIA (
IDAUDITORIA INT,
IDEMPLEADO INT NOT NULL,
FOLIO INT NOT NULL,
FECHAHORA DATE NOT NULL,
ESTADO VARCHAR2(15) NOT NULL,
CONSTRAINT AUDIPK PRIMARY KEY (IDAUDITORIA),
CONSTRAINT AFOFK FOREIGN KEY (FOLIO) REFERENCES ORDEN (FOLIO),
CONSTRAINT AEMPFK FOREIGN KEY (IDEMPLEADO) REFERENCES EMPLEADO (IDEMPLEADO),
CONSTRAINT AUNIQUE UNIQUE (IDEMPLEADO, FOLIO, FECHAHORA),
CONSTRAINT AESTCH CHECK (ESTADO IN ('CONFORME', 'NO CONFORME'))
);
--Insercion de registros en las tablas
--CEDIS
INSERT INTO CEDIS (IDCEDIS, NOMBRE, DIRECCION)
VALUES (101, 'CEDIS Central Norte', 'Av. Patriotismo #100, Col. Escandón, CDMX');
INSERT INTO CEDIS (IDCEDIS, NOMBRE, DIRECCION)
VALUES (102, 'CEDIS Bajío', 'Blvd. Aeropuerto 50, Silao, Gto.');
INSERT INTO CEDIS (IDCEDIS, NOMBRE, DIRECCION)
VALUES (103, 'CEDIS Sureste', 'Carretera Mérida-Cancún KM 15, Cancún, Q.R.');
SELECT * FROM CEDIS;
--TIPO_EMP
INSERT INTO TIPO_EMP (IDTIPOEMPLEADO, DESCRIPCION) VALUES (1, 'ADMINISTRATIVO');
INSERT INTO TIPO_EMP (IDTIPOEMPLEADO, DESCRIPCION) VALUES (2, 'OPERATIVO');
INSERT INTO TIPO_EMP (IDTIPOEMPLEADO, DESCRIPCION) VALUES (3, 'AUXILIAR');
SELECT * FROM TIPO_EMP;
--EMPLEADO
-- Supervisores (IDEMPSUP = NULL)
INSERT INTO EMPLEADO (IDEMPLEADO, RFC, HORARIOLABORAL, PILA, APPAT, APMAT, DIRECCION, IDEMPSUP, IDTIPOEMPLEADO, IDCEDIS)
VALUES (1, 'AAAA111111AAA', 'L-V 9:00 - 18:00', 'Juan', 'Perez', 'Lopez', 'Calle Falsa 123, CDMX', NULL, 1, 101);
INSERT INTO EMPLEADO (IDEMPLEADO, RFC, HORARIOLABORAL, PILA, APPAT, APMAT, DIRECCION, IDEMPSUP, IDTIPOEMPLEADO, IDCEDIS)
VALUES (2, 'BBBB222222BBB', 'L-V 8:00 - 17:00', 'Maria', 'Gomez', 'Ruiz', 'Av. Principal 45, GTO', NULL, 2, 102);
INSERT INTO EMPLEADO (IDEMPLEADO, RFC, HORARIOLABORAL, PILA, APPAT, APMAT, DIRECCION, IDEMPSUP, IDTIPOEMPLEADO, IDCEDIS)
VALUES (3, 'CCCC333333CCC', 'L-S 7:00 - 15:00', 'Carlos', 'Hernandez', 'Silva', 'Margarita 99, QRO', NULL, 3, 103);
-- Administrativos (IDTIPOEMPLEADO = 1)
INSERT INTO EMPLEADO (IDEMPLEADO, RFC, HORARIOLABORAL, PILA, APPAT, APMAT, DIRECCION, IDEMPSUP, IDTIPOEMPLEADO, IDCEDIS)
VALUES (4, 'DDDD444444DDD', 'L-V 9:00 - 18:00', 'Ana', 'Torres', 'Castro', 'Paseo de la Reforma 1, CDMX', 1, 1, 101);
INSERT INTO EMPLEADO (IDEMPLEADO, RFC, HORARIOLABORAL, PILA, APPAT, APMAT, DIRECCION, IDEMPSUP, IDTIPOEMPLEADO, IDCEDIS)
VALUES (5, 'EEEE555555EEE', 'L-V 9:00 - 18:00', 'Luis', 'Ramirez', 'Diaz', 'Avenida Central 2, CDMX', 4, 1, 101);
-- Operativos (IDTIPOEMPLEADO = 2)
INSERT INTO EMPLEADO (IDEMPLEADO, RFC, HORARIOLABORAL, PILA, APPAT, APMAT, DIRECCION, IDEMPSUP, IDTIPOEMPLEADO, IDCEDIS)
VALUES (6, 'FFFF666666FFF', 'T-M 6:00 - 14:00', 'Laura', 'Vazquez', 'Mendez', 'Ruta del Sol 10, GTO', 2, 2, 102);
INSERT INTO EMPLEADO (IDEMPLEADO, RFC, HORARIOLABORAL, PILA, APPAT, APMAT, DIRECCION, IDEMPSUP, IDTIPOEMPLEADO, IDCEDIS)
VALUES (7, 'GGGG777777GGG', 'T-V 6:00 - 14:00', 'Ricardo', 'Soto', 'Nuñez', 'Callejon Sin Salida 3, GTO', 6, 2, 102);
INSERT INTO EMPLEADO (IDEMPLEADO, RFC, HORARIOLABORAL, PILA, APPAT, APMAT, DIRECCION, IDEMPSUP, IDTIPOEMPLEADO, IDCEDIS)
VALUES (8, 'HHHH888888HHH', 'T-N 14:00 - 22:00', 'Sofia', 'Molina', 'Vega', 'Plaza Mayor 5, GTO', 6, 2, 102);
INSERT INTO EMPLEADO (IDEMPLEADO, RFC, HORARIOLABORAL, PILA, APPAT, APMAT, DIRECCION, IDEMPSUP, IDTIPOEMPLEADO, IDCEDIS)
VALUES (9, 'IIII999999III', 'T-N 14:00 - 22:00', 'Jorge', 'Paredes', 'Rojas', 'Ojo de Agua 7, GTO', 7, 2, 102);
INSERT INTO EMPLEADO (IDEMPLEADO, RFC, HORARIOLABORAL, PILA, APPAT, APMAT, DIRECCION, IDEMPSUP, IDTIPOEMPLEADO, IDCEDIS)
VALUES (10, 'JJJJ000000JJJ', 'T-N 14:00 - 22:00', 'Elena', 'Flores', 'Prieto', 'Calle del Cobre 9, Q.R.', 2, 2, 103);
INSERT INTO EMPLEADO (IDEMPLEADO, RFC, HORARIOLABORAL, PILA, APPAT, APMAT, DIRECCION, IDEMPSUP, IDTIPOEMPLEADO, IDCEDIS)
VALUES (11, 'KKKK111111KKK', 'T-N 14:00 - 22:00', 'Miguel', 'Cruz', 'Santos', 'Avenida Sol 11, Q.R.', 10, 2, 103);
INSERT INTO EMPLEADO (IDEMPLEADO, RFC, HORARIOLABORAL, PILA, APPAT, APMAT, DIRECCION, IDEMPSUP, IDTIPOEMPLEADO, IDCEDIS)
VALUES (12, 'LLLL222222LLL', 'T-M 6:00 - 14:00', 'Andrea', 'Herrera', 'Mora', 'Boulevard Kukulkan 13, Q.R.', 10, 2, 103);
-- Auxiliares (IDTIPOEMPLEADO = 3)
INSERT INTO EMPLEADO (IDEMPLEADO, RFC, HORARIOLABORAL, PILA, APPAT, APMAT, DIRECCION, IDEMPSUP, IDTIPOEMPLEADO, IDCEDIS)
VALUES (13, 'MMMM333333MMM', 'L-V 7:00 - 15:00', 'David', 'Castro', 'Leon', 'Calle de los Limones 15, CDMX', 3, 3, 101);
INSERT INTO EMPLEADO (IDEMPLEADO, RFC, HORARIOLABORAL, PILA, APPAT, APMAT, DIRECCION, IDEMPSUP, IDTIPOEMPLEADO, IDCEDIS)
VALUES (14, 'NNNN444444NNN', 'L-V 7:00 - 15:00', 'Fernanda', 'Ochoa', 'Peralta', 'Bosques 17, CDMX', 13, 3, 101);
INSERT INTO EMPLEADO (IDEMPLEADO, RFC, HORARIOLABORAL, PILA, APPAT, APMAT, DIRECCION, IDEMPSUP, IDTIPOEMPLEADO, IDCEDIS)
VALUES (15, 'OOOO555555OOO', 'L-V 8:00 - 16:00', 'Gabriel', 'Rios', 'Guerra', 'Hacienda 19, GTO', 3, 3, 102);
INSERT INTO EMPLEADO (IDEMPLEADO, RFC, HORARIOLABORAL, PILA, APPAT, APMAT, DIRECCION, IDEMPSUP, IDTIPOEMPLEADO, IDCEDIS)
VALUES (16, 'PPPP666666PPP', 'L-V 8:00 - 16:00', 'Hilda', 'Vargas', 'Reyes', 'Puerto Rico 21, GTO', 15, 3, 102);
INSERT INTO EMPLEADO (IDEMPLEADO, RFC, HORARIOLABORAL, PILA, APPAT, APMAT, DIRECCION, IDEMPSUP, IDTIPOEMPLEADO, IDCEDIS)
VALUES (17, 'QQQQ777777QQQ', 'L-V 7:00 - 15:00', 'Israel', 'Guzman', 'Mendoza', 'Calle de Arena 23, Q.R.', 3, 3, 103);
INSERT INTO EMPLEADO (IDEMPLEADO, RFC, HORARIOLABORAL, PILA, APPAT, APMAT, DIRECCION, IDEMPSUP, IDTIPOEMPLEADO, IDCEDIS)
VALUES (18, 'RRRR888888RRR', 'L-V 7:00 - 15:00', 'Jessica', 'Maldonado', 'Vega', 'Avenida del Mar 25, Q.R.', 17, 3, 103);
INSERT INTO EMPLEADO (IDEMPLEADO, RFC, HORARIOLABORAL, PILA, APPAT, APMAT, DIRECCION, IDEMPSUP, IDTIPOEMPLEADO, IDCEDIS)
VALUES (19, 'SSSS999999SSS', 'L-V 9:00 - 18:00', 'Kevin', 'Lara', 'Toro', 'Viñedos 27, CDMX', 1, 1, 101);
INSERT INTO EMPLEADO (IDEMPLEADO, RFC, HORARIOLABORAL, PILA, APPAT, APMAT, DIRECCION, IDEMPSUP, IDTIPOEMPLEADO, IDCEDIS)
VALUES (20, 'TTTT000000TTT', 'T-M 6:00 - 14:00', 'Monica', 'Pena', 'Cano', 'Villas del Sol 29, GTO', 2, 2, 102);
SELECT * FROM EMPLEADO;
--EMP_EMAIL
INSERT INTO EMP_EMAIL (IDEMPLEADO, EMAIL) VALUES (1, 'juan.perez@logicorp.mx');
INSERT INTO EMP_EMAIL (IDEMPLEADO, EMAIL) VALUES (2, 'maria.gomez@logicorp.mx');
INSERT INTO EMP_EMAIL (IDEMPLEADO, EMAIL) VALUES (3, 'carlos.hdz@logicorp.mx');
INSERT INTO EMP_EMAIL (IDEMPLEADO, EMAIL) VALUES (4, 'ana.torres@logicorp.mx');
INSERT INTO EMP_EMAIL (IDEMPLEADO, EMAIL) VALUES (5, 'luis.ramirez@logicorp.mx');
INSERT INTO EMP_EMAIL (IDEMPLEADO, EMAIL) VALUES (6, 'laura.vazquez@logicorp.mx');
INSERT INTO EMP_EMAIL (IDEMPLEADO, EMAIL) VALUES (7, 'ricardo.soto@logicorp.mx');
INSERT INTO EMP_EMAIL (IDEMPLEADO, EMAIL) VALUES (8, 'sofia.molina@logicorp.mx');
INSERT INTO EMP_EMAIL (IDEMPLEADO, EMAIL) VALUES (9, 'jorge.paredes@logicorp.mx');
INSERT INTO EMP_EMAIL (IDEMPLEADO, EMAIL) VALUES (10, 'elena.flores@logicorp.mx');
INSERT INTO EMP_EMAIL (IDEMPLEADO, EMAIL) VALUES (11, 'miguel.cruz@logicorp.mx');
INSERT INTO EMP_EMAIL (IDEMPLEADO, EMAIL) VALUES (12, 'andyherrera@logicorp.mx');
INSERT INTO EMP_EMAIL (IDEMPLEADO, EMAIL) VALUES (13, 'david.castro@logicorp.mx');
INSERT INTO EMP_EMAIL (IDEMPLEADO, EMAIL) VALUES (14, 'ferochoa@logicorp.mx');
INSERT INTO EMP_EMAIL (IDEMPLEADO, EMAIL) VALUES (15, 'gabriel.rios@logicorp.mx');
INSERT INTO EMP_EMAIL (IDEMPLEADO, EMAIL) VALUES (16, 'hilda.vargas@logicorp.mx');
INSERT INTO EMP_EMAIL (IDEMPLEADO, EMAIL) VALUES (17, 'israel.guzman@logicorp.mx');
INSERT INTO EMP_EMAIL (IDEMPLEADO, EMAIL) VALUES (18, 'jessicamaldo@logicorp.mx');
INSERT INTO EMP_EMAIL (IDEMPLEADO, EMAIL) VALUES (19, 'kevinlara@logicorp.mx');
INSERT INTO EMP_EMAIL (IDEMPLEADO, EMAIL) VALUES (20, 'monica.pena@logicorp.mx');
SELECT * FROM EMP_EMAIL;
--EMP_TEL
INSERT INTO EMP_TEL (IDEMPLEADO, TELEFONO) VALUES (1, '5511110001');
INSERT INTO EMP_TEL (IDEMPLEADO, TELEFONO) VALUES (2, '5522220002');
INSERT INTO EMP_TEL (IDEMPLEADO, TELEFONO) VALUES (3, '5533330003');
INSERT INTO EMP_TEL (IDEMPLEADO, TELEFONO) VALUES (4, '5544440004');
INSERT INTO EMP_TEL (IDEMPLEADO, TELEFONO) VALUES (5, '5555550005');
INSERT INTO EMP_TEL (IDEMPLEADO, TELEFONO) VALUES (6, '5566660006');
INSERT INTO EMP_TEL (IDEMPLEADO, TELEFONO) VALUES (7, '5577770007');
INSERT INTO EMP_TEL (IDEMPLEADO, TELEFONO) VALUES (8, '5588880008');
INSERT INTO EMP_TEL (IDEMPLEADO, TELEFONO) VALUES (9, '5599990009');
INSERT INTO EMP_TEL (IDEMPLEADO, TELEFONO) VALUES (10, '5510100010');
INSERT INTO EMP_TEL (IDEMPLEADO, TELEFONO) VALUES (11, '5511110011');
INSERT INTO EMP_TEL (IDEMPLEADO, TELEFONO) VALUES (12, '5512120012');
INSERT INTO EMP_TEL (IDEMPLEADO, TELEFONO) VALUES (13, '5513130013');
INSERT INTO EMP_TEL (IDEMPLEADO, TELEFONO) VALUES (14, '5514140014');
INSERT INTO EMP_TEL (IDEMPLEADO, TELEFONO) VALUES (15, '5515150015');
INSERT INTO EMP_TEL (IDEMPLEADO, TELEFONO) VALUES (16, '5516160016');
INSERT INTO EMP_TEL (IDEMPLEADO, TELEFONO) VALUES (17, '5517170017');
INSERT INTO EMP_TEL (IDEMPLEADO, TELEFONO) VALUES (18, '5518180018');
INSERT INTO EMP_TEL (IDEMPLEADO, TELEFONO) VALUES (19, '5519190019');
INSERT INTO EMP_TEL (IDEMPLEADO, TELEFONO) VALUES (20, '5520200020');
SELECT * FROM EMP_TEL;
--CLIENTE
INSERT INTO CLIENTE (IDCLIENTE, RFC, NOMBRE) VALUES (1001, 'MELI123456ABC', 'Mercado Libre S.A.');
INSERT INTO CLIENTE (IDCLIENTE, RFC, NOMBRE) VALUES (1002, 'AMZN987654XYZ', 'Amazon Mexico S.A.');
INSERT INTO CLIENTE (IDCLIENTE, RFC, NOMBRE) VALUES (1003, 'AEXY010101XYZ', 'AliExpress Global');
INSERT INTO CLIENTE (IDCLIENTE, RFC, NOMBRE) VALUES (1004, 'TECH456789DEF', 'Tecno Store');
INSERT INTO CLIENTE (IDCLIENTE, RFC, NOMBRE) VALUES (1005, 'FASH321098GHI', 'Moda Express');
INSERT INTO CLIENTE (IDCLIENTE, RFC, NOMBRE) VALUES (1006, 'BOOK567890JKL', 'Libreria El Saber');
INSERT INTO CLIENTE (IDCLIENTE, RFC, NOMBRE) VALUES (1007, 'BEAU123456MNO', 'Cosmeticos Brillante');
INSERT INTO CLIENTE (IDCLIENTE, RFC, NOMBRE) VALUES (1008, 'ELEC789012PQR', 'Electro Mega');
INSERT INTO CLIENTE (IDCLIENTE, RFC, NOMBRE) VALUES (1009, 'CLOT345678STU', 'Ropa Comoda');
INSERT INTO CLIENTE (IDCLIENTE, RFC, NOMBRE) VALUES (1010, 'LITE901234VWX', 'Libros de Bolsillo');
INSERT INTO CLIENTE (IDCLIENTE, RFC, NOMBRE) VALUES (1011, 'GLOW567890YZA', 'Maquillaje Sano');
INSERT INTO CLIENTE (IDCLIENTE, RFC, NOMBRE) VALUES (1012, 'DEVI234567BCD', 'Dispositivos Innova');
INSERT INTO CLIENTE (IDCLIENTE, RFC, NOMBRE) VALUES (1013, 'STYL890123EFG', 'Estilo Joven');
INSERT INTO CLIENTE (IDCLIENTE, RFC, NOMBRE) VALUES (1014, 'READ456789HIJ', 'Ficcion Fantastica');
INSERT INTO CLIENTE (IDCLIENTE, RFC, NOMBRE) VALUES (1015, 'CARE012345KLM', 'Cuidado Personal S.A.');
INSERT INTO CLIENTE (IDCLIENTE, RFC, NOMBRE) VALUES (1016, 'HARD678901NOP', 'Hardware Pro');
INSERT INTO CLIENTE (IDCLIENTE, RFC, NOMBRE) VALUES (1017, 'TEXT234567QRS', 'Textiles Finos');
INSERT INTO CLIENTE (IDCLIENTE, RFC, NOMBRE) VALUES (1018, 'PAPE890123TUV', 'Papeleria Central');
INSERT INTO CLIENTE (IDCLIENTE, RFC, NOMBRE) VALUES (1019, 'AROM456789WXY', 'Aromas y Esencias');
INSERT INTO CLIENTE (IDCLIENTE, RFC, NOMBRE) VALUES (1020, 'GARM012345ZAB', 'Prendas de Vestir');
SELECT * FROM CLIENTE;
--CLIENTE_EMAIL
INSERT INTO CLIENTE_EMAIL (IDCLIENTE, EMAIL) VALUES (1001, 'contacto@mercadolibre.com');
INSERT INTO CLIENTE_EMAIL (IDCLIENTE, EMAIL) VALUES (1002, 'soporte@amazon.com.mx');
INSERT INTO CLIENTE_EMAIL (IDCLIENTE, EMAIL) VALUES (1003, 'ventas@aliexpress.com');
INSERT INTO CLIENTE_EMAIL (IDCLIENTE, EMAIL) VALUES (1004, 'tech@tecno.com');
INSERT INTO CLIENTE_EMAIL (IDCLIENTE, EMAIL) VALUES (1005, 'moda@modaxp.com');
INSERT INTO CLIENTE_EMAIL (IDCLIENTE, EMAIL) VALUES (1006, 'pedidos@elsaber.com');
INSERT INTO CLIENTE_EMAIL (IDCLIENTE, EMAIL) VALUES (1007, 'beauty@brillante.com');
INSERT INTO CLIENTE_EMAIL (IDCLIENTE, EMAIL) VALUES (1008, 'info@electromega.com');
INSERT INTO CLIENTE_EMAIL (IDCLIENTE, EMAIL) VALUES (1009, 'servicio@ropacomoda.com');
INSERT INTO CLIENTE_EMAIL (IDCLIENTE, EMAIL) VALUES (1010, 'library@bolsillo.com');
INSERT INTO CLIENTE_EMAIL (IDCLIENTE, EMAIL) VALUES (1011, 'contacto@glow.com');
INSERT INTO CLIENTE_EMAIL (IDCLIENTE, EMAIL) VALUES (1012, 'atencion@innova.com');
INSERT INTO CLIENTE_EMAIL (IDCLIENTE, EMAIL) VALUES (1013, 'style@joven.com');
INSERT INTO CLIENTE_EMAIL (IDCLIENTE, EMAIL) VALUES (1014, 'editorial@fantastica.com');
INSERT INTO CLIENTE_EMAIL (IDCLIENTE, EMAIL) VALUES (1015, 'care@personal.com');
INSERT INTO CLIENTE_EMAIL (IDCLIENTE, EMAIL) VALUES (1016, 'pro@hardware.com');
INSERT INTO CLIENTE_EMAIL (IDCLIENTE, EMAIL) VALUES (1017, 'ventas@textilesfinos.com');
INSERT INTO CLIENTE_EMAIL (IDCLIENTE, EMAIL) VALUES (1018, 'central@papeleria.com');
INSERT INTO CLIENTE_EMAIL (IDCLIENTE, EMAIL) VALUES (1019, 'aromas@esencias.com');
INSERT INTO CLIENTE_EMAIL (IDCLIENTE, EMAIL) VALUES (1020, 'pedidos@prendas.com');
SELECT * FROM CLIENTE_EMAIL;
--CLIENTE_TELE
INSERT INTO CLIENTE_TELE (IDCLIENTE, TELEFONO) VALUES (1001, '8001111111');
INSERT INTO CLIENTE_TELE (IDCLIENTE, TELEFONO) VALUES (1002, '8002222222');
INSERT INTO CLIENTE_TELE (IDCLIENTE, TELEFONO) VALUES (1003, '8003333333');
INSERT INTO CLIENTE_TELE (IDCLIENTE, TELEFONO) VALUES (1004, '8004444444');
INSERT INTO CLIENTE_TELE (IDCLIENTE, TELEFONO) VALUES (1005, '8005555555');
INSERT INTO CLIENTE_TELE (IDCLIENTE, TELEFONO) VALUES (1006, '8006666666');
INSERT INTO CLIENTE_TELE (IDCLIENTE, TELEFONO) VALUES (1007, '8007777777');
INSERT INTO CLIENTE_TELE (IDCLIENTE, TELEFONO) VALUES (1008, '8008888888');
INSERT INTO CLIENTE_TELE (IDCLIENTE, TELEFONO) VALUES (1009, '8009999999');
INSERT INTO CLIENTE_TELE (IDCLIENTE, TELEFONO) VALUES (1010, '8001010101');
INSERT INTO CLIENTE_TELE (IDCLIENTE, TELEFONO) VALUES (1011, '8001111112');
INSERT INTO CLIENTE_TELE (IDCLIENTE, TELEFONO) VALUES (1012, '8001212123');
INSERT INTO CLIENTE_TELE (IDCLIENTE, TELEFONO) VALUES (1013, '8001313134');
INSERT INTO CLIENTE_TELE (IDCLIENTE, TELEFONO) VALUES (1014, '8001414145');
INSERT INTO CLIENTE_TELE (IDCLIENTE, TELEFONO) VALUES (1015, '8001515156');
INSERT INTO CLIENTE_TELE (IDCLIENTE, TELEFONO) VALUES (1016, '8001616167');
INSERT INTO CLIENTE_TELE (IDCLIENTE, TELEFONO) VALUES (1017, '8001717178');
INSERT INTO CLIENTE_TELE (IDCLIENTE, TELEFONO) VALUES (1018, '8001818189');
INSERT INTO CLIENTE_TELE (IDCLIENTE, TELEFONO) VALUES (1019, '8001919190');
INSERT INTO CLIENTE_TELE (IDCLIENTE, TELEFONO) VALUES (1020, '8002020201');
SELECT * FROM CLIENTE_TELE;
--PRODUCTO
INSERT INTO PRODUCTO (SKU, NOMBRE, DESCRIPCION, PESO, ANCHO, LARGO) VALUES (100001, 'Smartphone X', 'Telefono movil de alta gama', 0.20, 7.5, 15.0);
INSERT INTO PRODUCTO (SKU, NOMBRE, DESCRIPCION, PESO, ANCHO, LARGO) VALUES (100002, 'Laptop Ultra', 'Ordenador portatil ultraligero', 1.5, 35.0, 25.0);
INSERT INTO PRODUCTO (SKU, NOMBRE, DESCRIPCION, PESO, ANCHO, LARGO) VALUES (100003, 'Auriculares BT', 'Audifonos inalambricos', 0.10, 5.0, 5.0);
INSERT INTO PRODUCTO (SKU, NOMBRE, DESCRIPCION, PESO, ANCHO, LARGO) VALUES (200001, 'Camiseta Algodon', 'Camiseta basica 100% algodon', 0.15, 30.0, 40.0);
INSERT INTO PRODUCTO (SKU, NOMBRE, DESCRIPCION, PESO, ANCHO, LARGO) VALUES (200002, 'Jeans Slim Fit', 'Pantalon de mezclilla ajustado', 0.75, 40.0, 110.0);
INSERT INTO PRODUCTO (SKU, NOMBRE, DESCRIPCION, PESO, ANCHO, LARGO) VALUES (200003, 'Sudadera Hoodie', 'Sudadera con capucha y bolsillo', 0.50, 50.0, 60.0);
INSERT INTO PRODUCTO (SKU, NOMBRE, DESCRIPCION, PESO, ANCHO, LARGO) VALUES (300001, 'Libro Ficcion', 'Novela de ciencia ficcion', 0.40, 15.0, 23.0);
INSERT INTO PRODUCTO (SKU, NOMBRE, DESCRIPCION, PESO, ANCHO, LARGO) VALUES (300002, 'Libro Cocina', 'Recetario de comida vegana', 0.60, 20.0, 28.0);
INSERT INTO PRODUCTO (SKU, NOMBRE, DESCRIPCION, PESO, ANCHO, LARGO) VALUES (300003, 'Manga Edicion', 'Coleccion de historietas japonesas', 0.25, 13.0, 18.0);
INSERT INTO PRODUCTO (SKU, NOMBRE, DESCRIPCION, PESO, ANCHO, LARGO) VALUES (400001, 'Crema Facial', 'Hidratante con acido hialuronico', 0.30, 8.0, 10.0);
INSERT INTO PRODUCTO (SKU, NOMBRE, DESCRIPCION, PESO, ANCHO, LARGO) VALUES (400002, 'Shampoo Organico', 'Champú sin sulfatos ni parabenos', 0.55, 10.0, 20.0);
INSERT INTO PRODUCTO (SKU, NOMBRE, DESCRIPCION, PESO, ANCHO, LARGO) VALUES (400003, 'Labial Mate', 'Set de labiales de larga duracion', 0.05, 2.0, 7.0);
INSERT INTO PRODUCTO (SKU, NOMBRE, DESCRIPCION, PESO, ANCHO, LARGO) VALUES (100004, 'Smartwatch Pro', 'Reloj inteligente con GPS', 0.15, 4.0, 4.5);
INSERT INTO PRODUCTO (SKU, NOMBRE, DESCRIPCION, PESO, ANCHO, LARGO) VALUES (200004, 'Vestido Casual', 'Vestido de verano estampado', 0.35, 30.0, 80.0);
INSERT INTO PRODUCTO (SKU, NOMBRE, DESCRIPCION, PESO, ANCHO, LARGO) VALUES (300004, 'Enciclopedia', 'Set de volumenes de historia', 5.00, 30.0, 40.0);
INSERT INTO PRODUCTO (SKU, NOMBRE, DESCRIPCION, PESO, ANCHO, LARGO) VALUES (400004, 'Perfume Floral', 'Eau de parfum con notas florales', 0.45, 12.0, 15.0);
INSERT INTO PRODUCTO (SKU, NOMBRE, DESCRIPCION, PESO, ANCHO, LARGO) VALUES (100005, 'Consola Gaming', 'Consola de videojuegos de ultima generacion', 3.00, 40.0, 30.0);
INSERT INTO PRODUCTO (SKU, NOMBRE, DESCRIPCION, PESO, ANCHO, LARGO) VALUES (200005, 'Chamarra Piel', 'Chamarra de piel sintetica', 1.20, 60.0, 70.0);
INSERT INTO PRODUCTO (SKU, NOMBRE, DESCRIPCION, PESO, ANCHO, LARGO) VALUES (300005, 'Atlas Mundial', 'Mapa y atlas de paises', 1.50, 40.0, 30.0);
INSERT INTO PRODUCTO (SKU, NOMBRE, DESCRIPCION, PESO, ANCHO, LARGO) VALUES (400005, 'Mascarilla Capilar', 'Tratamiento intensivo para cabello', 0.50, 15.0, 10.0);
SELECT * FROM PRODUCTO;
--TIPO_PRODUCT
INSERT INTO TIPO_PRODUCT (SKU, TIPOPRODUCTO) VALUES (100001, 'ELECTRONICA');
INSERT INTO TIPO_PRODUCT (SKU, TIPOPRODUCTO) VALUES (100002, 'ELECTRONICA');
INSERT INTO TIPO_PRODUCT (SKU, TIPOPRODUCTO) VALUES (100003, 'ELECTRONICA');
INSERT INTO TIPO_PRODUCT (SKU, TIPOPRODUCTO) VALUES (100004, 'ELECTRONICA');
INSERT INTO TIPO_PRODUCT (SKU, TIPOPRODUCTO) VALUES (100005, 'ELECTRONICA');
INSERT INTO TIPO_PRODUCT (SKU, TIPOPRODUCTO) VALUES (200001, 'ROPA');
INSERT INTO TIPO_PRODUCT (SKU, TIPOPRODUCTO) VALUES (200002, 'ROPA');
INSERT INTO TIPO_PRODUCT (SKU, TIPOPRODUCTO) VALUES (200003, 'ROPA');
INSERT INTO TIPO_PRODUCT (SKU, TIPOPRODUCTO) VALUES (200004, 'ROPA');
INSERT INTO TIPO_PRODUCT (SKU, TIPOPRODUCTO) VALUES (200005, 'ROPA');
INSERT INTO TIPO_PRODUCT (SKU, TIPOPRODUCTO) VALUES (300001, 'LIBROS');
INSERT INTO TIPO_PRODUCT (SKU, TIPOPRODUCTO) VALUES (300002, 'LIBROS');
INSERT INTO TIPO_PRODUCT (SKU, TIPOPRODUCTO) VALUES (300003, 'LIBROS');
INSERT INTO TIPO_PRODUCT (SKU, TIPOPRODUCTO) VALUES (300004, 'LIBROS');
INSERT INTO TIPO_PRODUCT (SKU, TIPOPRODUCTO) VALUES (300005, 'LIBROS');
INSERT INTO TIPO_PRODUCT (SKU, TIPOPRODUCTO) VALUES (400001, 'BELLEZA');
INSERT INTO TIPO_PRODUCT (SKU, TIPOPRODUCTO) VALUES (400002, 'BELLEZA');
INSERT INTO TIPO_PRODUCT (SKU, TIPOPRODUCTO) VALUES (400003, 'BELLEZA');
INSERT INTO TIPO_PRODUCT (SKU, TIPOPRODUCTO) VALUES (400004, 'BELLEZA');
INSERT INTO TIPO_PRODUCT (SKU, TIPOPRODUCTO) VALUES (400005, 'BELLEZA');
SELECT * FROM TIPO_PRODUCT;
--ESTANTE
-- CEDIS 101
INSERT INTO ESTANTE (IDESTANTE, UBICACION, IDCEDIS) VALUES (1, 'Zona A1 - Rack 001', 101);
INSERT INTO ESTANTE (IDESTANTE, UBICACION, IDCEDIS) VALUES (2, 'Zona A1 - Rack 002', 101);
INSERT INTO ESTANTE (IDESTANTE, UBICACION, IDCEDIS) VALUES (3, 'Zona B2 - Rack 001', 101);
INSERT INTO ESTANTE (IDESTANTE, UBICACION, IDCEDIS) VALUES (4, 'Zona C3 - Rack 001', 101);
INSERT INTO ESTANTE (IDESTANTE, UBICACION, IDCEDIS) VALUES (5, 'Zona C3 - Rack 002', 101);
INSERT INTO ESTANTE (IDESTANTE, UBICACION, IDCEDIS) VALUES (6, 'Zona D4 - Rack 001', 101);
-- CEDIS 102
INSERT INTO ESTANTE (IDESTANTE, UBICACION, IDCEDIS) VALUES (7, 'Zona F1 - Rack 001', 102);
INSERT INTO ESTANTE (IDESTANTE, UBICACION, IDCEDIS) VALUES (8, 'Zona F1 - Rack 002', 102);
INSERT INTO ESTANTE (IDESTANTE, UBICACION, IDCEDIS) VALUES (9, 'Zona G2 - Rack 001', 102);
INSERT INTO ESTANTE (IDESTANTE, UBICACION, IDCEDIS) VALUES (10, 'Zona H3 - Rack 001', 102);
INSERT INTO ESTANTE (IDESTANTE, UBICACION, IDCEDIS) VALUES (11, 'Zona H3 - Rack 002', 102);
INSERT INTO ESTANTE (IDESTANTE, UBICACION, IDCEDIS) VALUES (12, 'Zona I4 - Rack 001', 102);
INSERT INTO ESTANTE (IDESTANTE, UBICACION, IDCEDIS) VALUES (13, 'Zona I4 - Rack 002', 102);
INSERT INTO ESTANTE (IDESTANTE, UBICACION, IDCEDIS) VALUES (14, 'Zona J5 - Rack 001', 102);
-- CEDIS 103
INSERT INTO ESTANTE (IDESTANTE, UBICACION, IDCEDIS) VALUES (15, 'Zona X1 - Rack 001', 103);
INSERT INTO ESTANTE (IDESTANTE, UBICACION, IDCEDIS) VALUES (16, 'Zona X1 - Rack 002', 103);
INSERT INTO ESTANTE (IDESTANTE, UBICACION, IDCEDIS) VALUES (17, 'Zona Y2 - Rack 001', 103);
INSERT INTO ESTANTE (IDESTANTE, UBICACION, IDCEDIS) VALUES (18, 'Zona Z3 - Rack 001', 103);
INSERT INTO ESTANTE (IDESTANTE, UBICACION, IDCEDIS) VALUES (19, 'Zona Z3 - Rack 002', 103);
INSERT INTO ESTANTE (IDESTANTE, UBICACION, IDCEDIS) VALUES (20, 'Zona Z4 - Rack 001', 103);
SELECT * FROM ESTANTE;
--TIPO_ORDEN
INSERT INTO TIPO_ORDEN (IDTIPOORDEN, DESCRIPCION) VALUES (1, 'INGRESO');
INSERT INTO TIPO_ORDEN (IDTIPOORDEN, DESCRIPCION) VALUES (2, 'SALIDA');
SELECT * FROM TIPO_ORDEN;
--PROVEE
INSERT INTO PROVEE (IDPROVEE, IDCLIENTE, SKU, FECHAHORA) VALUES (1, 1001, 100001, TO_DATE('2025-11-10 10:00:00', 'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO PROVEE (IDPROVEE, IDCLIENTE, SKU, FECHAHORA) VALUES (2, 1001, 200001, TO_DATE('2025-11-10 11:00:00', 'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO PROVEE (IDPROVEE, IDCLIENTE, SKU, FECHAHORA) VALUES (3, 1002, 100002, TO_DATE('2025-11-11 12:30:00', 'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO PROVEE (IDPROVEE, IDCLIENTE, SKU, FECHAHORA) VALUES (4, 1002, 300001, TO_DATE('2025-11-11 14:00:00', 'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO PROVEE (IDPROVEE, IDCLIENTE, SKU, FECHAHORA) VALUES (5, 1003, 400001, TO_DATE('2025-11-12 09:15:00', 'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO PROVEE (IDPROVEE, IDCLIENTE, SKU, FECHAHORA) VALUES (6, 1003, 200002, TO_DATE('2025-11-12 10:30:00', 'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO PROVEE (IDPROVEE, IDCLIENTE, SKU, FECHAHORA) VALUES (7, 1004, 100003, TO_DATE('2025-11-13 15:00:00', 'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO PROVEE (IDPROVEE, IDCLIENTE, SKU, FECHAHORA) VALUES (8, 1004, 300002, TO_DATE('2025-11-13 16:30:00', 'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO PROVEE (IDPROVEE, IDCLIENTE, SKU, FECHAHORA) VALUES (9, 1005, 400002, TO_DATE('2025-11-14 08:00:00', 'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO PROVEE (IDPROVEE, IDCLIENTE, SKU, FECHAHORA) VALUES (10, 1005, 100004, TO_DATE('2025-11-14 09:30:00', 'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO PROVEE (IDPROVEE, IDCLIENTE, SKU, FECHAHORA) VALUES (11, 1001, 200003, TO_DATE('2025-11-15 11:00:00', 'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO PROVEE (IDPROVEE, IDCLIENTE, SKU, FECHAHORA) VALUES (12, 1002, 300003, TO_DATE('2025-11-15 12:45:00', 'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO PROVEE (IDPROVEE, IDCLIENTE, SKU, FECHAHORA) VALUES (13, 1003, 400003, TO_DATE('2025-11-16 14:00:00', 'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO PROVEE (IDPROVEE, IDCLIENTE, SKU, FECHAHORA) VALUES (14, 1004, 100005, TO_DATE('2025-11-16 15:30:00', 'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO PROVEE (IDPROVEE, IDCLIENTE, SKU, FECHAHORA) VALUES (15, 1005, 200004, TO_DATE('2025-11-17 17:00:00', 'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO PROVEE (IDPROVEE, IDCLIENTE, SKU, FECHAHORA) VALUES (16, 1001, 300004, TO_DATE('2025-11-17 18:30:00', 'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO PROVEE (IDPROVEE, IDCLIENTE, SKU, FECHAHORA) VALUES (17, 1002, 400004, TO_DATE('2025-11-18 07:45:00', 'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO PROVEE (IDPROVEE, IDCLIENTE, SKU, FECHAHORA) VALUES (18, 1003, 100001, TO_DATE('2025-11-18 09:00:00', 'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO PROVEE (IDPROVEE, IDCLIENTE, SKU, FECHAHORA) VALUES (19, 1004, 200005, TO_DATE('2025-11-19 10:30:00', 'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO PROVEE (IDPROVEE, IDCLIENTE, SKU, FECHAHORA) VALUES (20, 1005, 300005, TO_DATE('2025-11-19 12:00:00', 'YYYY-MM-DD HH24:MI:SS'));
SELECT * FROM PROVEE;
--POSICION
INSERT INTO POSICION (IDPOSICIONSUB, IDESTANTE, NOPOS, SECCION, NIVEL, IDPROVEE) VALUES (1, 1, 1, 'A', 'N1', 1);
INSERT INTO POSICION (IDPOSICIONSUB, IDESTANTE, NOPOS, SECCION, NIVEL, IDPROVEE) VALUES (2, 2, 1, 'B', 'N1', 2);
INSERT INTO POSICION (IDPOSICIONSUB, IDESTANTE, NOPOS, SECCION, NIVEL, IDPROVEE) VALUES (3, 3, 1, 'C', 'N2', 3);
INSERT INTO POSICION (IDPOSICIONSUB, IDESTANTE, NOPOS, SECCION, NIVEL, IDPROVEE) VALUES (4, 4, 1, 'D', 'N2', 4);
INSERT INTO POSICION (IDPOSICIONSUB, IDESTANTE, NOPOS, SECCION, NIVEL, IDPROVEE) VALUES (5, 5, 1, 'E', 'N3', 5);
INSERT INTO POSICION (IDPOSICIONSUB, IDESTANTE, NOPOS, SECCION, NIVEL, IDPROVEE) VALUES (6, 6, 1, 'F', 'N3', 6);
INSERT INTO POSICION (IDPOSICIONSUB, IDESTANTE, NOPOS, SECCION, NIVEL, IDPROVEE) VALUES (7, 7, 1, 'G', 'N1', 7);
INSERT INTO POSICION (IDPOSICIONSUB, IDESTANTE, NOPOS, SECCION, NIVEL, IDPROVEE) VALUES (8, 8, 1, 'H', 'N1', 8);
INSERT INTO POSICION (IDPOSICIONSUB, IDESTANTE, NOPOS, SECCION, NIVEL, IDPROVEE) VALUES (9, 9, 1, 'I', 'N2', 9);
INSERT INTO POSICION (IDPOSICIONSUB, IDESTANTE, NOPOS, SECCION, NIVEL, IDPROVEE) VALUES (10, 10, 1, 'J', 'N2', 10);
INSERT INTO POSICION (IDPOSICIONSUB, IDESTANTE, NOPOS, SECCION, NIVEL, IDPROVEE) VALUES (11, 11, 1, 'K', 'N3', 11);
INSERT INTO POSICION (IDPOSICIONSUB, IDESTANTE, NOPOS, SECCION, NIVEL, IDPROVEE) VALUES (12, 12, 1, 'L', 'N3', 12);
INSERT INTO POSICION (IDPOSICIONSUB, IDESTANTE, NOPOS, SECCION, NIVEL, IDPROVEE) VALUES (13, 13, 1, 'M', 'N1', 13);
INSERT INTO POSICION (IDPOSICIONSUB, IDESTANTE, NOPOS, SECCION, NIVEL, IDPROVEE) VALUES (14, 14, 1, 'N', 'N1', 14);
INSERT INTO POSICION (IDPOSICIONSUB, IDESTANTE, NOPOS, SECCION, NIVEL, IDPROVEE) VALUES (15, 15, 1, 'P', 'N2', 15);
INSERT INTO POSICION (IDPOSICIONSUB, IDESTANTE, NOPOS, SECCION, NIVEL, IDPROVEE) VALUES (16, 16, 1, 'Q', 'N2', 16);
INSERT INTO POSICION (IDPOSICIONSUB, IDESTANTE, NOPOS, SECCION, NIVEL, IDPROVEE) VALUES (17, 17, 1, 'R', 'N3', 17);
INSERT INTO POSICION (IDPOSICIONSUB, IDESTANTE, NOPOS, SECCION, NIVEL, IDPROVEE) VALUES (18, 18, 1, 'S', 'N3', 18);
INSERT INTO POSICION (IDPOSICIONSUB, IDESTANTE, NOPOS, SECCION, NIVEL, IDPROVEE) VALUES (19, 19, 1, 'T', 'N1', 19);
INSERT INTO POSICION (IDPOSICIONSUB, IDESTANTE, NOPOS, SECCION, NIVEL, IDPROVEE) VALUES (20, 20, 1, 'U', 'N1', 20);
SELECT * FROM POSICION;
--ORDEN
-- Órdenes de Ingreso (IDTIPOORDEN = 1)
INSERT INTO ORDEN (FOLIO, FECHACREACION, ESTADO, IDTIPOORDEN, IDEMPLEADO, IDPROVEE, IDCEDIS, CANTIDAD) VALUES (1, TO_DATE('2025-11-10', 'YYYY-MM-DD'), 'COMPLETADA', 1, 6, 1, 102, 500);
INSERT INTO ORDEN (FOLIO, FECHACREACION, ESTADO, IDTIPOORDEN, IDEMPLEADO, IDPROVEE, IDCEDIS, CANTIDAD) VALUES (2, TO_DATE('2025-11-10', 'YYYY-MM-DD'), 'COMPLETADA', 1, 7, 2, 102, 800);
INSERT INTO ORDEN (FOLIO, FECHACREACION, ESTADO, IDTIPOORDEN, IDEMPLEADO, IDPROVEE, IDCEDIS, CANTIDAD) VALUES (3, TO_DATE('2025-11-11', 'YYYY-MM-DD'), 'COMPLETADA', 1, 8, 3, 102, 300);
INSERT INTO ORDEN (FOLIO, FECHACREACION, ESTADO, IDTIPOORDEN, IDEMPLEADO, IDPROVEE, IDCEDIS, CANTIDAD) VALUES (4, TO_DATE('2025-11-11', 'YYYY-MM-DD'), 'COMPLETADA', 1, 9, 4, 102, 1200);
INSERT INTO ORDEN (FOLIO, FECHACREACION, ESTADO, IDTIPOORDEN, IDEMPLEADO, IDPROVEE, IDCEDIS, CANTIDAD) VALUES (5, TO_DATE('2025-11-12', 'YYYY-MM-DD'), 'COMPLETADA', 1, 10, 5, 103, 600);
INSERT INTO ORDEN (FOLIO, FECHACREACION, ESTADO, IDTIPOORDEN, IDEMPLEADO, IDPROVEE, IDCEDIS, CANTIDAD) VALUES (6, TO_DATE('2025-11-12', 'YYYY-MM-DD'), 'COMPLETADA', 1, 11, 6, 103, 450);
INSERT INTO ORDEN (FOLIO, FECHACREACION, ESTADO, IDTIPOORDEN, IDEMPLEADO, IDPROVEE, IDCEDIS, CANTIDAD) VALUES (7, TO_DATE('2025-11-13', 'YYYY-MM-DD'), 'COMPLETADA', 1, 12, 7, 103, 700);
INSERT INTO ORDEN (FOLIO, FECHACREACION, ESTADO, IDTIPOORDEN, IDEMPLEADO, IDPROVEE, IDCEDIS, CANTIDAD) VALUES (8, TO_DATE('2025-11-13', 'YYYY-MM-DD'), 'COMPLETADA', 1, 20, 8, 102, 950);
INSERT INTO ORDEN (FOLIO, FECHACREACION, ESTADO, IDTIPOORDEN, IDEMPLEADO, IDPROVEE, IDCEDIS, CANTIDAD) VALUES (9, TO_DATE('2025-11-14', 'YYYY-MM-DD'), 'PENDIENTE', 1, 6, 9, 102, 1000);
INSERT INTO ORDEN (FOLIO, FECHACREACION, ESTADO, IDTIPOORDEN, IDEMPLEADO, IDPROVEE, IDCEDIS, CANTIDAD) VALUES (10, TO_DATE('2025-11-14', 'YYYY-MM-DD'), 'PENDIENTE', 1, 7, 10, 102, 250);
-- Órdenes de Salida (IDTIPOORDEN = 2)
INSERT INTO ORDEN (FOLIO, FECHACREACION, ESTADO, IDTIPOORDEN, IDEMPLEADO, IDPROVEE, IDCEDIS, CANTIDAD) VALUES (11, TO_DATE('2025-11-15', 'YYYY-MM-DD'), 'COMPLETADA', 2, 8, 1, 102, 50); -- Salida del registro PROVEE 1 (50 de 500)
INSERT INTO ORDEN (FOLIO, FECHACREACION, ESTADO, IDTIPOORDEN, IDEMPLEADO, IDPROVEE, IDCEDIS, CANTIDAD) VALUES (12, TO_DATE('2025-11-15', 'YYYY-MM-DD'), 'COMPLETADA', 2, 9, 3, 102, 30); -- Salida del registro PROVEE 3 (30 de 300)
INSERT INTO ORDEN (FOLIO, FECHACREACION, ESTADO, IDTIPOORDEN, IDEMPLEADO, IDPROVEE, IDCEDIS, CANTIDAD) VALUES (13, TO_DATE('2025-11-16', 'YYYY-MM-DD'), 'COMPLETADA', 2, 10, 5, 103, 100); -- Salida del registro PROVEE 5 (100 de 600)
INSERT INTO ORDEN (FOLIO, FECHACREACION, ESTADO, IDTIPOORDEN, IDEMPLEADO, IDPROVEE, IDCEDIS, CANTIDAD) VALUES (14, TO_DATE('2025-11-16', 'YYYY-MM-DD'), 'COMPLETADA', 2, 11, 7, 103, 70); -- Salida del registro PROVEE 7 (70 de 700)
INSERT INTO ORDEN (FOLIO, FECHACREACION, ESTADO, IDTIPOORDEN, IDEMPLEADO, IDPROVEE, IDCEDIS, CANTIDAD) VALUES (15, TO_DATE('2025-11-17', 'YYYY-MM-DD'), 'EN PROCESO', 2, 12, 9, 102, 50); -- Salida del registro PROVEE 9 (50 de 1000)
INSERT INTO ORDEN (FOLIO, FECHACREACION, ESTADO, IDTIPOORDEN, IDEMPLEADO, IDPROVEE, IDCEDIS, CANTIDAD) VALUES (16, TO_DATE('2025-11-17', 'YYYY-MM-DD'), 'EN PROCESO', 2, 20, 11, 103, 150); -- Salida del registro PROVEE 11 (150 de 650)
INSERT INTO ORDEN (FOLIO, FECHACREACION, ESTADO, IDTIPOORDEN, IDEMPLEADO, IDPROVEE, IDCEDIS, CANTIDAD) VALUES (17, TO_DATE('2025-11-18', 'YYYY-MM-DD'), 'PENDIENTE', 2, 6, 13, 103, 20); -- Salida del registro PROVEE 13 (20 de 750)
INSERT INTO ORDEN (FOLIO, FECHACREACION, ESTADO, IDTIPOORDEN, IDEMPLEADO, IDPROVEE, IDCEDIS, CANTIDAD) VALUES (18, TO_DATE('2025-11-18', 'YYYY-MM-DD'), 'PENDIENTE', 2, 7, 15, 102, 10); -- Salida del registro PROVEE 15 (10 de 900)
INSERT INTO ORDEN (FOLIO, FECHACREACION, ESTADO, IDTIPOORDEN, IDEMPLEADO, IDPROVEE, IDCEDIS, CANTIDAD) VALUES (19, TO_DATE('2025-11-19', 'YYYY-MM-DD'), 'COMPLETADA', 2, 8, 17, 103, 50); -- Salida del registro PROVEE 17 (50 de 550)
INSERT INTO ORDEN (FOLIO, FECHACREACION, ESTADO, IDTIPOORDEN, IDEMPLEADO, IDPROVEE, IDCEDIS, CANTIDAD) VALUES (20, TO_DATE('2025-11-19', 'YYYY-MM-DD'), 'EN PROCESO', 2, 9, 19, 102, 10); -- Salida del registro PROVEE 19 (10 de 200)
SELECT * FROM ORDEN;
--AUDITORIA
INSERT INTO AUDITORIA (IDAUDITORIA, IDEMPLEADO, FOLIO, FECHAHORA, ESTADO) VALUES (1, 1, 1, TO_DATE('2025-11-10 15:00:00', 'YYYY-MM-DD HH24:MI:SS'), 'CONFORME');
INSERT INTO AUDITORIA (IDAUDITORIA, IDEMPLEADO, FOLIO, FECHAHORA, ESTADO) VALUES (2, 4, 2, TO_DATE('2025-11-11 09:30:00', 'YYYY-MM-DD HH24:MI:SS'), 'CONFORME');
INSERT INTO AUDITORIA (IDAUDITORIA, IDEMPLEADO, FOLIO, FECHAHORA, ESTADO) VALUES (3, 5, 3, TO_DATE('2025-11-11 15:45:00', 'YYYY-MM-DD HH24:MI:SS'), 'CONFORME');
INSERT INTO AUDITORIA (IDAUDITORIA, IDEMPLEADO, FOLIO, FECHAHORA, ESTADO) VALUES (4, 19, 4, TO_DATE('2025-11-12 11:00:00', 'YYYY-MM-DD HH24:MI:SS'), 'CONFORME');
INSERT INTO AUDITORIA (IDAUDITORIA, IDEMPLEADO, FOLIO, FECHAHORA, ESTADO) VALUES (5, 1, 5, TO_DATE('2025-11-12 14:00:00', 'YYYY-MM-DD HH24:MI:SS'), 'CONFORME');
INSERT INTO AUDITORIA (IDAUDITORIA, IDEMPLEADO, FOLIO, FECHAHORA, ESTADO) VALUES (6, 4, 6, TO_DATE('2025-11-13 08:00:00', 'YYYY-MM-DD HH24:MI:SS'), 'CONFORME');
INSERT INTO AUDITORIA (IDAUDITORIA, IDEMPLEADO, FOLIO, FECHAHORA, ESTADO) VALUES (7, 5, 7, TO_DATE('2025-11-13 13:30:00', 'YYYY-MM-DD HH24:MI:SS'), 'CONFORME');
INSERT INTO AUDITORIA (IDAUDITORIA, IDEMPLEADO, FOLIO, FECHAHORA, ESTADO) VALUES (8, 19, 8, TO_DATE('2025-11-14 10:15:00', 'YYYY-MM-DD HH24:MI:SS'), 'CONFORME');
INSERT INTO AUDITORIA (IDAUDITORIA, IDEMPLEADO, FOLIO, FECHAHORA, ESTADO) VALUES (9, 1, 9, TO_DATE('2025-11-14 15:00:00', 'YYYY-MM-DD HH24:MI:SS'), 'NO CONFORME'); -- Orden 9 (Pendiente) se audita como No Conforme
INSERT INTO AUDITORIA (IDAUDITORIA, IDEMPLEADO, FOLIO, FECHAHORA, ESTADO) VALUES (10, 4, 10, TO_DATE('2025-11-15 09:00:00', 'YYYY-MM-DD HH24:MI:SS'), 'CONFORME');
INSERT INTO AUDITORIA (IDAUDITORIA, IDEMPLEADO, FOLIO, FECHAHORA, ESTADO) VALUES (11, 5, 11, TO_DATE('2025-11-15 14:00:00', 'YYYY-MM-DD HH24:MI:SS'), 'CONFORME');
INSERT INTO AUDITORIA (IDAUDITORIA, IDEMPLEADO, FOLIO, FECHAHORA, ESTADO) VALUES (12, 19, 12, TO_DATE('2025-11-16 10:30:00', 'YYYY-MM-DD HH24:MI:SS'), 'CONFORME');
INSERT INTO AUDITORIA (IDAUDITORIA, IDEMPLEADO, FOLIO, FECHAHORA, ESTADO) VALUES (13, 1, 13, TO_DATE('2025-11-16 14:00:00', 'YYYY-MM-DD HH24:MI:SS'), 'CONFORME');
INSERT INTO AUDITORIA (IDAUDITORIA, IDEMPLEADO, FOLIO, FECHAHORA, ESTADO) VALUES (14, 4, 14, TO_DATE('2025-11-17 09:15:00', 'YYYY-MM-DD HH24:MI:SS'), 'CONFORME');
INSERT INTO AUDITORIA (IDAUDITORIA, IDEMPLEADO, FOLIO, FECHAHORA, ESTADO) VALUES (15, 5, 15, TO_DATE('2025-11-17 15:00:00', 'YYYY-MM-DD HH24:MI:SS'), 'NO CONFORME'); -- Orden 15 (En Proceso) se audita como No Conforme
INSERT INTO AUDITORIA (IDAUDITORIA, IDEMPLEADO, FOLIO, FECHAHORA, ESTADO) VALUES (16, 19, 16, TO_DATE('2025-11-18 11:30:00', 'YYYY-MM-DD HH24:MI:SS'), 'CONFORME');
INSERT INTO AUDITORIA (IDAUDITORIA, IDEMPLEADO, FOLIO, FECHAHORA, ESTADO) VALUES (17, 1, 17, TO_DATE('2025-11-18 14:00:00', 'YYYY-MM-DD HH24:MI:SS'), 'CONFORME');
INSERT INTO AUDITORIA (IDAUDITORIA, IDEMPLEADO, FOLIO, FECHAHORA, ESTADO) VALUES (18, 4, 18, TO_DATE('2025-11-19 08:45:00', 'YYYY-MM-DD HH24:MI:SS'), 'CONFORME');
INSERT INTO AUDITORIA (IDAUDITORIA, IDEMPLEADO, FOLIO, FECHAHORA, ESTADO) VALUES (19, 5, 19, TO_DATE('2025-11-19 13:00:00', 'YYYY-MM-DD HH24:MI:SS'), 'CONFORME');
INSERT INTO AUDITORIA (IDAUDITORIA, IDEMPLEADO, FOLIO, FECHAHORA, ESTADO) VALUES (20, 19, 20, TO_DATE('2025-11-19 16:00:00', 'YYYY-MM-DD HH24:MI:SS'), 'NO CONFORME'); -- Orden 20 (En Proceso) se audita como No Conforme
SELECT * FROM AUDITORIA;
SPOOL OFF;
--Fin de Spool
--CONSULTAS CON ALGEBRA RELACIONAL
--1.- Obtener Nombre y RFC de los clientes que proveen productos al
--CEDIS "Central Norte".
SELECT DISTINCT
CE.NOMBRE NOMBRE_CEDIS,
C.NOMBRE NOMBRE_CLIENTE,
C.RFC RFC_CLIENTE
FROM CLIENTE C
JOIN PROVEE P
ON C.IDCLIENTE = P.IDCLIENTE
JOIN ORDEN O
ON P.IDPROVEE = O.IDPROVEE
JOIN CEDIS CE
ON O.IDCEDIS = CE.IDCEDIS
WHERE CE.NOMBRE = 'Central Norte';
--2.- Obtener el Nombre de los Productos de la categoría 'ELECTRONICA'
--y quién lo proporcionó.
SELECT
P.NOMBRE NOMBRE_PRODUCTO,
TP.TIPOPRODUCTO TIPO_PRODUCTO,
C.NOMBRE CLIENTE
FROM TIPO_PRODUCT TP
JOIN PRODUCTO P
ON TP.SKU= P.SKU
JOIN PROVEE PRO
ON P.SKU = PRO.SKU
JOIN CLIENTE C
ON PRO.IDCLIENTE = C.IDCLIENTE
WHERE TP.TIPOPRODUCTO = 'ELECTRONICA';
--3.- Obtener la cantidad total de Ingresos (unidades) de productos de
--'BELLEZA' en el mes de Noviembre de 2025.
SELECT
SUM(O.CANTIDAD) AS CANTIDAD
FROM TIPO_ORDEN TOR
JOIN ORDEN O
ON TOR.IDTIPOORDEN = O.IDTIPOORDEN
JOIN PROVEE PRO
ON O.IDPROVEE= PRO.IDPROVEE
JOIN PRODUCTO P
ON PRO.SKU = P.SKU
JOIN TIPO_PRODUCT TP
ON P.SKU = TP.SKU
WHERE TOR.DESCRIPCION = 'INGRESO'
AND O.FECHACREACION BETWEEN TO_DATE('2025-11-01', 'YYYY-MM-DD')
AND TO_DATE('2025-11-30', 'YYYY-MM-DD')
AND TP.TIPOPRODUCTO = 'BELLEZA';
--4.- Obtener todas las auditorías NO CONFORME realizadas por empleados
--administrativos.
SELECT
E.PILA || ' ' || E.APPAT || ' ' || E.APMAT AS NOMBRE_EMPLEADO, TE.DESCRIPCION TIPO_EMPLEADO,
A.ESTADO ESTADO_AUDITORIA,
A.FECHAHORA,
PRO.NOMBRE NOMBRE_PRODUCTO
FROM TIPO_EMP TE
JOIN EMPLEADO E
ON TE.IDTIPOEMPLEADO=E.IDTIPOEMPLEADO
JOIN AUDITORIA A
ON E.IDEMPLEADO = A.IDEMPLEADO
JOIN ORDEN O
ON A.FOLIO = O.FOLIO
JOIN PROVEE P
ON O.IDPROVEE = P.IDPROVEE
JOIN PRODUCTO PRO
ON P.SKU = PRO.SKU
WHERE TE.DESCRIPCION ='ADMINISTRATIVO' AND
A.ESTADO = 'NO CONFORME';
--5.- Obtener la ubicación del estante (UBICACION), la sección
--(SECCION) y el nivel (NIVEL) de todos los productos de la categoría 'LIBROS'
--que se encuentran almacenados en el CEDIS cuyo nombre es 'CEDIS Bajío'.
SELECT
PD.NOMBRE NOMBRE_PRODUCTO,
TP.TIPOPRODUCTO CATEGORIA,
E.UBICACION,
P.SECCION,
P.NIVEL,
C.NOMBRE CEDIS
FROM CEDIS C
JOIN ESTANTE E
ON C.IDCEDIS = E.IDCEDIS
JOIN POSICION P
ON E.IDESTANTE = P.IDESTANTE
JOIN PROVEE PROV
ON P.IDPROVEE = PROV.IDPROVEE
JOIN PRODUCTO PD
ON PROV.SKU = PD.SKU
JOIN TIPO_PRODUCT TP
ON PD.SKU = TP.SKU
WHERE TP.TIPOPRODUCTO = 'LIBROS'
AND C.NOMBRE = 'CEDIS Bajío';
--Consultas con JOINS
--INNER JOIN
--Órdenes de ingreso valido con auditoría "CONFORME".
SELECT
O.FOLIO,
O.FECHACREACION,
E.PILA || ' ' || E.APPAT AS Auditor,
A.ESTADO
FROM ORDEN O
INNER JOIN TIPO_ORDEN TIPO
ON O.IDTIPOORDEN = TIPO.IDTIPOORDEN
INNER JOIN AUDITORIA A
ON O.FOLIO = A.FOLIO
INNER JOIN EMPLEADO E
ON A.IDEMPLEADO = E.IDEMPLEADO
WHERE TIPO.DESCRIPCION = 'INGRESO' AND A.ESTADO = 'CONFORME';
--LEFT JOIN (con INNER JOIN)
--Personal administrativo y su supervisor.
SELECT
E.PILA || ' ' || E.APPAT AS Empledo,
TE.DESCRIPCION AS Tipo,
S.PILA || ' ' || S.APPAT AS Supervisor
FROM EMPLEADO E
INNER JOIN TIPO_EMP TE ON E.IDTIPOEMPLEADO = TE.IDTIPOEMPLEADO
LEFT JOIN EMPLEADO S ON E.IDEMPSUP = S.IDEMPLEADO
WHERE TE.DESCRIPCION = 'ADMINISTRATIVO';
--RIGHT JOIN (con OUTER JOIN)
--CEDIS sin empleados operativos asignados.
SELECT
CD.NOMBRE AS Nombre_CEDIS,
CD.DIRECCION
FROM EMPLEADO E
INNER JOIN TIPO_EMP TE ON E.IDTIPOEMPLEADO = TE.IDTIPOEMPLEADO
RIGHT JOIN CEDIS CD ON E.IDCEDIS = CD.IDCEDIS
WHERE TE.DESCRIPCION = 'OPERATIVO' OR E.IDEMPLEADO IS NULL AND E.IDEMPLEADO IS NULL;
--FULL JOIN
--Clientes y suministro inconsistente.
SELECT
C.NOMBRE AS Cliente,
C.RFC,
PR.IDPROVEE,
PR.FECHAHORA
FROM CLIENTE C
FULL JOIN PROVEE PR ON C.IDCLIENTE = PR.IDCLIENTE
WHERE C.IDCLIENTE IS NULL OR PR.IDCLIENTE IS NULL;
--CROSS JOIN
--Combinación de productos de electrónica y clientes.
SELECT
C.NOMBRE AS Cliente,
P.NOMBRE AS Producto_Electronico
FROM CLIENTE C
CROSS JOIN PRODUCTO P
INNER JOIN TIPO_PRODUCT TP ON P.SKU = TP.SKU
WHERE TP.TIPOPRODUCTO = 'ELECTRONICA';
--CONSULTAS CON CONTRASTES DE AGREGACIÓN
--1.Obtener la cantidad total de unidades que se han registrado en órdenes de
--INGRESO para cada tipo de producto.
SELECT
TP.TIPOPRODUCTO Categoria,
SUM(O.CANTIDAD) Total_Unidades_Ingresadas
FROM TIPO_PRODUCT TP
JOIN PRODUCTO PR
ON TP.SKU = PR.SKU
JOIN PROVEE P
ON PR.SKU = P.SKU
JOIN ORDEN O
ON P.IDPROVEE = O.IDPROVEE
JOIN TIPO_ORDEN TO_ ON O.IDTIPOORDEN = TO_.IDTIPOORDEN
WHERE
TO_.DESCRIPCION = 'INGRESO'
GROUP BY
TP.TIPOPRODUCTO
ORDER BY
Total_Unidades_Ingresadas DESC;
--2. Obtener el número de folio de cada orden, la cantidad de unidades
--solicitadas, el peso unitario del producto y el peso total de la orden.
SELECT
O.FOLIO,
O.CANTIDAD CANTIDAD_UNIDADES,
PD.NOMBRE PRODUCTO,
PD.PESO PESOUNITARIO_KG,
(O.CANTIDAD * PD.PESO) PESOTOTAL_ORDEN_KG
FROM ORDEN O
JOIN PROVEE P
ON O.IDPROVEE = P.IDPROVEE
JOIN PRODUCTO PD
ON P.SKU = PD.SKU
ORDER BY
O.FOLIO;
--3. Contar el número total de auditorías que resultaron en el estado
--'NO CONFORME' para cada centro de distribución.
SELECT
CE.NOMBRE CEDIS,
COUNT(A.IDAUDITORIA) RESULTADO_AUDITORIAS
FROM CEDIS CE
JOIN EMPLEADO E
ON CE.IDCEDIS = E.IDCEDIS
JOIN AUDITORIA A
ON E.IDEMPLEADO = A.IDEMPLEADO
WHERE
A.ESTADO = 'NO CONFORME'
GROUP BY
CE.NOMBRE
ORDER BY
RESULTADO_AUDITORIAS DESC;
--4. Obtener el promedio de unidades manejadas por cada empleado en las órdenes
--de SALIDA que se encuentran en estado 'COMPLETADA', mostrando el CEDIS al que
--el empleado está asignado.
SELECT
C.NOMBRE NOMBRE_CEDIS,
E.PILA || ' ' || E.APPAT NOMBRE_EMPLEADO,
TE.DESCRIPCION PUESTO,
AVG(O.CANTIDAD) PROMEDIO_UNIDADES_COMPLETADAS
FROM EMPLEADO E
JOIN TIPO_EMP TE
ON E.IDTIPOEMPLEADO = TE.IDTIPOEMPLEADO
JOIN CEDIS C
ON E.IDCEDIS = C.IDCEDIS
JOIN ORDEN O
ON E.IDEMPLEADO = O.IDEMPLEADO
JOIN TIPO_ORDEN TO_
ON O.IDTIPOORDEN = TO_.IDTIPOORDEN
WHERE
TO_.DESCRIPCION = 'SALIDA'
AND O.ESTADO = 'COMPLETADA'
GROUP BY
C.NOMBRE,
E.PILA || ' ' || E.APPAT,
TE.DESCRIPCION
ORDER BY
PROMEDIO_UNIDADES_COMPLETADAS DESC;
--5.- Contar cuántos clientes únicos han proveído productos para cada categoría
--de producto.
SELECT
TP.TIPOPRODUCTO CATEGORIA,
COUNT(DISTINCT P.IDCLIENTE) PROVEEDORES
FROM TIPO_PRODUCT TP
JOIN PRODUCTO PR
ON TP.SKU = PR.SKU
JOIN PROVEE P
ON PR.SKU = P.SKU
GROUP BY
TP.TIPOPRODUCTO
ORDER BY
PROVEEDORES DESC;
--VISTAS
--Vista de inventario por CEDIS (productos de Electrónica).
CREATE OR REPLACE VIEW Inventario_Electronica AS
SELECT
C.NOMBRE AS Cliente,
P.SKU,
P.NOMBRE AS Producto,
PC.TIPOPRODUCTO AS Categoria,
CD.NOMBRE AS CEDIS,
CD.DIRECCION AS Direccion,
O.CANTIDAD AS Cantidad_Ingresada
FROM CLIENTE C
JOIN PROVEE PR ON C.IDCLIENTE = PR.IDCLIENTE
JOIN PRODUCTO P ON PR.SKU = P.SKU
JOIN TIPO_PRODUCT PC ON P.SKU = PC.SKU
JOIN ORDEN O ON PR.IDPROVEE = O.IDPROVEE
JOIN CEDIS CD ON O.IDCEDIS = CD.IDCEDIS
WHERE PC.TIPOPRODUCTO = 'ELECTRONICA';
SELECT * FROM Inventario_Electronica;
--Vista de eficiencia operativa, por el tipo de rol.
CREATE OR REPLACE VIEW Eficiencia_Operativa AS
SELECT
E.IDEMPLEADO,
E.PILA || ' ' || E.APPAT AS Empleado,
TE.DESCRIPCION AS Tipo_Empleado,
CD.NOMBRE AS CEDIS,
(SELECT COUNT(O.FOLIO) FROM ORDEN O WHERE O.IDEMPLEADO = E.IDEMPLEADO) AS Total_Ordenes,
(SELECT COUNT(A.IDAUDITORIA) FROM AUDITORIA A WHERE A.IDEMPLEADO = E.IDEMPLEADO) AS Total_Auditorias
FROM EMPLEADO E
INNER JOIN TIPO_EMP TE ON E.IDTIPOEMPLEADO = TE.IDTIPOEMPLEADO
INNER JOIN CEDIS CD ON E.IDCEDIS = CD.IDCEDIS
WHERE TE.DESCRIPCION IN ('OPERATIVO', 'ADMINISTRATIVO')
ORDER BY TE.DESCRIPCION, Total_Ordenes DESC;
SELECT * FROM Eficiencia_Operativa;
--PROCEDIMIENTOS
--Antes de ejcutar los procedimientos
SET SERVEROUTPUT ON
--Procedimiento para registrar un cliente.
CREATE OR REPLACE PROCEDURE Registrar_Cliente(
p_IdCliente IN NUMBER,
p_RFC IN VARCHAR2,
p_Nombre IN VARCHAR2,
p_Email IN VARCHAR2,
p_Telefono IN VARCHAR2
)
AS
BEGIN
--Inserta el cliente con sus datos
INSERT INTO CLIENTE (IDCLIENTE, RFC, NOMBRE)
VALUES (p_IdCliente, p_RFC, p_Nombre);
--Inserta su email
INSERT INTO CLIENTE_EMAIL (IDCLIENTE, EMAIL)
VALUES (p_IdCliente, p_Email);
--Inserta el teléfono
INSERT INTO CLIENTE_TELE (IDCLIENTE, TELEFONO)
VALUES (p_IdCliente, p_Telefono);
--Mensaje en caso de ser registrado con exito
DBMS_OUTPUT.PUT_LINE('El cliente fue registrado con exito. :)');
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Error al registrar el cliente. :(' || SQLERRM);
RAISE;
END Registrar_Cliente;
/
--Cliente de prueba
--Funciona
EXEC Registrar_Cliente(404,'LOGI777777YYY','Global Distributors Inc.','info@globaldist.net','8005558888');
--No funciona (RFC duplicado)
EXEC Registrar_Cliente(404, 'MELI123456ABC', 'Cliente para Fallo Test', 'fallo@test.net', '8005559999');
--Para comprobar
SELECT * FROM CLIENTE
WHERE IDCLIENTE=404;
--Para eliminar el cliente y sus contactos de prueba
DELETE FROM CLIENTE_TELE WHERE IDCLIENTE = 404;
DELETE FROM CLIENTE_EMAIL WHERE IDCLIENTE = 404;
DELETE FROM PROVEE WHERE IDCLIENTE = 404;
DELETE FROM CLIENTE WHERE IDCLIENTE = 404;
--Procedimiento para mostrar en lista, los productos que seran reubicados
--por exceder el peso máximo.
CREATE OR REPLACE PROCEDURE Productos_Reubicacion(p_PesoMaximo IN NUMBER)
AS
--Se declara el cursor.
CURSOR c_productos_grandes IS
SELECT SKU,NOMBRE,PESO
FROM PRODUCTO
WHERE PESO > p_PesoMaximo
ORDER BY PESO DESC;
--Se declaran algunas variables de registro para el cursor.
r_producto c_productos_grandes%ROWTYPE;
v_contador INT:=0;
BEGIN
DBMS_OUTPUT.PUT_LINE('Lista de los productos con peso superior a ' || p_PesoMaximo || ' kg a reubicar:');
DBMS_OUTPUT.PUT_LINE('----------------------------------------------------');
--Se abre el cursor.
OPEN c_productos_grandes;
--Se inicia el bucle para recorrer los resultados del cursor.
LOOP
--Obtiene la siguiente fila del cursor.
FETCH c_productos_grandes INTO r_producto;