public tblMatrizWorkzoneHistorico SalvarHistoricoMatrizWorkzone(tblMatrizWorkzoneHistorico matrizHistorico) { _db.tblMatrizWorkzoneHistorico.Add(matrizHistorico); _db.SaveChanges(); var matrizWorkzoneHistorico = getMatrizHistoricoByWZId(matrizHistorico.idWorkzone); return(matrizWorkzoneHistorico); }
public ActionResult SalvarHistorico(int idWorkzone) { tblMatrizWorkzoneHistorico matrizHistorico = new tblMatrizWorkzoneHistorico(); List <tblTreinamento> trainingList = new List <tblTreinamento>(); List <tblMatrizFuncActivityHistorico> atividadeHist = new List <tblMatrizFuncActivityHistorico>(); List <tblMatrizFuncTreinHistorico> trainingHist = new List <tblMatrizFuncTreinHistorico>(); // OBJETOS PARA ADICIONAR TREINAMENTOS E ATIVIDADES NAS LISTAS tblMatrizFuncTreinHistorico newTrainingHistoricoObj = new tblMatrizFuncTreinHistorico(); tblMatrizFuncActivityHistorico newActivityHistoricoObj = new tblMatrizFuncActivityHistorico(); //OBTÉM O ID DA MATRIZ PARA CRIAR O HISTÓRICO E AS INFOS DA WORKZONE(Nome,BU,CC,Linha,Id) var TempMatriz = _matrizTempService.GetMatrizTempByWZId(idWorkzone); var workzone = _workzone.GetWorkzoneById(TempMatriz.idWorkzone); var activiesList = _workzoneXActivity.SetUpActivitiesList(idWorkzone); // ----------- CRIA A TABELA PRINCIPAL DO HISTÓRICO - 'MATRIZ HISTÓRICO' var username = ""; try { username = AuthorizationHelper.GetSystem().Usuario.ChaveAmericas; } catch { username = ""; } matrizHistorico.idWorkzone = TempMatriz.idWorkzone; matrizHistorico.nomeWorkzone = workzone.Nome; matrizHistorico.BUWorkzone = workzone.idBU; matrizHistorico.CCWorkzone = workzone.idCC.ToString(); matrizHistorico.LinhaWorkzone = workzone.idLinha.ToString(); matrizHistorico.DataCriacao = DateTime.Now; matrizHistorico.UsuarioCriacao = username; var matrizHistoricoCreated = _matrizHistoricoService.SalvarHistoricoMatrizWorkzone(matrizHistorico); // VERIFICA SE A MATRIZ POSSUI AVALIAÇÕES EM ATIVIDADE var avalAtiv = _matrizFuncActivityTempService.GetMatrizTempByIdMWZ(TempMatriz.idMatrizWZTemp); foreach (var a in activiesList) { foreach (var wz in workzone.tblWorkzoneXFuncionario) { //Verifica se algum usuário possui avaliação na Atividade[n] var existAvalInActivity = avalAtiv .Where(aa => aa.idAtividade == a.idAtividade && aa.idFuncionario == wz.idFuncionario); var objAtivAval = existAvalInActivity.FirstOrDefault(); //Se a Atividade[n] possui avaliação para aquele usuário // Ele adiciona no histórico if (existAvalInActivity.Count() > 0) { // var existeAtiv = //_matrizHistoricoService.getMatrizHistoricoActivityByWZIdFuncAtiv(matrizHistoricoCreated.idMatrizHistorico, objAtivAval.idFuncionario, objAtivAval.idAtividade); var existeAtiv = atividadeHist.Exists(m => m.idFuncionario == objAtivAval.idFuncionario && m.idMatrizWorkzoneHistorico == matrizHistoricoCreated.idMatrizHistorico && m.idAtividade == objAtivAval.idAtividade); if (!existeAtiv) { newActivityHistoricoObj = new tblMatrizFuncActivityHistorico(); newActivityHistoricoObj.idAtividade = objAtivAval.idAtividade; newActivityHistoricoObj.nomeAtividade = objAtivAval.tblAtividades.Nome; newActivityHistoricoObj.siglaAtividade = objAtivAval.tblAtividades.Sigla; newActivityHistoricoObj.idFuncionario = objAtivAval.idFuncionario; newActivityHistoricoObj.nomeFuncionario = objAtivAval.tblFuncionarios.Nome; newActivityHistoricoObj.REFuncionario = objAtivAval.tblFuncionarios.RE; newActivityHistoricoObj.BUFuncionario = objAtivAval.tblFuncionarios.idBu_Origem.ToString(); newActivityHistoricoObj.idItemPerfil = objAtivAval.idItemPerfil; newActivityHistoricoObj.siglaItemPerfil = objAtivAval.tblPerfilItens.Sigla; newActivityHistoricoObj.alocacaoForcada = objAtivAval.alocacaoForcada; newActivityHistoricoObj.cor = objAtivAval.cor; newActivityHistoricoObj.idMatrizWorkzoneHistorico = matrizHistoricoCreated.idMatrizHistorico; atividadeHist.Add(newActivityHistoricoObj); //_matrizHistoricoService.SalvarActivityHistorico(newActivityHistoricoObj); } } else // Senão ele adiciona aquela atividade[n] sem avaliação { var existeAtiv = atividadeHist.Exists(m => m.idFuncionario == wz.idFuncionario && m.idMatrizWorkzoneHistorico == matrizHistoricoCreated.idMatrizHistorico && m.idAtividade == a.idAtividade); // var existeAtiv = //_matrizHistoricoService.getMatrizHistoricoActivityByWZIdFuncAtiv(matrizHistoricoCreated.idMatrizHistorico, wz.idFuncionario, a.idAtividade); if (!existeAtiv) { newActivityHistoricoObj = new tblMatrizFuncActivityHistorico(); newActivityHistoricoObj.idAtividade = a.idAtividade; newActivityHistoricoObj.nomeAtividade = a.Nome; newActivityHistoricoObj.siglaAtividade = a.Sigla; newActivityHistoricoObj.idFuncionario = wz.idFuncionario; newActivityHistoricoObj.nomeFuncionario = wz.tblFuncionarios.Nome; newActivityHistoricoObj.REFuncionario = wz.tblFuncionarios.RE; newActivityHistoricoObj.BUFuncionario = wz.tblFuncionarios.idBu_Origem.ToString(); newActivityHistoricoObj.idItemPerfil = 0; newActivityHistoricoObj.cor = "gray"; newActivityHistoricoObj.siglaItemPerfil = ""; newActivityHistoricoObj.idMatrizWorkzoneHistorico = matrizHistoricoCreated.idMatrizHistorico; atividadeHist.Add(newActivityHistoricoObj); //_matrizHistoricoService.SalvarActivityHistorico(newActivityHistoricoObj); } } } } // MONTA A LISTA DE TREINAMENTOS foreach (var aList in activiesList) { //Pega todos IDs de atividades associados a treinamentos DA ZONA foreach (var aXt in aList.tblAtividadeXTreinamentos) { var aux = _training.GetTrainingById(aXt.idTreinamento); //Verifica se o treinamento já existe na Lista if (trainingList.Exists(t => t.IdTreinamento == aux.IdTreinamento) == false) { trainingList.Add(aux); } } } var avalTraining = _matrizFuncTrainingTempService.GetMatrizTempByIdMWZ(TempMatriz.idMatrizWZTemp); foreach (var t in trainingList) { foreach (var wz in workzone.tblWorkzoneXFuncionario) { //Verifica se algum usuário possui avaliação na Atividade[n] var existAvalInTraining = avalTraining .Where(tt => tt.idTreinamento == t.IdTreinamento && tt.idFuncionario == wz.idFuncionario); var objTrainAval = existAvalInTraining.FirstOrDefault(); //Se o Treinamento[n] possui avaliação para aquele usuário // Ele adiciona no histórico if (existAvalInTraining.Count() > 0) { var existeTrein = trainingHist.Exists(m => m.idFuncionario == objTrainAval.idFuncionario && m.idMatrizWorkzoneHistorico == matrizHistoricoCreated.idMatrizHistorico && m.idTreinamento == objTrainAval.idTreinamento); //_matrizHistoricoService.getMatrizHistoricoTrainingByWZIdFuncAtiv(matrizHistoricoCreated.idMatrizHistorico, objTrainAval.idFuncionario, objTrainAval.idTreinamento); if (!existeTrein) { newTrainingHistoricoObj = new tblMatrizFuncTreinHistorico(); newTrainingHistoricoObj.idTreinamento = objTrainAval.idTreinamento; newTrainingHistoricoObj.nomeTreinamento = objTrainAval.tblTreinamento.Nome; newTrainingHistoricoObj.idTipoTreinamento = (int)objTrainAval.tblTreinamento.idTipoTreinamento; newTrainingHistoricoObj.nomeTipoTreinamento = objTrainAval.tblTreinamento.tblTipoTreinamento.Nome; newTrainingHistoricoObj.siglaTipoTreinamento = objTrainAval.tblTreinamento.tblTipoTreinamento.Sigla; newTrainingHistoricoObj.idFuncionario = objTrainAval.idFuncionario; newTrainingHistoricoObj.nomeFuncionario = objTrainAval.tblFuncionarios.Nome; newTrainingHistoricoObj.REFuncionario = objTrainAval.tblFuncionarios.RE; newTrainingHistoricoObj.BUFuncionario = objTrainAval.tblFuncionarios.idBu_Origem.ToString(); newTrainingHistoricoObj.idItemPerfil = objTrainAval.idItemPerfil; newTrainingHistoricoObj.siglaItemPerfil = objTrainAval.tblPerfilItens.Sigla; newTrainingHistoricoObj.idMatrizWorkzoneHistorico = matrizHistoricoCreated.idMatrizHistorico; trainingHist.Add(newTrainingHistoricoObj); //_matrizHistoricoService.SalvarTreinHistorico(newTrainingHistoricoObj); } } else // Senão ele adiciona aquele treinaemnto[n] sem avaliação { var existeTrein = trainingHist.Exists(m => m.idFuncionario == wz.idFuncionario && m.idMatrizWorkzoneHistorico == matrizHistoricoCreated.idMatrizHistorico && m.idTreinamento == t.IdTreinamento); //_matrizHistoricoService.getMatrizHistoricoTrainingByWZIdFuncAtiv(matrizHistoricoCreated.idMatrizHistorico, wz.idFuncionario, t.IdTreinamento); if (!existeTrein) { newTrainingHistoricoObj = new tblMatrizFuncTreinHistorico(); newTrainingHistoricoObj.idTreinamento = t.IdTreinamento; newTrainingHistoricoObj.nomeTreinamento = t.Nome; newTrainingHistoricoObj.idTipoTreinamento = (int)t.tblTipoTreinamento.IdTipoTreinamento; newTrainingHistoricoObj.nomeTipoTreinamento = t.tblTipoTreinamento.Nome; newTrainingHistoricoObj.siglaTipoTreinamento = t.tblTipoTreinamento.Sigla; newTrainingHistoricoObj.idFuncionario = wz.idFuncionario; newTrainingHistoricoObj.nomeFuncionario = wz.tblFuncionarios.Nome; newTrainingHistoricoObj.REFuncionario = wz.tblFuncionarios.RE; newTrainingHistoricoObj.BUFuncionario = wz.tblFuncionarios.idBu_Origem.ToString(); newTrainingHistoricoObj.idItemPerfil = 0; newTrainingHistoricoObj.siglaItemPerfil = ""; newTrainingHistoricoObj.idMatrizWorkzoneHistorico = matrizHistoricoCreated.idMatrizHistorico; trainingHist.Add(newTrainingHistoricoObj); //_matrizHistoricoService.SalvarTreinHistorico(newTrainingHistoricoObj); } } } } SetColorToHistory(trainingHist, atividadeHist); TransferirValoresMatrizTempToOficial(idWorkzone); // Apaga os valores da Matriz Temporária equivalente ao idWorkzone passado // Tabela que foi usada pra criar o histórico e passou seus valores pra matriz OFICIAL var matrizTemp = _matrizTempService.GetMatrizTempByWZId(idWorkzone); if (matrizTemp != null) { _matrizFuncActivityTempService.DeleteMatrizTempAll(matrizTemp.idMatrizWZTemp); _matrizFuncTrainingTempService.DeleteMatrizTempAll(matrizTemp.idMatrizWZTemp); _matrizTempService.DeleteMatrizTemp(matrizTemp.idMatrizWZTemp); } return(RedirectToAction("Index")); }