feat(admin-center): implement admin center settings retrieval and enhance holiday population logic
- Added a new API endpoint in AdminCenterController to fetch admin center settings, including organization details. - Updated the admin center API router to include the new settings route. - Enhanced the holiday controller to check for recent holiday population before attempting to repopulate, preventing duplicate entries. - Improved the holiday calendar component to manage holiday population attempts and display loading states. - Updated localization files to support new messages related to calculation methods and holiday settings.
This commit is contained in:
@@ -1,114 +1,114 @@
|
||||
{
|
||||
"financeText": "Finance",
|
||||
"ratecardSingularText": "Rate Card",
|
||||
"groupByText": "Group by",
|
||||
"financeText": "Finanças",
|
||||
"ratecardSingularText": "Tabela de Preços",
|
||||
"groupByText": "Agrupar por",
|
||||
"statusText": "Status",
|
||||
"phaseText": "Phase",
|
||||
"priorityText": "Priority",
|
||||
"exportButton": "Export",
|
||||
"currencyText": "Currency",
|
||||
"importButton": "Import",
|
||||
"filterText": "Filter",
|
||||
"billableOnlyText": "Billable Only",
|
||||
"nonBillableOnlyText": "Non-Billable Only",
|
||||
"allTasksText": "All Tasks",
|
||||
"projectBudgetOverviewText": "Project Budget Overview",
|
||||
"taskColumn": "Task",
|
||||
"membersColumn": "Members",
|
||||
"hoursColumn": "Estimated Hours",
|
||||
"manDaysColumn": "Estimated Man Days",
|
||||
"actualManDaysColumn": "Actual Man Days",
|
||||
"effortVarianceColumn": "Effort Variance",
|
||||
"totalTimeLoggedColumn": "Total Time Logged",
|
||||
"costColumn": "Actual Cost",
|
||||
"estimatedCostColumn": "Estimated Cost",
|
||||
"fixedCostColumn": "Fixed Cost",
|
||||
"totalBudgetedCostColumn": "Total Budgeted Cost",
|
||||
"totalActualCostColumn": "Total Actual Cost",
|
||||
"varianceColumn": "Variance",
|
||||
"phaseText": "Fase",
|
||||
"priorityText": "Prioridade",
|
||||
"exportButton": "Exportar",
|
||||
"currencyText": "Moeda",
|
||||
"importButton": "Importar",
|
||||
"filterText": "Filtrar",
|
||||
"billableOnlyText": "Apenas Faturável",
|
||||
"nonBillableOnlyText": "Apenas Não Faturável",
|
||||
"allTasksText": "Todas as Tarefas",
|
||||
"projectBudgetOverviewText": "Visão Geral do Orçamento do Projeto",
|
||||
"taskColumn": "Tarefa",
|
||||
"membersColumn": "Membros",
|
||||
"hoursColumn": "Horas Estimadas",
|
||||
"manDaysColumn": "Dias-Homem Estimados",
|
||||
"actualManDaysColumn": "Dias-Homem Reais",
|
||||
"effortVarianceColumn": "Variação do Esforço",
|
||||
"totalTimeLoggedColumn": "Tempo Total Registrado",
|
||||
"costColumn": "Custo Real",
|
||||
"estimatedCostColumn": "Custo Estimado",
|
||||
"fixedCostColumn": "Custo Fixo",
|
||||
"totalBudgetedCostColumn": "Custo Total Orçado",
|
||||
"totalActualCostColumn": "Custo Total Real",
|
||||
"varianceColumn": "Variação",
|
||||
"totalText": "Total",
|
||||
"noTasksFound": "No tasks found",
|
||||
"addRoleButton": "+ Add Role",
|
||||
"ratecardImportantNotice": "* This rate card is generated based on the company's standard job titles and rates. However, you have the flexibility to modify it according to the project. These changes will not impact the organization's standard job titles and rates.",
|
||||
"saveButton": "Save",
|
||||
"jobTitleColumn": "Job Title",
|
||||
"ratePerHourColumn": "Rate per hour",
|
||||
"ratePerManDayColumn": "Rate per man day",
|
||||
"calculationMethodText": "Calculation Method",
|
||||
"hourlyRatesText": "Hourly Rates",
|
||||
"manDaysText": "Man Days",
|
||||
"hoursPerDayText": "Hours per Day",
|
||||
"ratecardPluralText": "Rate Cards",
|
||||
"labourHoursColumn": "Labour Hours",
|
||||
"actions": "Actions",
|
||||
"selectJobTitle": "Select Job Title",
|
||||
"ratecardsPluralText": "Rate Card Templates",
|
||||
"deleteConfirm": "Are you sure ?",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"alreadyImportedRateCardMessage": "A rate card has already been imported. Clear all imported rate cards to add a new one.",
|
||||
"noTasksFound": "Nenhuma tarefa encontrada",
|
||||
"addRoleButton": "+ Adicionar Função",
|
||||
"ratecardImportantNotice": "* Esta tabela de preços é gerada com base nos cargos padrão e taxas da empresa. No entanto, você tem a flexibilidade de modificá-la de acordo com o projeto. Essas alterações não afetarão os cargos padrão e taxas da organização.",
|
||||
"saveButton": "Salvar",
|
||||
"jobTitleColumn": "Cargo",
|
||||
"ratePerHourColumn": "Taxa por hora",
|
||||
"ratePerManDayColumn": "Taxa por dia-homem",
|
||||
"calculationMethodText": "Método de Cálculo",
|
||||
"hourlyRatesText": "Taxas por Hora",
|
||||
"manDaysText": "Dias-Homem",
|
||||
"hoursPerDayText": "Horas por Dia",
|
||||
"ratecardPluralText": "Tabelas de Preços",
|
||||
"labourHoursColumn": "Horas de Trabalho",
|
||||
"actions": "Ações",
|
||||
"selectJobTitle": "Selecionar Cargo",
|
||||
"ratecardsPluralText": "Modelos de Tabela de Preços",
|
||||
"deleteConfirm": "Tem certeza?",
|
||||
"yes": "Sim",
|
||||
"no": "Não",
|
||||
"alreadyImportedRateCardMessage": "Uma tabela de preços já foi importada. Limpe todas as tabelas de preços importadas para adicionar uma nova.",
|
||||
"budgetOverviewTooltips": {
|
||||
"manualBudget": "Manual project budget amount set by project manager",
|
||||
"totalActualCost": "Total actual cost including fixed costs",
|
||||
"variance": "Difference between manual budget and actual cost",
|
||||
"utilization": "Percentage of manual budget utilized",
|
||||
"estimatedHours": "Total estimated hours from all tasks",
|
||||
"fixedCosts": "Total fixed costs from all tasks",
|
||||
"timeBasedCost": "Actual cost from time tracking (excluding fixed costs)",
|
||||
"remainingBudget": "Remaining budget amount"
|
||||
"manualBudget": "Valor do orçamento manual do projeto definido pelo gerente do projeto",
|
||||
"totalActualCost": "Custo total real incluindo custos fixos",
|
||||
"variance": "Diferença entre orçamento manual e custo real",
|
||||
"utilization": "Porcentagem do orçamento manual utilizado",
|
||||
"estimatedHours": "Total de horas estimadas de todas as tarefas",
|
||||
"fixedCosts": "Total de custos fixos de todas as tarefas",
|
||||
"timeBasedCost": "Custo real do rastreamento de tempo (excluindo custos fixos)",
|
||||
"remainingBudget": "Valor do orçamento restante"
|
||||
},
|
||||
"budgetModal": {
|
||||
"title": "Edit Project Budget",
|
||||
"description": "Set a manual budget for this project. This budget will be used for all financial calculations and should include both time-based costs and fixed costs.",
|
||||
"placeholder": "Enter budget amount",
|
||||
"saveButton": "Save",
|
||||
"cancelButton": "Cancel"
|
||||
"title": "Editar Orçamento do Projeto",
|
||||
"description": "Defina um orçamento manual para este projeto. Este orçamento será usado para todos os cálculos financeiros e deve incluir tanto custos baseados em tempo quanto custos fixos.",
|
||||
"placeholder": "Digite o valor do orçamento",
|
||||
"saveButton": "Salvar",
|
||||
"cancelButton": "Cancelar"
|
||||
},
|
||||
"budgetStatistics": {
|
||||
"manualBudget": "Manual Budget",
|
||||
"totalActualCost": "Total Actual Cost",
|
||||
"variance": "Variance",
|
||||
"budgetUtilization": "Budget Utilization",
|
||||
"estimatedHours": "Estimated Hours",
|
||||
"fixedCosts": "Fixed Costs",
|
||||
"timeBasedCost": "Time-based Cost",
|
||||
"remainingBudget": "Remaining Budget",
|
||||
"noManualBudgetSet": "(No Manual Budget Set)"
|
||||
"manualBudget": "Orçamento Manual",
|
||||
"totalActualCost": "Custo Total Real",
|
||||
"variance": "Variação",
|
||||
"budgetUtilization": "Utilização do Orçamento",
|
||||
"estimatedHours": "Horas Estimadas",
|
||||
"fixedCosts": "Custos Fixos",
|
||||
"timeBasedCost": "Custo Baseado em Tempo",
|
||||
"remainingBudget": "Orçamento Restante",
|
||||
"noManualBudgetSet": "(Nenhum Orçamento Manual Definido)"
|
||||
},
|
||||
"budgetSettingsDrawer": {
|
||||
"title": "Project Budget Settings",
|
||||
"budgetConfiguration": "Budget Configuration",
|
||||
"projectBudget": "Project Budget",
|
||||
"projectBudgetTooltip": "Total budget allocated for this project",
|
||||
"currency": "Currency",
|
||||
"costCalculationMethod": "Cost Calculation Method",
|
||||
"calculationMethod": "Calculation Method",
|
||||
"workingHoursPerDay": "Working Hours per Day",
|
||||
"workingHoursPerDayTooltip": "Number of working hours in a day for man-day calculations",
|
||||
"hourlyCalculationInfo": "Costs will be calculated using estimated hours × hourly rates",
|
||||
"manDaysCalculationInfo": "Costs will be calculated using estimated man days × daily rates",
|
||||
"importantNotes": "Important Notes",
|
||||
"calculationMethodChangeNote": "• Changing the calculation method will affect how costs are calculated for all tasks in this project",
|
||||
"immediateEffectNote": "• Changes take effect immediately and will recalculate all project totals",
|
||||
"projectWideNote": "• Budget settings apply to the entire project and all its tasks",
|
||||
"cancel": "Cancel",
|
||||
"saveChanges": "Save Changes",
|
||||
"budgetSettingsUpdated": "Budget settings updated successfully",
|
||||
"budgetSettingsUpdateFailed": "Failed to update budget settings"
|
||||
"title": "Configurações de Orçamento do Projeto",
|
||||
"budgetConfiguration": "Configuração do Orçamento",
|
||||
"projectBudget": "Orçamento do Projeto",
|
||||
"projectBudgetTooltip": "Orçamento total alocado para este projeto",
|
||||
"currency": "Moeda",
|
||||
"costCalculationMethod": "Método de Cálculo de Custo",
|
||||
"calculationMethod": "Método de Cálculo",
|
||||
"workingHoursPerDay": "Horas de Trabalho por Dia",
|
||||
"workingHoursPerDayTooltip": "Número de horas de trabalho em um dia para cálculos de dia-homem",
|
||||
"hourlyCalculationInfo": "Os custos serão calculados usando horas estimadas × taxas por hora",
|
||||
"manDaysCalculationInfo": "Os custos serão calculados usando dias-homem estimados × taxas diárias",
|
||||
"importantNotes": "Notas Importantes",
|
||||
"calculationMethodChangeNote": "• Alterar o método de cálculo afetará como os custos são calculados para todas as tarefas neste projeto",
|
||||
"immediateEffectNote": "• As alterações entram em vigor imediatamente e recalcularão todos os totais do projeto",
|
||||
"projectWideNote": "• As configurações de orçamento se aplicam a todo o projeto e todas as suas tarefas",
|
||||
"cancel": "Cancelar",
|
||||
"saveChanges": "Salvar Alterações",
|
||||
"budgetSettingsUpdated": "Configurações de orçamento atualizadas com sucesso",
|
||||
"budgetSettingsUpdateFailed": "Falha ao atualizar configurações de orçamento"
|
||||
},
|
||||
"columnTooltips": {
|
||||
"hours": "Total estimated hours for all tasks. Calculated from task time estimates.",
|
||||
"manDays": "Total estimated man days for all tasks. Based on {{hoursPerDay}} hours per working day.",
|
||||
"actualManDays": "Actual man days spent based on time logged. Calculated as: Total Time Logged ÷ {{hoursPerDay}} hours per day.",
|
||||
"effortVariance": "Difference between estimated and actual man days. Positive values indicate over-estimation, negative values indicate under-estimation.",
|
||||
"totalTimeLogged": "Total time actually logged by team members across all tasks.",
|
||||
"estimatedCostHourly": "Estimated cost calculated as: Estimated Hours × Hourly Rates for assigned team members.",
|
||||
"estimatedCostManDays": "Estimated cost calculated as: Estimated Man Days × Daily Rates for assigned team members.",
|
||||
"actualCost": "Actual cost based on time logged. Calculated as: Time Logged × Hourly Rates for team members.",
|
||||
"fixedCost": "Fixed costs that don't depend on time spent. Added manually per task.",
|
||||
"totalBudgetHourly": "Total budgeted cost including estimated cost (Hours × Hourly Rates) + Fixed Costs.",
|
||||
"totalBudgetManDays": "Total budgeted cost including estimated cost (Man Days × Daily Rates) + Fixed Costs.",
|
||||
"totalActual": "Total actual cost including time-based cost + Fixed Costs.",
|
||||
"variance": "Cost variance: Total Budgeted Costs - Total Actual Cost. Positive values indicate under-budget, negative values indicate over-budget."
|
||||
"hours": "Total de horas estimadas para todas as tarefas. Calculado a partir das estimativas de tempo das tarefas.",
|
||||
"manDays": "Total de dias-homem estimados para todas as tarefas. Baseado em {{hoursPerDay}} horas por dia de trabalho.",
|
||||
"actualManDays": "Dias-homem reais gastos com base no tempo registrado. Calculado como: Tempo Total Registrado ÷ {{hoursPerDay}} horas por dia.",
|
||||
"effortVariance": "Diferença entre dias-homem estimados e reais. Valores positivos indicam superestimação, valores negativos indicam subestimação.",
|
||||
"totalTimeLogged": "Tempo total realmente registrado pelos membros da equipe em todas as tarefas.",
|
||||
"estimatedCostHourly": "Custo estimado calculado como: Horas Estimadas × Taxas por Hora para membros da equipe designados.",
|
||||
"estimatedCostManDays": "Custo estimado calculado como: Dias-Homem Estimados × Taxas Diárias para membros da equipe designados.",
|
||||
"actualCost": "Custo real baseado no tempo registrado. Calculado como: Tempo Registrado × Taxas por Hora para membros da equipe.",
|
||||
"fixedCost": "Custos fixos que não dependem do tempo gasto. Adicionados manualmente por tarefa.",
|
||||
"totalBudgetHourly": "Custo total orçado incluindo custo estimado (Horas × Taxas por Hora) + Custos Fixos.",
|
||||
"totalBudgetManDays": "Custo total orçado incluindo custo estimado (Dias-Homem × Taxas Diárias) + Custos Fixos.",
|
||||
"totalActual": "Custo total real incluindo custo baseado em tempo + Custos Fixos.",
|
||||
"variance": "Variação de custo: Custos Totais Orçados - Custo Total Real. Valores positivos indicam abaixo do orçamento, valores negativos indicam acima do orçamento."
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user