sigo-package 1.2.187 → 1.2.189

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.
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as sigo_entities from 'sigo-entities';
2
- import { ManoObraENTITY, ReservaENTITY, ItemDetalleLogisticaDTO, CodigoNombreUMDTO, PrecioContratistaMOAL04ENTITY, ManoObraGlobalENTITY, ValorizacionManoObraDTO, PrecioContratistaMOAL02ENTITY, HomePassDTO, FlujoDocDTO, NodoDocDTO, DocumentacionPEXENTITY, PrecioEspecialidadENTITY, ObraChile9512ENTITY, TrabajoAlemaniaENTITY, ValorizacionAlemaniaDTO, ValorizacionDTO, StockPersonalENTITY, StockAlmacenENTITY, ConsumoMaterialAlemaniaENTITY, ValorizacionesDTO, PrecioContratistaMaterialENTITY, TrabajoENTITY, ActividadesDTO, PreciosVigentesDTO, ContratoOTENTITY, DetalleChileValorizacionMODTO, PrecioMaterialENTITY, DocumentRequirementDto, AltasNVTOrderENTITY, MaterialesSomacylDTO, SomacylEntregablesDTO, FilesDocDTO, MetradosVeredaDTO, BtAlpPluzVeredaAsignacionENTITY, SalidaAlmacenENTITY, CodigoNombreDTO, SystemOptionEntity, MenuDto } from 'sigo-entities';
2
+ import { ManoObraENTITY, ReservaENTITY, ItemDetalleLogisticaDTO, CodigoNombreUMDTO, PrecioContratistaMOAL04ENTITY, ManoObraGlobalENTITY, ValorizacionManoObraDTO, PrecioContratistaMOAL02ENTITY, HomePassDTO, FlujoDocDTO, NodoDocDTO, DocumentacionPEXENTITY, PrecioEspecialidadENTITY, ObraChile9512ENTITY, TrabajoAlemaniaENTITY, ValorizacionAlemaniaDTO, ValorizacionDTO, StockPersonalENTITY, StockAlmacenENTITY, ConsumoMaterialAlemaniaENTITY, ValorizacionesDTO, PrecioContratistaMaterialENTITY, TrabajoENTITY, ActividadesDTO, PreciosVigentesDTO, ContratoOTENTITY, DetalleChileValorizacionMODTO, PrecioMaterialENTITY, AddressClassification, DocumentRequirementDto, AltasNVTOrderENTITY, MaterialesSomacylDTO, SomacylEntregablesDTO, FilesDocDTO, MetradosVeredaDTO, BtAlpPluzVeredaAsignacionENTITY, SalidaAlmacenENTITY, CodigoNombreDTO, SystemOptionEntity, MenuDto } from 'sigo-entities';
3
3
  import { ClassConstructor } from 'class-transformer';
4
4
  import { Request, Response, NextFunction } from 'express';
5
5
 
@@ -702,6 +702,46 @@ interface iMapaEspecialidades9612 {
702
702
  }
703
703
  declare const MapeoEspecialidades9612: iMapaEspecialidades9612[];
704
704
 
705
+ /**
706
+ * Reglas del parte diario COLOMBIA 9612 compartidas por la PWA (formulario) y pex-procesos (save-daily-report).
707
+ * Legacy: sigo-pwa-mobile Programados/Trabajos/ParteDiario (sigo-pwa job/docs/REGLAS_NEGOCIO_COLOMBIA_9612.md §6).
708
+ */
709
+ declare const timeZoneCOLOMBIA9612 = "America/Bogota";
710
+ interface EstadoParteDiarioCOLOMBIA9612 {
711
+ Descripcion: string;
712
+ }
713
+ interface ParteDiarioEstadosCOLOMBIA9612 {
714
+ UltimoEstadoInterno?: EstadoParteDiarioCOLOMBIA9612;
715
+ EstadosInternos?: EstadoParteDiarioCOLOMBIA9612[];
716
+ }
717
+ /** Código YYYYMMDD del parte de hoy en hora de Colombia (el mismo en el dispositivo y en el servidor) */
718
+ declare const codigoParteDiarioHoyCOLOMBIA9612: () => string;
719
+ /** El parte está APROBADO si lo es su último estado o alguno de sus estados (legacy ParteDiario/Components/View.tsx L109-121) */
720
+ declare const esParteDiarioAprobadoCOLOMBIA9612: (parte: ParteDiarioEstadosCOLOMBIA9612) => boolean;
721
+ /**
722
+ * Editable: el parte de hoy (nuevo o existente) y cualquiera que no esté APROBADO, cada uno en su propio Codigo
723
+ * (corrección del bug B6 del legacy, que guardaba siempre en el parte de hoy; decidido 2026-11-04).
724
+ */
725
+ declare const esParteDiarioEditableCOLOMBIA9612: (codigo: string, parte?: ParteDiarioEstadosCOLOMBIA9612) => boolean;
726
+ /** Título de la foto por su orden: la 0 es la principal (legacy ParteDiario/Application/UseCaseUpdateTrabajo.ts L149-160) */
727
+ declare const tituloFotoParteDiarioCOLOMBIA9612: (index: number) => {
728
+ Titulo: string;
729
+ Descripcion: string;
730
+ };
731
+
732
+ /**
733
+ * Reglas de Preliquidar (Asignación) COLOMBIA 9612 compartidas por la PWA y pex-procesos (pre-liquidate-valuation).
734
+ * Legacy: sigo-pwa-mobile Programados/Trabajos/Asignacion (sigo-pwa job/docs/REGLAS_NEGOCIO_COLOMBIA_9612.md §10).
735
+ */
736
+ /** MO cuya cantidad se calcula con SubMO (legacy Asignacion/Infraestructure/AdapterConfigure.ts L31-38) */
737
+ declare const codsMOSubMOCOLOMBIA9612: string[];
738
+ declare const esMOConSubMOCOLOMBIA9612: (codigoMO: string) => boolean;
739
+ /** Cantidad MO = Σ Cantidad × CantidadSMO de la SubMO (legacy Asignacion/Components/SubMO.tsx L65-77) */
740
+ declare const cantidadMOSubMOCOLOMBIA9612: (items: {
741
+ Cantidad: number;
742
+ CantidadSMO: number;
743
+ }[]) => number;
744
+
705
745
  /**
706
746
  * Reglas del parte diario CHILE 9512 compartidas por la PWA (formulario) y pex-procesos (save-daily-report).
707
747
  * Legacy: sigo-pwa-mobile Programados/Trabajos/ParteDiario (sigo-pwa job/docs/REGLAS_NEGOCIO_CHILE_9512.md §6).
@@ -886,7 +926,45 @@ declare const mapeoZonasSimilares: Record<string, string[]>;
886
926
 
887
927
  declare const documentRequirementAltasNVTUnifamiliar: DocumentRequirementDto[];
888
928
  declare const documentRequirementAltasNVTMultifamiliar: DocumentRequirementDto[];
929
+ interface DocumentRequirementAltasNVTParams {
930
+ classification?: AddressClassification;
931
+ /** Nº de homeids (Bauauftrag_ID distintos) del address (KLS_ID) */
932
+ homeIds: number;
933
+ /** La orden tiene el SDU (IM02) agregado por el técnico */
934
+ hasSDU: boolean;
935
+ /** Es la primera orden del address enviada a revisión */
936
+ isFirstOrder: boolean;
937
+ }
938
+ /**
939
+ * Fotos exigidas a una orden AltasNVT para enviarla a revisión / finalizarla.
940
+ * - Roseta TA abierta/cerrada: solo si se instala SDU o MDU, es decir multifamiliar siempre,
941
+ * unifamiliar con más de un homeid siempre y unifamiliar de un homeid solo si el técnico agregó el SDU.
942
+ * - Roseta AP abierta/cerrada: solo en la primera orden del address (KLS_ID) enviada a revisión.
943
+ */
944
+ declare function documentRequirementAltasNVT(params: DocumentRequirementAltasNVTParams): DocumentRequirementDto[];
889
945
 
946
+ /** Códigos de material con regla de obligatoriedad y su nombre para los mensajes */
947
+ declare const materialesAltasNVT: {
948
+ kitSellado: {
949
+ codigo: string;
950
+ nombre: string;
951
+ };
952
+ taponGas: {
953
+ codigo: string;
954
+ nombre: string;
955
+ };
956
+ };
957
+ /** Nº de homeids (Bauauftrag_ID distintos) entre las órdenes del address (KLS_ID) */
958
+ declare const homeIdsAltasNVT: (ordersSameKLS: AltasNVTOrderENTITY[]) => number;
959
+ /** La orden es la primera del address si ninguna otra del mismo KLS_ID está en revisión o finalizada */
960
+ declare const isFirstOrderAltasNVT: (order: AltasNVTOrderENTITY, ordersSameKLS: AltasNVTOrderENTITY[]) => boolean;
961
+ /**
962
+ * Materiales obligatorios de una orden AltasNVT:
963
+ * - Kit de sellado: solo en la primera orden del address (en las siguientes es opcional).
964
+ * - Tapón de gas: como mínimo 1 en cada orden.
965
+ */
966
+ declare function verifyInventoryAltasNVT(order: AltasNVTOrderENTITY, isFirstOrder: boolean, UnprocessableEntityException?: ClassConstructor<Error>): void;
967
+ /** @deprecated Usar verifyInventoryAltasNVT (kit de sellado solo en la primera orden del address) */
890
968
  declare function verifyInventoryFinalize(docs: AltasNVTOrderENTITY[], UnprocessableEntityException?: ClassConstructor<Error>): void;
891
969
 
892
970
  /** Código del material "contador retirado" que se agrega como línea deinstall */
@@ -1249,4 +1327,4 @@ declare function getCookieToken(req: Request<any>, webOrigins: string[]): string
1249
1327
 
1250
1328
  declare function validateUUIDv4Param(BadRequestException: ClassConstructor<Error>, req: Request<any>, _res: Response, next: NextFunction): Promise<void>;
1251
1329
 
1252
- export { ActualizarDataManoObra, ActualizarDataReserva, ActualizarDataResumenLiquidaciones, ActualizarDataResumenLiquidacionesColombia, ActualizarDataResumenValorizacionesAlemania, ActualizarDataTrabajos, AsignacionHelper, BuscarZonaContratista, CalcularResumenHPMOLiquidado, CalcularResumenLiquidaciones, CalcularResumenLiquidacionesColombia, CalcularResumenValorizacionesAlemania, type CantidadMaterialAL04, type CierresPreliquidarAL02, type CierresPreliquidarAL04, CodigosMaterialDuctosAL02, CodigosMaterialDuctosAL04, CodigosMaterialSoplado, CodsMapeoMOMaterial, CodsMapeoMOMaterialNVT01, CodsMapeoMOMaterialSopladoClientes, CodsMapeoMOMaterialSopladoTroncal, CodsMapeoMO_Material_Arquertas, CompararFechas, CurrencyFormat, DEVOLUCION_TR_ESTADOS, DEVOLUCION_TR_MOTIVO_CAMBIO_TURNO, DIRECTORIO_DOCUMENTACION_VEREDA, DocumentacionReplanteo, type ErrorFormularioVereda, type ErrorLineaDevolucionTR, EstadoEspecialidad9612, FIRMA_DESPACHO_ACCIONES, FIRMA_DESPACHO_TIEMPOS, type FirmaDespachoMensajeRespuesta, type FirmaDespachoMensajeSolicitud, type FirmaDespachoSolicitud, FormatearErrorValidacionMOHijas, GemeindeChangeNomenclatura, GetCodigoFechaActual, type IDPContrato, type IDocumentacion, type ILineaValidacion, type IMOAndMaterialsRules, type IMORules, type IMateriales, type IResultadoValidacionMOHijas, type LineaDevolucionTR, MOCantidadNVT01, MOHijasAL04, MOHijasDEPTH, MapeoEspecialidades9612, MapeoMOBOMAL04, MapeoMatBOMAL04, type MatRetiradosType, type MatStockAlmacenType, type MatStockPersonalType$2 as MatStockPersonalType, type MatUtilizadosType$2 as MatUtilizadosType, type MaterialRequeridoAL04, type MoUoType$2 as MoUoType, ModelDataFlujosDocumentacionReplanteo, type ModoMaterialesAL04, ObtenerMONoReservada, ObtenerPrecioContratistaVigente, ObtenerZonaAsignada, type ResumenLiquidacionesType, type ResumenLiquidacionesTypeChile, type ResumenLiquidacionesTypeColombia, SEGMENT_TY, SOMACYL_CODIGO_CONTADOR_RETIRADO, SOMACYL_PHOTO_POSITIONS, type SaldoStockPersonal, type SeccionFormularioVereda, type SomacylPhotoKey, type StockEntregableDevolucionTR, type TARGET, TOLERANCIA_M2_VEREDA, type TipoPreliquidacionAL02, type TipoPreliquidacionAL04, UpdateNodosDocDP, ValidarRelacionMOHijasAL04, ValorizacionHelper, avisoM2Vereda, builSystemOption, buildDataMOFromMaterialRules, buildDataMaterialsRule, buildKeyMO, buildMenu, buildReservaMOJobMajorProjectsAlemaniaAL02, buildReservaMOJobMajorProjectsAlemaniaAL04, buildTenantCollectionName, calcularSaldoStockPersonal, calcularTotalMaterialValorizacionPeru9112, cantidadFijaMOAL04, cantidadMaterialAL04, checkAndBuildMaterialsFromStock, checkMaterialAvailability, codBalizaAL02, codBalizaAL04, codBalizaPreliquidarAL04, codBaremoUnicoDPAL04, codClientes, codIssueByPeriodoAL02, codMOAsfaltoHijasAL04, codMOAsfaltoMadreAL04, codMOClientesAL02, codMOClientesAL02Asfaltado, codMOClientesAL02OC, codMOClientesAL02Soplado, codMOClientes_ReglaLiquidacion1, codMODROPAL04, codMODROPAL04OC, codMODROPAL04Soplado, codMOExcluidos, codMOFTTFAL04, codMONoClientesAL02, codMONoClientesAL02Asfaltado, codMONoClientesAL02OC, codMONoClientesAL02Soplado, codMONoClientes_ReglaLiquidacion1, codMONoPreliquidablesAL04, codMOOcultosAL04, codMOPreliquidarTroncalAL02, codMOPreliquidarTroncalAL04, codMOPublico, codMOTroncalAL02, codMOTroncalAL02Asfaltado, codMOTroncalAL02OC, codMOTroncalAL02Soplado, codMOTroncalAL04, codMOTroncalAL04Asfaltado, codMOTroncalAL04Issue, codMOTroncalAL04OC, codMOTroncalAL04Soplado, codMOTroncalHistoricoAL02, codMOTroncal_ReglaLiquidacion1, codMaterialesOcultosAL04, codNoCliente, codSopladoRD, codigoParteDiarioHoyCHILE9512, codigosBaremosSubcontrataAL02, codigosMOT1_F2, codigosMaterialDuctos, codigosMaterialUGG, codigosSopladoHP, collections, consumirStockPersonal, convertDates, dataFlujosHomePass, db_default, db_root, documentRequirementAltasNVTMultifamiliar, documentRequirementAltasNVTUnifamiliar, documentRequirementDesmonteVereda, documentRequirementVereda, empresas, esAsignacionPreliquidableAL02, esAsignacionPreliquidableAL04, esCadenaFechaISOValida, esMaterialDuctoAL04, esObjetoFecha, esParteDiarioAprobadoCHILE9512, esParteDiarioEditableCHILE9512, estadoRechazadaPorMetraje, estadoRechazadaPorMetrajeAL04, firmaDespachoCanalRespuesta, firmaDespachoCanalSolicitud, formatCurrencyV1, formatNumberSmart, formatNumberV1, formatPercentageV1, generateUniqueNumber, generateUniqueNumberArray, getCaptureDateSomacyl, getChannelName, getContainerName, getCookieToken, getDBName, getDateInTimeZone, getKeyRedisSortedSet, getModelDataAdicional, getNextID_Amap, getNextID_AsignacionValorizacion, getNextID_Valorizacion, getPrecioContratista, getPriceMaterial, getQueueName, getQueueNameSaveOneNotification, getRequestOrigin, hashCode, isValidDate, isValidPartialEntity, logTiempoProceso, mapaDPContratoPrecioFullAL02, mapaEstadoObraFaseAL02, mapaMOMaterialAL02, mapaMOMaterialAL04, mapaReglaSopladoClientes, mapaReglaSopladoTroncal, mapeoZonasSimilares, materialesAutomaticosAL04, materialesSeleccionablesAL04, modoMaterialesAL04, motivoConsumoAlmacenAL04, motivoConsumoMaterialAutomaticoDuctos, newCodMOTroncalReglaLiquidacion1, obtenerCodMOHomePass, obtenerCodMOHomePassAL04, obtenerDocumentacionClientes, obtenerDocumentacionNoClientes, obtenerEspecialidadesCerradas, obtenerEspecialidadesCerradasAL04, obtenerPrecioContratistaMaterial, obtenerPrecioManoObraAL02, obtenerPrecioManoObraAL04, obtenerTipoYCodigoMO, paisMap, parseDuplicateKeyError, prorratearMaterialesAL04, requisitosArchivoVereda, roundNumber, searchCurrentContractorSpecialtyPrice, setColModels, setContext, subMaterialesAL04, throwDevolucionTRError, throwSomacylError, timeZoneCHILE9512, tituloFotoParteDiarioCHILE9512, updatePriceContractorMOAL02, updatePriceContractorMOAL04, updatePriceMOAL02, updatePriceMOAL04, updatePricePBBudgetAlemaniaAL02, updatePricePBBudgetAlemaniaAL04, uuidRegex, validarAsfaltoAL04, validarFormularioCivil, validarLineasDevolucionTR, validateNoLookup, validateUUIDv4Param, verifyDetailsFinalizeSomacyl, verifyFiles, verifyInventoryFinalize, verifyInventoryFinalizeSomacyl, verifyInventoryLimitsSomacyl, verifyLineasDevolucionTR, verifyPhotosFinalizeSomacyl, verifyPhotosNotFinalizedSomacyl };
1330
+ export { ActualizarDataManoObra, ActualizarDataReserva, ActualizarDataResumenLiquidaciones, ActualizarDataResumenLiquidacionesColombia, ActualizarDataResumenValorizacionesAlemania, ActualizarDataTrabajos, AsignacionHelper, BuscarZonaContratista, CalcularResumenHPMOLiquidado, CalcularResumenLiquidaciones, CalcularResumenLiquidacionesColombia, CalcularResumenValorizacionesAlemania, type CantidadMaterialAL04, type CierresPreliquidarAL02, type CierresPreliquidarAL04, CodigosMaterialDuctosAL02, CodigosMaterialDuctosAL04, CodigosMaterialSoplado, CodsMapeoMOMaterial, CodsMapeoMOMaterialNVT01, CodsMapeoMOMaterialSopladoClientes, CodsMapeoMOMaterialSopladoTroncal, CodsMapeoMO_Material_Arquertas, CompararFechas, CurrencyFormat, DEVOLUCION_TR_ESTADOS, DEVOLUCION_TR_MOTIVO_CAMBIO_TURNO, DIRECTORIO_DOCUMENTACION_VEREDA, type DocumentRequirementAltasNVTParams, DocumentacionReplanteo, type ErrorFormularioVereda, type ErrorLineaDevolucionTR, EstadoEspecialidad9612, FIRMA_DESPACHO_ACCIONES, FIRMA_DESPACHO_TIEMPOS, type FirmaDespachoMensajeRespuesta, type FirmaDespachoMensajeSolicitud, type FirmaDespachoSolicitud, FormatearErrorValidacionMOHijas, GemeindeChangeNomenclatura, GetCodigoFechaActual, type IDPContrato, type IDocumentacion, type ILineaValidacion, type IMOAndMaterialsRules, type IMORules, type IMateriales, type IResultadoValidacionMOHijas, type LineaDevolucionTR, MOCantidadNVT01, MOHijasAL04, MOHijasDEPTH, MapeoEspecialidades9612, MapeoMOBOMAL04, MapeoMatBOMAL04, type MatRetiradosType, type MatStockAlmacenType, type MatStockPersonalType$2 as MatStockPersonalType, type MatUtilizadosType$2 as MatUtilizadosType, type MaterialRequeridoAL04, type MoUoType$2 as MoUoType, ModelDataFlujosDocumentacionReplanteo, type ModoMaterialesAL04, ObtenerMONoReservada, ObtenerPrecioContratistaVigente, ObtenerZonaAsignada, type ResumenLiquidacionesType, type ResumenLiquidacionesTypeChile, type ResumenLiquidacionesTypeColombia, SEGMENT_TY, SOMACYL_CODIGO_CONTADOR_RETIRADO, SOMACYL_PHOTO_POSITIONS, type SaldoStockPersonal, type SeccionFormularioVereda, type SomacylPhotoKey, type StockEntregableDevolucionTR, type TARGET, TOLERANCIA_M2_VEREDA, type TipoPreliquidacionAL02, type TipoPreliquidacionAL04, UpdateNodosDocDP, ValidarRelacionMOHijasAL04, ValorizacionHelper, avisoM2Vereda, builSystemOption, buildDataMOFromMaterialRules, buildDataMaterialsRule, buildKeyMO, buildMenu, buildReservaMOJobMajorProjectsAlemaniaAL02, buildReservaMOJobMajorProjectsAlemaniaAL04, buildTenantCollectionName, calcularSaldoStockPersonal, calcularTotalMaterialValorizacionPeru9112, cantidadFijaMOAL04, cantidadMOSubMOCOLOMBIA9612, cantidadMaterialAL04, checkAndBuildMaterialsFromStock, checkMaterialAvailability, codBalizaAL02, codBalizaAL04, codBalizaPreliquidarAL04, codBaremoUnicoDPAL04, codClientes, codIssueByPeriodoAL02, codMOAsfaltoHijasAL04, codMOAsfaltoMadreAL04, codMOClientesAL02, codMOClientesAL02Asfaltado, codMOClientesAL02OC, codMOClientesAL02Soplado, codMOClientes_ReglaLiquidacion1, codMODROPAL04, codMODROPAL04OC, codMODROPAL04Soplado, codMOExcluidos, codMOFTTFAL04, codMONoClientesAL02, codMONoClientesAL02Asfaltado, codMONoClientesAL02OC, codMONoClientesAL02Soplado, codMONoClientes_ReglaLiquidacion1, codMONoPreliquidablesAL04, codMOOcultosAL04, codMOPreliquidarTroncalAL02, codMOPreliquidarTroncalAL04, codMOPublico, codMOTroncalAL02, codMOTroncalAL02Asfaltado, codMOTroncalAL02OC, codMOTroncalAL02Soplado, codMOTroncalAL04, codMOTroncalAL04Asfaltado, codMOTroncalAL04Issue, codMOTroncalAL04OC, codMOTroncalAL04Soplado, codMOTroncalHistoricoAL02, codMOTroncal_ReglaLiquidacion1, codMaterialesOcultosAL04, codNoCliente, codSopladoRD, codigoParteDiarioHoyCHILE9512, codigoParteDiarioHoyCOLOMBIA9612, codigosBaremosSubcontrataAL02, codigosMOT1_F2, codigosMaterialDuctos, codigosMaterialUGG, codigosSopladoHP, codsMOSubMOCOLOMBIA9612, collections, consumirStockPersonal, convertDates, dataFlujosHomePass, db_default, db_root, documentRequirementAltasNVT, documentRequirementAltasNVTMultifamiliar, documentRequirementAltasNVTUnifamiliar, documentRequirementDesmonteVereda, documentRequirementVereda, empresas, esAsignacionPreliquidableAL02, esAsignacionPreliquidableAL04, esCadenaFechaISOValida, esMOConSubMOCOLOMBIA9612, esMaterialDuctoAL04, esObjetoFecha, esParteDiarioAprobadoCHILE9512, esParteDiarioAprobadoCOLOMBIA9612, esParteDiarioEditableCHILE9512, esParteDiarioEditableCOLOMBIA9612, estadoRechazadaPorMetraje, estadoRechazadaPorMetrajeAL04, firmaDespachoCanalRespuesta, firmaDespachoCanalSolicitud, formatCurrencyV1, formatNumberSmart, formatNumberV1, formatPercentageV1, generateUniqueNumber, generateUniqueNumberArray, getCaptureDateSomacyl, getChannelName, getContainerName, getCookieToken, getDBName, getDateInTimeZone, getKeyRedisSortedSet, getModelDataAdicional, getNextID_Amap, getNextID_AsignacionValorizacion, getNextID_Valorizacion, getPrecioContratista, getPriceMaterial, getQueueName, getQueueNameSaveOneNotification, getRequestOrigin, hashCode, homeIdsAltasNVT, isFirstOrderAltasNVT, isValidDate, isValidPartialEntity, logTiempoProceso, mapaDPContratoPrecioFullAL02, mapaEstadoObraFaseAL02, mapaMOMaterialAL02, mapaMOMaterialAL04, mapaReglaSopladoClientes, mapaReglaSopladoTroncal, mapeoZonasSimilares, materialesAltasNVT, materialesAutomaticosAL04, materialesSeleccionablesAL04, modoMaterialesAL04, motivoConsumoAlmacenAL04, motivoConsumoMaterialAutomaticoDuctos, newCodMOTroncalReglaLiquidacion1, obtenerCodMOHomePass, obtenerCodMOHomePassAL04, obtenerDocumentacionClientes, obtenerDocumentacionNoClientes, obtenerEspecialidadesCerradas, obtenerEspecialidadesCerradasAL04, obtenerPrecioContratistaMaterial, obtenerPrecioManoObraAL02, obtenerPrecioManoObraAL04, obtenerTipoYCodigoMO, paisMap, parseDuplicateKeyError, prorratearMaterialesAL04, requisitosArchivoVereda, roundNumber, searchCurrentContractorSpecialtyPrice, setColModels, setContext, subMaterialesAL04, throwDevolucionTRError, throwSomacylError, timeZoneCHILE9512, timeZoneCOLOMBIA9612, tituloFotoParteDiarioCHILE9512, tituloFotoParteDiarioCOLOMBIA9612, updatePriceContractorMOAL02, updatePriceContractorMOAL04, updatePriceMOAL02, updatePriceMOAL04, updatePricePBBudgetAlemaniaAL02, updatePricePBBudgetAlemaniaAL04, uuidRegex, validarAsfaltoAL04, validarFormularioCivil, validarLineasDevolucionTR, validateNoLookup, validateUUIDv4Param, verifyDetailsFinalizeSomacyl, verifyFiles, verifyInventoryAltasNVT, verifyInventoryFinalize, verifyInventoryFinalizeSomacyl, verifyInventoryLimitsSomacyl, verifyLineasDevolucionTR, verifyPhotosFinalizeSomacyl, verifyPhotosNotFinalizedSomacyl };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as sigo_entities from 'sigo-entities';
2
- import { ManoObraENTITY, ReservaENTITY, ItemDetalleLogisticaDTO, CodigoNombreUMDTO, PrecioContratistaMOAL04ENTITY, ManoObraGlobalENTITY, ValorizacionManoObraDTO, PrecioContratistaMOAL02ENTITY, HomePassDTO, FlujoDocDTO, NodoDocDTO, DocumentacionPEXENTITY, PrecioEspecialidadENTITY, ObraChile9512ENTITY, TrabajoAlemaniaENTITY, ValorizacionAlemaniaDTO, ValorizacionDTO, StockPersonalENTITY, StockAlmacenENTITY, ConsumoMaterialAlemaniaENTITY, ValorizacionesDTO, PrecioContratistaMaterialENTITY, TrabajoENTITY, ActividadesDTO, PreciosVigentesDTO, ContratoOTENTITY, DetalleChileValorizacionMODTO, PrecioMaterialENTITY, DocumentRequirementDto, AltasNVTOrderENTITY, MaterialesSomacylDTO, SomacylEntregablesDTO, FilesDocDTO, MetradosVeredaDTO, BtAlpPluzVeredaAsignacionENTITY, SalidaAlmacenENTITY, CodigoNombreDTO, SystemOptionEntity, MenuDto } from 'sigo-entities';
2
+ import { ManoObraENTITY, ReservaENTITY, ItemDetalleLogisticaDTO, CodigoNombreUMDTO, PrecioContratistaMOAL04ENTITY, ManoObraGlobalENTITY, ValorizacionManoObraDTO, PrecioContratistaMOAL02ENTITY, HomePassDTO, FlujoDocDTO, NodoDocDTO, DocumentacionPEXENTITY, PrecioEspecialidadENTITY, ObraChile9512ENTITY, TrabajoAlemaniaENTITY, ValorizacionAlemaniaDTO, ValorizacionDTO, StockPersonalENTITY, StockAlmacenENTITY, ConsumoMaterialAlemaniaENTITY, ValorizacionesDTO, PrecioContratistaMaterialENTITY, TrabajoENTITY, ActividadesDTO, PreciosVigentesDTO, ContratoOTENTITY, DetalleChileValorizacionMODTO, PrecioMaterialENTITY, AddressClassification, DocumentRequirementDto, AltasNVTOrderENTITY, MaterialesSomacylDTO, SomacylEntregablesDTO, FilesDocDTO, MetradosVeredaDTO, BtAlpPluzVeredaAsignacionENTITY, SalidaAlmacenENTITY, CodigoNombreDTO, SystemOptionEntity, MenuDto } from 'sigo-entities';
3
3
  import { ClassConstructor } from 'class-transformer';
4
4
  import { Request, Response, NextFunction } from 'express';
5
5
 
@@ -702,6 +702,46 @@ interface iMapaEspecialidades9612 {
702
702
  }
703
703
  declare const MapeoEspecialidades9612: iMapaEspecialidades9612[];
704
704
 
705
+ /**
706
+ * Reglas del parte diario COLOMBIA 9612 compartidas por la PWA (formulario) y pex-procesos (save-daily-report).
707
+ * Legacy: sigo-pwa-mobile Programados/Trabajos/ParteDiario (sigo-pwa job/docs/REGLAS_NEGOCIO_COLOMBIA_9612.md §6).
708
+ */
709
+ declare const timeZoneCOLOMBIA9612 = "America/Bogota";
710
+ interface EstadoParteDiarioCOLOMBIA9612 {
711
+ Descripcion: string;
712
+ }
713
+ interface ParteDiarioEstadosCOLOMBIA9612 {
714
+ UltimoEstadoInterno?: EstadoParteDiarioCOLOMBIA9612;
715
+ EstadosInternos?: EstadoParteDiarioCOLOMBIA9612[];
716
+ }
717
+ /** Código YYYYMMDD del parte de hoy en hora de Colombia (el mismo en el dispositivo y en el servidor) */
718
+ declare const codigoParteDiarioHoyCOLOMBIA9612: () => string;
719
+ /** El parte está APROBADO si lo es su último estado o alguno de sus estados (legacy ParteDiario/Components/View.tsx L109-121) */
720
+ declare const esParteDiarioAprobadoCOLOMBIA9612: (parte: ParteDiarioEstadosCOLOMBIA9612) => boolean;
721
+ /**
722
+ * Editable: el parte de hoy (nuevo o existente) y cualquiera que no esté APROBADO, cada uno en su propio Codigo
723
+ * (corrección del bug B6 del legacy, que guardaba siempre en el parte de hoy; decidido 2026-11-04).
724
+ */
725
+ declare const esParteDiarioEditableCOLOMBIA9612: (codigo: string, parte?: ParteDiarioEstadosCOLOMBIA9612) => boolean;
726
+ /** Título de la foto por su orden: la 0 es la principal (legacy ParteDiario/Application/UseCaseUpdateTrabajo.ts L149-160) */
727
+ declare const tituloFotoParteDiarioCOLOMBIA9612: (index: number) => {
728
+ Titulo: string;
729
+ Descripcion: string;
730
+ };
731
+
732
+ /**
733
+ * Reglas de Preliquidar (Asignación) COLOMBIA 9612 compartidas por la PWA y pex-procesos (pre-liquidate-valuation).
734
+ * Legacy: sigo-pwa-mobile Programados/Trabajos/Asignacion (sigo-pwa job/docs/REGLAS_NEGOCIO_COLOMBIA_9612.md §10).
735
+ */
736
+ /** MO cuya cantidad se calcula con SubMO (legacy Asignacion/Infraestructure/AdapterConfigure.ts L31-38) */
737
+ declare const codsMOSubMOCOLOMBIA9612: string[];
738
+ declare const esMOConSubMOCOLOMBIA9612: (codigoMO: string) => boolean;
739
+ /** Cantidad MO = Σ Cantidad × CantidadSMO de la SubMO (legacy Asignacion/Components/SubMO.tsx L65-77) */
740
+ declare const cantidadMOSubMOCOLOMBIA9612: (items: {
741
+ Cantidad: number;
742
+ CantidadSMO: number;
743
+ }[]) => number;
744
+
705
745
  /**
706
746
  * Reglas del parte diario CHILE 9512 compartidas por la PWA (formulario) y pex-procesos (save-daily-report).
707
747
  * Legacy: sigo-pwa-mobile Programados/Trabajos/ParteDiario (sigo-pwa job/docs/REGLAS_NEGOCIO_CHILE_9512.md §6).
@@ -886,7 +926,45 @@ declare const mapeoZonasSimilares: Record<string, string[]>;
886
926
 
887
927
  declare const documentRequirementAltasNVTUnifamiliar: DocumentRequirementDto[];
888
928
  declare const documentRequirementAltasNVTMultifamiliar: DocumentRequirementDto[];
929
+ interface DocumentRequirementAltasNVTParams {
930
+ classification?: AddressClassification;
931
+ /** Nº de homeids (Bauauftrag_ID distintos) del address (KLS_ID) */
932
+ homeIds: number;
933
+ /** La orden tiene el SDU (IM02) agregado por el técnico */
934
+ hasSDU: boolean;
935
+ /** Es la primera orden del address enviada a revisión */
936
+ isFirstOrder: boolean;
937
+ }
938
+ /**
939
+ * Fotos exigidas a una orden AltasNVT para enviarla a revisión / finalizarla.
940
+ * - Roseta TA abierta/cerrada: solo si se instala SDU o MDU, es decir multifamiliar siempre,
941
+ * unifamiliar con más de un homeid siempre y unifamiliar de un homeid solo si el técnico agregó el SDU.
942
+ * - Roseta AP abierta/cerrada: solo en la primera orden del address (KLS_ID) enviada a revisión.
943
+ */
944
+ declare function documentRequirementAltasNVT(params: DocumentRequirementAltasNVTParams): DocumentRequirementDto[];
889
945
 
946
+ /** Códigos de material con regla de obligatoriedad y su nombre para los mensajes */
947
+ declare const materialesAltasNVT: {
948
+ kitSellado: {
949
+ codigo: string;
950
+ nombre: string;
951
+ };
952
+ taponGas: {
953
+ codigo: string;
954
+ nombre: string;
955
+ };
956
+ };
957
+ /** Nº de homeids (Bauauftrag_ID distintos) entre las órdenes del address (KLS_ID) */
958
+ declare const homeIdsAltasNVT: (ordersSameKLS: AltasNVTOrderENTITY[]) => number;
959
+ /** La orden es la primera del address si ninguna otra del mismo KLS_ID está en revisión o finalizada */
960
+ declare const isFirstOrderAltasNVT: (order: AltasNVTOrderENTITY, ordersSameKLS: AltasNVTOrderENTITY[]) => boolean;
961
+ /**
962
+ * Materiales obligatorios de una orden AltasNVT:
963
+ * - Kit de sellado: solo en la primera orden del address (en las siguientes es opcional).
964
+ * - Tapón de gas: como mínimo 1 en cada orden.
965
+ */
966
+ declare function verifyInventoryAltasNVT(order: AltasNVTOrderENTITY, isFirstOrder: boolean, UnprocessableEntityException?: ClassConstructor<Error>): void;
967
+ /** @deprecated Usar verifyInventoryAltasNVT (kit de sellado solo en la primera orden del address) */
890
968
  declare function verifyInventoryFinalize(docs: AltasNVTOrderENTITY[], UnprocessableEntityException?: ClassConstructor<Error>): void;
891
969
 
892
970
  /** Código del material "contador retirado" que se agrega como línea deinstall */
@@ -1249,4 +1327,4 @@ declare function getCookieToken(req: Request<any>, webOrigins: string[]): string
1249
1327
 
1250
1328
  declare function validateUUIDv4Param(BadRequestException: ClassConstructor<Error>, req: Request<any>, _res: Response, next: NextFunction): Promise<void>;
1251
1329
 
1252
- export { ActualizarDataManoObra, ActualizarDataReserva, ActualizarDataResumenLiquidaciones, ActualizarDataResumenLiquidacionesColombia, ActualizarDataResumenValorizacionesAlemania, ActualizarDataTrabajos, AsignacionHelper, BuscarZonaContratista, CalcularResumenHPMOLiquidado, CalcularResumenLiquidaciones, CalcularResumenLiquidacionesColombia, CalcularResumenValorizacionesAlemania, type CantidadMaterialAL04, type CierresPreliquidarAL02, type CierresPreliquidarAL04, CodigosMaterialDuctosAL02, CodigosMaterialDuctosAL04, CodigosMaterialSoplado, CodsMapeoMOMaterial, CodsMapeoMOMaterialNVT01, CodsMapeoMOMaterialSopladoClientes, CodsMapeoMOMaterialSopladoTroncal, CodsMapeoMO_Material_Arquertas, CompararFechas, CurrencyFormat, DEVOLUCION_TR_ESTADOS, DEVOLUCION_TR_MOTIVO_CAMBIO_TURNO, DIRECTORIO_DOCUMENTACION_VEREDA, DocumentacionReplanteo, type ErrorFormularioVereda, type ErrorLineaDevolucionTR, EstadoEspecialidad9612, FIRMA_DESPACHO_ACCIONES, FIRMA_DESPACHO_TIEMPOS, type FirmaDespachoMensajeRespuesta, type FirmaDespachoMensajeSolicitud, type FirmaDespachoSolicitud, FormatearErrorValidacionMOHijas, GemeindeChangeNomenclatura, GetCodigoFechaActual, type IDPContrato, type IDocumentacion, type ILineaValidacion, type IMOAndMaterialsRules, type IMORules, type IMateriales, type IResultadoValidacionMOHijas, type LineaDevolucionTR, MOCantidadNVT01, MOHijasAL04, MOHijasDEPTH, MapeoEspecialidades9612, MapeoMOBOMAL04, MapeoMatBOMAL04, type MatRetiradosType, type MatStockAlmacenType, type MatStockPersonalType$2 as MatStockPersonalType, type MatUtilizadosType$2 as MatUtilizadosType, type MaterialRequeridoAL04, type MoUoType$2 as MoUoType, ModelDataFlujosDocumentacionReplanteo, type ModoMaterialesAL04, ObtenerMONoReservada, ObtenerPrecioContratistaVigente, ObtenerZonaAsignada, type ResumenLiquidacionesType, type ResumenLiquidacionesTypeChile, type ResumenLiquidacionesTypeColombia, SEGMENT_TY, SOMACYL_CODIGO_CONTADOR_RETIRADO, SOMACYL_PHOTO_POSITIONS, type SaldoStockPersonal, type SeccionFormularioVereda, type SomacylPhotoKey, type StockEntregableDevolucionTR, type TARGET, TOLERANCIA_M2_VEREDA, type TipoPreliquidacionAL02, type TipoPreliquidacionAL04, UpdateNodosDocDP, ValidarRelacionMOHijasAL04, ValorizacionHelper, avisoM2Vereda, builSystemOption, buildDataMOFromMaterialRules, buildDataMaterialsRule, buildKeyMO, buildMenu, buildReservaMOJobMajorProjectsAlemaniaAL02, buildReservaMOJobMajorProjectsAlemaniaAL04, buildTenantCollectionName, calcularSaldoStockPersonal, calcularTotalMaterialValorizacionPeru9112, cantidadFijaMOAL04, cantidadMaterialAL04, checkAndBuildMaterialsFromStock, checkMaterialAvailability, codBalizaAL02, codBalizaAL04, codBalizaPreliquidarAL04, codBaremoUnicoDPAL04, codClientes, codIssueByPeriodoAL02, codMOAsfaltoHijasAL04, codMOAsfaltoMadreAL04, codMOClientesAL02, codMOClientesAL02Asfaltado, codMOClientesAL02OC, codMOClientesAL02Soplado, codMOClientes_ReglaLiquidacion1, codMODROPAL04, codMODROPAL04OC, codMODROPAL04Soplado, codMOExcluidos, codMOFTTFAL04, codMONoClientesAL02, codMONoClientesAL02Asfaltado, codMONoClientesAL02OC, codMONoClientesAL02Soplado, codMONoClientes_ReglaLiquidacion1, codMONoPreliquidablesAL04, codMOOcultosAL04, codMOPreliquidarTroncalAL02, codMOPreliquidarTroncalAL04, codMOPublico, codMOTroncalAL02, codMOTroncalAL02Asfaltado, codMOTroncalAL02OC, codMOTroncalAL02Soplado, codMOTroncalAL04, codMOTroncalAL04Asfaltado, codMOTroncalAL04Issue, codMOTroncalAL04OC, codMOTroncalAL04Soplado, codMOTroncalHistoricoAL02, codMOTroncal_ReglaLiquidacion1, codMaterialesOcultosAL04, codNoCliente, codSopladoRD, codigoParteDiarioHoyCHILE9512, codigosBaremosSubcontrataAL02, codigosMOT1_F2, codigosMaterialDuctos, codigosMaterialUGG, codigosSopladoHP, collections, consumirStockPersonal, convertDates, dataFlujosHomePass, db_default, db_root, documentRequirementAltasNVTMultifamiliar, documentRequirementAltasNVTUnifamiliar, documentRequirementDesmonteVereda, documentRequirementVereda, empresas, esAsignacionPreliquidableAL02, esAsignacionPreliquidableAL04, esCadenaFechaISOValida, esMaterialDuctoAL04, esObjetoFecha, esParteDiarioAprobadoCHILE9512, esParteDiarioEditableCHILE9512, estadoRechazadaPorMetraje, estadoRechazadaPorMetrajeAL04, firmaDespachoCanalRespuesta, firmaDespachoCanalSolicitud, formatCurrencyV1, formatNumberSmart, formatNumberV1, formatPercentageV1, generateUniqueNumber, generateUniqueNumberArray, getCaptureDateSomacyl, getChannelName, getContainerName, getCookieToken, getDBName, getDateInTimeZone, getKeyRedisSortedSet, getModelDataAdicional, getNextID_Amap, getNextID_AsignacionValorizacion, getNextID_Valorizacion, getPrecioContratista, getPriceMaterial, getQueueName, getQueueNameSaveOneNotification, getRequestOrigin, hashCode, isValidDate, isValidPartialEntity, logTiempoProceso, mapaDPContratoPrecioFullAL02, mapaEstadoObraFaseAL02, mapaMOMaterialAL02, mapaMOMaterialAL04, mapaReglaSopladoClientes, mapaReglaSopladoTroncal, mapeoZonasSimilares, materialesAutomaticosAL04, materialesSeleccionablesAL04, modoMaterialesAL04, motivoConsumoAlmacenAL04, motivoConsumoMaterialAutomaticoDuctos, newCodMOTroncalReglaLiquidacion1, obtenerCodMOHomePass, obtenerCodMOHomePassAL04, obtenerDocumentacionClientes, obtenerDocumentacionNoClientes, obtenerEspecialidadesCerradas, obtenerEspecialidadesCerradasAL04, obtenerPrecioContratistaMaterial, obtenerPrecioManoObraAL02, obtenerPrecioManoObraAL04, obtenerTipoYCodigoMO, paisMap, parseDuplicateKeyError, prorratearMaterialesAL04, requisitosArchivoVereda, roundNumber, searchCurrentContractorSpecialtyPrice, setColModels, setContext, subMaterialesAL04, throwDevolucionTRError, throwSomacylError, timeZoneCHILE9512, tituloFotoParteDiarioCHILE9512, updatePriceContractorMOAL02, updatePriceContractorMOAL04, updatePriceMOAL02, updatePriceMOAL04, updatePricePBBudgetAlemaniaAL02, updatePricePBBudgetAlemaniaAL04, uuidRegex, validarAsfaltoAL04, validarFormularioCivil, validarLineasDevolucionTR, validateNoLookup, validateUUIDv4Param, verifyDetailsFinalizeSomacyl, verifyFiles, verifyInventoryFinalize, verifyInventoryFinalizeSomacyl, verifyInventoryLimitsSomacyl, verifyLineasDevolucionTR, verifyPhotosFinalizeSomacyl, verifyPhotosNotFinalizedSomacyl };
1330
+ export { ActualizarDataManoObra, ActualizarDataReserva, ActualizarDataResumenLiquidaciones, ActualizarDataResumenLiquidacionesColombia, ActualizarDataResumenValorizacionesAlemania, ActualizarDataTrabajos, AsignacionHelper, BuscarZonaContratista, CalcularResumenHPMOLiquidado, CalcularResumenLiquidaciones, CalcularResumenLiquidacionesColombia, CalcularResumenValorizacionesAlemania, type CantidadMaterialAL04, type CierresPreliquidarAL02, type CierresPreliquidarAL04, CodigosMaterialDuctosAL02, CodigosMaterialDuctosAL04, CodigosMaterialSoplado, CodsMapeoMOMaterial, CodsMapeoMOMaterialNVT01, CodsMapeoMOMaterialSopladoClientes, CodsMapeoMOMaterialSopladoTroncal, CodsMapeoMO_Material_Arquertas, CompararFechas, CurrencyFormat, DEVOLUCION_TR_ESTADOS, DEVOLUCION_TR_MOTIVO_CAMBIO_TURNO, DIRECTORIO_DOCUMENTACION_VEREDA, type DocumentRequirementAltasNVTParams, DocumentacionReplanteo, type ErrorFormularioVereda, type ErrorLineaDevolucionTR, EstadoEspecialidad9612, FIRMA_DESPACHO_ACCIONES, FIRMA_DESPACHO_TIEMPOS, type FirmaDespachoMensajeRespuesta, type FirmaDespachoMensajeSolicitud, type FirmaDespachoSolicitud, FormatearErrorValidacionMOHijas, GemeindeChangeNomenclatura, GetCodigoFechaActual, type IDPContrato, type IDocumentacion, type ILineaValidacion, type IMOAndMaterialsRules, type IMORules, type IMateriales, type IResultadoValidacionMOHijas, type LineaDevolucionTR, MOCantidadNVT01, MOHijasAL04, MOHijasDEPTH, MapeoEspecialidades9612, MapeoMOBOMAL04, MapeoMatBOMAL04, type MatRetiradosType, type MatStockAlmacenType, type MatStockPersonalType$2 as MatStockPersonalType, type MatUtilizadosType$2 as MatUtilizadosType, type MaterialRequeridoAL04, type MoUoType$2 as MoUoType, ModelDataFlujosDocumentacionReplanteo, type ModoMaterialesAL04, ObtenerMONoReservada, ObtenerPrecioContratistaVigente, ObtenerZonaAsignada, type ResumenLiquidacionesType, type ResumenLiquidacionesTypeChile, type ResumenLiquidacionesTypeColombia, SEGMENT_TY, SOMACYL_CODIGO_CONTADOR_RETIRADO, SOMACYL_PHOTO_POSITIONS, type SaldoStockPersonal, type SeccionFormularioVereda, type SomacylPhotoKey, type StockEntregableDevolucionTR, type TARGET, TOLERANCIA_M2_VEREDA, type TipoPreliquidacionAL02, type TipoPreliquidacionAL04, UpdateNodosDocDP, ValidarRelacionMOHijasAL04, ValorizacionHelper, avisoM2Vereda, builSystemOption, buildDataMOFromMaterialRules, buildDataMaterialsRule, buildKeyMO, buildMenu, buildReservaMOJobMajorProjectsAlemaniaAL02, buildReservaMOJobMajorProjectsAlemaniaAL04, buildTenantCollectionName, calcularSaldoStockPersonal, calcularTotalMaterialValorizacionPeru9112, cantidadFijaMOAL04, cantidadMOSubMOCOLOMBIA9612, cantidadMaterialAL04, checkAndBuildMaterialsFromStock, checkMaterialAvailability, codBalizaAL02, codBalizaAL04, codBalizaPreliquidarAL04, codBaremoUnicoDPAL04, codClientes, codIssueByPeriodoAL02, codMOAsfaltoHijasAL04, codMOAsfaltoMadreAL04, codMOClientesAL02, codMOClientesAL02Asfaltado, codMOClientesAL02OC, codMOClientesAL02Soplado, codMOClientes_ReglaLiquidacion1, codMODROPAL04, codMODROPAL04OC, codMODROPAL04Soplado, codMOExcluidos, codMOFTTFAL04, codMONoClientesAL02, codMONoClientesAL02Asfaltado, codMONoClientesAL02OC, codMONoClientesAL02Soplado, codMONoClientes_ReglaLiquidacion1, codMONoPreliquidablesAL04, codMOOcultosAL04, codMOPreliquidarTroncalAL02, codMOPreliquidarTroncalAL04, codMOPublico, codMOTroncalAL02, codMOTroncalAL02Asfaltado, codMOTroncalAL02OC, codMOTroncalAL02Soplado, codMOTroncalAL04, codMOTroncalAL04Asfaltado, codMOTroncalAL04Issue, codMOTroncalAL04OC, codMOTroncalAL04Soplado, codMOTroncalHistoricoAL02, codMOTroncal_ReglaLiquidacion1, codMaterialesOcultosAL04, codNoCliente, codSopladoRD, codigoParteDiarioHoyCHILE9512, codigoParteDiarioHoyCOLOMBIA9612, codigosBaremosSubcontrataAL02, codigosMOT1_F2, codigosMaterialDuctos, codigosMaterialUGG, codigosSopladoHP, codsMOSubMOCOLOMBIA9612, collections, consumirStockPersonal, convertDates, dataFlujosHomePass, db_default, db_root, documentRequirementAltasNVT, documentRequirementAltasNVTMultifamiliar, documentRequirementAltasNVTUnifamiliar, documentRequirementDesmonteVereda, documentRequirementVereda, empresas, esAsignacionPreliquidableAL02, esAsignacionPreliquidableAL04, esCadenaFechaISOValida, esMOConSubMOCOLOMBIA9612, esMaterialDuctoAL04, esObjetoFecha, esParteDiarioAprobadoCHILE9512, esParteDiarioAprobadoCOLOMBIA9612, esParteDiarioEditableCHILE9512, esParteDiarioEditableCOLOMBIA9612, estadoRechazadaPorMetraje, estadoRechazadaPorMetrajeAL04, firmaDespachoCanalRespuesta, firmaDespachoCanalSolicitud, formatCurrencyV1, formatNumberSmart, formatNumberV1, formatPercentageV1, generateUniqueNumber, generateUniqueNumberArray, getCaptureDateSomacyl, getChannelName, getContainerName, getCookieToken, getDBName, getDateInTimeZone, getKeyRedisSortedSet, getModelDataAdicional, getNextID_Amap, getNextID_AsignacionValorizacion, getNextID_Valorizacion, getPrecioContratista, getPriceMaterial, getQueueName, getQueueNameSaveOneNotification, getRequestOrigin, hashCode, homeIdsAltasNVT, isFirstOrderAltasNVT, isValidDate, isValidPartialEntity, logTiempoProceso, mapaDPContratoPrecioFullAL02, mapaEstadoObraFaseAL02, mapaMOMaterialAL02, mapaMOMaterialAL04, mapaReglaSopladoClientes, mapaReglaSopladoTroncal, mapeoZonasSimilares, materialesAltasNVT, materialesAutomaticosAL04, materialesSeleccionablesAL04, modoMaterialesAL04, motivoConsumoAlmacenAL04, motivoConsumoMaterialAutomaticoDuctos, newCodMOTroncalReglaLiquidacion1, obtenerCodMOHomePass, obtenerCodMOHomePassAL04, obtenerDocumentacionClientes, obtenerDocumentacionNoClientes, obtenerEspecialidadesCerradas, obtenerEspecialidadesCerradasAL04, obtenerPrecioContratistaMaterial, obtenerPrecioManoObraAL02, obtenerPrecioManoObraAL04, obtenerTipoYCodigoMO, paisMap, parseDuplicateKeyError, prorratearMaterialesAL04, requisitosArchivoVereda, roundNumber, searchCurrentContractorSpecialtyPrice, setColModels, setContext, subMaterialesAL04, throwDevolucionTRError, throwSomacylError, timeZoneCHILE9512, timeZoneCOLOMBIA9612, tituloFotoParteDiarioCHILE9512, tituloFotoParteDiarioCOLOMBIA9612, updatePriceContractorMOAL02, updatePriceContractorMOAL04, updatePriceMOAL02, updatePriceMOAL04, updatePricePBBudgetAlemaniaAL02, updatePricePBBudgetAlemaniaAL04, uuidRegex, validarAsfaltoAL04, validarFormularioCivil, validarLineasDevolucionTR, validateNoLookup, validateUUIDv4Param, verifyDetailsFinalizeSomacyl, verifyFiles, verifyInventoryAltasNVT, verifyInventoryFinalize, verifyInventoryFinalizeSomacyl, verifyInventoryLimitsSomacyl, verifyLineasDevolucionTR, verifyPhotosFinalizeSomacyl, verifyPhotosNotFinalizedSomacyl };
package/dist/index.js CHANGED
@@ -82,6 +82,7 @@ __export(index_exports, {
82
82
  calcularSaldoStockPersonal: () => calcularSaldoStockPersonal,
83
83
  calcularTotalMaterialValorizacionPeru9112: () => calcularTotalMaterialValorizacionPeru9112,
84
84
  cantidadFijaMOAL04: () => cantidadFijaMOAL04,
85
+ cantidadMOSubMOCOLOMBIA9612: () => cantidadMOSubMOCOLOMBIA9612,
85
86
  cantidadMaterialAL04: () => cantidadMaterialAL04,
86
87
  checkAndBuildMaterialsFromStock: () => checkAndBuildMaterialsFromStock,
87
88
  checkMaterialAvailability: () => checkMaterialAvailability,
@@ -128,17 +129,20 @@ __export(index_exports, {
128
129
  codNoCliente: () => codNoCliente,
129
130
  codSopladoRD: () => codSopladoRD,
130
131
  codigoParteDiarioHoyCHILE9512: () => codigoParteDiarioHoyCHILE9512,
132
+ codigoParteDiarioHoyCOLOMBIA9612: () => codigoParteDiarioHoyCOLOMBIA9612,
131
133
  codigosBaremosSubcontrataAL02: () => codigosBaremosSubcontrataAL02,
132
134
  codigosMOT1_F2: () => codigosMOT1_F2,
133
135
  codigosMaterialDuctos: () => codigosMaterialDuctos,
134
136
  codigosMaterialUGG: () => codigosMaterialUGG,
135
137
  codigosSopladoHP: () => codigosSopladoHP,
138
+ codsMOSubMOCOLOMBIA9612: () => codsMOSubMOCOLOMBIA9612,
136
139
  collections: () => collections,
137
140
  consumirStockPersonal: () => consumirStockPersonal,
138
141
  convertDates: () => convertDates,
139
142
  dataFlujosHomePass: () => dataFlujosHomePass,
140
143
  db_default: () => db_default,
141
144
  db_root: () => db_root,
145
+ documentRequirementAltasNVT: () => documentRequirementAltasNVT,
142
146
  documentRequirementAltasNVTMultifamiliar: () => documentRequirementAltasNVTMultifamiliar,
143
147
  documentRequirementAltasNVTUnifamiliar: () => documentRequirementAltasNVTUnifamiliar,
144
148
  documentRequirementDesmonteVereda: () => documentRequirementDesmonteVereda,
@@ -147,10 +151,13 @@ __export(index_exports, {
147
151
  esAsignacionPreliquidableAL02: () => esAsignacionPreliquidableAL02,
148
152
  esAsignacionPreliquidableAL04: () => esAsignacionPreliquidableAL04,
149
153
  esCadenaFechaISOValida: () => esCadenaFechaISOValida,
154
+ esMOConSubMOCOLOMBIA9612: () => esMOConSubMOCOLOMBIA9612,
150
155
  esMaterialDuctoAL04: () => esMaterialDuctoAL04,
151
156
  esObjetoFecha: () => esObjetoFecha,
152
157
  esParteDiarioAprobadoCHILE9512: () => esParteDiarioAprobadoCHILE9512,
158
+ esParteDiarioAprobadoCOLOMBIA9612: () => esParteDiarioAprobadoCOLOMBIA9612,
153
159
  esParteDiarioEditableCHILE9512: () => esParteDiarioEditableCHILE9512,
160
+ esParteDiarioEditableCOLOMBIA9612: () => esParteDiarioEditableCOLOMBIA9612,
154
161
  estadoRechazadaPorMetraje: () => estadoRechazadaPorMetraje,
155
162
  estadoRechazadaPorMetrajeAL04: () => estadoRechazadaPorMetrajeAL04,
156
163
  firmaDespachoCanalRespuesta: () => firmaDespachoCanalRespuesta,
@@ -178,6 +185,8 @@ __export(index_exports, {
178
185
  getQueueNameSaveOneNotification: () => getQueueNameSaveOneNotification,
179
186
  getRequestOrigin: () => getRequestOrigin,
180
187
  hashCode: () => hashCode,
188
+ homeIdsAltasNVT: () => homeIdsAltasNVT,
189
+ isFirstOrderAltasNVT: () => isFirstOrderAltasNVT,
181
190
  isValidDate: () => isValidDate,
182
191
  isValidPartialEntity: () => isValidPartialEntity,
183
192
  logTiempoProceso: () => logTiempoProceso,
@@ -188,6 +197,7 @@ __export(index_exports, {
188
197
  mapaReglaSopladoClientes: () => mapaReglaSopladoClientes,
189
198
  mapaReglaSopladoTroncal: () => mapaReglaSopladoTroncal,
190
199
  mapeoZonasSimilares: () => mapeoZonasSimilares,
200
+ materialesAltasNVT: () => materialesAltasNVT,
191
201
  materialesAutomaticosAL04: () => materialesAutomaticosAL04,
192
202
  materialesSeleccionablesAL04: () => materialesSeleccionablesAL04,
193
203
  modoMaterialesAL04: () => modoMaterialesAL04,
@@ -216,7 +226,9 @@ __export(index_exports, {
216
226
  throwDevolucionTRError: () => throwDevolucionTRError,
217
227
  throwSomacylError: () => throwSomacylError,
218
228
  timeZoneCHILE9512: () => timeZoneCHILE9512,
229
+ timeZoneCOLOMBIA9612: () => timeZoneCOLOMBIA9612,
219
230
  tituloFotoParteDiarioCHILE9512: () => tituloFotoParteDiarioCHILE9512,
231
+ tituloFotoParteDiarioCOLOMBIA9612: () => tituloFotoParteDiarioCOLOMBIA9612,
220
232
  updatePriceContractorMOAL02: () => updatePriceContractorMOAL02,
221
233
  updatePriceContractorMOAL04: () => updatePriceContractorMOAL04,
222
234
  updatePriceMOAL02: () => updatePriceMOAL02,
@@ -231,6 +243,7 @@ __export(index_exports, {
231
243
  validateUUIDv4Param: () => validateUUIDv4Param,
232
244
  verifyDetailsFinalizeSomacyl: () => verifyDetailsFinalizeSomacyl,
233
245
  verifyFiles: () => verifyFiles,
246
+ verifyInventoryAltasNVT: () => verifyInventoryAltasNVT,
234
247
  verifyInventoryFinalize: () => verifyInventoryFinalize,
235
248
  verifyInventoryFinalizeSomacyl: () => verifyInventoryFinalizeSomacyl,
236
249
  verifyInventoryLimitsSomacyl: () => verifyInventoryLimitsSomacyl,
@@ -16285,11 +16298,37 @@ var GetCodigoFechaActual = /* @__PURE__ */ __name((fecha) => {
16285
16298
  return `${a\u00F1o}${mes}${dia}`;
16286
16299
  }, "GetCodigoFechaActual");
16287
16300
 
16301
+ // src/Programados/Colombia/9612/reglasParteDiarioCOLOMBIA9612.ts
16302
+ var timeZoneCOLOMBIA9612 = "America/Bogota";
16303
+ var APROBADO = "APROBADO";
16304
+ var codigoParteDiarioHoyCOLOMBIA9612 = /* @__PURE__ */ __name(() => GetCodigoFechaActual(getDateInTimeZone(timeZoneCOLOMBIA9612)), "codigoParteDiarioHoyCOLOMBIA9612");
16305
+ var esParteDiarioAprobadoCOLOMBIA9612 = /* @__PURE__ */ __name((parte) => parte.UltimoEstadoInterno?.Descripcion === APROBADO || (parte.EstadosInternos ?? []).some((e) => e.Descripcion === APROBADO), "esParteDiarioAprobadoCOLOMBIA9612");
16306
+ var esParteDiarioEditableCOLOMBIA9612 = /* @__PURE__ */ __name((codigo, parte) => parte ? !esParteDiarioAprobadoCOLOMBIA9612(parte) : codigo === codigoParteDiarioHoyCOLOMBIA9612(), "esParteDiarioEditableCOLOMBIA9612");
16307
+ var tituloFotoParteDiarioCOLOMBIA9612 = /* @__PURE__ */ __name((index) => index === 0 ? {
16308
+ Titulo: "Foto Principal",
16309
+ Descripcion: "Foto Cuadrilla"
16310
+ } : {
16311
+ Titulo: `Foto Auxiliar ${index}`,
16312
+ Descripcion: `Foto Auxiliar ${index}`
16313
+ }, "tituloFotoParteDiarioCOLOMBIA9612");
16314
+
16315
+ // src/Programados/Colombia/9612/reglasPreliquidarCOLOMBIA9612.ts
16316
+ var codsMOSubMOCOLOMBIA9612 = [
16317
+ "21-460010A",
16318
+ "21-460010B",
16319
+ "21-460036A",
16320
+ "21-460036B",
16321
+ "21-460044A",
16322
+ "21-460044B"
16323
+ ];
16324
+ var esMOConSubMOCOLOMBIA9612 = /* @__PURE__ */ __name((codigoMO) => codsMOSubMOCOLOMBIA9612.includes(codigoMO), "esMOConSubMOCOLOMBIA9612");
16325
+ var cantidadMOSubMOCOLOMBIA9612 = /* @__PURE__ */ __name((items) => items.reduce((ac, el) => ac + el.Cantidad * el.CantidadSMO, 0), "cantidadMOSubMOCOLOMBIA9612");
16326
+
16288
16327
  // src/Programados/Chile/9512/reglasParteDiarioCHILE9512.ts
16289
16328
  var timeZoneCHILE9512 = "America/Santiago";
16290
- var APROBADO = "APROBADO";
16329
+ var APROBADO2 = "APROBADO";
16291
16330
  var codigoParteDiarioHoyCHILE9512 = /* @__PURE__ */ __name(() => GetCodigoFechaActual(getDateInTimeZone(timeZoneCHILE9512)), "codigoParteDiarioHoyCHILE9512");
16292
- var esParteDiarioAprobadoCHILE9512 = /* @__PURE__ */ __name((parte) => parte.UltimoEstadoInterno?.Descripcion === APROBADO || (parte.EstadosInternos ?? []).some((e) => e.Descripcion === APROBADO), "esParteDiarioAprobadoCHILE9512");
16331
+ var esParteDiarioAprobadoCHILE9512 = /* @__PURE__ */ __name((parte) => parte.UltimoEstadoInterno?.Descripcion === APROBADO2 || (parte.EstadosInternos ?? []).some((e) => e.Descripcion === APROBADO2), "esParteDiarioAprobadoCHILE9512");
16293
16332
  var esParteDiarioEditableCHILE9512 = /* @__PURE__ */ __name((codigo, parte) => parte ? !esParteDiarioAprobadoCHILE9512(parte) : codigo === codigoParteDiarioHoyCHILE9512(), "esParteDiarioEditableCHILE9512");
16294
16333
  var tituloFotoParteDiarioCHILE9512 = /* @__PURE__ */ __name((index) => index === 0 ? {
16295
16334
  Titulo: "Foto Principal",
@@ -17314,6 +17353,17 @@ var documentRequirementAltasNVTComun = [
17314
17353
  maxFiles: 5,
17315
17354
  requiresMetadata: true,
17316
17355
  maxFileSize: 2
17356
+ },
17357
+ // Captura de pantalla de la orden finalizada: no lleva fecha ni GPS en el EXIF
17358
+ {
17359
+ id: "capturaOrdenFinalizada",
17360
+ label: "Captura orden finalizada",
17361
+ acceptedFileExtensions,
17362
+ children: [],
17363
+ minFiles: 1,
17364
+ maxFiles: 5,
17365
+ requiresMetadata: false,
17366
+ maxFileSize: 2
17317
17367
  }
17318
17368
  ];
17319
17369
  var documentRequirementAltasNVTUnifamiliar = [
@@ -17332,30 +17382,76 @@ var documentRequirementAltasNVTMultifamiliar = [
17332
17382
  maxFileSize: 2
17333
17383
  }
17334
17384
  ];
17385
+ var idsRosetaTA = [
17386
+ "rosetaTAAbierta",
17387
+ "rosetaTACerrada"
17388
+ ];
17389
+ var idsRosetaAP = [
17390
+ "rosetAPAbierta",
17391
+ "rosetAPCerrada"
17392
+ ];
17393
+ var withOptional = /* @__PURE__ */ __name((requirements, optionalIds) => requirements.map((requirement) => ({
17394
+ ...requirement,
17395
+ minFiles: optionalIds.includes(requirement.id) ? 0 : requirement.minFiles,
17396
+ children: withOptional(requirement.children, optionalIds)
17397
+ })), "withOptional");
17398
+ function documentRequirementAltasNVT(params) {
17399
+ const { classification, homeIds, hasSDU, isFirstOrder } = params;
17400
+ const isMultifamiliar = classification === import_sigo_entities6.AddressClassification.MULTIFAMILIAR;
17401
+ const base = isMultifamiliar ? documentRequirementAltasNVTMultifamiliar : documentRequirementAltasNVTUnifamiliar;
17402
+ const requiresRosetaTA = isMultifamiliar || homeIds > 1 || hasSDU;
17403
+ const optionalIds = [
17404
+ ...requiresRosetaTA ? [] : idsRosetaTA,
17405
+ ...isFirstOrder ? [] : idsRosetaAP
17406
+ ];
17407
+ return withOptional(base, optionalIds);
17408
+ }
17409
+ __name(documentRequirementAltasNVT, "documentRequirementAltasNVT");
17335
17410
 
17336
17411
  // src/Operativa/AltasNVT/verifyInventoryFinalize.ts
17412
+ var import_sigo_entities7 = require("sigo-entities");
17413
+ var throwError = /* @__PURE__ */ __name((msg, UnprocessableEntityException) => {
17414
+ if (UnprocessableEntityException) {
17415
+ throw new UnprocessableEntityException(msg, true);
17416
+ }
17417
+ throw new Error(msg, {
17418
+ cause: "USER_MESSAGE"
17419
+ });
17420
+ }, "throwError");
17421
+ var materialesAltasNVT = {
17422
+ kitSellado: {
17423
+ codigo: "40928145",
17424
+ nombre: "Kit de sellado"
17425
+ },
17426
+ taponGas: {
17427
+ codigo: "40290567",
17428
+ nombre: "Tap\xF3n de gas 7mm"
17429
+ }
17430
+ };
17431
+ var homeIdsAltasNVT = /* @__PURE__ */ __name((ordersSameKLS) => new Set(ordersSameKLS.map((o) => o.Bauauftrag_ID)).size, "homeIdsAltasNVT");
17432
+ var isFirstOrderAltasNVT = /* @__PURE__ */ __name((order, ordersSameKLS) => !ordersSameKLS.some((o) => o._id !== order._id && (o.estado_interno === import_sigo_entities7.StateInternalOrderAltasNVT.REVISION || o.estado_interno === import_sigo_entities7.StateInternalOrderAltasNVT.FINALIZADA)), "isFirstOrderAltasNVT");
17433
+ function verifyInventoryAltasNVT(order, isFirstOrder, UnprocessableEntityException) {
17434
+ const obligatorios = isFirstOrder ? [
17435
+ materialesAltasNVT.kitSellado,
17436
+ materialesAltasNVT.taponGas
17437
+ ] : [
17438
+ materialesAltasNVT.taponGas
17439
+ ];
17440
+ for (const { codigo, nombre } of obligatorios) {
17441
+ if (!order.inventory.some((inv) => inv.codigo === codigo)) {
17442
+ throwError(`No se puede finalizar la orden, la orden no tiene el material ${codigo} - ${nombre}`, UnprocessableEntityException);
17443
+ }
17444
+ }
17445
+ }
17446
+ __name(verifyInventoryAltasNVT, "verifyInventoryAltasNVT");
17337
17447
  function verifyInventoryFinalize(docs, UnprocessableEntityException) {
17338
17448
  const codigo = "40928145";
17339
17449
  const orders = docs.filter((e) => e.inventory.some((inv) => inv.codigo === codigo));
17340
17450
  if (orders.length === 0) {
17341
- const msg = `No se puede finalizar la orden, la orden no tiene el material ${codigo}`;
17342
- if (UnprocessableEntityException) {
17343
- throw new UnprocessableEntityException(msg, true);
17344
- } else {
17345
- throw new Error(msg, {
17346
- cause: "USER_MESSAGE"
17347
- });
17348
- }
17451
+ throwError(`No se puede finalizar la orden, la orden no tiene el material ${codigo}`, UnprocessableEntityException);
17349
17452
  }
17350
17453
  if (orders.length > 1) {
17351
- const msg = `No se puede finalizar la orden, existen ordenes con el material ${codigo}`;
17352
- if (UnprocessableEntityException) {
17353
- throw new UnprocessableEntityException(msg, true);
17354
- } else {
17355
- throw new Error(msg, {
17356
- cause: "USER_MESSAGE"
17357
- });
17358
- }
17454
+ throwError(`No se puede finalizar la orden, existen ordenes con el material ${codigo}`, UnprocessableEntityException);
17359
17455
  }
17360
17456
  }
17361
17457
  __name(verifyInventoryFinalize, "verifyInventoryFinalize");
@@ -17528,15 +17624,15 @@ var TOLERANCIA_M2_VEREDA = 0.1;
17528
17624
  var DIRECTORIO_DOCUMENTACION_VEREDA = "ORDENES_BT_ALP_PLUZ_VEREDA";
17529
17625
 
17530
17626
  // src/Operativa/BtAlpPluzVereda/documentRequirement.ts
17531
- var import_sigo_entities7 = require("sigo-entities");
17627
+ var import_sigo_entities8 = require("sigo-entities");
17532
17628
  var fotos = [
17533
- import_sigo_entities7.FileExtension.Jpg,
17534
- import_sigo_entities7.FileExtension.Jpeg,
17535
- import_sigo_entities7.FileExtension.Png
17629
+ import_sigo_entities8.FileExtension.Jpg,
17630
+ import_sigo_entities8.FileExtension.Jpeg,
17631
+ import_sigo_entities8.FileExtension.Png
17536
17632
  ];
17537
17633
  var documentos = [
17538
17634
  ...fotos,
17539
- import_sigo_entities7.FileExtension.Pdf
17635
+ import_sigo_entities8.FileExtension.Pdf
17540
17636
  ];
17541
17637
  var carpeta = /* @__PURE__ */ __name((id, label, children) => ({
17542
17638
  id,
@@ -17578,7 +17674,7 @@ var documentRequirementDesmonteVereda = [
17578
17674
  ];
17579
17675
 
17580
17676
  // src/Operativa/BtAlpPluzVereda/validarFormularioCivil.ts
17581
- var import_sigo_entities8 = require("sigo-entities");
17677
+ var import_sigo_entities9 = require("sigo-entities");
17582
17678
  var redondear = /* @__PURE__ */ __name((valor) => Math.round(valor * 100) / 100, "redondear");
17583
17679
  function avisoM2Vereda(metrados) {
17584
17680
  const reparados = redondear(metrados.m2_vereda_reparada + metrados.m2_vereda_asfalto + metrados.m2_piso_especial);
@@ -17591,8 +17687,8 @@ function validarFormularioCivil(asignacion) {
17591
17687
  const errores = [];
17592
17688
  const avisos = [];
17593
17689
  const { workflow, metrados } = asignacion.formulario_civil;
17594
- for (const { paso, orden } of Object.values(import_sigo_entities8.PASOS_WORKFLOW_VEREDA)) {
17595
- if (paso === import_sigo_entities8.PASOS_WORKFLOW_VEREDA.CERRADO.paso) continue;
17690
+ for (const { paso, orden } of Object.values(import_sigo_entities9.PASOS_WORKFLOW_VEREDA)) {
17691
+ if (paso === import_sigo_entities9.PASOS_WORKFLOW_VEREDA.CERRADO.paso) continue;
17596
17692
  if (!workflow.some((item) => item.paso === paso)) {
17597
17693
  errores.push({
17598
17694
  seccion: "workflow",
@@ -17835,7 +17931,7 @@ var parseDuplicateKeyError = /* @__PURE__ */ __name((message) => {
17835
17931
  }, "parseDuplicateKeyError");
17836
17932
 
17837
17933
  // src/v2/utils/buildSystemOption.ts
17838
- var import_sigo_entities9 = require("sigo-entities");
17934
+ var import_sigo_entities10 = require("sigo-entities");
17839
17935
  function separarPalabras(texto) {
17840
17936
  return texto.replace(/([a-z])([A-Z])/g, "$1 $2").replace(/([A-Z])([A-Z][a-z])/g, "$1 $2");
17841
17937
  }
@@ -17866,7 +17962,7 @@ async function builSystemOption(params) {
17866
17962
  route: isLast ? `${method} ${rootPath}${pathParts}` : "",
17867
17963
  _id: crypto.randomUUID()
17868
17964
  };
17869
- const newItem = await (0, import_sigo_entities9.validateCustom)(_newEntity, import_sigo_entities9.SystemOptionEntity, UnprocessableEntityException);
17965
+ const newItem = await (0, import_sigo_entities10.validateCustom)(_newEntity, import_sigo_entities10.SystemOptionEntity, UnprocessableEntityException);
17870
17966
  newData.push(newItem);
17871
17967
  }
17872
17968
  }
@@ -18069,6 +18165,7 @@ __name(validateUUIDv4Param, "validateUUIDv4Param");
18069
18165
  calcularSaldoStockPersonal,
18070
18166
  calcularTotalMaterialValorizacionPeru9112,
18071
18167
  cantidadFijaMOAL04,
18168
+ cantidadMOSubMOCOLOMBIA9612,
18072
18169
  cantidadMaterialAL04,
18073
18170
  checkAndBuildMaterialsFromStock,
18074
18171
  checkMaterialAvailability,
@@ -18115,17 +18212,20 @@ __name(validateUUIDv4Param, "validateUUIDv4Param");
18115
18212
  codNoCliente,
18116
18213
  codSopladoRD,
18117
18214
  codigoParteDiarioHoyCHILE9512,
18215
+ codigoParteDiarioHoyCOLOMBIA9612,
18118
18216
  codigosBaremosSubcontrataAL02,
18119
18217
  codigosMOT1_F2,
18120
18218
  codigosMaterialDuctos,
18121
18219
  codigosMaterialUGG,
18122
18220
  codigosSopladoHP,
18221
+ codsMOSubMOCOLOMBIA9612,
18123
18222
  collections,
18124
18223
  consumirStockPersonal,
18125
18224
  convertDates,
18126
18225
  dataFlujosHomePass,
18127
18226
  db_default,
18128
18227
  db_root,
18228
+ documentRequirementAltasNVT,
18129
18229
  documentRequirementAltasNVTMultifamiliar,
18130
18230
  documentRequirementAltasNVTUnifamiliar,
18131
18231
  documentRequirementDesmonteVereda,
@@ -18134,10 +18234,13 @@ __name(validateUUIDv4Param, "validateUUIDv4Param");
18134
18234
  esAsignacionPreliquidableAL02,
18135
18235
  esAsignacionPreliquidableAL04,
18136
18236
  esCadenaFechaISOValida,
18237
+ esMOConSubMOCOLOMBIA9612,
18137
18238
  esMaterialDuctoAL04,
18138
18239
  esObjetoFecha,
18139
18240
  esParteDiarioAprobadoCHILE9512,
18241
+ esParteDiarioAprobadoCOLOMBIA9612,
18140
18242
  esParteDiarioEditableCHILE9512,
18243
+ esParteDiarioEditableCOLOMBIA9612,
18141
18244
  estadoRechazadaPorMetraje,
18142
18245
  estadoRechazadaPorMetrajeAL04,
18143
18246
  firmaDespachoCanalRespuesta,
@@ -18165,6 +18268,8 @@ __name(validateUUIDv4Param, "validateUUIDv4Param");
18165
18268
  getQueueNameSaveOneNotification,
18166
18269
  getRequestOrigin,
18167
18270
  hashCode,
18271
+ homeIdsAltasNVT,
18272
+ isFirstOrderAltasNVT,
18168
18273
  isValidDate,
18169
18274
  isValidPartialEntity,
18170
18275
  logTiempoProceso,
@@ -18175,6 +18280,7 @@ __name(validateUUIDv4Param, "validateUUIDv4Param");
18175
18280
  mapaReglaSopladoClientes,
18176
18281
  mapaReglaSopladoTroncal,
18177
18282
  mapeoZonasSimilares,
18283
+ materialesAltasNVT,
18178
18284
  materialesAutomaticosAL04,
18179
18285
  materialesSeleccionablesAL04,
18180
18286
  modoMaterialesAL04,
@@ -18203,7 +18309,9 @@ __name(validateUUIDv4Param, "validateUUIDv4Param");
18203
18309
  throwDevolucionTRError,
18204
18310
  throwSomacylError,
18205
18311
  timeZoneCHILE9512,
18312
+ timeZoneCOLOMBIA9612,
18206
18313
  tituloFotoParteDiarioCHILE9512,
18314
+ tituloFotoParteDiarioCOLOMBIA9612,
18207
18315
  updatePriceContractorMOAL02,
18208
18316
  updatePriceContractorMOAL04,
18209
18317
  updatePriceMOAL02,
@@ -18218,6 +18326,7 @@ __name(validateUUIDv4Param, "validateUUIDv4Param");
18218
18326
  validateUUIDv4Param,
18219
18327
  verifyDetailsFinalizeSomacyl,
18220
18328
  verifyFiles,
18329
+ verifyInventoryAltasNVT,
18221
18330
  verifyInventoryFinalize,
18222
18331
  verifyInventoryFinalizeSomacyl,
18223
18332
  verifyInventoryLimitsSomacyl,
package/dist/index.mjs CHANGED
@@ -16046,11 +16046,37 @@ var GetCodigoFechaActual = /* @__PURE__ */ __name((fecha) => {
16046
16046
  return `${a\u00F1o}${mes}${dia}`;
16047
16047
  }, "GetCodigoFechaActual");
16048
16048
 
16049
+ // src/Programados/Colombia/9612/reglasParteDiarioCOLOMBIA9612.ts
16050
+ var timeZoneCOLOMBIA9612 = "America/Bogota";
16051
+ var APROBADO = "APROBADO";
16052
+ var codigoParteDiarioHoyCOLOMBIA9612 = /* @__PURE__ */ __name(() => GetCodigoFechaActual(getDateInTimeZone(timeZoneCOLOMBIA9612)), "codigoParteDiarioHoyCOLOMBIA9612");
16053
+ var esParteDiarioAprobadoCOLOMBIA9612 = /* @__PURE__ */ __name((parte) => parte.UltimoEstadoInterno?.Descripcion === APROBADO || (parte.EstadosInternos ?? []).some((e) => e.Descripcion === APROBADO), "esParteDiarioAprobadoCOLOMBIA9612");
16054
+ var esParteDiarioEditableCOLOMBIA9612 = /* @__PURE__ */ __name((codigo, parte) => parte ? !esParteDiarioAprobadoCOLOMBIA9612(parte) : codigo === codigoParteDiarioHoyCOLOMBIA9612(), "esParteDiarioEditableCOLOMBIA9612");
16055
+ var tituloFotoParteDiarioCOLOMBIA9612 = /* @__PURE__ */ __name((index) => index === 0 ? {
16056
+ Titulo: "Foto Principal",
16057
+ Descripcion: "Foto Cuadrilla"
16058
+ } : {
16059
+ Titulo: `Foto Auxiliar ${index}`,
16060
+ Descripcion: `Foto Auxiliar ${index}`
16061
+ }, "tituloFotoParteDiarioCOLOMBIA9612");
16062
+
16063
+ // src/Programados/Colombia/9612/reglasPreliquidarCOLOMBIA9612.ts
16064
+ var codsMOSubMOCOLOMBIA9612 = [
16065
+ "21-460010A",
16066
+ "21-460010B",
16067
+ "21-460036A",
16068
+ "21-460036B",
16069
+ "21-460044A",
16070
+ "21-460044B"
16071
+ ];
16072
+ var esMOConSubMOCOLOMBIA9612 = /* @__PURE__ */ __name((codigoMO) => codsMOSubMOCOLOMBIA9612.includes(codigoMO), "esMOConSubMOCOLOMBIA9612");
16073
+ var cantidadMOSubMOCOLOMBIA9612 = /* @__PURE__ */ __name((items) => items.reduce((ac, el) => ac + el.Cantidad * el.CantidadSMO, 0), "cantidadMOSubMOCOLOMBIA9612");
16074
+
16049
16075
  // src/Programados/Chile/9512/reglasParteDiarioCHILE9512.ts
16050
16076
  var timeZoneCHILE9512 = "America/Santiago";
16051
- var APROBADO = "APROBADO";
16077
+ var APROBADO2 = "APROBADO";
16052
16078
  var codigoParteDiarioHoyCHILE9512 = /* @__PURE__ */ __name(() => GetCodigoFechaActual(getDateInTimeZone(timeZoneCHILE9512)), "codigoParteDiarioHoyCHILE9512");
16053
- var esParteDiarioAprobadoCHILE9512 = /* @__PURE__ */ __name((parte) => parte.UltimoEstadoInterno?.Descripcion === APROBADO || (parte.EstadosInternos ?? []).some((e) => e.Descripcion === APROBADO), "esParteDiarioAprobadoCHILE9512");
16079
+ var esParteDiarioAprobadoCHILE9512 = /* @__PURE__ */ __name((parte) => parte.UltimoEstadoInterno?.Descripcion === APROBADO2 || (parte.EstadosInternos ?? []).some((e) => e.Descripcion === APROBADO2), "esParteDiarioAprobadoCHILE9512");
16054
16080
  var esParteDiarioEditableCHILE9512 = /* @__PURE__ */ __name((codigo, parte) => parte ? !esParteDiarioAprobadoCHILE9512(parte) : codigo === codigoParteDiarioHoyCHILE9512(), "esParteDiarioEditableCHILE9512");
16055
16081
  var tituloFotoParteDiarioCHILE9512 = /* @__PURE__ */ __name((index) => index === 0 ? {
16056
16082
  Titulo: "Foto Principal",
@@ -16945,7 +16971,7 @@ var mapeoZonasSimilares = {
16945
16971
  };
16946
16972
 
16947
16973
  // src/Operativa/AltasNVT/documentRequirement.ts
16948
- import { FileExtension } from "sigo-entities";
16974
+ import { AddressClassification, FileExtension } from "sigo-entities";
16949
16975
  var acceptedFileExtensions = [
16950
16976
  FileExtension.Jpg,
16951
16977
  FileExtension.Jpeg,
@@ -17075,6 +17101,17 @@ var documentRequirementAltasNVTComun = [
17075
17101
  maxFiles: 5,
17076
17102
  requiresMetadata: true,
17077
17103
  maxFileSize: 2
17104
+ },
17105
+ // Captura de pantalla de la orden finalizada: no lleva fecha ni GPS en el EXIF
17106
+ {
17107
+ id: "capturaOrdenFinalizada",
17108
+ label: "Captura orden finalizada",
17109
+ acceptedFileExtensions,
17110
+ children: [],
17111
+ minFiles: 1,
17112
+ maxFiles: 5,
17113
+ requiresMetadata: false,
17114
+ maxFileSize: 2
17078
17115
  }
17079
17116
  ];
17080
17117
  var documentRequirementAltasNVTUnifamiliar = [
@@ -17093,30 +17130,76 @@ var documentRequirementAltasNVTMultifamiliar = [
17093
17130
  maxFileSize: 2
17094
17131
  }
17095
17132
  ];
17133
+ var idsRosetaTA = [
17134
+ "rosetaTAAbierta",
17135
+ "rosetaTACerrada"
17136
+ ];
17137
+ var idsRosetaAP = [
17138
+ "rosetAPAbierta",
17139
+ "rosetAPCerrada"
17140
+ ];
17141
+ var withOptional = /* @__PURE__ */ __name((requirements, optionalIds) => requirements.map((requirement) => ({
17142
+ ...requirement,
17143
+ minFiles: optionalIds.includes(requirement.id) ? 0 : requirement.minFiles,
17144
+ children: withOptional(requirement.children, optionalIds)
17145
+ })), "withOptional");
17146
+ function documentRequirementAltasNVT(params) {
17147
+ const { classification, homeIds, hasSDU, isFirstOrder } = params;
17148
+ const isMultifamiliar = classification === AddressClassification.MULTIFAMILIAR;
17149
+ const base = isMultifamiliar ? documentRequirementAltasNVTMultifamiliar : documentRequirementAltasNVTUnifamiliar;
17150
+ const requiresRosetaTA = isMultifamiliar || homeIds > 1 || hasSDU;
17151
+ const optionalIds = [
17152
+ ...requiresRosetaTA ? [] : idsRosetaTA,
17153
+ ...isFirstOrder ? [] : idsRosetaAP
17154
+ ];
17155
+ return withOptional(base, optionalIds);
17156
+ }
17157
+ __name(documentRequirementAltasNVT, "documentRequirementAltasNVT");
17096
17158
 
17097
17159
  // src/Operativa/AltasNVT/verifyInventoryFinalize.ts
17160
+ import { StateInternalOrderAltasNVT } from "sigo-entities";
17161
+ var throwError = /* @__PURE__ */ __name((msg, UnprocessableEntityException) => {
17162
+ if (UnprocessableEntityException) {
17163
+ throw new UnprocessableEntityException(msg, true);
17164
+ }
17165
+ throw new Error(msg, {
17166
+ cause: "USER_MESSAGE"
17167
+ });
17168
+ }, "throwError");
17169
+ var materialesAltasNVT = {
17170
+ kitSellado: {
17171
+ codigo: "40928145",
17172
+ nombre: "Kit de sellado"
17173
+ },
17174
+ taponGas: {
17175
+ codigo: "40290567",
17176
+ nombre: "Tap\xF3n de gas 7mm"
17177
+ }
17178
+ };
17179
+ var homeIdsAltasNVT = /* @__PURE__ */ __name((ordersSameKLS) => new Set(ordersSameKLS.map((o) => o.Bauauftrag_ID)).size, "homeIdsAltasNVT");
17180
+ var isFirstOrderAltasNVT = /* @__PURE__ */ __name((order, ordersSameKLS) => !ordersSameKLS.some((o) => o._id !== order._id && (o.estado_interno === StateInternalOrderAltasNVT.REVISION || o.estado_interno === StateInternalOrderAltasNVT.FINALIZADA)), "isFirstOrderAltasNVT");
17181
+ function verifyInventoryAltasNVT(order, isFirstOrder, UnprocessableEntityException) {
17182
+ const obligatorios = isFirstOrder ? [
17183
+ materialesAltasNVT.kitSellado,
17184
+ materialesAltasNVT.taponGas
17185
+ ] : [
17186
+ materialesAltasNVT.taponGas
17187
+ ];
17188
+ for (const { codigo, nombre } of obligatorios) {
17189
+ if (!order.inventory.some((inv) => inv.codigo === codigo)) {
17190
+ throwError(`No se puede finalizar la orden, la orden no tiene el material ${codigo} - ${nombre}`, UnprocessableEntityException);
17191
+ }
17192
+ }
17193
+ }
17194
+ __name(verifyInventoryAltasNVT, "verifyInventoryAltasNVT");
17098
17195
  function verifyInventoryFinalize(docs, UnprocessableEntityException) {
17099
17196
  const codigo = "40928145";
17100
17197
  const orders = docs.filter((e) => e.inventory.some((inv) => inv.codigo === codigo));
17101
17198
  if (orders.length === 0) {
17102
- const msg = `No se puede finalizar la orden, la orden no tiene el material ${codigo}`;
17103
- if (UnprocessableEntityException) {
17104
- throw new UnprocessableEntityException(msg, true);
17105
- } else {
17106
- throw new Error(msg, {
17107
- cause: "USER_MESSAGE"
17108
- });
17109
- }
17199
+ throwError(`No se puede finalizar la orden, la orden no tiene el material ${codigo}`, UnprocessableEntityException);
17110
17200
  }
17111
17201
  if (orders.length > 1) {
17112
- const msg = `No se puede finalizar la orden, existen ordenes con el material ${codigo}`;
17113
- if (UnprocessableEntityException) {
17114
- throw new UnprocessableEntityException(msg, true);
17115
- } else {
17116
- throw new Error(msg, {
17117
- cause: "USER_MESSAGE"
17118
- });
17119
- }
17202
+ throwError(`No se puede finalizar la orden, existen ordenes con el material ${codigo}`, UnprocessableEntityException);
17120
17203
  }
17121
17204
  }
17122
17205
  __name(verifyInventoryFinalize, "verifyInventoryFinalize");
@@ -17829,6 +17912,7 @@ export {
17829
17912
  calcularSaldoStockPersonal,
17830
17913
  calcularTotalMaterialValorizacionPeru9112,
17831
17914
  cantidadFijaMOAL04,
17915
+ cantidadMOSubMOCOLOMBIA9612,
17832
17916
  cantidadMaterialAL04,
17833
17917
  checkAndBuildMaterialsFromStock,
17834
17918
  checkMaterialAvailability,
@@ -17875,17 +17959,20 @@ export {
17875
17959
  codNoCliente,
17876
17960
  codSopladoRD,
17877
17961
  codigoParteDiarioHoyCHILE9512,
17962
+ codigoParteDiarioHoyCOLOMBIA9612,
17878
17963
  codigosBaremosSubcontrataAL02,
17879
17964
  codigosMOT1_F2,
17880
17965
  codigosMaterialDuctos,
17881
17966
  codigosMaterialUGG,
17882
17967
  codigosSopladoHP,
17968
+ codsMOSubMOCOLOMBIA9612,
17883
17969
  collections,
17884
17970
  consumirStockPersonal,
17885
17971
  convertDates,
17886
17972
  dataFlujosHomePass,
17887
17973
  db_default,
17888
17974
  db_root,
17975
+ documentRequirementAltasNVT,
17889
17976
  documentRequirementAltasNVTMultifamiliar,
17890
17977
  documentRequirementAltasNVTUnifamiliar,
17891
17978
  documentRequirementDesmonteVereda,
@@ -17894,10 +17981,13 @@ export {
17894
17981
  esAsignacionPreliquidableAL02,
17895
17982
  esAsignacionPreliquidableAL04,
17896
17983
  esCadenaFechaISOValida,
17984
+ esMOConSubMOCOLOMBIA9612,
17897
17985
  esMaterialDuctoAL04,
17898
17986
  esObjetoFecha,
17899
17987
  esParteDiarioAprobadoCHILE9512,
17988
+ esParteDiarioAprobadoCOLOMBIA9612,
17900
17989
  esParteDiarioEditableCHILE9512,
17990
+ esParteDiarioEditableCOLOMBIA9612,
17901
17991
  estadoRechazadaPorMetraje,
17902
17992
  estadoRechazadaPorMetrajeAL04,
17903
17993
  firmaDespachoCanalRespuesta,
@@ -17925,6 +18015,8 @@ export {
17925
18015
  getQueueNameSaveOneNotification,
17926
18016
  getRequestOrigin,
17927
18017
  hashCode,
18018
+ homeIdsAltasNVT,
18019
+ isFirstOrderAltasNVT,
17928
18020
  isValidDate,
17929
18021
  isValidPartialEntity,
17930
18022
  logTiempoProceso,
@@ -17935,6 +18027,7 @@ export {
17935
18027
  mapaReglaSopladoClientes,
17936
18028
  mapaReglaSopladoTroncal,
17937
18029
  mapeoZonasSimilares,
18030
+ materialesAltasNVT,
17938
18031
  materialesAutomaticosAL04,
17939
18032
  materialesSeleccionablesAL04,
17940
18033
  modoMaterialesAL04,
@@ -17963,7 +18056,9 @@ export {
17963
18056
  throwDevolucionTRError,
17964
18057
  throwSomacylError,
17965
18058
  timeZoneCHILE9512,
18059
+ timeZoneCOLOMBIA9612,
17966
18060
  tituloFotoParteDiarioCHILE9512,
18061
+ tituloFotoParteDiarioCOLOMBIA9612,
17967
18062
  updatePriceContractorMOAL02,
17968
18063
  updatePriceContractorMOAL04,
17969
18064
  updatePriceMOAL02,
@@ -17978,6 +18073,7 @@ export {
17978
18073
  validateUUIDv4Param,
17979
18074
  verifyDetailsFinalizeSomacyl,
17980
18075
  verifyFiles,
18076
+ verifyInventoryAltasNVT,
17981
18077
  verifyInventoryFinalize,
17982
18078
  verifyInventoryFinalizeSomacyl,
17983
18079
  verifyInventoryLimitsSomacyl,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sigo-package",
3
- "version": "1.2.187",
3
+ "version": "1.2.189",
4
4
  "description": "Funciones compartidas sigo",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",