sigo-package 1.2.36 → 1.2.37

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, HomePassDTO, FlujoDocDTO, NodoDocDTO, DocumentacionPEXENTITY, ManoObraGlobalENTITY, PrecioEspecialidadENTITY, ObraChile9512ENTITY, ValorizacionManoObraDTO, ValorizacionDTO, PrecioContratistaMOAL02ENTITY, StockPersonalENTITY, StockAlmacenENTITY, TrabajoENTITY, ActividadesDTO, PreciosVigentesDTO, ContratoOTENTITY } from 'sigo-entities';
2
+ import { ManoObraENTITY, ReservaENTITY, ItemDetalleLogisticaDTO, HomePassDTO, FlujoDocDTO, NodoDocDTO, DocumentacionPEXENTITY, ManoObraGlobalENTITY, PrecioEspecialidadENTITY, ObraChile9512ENTITY, ValorizacionManoObraDTO, ValorizacionDTO, PrecioContratistaMOAL02ENTITY, StockPersonalENTITY, StockAlmacenENTITY, ConsumoMaterialAlemaniaENTITY, TrabajoENTITY, ActividadesDTO, PreciosVigentesDTO, ContratoOTENTITY } from 'sigo-entities';
3
3
 
4
4
  interface IenvSIGO$1 {
5
5
  SISTEMAS_VALORIZACION_MANO_OBRA: string[];
@@ -335,6 +335,8 @@ declare function buildDataMaterialsRule(Materiales: Map<string, IMOAndMaterialsR
335
335
 
336
336
  declare function consumirStockPersonal(codDelegacion: string, codigoMaterial: string): boolean;
337
337
 
338
+ declare function checkMaterialAvailability(materials: IMateriales[], dataMaterialesUtilizados: IMateriales[], dataStockPersonal: StockPersonalENTITY[], dataStockAlmacen: StockAlmacenENTITY[], dataConsumoMaterial: ConsumoMaterialAlemaniaENTITY[]): void;
339
+
338
340
  declare const CalcularResumenLiquidaciones: Funcion$1;
339
341
  interface Funcion$1 {
340
342
  (trabajo: TrabajoType, trabajos: any[]): ResumenLiquidacionesTypeChile;
@@ -527,4 +529,4 @@ declare function getContainerName(dirname: string): string;
527
529
 
528
530
  declare function buildTenantCollectionName(countryName: string, delegation: string, collection: string): string;
529
531
 
530
- export { ActualizarDataManoObra, ActualizarDataReserva, ActualizarDataResumenLiquidaciones, ActualizarDataResumenValorizacionesAlemania, ActualizarDataTrabajos, BuscarZonaContratista, CalcularResumenHPMOLiquidado, CalcularResumenLiquidaciones, CalcularResumenValorizacionesAlemania, CodigosMaterialDuctosAL02, CodigosMaterialDuctosAL04, CodigosMaterialSoplado, CodsMapeoMOMaterial, CodsMapeoMOMaterialNVT01, CodsMapeoMOMaterialSopladoClientes, CodsMapeoMOMaterialSopladoTroncal, CodsMapeoMO_Material_Arquertas, CompararFechas, CurrencyFormat, DocumentacionReplanteo, EstadoEspecialidad9612, GemeindeChangeNomenclatura, GetCodigoFechaActual, type IDocumentacion, type IMOAndMaterialsRules, type IMateriales, MOCantidadNVT01, MOHijasAL04, MOHijasDEPTH, MapeoEspecialidades9612, MapeoMOBOMAL04, MapeoMatBOMAL04, type MatRetiradosType, type MatStockAlmacenType, type MatStockPersonalType$1 as MatStockPersonalType, type MatUtilizadosType$1 as MatUtilizadosType, type MoUoType$1 as MoUoType, ModelDataFlujosDocumentacionReplanteo, ObtenerMONoReservada, ObtenerPrecioContratistaVigente, ObtenerZonaAsignada, type ResumenLiquidacionesType, type ResumenLiquidacionesTypeChile, SEGMENT_TY, type TARGET, UpdateNodosDocDP, buildDataMaterialsRule, buildTenantCollectionName, checkAndBuildMaterialsFromStock, codBalizaAL04, codClientes, codMOClientesAL02, codMOClientesAL02Asfaltado, codMOClientesAL02OC, codMOClientesAL02Soplado, codMOClientes_ReglaLiquidacion1, codMODROPAL04, codMODROPAL04OC, codMODROPAL04Soplado, codMOFTTFAL04, codMONoClientesAL02, codMONoClientesAL02Asfaltado, codMONoClientesAL02OC, codMONoClientesAL02Soplado, codMONoClientes_ReglaLiquidacion1, codMOOcultosAL04, codMOPublico, codMOTroncalAL02, codMOTroncalAL02Asfaltado, codMOTroncalAL02OC, codMOTroncalAL02Soplado, codMOTroncalAL04, codMOTroncalAL04Asfaltado, codMOTroncalAL04OC, codMOTroncalAL04Soplado, codMOTroncal_ReglaLiquidacion1, codNoCliente, codSopladoRD, codigosMOT1_F2, codigosMaterialDuctos, codigosMaterialUGG, consumirStockPersonal, convertDates, dataFlujosHomePass, esCadenaFechaISOValida, esObjetoFecha, generateUniqueNumber, generateUniqueNumberArray, getChannelName, getContainerName, getDateInTimeZone, getKeyRedisSortedSet, getModelDataAdicional, getNextID_Valorizacion, getQueueName, getQueueNameSaveOneNotification, isValidDate, isValidPartialEntity, logTiempoProceso, mapaEstadoObraFaseAL02, mapaMOMaterialAL02, mapaMOMaterialAL04, mapaReglaSopladoClientes, mapaReglaSopladoTroncal, obtenerDocumentacionClientes, obtenerDocumentacionNoClientes, obtenerPrecioManoObraAL02, obtenerPrecioManoObraAL04, obtenerTipoYCodigoMO, paisMap, searchCurrentContractorSpecialtyPrice, setContext, updatePriceContractorMOAL02, updatePriceContractorMOAL04, updatePriceMOAL02, updatePriceMOAL04, validateNoLookup };
532
+ export { ActualizarDataManoObra, ActualizarDataReserva, ActualizarDataResumenLiquidaciones, ActualizarDataResumenValorizacionesAlemania, ActualizarDataTrabajos, BuscarZonaContratista, CalcularResumenHPMOLiquidado, CalcularResumenLiquidaciones, CalcularResumenValorizacionesAlemania, CodigosMaterialDuctosAL02, CodigosMaterialDuctosAL04, CodigosMaterialSoplado, CodsMapeoMOMaterial, CodsMapeoMOMaterialNVT01, CodsMapeoMOMaterialSopladoClientes, CodsMapeoMOMaterialSopladoTroncal, CodsMapeoMO_Material_Arquertas, CompararFechas, CurrencyFormat, DocumentacionReplanteo, EstadoEspecialidad9612, GemeindeChangeNomenclatura, GetCodigoFechaActual, type IDocumentacion, type IMOAndMaterialsRules, type IMateriales, MOCantidadNVT01, MOHijasAL04, MOHijasDEPTH, MapeoEspecialidades9612, MapeoMOBOMAL04, MapeoMatBOMAL04, type MatRetiradosType, type MatStockAlmacenType, type MatStockPersonalType$1 as MatStockPersonalType, type MatUtilizadosType$1 as MatUtilizadosType, type MoUoType$1 as MoUoType, ModelDataFlujosDocumentacionReplanteo, ObtenerMONoReservada, ObtenerPrecioContratistaVigente, ObtenerZonaAsignada, type ResumenLiquidacionesType, type ResumenLiquidacionesTypeChile, SEGMENT_TY, type TARGET, UpdateNodosDocDP, buildDataMaterialsRule, buildTenantCollectionName, checkAndBuildMaterialsFromStock, checkMaterialAvailability, codBalizaAL04, codClientes, codMOClientesAL02, codMOClientesAL02Asfaltado, codMOClientesAL02OC, codMOClientesAL02Soplado, codMOClientes_ReglaLiquidacion1, codMODROPAL04, codMODROPAL04OC, codMODROPAL04Soplado, codMOFTTFAL04, codMONoClientesAL02, codMONoClientesAL02Asfaltado, codMONoClientesAL02OC, codMONoClientesAL02Soplado, codMONoClientes_ReglaLiquidacion1, codMOOcultosAL04, codMOPublico, codMOTroncalAL02, codMOTroncalAL02Asfaltado, codMOTroncalAL02OC, codMOTroncalAL02Soplado, codMOTroncalAL04, codMOTroncalAL04Asfaltado, codMOTroncalAL04OC, codMOTroncalAL04Soplado, codMOTroncal_ReglaLiquidacion1, codNoCliente, codSopladoRD, codigosMOT1_F2, codigosMaterialDuctos, codigosMaterialUGG, consumirStockPersonal, convertDates, dataFlujosHomePass, esCadenaFechaISOValida, esObjetoFecha, generateUniqueNumber, generateUniqueNumberArray, getChannelName, getContainerName, getDateInTimeZone, getKeyRedisSortedSet, getModelDataAdicional, getNextID_Valorizacion, getQueueName, getQueueNameSaveOneNotification, isValidDate, isValidPartialEntity, logTiempoProceso, mapaEstadoObraFaseAL02, mapaMOMaterialAL02, mapaMOMaterialAL04, mapaReglaSopladoClientes, mapaReglaSopladoTroncal, obtenerDocumentacionClientes, obtenerDocumentacionNoClientes, obtenerPrecioManoObraAL02, obtenerPrecioManoObraAL04, obtenerTipoYCodigoMO, paisMap, searchCurrentContractorSpecialtyPrice, setContext, updatePriceContractorMOAL02, updatePriceContractorMOAL04, updatePriceMOAL02, updatePriceMOAL04, validateNoLookup };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as sigo_entities from 'sigo-entities';
2
- import { ManoObraENTITY, ReservaENTITY, ItemDetalleLogisticaDTO, HomePassDTO, FlujoDocDTO, NodoDocDTO, DocumentacionPEXENTITY, ManoObraGlobalENTITY, PrecioEspecialidadENTITY, ObraChile9512ENTITY, ValorizacionManoObraDTO, ValorizacionDTO, PrecioContratistaMOAL02ENTITY, StockPersonalENTITY, StockAlmacenENTITY, TrabajoENTITY, ActividadesDTO, PreciosVigentesDTO, ContratoOTENTITY } from 'sigo-entities';
2
+ import { ManoObraENTITY, ReservaENTITY, ItemDetalleLogisticaDTO, HomePassDTO, FlujoDocDTO, NodoDocDTO, DocumentacionPEXENTITY, ManoObraGlobalENTITY, PrecioEspecialidadENTITY, ObraChile9512ENTITY, ValorizacionManoObraDTO, ValorizacionDTO, PrecioContratistaMOAL02ENTITY, StockPersonalENTITY, StockAlmacenENTITY, ConsumoMaterialAlemaniaENTITY, TrabajoENTITY, ActividadesDTO, PreciosVigentesDTO, ContratoOTENTITY } from 'sigo-entities';
3
3
 
4
4
  interface IenvSIGO$1 {
5
5
  SISTEMAS_VALORIZACION_MANO_OBRA: string[];
@@ -335,6 +335,8 @@ declare function buildDataMaterialsRule(Materiales: Map<string, IMOAndMaterialsR
335
335
 
336
336
  declare function consumirStockPersonal(codDelegacion: string, codigoMaterial: string): boolean;
337
337
 
338
+ declare function checkMaterialAvailability(materials: IMateriales[], dataMaterialesUtilizados: IMateriales[], dataStockPersonal: StockPersonalENTITY[], dataStockAlmacen: StockAlmacenENTITY[], dataConsumoMaterial: ConsumoMaterialAlemaniaENTITY[]): void;
339
+
338
340
  declare const CalcularResumenLiquidaciones: Funcion$1;
339
341
  interface Funcion$1 {
340
342
  (trabajo: TrabajoType, trabajos: any[]): ResumenLiquidacionesTypeChile;
@@ -527,4 +529,4 @@ declare function getContainerName(dirname: string): string;
527
529
 
528
530
  declare function buildTenantCollectionName(countryName: string, delegation: string, collection: string): string;
529
531
 
530
- export { ActualizarDataManoObra, ActualizarDataReserva, ActualizarDataResumenLiquidaciones, ActualizarDataResumenValorizacionesAlemania, ActualizarDataTrabajos, BuscarZonaContratista, CalcularResumenHPMOLiquidado, CalcularResumenLiquidaciones, CalcularResumenValorizacionesAlemania, CodigosMaterialDuctosAL02, CodigosMaterialDuctosAL04, CodigosMaterialSoplado, CodsMapeoMOMaterial, CodsMapeoMOMaterialNVT01, CodsMapeoMOMaterialSopladoClientes, CodsMapeoMOMaterialSopladoTroncal, CodsMapeoMO_Material_Arquertas, CompararFechas, CurrencyFormat, DocumentacionReplanteo, EstadoEspecialidad9612, GemeindeChangeNomenclatura, GetCodigoFechaActual, type IDocumentacion, type IMOAndMaterialsRules, type IMateriales, MOCantidadNVT01, MOHijasAL04, MOHijasDEPTH, MapeoEspecialidades9612, MapeoMOBOMAL04, MapeoMatBOMAL04, type MatRetiradosType, type MatStockAlmacenType, type MatStockPersonalType$1 as MatStockPersonalType, type MatUtilizadosType$1 as MatUtilizadosType, type MoUoType$1 as MoUoType, ModelDataFlujosDocumentacionReplanteo, ObtenerMONoReservada, ObtenerPrecioContratistaVigente, ObtenerZonaAsignada, type ResumenLiquidacionesType, type ResumenLiquidacionesTypeChile, SEGMENT_TY, type TARGET, UpdateNodosDocDP, buildDataMaterialsRule, buildTenantCollectionName, checkAndBuildMaterialsFromStock, codBalizaAL04, codClientes, codMOClientesAL02, codMOClientesAL02Asfaltado, codMOClientesAL02OC, codMOClientesAL02Soplado, codMOClientes_ReglaLiquidacion1, codMODROPAL04, codMODROPAL04OC, codMODROPAL04Soplado, codMOFTTFAL04, codMONoClientesAL02, codMONoClientesAL02Asfaltado, codMONoClientesAL02OC, codMONoClientesAL02Soplado, codMONoClientes_ReglaLiquidacion1, codMOOcultosAL04, codMOPublico, codMOTroncalAL02, codMOTroncalAL02Asfaltado, codMOTroncalAL02OC, codMOTroncalAL02Soplado, codMOTroncalAL04, codMOTroncalAL04Asfaltado, codMOTroncalAL04OC, codMOTroncalAL04Soplado, codMOTroncal_ReglaLiquidacion1, codNoCliente, codSopladoRD, codigosMOT1_F2, codigosMaterialDuctos, codigosMaterialUGG, consumirStockPersonal, convertDates, dataFlujosHomePass, esCadenaFechaISOValida, esObjetoFecha, generateUniqueNumber, generateUniqueNumberArray, getChannelName, getContainerName, getDateInTimeZone, getKeyRedisSortedSet, getModelDataAdicional, getNextID_Valorizacion, getQueueName, getQueueNameSaveOneNotification, isValidDate, isValidPartialEntity, logTiempoProceso, mapaEstadoObraFaseAL02, mapaMOMaterialAL02, mapaMOMaterialAL04, mapaReglaSopladoClientes, mapaReglaSopladoTroncal, obtenerDocumentacionClientes, obtenerDocumentacionNoClientes, obtenerPrecioManoObraAL02, obtenerPrecioManoObraAL04, obtenerTipoYCodigoMO, paisMap, searchCurrentContractorSpecialtyPrice, setContext, updatePriceContractorMOAL02, updatePriceContractorMOAL04, updatePriceMOAL02, updatePriceMOAL04, validateNoLookup };
532
+ export { ActualizarDataManoObra, ActualizarDataReserva, ActualizarDataResumenLiquidaciones, ActualizarDataResumenValorizacionesAlemania, ActualizarDataTrabajos, BuscarZonaContratista, CalcularResumenHPMOLiquidado, CalcularResumenLiquidaciones, CalcularResumenValorizacionesAlemania, CodigosMaterialDuctosAL02, CodigosMaterialDuctosAL04, CodigosMaterialSoplado, CodsMapeoMOMaterial, CodsMapeoMOMaterialNVT01, CodsMapeoMOMaterialSopladoClientes, CodsMapeoMOMaterialSopladoTroncal, CodsMapeoMO_Material_Arquertas, CompararFechas, CurrencyFormat, DocumentacionReplanteo, EstadoEspecialidad9612, GemeindeChangeNomenclatura, GetCodigoFechaActual, type IDocumentacion, type IMOAndMaterialsRules, type IMateriales, MOCantidadNVT01, MOHijasAL04, MOHijasDEPTH, MapeoEspecialidades9612, MapeoMOBOMAL04, MapeoMatBOMAL04, type MatRetiradosType, type MatStockAlmacenType, type MatStockPersonalType$1 as MatStockPersonalType, type MatUtilizadosType$1 as MatUtilizadosType, type MoUoType$1 as MoUoType, ModelDataFlujosDocumentacionReplanteo, ObtenerMONoReservada, ObtenerPrecioContratistaVigente, ObtenerZonaAsignada, type ResumenLiquidacionesType, type ResumenLiquidacionesTypeChile, SEGMENT_TY, type TARGET, UpdateNodosDocDP, buildDataMaterialsRule, buildTenantCollectionName, checkAndBuildMaterialsFromStock, checkMaterialAvailability, codBalizaAL04, codClientes, codMOClientesAL02, codMOClientesAL02Asfaltado, codMOClientesAL02OC, codMOClientesAL02Soplado, codMOClientes_ReglaLiquidacion1, codMODROPAL04, codMODROPAL04OC, codMODROPAL04Soplado, codMOFTTFAL04, codMONoClientesAL02, codMONoClientesAL02Asfaltado, codMONoClientesAL02OC, codMONoClientesAL02Soplado, codMONoClientes_ReglaLiquidacion1, codMOOcultosAL04, codMOPublico, codMOTroncalAL02, codMOTroncalAL02Asfaltado, codMOTroncalAL02OC, codMOTroncalAL02Soplado, codMOTroncalAL04, codMOTroncalAL04Asfaltado, codMOTroncalAL04OC, codMOTroncalAL04Soplado, codMOTroncal_ReglaLiquidacion1, codNoCliente, codSopladoRD, codigosMOT1_F2, codigosMaterialDuctos, codigosMaterialUGG, consumirStockPersonal, convertDates, dataFlujosHomePass, esCadenaFechaISOValida, esObjetoFecha, generateUniqueNumber, generateUniqueNumberArray, getChannelName, getContainerName, getDateInTimeZone, getKeyRedisSortedSet, getModelDataAdicional, getNextID_Valorizacion, getQueueName, getQueueNameSaveOneNotification, isValidDate, isValidPartialEntity, logTiempoProceso, mapaEstadoObraFaseAL02, mapaMOMaterialAL02, mapaMOMaterialAL04, mapaReglaSopladoClientes, mapaReglaSopladoTroncal, obtenerDocumentacionClientes, obtenerDocumentacionNoClientes, obtenerPrecioManoObraAL02, obtenerPrecioManoObraAL04, obtenerTipoYCodigoMO, paisMap, searchCurrentContractorSpecialtyPrice, setContext, updatePriceContractorMOAL02, updatePriceContractorMOAL04, updatePriceMOAL02, updatePriceMOAL04, validateNoLookup };
package/dist/index.js CHANGED
@@ -61,6 +61,7 @@ __export(index_exports, {
61
61
  buildDataMaterialsRule: () => buildDataMaterialsRule,
62
62
  buildTenantCollectionName: () => buildTenantCollectionName,
63
63
  checkAndBuildMaterialsFromStock: () => checkAndBuildMaterialsFromStock,
64
+ checkMaterialAvailability: () => checkMaterialAvailability,
64
65
  codBalizaAL04: () => codBalizaAL04,
65
66
  codClientes: () => codClientes,
66
67
  codMOClientesAL02: () => codMOClientesAL02,
@@ -6000,6 +6001,47 @@ function buildDataMaterialsRule(Materiales, dataStockPersonal, dataStockAlmacen,
6000
6001
  }
6001
6002
  __name(buildDataMaterialsRule, "buildDataMaterialsRule");
6002
6003
 
6004
+ // src/Programados/Alemania/checkMaterialAvailability.ts
6005
+ function checkMaterialAvailability(materials, dataMaterialesUtilizados, dataStockPersonal, dataStockAlmacen, dataConsumoMaterial) {
6006
+ const dataMUStockPersonal = dataMaterialesUtilizados.filter((e) => e.stock === "Personal");
6007
+ const dataMUStockAlmacen = dataMaterialesUtilizados.filter((e) => e.stock === "Almacen");
6008
+ for (const material of materials) {
6009
+ if (material.stock === "Personal") {
6010
+ const stockPersonal = dataStockPersonal.find((e) => e.ID_StockPersonal === material.ID);
6011
+ if (!stockPersonal) {
6012
+ throw new Error(`No se encontr\xF3 el material ID_StockPersonal "${material.ID}" en data stock personal.`);
6013
+ }
6014
+ const utilizadoLocal = dataMUStockPersonal.filter((e) => e.ID === material.ID).reduce((acc, el) => acc += el.cantidad, 0);
6015
+ const { Despacho, Devolucion, Liquidacion, DespachoTR, DevolucionTR } = stockPersonal;
6016
+ const disponible = Despacho - Devolucion - Liquidacion + DespachoTR - DevolucionTR - utilizadoLocal;
6017
+ if (disponible < material.cantidad) {
6018
+ throw new Error(`No tiene stock personal suficiente para el material '${material.item.Codigo}${material.lote ? ` (lote: ${material.lote})` : ""}' para este trabajo. (Disponible: ${disponible})`);
6019
+ }
6020
+ } else if (material.stock === "Almacen") {
6021
+ const stockAlmacen = dataStockAlmacen.find((e) => e.ID_StockAlmacen === material.ID);
6022
+ if (!stockAlmacen) {
6023
+ throw new Error(`No se encontr\xF3 el material ID_StockAlmacen "${material.ID}" en data stock alamc\xE9n.`);
6024
+ }
6025
+ const utilizadoLocal = dataMUStockAlmacen.filter((e) => e.ID === material.ID).reduce((acc, el) => acc += el.cantidad, 0);
6026
+ const utilizadoCM = dataConsumoMaterial.reduce((ac, e) => {
6027
+ const exist = e.CosumoMaterial.filter((cm) => cm.CodigoLlave === stockAlmacen.CodigoLlave);
6028
+ if (exist.length > 1) {
6029
+ throw new Error(`No se pudo calcular utilizado consumo material.`);
6030
+ }
6031
+ return ac += exist.length ? exist[0].Cantidad : 0;
6032
+ }, 0);
6033
+ const { Ingreso, Despacho, Devolucion } = stockAlmacen;
6034
+ const disponible = Ingreso - Despacho + Devolucion - utilizadoLocal - utilizadoCM;
6035
+ if (disponible < material.cantidad) {
6036
+ throw new Error(`No tiene stock almac\xE9n suficiente para el material '${material.item.Codigo}${material.lote ? ` (lote: ${material.lote})` : ""}' para este trabajo. (Disponible: ${disponible})`);
6037
+ }
6038
+ } else {
6039
+ throw new Error(`No se encontraron casos para el tipo de stock ${material.stock}`);
6040
+ }
6041
+ }
6042
+ }
6043
+ __name(checkMaterialAvailability, "checkMaterialAvailability");
6044
+
6003
6045
  // src/Programados/Colombia/9612/MapaEspecialidadesColombia.ts
6004
6046
  var EstadoEspecialidad9612 = /* @__PURE__ */ function(EstadoEspecialidad96122) {
6005
6047
  EstadoEspecialidad96122["ACTIVO"] = "ACTIVO";
@@ -6688,6 +6730,7 @@ var getNextID_Valorizacion = /* @__PURE__ */ __name((valorizaciones) => {
6688
6730
  buildDataMaterialsRule,
6689
6731
  buildTenantCollectionName,
6690
6732
  checkAndBuildMaterialsFromStock,
6733
+ checkMaterialAvailability,
6691
6734
  codBalizaAL04,
6692
6735
  codClientes,
6693
6736
  codMOClientesAL02,
package/dist/index.mjs CHANGED
@@ -5871,6 +5871,47 @@ function buildDataMaterialsRule(Materiales, dataStockPersonal, dataStockAlmacen,
5871
5871
  }
5872
5872
  __name(buildDataMaterialsRule, "buildDataMaterialsRule");
5873
5873
 
5874
+ // src/Programados/Alemania/checkMaterialAvailability.ts
5875
+ function checkMaterialAvailability(materials, dataMaterialesUtilizados, dataStockPersonal, dataStockAlmacen, dataConsumoMaterial) {
5876
+ const dataMUStockPersonal = dataMaterialesUtilizados.filter((e) => e.stock === "Personal");
5877
+ const dataMUStockAlmacen = dataMaterialesUtilizados.filter((e) => e.stock === "Almacen");
5878
+ for (const material of materials) {
5879
+ if (material.stock === "Personal") {
5880
+ const stockPersonal = dataStockPersonal.find((e) => e.ID_StockPersonal === material.ID);
5881
+ if (!stockPersonal) {
5882
+ throw new Error(`No se encontr\xF3 el material ID_StockPersonal "${material.ID}" en data stock personal.`);
5883
+ }
5884
+ const utilizadoLocal = dataMUStockPersonal.filter((e) => e.ID === material.ID).reduce((acc, el) => acc += el.cantidad, 0);
5885
+ const { Despacho, Devolucion, Liquidacion, DespachoTR, DevolucionTR } = stockPersonal;
5886
+ const disponible = Despacho - Devolucion - Liquidacion + DespachoTR - DevolucionTR - utilizadoLocal;
5887
+ if (disponible < material.cantidad) {
5888
+ throw new Error(`No tiene stock personal suficiente para el material '${material.item.Codigo}${material.lote ? ` (lote: ${material.lote})` : ""}' para este trabajo. (Disponible: ${disponible})`);
5889
+ }
5890
+ } else if (material.stock === "Almacen") {
5891
+ const stockAlmacen = dataStockAlmacen.find((e) => e.ID_StockAlmacen === material.ID);
5892
+ if (!stockAlmacen) {
5893
+ throw new Error(`No se encontr\xF3 el material ID_StockAlmacen "${material.ID}" en data stock alamc\xE9n.`);
5894
+ }
5895
+ const utilizadoLocal = dataMUStockAlmacen.filter((e) => e.ID === material.ID).reduce((acc, el) => acc += el.cantidad, 0);
5896
+ const utilizadoCM = dataConsumoMaterial.reduce((ac, e) => {
5897
+ const exist = e.CosumoMaterial.filter((cm) => cm.CodigoLlave === stockAlmacen.CodigoLlave);
5898
+ if (exist.length > 1) {
5899
+ throw new Error(`No se pudo calcular utilizado consumo material.`);
5900
+ }
5901
+ return ac += exist.length ? exist[0].Cantidad : 0;
5902
+ }, 0);
5903
+ const { Ingreso, Despacho, Devolucion } = stockAlmacen;
5904
+ const disponible = Ingreso - Despacho + Devolucion - utilizadoLocal - utilizadoCM;
5905
+ if (disponible < material.cantidad) {
5906
+ throw new Error(`No tiene stock almac\xE9n suficiente para el material '${material.item.Codigo}${material.lote ? ` (lote: ${material.lote})` : ""}' para este trabajo. (Disponible: ${disponible})`);
5907
+ }
5908
+ } else {
5909
+ throw new Error(`No se encontraron casos para el tipo de stock ${material.stock}`);
5910
+ }
5911
+ }
5912
+ }
5913
+ __name(checkMaterialAvailability, "checkMaterialAvailability");
5914
+
5874
5915
  // src/Programados/Colombia/9612/MapaEspecialidadesColombia.ts
5875
5916
  var EstadoEspecialidad9612 = /* @__PURE__ */ function(EstadoEspecialidad96122) {
5876
5917
  EstadoEspecialidad96122["ACTIVO"] = "ACTIVO";
@@ -6558,6 +6599,7 @@ export {
6558
6599
  buildDataMaterialsRule,
6559
6600
  buildTenantCollectionName,
6560
6601
  checkAndBuildMaterialsFromStock,
6602
+ checkMaterialAvailability,
6561
6603
  codBalizaAL04,
6562
6604
  codClientes,
6563
6605
  codMOClientesAL02,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sigo-package",
3
- "version": "1.2.36",
3
+ "version": "1.2.37",
4
4
  "description": "Funciones compartidas sigo",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -21,6 +21,6 @@
21
21
  "typescript": "^5.7.3"
22
22
  },
23
23
  "peerDependencies": {
24
- "sigo-entities": "^1.0.72"
24
+ "sigo-entities": "^1.0.76"
25
25
  }
26
26
  }