@manticore-labs/nest 0.0.104 → 0.0.106

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (18) hide show
  1. package/.idea/workspace.xml +129 -57
  2. package/build/main/lib/funciones-util/buscar-registro.js +581 -499
  3. package/build/main/lib/funciones-util/funciones-busqueda/generar-campos-con-condiciones.d.ts +1 -1
  4. package/build/main/lib/funciones-util/funciones-busqueda/generar-campos-con-condiciones.js +271 -226
  5. package/build/main/lib/funciones-util/funciones-busqueda/generar-joins.d.ts +2 -1
  6. package/build/main/lib/funciones-util/funciones-busqueda/generar-joins.js +22 -12
  7. package/build/main/lib/funciones-util/funciones-busqueda/obtener-objeto-where-y-relations.js +3 -3
  8. package/build/main/lib/funciones-util/funciones-busqueda/verificar-campo.d.ts +4 -0
  9. package/build/main/lib/funciones-util/funciones-busqueda/verificar-campo.js +363 -0
  10. package/build/module/lib/funciones-util/buscar-registro.js +584 -502
  11. package/build/module/lib/funciones-util/funciones-busqueda/generar-campos-con-condiciones.d.ts +1 -1
  12. package/build/module/lib/funciones-util/funciones-busqueda/generar-campos-con-condiciones.js +274 -226
  13. package/build/module/lib/funciones-util/funciones-busqueda/generar-joins.d.ts +2 -1
  14. package/build/module/lib/funciones-util/funciones-busqueda/generar-joins.js +25 -15
  15. package/build/module/lib/funciones-util/funciones-busqueda/obtener-objeto-where-y-relations.js +3 -3
  16. package/build/module/lib/funciones-util/funciones-busqueda/verificar-campo.d.ts +4 -0
  17. package/build/module/lib/funciones-util/funciones-busqueda/verificar-campo.js +360 -0
  18. package/package.json +1 -1
@@ -47,7 +47,7 @@ async function buscarVariosRegistros(criterioBusqueda, PrincipalFindManyOptions,
47
47
  }
48
48
  if (criterioBusquedaClase.where) {
49
49
  const objetoWhereYRelations = obtener_objeto_where_y_relations_1.obtenerObjetoWhereYRelations(criterioBusqueda.where);
50
- if (objetoWhereYRelations.objetoRelaciones === {}) {
50
+ if (Object.keys(objetoWhereYRelations.objetoRelaciones).length === 0) {
51
51
  if (Array.isArray(criterioBusquedaClase.where)) {
52
52
  criterioBusquedaClase
53
53
  .where
@@ -540,510 +540,592 @@ async function buscarVariosRegistros(criterioBusqueda, PrincipalFindManyOptions,
540
540
  }
541
541
  else {
542
542
  criterioBusquedaClase.where = objetoWhereYRelations.objetoCampos;
543
- if (Array.isArray(criterioBusquedaClase.where)) {
544
- criterioBusquedaClase
545
- .where
546
- .forEach((busqueda, indice) => {
547
- Object
548
- .keys(busqueda)
549
- .forEach((campo) => {
550
- let noEncuentraOperador = true;
551
- let campoEsTexto = typeof criterioBusquedaClase.where[indice][campo] === 'string';
552
- if (noEncuentraOperador && campoEsTexto) {
553
- const expresionRegularNot = /Not\(".+"\)+/g;
554
- const contieneNot = criterioBusquedaClase.where[indice][campo].match(expresionRegularNot);
555
- if (contieneNot && noEncuentraOperador) {
556
- const sinNot = criterioBusquedaClase.where[indice][campo].replace('Not("', '').replace('")', '');
557
- if (noEncuentraOperador && campoEsTexto) {
558
- const expresionRegularLike = /Like\(".+"\)+/g;
559
- const contieneLike = sinNot.match(expresionRegularLike);
560
- if (contieneLike) {
561
- criterioBusquedaClase.where[indice][campo] = typeorm_1.Not(typeorm_1.Like(sinNot.replace('Like("', '').replace('")', '')));
562
- noEncuentraOperador = false;
563
- }
564
- }
565
- if (noEncuentraOperador && campoEsTexto) {
566
- const expresionRegularLessThan = /LessThan\(".+"\)+/g;
567
- const contieneLessThan = sinNot.match(expresionRegularLessThan);
568
- if (contieneLessThan) {
569
- criterioBusquedaClase.where[indice][campo] = typeorm_1.Not(typeorm_1.LessThan(sinNot.replace('LessThan("', '').replace('")', '')));
570
- noEncuentraOperador = false;
571
- }
572
- }
573
- if (noEncuentraOperador && campoEsTexto) {
574
- const expresionRegularMoreThan = /MoreThan\(".+"\)+/g;
575
- const contieneMoreThan = sinNot.match(expresionRegularMoreThan);
576
- if (contieneMoreThan) {
577
- criterioBusquedaClase.where[indice][campo] = typeorm_1.Not(typeorm_1.MoreThan(sinNot.replace('MoreThan("', '').replace('")', '')));
578
- noEncuentraOperador = false;
579
- }
580
- }
581
- if (noEncuentraOperador && campoEsTexto) {
582
- const expresionRegularEqual = /Equal\(".+"\)+/g;
583
- const contieneEqual = sinNot.match(expresionRegularEqual);
584
- if (contieneEqual) {
585
- criterioBusquedaClase.where[indice][campo] = typeorm_1.Not(typeorm_1.Equal(sinNot.replace('Equal("', '').replace('")', '')));
586
- noEncuentraOperador = false;
587
- }
588
- }
589
- if (noEncuentraOperador && campoEsTexto) {
590
- const expresionRegularBetween = /Between\(".+"\)+/g;
591
- const contieneBetween = sinNot.match(expresionRegularBetween);
592
- if (contieneBetween) {
593
- const busqueda = [...sinNot
594
- .replace('Between("', '')
595
- .replace('")', '')
596
- .replace(' ', '')
597
- .split(',')
598
- .map((n) => isNaN(n) ? n : +n)];
599
- const esFecha = busqueda[0].length === 10 &&
600
- busqueda[0].length === 10 &&
601
- (typeof busqueda[0] === 'string') &&
602
- (typeof busqueda[1] === 'string') &&
603
- busqueda[0].match('-') &&
604
- busqueda[1].match('-');
605
- if (esFecha) {
606
- const fechaInicio = new Date(busqueda[0].substring(0, 4), busqueda[0].substring(5, 7) - 1, busqueda[0].substring(8));
607
- const fechaFin = new Date(busqueda[1].substring(0, 4), busqueda[1].substring(5, 7) - 1, busqueda[1].substring(8));
608
- criterioBusquedaClase.where[indice][campo] = typeorm_1.Not(typeorm_1.Between(fechaInicio, fechaFin));
609
- }
610
- else {
611
- criterioBusquedaClase.where[indice][campo] = typeorm_1.Not(typeorm_1.Between(busqueda[0], busqueda[1]));
612
- }
613
- noEncuentraOperador = false;
614
- }
615
- }
616
- if (noEncuentraOperador && campoEsTexto) {
617
- const expresionRegularIn = /In\(.+\)+/g;
618
- const contieneIn = sinNot.match(expresionRegularIn);
619
- if (contieneIn) {
620
- let arreglo;
621
- try {
622
- arreglo = JSON.parse(sinNot
623
- .replace('In(', '')
624
- .replace('])', ']'));
625
- if (arreglo.length > 0) {
626
- criterioBusquedaClase.where[campo] = typeorm_1.Not(typeorm_1.In(arreglo));
627
- noEncuentraOperador = false;
628
- }
629
- else {
630
- console.error({
631
- mensaje: 'IN mal formateado, no tiene elementos eliminando campo.'
632
- });
633
- delete criterioBusquedaClase.where[campo];
634
- }
635
- }
636
- catch (error) {
637
- console.error({
638
- error,
639
- mensaje: 'IN mal formateado, eliminando campo.'
640
- });
641
- delete criterioBusquedaClase.where[campo];
642
- }
643
- }
644
- }
645
- if (noEncuentraOperador && campoEsTexto) {
646
- const expresionRegularAny = /Any\(.+\)+/g;
647
- const contieneAny = sinNot.match(expresionRegularAny);
648
- if (contieneAny) {
649
- let arreglo;
650
- try {
651
- arreglo = JSON.parse(sinNot
652
- .replace('Any(', '')
653
- .replace(')', ''));
654
- criterioBusquedaClase.where[indice][campo] = typeorm_1.Not(typeorm_1.Any(arreglo));
655
- noEncuentraOperador = false;
656
- }
657
- catch (e) {
658
- console.log('Error formateando clausula ANY');
659
- console.log(e);
660
- }
661
- }
662
- }
663
- if (noEncuentraOperador && campoEsTexto) {
664
- const expresionRegularIsNull = /IsNull\(".+"\)+/g;
665
- const contieneIsNull = sinNot.match(expresionRegularIsNull);
666
- if (contieneIsNull) {
667
- criterioBusquedaClase.where[indice][campo] = typeorm_1.Not(typeorm_1.IsNull());
668
- noEncuentraOperador = false;
669
- }
670
- }
671
- }
672
- } // Fin de NOT
673
- if (noEncuentraOperador && campoEsTexto) {
674
- const expresionRegularLike = /Like\(".+"\)+/g;
675
- const contieneLike = criterioBusquedaClase.where[indice][campo].match(expresionRegularLike);
676
- if (contieneLike) {
677
- criterioBusquedaClase.where[indice][campo] = typeorm_1.Like(criterioBusquedaClase.where[indice][campo].replace('Like("', '').replace('")', ''));
678
- noEncuentraOperador = false;
679
- }
680
- }
681
- if (noEncuentraOperador && campoEsTexto) {
682
- const expresionRegularLessThan = /LessThan\(".+"\)+/g;
683
- const contieneLessThan = criterioBusquedaClase.where[indice][campo].match(expresionRegularLessThan);
684
- if (contieneLessThan) {
685
- criterioBusquedaClase.where[indice][campo] = typeorm_1.LessThan(criterioBusquedaClase.where[indice][campo].replace('LessThan("', '').replace('")', ''));
686
- noEncuentraOperador = false;
687
- }
688
- }
689
- if (noEncuentraOperador && campoEsTexto) {
690
- const expresionRegularMoreThan = /MoreThan\(".+"\)+/g;
691
- const contieneMoreThan = criterioBusquedaClase.where[indice][campo].match(expresionRegularMoreThan);
692
- if (contieneMoreThan) {
693
- criterioBusquedaClase.where[indice][campo] = typeorm_1.MoreThan(criterioBusquedaClase.where[indice][campo].replace('MoreThan("', '').replace('")', ''));
694
- noEncuentraOperador = false;
695
- }
696
- }
697
- if (noEncuentraOperador && campoEsTexto) {
698
- const expresionRegularEqual = /Equal\(".+"\)+/g;
699
- const contieneEqual = criterioBusquedaClase.where[indice][campo].match(expresionRegularEqual);
700
- if (contieneEqual) {
701
- criterioBusquedaClase.where[indice][campo] = typeorm_1.Equal(criterioBusquedaClase.where[indice][campo].replace('Equal("', '').replace('")', ''));
702
- noEncuentraOperador = false;
703
- }
704
- }
705
- if (noEncuentraOperador && campoEsTexto) {
706
- const expresionRegularBetween = /Between\(".+"\)+/g;
707
- const contieneBetween = criterioBusquedaClase.where[indice][campo].match(expresionRegularBetween);
708
- if (contieneBetween) {
709
- const busqueda = [...criterioBusquedaClase.where[indice][campo]
710
- .replace('Between("', '')
711
- .replace('")', '')
712
- .replace(' ', '')
713
- .split(',')
714
- .map((n) => isNaN(n) ? n : +n)];
715
- const esFecha = busqueda[0].length === 10 &&
716
- busqueda[0].length === 10 &&
717
- (typeof busqueda[0] === 'string') &&
718
- (typeof busqueda[1] === 'string') &&
719
- busqueda[0].match('-') &&
720
- busqueda[1].match('-');
721
- if (esFecha) {
722
- const fechaInicio = new Date(busqueda[0].substring(0, 4), busqueda[0].substring(5, 7) - 1, busqueda[0].substring(8));
723
- const fechaFin = new Date(busqueda[1].substring(0, 4), busqueda[1].substring(5, 7) - 1, busqueda[1].substring(8));
724
- criterioBusquedaClase.where[indice][campo] = typeorm_1.Between(fechaInicio, fechaFin);
725
- }
726
- else {
727
- criterioBusquedaClase.where[indice][campo] = typeorm_1.Between(busqueda[0], busqueda[1]);
728
- }
729
- noEncuentraOperador = false;
730
- }
731
- }
732
- if (noEncuentraOperador && campoEsTexto) {
733
- const expresionRegularIn = /In\(.+\)+/g;
734
- const contieneIn = criterioBusquedaClase.where[indice][campo].match(expresionRegularIn);
735
- if (contieneIn) {
736
- let arreglo;
737
- try {
738
- arreglo = JSON.parse(criterioBusquedaClase.where[indice][campo]
739
- .replace('In(', '')
740
- .replace('])', ']'));
741
- if (arreglo.length > 0) {
742
- criterioBusquedaClase.where[campo] = typeorm_1.In(arreglo);
743
- noEncuentraOperador = false;
744
- }
745
- else {
746
- console.error({
747
- mensaje: 'IN mal formateado, no tiene elementos eliminando campo.'
748
- });
749
- delete criterioBusquedaClase.where[campo];
750
- }
751
- }
752
- catch (error) {
753
- console.error({
754
- error,
755
- mensaje: 'IN mal formateado, eliminando campo.'
756
- });
757
- delete criterioBusquedaClase.where[campo];
758
- }
759
- }
760
- }
761
- if (noEncuentraOperador && campoEsTexto) {
762
- const expresionRegularAny = /Any\(.+\)+/g;
763
- const contieneAny = criterioBusquedaClase.where[indice][campo].match(expresionRegularAny);
764
- if (contieneAny) {
765
- let arreglo;
766
- try {
767
- arreglo = JSON.parse(criterioBusquedaClase.where[indice][campo]
768
- .replace('Any(', '')
769
- .replace(')', ''));
770
- criterioBusquedaClase.where[indice][campo] = typeorm_1.Any(arreglo);
771
- noEncuentraOperador = false;
772
- }
773
- catch (e) {
774
- console.log(e);
775
- }
776
- }
777
- }
778
- if (noEncuentraOperador && campoEsTexto) {
779
- const expresionRegularIsNull = /IsNull\(".+"\)+/g;
780
- const contieneIsNull = criterioBusquedaClase.where[indice][campo].match(expresionRegularIsNull);
781
- if (contieneIsNull) {
782
- criterioBusquedaClase.where[indice][campo] = typeorm_1.IsNull();
783
- noEncuentraOperador = false;
784
- }
785
- }
786
- });
787
- });
788
- }
789
- else {
790
- Object
791
- .keys(criterioBusquedaClase.where)
792
- .forEach((campo) => {
793
- let noEncuentraOperador = true;
794
- let campoEsTexto = typeof criterioBusquedaClase.where[campo] === 'string';
795
- if (noEncuentraOperador && campoEsTexto) {
796
- const expresionRegularNot = /Not\(".+"\)+/g;
797
- const contieneNot = criterioBusquedaClase.where[campo].match(expresionRegularNot);
798
- if (contieneNot && noEncuentraOperador) {
799
- // criterioBusquedaClase.where[campo] = Not(
800
- // criterioBusquedaClase.where[campo].replace('Not("', '').replace('")', '')
801
- // );
802
- // noEncuentraOperador = false;
803
- const sinNot = criterioBusquedaClase.where[campo].replace('Not("', '').replace('")', '');
804
- if (noEncuentraOperador && campoEsTexto) {
805
- const expresionRegularLike = /Like\(".+"\)+/g;
806
- const contieneLike = sinNot.match(expresionRegularLike);
807
- if (contieneLike) {
808
- criterioBusquedaClase.where[campo] = typeorm_1.Not(typeorm_1.Like(sinNot.replace('Like("', '').replace('")', '')));
809
- noEncuentraOperador = false;
810
- }
811
- }
812
- if (noEncuentraOperador && campoEsTexto) {
813
- const expresionRegularLessThan = /LessThan\(".+"\)+/g;
814
- const contieneLessThan = sinNot.match(expresionRegularLessThan);
815
- if (contieneLessThan) {
816
- criterioBusquedaClase.where[campo] = typeorm_1.Not(typeorm_1.LessThan(sinNot.replace('LessThan("', '').replace('")', '')));
817
- noEncuentraOperador = false;
818
- }
819
- }
820
- if (noEncuentraOperador && campoEsTexto) {
821
- const expresionRegularMoreThan = /MoreThan\(".+"\)+/g;
822
- const contieneMoreThan = sinNot.match(expresionRegularMoreThan);
823
- if (contieneMoreThan) {
824
- criterioBusquedaClase.where[campo] = typeorm_1.Not(typeorm_1.MoreThan(sinNot.replace('MoreThan("', '').replace('")', '')));
825
- noEncuentraOperador = false;
826
- }
827
- }
828
- if (noEncuentraOperador && campoEsTexto) {
829
- const expresionRegularEqual = /Equal\(".+"\)+/g;
830
- const contieneEqual = sinNot.match(expresionRegularEqual);
831
- if (contieneEqual) {
832
- criterioBusquedaClase.where[campo] = typeorm_1.Not(typeorm_1.Equal(sinNot.replace('Equal("', '').replace('")', '')));
833
- noEncuentraOperador = false;
834
- }
835
- }
836
- if (noEncuentraOperador && campoEsTexto) {
837
- const expresionRegularBetween = /Between\(".+"\)+/g;
838
- const contieneBetween = sinNot.match(expresionRegularBetween);
839
- if (contieneBetween) {
840
- const busqueda = [...sinNot
841
- .replace('Between("', '')
842
- .replace('")', '')
843
- .replace(' ', '')
844
- .split(',')
845
- .map((n) => isNaN(n) ? n : +n)];
846
- const esFecha = busqueda[0].length === 10 &&
847
- busqueda[0].length === 10 &&
848
- (typeof busqueda[0] === 'string') &&
849
- (typeof busqueda[1] === 'string') &&
850
- busqueda[0].match('-') &&
851
- busqueda[1].match('-');
852
- if (esFecha) {
853
- const fechaInicio = new Date(busqueda[0].substring(0, 4), busqueda[0].substring(5, 7) - 1, busqueda[0].substring(8));
854
- const fechaFin = new Date(busqueda[1].substring(0, 4), busqueda[1].substring(5, 7) - 1, busqueda[1].substring(8));
855
- criterioBusquedaClase.where[campo] = typeorm_1.Not(typeorm_1.Between(fechaInicio, fechaFin));
856
- }
857
- else {
858
- criterioBusquedaClase.where[campo] = typeorm_1.Not(typeorm_1.Between(busqueda[0], busqueda[1]));
859
- }
860
- noEncuentraOperador = false;
861
- }
862
- }
863
- if (noEncuentraOperador && campoEsTexto) {
864
- const expresionRegularIn = /In\(.+\)+/g;
865
- const contieneIn = sinNot.match(expresionRegularIn);
866
- if (contieneIn) {
867
- let arreglo;
868
- try {
869
- arreglo = JSON.parse(sinNot
870
- .replace('In(', '')
871
- .replace('])', ']'));
872
- if (arreglo.length > 0) {
873
- criterioBusquedaClase.where[campo] = typeorm_1.Not(typeorm_1.In(arreglo));
874
- noEncuentraOperador = false;
875
- }
876
- else {
877
- console.error({
878
- mensaje: 'IN mal formateado, no tiene elementos eliminando campo.'
879
- });
880
- delete criterioBusquedaClase.where[campo];
881
- }
882
- }
883
- catch (error) {
884
- console.error({
885
- error,
886
- mensaje: 'IN mal formateado, eliminando campo.'
887
- });
888
- delete criterioBusquedaClase.where[campo];
889
- }
890
- }
891
- }
892
- if (noEncuentraOperador && campoEsTexto) {
893
- const expresionRegularAny = /Any\(.+\)+/g;
894
- const contieneAny = sinNot.match(expresionRegularAny);
895
- if (contieneAny) {
896
- let arreglo;
897
- try {
898
- arreglo = JSON.parse(sinNot
899
- .replace('Any(', '')
900
- .replace(')', ''));
901
- criterioBusquedaClase.where[campo] = typeorm_1.Not(typeorm_1.Any(arreglo));
902
- noEncuentraOperador = false;
903
- }
904
- catch (e) {
905
- console.log('Error formateando clausula ANY');
906
- console.log(e);
907
- }
908
- }
909
- }
910
- if (noEncuentraOperador && campoEsTexto) {
911
- const expresionRegularIsNull = /IsNull\(".+"\)+/g;
912
- const contieneIsNull = sinNot.match(expresionRegularIsNull);
913
- if (contieneIsNull) {
914
- criterioBusquedaClase.where[campo] = typeorm_1.Not(typeorm_1.IsNull());
915
- noEncuentraOperador = false;
916
- }
917
- }
918
- }
919
- } // Fin de NOT
920
- if (noEncuentraOperador && campoEsTexto) {
921
- const expresionRegularLike = /Like\(".+"\)+/g;
922
- const contieneLike = criterioBusquedaClase.where[campo].match(expresionRegularLike);
923
- if (contieneLike) {
924
- criterioBusquedaClase.where[campo] = typeorm_1.Like(criterioBusquedaClase.where[campo].replace('Like("', '').replace('")', ''));
925
- noEncuentraOperador = false;
926
- }
927
- }
928
- if (noEncuentraOperador && campoEsTexto) {
929
- const expresionRegularLessThan = /LessThan\(".+"\)+/g;
930
- const contieneLessThan = criterioBusquedaClase.where[campo].match(expresionRegularLessThan);
931
- if (contieneLessThan) {
932
- criterioBusquedaClase.where[campo] = typeorm_1.LessThan(criterioBusquedaClase.where[campo].replace('LessThan("', '').replace('")', ''));
933
- noEncuentraOperador = false;
934
- }
935
- }
936
- if (noEncuentraOperador && campoEsTexto) {
937
- const expresionRegularMoreThan = /MoreThan\(".+"\)+/g;
938
- const contieneMoreThan = criterioBusquedaClase.where[campo].match(expresionRegularMoreThan);
939
- if (contieneMoreThan) {
940
- criterioBusquedaClase.where[campo] = typeorm_1.MoreThan(criterioBusquedaClase.where[campo].replace('MoreThan("', '').replace('")', ''));
941
- noEncuentraOperador = false;
942
- }
943
- }
944
- if (noEncuentraOperador && campoEsTexto) {
945
- const expresionRegularEqual = /Equal\(".+"\)+/g;
946
- const contieneEqual = criterioBusquedaClase.where[campo].match(expresionRegularEqual);
947
- if (contieneEqual) {
948
- criterioBusquedaClase.where[campo] = typeorm_1.Equal(criterioBusquedaClase.where[campo].replace('Equal("', '').replace('")', ''));
949
- noEncuentraOperador = false;
950
- }
951
- }
952
- if (noEncuentraOperador && campoEsTexto) {
953
- const expresionRegularBetween = /Between\(".+"\)+/g;
954
- const contieneBetween = criterioBusquedaClase.where[campo].match(expresionRegularBetween);
955
- if (contieneBetween) {
956
- const busqueda = [...criterioBusquedaClase.where[campo]
957
- .replace('Between("', '')
958
- .replace('")', '')
959
- .replace(' ', '')
960
- .split(',')
961
- .map((n) => isNaN(n) ? n : +n)];
962
- const esFecha = busqueda[0].length === 10 &&
963
- busqueda[0].length === 10 &&
964
- (typeof busqueda[0] === 'string') &&
965
- (typeof busqueda[1] === 'string') &&
966
- busqueda[0].match('-') &&
967
- busqueda[1].match('-');
968
- if (esFecha) {
969
- const fechaInicio = new Date(busqueda[0].substring(0, 4), busqueda[0].substring(5, 7) - 1, busqueda[0].substring(8));
970
- const fechaFin = new Date(busqueda[1].substring(0, 4), busqueda[1].substring(5, 7) - 1, busqueda[1].substring(8));
971
- criterioBusquedaClase.where[campo] = typeorm_1.Between(fechaInicio, fechaFin);
972
- }
973
- else {
974
- criterioBusquedaClase.where[campo] = typeorm_1.Between(busqueda[0], busqueda[1]);
975
- }
976
- noEncuentraOperador = false;
977
- }
978
- }
979
- if (noEncuentraOperador && campoEsTexto) {
980
- const expresionRegularIn = /In\(.+\)+/g;
981
- const contieneIn = criterioBusquedaClase.where[campo].match(expresionRegularIn);
982
- if (contieneIn) {
983
- let arreglo;
984
- try {
985
- arreglo = JSON.parse(criterioBusquedaClase.where[campo]
986
- .replace('In(', '')
987
- .replace('])', ']'));
988
- if (arreglo.length > 0) {
989
- criterioBusquedaClase.where[campo] = typeorm_1.In(arreglo);
990
- noEncuentraOperador = false;
991
- }
992
- else {
993
- console.error({
994
- mensaje: 'IN mal formateado, no tiene elementos eliminando campo.'
995
- });
996
- delete criterioBusquedaClase.where[campo];
997
- }
998
- }
999
- catch (error) {
1000
- console.error({
1001
- error,
1002
- mensaje: 'IN mal formateado, eliminando campo.'
1003
- });
1004
- delete criterioBusquedaClase.where[campo];
1005
- }
1006
- }
1007
- }
1008
- if (noEncuentraOperador && campoEsTexto) {
1009
- const expresionRegularAny = /Any\(.+\)+/g;
1010
- const contieneAny = criterioBusquedaClase.where[campo].match(expresionRegularAny);
1011
- if (contieneAny) {
1012
- let arreglo;
1013
- try {
1014
- arreglo = JSON.parse(criterioBusquedaClase.where[campo]
1015
- .replace('Any(', '')
1016
- .replace(')', ''));
1017
- criterioBusquedaClase.where[campo] = typeorm_1.Any(arreglo);
1018
- noEncuentraOperador = false;
1019
- }
1020
- catch (e) {
1021
- console.log(e);
1022
- }
1023
- }
1024
- }
1025
- if (noEncuentraOperador && campoEsTexto) {
1026
- const expresionRegularIsNull = /IsNull\(".+"\)+/g;
1027
- const contieneIsNull = criterioBusquedaClase.where[campo].match(expresionRegularIsNull);
1028
- if (contieneIsNull) {
1029
- criterioBusquedaClase.where[campo] = typeorm_1.IsNull();
1030
- noEncuentraOperador = false;
1031
- }
1032
- }
1033
- });
1034
- }
543
+ // if (Array.isArray(criterioBusquedaClase.where)) {
544
+ // criterioBusquedaClase
545
+ // .where
546
+ // .forEach(
547
+ // (busqueda, indice) => {
548
+ // Object
549
+ // .keys(busqueda)
550
+ // .forEach(
551
+ // (campo) => {
552
+ // let noEncuentraOperador = true;
553
+ // let campoEsTexto = typeof criterioBusquedaClase.where[indice][campo] === 'string';
554
+ //
555
+ // if (noEncuentraOperador && campoEsTexto) {
556
+ // const expresionRegularNot = /Not\(".+"\)+/g;
557
+ // const contieneNot = criterioBusquedaClase.where[indice][campo].match(expresionRegularNot);
558
+ // if (contieneNot && noEncuentraOperador) {
559
+ // const sinNot = criterioBusquedaClase.where[indice][campo].replace('Not("', '').replace('")', '');
560
+ //
561
+ // if (noEncuentraOperador && campoEsTexto) {
562
+ // const expresionRegularLike = /Like\(".+"\)+/g;
563
+ // const contieneLike = sinNot.match(expresionRegularLike);
564
+ // if (contieneLike) {
565
+ // criterioBusquedaClase.where[indice][campo] = Not(Like(sinNot.replace('Like("', '').replace('")', '')));
566
+ // noEncuentraOperador = false;
567
+ // }
568
+ // }
569
+ //
570
+ // if (noEncuentraOperador && campoEsTexto) {
571
+ // const expresionRegularLessThan = /LessThan\(".+"\)+/g;
572
+ // const contieneLessThan = sinNot.match(expresionRegularLessThan);
573
+ // if (contieneLessThan) {
574
+ // criterioBusquedaClase.where[indice][campo] = Not(LessThan(sinNot.replace('LessThan("', '').replace('")', '')));
575
+ // noEncuentraOperador = false;
576
+ // }
577
+ // }
578
+ //
579
+ // if (noEncuentraOperador && campoEsTexto) {
580
+ // const expresionRegularMoreThan = /MoreThan\(".+"\)+/g;
581
+ // const contieneMoreThan = sinNot.match(expresionRegularMoreThan);
582
+ // if (contieneMoreThan) {
583
+ // criterioBusquedaClase.where[indice][campo] = Not(MoreThan(sinNot.replace('MoreThan("', '').replace('")', '')));
584
+ // noEncuentraOperador = false;
585
+ // }
586
+ // }
587
+ //
588
+ // if (noEncuentraOperador && campoEsTexto) {
589
+ // const expresionRegularEqual = /Equal\(".+"\)+/g;
590
+ // const contieneEqual = sinNot.match(expresionRegularEqual);
591
+ // if (contieneEqual) {
592
+ // criterioBusquedaClase.where[indice][campo] = Not(Equal(sinNot.replace('Equal("', '').replace('")', '')));
593
+ // noEncuentraOperador = false;
594
+ // }
595
+ // }
596
+ //
597
+ // if (noEncuentraOperador && campoEsTexto) {
598
+ // const expresionRegularBetween = /Between\(".+"\)+/g;
599
+ // const contieneBetween = sinNot.match(expresionRegularBetween);
600
+ // if (contieneBetween) {
601
+ // const busqueda = <any>[...sinNot
602
+ // .replace('Between("', '')
603
+ // .replace('")', '')
604
+ // .replace(' ', '')
605
+ // .split(',')
606
+ // .map((n) => isNaN(n) ? n : +n)];
607
+ // const esFecha = busqueda[0].length === 10 &&
608
+ // busqueda[0].length === 10 &&
609
+ // (typeof busqueda[0] === 'string') &&
610
+ // (typeof busqueda[1] === 'string') &&
611
+ // busqueda[0].match('-') &&
612
+ // busqueda[1].match('-');
613
+ // if (esFecha) {
614
+ // const fechaInicio = new Date(
615
+ // busqueda[0].substring(0, 4),
616
+ // busqueda[0].substring(5, 7) - 1,
617
+ // busqueda[0].substring(8)
618
+ // );
619
+ //
620
+ // const fechaFin = new Date(
621
+ // busqueda[1].substring(0, 4),
622
+ // busqueda[1].substring(5, 7) - 1,
623
+ // busqueda[1].substring(8)
624
+ // );
625
+ //
626
+ // criterioBusquedaClase.where[indice][campo] = Not(Between(fechaInicio, fechaFin));
627
+ // } else {
628
+ // criterioBusquedaClase.where[indice][campo] = Not(Between(busqueda[0], busqueda[1]));
629
+ // }
630
+ // noEncuentraOperador = false;
631
+ // }
632
+ // }
633
+ //
634
+ // if (noEncuentraOperador && campoEsTexto) {
635
+ // const expresionRegularIn = /In\(.+\)+/g;
636
+ // const contieneIn = sinNot.match(expresionRegularIn);
637
+ // if (contieneIn) {
638
+ // let arreglo;
639
+ // try {
640
+ // arreglo = JSON.parse(sinNot
641
+ // .replace('In(', '')
642
+ // .replace('])', ']'));
643
+ // if (arreglo.length > 0) {
644
+ // criterioBusquedaClase.where[campo] = Not(In(arreglo));
645
+ // noEncuentraOperador = false;
646
+ // } else {
647
+ // console.error({
648
+ // mensaje: 'IN mal formateado, no tiene elementos eliminando campo.'
649
+ // });
650
+ // delete criterioBusquedaClase.where[campo];
651
+ // }
652
+ // } catch (error) {
653
+ // console.error({
654
+ // error,
655
+ // mensaje: 'IN mal formateado, eliminando campo.'
656
+ // });
657
+ // delete criterioBusquedaClase.where[campo];
658
+ // }
659
+ //
660
+ // }
661
+ // }
662
+ //
663
+ // if (noEncuentraOperador && campoEsTexto) {
664
+ // const expresionRegularAny = /Any\(.+\)+/g;
665
+ // const contieneAny = sinNot.match(expresionRegularAny);
666
+ // if (contieneAny) {
667
+ // let arreglo;
668
+ // try {
669
+ // arreglo = JSON.parse(sinNot
670
+ // .replace('Any(', '')
671
+ // .replace(')', ''));
672
+ // criterioBusquedaClase.where[indice][campo] = Not(Any(arreglo));
673
+ // noEncuentraOperador = false;
674
+ // } catch (e) {
675
+ // console.log('Error formateando clausula ANY');
676
+ // console.log(e);
677
+ // }
678
+ //
679
+ // }
680
+ // }
681
+ //
682
+ // if (noEncuentraOperador && campoEsTexto) {
683
+ // const expresionRegularIsNull = /IsNull\(".+"\)+/g;
684
+ // const contieneIsNull = sinNot.match(expresionRegularIsNull);
685
+ // if (contieneIsNull) {
686
+ // criterioBusquedaClase.where[indice][campo] = Not(IsNull());
687
+ // noEncuentraOperador = false;
688
+ // }
689
+ // }
690
+ // }
691
+ // } // Fin de NOT
692
+ //
693
+ // if (noEncuentraOperador && campoEsTexto) {
694
+ // const expresionRegularLike = /Like\(".+"\)+/g;
695
+ // const contieneLike = criterioBusquedaClase.where[indice][campo].match(expresionRegularLike);
696
+ // if (contieneLike) {
697
+ // criterioBusquedaClase.where[indice][campo] = Like(criterioBusquedaClase.where[indice][campo].replace('Like("', '').replace('")', ''));
698
+ // noEncuentraOperador = false;
699
+ // }
700
+ // }
701
+ //
702
+ // if (noEncuentraOperador && campoEsTexto) {
703
+ // const expresionRegularLessThan = /LessThan\(".+"\)+/g;
704
+ // const contieneLessThan = criterioBusquedaClase.where[indice][campo].match(expresionRegularLessThan);
705
+ // if (contieneLessThan) {
706
+ // criterioBusquedaClase.where[indice][campo] = LessThan(criterioBusquedaClase.where[indice][campo].replace('LessThan("', '').replace('")', ''));
707
+ // noEncuentraOperador = false;
708
+ // }
709
+ // }
710
+ //
711
+ // if (noEncuentraOperador && campoEsTexto) {
712
+ // const expresionRegularMoreThan = /MoreThan\(".+"\)+/g;
713
+ // const contieneMoreThan = criterioBusquedaClase.where[indice][campo].match(expresionRegularMoreThan);
714
+ // if (contieneMoreThan) {
715
+ // criterioBusquedaClase.where[indice][campo] = MoreThan(criterioBusquedaClase.where[indice][campo].replace('MoreThan("', '').replace('")', ''));
716
+ // noEncuentraOperador = false;
717
+ // }
718
+ // }
719
+ //
720
+ // if (noEncuentraOperador && campoEsTexto) {
721
+ // const expresionRegularEqual = /Equal\(".+"\)+/g;
722
+ // const contieneEqual = criterioBusquedaClase.where[indice][campo].match(expresionRegularEqual);
723
+ // if (contieneEqual) {
724
+ // criterioBusquedaClase.where[indice][campo] = Equal(criterioBusquedaClase.where[indice][campo].replace('Equal("', '').replace('")', ''));
725
+ // noEncuentraOperador = false;
726
+ // }
727
+ // }
728
+ //
729
+ // if (noEncuentraOperador && campoEsTexto) {
730
+ // const expresionRegularBetween = /Between\(".+"\)+/g;
731
+ // const contieneBetween = criterioBusquedaClase.where[indice][campo].match(expresionRegularBetween);
732
+ // if (contieneBetween) {
733
+ // const busqueda = <any>[...criterioBusquedaClase.where[indice][campo]
734
+ // .replace('Between("', '')
735
+ // .replace('")', '')
736
+ // .replace(' ', '')
737
+ // .split(',')
738
+ // .map((n) => isNaN(n) ? n : +n)];
739
+ // const esFecha = busqueda[0].length === 10 &&
740
+ // busqueda[0].length === 10 &&
741
+ // (typeof busqueda[0] === 'string') &&
742
+ // (typeof busqueda[1] === 'string') &&
743
+ // busqueda[0].match('-') &&
744
+ // busqueda[1].match('-');
745
+ // if (esFecha) {
746
+ // const fechaInicio = new Date(
747
+ // busqueda[0].substring(0, 4),
748
+ // busqueda[0].substring(5, 7) - 1,
749
+ // busqueda[0].substring(8)
750
+ // );
751
+ //
752
+ // const fechaFin = new Date(
753
+ // busqueda[1].substring(0, 4),
754
+ // busqueda[1].substring(5, 7) - 1,
755
+ // busqueda[1].substring(8)
756
+ // );
757
+ //
758
+ // criterioBusquedaClase.where[indice][campo] = Between(fechaInicio, fechaFin);
759
+ // } else {
760
+ // criterioBusquedaClase.where[indice][campo] = Between(busqueda[0], busqueda[1]);
761
+ // }
762
+ // noEncuentraOperador = false;
763
+ // }
764
+ // }
765
+ //
766
+ // if (noEncuentraOperador && campoEsTexto) {
767
+ // const expresionRegularIn = /In\(.+\)+/g;
768
+ // const contieneIn = criterioBusquedaClase.where[indice][campo].match(expresionRegularIn);
769
+ // if (contieneIn) {
770
+ // let arreglo;
771
+ // try {
772
+ // arreglo = JSON.parse(criterioBusquedaClase.where[indice][campo]
773
+ // .replace('In(', '')
774
+ // .replace('])', ']'));
775
+ // if (arreglo.length > 0) {
776
+ // criterioBusquedaClase.where[campo] = In(arreglo);
777
+ // noEncuentraOperador = false;
778
+ // } else {
779
+ // console.error({
780
+ // mensaje: 'IN mal formateado, no tiene elementos eliminando campo.'
781
+ // });
782
+ // delete criterioBusquedaClase.where[campo];
783
+ // }
784
+ // } catch (error) {
785
+ // console.error({
786
+ // error,
787
+ // mensaje: 'IN mal formateado, eliminando campo.'
788
+ // });
789
+ // delete criterioBusquedaClase.where[campo];
790
+ // }
791
+ // }
792
+ // }
793
+ //
794
+ // if (noEncuentraOperador && campoEsTexto) {
795
+ // const expresionRegularAny = /Any\(.+\)+/g;
796
+ // const contieneAny = criterioBusquedaClase.where[indice][campo].match(expresionRegularAny);
797
+ // if (contieneAny) {
798
+ // let arreglo;
799
+ // try {
800
+ // arreglo = JSON.parse(criterioBusquedaClase.where[indice][campo]
801
+ // .replace('Any(', '')
802
+ // .replace(')', ''));
803
+ // criterioBusquedaClase.where[indice][campo] = Any(arreglo);
804
+ // noEncuentraOperador = false;
805
+ // } catch (e) {
806
+ // console.log(e);
807
+ // }
808
+ //
809
+ // }
810
+ // }
811
+ //
812
+ // if (noEncuentraOperador && campoEsTexto) {
813
+ // const expresionRegularIsNull = /IsNull\(".+"\)+/g;
814
+ // const contieneIsNull = criterioBusquedaClase.where[indice][campo].match(expresionRegularIsNull);
815
+ // if (contieneIsNull) {
816
+ // criterioBusquedaClase.where[indice][campo] = IsNull();
817
+ // noEncuentraOperador = false;
818
+ // }
819
+ // }
820
+ // });
821
+ // }
822
+ // );
823
+ //
824
+ // } else {
825
+ //
826
+ // Object
827
+ // .keys(criterioBusquedaClase.where)
828
+ // .forEach(
829
+ // (campo) => {
830
+ // let noEncuentraOperador = true;
831
+ // let campoEsTexto = typeof criterioBusquedaClase.where[campo] === 'string';
832
+ // if (noEncuentraOperador && campoEsTexto) {
833
+ // const expresionRegularNot = /Not\(".+"\)+/g;
834
+ // const contieneNot = criterioBusquedaClase.where[campo].match(expresionRegularNot);
835
+ // if (contieneNot && noEncuentraOperador) {
836
+ //
837
+ // // criterioBusquedaClase.where[campo] = Not(
838
+ // // criterioBusquedaClase.where[campo].replace('Not("', '').replace('")', '')
839
+ // // );
840
+ // // noEncuentraOperador = false;
841
+ //
842
+ // const sinNot = criterioBusquedaClase.where[campo].replace('Not("', '').replace('")', '');
843
+ //
844
+ // if (noEncuentraOperador && campoEsTexto) {
845
+ // const expresionRegularLike = /Like\(".+"\)+/g;
846
+ // const contieneLike = sinNot.match(expresionRegularLike);
847
+ // if (contieneLike) {
848
+ // criterioBusquedaClase.where[campo] = Not(Like(sinNot.replace('Like("', '').replace('")', '')));
849
+ // noEncuentraOperador = false;
850
+ // }
851
+ // }
852
+ //
853
+ // if (noEncuentraOperador && campoEsTexto) {
854
+ // const expresionRegularLessThan = /LessThan\(".+"\)+/g;
855
+ // const contieneLessThan = sinNot.match(expresionRegularLessThan);
856
+ // if (contieneLessThan) {
857
+ // criterioBusquedaClase.where[campo] = Not(LessThan(sinNot.replace('LessThan("', '').replace('")', '')));
858
+ // noEncuentraOperador = false;
859
+ // }
860
+ // }
861
+ //
862
+ // if (noEncuentraOperador && campoEsTexto) {
863
+ // const expresionRegularMoreThan = /MoreThan\(".+"\)+/g;
864
+ // const contieneMoreThan = sinNot.match(expresionRegularMoreThan);
865
+ // if (contieneMoreThan) {
866
+ // criterioBusquedaClase.where[campo] = Not(MoreThan(sinNot.replace('MoreThan("', '').replace('")', '')));
867
+ // noEncuentraOperador = false;
868
+ // }
869
+ // }
870
+ //
871
+ // if (noEncuentraOperador && campoEsTexto) {
872
+ // const expresionRegularEqual = /Equal\(".+"\)+/g;
873
+ // const contieneEqual = sinNot.match(expresionRegularEqual);
874
+ // if (contieneEqual) {
875
+ // criterioBusquedaClase.where[campo] = Not(Equal(sinNot.replace('Equal("', '').replace('")', '')));
876
+ // noEncuentraOperador = false;
877
+ // }
878
+ // }
879
+ //
880
+ // if (noEncuentraOperador && campoEsTexto) {
881
+ // const expresionRegularBetween = /Between\(".+"\)+/g;
882
+ // const contieneBetween = sinNot.match(expresionRegularBetween);
883
+ // if (contieneBetween) {
884
+ // const busqueda = <any>[...sinNot
885
+ // .replace('Between("', '')
886
+ // .replace('")', '')
887
+ // .replace(' ', '')
888
+ // .split(',')
889
+ // .map((n) => isNaN(n) ? n : +n)];
890
+ // const esFecha = busqueda[0].length === 10 &&
891
+ // busqueda[0].length === 10 &&
892
+ // (typeof busqueda[0] === 'string') &&
893
+ // (typeof busqueda[1] === 'string') &&
894
+ // busqueda[0].match('-') &&
895
+ // busqueda[1].match('-');
896
+ // if (esFecha) {
897
+ // const fechaInicio = new Date(
898
+ // busqueda[0].substring(0, 4),
899
+ // busqueda[0].substring(5, 7) - 1,
900
+ // busqueda[0].substring(8)
901
+ // );
902
+ //
903
+ // const fechaFin = new Date(
904
+ // busqueda[1].substring(0, 4),
905
+ // busqueda[1].substring(5, 7) - 1,
906
+ // busqueda[1].substring(8)
907
+ // );
908
+ //
909
+ // criterioBusquedaClase.where[campo] = Not(Between(fechaInicio, fechaFin));
910
+ // } else {
911
+ // criterioBusquedaClase.where[campo] = Not(Between(busqueda[0], busqueda[1]));
912
+ // }
913
+ // noEncuentraOperador = false;
914
+ // }
915
+ // }
916
+ //
917
+ // if (noEncuentraOperador && campoEsTexto) {
918
+ // const expresionRegularIn = /In\(.+\)+/g;
919
+ // const contieneIn = sinNot.match(expresionRegularIn);
920
+ // if (contieneIn) {
921
+ // let arreglo;
922
+ // try {
923
+ // arreglo = JSON.parse(sinNot
924
+ // .replace('In(', '')
925
+ // .replace('])', ']'));
926
+ // if (arreglo.length > 0) {
927
+ // criterioBusquedaClase.where[campo] = Not(In(arreglo));
928
+ // noEncuentraOperador = false;
929
+ // } else {
930
+ // console.error({
931
+ // mensaje: 'IN mal formateado, no tiene elementos eliminando campo.'
932
+ // });
933
+ // delete criterioBusquedaClase.where[campo];
934
+ // }
935
+ // } catch (error) {
936
+ // console.error({
937
+ // error,
938
+ // mensaje: 'IN mal formateado, eliminando campo.'
939
+ // });
940
+ // delete criterioBusquedaClase.where[campo];
941
+ // }
942
+ //
943
+ // }
944
+ // }
945
+ //
946
+ // if (noEncuentraOperador && campoEsTexto) {
947
+ // const expresionRegularAny = /Any\(.+\)+/g;
948
+ // const contieneAny = sinNot.match(expresionRegularAny);
949
+ // if (contieneAny) {
950
+ // let arreglo;
951
+ // try {
952
+ // arreglo = JSON.parse(sinNot
953
+ // .replace('Any(', '')
954
+ // .replace(')', ''));
955
+ // criterioBusquedaClase.where[campo] = Not(Any(arreglo));
956
+ // noEncuentraOperador = false;
957
+ // } catch (e) {
958
+ // console.log('Error formateando clausula ANY');
959
+ // console.log(e);
960
+ // }
961
+ //
962
+ // }
963
+ // }
964
+ //
965
+ // if (noEncuentraOperador && campoEsTexto) {
966
+ // const expresionRegularIsNull = /IsNull\(".+"\)+/g;
967
+ // const contieneIsNull = sinNot.match(expresionRegularIsNull);
968
+ // if (contieneIsNull) {
969
+ // criterioBusquedaClase.where[campo] = Not(IsNull());
970
+ // noEncuentraOperador = false;
971
+ // }
972
+ // }
973
+ // }
974
+ // } // Fin de NOT
975
+ //
976
+ // if (noEncuentraOperador && campoEsTexto) {
977
+ // const expresionRegularLike = /Like\(".+"\)+/g;
978
+ // const contieneLike = criterioBusquedaClase.where[campo].match(expresionRegularLike);
979
+ // if (contieneLike) {
980
+ // criterioBusquedaClase.where[campo] = Like(criterioBusquedaClase.where[campo].replace('Like("', '').replace('")', ''));
981
+ // noEncuentraOperador = false;
982
+ // }
983
+ // }
984
+ //
985
+ // if (noEncuentraOperador && campoEsTexto) {
986
+ // const expresionRegularLessThan = /LessThan\(".+"\)+/g;
987
+ // const contieneLessThan = criterioBusquedaClase.where[campo].match(expresionRegularLessThan);
988
+ // if (contieneLessThan) {
989
+ // criterioBusquedaClase.where[campo] = LessThan(criterioBusquedaClase.where[campo].replace('LessThan("', '').replace('")', ''));
990
+ // noEncuentraOperador = false;
991
+ // }
992
+ // }
993
+ //
994
+ // if (noEncuentraOperador && campoEsTexto) {
995
+ // const expresionRegularMoreThan = /MoreThan\(".+"\)+/g;
996
+ // const contieneMoreThan = criterioBusquedaClase.where[campo].match(expresionRegularMoreThan);
997
+ // if (contieneMoreThan) {
998
+ // criterioBusquedaClase.where[campo] = MoreThan(criterioBusquedaClase.where[campo].replace('MoreThan("', '').replace('")', ''));
999
+ // noEncuentraOperador = false;
1000
+ // }
1001
+ // }
1002
+ //
1003
+ // if (noEncuentraOperador && campoEsTexto) {
1004
+ // const expresionRegularEqual = /Equal\(".+"\)+/g;
1005
+ // const contieneEqual = criterioBusquedaClase.where[campo].match(expresionRegularEqual);
1006
+ // if (contieneEqual) {
1007
+ // criterioBusquedaClase.where[campo] = Equal(criterioBusquedaClase.where[campo].replace('Equal("', '').replace('")', ''));
1008
+ // noEncuentraOperador = false;
1009
+ // }
1010
+ // }
1011
+ //
1012
+ // if (noEncuentraOperador && campoEsTexto) {
1013
+ // const expresionRegularBetween = /Between\(".+"\)+/g;
1014
+ // const contieneBetween = criterioBusquedaClase.where[campo].match(expresionRegularBetween);
1015
+ // if (contieneBetween) {
1016
+ // const busqueda = <any>[...criterioBusquedaClase.where[campo]
1017
+ // .replace('Between("', '')
1018
+ // .replace('")', '')
1019
+ // .replace(' ', '')
1020
+ // .split(',')
1021
+ // .map((n) => isNaN(n) ? n : +n)];
1022
+ // const esFecha = busqueda[0].length === 10 &&
1023
+ // busqueda[0].length === 10 &&
1024
+ // (typeof busqueda[0] === 'string') &&
1025
+ // (typeof busqueda[1] === 'string') &&
1026
+ // busqueda[0].match('-') &&
1027
+ // busqueda[1].match('-');
1028
+ // if (esFecha) {
1029
+ // const fechaInicio = new Date(
1030
+ // busqueda[0].substring(0, 4),
1031
+ // busqueda[0].substring(5, 7) - 1,
1032
+ // busqueda[0].substring(8)
1033
+ // );
1034
+ //
1035
+ // const fechaFin = new Date(
1036
+ // busqueda[1].substring(0, 4),
1037
+ // busqueda[1].substring(5, 7) - 1,
1038
+ // busqueda[1].substring(8)
1039
+ // );
1040
+ // criterioBusquedaClase.where[campo] = Between(fechaInicio, fechaFin);
1041
+ // } else {
1042
+ // criterioBusquedaClase.where[campo] = Between(busqueda[0], busqueda[1]);
1043
+ // }
1044
+ // noEncuentraOperador = false;
1045
+ // }
1046
+ // }
1047
+ //
1048
+ // if (noEncuentraOperador && campoEsTexto) {
1049
+ // const expresionRegularIn = /In\(.+\)+/g;
1050
+ // const contieneIn = criterioBusquedaClase.where[campo].match(expresionRegularIn);
1051
+ // if (contieneIn) {
1052
+ // let arreglo;
1053
+ // try {
1054
+ // arreglo = JSON.parse(criterioBusquedaClase.where[campo]
1055
+ // .replace('In(', '')
1056
+ // .replace('])', ']'));
1057
+ // if (arreglo.length > 0) {
1058
+ // criterioBusquedaClase.where[campo] = In(arreglo);
1059
+ // noEncuentraOperador = false;
1060
+ // } else {
1061
+ // console.error({
1062
+ // mensaje: 'IN mal formateado, no tiene elementos eliminando campo.'
1063
+ // });
1064
+ // delete criterioBusquedaClase.where[campo];
1065
+ // }
1066
+ // } catch (error) {
1067
+ // console.error({
1068
+ // error,
1069
+ // mensaje: 'IN mal formateado, eliminando campo.'
1070
+ // });
1071
+ // delete criterioBusquedaClase.where[campo];
1072
+ // }
1073
+ //
1074
+ // }
1075
+ // }
1076
+ //
1077
+ // if (noEncuentraOperador && campoEsTexto) {
1078
+ // const expresionRegularAny = /Any\(.+\)+/g;
1079
+ // const contieneAny = criterioBusquedaClase.where[campo].match(expresionRegularAny);
1080
+ // if (contieneAny) {
1081
+ // let arreglo;
1082
+ // try {
1083
+ // arreglo = JSON.parse(criterioBusquedaClase.where[campo]
1084
+ // .replace('Any(', '')
1085
+ // .replace(')', ''));
1086
+ // criterioBusquedaClase.where[campo] = Any(arreglo);
1087
+ // noEncuentraOperador = false;
1088
+ // } catch (e) {
1089
+ // console.log(e);
1090
+ // }
1091
+ //
1092
+ // }
1093
+ // }
1094
+ //
1095
+ // if (noEncuentraOperador && campoEsTexto) {
1096
+ // const expresionRegularIsNull = /IsNull\(".+"\)+/g;
1097
+ // const contieneIsNull = criterioBusquedaClase.where[campo].match(expresionRegularIsNull);
1098
+ // if (contieneIsNull) {
1099
+ // criterioBusquedaClase.where[campo] = IsNull();
1100
+ // noEncuentraOperador = false;
1101
+ // }
1102
+ // }
1103
+ // });
1104
+ //
1105
+ //
1106
+ // }
1035
1107
  let consulta = servicio.repository.createQueryBuilder('raiz');
1036
1108
  // Consulta where normal
1037
1109
  const wherePrincipal = Object
1038
1110
  .keys(objetoWhereYRelations.objetoCampos);
1039
1111
  let condicionGeneral = '';
1040
1112
  let objetoGeneral = {};
1113
+ console.log('Recuerde usar la propiedad "mlabOr" con valores true o false' +
1114
+ ' por defecto la opcion es false. Sirve para usar la consulta con OR o AND.');
1041
1115
  wherePrincipal.forEach((nombreCampo, indice) => {
1042
- const objetoCampoCondiciones = generar_campos_con_condiciones_1.generarCampoConCondiciones(nombreCampo, objetoWhereYRelations.objetoCampos[nombreCampo], 'raiz', 0);
1043
- condicionGeneral = condicionGeneral + (indice === wherePrincipal.length + 1) ?
1044
- objetoCampoCondiciones.consulta :
1045
- objetoCampoCondiciones.consulta + ' and ';
1046
- objetoGeneral = Object.assign({}, objetoGeneral, objetoCampoCondiciones.objeto);
1116
+ if (nombreCampo === 'mlabOr') {
1117
+ }
1118
+ else {
1119
+ const objetoCampoCondiciones = generar_campos_con_condiciones_1.generarCampoConCondiciones(nombreCampo, objetoWhereYRelations.objetoCampos[nombreCampo], 'raiz', 0);
1120
+ const consultaConOr = objetoWhereYRelations.objetoCampos['mlabOr'];
1121
+ const indiceASumar = (consultaConOr === false || consultaConOr === true) ? 2 : 1;
1122
+ const concatenador = (consultaConOr ? ' OR ' : ' AND ');
1123
+ condicionGeneral = condicionGeneral +
1124
+ ((indice + indiceASumar === wherePrincipal.length) ?
1125
+ objetoCampoCondiciones.consulta :
1126
+ objetoCampoCondiciones.consulta + concatenador);
1127
+ objetoGeneral = Object.assign({}, objetoGeneral, objetoCampoCondiciones.objeto);
1128
+ }
1047
1129
  });
1048
1130
  consulta.where(condicionGeneral, objetoGeneral);
1049
1131
  // Consulta ya con relaciones
@@ -1087,4 +1169,4 @@ async function buscarVariosRegistros(criterioBusqueda, PrincipalFindManyOptions,
1087
1169
  }
1088
1170
  }
1089
1171
  exports.buscarVariosRegistros = buscarVariosRegistros;
1090
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVzY2FyLXJlZ2lzdHJvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9mdW5jaW9uZXMtdXRpbC9idXNjYXItcmVnaXN0cm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxREFBMkM7QUFDM0MseURBQWlEO0FBQ2pELHFDQUF5RjtBQUV6Riw0R0FBcUc7QUFDckcsc0VBQWtFO0FBQ2xFLHdHQUFpRztBQUUxRixLQUFLLGdDQUNWLGdCQUFnQixFQUNoQix3QkFBd0IsRUFDeEIsSUFBSSxFQUNKLElBQUksRUFDSixRQUFRLEVBQ1IscUJBQTJDLEVBQzNDLGlCQUFpQixFQUNqQixXQUFXO0lBQ1gsSUFBSSwyQkFBMkIsR0FBRyxLQUFLLENBQUM7SUFDeEMsTUFBTSw0QkFBNEIsR0FBRyxPQUFPLGdCQUFnQixLQUFLLFFBQVEsQ0FBQztJQUUxRSxJQUFJLDRCQUE0QixFQUFFO1FBQ2hDLElBQUk7WUFDRixnQkFBZ0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDakQ7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLDJCQUEyQixHQUFHLElBQUksQ0FBQztTQUNwQztLQUNGO0lBRUQsSUFBSSwyQkFBMkIsRUFBRTtRQUMvQixPQUFPLENBQUMsS0FBSyxDQUFDLDBEQUEwRCxDQUFDLENBQUM7UUFDMUUsTUFBTSwwQkFBMEIsR0FBRztZQUNqQyxJQUFJLEVBQUUsSUFBSTtZQUNWLElBQUksRUFBRSxJQUFJO1NBQ1gsQ0FBQztRQUNGLGdCQUFnQixHQUFHLDBCQUEwQixDQUFDO1FBQzlDLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0tBQ3hDO1NBQU07UUFDTCxJQUFJLHFCQUFxQixHQUFRLGdDQUFZLENBQUMsd0JBQXdCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUMxRixNQUFNLE1BQU0sR0FBRyxNQUFNLDBCQUFRLENBQUMscUJBQXFCLENB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
1172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVzY2FyLXJlZ2lzdHJvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9mdW5jaW9uZXMtdXRpbC9idXNjYXItcmVnaXN0cm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxREFBMkM7QUFDM0MseURBQWlEO0FBQ2pELHFDQUF5RjtBQUV6Riw0R0FBcUc7QUFDckcsc0VBQWtFO0FBQ2xFLHdHQUFpRztBQUUxRixLQUFLLGdDQUNWLGdCQUFnQixFQUNoQix3QkFBd0IsRUFDeEIsSUFBSSxFQUNKLElBQUksRUFDSixRQUFRLEVBQ1IscUJBQTJDLEVBQzNDLGlCQUFpQixFQUNqQixXQUFXO0lBQ1gsSUFBSSwyQkFBMkIsR0FBRyxLQUFLLENBQUM7SUFDeEMsTUFBTSw0QkFBNEIsR0FBRyxPQUFPLGdCQUFnQixLQUFLLFFBQVEsQ0FBQztJQUUxRSxJQUFJLDRCQUE0QixFQUFFO1FBQ2hDLElBQUk7WUFDRixnQkFBZ0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDakQ7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLDJCQUEyQixHQUFHLElBQUksQ0FBQztTQUNwQztLQUNGO0lBRUQsSUFBSSwyQkFBMkIsRUFBRTtRQUMvQixPQUFPLENBQUMsS0FBSyxDQUFDLDBEQUEwRCxDQUFDLENBQUM7UUFDMUUsTUFBTSwwQkFBMEIsR0FBRztZQUNqQyxJQUFJLEVBQUUsSUFBSTtZQUNWLElBQUksRUFBRSxJQUFJO1NBQ1gsQ0FBQztRQUNGLGdCQUFnQixHQUFHLDBCQUEwQixDQUFDO1FBQzlDLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0tBQ3hDO1NBQU07UUFDTCxJQUFJLHFCQUFxQixHQUFRLGdDQUFZLENBQUMsd0JBQXdCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUMxRixNQUFNLE1BQU0sR0FBRyxNQUFNLDBCQUFRLENBQUMscUJBQXFCLENB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