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