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 bool ModelExist(DadosEmpresaImportada _model) { bool bResult = false; if (_model != null) { try { var tt = context.DadosEmpresaImportada .FirstOrDefault(x => x.EmpresaID == _model.EmpresaID && x.AnoIn == _model.AnoIn && x.AnoFi == _model.AnoFi && x.CodeAplicacao == _model.CodeAplicacao && x.CodeEmpresa == _model.CodeEmpresa); if (tt != null) { bResult = true; } else { bResult = false; } } catch (DbUpdateException ex) { logger.Log(LogLevel.Warning, ex.Message); bResult = false; } } return(bResult); }
public async Task <IActionResult> GetExampleAsync() { string remoteUri = $"{env.WebRootPath}/Exemplos Excel/"; string fileName = "NIFempresaSage_Ano_MesNumero.xlsx"; string excelFileFullPath = Path.Combine($"{remoteUri}", fileName).Replace("/", "\\"); 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)); var memory = new MemoryStream(); using (var stream = new FileStream(excelFileFullPath, FileMode.Open)) { await stream.CopyToAsync(memory); } memory.Position = 0; var ext = Path.GetExtension(excelFileFullPath).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"; return(File(memory, GetMimeTypes()[ext], outputFileName)); }
public string SaveSessionAnoEmprContab(string AnoSelectionado) { SessionHelper.SetObjectAsJson(HttpContext.Session, "sessionIDAnoEmpresaContab", AnoSelectionado.ToString()); int idEmpresaContab = SessionHelper.GetObjectFromJson <int>(HttpContext.Session, "sessionIDEmpresaContab"); GabContabilidadeRepository gabContabilidade = new GabContabilidadeRepository(context); DadosEmpresaImportada empVmodel = gabContabilidade.GetEmpresaModel(idEmpresaContab, Int16.Parse(AnoSelectionado)); SessionHelper.SetObjectAsJson(HttpContext.Session, "sessionCodeEmpresa", empVmodel.CodeEmpresa.ToString()); return(JsonSerializer.Serialize(AnoSelectionado)); }
public async Task <bool> InsertEmpresa(EmpresasViewModel _model) { var bResult = false; try { context.EmpresasViewModel.Add(_model); int i = context.SaveChanges(); bResult = true; if (bResult) {//insert dados da empresa auxiliares. IEnumerable <AGesEmpresasUtilizadores> tmpAGes = aGesContext.AGesEmpresasUtilizadores.Where(x => x.NIF == _model.NIF); var tt = tmpAGes .Select(x => new { x.AnoFi, x.AnoIn, x.CodeApplicacao, x.CodeEmpresa }) .Distinct().ToList(); foreach (var item in tt) { DadosEmpresaImportada tmp = new DadosEmpresaImportada() { EmpresaID = _model.EmpresaID, AnoFi = item.AnoFi, AnoIn = item.AnoIn, CodeAplicacao = item.CodeApplicacao, CodeEmpresa = item.CodeEmpresa }; bool dadosExist = dadosEmpresaView.ModelExist(tmp); if (dadosExist != true) { var result = await dadosEmpresaView.Insert(tmp);// .DadosEmpresaImportada.Where(x => x.== _model.NIF); if (result) { logger.Log(LogLevel.Information, "Dados Empresa inseridos com successo " + tmp.CodeEmpresa); } } } } } catch (Exception ex) { logger.Log(LogLevel.Warning, "Method: Insert Impresa| Class: SQL_IEmpresa | Erro: " + ex.Message); } return(bResult); }
public async Task <bool> Insert(DadosEmpresaImportada model) { bool bResult = false; if (model != null) { try { context.DadosEmpresaImportada.Add(model); var result = await context.SaveChangesAsync(); bResult = true; } catch (DbUpdateException ex) { logger.Log(LogLevel.Warning, ex.Message); bResult = false; } } return(bResult); }
public JsonResult FillDiarioLancamento() { 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); Sql_IDiarioLancamento iDiario = new Sql_IDiarioLancamento(context); List <SelectListItem> selectListItems = iDiario.GetDiarioLancemento(); return(Json(new { success = true, list = selectListItems })); }
public ActionResult Export() { int EmpresaID; int idGabContab = SessionHelper.GetObjectFromJson <int>(HttpContext.Session, "sessionIDGabContab"); int idEmpresaContab = SessionHelper.GetObjectFromJson <int>(HttpContext.Session, "sessionIDEmpresaContab"); string AnoEmpresaContab = SessionHelper.GetObjectFromJson <string>(HttpContext.Session, "sessionIDAnoEmpresaContab"); if (idGabContab == 0) { logger.LogError($"Gabinete de contabilidade não foi selecionado!"); ViewBag.Signal = "notok"; ViewBag.ErrorTitle = "Gabinete de Contabilidade !"; ViewBag.ErrorMessage = "Um gabinete de contabilidade não foi selecionado!" + " Selecione uma empresa de contabilidade para prosseguir com a operação!"; return(this.PartialView("~/Views/Error/GeneralError.cshtml")); } if (idEmpresaContab == 0) { logger.LogError($"Empresa não foi selecionada!"); ViewBag.Signal = "notok"; ViewBag.ErrorTitle = "Empresa não foi selecionada !"; ViewBag.ErrorMessage = "A Empresa não foi selecionada!" + " Selecione uma empresa para prosseguir com a operação!"; return(this.PartialView("~/Views/Error/GeneralError.cshtml")); } EmpresaID = idEmpresaContab; if (AnoEmpresaContab == "" || AnoEmpresaContab == null) { logger.LogError($"Ano fiscal não foi selecionado!"); ViewBag.Signal = "notok"; ViewBag.ErrorTitle = "Ano fiscal não foi selecionado!"; ViewBag.ErrorMessage = "Ano fiscal não foi selecionado!" + " Selecione ano fiscal da empresa para prosseguir com a operação!"; return(this.PartialView("~/Views/Error/GeneralError.cshtml")); } string _path = ""; IEnumerable <EmpresasViewModel> tmp_empVmodel = empresaContext.GetModelByID(EmpresaID); GabContabilidadeRepository gabContabilidade = new GabContabilidadeRepository(appDbContext); DadosEmpresaImportada dadosEmpresaImportada = gabContabilidade.GetEmpresaModel(idEmpresaContab, Int16.Parse(AnoEmpresaContab)); if (tmp_empVmodel.ToList().Count == 1) { if (_path == "" || _path == null) { _path = "C:\\Sage Data\\Sage Accountants\\"; } EmpresasViewModel empresaViewModels = tmp_empVmodel.ToList()[0]; _path += (_path.EndsWith("\\") ? "" : "\\") + dadosEmpresaImportada.CodeEmpresa + AnoEmpresaContab + dadosEmpresaImportada.CodeAplicacao + "\\Sync\\toCLAB"; if (!Directory.Exists(_path)) { Directory.CreateDirectory(_path); } var claimsIdentity = (ClaimsIdentity)this.User.Identity; var claim = claimsIdentity.FindFirst(System.Security.Claims.ClaimTypes.NameIdentifier); var userId = claim.Value; string nomeEmpresa = empresaViewModels.Nome; ViewBag.NomeEmpresa = nomeEmpresa; CLabViewModel tmp = new CLabViewModel { Ano = Int16.Parse(AnoEmpresaContab), EmpresaSageId = EmpresaID, DataLancamento = DateTime.Now, UserID = userId, OutputFilePAth = _path //"C:\\Sage Data\\Sage Accountants\\" + ACtb + 2020 + ACtb + "\\Sync\\toCLAB\\OutputSageFile\\"; }; //tmp.OutputFilePAth = "C:\\Sage Data\\Sage Accountants\\" + ACtb + 2020 + ACtb + "\\Sync\\toCLAB\\OutputSageFile\\" ; //C:\Sage Data\Sage Accountants\ACtb2020ACtb\Sync\toCLAB return(PartialView("~/Views/CLab/Export.cshtml", tmp)); } return(View()); }
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 IActionResult Index(string _EmpSage, string _Ano) { //PlanoContasViewModelPath planoContasView int idGabContab = SessionHelper.GetObjectFromJson <int>(HttpContext.Session, "sessionIDGabContab"); int idEmpresaContab = SessionHelper.GetObjectFromJson <int>(HttpContext.Session, "sessionIDEmpresaContab"); string AnoEmpresaContab = SessionHelper.GetObjectFromJson <string>(HttpContext.Session, "sessionIDAnoEmpresaContab"); if (idGabContab == 0) { logger.LogError($"Gabinete de contabilidade não foi selecionado!"); ViewBag.Signal = "notok"; ViewBag.ErrorTitle = "Gabinete de Contabilidade !"; ViewBag.ErrorMessage = "Um gabinete de contabilidade não foi selecionado!" + " Selecione uma empresa de contabilidade para prosseguir com a operação!"; return(this.PartialView("~/Views/Error/GeneralError.cshtml")); } if (idEmpresaContab == 0) { logger.LogError($"Empresa não foi selecionada!"); ViewBag.Signal = "notok"; ViewBag.ErrorTitle = "Empresa não foi selecionada !"; ViewBag.ErrorMessage = "A Empresa não foi selecionada!" + " Selecione uma empresa para prosseguir com a operação!"; return(this.PartialView("~/Views/Error/GeneralError.cshtml")); } if (AnoEmpresaContab == "" || AnoEmpresaContab == null) { logger.LogError($"Ano fiscal não foi selecionado!"); ViewBag.Signal = "notok"; ViewBag.ErrorTitle = "Ano fiscal não foi selecionado!"; ViewBag.ErrorMessage = "Ano fiscal não foi selecionado!" + " Selecione ano fiscal da empresa para prosseguir com a operação!"; return(this.PartialView("~/Views/Error/GeneralError.cshtml")); } List <ConConfigViewModel> conConfigViewModel = conConfig.FindByEmpresaId(idEmpresaContab).ToList(); if (conConfigViewModel.Count == 0) { GeneralErrorViewModel generalErrorViewModel = new GeneralErrorViewModel { Signal = "notok", ErrorTitle = "Conexão nao configurada!", ErrorMessage = "A empresa não tem uma conexão configurada!", StringButton = "Configurar conexão", UrlToRedirect = "/ConConfig/IndexJson/", optionalData = idEmpresaContab.ToString() }; return(this.PartialView("~/Views/Error/GeneralErrorModel.cshtml", generalErrorViewModel)); //ViewBag.Signal = "notok"; //ViewBag.ErrorTitle = "Conexão nao configurada!"; //ViewBag.ErrorMessage = "A empresa não tem uma conexão configurada!"; //return this.PartialView("~/Views/Error/GeneralError.cshtml"); } DadosEmpresaImportada empViewModel = dadosEmpresaViewModel.ReturnModelByEmpresaAno(idEmpresaContab, Int16.Parse(AnoEmpresaContab)); string _servidorSQL = conConfigViewModel[0].NomeServidor; string _instanciaSQL = conConfigViewModel[0].InstanciaSQL; string _path = ""; /* * AGesLocEn _AGesLocEn = empresaAGes.GetAGesLocEn(); * string _path = _AGesLocEn.GesSharedDir + _servidorSQL + "\\" + _instanciaSQL; * */ if (_path == "" || _path == null) { _path = "C:\\Sage Data\\Sage Accountants\\"; } _path += (_path.EndsWith("\\") ? "" : "\\") + empViewModel.CodeEmpresa + _Ano + empViewModel.CodeAplicacao + "\\Sync\\toCLAB"; if (!Directory.Exists(_path)) { Directory.CreateDirectory(_path); } PathViewModel model = new PathViewModel { Path = _path, EmpresaID = idEmpresaContab, Ano = Int16.Parse(AnoEmpresaContab) }; return(this.PartialView("~/Views/ExportDocs/Index.cshtml", model)); }
public IActionResult Index() { idGabContab = SessionHelper.GetObjectFromJson <int>(HttpContext.Session, "sessionIDGabContab"); idEmpresaContab = SessionHelper.GetObjectFromJson <int>(HttpContext.Session, "sessionIDEmpresaContab"); AnoEmpresaContab = SessionHelper.GetObjectFromJson <string>(HttpContext.Session, "sessionIDAnoEmpresaContab"); int EmpresaID; if (idGabContab == 0) { logger.LogError($"Gabinete de contabilidade não foi selecionado!"); ViewBag.Signal = "notok"; ViewBag.ErrorTitle = "Gabinete de Contabilidade !"; ViewBag.ErrorMessage = "Um gabinete de contabilidade não foi selecionado!" + " Selecione uma empresa de contabilidade para prosseguir com a operação!"; return(this.PartialView("~/Views/Error/GeneralError.cshtml")); } if (idEmpresaContab == 0) { logger.LogError($"Empresa não foi selecionada!"); ViewBag.Signal = "notok"; ViewBag.ErrorTitle = "Empresa não foi selecionada !"; ViewBag.ErrorMessage = "A Empresa não foi selecionada!" + " Selecione uma empresa para prosseguir com a operação!"; return(this.PartialView("~/Views/Error/GeneralError.cshtml")); } if (AnoEmpresaContab == "" || AnoEmpresaContab == null) { logger.LogError($"Ano fiscal não foi selecionado!"); ViewBag.Signal = "notok"; ViewBag.ErrorTitle = "Ano fiscal não foi selecionado!"; ViewBag.ErrorMessage = "Ano fiscal não foi selecionado!" + " Selecione ano fiscal da empresa para prosseguir com a operação!"; return(this.PartialView("~/Views/Error/GeneralError.cshtml")); } EmpresaID = idEmpresaContab; 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;"; if (AnoEmpresaContab == "" || AnoEmpresaContab == null) { logger.LogError($"Ano fiscal não foi selecionado!"); ViewBag.Signal = "notok"; ViewBag.ErrorTitle = "Ano fiscal não foi selecionado!"; ViewBag.ErrorMessage = "Ano fiscal não foi selecionado!" + " Selecione ano fiscal da empresa para prosseguir com a operação!"; return(this.PartialView("~/Views/Error/GeneralError.cshtml")); } ExcelLabViewModel tmp = new ExcelLabViewModel(); tmp.CodEmpresa = dadosEmpresaImportada.CodeEmpresa; tmp.DataLancamento = DateTime.Now; tmp.DiarioLancamento = GetDiariosLancamento(connString); tmp.AnoLancamento = Int16.Parse(AnoEmpresaContab); tmp.MesLancamento = toDoClassLibrary.MonthEnum.Janeiro; tmp.TipoLancamento = GetTipoLancamento(connString); tmp.TipoDocumento = GetTipoDocumento(connString); tmp.LancamentoUnico = false; tmp.InputFilePath = ""; tmp.OutputFilePath = "C:\\Sage Data\\Sage Accountants\\" + dadosEmpresaImportada.CodeEmpresa + AnoEmpresaContab + dadosEmpresaImportada.CodeAplicacao; return(PartialView("~/Views/ExcelLab/Index.cshtml", tmp)); }
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"; }
public Task <bool> Update(DadosEmpresaImportada model) { throw new NotImplementedException(); }