diff --git a/data_migration_tools/server/src/features/transfer/transfer.service.ts b/data_migration_tools/server/src/features/transfer/transfer.service.ts index 8168c04..7ebb4de 100644 --- a/data_migration_tools/server/src/features/transfer/transfer.service.ts +++ b/data_migration_tools/server/src/features/transfer/transfer.service.ts @@ -144,8 +144,8 @@ export class TransferService { } // ライセンスのデータの作成を行う - // line.expired_dateが"9999/12/31 23:59:59"のデータの場合はデモライセンスなので登録しない - if (line.expired_date !== "9999/12/31 23:59:59") { + // line.expired_dateが"9999/12/31"で始まるデータの場合はデモライセンスなので登録しない + if (!line.expired_date.startsWith("9999/12/31")) { // authorIdが設定されてる場合、statusは"allocated"、allocated_user_idは対象のユーザID // されていない場合、statusは"reusable"、allocated_user_idはnull let status: string; @@ -511,7 +511,7 @@ export class TransferService { // accountsFileLinesの行ループ accountsFileLines.forEach((account) => { const duplicateAdminMail = newAccountsFileLines.find( - (a) => a.adminMail === account.adminMail + (a) => a.adminMail.toLowerCase() === account.adminMail.toLowerCase() // メールアドレスは大文字小文字を区別しない ); if (duplicateAdminMail) { @@ -531,7 +531,7 @@ export class TransferService { // usersFileLinesの行ループ usersFileLines.forEach((user) => { const duplicateUserEmail = newUsersFileLines.find( - (u) => u.email === user.email + (u) => u.email.toLowerCase() === user.email.toLowerCase() // メールアドレスは大文字小文字を区別しない ); if (duplicateUserEmail) { @@ -553,7 +553,7 @@ export class TransferService { } // newAccountsFileLinesとの突合せ const duplicateAdminUserEmail = newAccountsFileLines.find( - (a) => a.adminMail === user.email + (a) => a.adminMail.toLowerCase() === user.email.toLowerCase() // メールアドレスは大文字小文字を区別しない ); // 重複がある場合 if (duplicateAdminUserEmail) { diff --git a/data_migration_tools/server/src/features/verification/verification.service.ts b/data_migration_tools/server/src/features/verification/verification.service.ts index 4fda7d7..97194b6 100644 --- a/data_migration_tools/server/src/features/verification/verification.service.ts +++ b/data_migration_tools/server/src/features/verification/verification.service.ts @@ -63,7 +63,7 @@ export class VerificationService { const licensesCountFromFile = csvInputFiles.filter( (item) => - item.type === "USER" && item.expired_date !== "9999/12/31 23:59:59" + item.type === "USER" && !item.expired_date.startsWith("9999/12/31") ).length + cardLicensesCountFromFile; // 管理ユーザ数のカウント @@ -105,7 +105,8 @@ export class VerificationService { // 重複する要素を抽出 const duplicates: { [key: string]: number } = {}; mailAdresses.forEach((str) => { - duplicates[str] = (duplicates[str] || 0) + 1; + duplicates[str.toLowerCase()] = + (duplicates[str.toLowerCase()] || 0) + 1; }); // 重複する要素と件数を表示 @@ -166,7 +167,7 @@ export class VerificationService { VerificationResultDetails, csvInputFiles.filter( (item) => - item.type === "USER" && item.expired_date !== "9999/12/31 23:59:59" + item.type === "USER" && !item.expired_date.startsWith("9999/12/31") ), licenses.filter((item) => item.expiry_date !== null), accountsMappingInputFiles @@ -381,18 +382,26 @@ function compareCardLicenses( } */ - const formattedActivated = getFormattedDate( - filterdCardLicenses[0].activated_at, - `yyyy/MM/dd hh:mm:ss` + const formattedFileActivated = getFormattedDate( + cardlicensesInputFile.activated_at + ? new Date(cardlicensesInputFile.activated_at) + : null, + `yyyy/MM/dd hh:mm:ss`, + true ); - if (cardlicensesInputFile.activated_at !== formattedActivated) { + const formattedDbActivated = getFormattedDate( + filterdCardLicenses[0].activated_at, + `yyyy/MM/dd hh:mm:ss`, + true + ); + if (formattedFileActivated !== formattedDbActivated) { const VerificationResultDetailsOne: VerificationResultDetails = { input: "cardLicenses", inputRow: row, diffTargetTable: "cardLicenses", columnName: "activated_at", - fileData: cardlicensesInputFile.activated_at, - databaseData: formattedActivated, + fileData: formattedFileActivated, + databaseData: formattedDbActivated, reason: "内容不一致", }; VerificationResultDetails.push(VerificationResultDetailsOne); @@ -573,7 +582,13 @@ function compareLicenses( // expiry_dateについて、時はゼロパディングした値で比較する(×01~09 ○1~9) if ( !licensesFromDatabase[i] || - licensesFromFile[i].expired_date !== + getFormattedDate( + licensesFromFile[i].expired_date + ? new Date(licensesFromFile[i].expired_date) + : null, + `yyyy/MM/dd hh:mm:ss`, + true + ) !== getFormattedDate( licensesFromDatabase[i].expiry_date, `yyyy/MM/dd hh:mm:ss`, @@ -585,7 +600,13 @@ function compareLicenses( inputRow: licensesFromFile[i].row, diffTargetTable: "licenses", columnName: "expired_date", - fileData: licensesFromFile[i].expired_date, + fileData: getFormattedDate( + licensesFromFile[i].expired_date + ? new Date(licensesFromFile[i].expired_date) + : null, + `yyyy/MM/dd hh:mm:ss`, + true + ), databaseData: licensesFromDatabase[i] ? getFormattedDate( licensesFromDatabase[i].expiry_date, diff --git a/dictation_client/src/translation/de.json b/dictation_client/src/translation/de.json index 9a7af9d..84cceb9 100644 --- a/dictation_client/src/translation/de.json +++ b/dictation_client/src/translation/de.json @@ -154,7 +154,7 @@ "status": "Status", "expiration": "Verfallsdatum", "remaining": "Verbleibender Zeitraum", - "autoRenew": "Automatische Erneuerung", + "autoRenew": "Automatisch zuweisen", "licenseAlert": "Lizenzalarm", "notification": "Benachrichtigung", "users": "Benutzer", @@ -252,8 +252,9 @@ "backupFailedError": "Der Prozess „Dateisicherung“ ist fehlgeschlagen. Bitte versuchen Sie es später noch einmal. Wenn der Fehler weiterhin besteht, wenden Sie sich an Ihren Systemadministrator.", "cancelFailedError": "Die Diktate konnten nicht gelöscht werden. Bitte aktualisieren Sie Ihren Bildschirm und versuchen Sie es erneut.", "deleteFailedError": "(de)タスクの削除に失敗しました。画面を更新し、再度ご確認ください。", - "licenseNotAssignedError": "Die Transkription ist nicht möglich, da keine gültige Lizenz zugewiesen ist.Bitten Sie Ihren Administrator, eine gültige Lizenz zuzuweisen.", - "licenseExpiredError": "Die Transkription ist nicht möglich, da Ihre Lizenz abgelaufen ist. Bitte bitten Sie Ihren Administrator, Ihnen eine gültige Lizenz zuzuweisen." + "licenseNotAssignedError": "Die Transkription ist nicht möglich, da keine gültige Lizenz zugewiesen ist. Bitten Sie Ihren Administrator, eine gültige Lizenz zuzuweisen.", + "licenseExpiredError": "Die Transkription ist nicht möglich, da Ihre Lizenz abgelaufen ist. Bitte bitten Sie Ihren Administrator, Ihnen eine gültige Lizenz zuzuweisen.", + "fileAlreadyDeletedError": "(de)既に削除された音声ファイルが含まれています。画面を更新し、再度ご確認ください" }, "label": { "title": "Diktate", @@ -368,7 +369,8 @@ "shortage": "Lizenzmangel", "issueRequesting": "Lizenzen auf Bestellung", "viewDetails": "Details anzeigen", - "accounts": "konten" + "accounts": "konten", + "changeOwnerButton": "(de)Change Owner" } }, "orderHistoriesPage": { @@ -434,7 +436,7 @@ "templateOptional": "Vorlage (Optional)", "editRule": "Regel bearbeiten", "selected": "Ausgewählter transkriptionist", - "pool": "Liste der Transkriptionisten", + "pool": "Transkriptionsliste", "selectAuthor": "Autoren-ID auswählen", "selectWorktypeId": "Aufgabentypkennung auswählen", "selectTemplate": "Vorlage auswählen" @@ -454,7 +456,7 @@ "addTypistGroup": "Transkriptionist Gruppe hinzufügen", "transcriptionist": "Transkriptionist", "selected": "Ausgewählter transkriptionist", - "pool": "Liste der Transkriptionisten", + "pool": "Transkriptionsliste", "add": "Hinzufügen", "remove": "Entfernen", "editTypistGroup": "Transkriptionistengruppe bearbeiten" @@ -619,5 +621,19 @@ "saveButton": "(de)Save Settings", "daysValidationError": "(de)Daysには1~999の数字を入力してください。" } + }, + "changeOwnerPopup": { + "message": { + "accountNotFoundError": "(de)変更先のアカウントIDは存在しません。", + "hierarchyMismatchError": "(de)パートナーアカウントの変更に失敗しました。\nLower layerの1階層上のアカウントを切り替え先に指定してください。", + "regionMismatchError": "(de)パートナーアカウントの変更に失敗しました。\nLower layerと同じリージョンのアカウントを切り替え先に指定してください。", + "countryMismatchError": "(de)パートナーアカウントの変更に失敗しました。\nLower layerと同じ国のアカウントを切り替え先に指定してください。" + }, + "label": { + "invalidInputError": "(de)変更先アカウントIDには1~9999999の数字を入力してください。", + "title": "(de)Change Owner", + "upperLayerId": "(de)Upper Layer ID", + "lowerLayerId": "(de)Lower Layer ID" + } } } \ No newline at end of file diff --git a/dictation_client/src/translation/en.json b/dictation_client/src/translation/en.json index 7b91390..4130f22 100644 --- a/dictation_client/src/translation/en.json +++ b/dictation_client/src/translation/en.json @@ -154,7 +154,7 @@ "status": "Status", "expiration": "Expiration Date", "remaining": "Remaining Period", - "autoRenew": "Auto Renew", + "autoRenew": "Auto Assign", "licenseAlert": "License Alert", "notification": "Notification", "users": "Users", @@ -252,8 +252,9 @@ "backupFailedError": "The \"File Backup\" process has failed. Please try again later. If the error continues, contact your system administrator.", "cancelFailedError": "Failed to delete the dictations. Please refresh your screen and try again.", "deleteFailedError": "タスクの削除に失敗しました。画面を更新し、再度ご確認ください。", - "licenseNotAssignedError": "Transcription is not possible because a valid license is not assigned.Please ask your administrator to assign a valid license.", - "licenseExpiredError": "Transcription is not possible because your license is expired. Please ask your administrator to assign a valid license." + "licenseNotAssignedError": "Transcription is not possible because a valid license is not assigned. Please ask your administrator to assign a valid license.", + "licenseExpiredError": "Transcription is not possible because your license is expired. Please ask your administrator to assign a valid license.", + "fileAlreadyDeletedError": "既に削除された音声ファイルが含まれています。画面を更新し、再度ご確認ください" }, "label": { "title": "Dictations", @@ -368,7 +369,8 @@ "shortage": "License Shortage", "issueRequesting": "Licenses on Order", "viewDetails": "View Details", - "accounts": "accounts" + "accounts": "accounts", + "changeOwnerButton": "Change Owner" } }, "orderHistoriesPage": { @@ -434,7 +436,7 @@ "templateOptional": "Template (Optional)", "editRule": "Edit Rule", "selected": "Selected Transcriptionist", - "pool": "Transcriptionist List", + "pool": "Transcription List", "selectAuthor": "Select Author ID", "selectWorktypeId": "Select Worktype ID", "selectTemplate": "Select Template" @@ -454,7 +456,7 @@ "addTypistGroup": "Add Transcriptionist Group", "transcriptionist": "Transcriptionist", "selected": "Selected Transcriptionist", - "pool": "Transcriptionist List", + "pool": "Transcription List", "add": "Add", "remove": "Remove", "editTypistGroup": "Edit Transcriptionist Group" @@ -619,5 +621,19 @@ "saveButton": "Save Settings", "daysValidationError": "Daysには1~999の数字を入力してください。" } + }, + "changeOwnerPopup": { + "message": { + "accountNotFoundError": "変更先のアカウントIDは存在しません。", + "hierarchyMismatchError": "パートナーアカウントの変更に失敗しました。\nLower layerの1階層上のアカウントを切り替え先に指定してください。", + "regionMismatchError": "パートナーアカウントの変更に失敗しました。\nLower layerと同じリージョンのアカウントを切り替え先に指定してください。", + "countryMismatchError": "パートナーアカウントの変更に失敗しました。\nLower layerと同じ国のアカウントを切り替え先に指定してください。" + }, + "label": { + "invalidInputError": "変更先アカウントIDには1~9999999の数字を入力してください。", + "title": "Change Owner", + "upperLayerId": "Upper Layer ID", + "lowerLayerId": "Lower Layer ID" + } } } \ No newline at end of file diff --git a/dictation_client/src/translation/es.json b/dictation_client/src/translation/es.json index 4dd9b29..e398fb0 100644 --- a/dictation_client/src/translation/es.json +++ b/dictation_client/src/translation/es.json @@ -154,7 +154,7 @@ "status": "Estado", "expiration": "Fecha de caducidad", "remaining": "Período restante", - "autoRenew": "Renovación Automática", + "autoRenew": "Asignación automática", "licenseAlert": "Alerta de licencia", "notification": "Notificación", "users": "Usuarios", @@ -252,8 +252,9 @@ "backupFailedError": "El proceso de \"Copia de seguridad de archivos\" ha fallado. Por favor, inténtelo de nuevo más tarde. Si el error continúa, comuníquese con el administrador del sistema.", "cancelFailedError": "No se pudieron eliminar los dictados. Actualice su pantalla e inténtelo nuevamente.", "deleteFailedError": "(es)タスクの削除に失敗しました。画面を更新し、再度ご確認ください。", - "licenseNotAssignedError": "La transcripción no es posible porque no se ha asignado una licencia válida.Solicite a su administrador que le asigne una licencia válida.", - "licenseExpiredError": "La transcripción no es posible porque su licencia ha caducado. Solicite a su administrador que le asigne una licencia válida." + "licenseNotAssignedError": "La transcripción no es posible porque no se ha asignado una licencia válida. Solicite a su administrador que le asigne una licencia válida.", + "licenseExpiredError": "La transcripción no es posible porque su licencia ha caducado. Solicite a su administrador que le asigne una licencia válida.", + "fileAlreadyDeletedError": "(es)既に削除された音声ファイルが含まれています。画面を更新し、再度ご確認ください" }, "label": { "title": "Dictado", @@ -368,7 +369,8 @@ "shortage": "Escasez de licencias", "issueRequesting": "Licencias en Pedido", "viewDetails": "Ver detalles", - "accounts": "cuentas" + "accounts": "cuentas", + "changeOwnerButton": "(es)Change Owner" } }, "orderHistoriesPage": { @@ -434,7 +436,7 @@ "templateOptional": "Plantilla (Opcional)", "editRule": "Editar regla", "selected": "Transcriptor seleccionado", - "pool": "Lista de transcriptores", + "pool": "Lista de transcriptor", "selectAuthor": "Seleccionar ID de autor", "selectWorktypeId": "Seleccionar ID de tipo de trabajo", "selectTemplate": "Seleccionar Plantilla" @@ -454,7 +456,7 @@ "addTypistGroup": "Agregar grupo transcriptor", "transcriptionist": "Transcriptor", "selected": "Transcriptor seleccionado", - "pool": "Lista de transcriptores", + "pool": "Lista de transcriptor", "add": "Añadir", "remove": "Eliminar", "editTypistGroup": "Editar grupo transcriptor" @@ -619,5 +621,19 @@ "saveButton": "(es)Save Settings", "daysValidationError": "(es)Daysには1~999の数字を入力してください。" } + }, + "changeOwnerPopup": { + "message": { + "accountNotFoundError": "(es)変更先のアカウントIDは存在しません。", + "hierarchyMismatchError": "(es)パートナーアカウントの変更に失敗しました。\nLower layerの1階層上のアカウントを切り替え先に指定してください。", + "regionMismatchError": "(es)パートナーアカウントの変更に失敗しました。\nLower layerと同じリージョンのアカウントを切り替え先に指定してください。", + "countryMismatchError": "(es)パートナーアカウントの変更に失敗しました。\nLower layerと同じ国のアカウントを切り替え先に指定してください。" + }, + "label": { + "invalidInputError": "(es)変更先アカウントIDには1~9999999の数字を入力してください。", + "title": "(es)Change Owner", + "upperLayerId": "(es)Upper Layer ID", + "lowerLayerId": "(es)Lower Layer ID" + } } } \ No newline at end of file diff --git a/dictation_client/src/translation/fr.json b/dictation_client/src/translation/fr.json index af62dc2..98105f3 100644 --- a/dictation_client/src/translation/fr.json +++ b/dictation_client/src/translation/fr.json @@ -154,7 +154,7 @@ "status": "État", "expiration": "Date d'expiration", "remaining": "Période restante", - "autoRenew": "Renouvellement automatique", + "autoRenew": "Assignation automatique", "licenseAlert": "Alerte de licence", "notification": "Notification", "users": "Utilisateurs", @@ -252,8 +252,9 @@ "backupFailedError": "Le processus de « Sauvegarde de fichier » a échoué. Veuillez réessayer plus tard. Si l'erreur persiste, contactez votre administrateur système.", "cancelFailedError": "Échec de la suppression des dictées. Veuillez actualiser votre écran et réessayer.", "deleteFailedError": "(fr)タスクの削除に失敗しました。画面を更新し、再度ご確認ください。", - "licenseNotAssignedError": "La transcription n'est pas possible car aucune licence valide n'a été attribuée.Veuillez demander à votre administrateur d'attribuer une licence valide.", - "licenseExpiredError": "La transcription n'est pas possible car votre licence est expirée. Veuillez demander à votre administrateur de vous attribuer une licence valide." + "licenseNotAssignedError": "La transcription n'est pas possible car aucune licence valide n'a été attribuée. Veuillez demander à votre administrateur d'attribuer une licence valide.", + "licenseExpiredError": "La transcription n'est pas possible car votre licence est expirée. Veuillez demander à votre administrateur de vous attribuer une licence valide.", + "fileAlreadyDeletedError": "(fr)既に削除された音声ファイルが含まれています。画面を更新し、再度ご確認ください" }, "label": { "title": "Dictées", @@ -368,7 +369,8 @@ "shortage": "Pénurie de licences", "issueRequesting": "Licences en commande", "viewDetails": "Voir les détails", - "accounts": "comptes" + "accounts": "comptes", + "changeOwnerButton": "(fr)Change Owner" } }, "orderHistoriesPage": { @@ -434,7 +436,7 @@ "templateOptional": "Masque (Facultatif)", "editRule": "Modifier la règle", "selected": "Transcriptionniste sélectionné", - "pool": "Liste des transcripteurs", + "pool": "Liste de transcriptionniste", "selectAuthor": "Sélectionner le Identifiant Auteur", "selectWorktypeId": "Sélectionner le Identifiant du Type de travail", "selectTemplate": "Sélectionner le Masque" @@ -454,7 +456,7 @@ "addTypistGroup": "Ajouter un groupe de transcripteurs", "transcriptionist": "Transcriptionniste", "selected": "Transcriptionniste sélectionné", - "pool": "Liste des transcripteurs", + "pool": "Liste de transcriptionniste", "add": "Ajouter", "remove": "Supprimer", "editTypistGroup": "Modifier le groupe de transcripteurs" @@ -619,5 +621,19 @@ "saveButton": "(fr)Save Settings", "daysValidationError": "(fr)Daysには1~999の数字を入力してください。" } + }, + "changeOwnerPopup": { + "message": { + "accountNotFoundError": "(fr)変更先のアカウントIDは存在しません。", + "hierarchyMismatchError": "(fr)パートナーアカウントの変更に失敗しました。\nLower layerの1階層上のアカウントを切り替え先に指定してください。", + "regionMismatchError": "(fr)パートナーアカウントの変更に失敗しました。\nLower layerと同じリージョンのアカウントを切り替え先に指定してください。", + "countryMismatchError": "(fr)パートナーアカウントの変更に失敗しました。\nLower layerと同じ国のアカウントを切り替え先に指定してください。" + }, + "label": { + "invalidInputError": "(fr)変更先アカウントIDには1~9999999の数字を入力してください。", + "title": "(fr)Change Owner", + "upperLayerId": "(fr)Upper Layer ID", + "lowerLayerId": "(fr)Lower Layer ID" + } } } \ No newline at end of file