public IActionResult Edit(int id) { ConConfigViewModel _tmpModel = conConfig.GetModelByID(id); IEnumerable <EmpresasViewModel> vmEmpresa = empresa.GetModelByID(_tmpModel.EmpresaId); if (_tmpModel == null) { ViewBag.ErrorMessage = $"A conexão com ID = {_tmpModel.NomeServidor} não foi possível de encontrar ."; return(View("NotFound")); } var model = new ConConfigViewModel { ConexaoID = _tmpModel.ConexaoID, EmpresaId = _tmpModel.EmpresaId, InstanciaSQL = _tmpModel.InstanciaSQL, NomeServidor = _tmpModel.NomeServidor, ActiveConnection = _tmpModel.ActiveConnection, Password = _tmpModel.Password, Utilizador = _tmpModel.Utilizador }; //ver se exite a empressa e nome empres tem que se passar aqui ViewBag.NomeServidor = model.NomeServidor; if (vmEmpresa.ToList().Count > 0) { ViewBag.NomeEmpresa = vmEmpresa.ToList()[0].Nome; } return(this.PartialView(model)); }
public IActionResult Edit([FromBody] ConConfigViewModel _model) { if (_model == null) { ViewBag.ErrorMessage = $"Modelo da conexao = {_model.NomeServidor} nao foi possivel de encontrar"; return(View("NotFound")); } else { string bResult = conConfig.UpdateConnection(_model);// if (bResult.StartsWith("success:true")) { //IEnumerable<ConConfigViewModel> _m = conConfig.GetExistingRegistries(_model.EmpresaId); //return this.PartialView("~/Views/ConConfig/Index.cshtml",_m); return(Json(new { success = true, msg = "Successful operation" })); //return RedirectToAction("Index", new { EmpresaId = _model.EmpresaId}); } if (bResult.StartsWith("success:false")) { List <string> d = bResult.Split(",").ToList(); return(Json(new { success = false, msg = d[1].ToString() })); } // ViewBag.Signal = "notok"; //ViewBag.ErrorTitle = "Erro de atualização!"; //ViewBag.ErrorMessage = "Não foi possível atualizar os dados de conexão no servidor, " + // " se o erro persistir, entre em contato com o suporte!"; //return this.PartialView("~/Views/Error/GeneralError.cshtml"); return(View()); } }
public async Task <IActionResult> ExportPlContasAsync(string EmpresaID, string Ano, string _path) { DadosEmpresaImportada dadosEmpresaView = dadosEmpresaViewModel.ReturnModelByEmpresaAno(int.Parse(EmpresaID), Int16.Parse(Ano)); string db = dadosEmpresaView.CodeEmpresa.ToString() + Ano.ToString() + dadosEmpresaView.CodeAplicacao.ToString(); string _nomeFicheiro = DateTime.Now.ToString("yyyyMMdd_hhmmss") + "_" + dadosEmpresaView.CodeAplicacao.ToString() + Ano + "_CLAB_PlanodeContas.xlsx"; ConConfigViewModel conConfigViewModel = conConfig.FindByEmpresaId(int.Parse(EmpresaID)).ToList()[0]; clsCheckValidData checkValidData = new clsCheckValidData(conConfigViewModel.NomeServidor, conConfigViewModel.Utilizador, conConfigViewModel.Password, db); bool validDbAndServer = checkValidData.ValidDbAndServer(); if (validDbAndServer != true) { ViewBag.Signal = "notok"; ViewBag.ErrorTitle = "Base de dados ou servidor inexistente!"; ViewBag.ErrorMessage = $"Por favour verifique a existencia da Base de dados: {dadosEmpresaView.CodeEmpresa + dadosEmpresaView.CodeAplicacao + dadosEmpresaView.AnoFi.ToString()} !"; return(this.PartialView("~/Views/Error/GeneralError.cshtml")); } string strSql = "SELECT CConta as 'Nº da Conta', CASE WHEN CContaMae = '' THEN 'R' WHEN CContaMae != '' AND EdeMov = 0 THEN 'I' WHEN EdeMov = 1 THEN 'L' ELSE '' END as 'Tp.', Descr as 'Nome da conta', CCIva as 'Conta IVA/Ref' FROM Conta ORDER BY CConta"; DataTable dt = checkValidData.ReturnDataTable(strSql); string _FullPath = _path + "\\" + _nomeFicheiro; await SavePlContasAsync(_path, _nomeFicheiro, dt); // bool aa= SavePlContasAsync(_path, _nomeFicheiro, dt); ; if (!System.IO.File.Exists(_FullPath)) { return(Json(new { success = false, msg = "O arquivo nao foi exportado com sucesso!" })); } return(Json(new { success = true, msg = "Arquivo exportado com sucesso!" })); }
public async Task <IActionResult> ExportSaveCentroCustoAsyncAsync(string EmpresaID, string Ano, string _path) { DadosEmpresaImportada dadosEmpresaView = dadosEmpresaViewModel.ReturnModelByEmpresaAno(int.Parse(EmpresaID), Int16.Parse(Ano)); string db = dadosEmpresaView.CodeEmpresa.ToString() + Ano.ToString() + dadosEmpresaView.CodeAplicacao.ToString(); string _nomeFicheiro = DateTime.Now.ToString("yyyyMMdd_hhmmss") + "_" + dadosEmpresaView.CodeAplicacao.ToString() + Ano + "_CLAB_CentrosCusto.xlsx"; ConConfigViewModel conConfigViewModel = conConfig.FindByEmpresaId(int.Parse(EmpresaID)).ToList()[0]; clsCheckValidData checkValidData = new clsCheckValidData(conConfigViewModel.NomeServidor, conConfigViewModel.Utilizador, conConfigViewModel.Password, db); bool validDbAndServer = checkValidData.ValidDbAndServer(); if (validDbAndServer != true) { ViewBag.Signal = "notok"; ViewBag.ErrorTitle = "Base de dados ou servidor inexistente!"; ViewBag.ErrorMessage = $"Por favour verifique a existencia da Base de dados: {dadosEmpresaView.CodeEmpresa + dadosEmpresaView.CodeAplicacao + dadosEmpresaView.AnoFi.ToString()} !"; return(this.PartialView("~/Views/Error/GeneralError.cshtml")); } string strSql = "SELECT CCeCu as 'Centro Custo', Descr as 'Descrição' FROM CenCu ORDER BY TCeCu, CCeCu"; DataTable dt = checkValidData.ReturnDataTable(strSql); string _FullPath = _path + "\\" + _nomeFicheiro; await SaveCentroCustoAsync(_path, _nomeFicheiro, dt); if (!System.IO.File.Exists(_FullPath)) { return(Json(new { success = false, msg = "O arquivo nao foi exportado com sucesso!" })); } return(Json(new { success = true, msg = "Arquivo exportado com sucesso!" })); }
public string InsertConnection(ConConfigViewModel _model) { if (_model.EmpresaId == 0) { return("success:false|'Id Empresa é um campo obrigatório, não pode ser nulo'|EmpresaId"); } ; if (_model.NomeServidor == null) { return("success:false|'NomeServidor é um campo obrigatório, não pode ser nulo'|NomeServidor"); } ; if (_model.Utilizador == null) { return("success:false|'Utilizador é um campo obrigatório, não pode ser nulo'|Utilizador"); } ; if (_model.Password == null) { return("success:false|'Palavra Passe é um campo obrigatório, não pode ser nulo'|Password"); } ; EncryptionHelper encryptionHelper = new EncryptionHelper(); _model.Password = encryptionHelper.Encrypt(_model.Password); context.ConConfigViewModel.Add(_model); context.SaveChanges(); return("success:true|error:'Registro inserido com sucesso'|0"); }
public IActionResult Details(int id) { ConConfigViewModel _tmpModel = conConfig.GetModelByID(id); if (_tmpModel == null) { ViewBag.ErrorMessage = $"A conexão com ID = {_tmpModel.NomeServidor} não foi possível de encontrar ."; return(View("NotFound")); } ViewBag.NomeServidor = _tmpModel.NomeServidor; return(this.PartialView(_tmpModel)); }
//private SqlConnection sqlConnection; public clsCheckValidData(ConConfigViewModel _conConfigViewModel, string dataBase) { string _connectionString = "Data Source=" + _conConfigViewModel.NomeServidor + ";Initial Catalog=" + dataBase + ";Persist Security Info=True" + ";User ID=" + _conConfigViewModel.Utilizador + ";Password="******";TransparentNetworkIPResolution=False;max pool size=32700"; this.DataBase = dataBase; this.ConConfigViewModel = _conConfigViewModel; this.connectionString = _connectionString; }
//public async Task<ConConfigViewModel> GetModelByID(int id) //{ // var taskResult = await Task.Run(() => // { // return context.ConConfigViewModel.Where(x => x.EmpresaID == id); // }); // return (ConConfigViewModel)taskResult; //} public bool DeleteConnection(ConConfigViewModel _model) { var bResult = false; ConConfigViewModel _tmpModel = context.ConConfigViewModel.FirstOrDefault(x => x.ConexaoID == _model.ConexaoID); if (_tmpModel != null) { context.ConConfigViewModel.Remove(_tmpModel); context.SaveChanges(); bResult = true; } return(bResult); }
public IActionResult CreateJson(ConConfigViewModel model) { int EmpresaId = model.EmpresaId; bool result = false; IEnumerable <ConConfigViewModel> tmp = conConfig.FindByEmpresaId(EmpresaId); if (tmp.ToList().Count > 0) { model.EmpresaId = EmpresaId; result = conConfig.DeleteConnection(model); } string bResult = conConfig.InsertConnection(model); List <string> d = bResult.Split("|").ToList(); List <string> v = d[0].ToString().Split(":").ToList(); var s = Json(new { success = bool.Parse(v[1].ToString()), msg = d[1].ToString().Replace("'", ""), field = d[2].ToString() }); return(s); }
public IActionResult Delete(ConConfigViewModel _model) { ConConfigViewModel _tmpModel = conConfig.GetModelByID(_model.ConexaoID); if (_tmpModel == null) { ViewBag.ErrorMessage = $"A conexão com ID = {_model.NomeServidor} não foi possível de encontrar ."; return(View("NotFound")); } bool bResult = conConfig.DeleteConnection(_model); if (bResult) { return(RedirectToAction("Index", new { EmpresaId = _tmpModel.EmpresaId })); } ViewBag.Signal = "notok"; ViewBag.ErrorTitle = "Erro ao apagar!"; ViewBag.ErrorMessage = $"Não foi possível apagar a conexao {_model.NomeServidor}, " + " se o erro persistir, entre em contato com o suporte!"; return(this.PartialView("~/Views/Error/GeneralError.cshtml")); }
public IActionResult CreateConConfig(int EmpresaId, ConConfigViewModel model) { bool result = false; if (ModelState.IsValid) { IEnumerable <ConConfigViewModel> tmp = conConfig.FindByEmpresaId(EmpresaId); if (tmp.ToList().Count > 0) { model.EmpresaId = EmpresaId; result = conConfig.DeleteConnection(model); } //result = conConfig.InsertConnection(model); string bResult = conConfig.InsertConnection(model); List <string> d = bResult.Split("|").ToList(); List <string> v = d[0].ToString().Split(":").ToList(); var s = Json(new { success = bool.Parse(v[1].ToString()), msg = d[1].ToString().Replace("'", ""), field = d[2].ToString() }); return(s); //if (result) //{ // IEnumerable<ConConfigViewModel> _mdl = conConfig.GetExistingRegistries(EmpresaId); // return this.PartialView("~/Views/ConConfig/Index.cshtml", _mdl); //} //else //{ // ViewBag.Signal = "notok"; // ViewBag.ErrorTitle = "Erro de inserção"; // ViewBag.ErrorMessage = "Não foi possível inserir os dados de conexão no servidor, " + // "se o erro persistir entre em contato com o suporte!"; // return this.PartialView("~/Views/Error/GeneralError.cshtml"); //} } return(this.PartialView(model)); }
public string UpdateConnection(ConConfigViewModel _model) { if (_model.ConexaoID == 0) { return("success:false|'Id Conexao é um campo obrigatório, não pode ser nulo'|ConexaoID"); } ; if (_model.EmpresaId == 0) { return("success:false|'Id Empresa é um campo obrigatório, não pode ser nulo'|EmpresaId"); } ; if (_model.NomeServidor == null) { return("success:false|'NomeServidor é um campo obrigatório, não pode ser nulo'|NomeServidor"); } ; if (_model.Utilizador == null) { return("success:false|'Utilizador é um campo obrigatório, não pode ser nulo'|Utilizador"); } ; if (_model.Password == null) { return("success:false|'Palavra Passe é um campo obrigatório, não pode ser nulo'|Password"); } ; EncryptionHelper encryptionHelper = new EncryptionHelper(); _model.Password = encryptionHelper.Encrypt(_model.Password); var _tmp = context.ConConfigViewModel.Attach(_model); _tmp.State = Microsoft.EntityFrameworkCore.EntityState.Modified; context.SaveChanges(); return("success:true|error:'Registro atualizado com sucesso'|0"); }
public IActionResult Delete(int id) { ConConfigViewModel _conConf = conConfig.GetModelByID(id); if (_conConf == null) { ViewBag.ErrorMessage = $"A conexão com ID = {id} não foi possível de encontrar ."; return(View("NotFound")); } var model = new ConConfigViewModel { EmpresaId = _conConf.EmpresaId, ConexaoID = _conConf.ConexaoID, InstanciaSQL = _conConf.InstanciaSQL, NomeServidor = _conConf.NomeServidor, ActiveConnection = _conConf.ActiveConnection, Password = _conConf.Password, Utilizador = _conConf.Utilizador }; ViewBag.NomeServidor = model.NomeServidor; return(this.PartialView(model)); }
public IActionResult EditJson(int ConexaoID, int EmpresaId, string NomeServidor, string InstanciaSQL, string Utilizador, string Password, bool ActiveConnection) { //https://stackoverflow.com/questions/40682403/bad-request-for-jquery-ajax-to-post-stringified-json-data-to-mvc-action ConConfigViewModel _model = new ConConfigViewModel { ConexaoID = ConexaoID, EmpresaId = EmpresaId, NomeServidor = NomeServidor, InstanciaSQL = InstanciaSQL, Utilizador = Utilizador, Password = Password, ActiveConnection = ActiveConnection }; string bResult = conConfig.UpdateConnection(_model);// List <string> d = bResult.Split("|").ToList(); List <string> v = d[0].ToString().Split(":").ToList(); var s = Json(new { success = bool.Parse(v[1].ToString()), msg = d[1].ToString().Replace("'", ""), field = d[2].ToString() }); return(s); }
public IActionResult Export(CLabViewModel model) { if (model.InputFilePathStr == null) { return(Json(new { success = false, message = "Ficheiro .asc nao foi carregado ainda!" })); } EncryptionHelper encryptionHelper = new EncryptionHelper(); string ASCFilePath = encryptionHelper.Decrypt(model.InputFilePathStr); int idGabContab = SessionHelper.GetObjectFromJson <int>(HttpContext.Session, "sessionIDGabContab"); int idEmpresaContab = SessionHelper.GetObjectFromJson <int>(HttpContext.Session, "sessionIDEmpresaContab"); string AnoEmpresaContab = SessionHelper.GetObjectFromJson <string>(HttpContext.Session, "sessionIDAnoEmpresaContab"); //string ASCFilePath = $"{env.WebRootPath}/SageData/InputSageFiles/{model.InputFilePath.FileName}".Replace("/", "\\"); ASCFilePath = ASCFilePath.Replace("/", "\\"); if (!System.IO.File.Exists(ASCFilePath)) { return(Json(new { success = false, message = "Ficheiro .asc nao foi encontrado!" })); } StreamReader streamReader = new StreamReader(ASCFilePath, Encoding.GetEncoding("iso-8859-1")); streamReader.DiscardBufferedData(); streamReader.BaseStream.Seek(0, System.IO.SeekOrigin.Begin); string[] ASCpathArray = ASCFilePath.Split('\\'); string fileName = ASCpathArray[ASCpathArray.Length - 1]; string[] fileNameArray = fileName.Split('.'); string fileNameNoExt = fileNameArray[0]; int index = fileNameNoExt.IndexOf(" ("); string fileNameNoExtRep = index >= 0 ? fileNameNoExt.Remove(index) : fileNameNoExt; string[] fileNameNoExtArray = fileNameNoExtRep.Split('_'); string NIF = fileNameNoExtArray[0]; string Year = fileNameNoExtArray[fileNameNoExtArray.Length - 2]; string Month = fileNameNoExtArray[fileNameNoExtArray.Length - 1]; EmpresasViewModel empresaViewModel = appDbContext.EmpresasViewModel.FirstOrDefault(x => x.EmpresaID == model.EmpresaSageId); DadosEmpresaImportada dadosEmpresaImportada = appDbContext.DadosEmpresaImportada.FirstOrDefault(x => x.EmpresaID == model.EmpresaSageId); if (empresaViewModel.NIF != NIF) { return(Json(new { success = false, message = "Você está tentando importar um arquivo .asc que pertence a outra empresa, verifique o NIF!" })); } if (AnoEmpresaContab != Year) { return(Json(new { success = false, message = "Ano fiscal do arquivo .asc e diferente do selecionado. Verifique o ano selecionado!" })); } Empr empr = aGesContext.Emprs.FirstOrDefault(x => x.Ncontrib == NIF && x.Cemp == dadosEmpresaImportada.CodeEmpresa); DadosEmpresaImportada dadosEmpresaView = dadosEmpresaViewModel.ReturnModelByEmpresaAno(model.EmpresaSageId, Int16.Parse(Year)); string db = dadosEmpresaView.CodeEmpresa.ToString() + Year.ToString() + dadosEmpresaView.CodeAplicacao.ToString(); ConConfigViewModel conConfigViewModel = conConfig.FindByEmpresaId(model.EmpresaSageId).ToList()[0]; model.strInputFilePath = ASCFilePath; ConverterASCtoXML conv = new ConverterASCtoXML(streamReader, model, Month, db, dadosEmpresaView, conConfigViewModel, empresaViewModel, empr); List <ErrorLine> Errors = new List <ErrorLine>(); conv.ConvertFile(model.OutputFilePAth); Errors = conv.Errors; if (Errors.Count > 0) { return(Json(new { success = true, message = "Arquivo parcialmente exportado com sucesso! Verifique os erros!", errors = JsonSerializer.Serialize(Errors) })); } return(Json(new { success = true, message = "Ficheiro convertido com sucesso!" })); }
public JsonResult ConvertFile(ExcelLabViewModel model) { if (model.DiarioLancamentoInt == "0") { return(Json(new { success = false, message = "Escolha um diário de lançamento!" })); } if (model.TipoLancamentoInt == "0") { return(Json(new { success = false, message = "Escolha o tipo de lançamento!" })); } if (model.TipoDocumentoInt == "0") { return(Json(new { success = false, message = "Escolha o tipo de documento!" })); } if (model.InputFilePath == null) { return(Json(new { success = false, message = "Escolha um ficheiro *.xlsx para importar" })); } int idGabContab = SessionHelper.GetObjectFromJson <int>(HttpContext.Session, "sessionIDGabContab"); int idEmpresaContab = SessionHelper.GetObjectFromJson <int>(HttpContext.Session, "sessionIDEmpresaContab"); string AnoEmpresaContab = SessionHelper.GetObjectFromJson <string>(HttpContext.Session, "sessionIDAnoEmpresaContab"); IEnumerable <EmpresasViewModel> tmp_empVmodel = empresaContext.GetModelByID(idEmpresaContab); GabContabilidadeRepository gabContabilidade = new GabContabilidadeRepository(appDbContext); DadosEmpresaImportada dadosEmpresaImportada = gabContabilidade.GetEmpresaModel(idEmpresaContab, Int16.Parse(AnoEmpresaContab)); string baseDados = dadosEmpresaImportada.CodeEmpresa + AnoEmpresaContab + dadosEmpresaImportada.CodeAplicacao; string connString = "server=.;database=" + baseDados + ";Trusted_Connection=true;MultipleActiveResultSets=true;"; using var context = new CustomDbContext(connString); string importedExcelFilePath = encryptionHelper.Decrypt(model.InputFilePath); model.InputFilePath = importedExcelFilePath; //FileUpload1.SaveAs(ExcelFilePath); string XMLFilePath = model.OutputFilePath; //string LocalCon = Session["LocalConnection"].ToString(); string CodEmpSage = dadosEmpresaImportada.CodeEmpresa; //string EmpSageCon = Session["EmpSageConnection"].ToString(); string CodDiario = model.DiarioLancamentoInt; //this.ddrDiarioLanc.SelectedValue; string TipoLanc = model.TipoLancamentoInt; //this.ddrTipoLanc.SelectedValue; string TipoDoc = model.TipoDocumentoInt; //this.ddrTipoDoc.SelectedValue; bool LancUnico = model.LancamentoUnico; string[] ExcelPathArray = importedExcelFilePath.Split('\\'); string fileName = ExcelPathArray[ExcelPathArray.Length - 1]; string[] fileNameArray = fileName.Split('.'); string fileNameNoExt = fileNameArray[0]; int index = fileNameNoExt.IndexOf(" ("); string fileNameNoExtRep = index >= 0 ? fileNameNoExt.Remove(index) : fileNameNoExt; string[] fileNameNoExtArray = fileNameNoExtRep.Split('_'); string NIF = fileNameNoExtArray[0]; string Year = fileNameNoExtArray[1]; //using (SqlConnection con = new SqlConnection(Session["LocalConnection"].ToString())) //{ // con.Open(); // string selectEmpresaSage_query = "select NContrib from Emprs where CEmp = '" + Session["EmpSage"].ToString() + "'"; // SqlCommand selectEmpresaSage = new SqlCommand(selectEmpresaSage_query, con); // string NifEmpSage = selectEmpresaSage.ExecuteScalar().ToString(); if (NIF != tmp_empVmodel.ToList()[0].NIF) { return(Json(new { success = false, message = "Contribuinte nao coincide, verifique o contribuinte a importar!" })); } if (Year != AnoEmpresaContab) { return(Json(new { success = false, message = "O Ano seleccionado nao coresponde com o Ano do ficheiro a importar!" })); } string DataLanc = model.DataLancamento.ToString("yyyy-MM-dd");//Convert.ToDateTime(this.txtDataLanc.Text).ToString("yyyy-MM-dd"); ConConfigViewModel conConfigViewModel = conConfig.FindByEmpresaId(idEmpresaContab).ToList()[0]; EmpresasViewModel empresaViewModel = appDbContext.EmpresasViewModel.FirstOrDefault(x => x.EmpresaID == idEmpresaContab); Empr empr = aGesContext.Emprs.FirstOrDefault(x => x.Ncontrib == NIF && x.Cemp == dadosEmpresaImportada.CodeEmpresa); var conv = new ConvertExcelToXML(model, baseDados, dadosEmpresaImportada, conConfigViewModel, empresaViewModel, empr); List <ErrorLine> Errors = new List <ErrorLine>(); conv.ConvertFile(); Errors = conv.errors; if (Errors.Count > 0) { return(Json(new { success = true, message = "Arquivo parcialmente exportado com sucesso! Verifique os erros!", errors = JsonSerializer.Serialize(Errors) })); } return(Json(new { success = true, message = "Ficheiro convertido com sucesso!" })); // var memory = new MemoryStream(); //using (var stream = new FileStream(importedExcelFilePath, FileMode.Open)) //{ // await stream.CopyToAsync(memory); //} //memory.Position = 0; //var ext = Path.GetExtension(importedExcelFilePath).ToLowerInvariant(); //var tExt = GetMimeTypes()[ext]; //int _year = DateTime.Now.Year; //int _month = DateTime.Now.Month; //string outputFileName = $"{tmp_empVmodel.ToList()[0].NIF}_{dadosEmpresaImportada.CodeEmpresa}{dadosEmpresaImportada.CodeAplicacao}_{_year.ToString()}_{_month.ToString()}.xlsx"; }