321 lines
31 KiB
PHP
321 lines
31 KiB
PHP
<?php
|
|
|
|
use App\Http\Controllers\AdministrativeGeographyController;
|
|
use App\Http\Controllers\AuditMetadataController;
|
|
use App\Http\Controllers\AutomaticPurchaseController;
|
|
use App\Http\Controllers\BudgetController;
|
|
use App\Http\Controllers\BudgetReinforcementController;
|
|
use App\Http\Controllers\CandidatePortalController;
|
|
use App\Http\Controllers\CommonStockReadController;
|
|
use App\Http\Controllers\CompanyController;
|
|
use App\Http\Controllers\ConflictDeclarationController;
|
|
use App\Http\Controllers\DocumentaryQualificationController;
|
|
use App\Http\Controllers\EquipmentController;
|
|
use App\Http\Controllers\ExternalPaymentController;
|
|
use App\Http\Controllers\FormalAdmissionController;
|
|
use App\Http\Controllers\FormalRecommendationController;
|
|
use App\Http\Controllers\GeneralLedgerController;
|
|
use App\Http\Controllers\GoodsReceiptController;
|
|
use App\Http\Controllers\InventoryDispositionController;
|
|
use App\Http\Controllers\InventoryLotController;
|
|
use App\Http\Controllers\InventoryReversalController;
|
|
use App\Http\Controllers\InvestmentPolicyController;
|
|
use App\Http\Controllers\InvoiceController;
|
|
use App\Http\Controllers\OrderCancellationController;
|
|
use App\Http\Controllers\OrganizationConfigurationController;
|
|
use App\Http\Controllers\PeopleHiringController;
|
|
use App\Http\Controllers\PeopleRegistryController;
|
|
use App\Http\Controllers\PeopleReportController;
|
|
use App\Http\Controllers\ProcurementReportController;
|
|
use App\Http\Controllers\ProcurementReviewReportController;
|
|
use App\Http\Controllers\ProposalOpeningController;
|
|
use App\Http\Controllers\PurchaseControlController;
|
|
use App\Http\Controllers\PurchaseController;
|
|
use App\Http\Controllers\PurchasePlanningController;
|
|
use App\Http\Controllers\PurchaseProcessController;
|
|
use App\Http\Controllers\QuotationController;
|
|
use App\Http\Controllers\ReceiptDocumentController;
|
|
use App\Http\Controllers\RequisitionAuditController;
|
|
use App\Http\Controllers\RequisitionCatalogueController;
|
|
use App\Http\Controllers\RequisitionController;
|
|
use App\Http\Controllers\StockController;
|
|
use App\Http\Controllers\StockOperationController;
|
|
use App\Http\Controllers\SubmissionFormsController;
|
|
use App\Http\Controllers\SupplierBankController;
|
|
use App\Http\Controllers\SupplierController;
|
|
use App\Http\Controllers\SupplierDocumentController;
|
|
use App\Http\Controllers\SupplierEvaluationController;
|
|
use App\Http\Controllers\SupplierImprovementController;
|
|
use App\Http\Controllers\SupplierImprovementReportController;
|
|
use App\Http\Controllers\SupplierPayablesController;
|
|
use App\Http\Controllers\SupplierPaymentsController;
|
|
use App\Http\Controllers\SupplierResponseController;
|
|
use App\Http\Controllers\SupplyCoordinationReportController;
|
|
use App\Http\Controllers\SupplyPlanningController;
|
|
use App\Http\Controllers\WarehouseAvailabilityController;
|
|
use App\Http\Controllers\WarehouseExchangeController;
|
|
use App\Http\Controllers\WarehousePilotController;
|
|
use App\Http\Controllers\WarehouseRequestController;
|
|
use App\Http\Controllers\WarehouseReturnController;
|
|
use App\Http\Controllers\WorkContextController;
|
|
use App\Http\Controllers\WorkflowNoticeController;
|
|
use App\Http\Controllers\WorkflowTaskInboxController;
|
|
use App\Http\Middleware\EnsureCompanyIsConfigured;
|
|
use App\Http\Middleware\EnsureOrganizationAccess;
|
|
use App\Http\Middleware\EnsureWorkContext;
|
|
use App\Services\EvaluationNavigation;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Route;
|
|
|
|
if (app()->environment('payable-testing')) {
|
|
require __DIR__.'/evaluation.php';
|
|
}
|
|
|
|
Route::get('/', function (Request $request) {
|
|
if (EvaluationNavigation::local($request) && $request->getHost() === '127.0.0.1' && $request->getPort() === 8005) {
|
|
return redirect('/dashboard');
|
|
}
|
|
|
|
return inertia('home', ['auth' => ['user' => null]]);
|
|
})->name('home');
|
|
require __DIR__.'/preview.php';
|
|
|
|
Route::get('candidaturas/{company}/divisao-administrativa', [CandidatePortalController::class, 'geography'])->whereNumber('company')->middleware('throttle:60,1');
|
|
Route::get('candidaturas/{company}/oportunidades/{process}', [CandidatePortalController::class, 'opportunity'])->whereNumber(['company', 'process']);
|
|
Route::post('candidaturas/{company}/oportunidades/{process}', [CandidatePortalController::class, 'submit'])->whereNumber(['company', 'process'])->middleware('throttle:12,1');
|
|
Route::get('candidaturas/{company}/submissoes/{submission}', [CandidatePortalController::class, 'receipt'])->whereNumber(['company', 'submission']);
|
|
Route::get('candidaturas/{company}/submissoes/{submission}/documentos/{document}', [CandidatePortalController::class, 'candidateDocument'])->whereNumber(['company', 'submission'])->where('document', '[a-z][a-z0-9_]{0,49}');
|
|
|
|
Route::get('candidaturas/{company}/{purpose}', [CandidatePortalController::class, 'accessPage'])->whereNumber('company')->whereIn('purpose', ['recuperar', 'confirmar-email']);
|
|
Route::post('candidaturas/{company}/{purpose}', [CandidatePortalController::class, 'confirmAccess'])->whereNumber('company')->whereIn('purpose', ['recuperar', 'confirmar-email'])->middleware('throttle:6,1');
|
|
Route::post('candidaturas/{company}/pedir-recuperacao', [CandidatePortalController::class, 'requestAccess'])->whereNumber('company')->middleware('throttle:6,1');
|
|
Route::post('candidaturas/{company}/pedir-confirmacao', [CandidatePortalController::class, 'requestVerification'])->whereNumber('company')->middleware('throttle:6,1');
|
|
|
|
Route::get('candidaturas/{company}', [CandidatePortalController::class, 'entry'])->whereNumber('company');
|
|
Route::post('candidaturas/{company}/registar', [CandidatePortalController::class, 'register'])->whereNumber('company')->middleware('throttle:6,1');
|
|
Route::post('candidaturas/{company}/entrar', [CandidatePortalController::class, 'login'])->whereNumber('company')->middleware('throttle:6,1');
|
|
Route::get('candidaturas/{company}/perfil', [CandidatePortalController::class, 'show'])->whereNumber('company');
|
|
Route::post('candidaturas/{company}/perfil', [CandidatePortalController::class, 'save'])->whereNumber('company')->middleware('throttle:30,1');
|
|
Route::post('candidaturas/{company}/sair', [CandidatePortalController::class, 'logout'])->whereNumber('company');
|
|
|
|
Route::middleware(['auth', 'verified', EnsureOrganizationAccess::class])->group(function () {
|
|
Route::post('contexto', [WorkContextController::class, 'select'])->name('work-context.select');
|
|
Route::get('dashboard', [RequisitionController::class, 'dashboard'])->name('dashboard');
|
|
Route::get('empresa/iniciar', [CompanyController::class, 'setup'])->name('company.setup');
|
|
Route::post('empresa/iniciar', [CompanyController::class, 'store'])->name('company.store');
|
|
|
|
Route::middleware([EnsureCompanyIsConfigured::class, EnsureWorkContext::class])->group(function () {
|
|
Route::get('facturas/envio-sgf', [\App\Http\Controllers\SgfInvoiceDispatchController::class,'index']);
|
|
Route::post('facturas/envio-sgf', [\App\Http\Controllers\SgfInvoiceDispatchController::class,'create']);
|
|
Route::get('facturas/envio-sgf/{id}', [\App\Http\Controllers\SgfInvoiceDispatchController::class,'show'])->whereNumber('id');
|
|
Route::post('facturas/envio-sgf/{id}/rever', [\App\Http\Controllers\SgfInvoiceDispatchController::class,'revise'])->whereNumber('id');
|
|
Route::post('facturas/envio-sgf/{id}/operar', [\App\Http\Controllers\SgfInvoiceDispatchController::class,'dispatch'])->whereNumber('id');
|
|
Route::get('administracao/divisao-administrativa', [AdministrativeGeographyController::class, 'review']);
|
|
Route::get('administracao/divisao-administrativa.csv', [AdministrativeGeographyController::class, 'exportReview']);
|
|
Route::post('stock/armazens/{warehouse}/localizacao', [StockController::class, 'warehouseGeography'])->whereNumber('warehouse');
|
|
Route::get('api/divisao-administrativa', [AdministrativeGeographyController::class, 'index']);
|
|
Route::post('empresa/localizacao', [AdministrativeGeographyController::class, 'company']);
|
|
Route::get('api/stock-read', [CommonStockReadController::class, 'index']);
|
|
Route::get('api/stock-returns', [WarehouseReturnController::class, 'index']);
|
|
Route::get('api/stock-returns/sources', [WarehouseReturnController::class, 'sources']);
|
|
Route::get('stock/devolucoes-internas', [WarehouseReturnController::class, 'page']);
|
|
Route::post('api/stock-returns/prepare', [WarehouseReturnController::class, 'prepare']);
|
|
Route::post('api/stock-returns/{id}/confirm', [WarehouseReturnController::class, 'confirm'])->whereNumber('id');
|
|
Route::post('api/stock-returns/{id}/withdraw', [WarehouseReturnController::class, 'withdraw'])->whereNumber('id');
|
|
Route::post('api/stock-returns/{id}/reject', [WarehouseReturnController::class, 'reject'])->whereNumber('id');
|
|
Route::get('compras/fornecimento', [SupplyPlanningController::class, 'index'])->name('supply.index');
|
|
Route::get('compras/fornecimento.csv', [SupplyCoordinationReportController::class, 'csv'])->name('supply.coordination.csv');
|
|
Route::get('stock/lotes', [InventoryLotController::class, 'index']);
|
|
Route::post('stock/lotes', [InventoryLotController::class, 'save']);
|
|
Route::get('stock/ocorrencias', [InventoryDispositionController::class, 'index']);
|
|
Route::post('stock/ocorrencias', [InventoryDispositionController::class, 'save']);
|
|
Route::get('stock/estornos', [InventoryReversalController::class, 'index']);
|
|
Route::post('stock/estornos', [InventoryReversalController::class, 'save']);
|
|
Route::post('compras/fornecimento/{kind}', [SupplyPlanningController::class, 'save'])->whereIn('kind', ['agreement', 'policy', 'import', 'alternative', 'reservation', 'delivery', 'suggestion', 'history']);
|
|
Route::post('pessoas/{process}/recebidas/{submission}/triagem', [CandidatePortalController::class, 'triage'])->whereNumber(['process', 'submission']);
|
|
Route::get('pessoas/{process}/divisao-administrativa', [CandidatePortalController::class, 'processGeography'])->whereNumber('process');
|
|
Route::get('pessoas/{process}/recebidas', [CandidatePortalController::class, 'inbox'])->whereNumber('process');
|
|
Route::get('pessoas/{process}/recebidas/{submission}/documentos/{document}', [CandidatePortalController::class, 'staffDocument'])->whereNumber(['process', 'submission'])->where('document', '[a-z][a-z0-9_]{0,49}');
|
|
Route::post('pessoas/{process}/publicacao', [CandidatePortalController::class, 'publish'])->whereNumber('process');
|
|
Route::get('administracao/candidaturas/portal', [CandidatePortalController::class, 'settings']);
|
|
Route::post('administracao/candidaturas/portal', [CandidatePortalController::class, 'configure']);
|
|
Route::get('administracao/candidaturas/formularios', [SubmissionFormsController::class, 'index']);
|
|
Route::post('administracao/candidaturas/formularios', [SubmissionFormsController::class, 'save']);
|
|
Route::get('pessoas', [PeopleHiringController::class, 'index']);
|
|
Route::get('requisicoes/avisos', [WorkflowNoticeController::class, 'index']);
|
|
Route::get('requisicoes/tarefas', [WorkflowTaskInboxController::class, 'procurement']);
|
|
Route::get('pessoas/tarefas', [WorkflowTaskInboxController::class, 'people']);
|
|
Route::get('stock/disponibilidade', [WarehouseAvailabilityController::class, 'index']);
|
|
Route::get('stock/piloto', [WarehousePilotController::class, 'index']);
|
|
Route::get('stock/piloto.csv', [WarehousePilotController::class, 'export']);
|
|
Route::get('stock/reposicao', [AutomaticPurchaseController::class, 'index']);
|
|
Route::post('stock/reposicao', [AutomaticPurchaseController::class, 'save']);
|
|
Route::post('stock/reposicao/trabalhos/{id}/avaliar', [AutomaticPurchaseController::class, 'recover'])->whereNumber('id');
|
|
Route::post('stock/reposicao/{id}/avaliar', [AutomaticPurchaseController::class, 'evaluate'])->whereNumber('id');
|
|
Route::get('stock/integracao/entregas', [WarehouseExchangeController::class, 'index']);
|
|
Route::get('stock/requisicoes', [WarehouseRequestController::class, 'index']);
|
|
Route::post('stock/requisicoes', [WarehouseRequestController::class, 'store']);
|
|
Route::get('stock/requisicoes/{id}', [WarehouseRequestController::class, 'show'])->whereNumber('id');
|
|
Route::get('stock/requisicoes.csv', [WarehouseRequestController::class, 'csv']);
|
|
Route::get('stock/requisicoes/{id}/imprimir', [WarehouseRequestController::class, 'printRequest'])->whereNumber('id');
|
|
Route::get('stock/requisicoes/{id}/entregas/{delivery}/imprimir', [WarehouseRequestController::class, 'printDelivery'])->whereNumber(['id', 'delivery']);
|
|
Route::post('stock/requisicoes/{id}/eventos', [WarehouseRequestController::class, 'command'])->whereNumber('id');
|
|
Route::post('requisicoes/{requisition}/encaminhamento', [WorkflowNoticeController::class, 'refresh'])->whereNumber('requisition');
|
|
Route::post('requisicoes/avisos/{notice}/ler', [WorkflowNoticeController::class, 'read'])->whereNumber('notice');
|
|
Route::get('pessoas/relatorios', [PeopleReportController::class, 'index'])->name('people.reports');
|
|
Route::get('pessoas/relatorios.csv', [PeopleReportController::class, 'index'])->name('people.reports.csv');
|
|
Route::post('pessoas', [PeopleHiringController::class, 'store']);
|
|
Route::get('pessoas/cadastro', [PeopleRegistryController::class, 'index']);
|
|
Route::post('pessoas/cadastro', [PeopleRegistryController::class, 'save']);
|
|
Route::post('pessoas/cadastro/{person}', [PeopleRegistryController::class, 'save'])->whereNumber('person');
|
|
Route::get('pessoas/{process}/acessos', [PeopleHiringController::class, 'access'])->whereNumber('process');
|
|
Route::post('pessoas/{process}/acessos', [PeopleHiringController::class, 'assign'])->whereNumber('process');
|
|
Route::post('pessoas/{process}/esclarecimentos/{command}', [PeopleHiringController::class, 'clarification'])->whereNumber('process')->whereIn('command', ['create', 'reassign', 'respond', 'review']);
|
|
Route::get('pessoas/{process}', [PeopleHiringController::class, 'show'])->whereNumber('process');
|
|
Route::get('auditoria/eventos', [AuditMetadataController::class, 'index']);
|
|
Route::get('auditoria/eventos.csv', [AuditMetadataController::class, 'csv']);
|
|
Route::get('pessoas/{process}/dossier.json', [PeopleHiringController::class, 'dossier'])->whereNumber('process');
|
|
Route::post('pessoas/{process}/{command}', [PeopleHiringController::class, 'command'])->whereNumber('process')->whereIn('command', ['open', 'apply', 'close', 'evaluate', 'select', 'confirm', 'contract']);
|
|
Route::get('administracao/parametrizacao', [OrganizationConfigurationController::class, 'index'])->name('organization.parameters');
|
|
Route::post('administracao/parametrizacao/{command}', [OrganizationConfigurationController::class, 'command'])->whereIn('command', ['profile', 'user', 'assign', 'activate', 'rules', 'tax', 'comparison', 'intelligence', 'ai_plan', 'work_contexts']);
|
|
Route::get('fornecedores/avaliacoes', [SupplierEvaluationController::class, 'index'])->name('suppliers.evaluations');
|
|
Route::get('relatorios/medidas-fornecedores', [SupplierImprovementReportController::class, 'index'])->name('supplier-improvements.report');
|
|
Route::get('relatorios/medidas-fornecedores.csv', [SupplierImprovementReportController::class, 'csv']);
|
|
Route::post('fornecedores/avaliacoes', [SupplierEvaluationController::class, 'store'])->name('supplier-evaluations.store');
|
|
Route::get('fornecedores/avaliacoes/{evaluation}', [SupplierEvaluationController::class, 'show'])->whereNumber('evaluation')->name('supplier-evaluations.show');
|
|
Route::put('fornecedores/avaliacoes/{evaluation}', [SupplierEvaluationController::class, 'update'])->whereNumber('evaluation');
|
|
Route::post('fornecedores/avaliacoes/{evaluation}/rever', [SupplierEvaluationController::class, 'revise'])->whereNumber('evaluation');
|
|
Route::post('fornecedores/avaliacoes/{evaluation}/{action}', [SupplierEvaluationController::class, 'transition'])->whereNumber('evaluation')->whereIn('action', ['submit', 'approve', 'return']);
|
|
Route::get('fornecedores/avaliacoes/{evaluation}/relatorio', [SupplierEvaluationController::class, 'report'])->whereNumber('evaluation')->name('supplier-evaluations.report');
|
|
Route::post('fornecedores/avaliacoes/{evaluation}/contraditorios', [SupplierResponseController::class, 'store'])->whereNumber('evaluation');
|
|
Route::post('fornecedores/avaliacoes/{evaluation}/contraditorios/{record}/{command}', [SupplierResponseController::class, 'update'])->whereNumber('evaluation')->whereNumber('record')->whereIn('command', ['save', 'submit', 'return', 'decide']);
|
|
Route::post('fornecedores/avaliacoes/{evaluation}/medidas', [SupplierImprovementController::class, 'store'])->whereNumber('evaluation');
|
|
Route::post('fornecedores/avaliacoes/{evaluation}/medidas/{measure}/{command}', [SupplierImprovementController::class, 'update'])->whereNumber('evaluation')->whereNumber('measure')->whereIn('command', ['plan', 'progress', 'submit', 'close', 'return']);
|
|
Route::get('obrigacoes-fornecedores', [SupplierPayablesController::class, 'page']);
|
|
Route::get('supplier-payments', [SupplierPaymentsController::class, 'page']);
|
|
Route::get('api/supplier-payments', [SupplierPaymentsController::class, 'index']);
|
|
Route::post('api/supplier-payments/{action}', [SupplierPaymentsController::class, 'command'])->whereIn('action', ['payment-prepare', 'payment-decide', 'allocation-prepare', 'allocation-decide', 'reversal-prepare', 'reversal-confirm']);
|
|
Route::get('api/supplier-payables', [SupplierPayablesController::class, 'index']);
|
|
Route::get('general-ledger/cycle', [GeneralLedgerController::class, 'page']);
|
|
Route::get('general-ledger/{kind}', [GeneralLedgerController::class, 'report'])->whereIn('kind', ['trial-balance', 'account-ledger']);
|
|
Route::get('api/general-ledger/{kind}', [GeneralLedgerController::class, 'report'])->whereIn('kind', ['trial-balance', 'account-ledger']);
|
|
Route::get('api/general-ledger/cycle', [GeneralLedgerController::class, 'index']);
|
|
Route::post('api/general-ledger/{action}', [GeneralLedgerController::class, 'command'])->whereIn('action', ['prepare', 'validate', 'post', 'effect-prepare', 'correct-prepare', 'correct-validate', 'correct-post', 'period-prepare', 'period-validate', 'period-close']);
|
|
Route::post('api/supplier-payables/{action}', [SupplierPayablesController::class, 'command'])->whereIn('action', ['prepare', 'validate', 'prepare_history', 'validate_history']);
|
|
Route::get('politica-recomendacao', [FormalRecommendationController::class, 'policy'])->name('recommendations.policy');
|
|
Route::post('politica-recomendacao', [FormalRecommendationController::class, 'configure']);
|
|
Route::get('requisicoes/{requisition}/recomendacao', [FormalRecommendationController::class, 'show'])->name('recommendations.show');
|
|
Route::post('requisicoes/{requisition}/recomendacao/adoptar', [FormalRecommendationController::class, 'adopt']);
|
|
Route::post('requisicoes/{requisition}/recomendacao/tentativas', [FormalRecommendationController::class, 'propose']);
|
|
Route::post('recomendacoes/{attempt}/conferir', [FormalRecommendationController::class, 'review']);
|
|
Route::get('recomendacoes/{attempt}/imprimir', [FormalRecommendationController::class, 'print'])->name('recommendations.print');
|
|
Route::get('politica-admissao', [FormalAdmissionController::class, 'policy'])->name('admissions.policy');
|
|
Route::post('politica-admissao', [FormalAdmissionController::class, 'configure']);
|
|
Route::get('requisicoes/{requisition}/admissao', [FormalAdmissionController::class, 'show'])->name('admissions.show');
|
|
Route::post('requisicoes/{requisition}/admissao/adoptar', [FormalAdmissionController::class, 'adopt']);
|
|
Route::post('requisicoes/{requisition}/admissao/decisoes', [FormalAdmissionController::class, 'propose']);
|
|
Route::post('admissoes/{decision}/conferir', [FormalAdmissionController::class, 'review']);
|
|
Route::get('requisicoes/{requisition}/relatorio', [ProcurementReviewReportController::class, 'show'])->name('purchases.report');
|
|
Route::get('requisicoes/{requisition}/historico.csv', [RequisitionAuditController::class, 'csv'])->whereNumber('requisition')->name('requisitions.audit.csv');
|
|
Route::get('relatorios', [ProcurementReportController::class, 'index'])->name('reports.index');
|
|
Route::get('relatorios/compras.csv', [ProcurementReportController::class, 'export'])->name('reports.export');
|
|
Route::get('requisicoes/{requisition}/qualificacao', [DocumentaryQualificationController::class, 'show'])->name('qualifications.show');
|
|
Route::post('requisicoes/{requisition}/qualificacao', [DocumentaryQualificationController::class, 'define']);
|
|
Route::post('qualificacoes/{set}/analises', [DocumentaryQualificationController::class, 'assess']);
|
|
Route::get('requisicoes/{requisition}/abertura', [ProposalOpeningController::class, 'show'])->name('openings.show');
|
|
Route::post('requisicoes/{requisition}/abertura', [ProposalOpeningController::class, 'store']);
|
|
Route::get('actas/{opening}/imprimir', [ProposalOpeningController::class, 'print'])->name('openings.print');
|
|
Route::get('planeamento', [PurchasePlanningController::class, 'index'])->name('planning.index');
|
|
Route::post('planeamento', [PurchasePlanningController::class, 'store']);
|
|
Route::post('planeamento/{item}/responsavel', [PurchasePlanningController::class, 'assign']);
|
|
Route::post('planeamento/{item}/requisicao', [PurchasePlanningController::class, 'link']);
|
|
Route::post('planeamento/{item}/marcos', [PurchasePlanningController::class, 'milestone']);
|
|
Route::patch('planeamento/marcos/{milestone}', [PurchasePlanningController::class, 'update']);
|
|
Route::get('requisicoes/{requisition}/processo', [PurchaseProcessController::class, 'show'])->name('purchases.process');
|
|
Route::get('revisao-compras', [PurchaseControlController::class, 'index'])->name('purchase-controls.index');
|
|
Route::post('revisao-compras/politicas', [PurchaseControlController::class, 'propose']);
|
|
Route::post('revisao-compras/politicas/{policy}/decidir', [PurchaseControlController::class, 'policyReview']);
|
|
Route::post('adjudicacoes/{award}/cancelamento', [PurchaseControlController::class, 'cancel']);
|
|
Route::post('cancelamentos/{cancellation}/decidir', [PurchaseControlController::class, 'review']);
|
|
Route::post('cancelamentos/{cancellation}/revisao', [PurchaseControlController::class, 'revise']);
|
|
Route::get('regras-investimento', [InvestmentPolicyController::class, 'index'])->name('investment.index');
|
|
Route::post('regras-investimento', [InvestmentPolicyController::class, 'store'])->name('investment.store');
|
|
Route::post('regras-investimento/{policy}/decidir', [InvestmentPolicyController::class, 'review'])->name('investment.review');
|
|
Route::post('orcamentos/{budget}/reforcos', [BudgetReinforcementController::class, 'store'])->name('budgets.reinforcements.store');
|
|
Route::post('reforcos/{reinforcement}/decidir', [BudgetReinforcementController::class, 'review'])->name('budgets.reinforcements.review');
|
|
Route::get('pagamentos', [ExternalPaymentController::class, 'index'])->name('payments.index');
|
|
Route::post('facturas/{invoice}/pagamentos', [ExternalPaymentController::class, 'store'])->name('payments.store');
|
|
Route::post('pagamentos/{payment}/conferir', [ExternalPaymentController::class, 'review'])->name('payments.review');
|
|
Route::get('fornecedores/{supplier}/dados-bancarios', [SupplierBankController::class, 'show'])->name('suppliers.bank');
|
|
Route::post('fornecedores/{supplier}/dados-bancarios', [SupplierBankController::class, 'store'])->name('suppliers.bank.store');
|
|
Route::post('fornecedores/{supplier}/dados-bancarios/{detail}/validar', [SupplierBankController::class, 'review'])->name('suppliers.bank.review');
|
|
Route::get('facturas', [InvoiceController::class, 'index'])->name('invoices.index');
|
|
Route::post('ordens/{order}/facturas', [InvoiceController::class, 'store'])->name('invoices.store');
|
|
Route::post('facturas/{invoice}/validar', [InvoiceController::class, 'validateInvoice'])->name('invoices.validate');
|
|
Route::get('orcamentos', [BudgetController::class, 'index'])->name('budgets.index');
|
|
Route::post('orcamentos', [BudgetController::class, 'store'])->name('budgets.store');
|
|
Route::post('orcamentos/{budget}/aprovar', [BudgetController::class, 'approve'])->name('budgets.approve');
|
|
Route::get('equipamentos', [EquipmentController::class, 'index'])->name('equipment.index');
|
|
Route::get('ordens/cancelamentos', [OrderCancellationController::class, 'index']);
|
|
Route::post('ordens/{order}/cancelamento', [OrderCancellationController::class, 'request'])->whereNumber('order');
|
|
Route::post('ordens/cancelamentos/{cancellation}/decidir', [OrderCancellationController::class, 'decide'])->whereNumber('cancellation');
|
|
Route::post('ordens/cancelamentos/{cancellation}/rever', [OrderCancellationController::class, 'revise'])->whereNumber('cancellation');
|
|
Route::post('ordens/cancelamentos/politicas', [OrderCancellationController::class, 'policy']);
|
|
Route::post('ordens/cancelamentos/politicas/{policy}/decidir', [OrderCancellationController::class, 'policyReview'])->whereNumber('policy');
|
|
Route::get('equipamentos/{equipment}', [EquipmentController::class, 'show'])->whereNumber('equipment')->name('equipment.show');
|
|
Route::post('equipamentos/{kind}', [EquipmentController::class, 'store'])->name('equipment.store');
|
|
Route::post('requisicoes/{requisition}/validacao-tecnica', [RequisitionController::class, 'technical'])->name('requisitions.technical');
|
|
Route::get('recepcoes', [GoodsReceiptController::class, 'index'])->name('receipts.index');
|
|
Route::get('ordens/{order}/recepcoes', [GoodsReceiptController::class, 'order'])->name('receipts.order');
|
|
Route::post('ordens/{order}/recepcoes', [GoodsReceiptController::class, 'store'])->name('receipts.store');
|
|
Route::get('recepcoes/{receipt}', [GoodsReceiptController::class, 'show'])->name('receipts.show');
|
|
Route::get('recepcoes/{receipt}/imprimir', [GoodsReceiptController::class, 'print'])->name('receipts.print');
|
|
Route::post('recepcoes/{receipt}/documentos', [ReceiptDocumentController::class, 'store'])->name('receipts.documents.store');
|
|
Route::get('recepcoes/{receipt}/documentos/{document}', [ReceiptDocumentController::class, 'download'])->whereNumber('document')->name('receipts.documents.download');
|
|
Route::get('stock', [StockController::class, 'index'])->name('stock.index');
|
|
Route::get('stock/operacoes', [StockOperationController::class, 'index'])->name('stock.operations');
|
|
Route::post('stock/operacoes', [StockOperationController::class, 'store'])->name('stock.operations.store');
|
|
Route::post('stock/artigos', [StockController::class, 'item'])->name('stock.items');
|
|
Route::get('stock/catalogo', [RequisitionCatalogueController::class, 'index']);
|
|
Route::post('stock/catalogo/{stock}', [RequisitionCatalogueController::class, 'save'])->whereNumber('stock');
|
|
Route::post('stock/armazens', [StockController::class, 'warehouse'])->name('stock.warehouses');
|
|
Route::get('requisicoes/{requisition}/adjudicacao', [PurchaseController::class, 'award'])->name('purchases.award');
|
|
Route::post('requisicoes/{requisition}/adjudicacao', [PurchaseController::class, 'select'])->name('purchases.select');
|
|
Route::post('adjudicacoes/{award}/decidir', [PurchaseController::class, 'decide'])->name('purchases.decide');
|
|
Route::post('adjudicacoes/{award}/emitir', [PurchaseController::class, 'issue'])->name('purchases.issue');
|
|
Route::get('ordens', [PurchaseController::class, 'index'])->name('orders.index');
|
|
Route::get('ordens/{order}', [PurchaseController::class, 'show'])->name('orders.show');
|
|
Route::get('ordens/{order}/imprimir', [PurchaseController::class, 'print'])->name('orders.print');
|
|
Route::get('conflitos', [ConflictDeclarationController::class, 'index'])->name('conflicts.index');
|
|
Route::post('conflitos', [ConflictDeclarationController::class, 'store'])->name('conflicts.store');
|
|
Route::get('conflitos/{declaration}', [ConflictDeclarationController::class, 'show'])->name('conflicts.show');
|
|
Route::put('conflitos/{declaration}', [ConflictDeclarationController::class, 'update'])->name('conflicts.update');
|
|
Route::get('fornecedores', [SupplierController::class, 'index'])->name('suppliers.index');
|
|
Route::post('fornecedores', [SupplierController::class, 'store'])->name('suppliers.store');
|
|
Route::get('fornecedores/{supplier}', [SupplierController::class, 'show'])->name('suppliers.show');
|
|
Route::get('fornecedores/{supplier}/editar', [SupplierController::class, 'edit'])->name('suppliers.edit');
|
|
Route::put('fornecedores/{supplier}', [SupplierController::class, 'update'])->name('suppliers.update');
|
|
Route::post('fornecedores/{supplier}/documentos', [SupplierDocumentController::class, 'store'])->middleware('throttle:20,1')->name('suppliers.documents.store');
|
|
Route::get('fornecedores/{supplier}/documentos/{document}', [SupplierDocumentController::class, 'download'])->name('suppliers.documents.download');
|
|
Route::post('fornecedores/{supplier}/validar', [SupplierController::class, 'review'])->name('suppliers.review');
|
|
Route::get('cotacoes', [QuotationController::class, 'index'])->name('quotations.index');
|
|
Route::get('requisicoes/{requisition}/cotacoes', [QuotationController::class, 'show'])->name('quotations.show');
|
|
Route::post('requisicoes/{requisition}/cotacoes', [QuotationController::class, 'store'])->name('quotations.store');
|
|
Route::post('cotacoes/{quotation}/avaliar', [QuotationController::class, 'evaluate'])->name('quotations.evaluate');
|
|
Route::get('empresa', [CompanyController::class, 'index'])->name('company.index');
|
|
Route::post('empresa/departamentos', [CompanyController::class, 'department'])->name('company.departments');
|
|
Route::post('empresa/centros-de-custo', [CompanyController::class, 'costCenter'])->name('company.cost-centers');
|
|
Route::post('empresa/utilizadores', [CompanyController::class, 'user'])->name('company.users');
|
|
Route::get('requisicoes', [RequisitionController::class, 'index'])->name('requisitions.index');
|
|
Route::get('requisicoes/criar', [RequisitionController::class, 'create'])->name('requisitions.create');
|
|
Route::post('requisicoes', [RequisitionController::class, 'store'])->name('requisitions.store');
|
|
Route::get('requisicoes/{requisition}', [RequisitionController::class, 'show'])->name('requisitions.show');
|
|
Route::get('requisicoes/{requisition}/editar', [RequisitionController::class, 'edit'])->name('requisitions.edit');
|
|
Route::put('requisicoes/{requisition}', [RequisitionController::class, 'update'])->name('requisitions.update');
|
|
Route::post('requisicoes/{requisition}/submeter', [RequisitionController::class, 'submit'])->name('requisitions.submit');
|
|
Route::post('requisicoes/{requisition}/decidir', [RequisitionController::class, 'decide'])->name('requisitions.decide');
|
|
});
|
|
});
|
|
|
|
require __DIR__.'/settings.php';
|