Skip to content

(fix): TM farmacia cuit sin guiones#2257

Open
agustin1996ra wants to merge 1 commit into
masterfrom
fix-cuit-farm
Open

(fix): TM farmacia cuit sin guiones#2257
agustin1996ra wants to merge 1 commit into
masterfrom
fix-cuit-farm

Conversation

@agustin1996ra

@agustin1996ra agustin1996ra commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Este pr rompe app, si app no se actualiza con este pr:

andes/app#3370

Requerimiento

Las farmacias no macheaban en la consulta del auto registro desde recetar.

Funcionalidad desarrollada

  1. Se creo un script para limpiar el los guiones de los cuit de la coleccion farmacias. (probado en test)
  2. Se valida en la creacion de la farmacia que el dato no contega caracteres que no sean numeros o que el longitud del CUIT sea mayo a 11.
  3. Se pone un limite en el script para que se haga de a 100 y que espere 2 segundos entre llamada y llamada. Aparte se va logueando el proceso de actualizacion por si alguna farmacia no se pudo actualizar

UserStories llegó a completarse

  • Si
  • No
  • No corresponde

Requiere actualizaciones en la base de datos

  • Si
  • No
    Requiere script: api/scripts/fix-cuit-farmacias.js
    comando necesario desde terminal apuntando a produccion:
node jobs/manual.js scripts/fix-cuit-farmacias.js

@agustin1996ra agustin1996ra requested review from a team as code owners June 11, 2026 15:33
@github-actions github-actions Bot added the script Necesidad de aplicar un scripts label Jun 12, 2026
Comment thread scripts/fix-cuit-farmacias.ts Outdated
Comment on lines +5 to +11
const farmacias = await Farmacia.find({ cuit: { $regex: /-/ } });
for (const farmacia of farmacias) {
if (farmacia.cuit) {
farmacia.cuit = farmacia.cuit.replace(/[^\d]/g, '');
await Farmacia.update({ _id: farmacia._id }, { $set: { cuit: farmacia.cuit } });
}
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dentro del try {...} podríamos remplazar por el siguiente código:

const farmacias = await Farmacia.find({ cuit: { $regex: /-/ } }).lean();
        if (farmacias.length === 0) return done();
        const operations = farmacias.map(farmacia => ({
            updateOne: {
                filter: { _id: farmacia._id },
                update: { $set: { cuit: farmacia.cuit.replace(/[^\d]/g, '') } }
            }
        }));
        await Farmacia.bulkWrite(operations);
  • Se agrega .lean() para ir más rápido
  • Se quita el for ... of junto con el update para que no se tenga que acceder X cantidades de veces a la base de datos (sobre todo cuando se ejecute en prod) cada vez que se tenga que actualizar una farmacia. Para ello se puede emplear un bulkWrite o updateMany para enviar las actualizaciones en lotes.

@MarianoCampetella MarianoCampetella added the changes requested Se solicitaron cambios label Jun 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changes requested Se solicitaron cambios script Necesidad de aplicar un scripts

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants