private static UserAccessesViewModel GetByUserAreaFunctionality(string UserId, List <int> features) { UserAccessesViewModel userAccess = new UserAccessesViewModel() { IdUser = UserId, Feature = 0, Create = false, Read = false, Update = false, Delete = false }; try { //TODO: Remover area using (var ctx = new SuchDBContext()) { ConfigUtilizadores CUser = DBUserConfigurations.GetById(UserId); if (CUser.Administrador) { userAccess.Feature = features.FirstOrDefault(); userAccess.Create = true; userAccess.Read = true; userAccess.Update = true; userAccess.Delete = true; } else { var userAccessess = ctx.AcessosUtilizador.Where(x => x.IdUtilizador.ToLower() == UserId.ToLower()).Where(x => features.Contains(x.Funcionalidade)).ToList(); if (userAccessess.Count > 0) { userAccess = ParseToViewModel(userAccessess.FirstOrDefault()); userAccess.Create = userAccessess.Any(x => x.Inserção.Value); userAccess.Read = userAccessess.Any(x => x.Leitura.Value); userAccess.Update = userAccessess.Any(x => x.Modificação.Value); userAccess.Delete = userAccessess.Any(x => x.Eliminação.Value); } } } } catch (Exception ex) { return(null); } return(userAccess); }
public static UserConfigurationsViewModel ParseToViewModel(this ConfigUtilizadores item) { if (item != null) { return(new UserConfigurationsViewModel() { IdUser = item.IdUtilizador, Name = item.Nome, Active = item.Ativo, Administrator = item.Administrador, Area = item.AreaPorDefeito, Cresp = item.CentroRespPorDefeito, EmployeeNo = item.EmployeeNo, ProcedimentosEmailEnvioParaArea = item.ProcedimentosEmailEnvioParaArea, ProcedimentosEmailEnvioParaArea2 = item.ProcedimentosEmailEnvioParaArea2, ProcedimentosEmailEnvioParaCA = item.ProcedimentosEmailEnvioParaCa, ReceptionConfig = item.PerfilNumeraçãoRecDocCompras, Regiao = item.RegiãoPorDefeito, RFPerfil = item.Rfperfil.HasValue ? (Enumerations.BillingReceptionAreas)item.Rfperfil : (Enumerations.BillingReceptionAreas?)null, RFPerfilVisualizacao = item.RfperfilVisualizacao.HasValue ? (Enumerations.BillingReceptionUserProfiles)item.RfperfilVisualizacao : (Enumerations.BillingReceptionUserProfiles?)null, RFFiltroArea = item.RffiltroArea, RFNomeAbreviado = item.RfnomeAbreviado, RFRespostaContabilidade = item.RfrespostaContabilidade, RFAlterarDestinatarios = item.RfalterarDestinatarios, RFMailEnvio = item.RfmailEnvio, Centroresp = item.CentroDeResponsabilidade, NumSerieFaturas = item.NumSerieFaturas, NumSerieNotasCredito = item.NumSerieNotasCredito, NumSerieNotasDebito = item.NumSerieNotasDebito, NumSeriePreFaturasCompraCP = item.NumSeriePreFaturasCompraCp, NumSeriePreFaturasCompraCF = item.NumSeriePreFaturasCompraCf, NumSerieNotasCreditoCompra = item.NumSerieNotasCreditoCompra, SuperiorHierarquico = item.SuperiorHierarquico, RequisicaoStock = item.RequisicaoStock, AprovadorPedidoPag1 = item.AprovadorPedidoPag1, AprovadorPedidoPag2 = item.AprovadorPedidoPag2, AnulacaoPedidoPagamento = item.AnulacaoPedidoPagamento, ValidarPedidoPagamento = item.ValidarPedidoPagamento, CriarProjetoSemAprovacao = item.CriarProjetoSemAprovacao, CMHistoricoToActivo = item.CMHistoricoToActivo, ArquivarREQPendentes = item.ArquivarREQPendentes }); } return(null); }
public static ConfigUtilizadores Update(ConfigUtilizadores ObjectToUpdate) { try { using (var ctx = new SuchDBContext()) { ObjectToUpdate.DataHoraModificação = DateTime.Now; ctx.ConfigUtilizadores.Update(ObjectToUpdate); ctx.SaveChanges(); } return(ObjectToUpdate); } catch (Exception ex) { return(null); } }
public JsonResult GetSimplifiedRequisitionLinesModels([FromBody] JObject requestParams) { string requestNo = requestParams["requestNo"].ToString(); string requestNoNew = requestParams["requestNoNew"].ToString(); ConfigUtilizadores utilizador = DBUserConfigurations.GetById(User.Identity.Name); List <SimplifiedRequisitionLineViewModel> result = new List <SimplifiedRequisitionLineViewModel>(); if (requestNo != null) { result = DBSimplifiedRequisitionLines.ParseToViewModel(DBSimplifiedRequisitionLines.GetById(requestNo)); result.ForEach(x => { x.RequisitionNo = requestNoNew; x.Status = 1; x.LineNo = 0; x.QuantityApproved = 0; x.RequisitionDate = DateTime.Now.ToString(); x.EmployeeNo = utilizador.EmployeeNo; }); } HttpContext.Session.Remove("aprovadoSession"); return(Json(result)); }
public JsonResult GetSimplifiedRequisitionModel([FromBody] SimplifiedRequisitionViewModel item) { ConfigUtilizadores utilizador = DBUserConfigurations.GetById(User.Identity.Name); SimplifiedRequisitionViewModel result = new SimplifiedRequisitionViewModel(); if (item != null && !string.IsNullOrEmpty(item.RequisitionNo)) { result = DBSimplifiedRequisitions.ParseToViewModel(DBSimplifiedReqTemplates.GetById(item.RequisitionNo)); result.Status = 1; result.Finished = false; result.CreateResponsible = null; result.CreateDate = null; result.RequisitionDate = null; result.RequisitionTime = null; result.RegistrationDate = null; result.ApprovalResponsible = null; result.ApprovalDate = null; result.ApprovalTime = null; result.EmployeeNo = utilizador.EmployeeNo; result.ReceiptPreviewDate = DateTime.Now.ToString(); } return(Json(result)); }
public JsonResult GetSimplifiedRequisitionData([FromBody] SimplifiedRequisitionViewModel item) { ConfigUtilizadores utilizador = DBUserConfigurations.GetById(User.Identity.Name); SimplifiedRequisitionViewModel result = new SimplifiedRequisitionViewModel(); result.Status = 1; result.EmployeeNo = utilizador.EmployeeNo; if (item != null && !string.IsNullOrEmpty(item.RequisitionNo)) { result = DBSimplifiedRequisitions.ParseToViewModel(DBSimplifiedRequisitions.GetById(item.RequisitionNo)); } else { //Get Numeration string entityId = ""; bool autoGenId = false; Configuração conf = DBConfigurations.GetById(1); int entityNumerationConfId = conf.NumeraçãoRequisiçõesSimplificada.Value; autoGenId = true; entityId = DBNumerationConfigurations.GetNextNumeration(entityNumerationConfId, autoGenId, false); result.RequisitionNo = entityId; } return(Json(result)); }
public RequisitionViewModel CreateMarketConsultFor(RequisitionViewModel requisition) { try { //Verificar se pode criar uma consulta de mercado if (requisition.Lines.Where(p => p.CreateMarketSearch == true).Where(p => string.IsNullOrEmpty(p.QueryCreatedMarketNo)).Count() <= 0) { requisition.eReasonCode = -1; requisition.eMessage = "Consulta ao Mercado não pode ser criada! As linhas devem estar marcadas com 'Criar Consulta Mercado' e não ter 'Nº de Consulta Mercado Criada'"; return(requisition); } //Criar nova Consulta Mercado - Obtenção do novo NumConsultaMercado e incrementar Numerações ConsultaMercado consultaMercado = DBConsultaMercado.Create(changedByUserName); //Ir Buscar o Nº Mecanográfico do utilizado ConfigUtilizadores UC = DBUserConfigurations.GetById(changedByUserName); //Actualizar o registo com os dados possiveis consultaMercado.CodProjecto = requisition.ProjectNo == "" ? null : requisition.ProjectNo; consultaMercado.Descricao = "Consulta Mercado - " + requisition.RequisitionNo; consultaMercado.CodRegiao = requisition.RegionCode; consultaMercado.CodAreaFuncional = requisition.FunctionalAreaCode; consultaMercado.CodCentroResponsabilidade = requisition.CenterResponsibilityCode; consultaMercado.DataPedidoCotacao = DateTime.Now; consultaMercado.CodLocalizacao = requisition.LocalCode; consultaMercado.Destino = 0; consultaMercado.Estado = 0; consultaMercado.UtilizadorRequisicao = requisition.CreateUser; consultaMercado.Fase = 0; consultaMercado.Modalidade = 0; consultaMercado.PedidoCotacaoCriadoEm = DateTime.Now; consultaMercado.PedidoCotacaoCriadoPor = changedByUserName; consultaMercado.NumRequisicao = requisition.RequisitionNo; consultaMercado.Urgente = requisition.Urgent; consultaMercado.CodComprador = !string.IsNullOrEmpty(UC.EmployeeNo) ? UC.EmployeeNo : null; consultaMercado = DBConsultaMercado.Update(consultaMercado); //Para cada linha da requisição foreach (RequisitionLineViewModel requisitionLine in requisition.Lines.Where(p => p.CreateMarketSearch == true).Where(p => p.QueryCreatedMarketNo == null)) { decimal _qty = requisitionLine.QuantityToRequire != null ? requisitionLine.QuantityToRequire.Value : 0; decimal _custo = requisitionLine.UnitCost != null ? requisitionLine.UnitCost.Value : 0; decimal _custoTotalPrev = Math.Round(_qty * _custo * 100) / 100; DateTime?_dataEntrega; try { _dataEntrega = DateTime.Parse(requisitionLine.ExpectedReceivingDate); } catch { _dataEntrega = null; } //Inserir Linhas na tabela "Linhas_Consulta_Mercado" LinhasConsultaMercado linhasConsultaMercado = new LinhasConsultaMercado() { NumConsultaMercado = consultaMercado.NumConsultaMercado, CodProduto = requisitionLine.Code, Descricao = requisitionLine.Description, Descricao2 = requisitionLine.Description2, NumProjecto = requisitionLine.ProjectNo, CodRegiao = requisitionLine.RegionCode, CodAreaFuncional = requisitionLine.FunctionalAreaCode, CodCentroResponsabilidade = requisitionLine.CenterResponsibilityCode, CodLocalizacao = requisitionLine.LocalCode, Quantidade = requisitionLine.QuantityToRequire, CustoUnitarioPrevisto = requisitionLine.UnitCost, CustoTotalPrevisto = _custoTotalPrev, CodUnidadeMedida = requisitionLine.UnitMeasureCode, DataEntregaPrevista = _dataEntrega, NumRequisicao = requisition.RequisitionNo, LinhaRequisicao = requisitionLine.LineNo, CriadoEm = DateTime.Now, CriadoPor = changedByUserName }; linhasConsultaMercado = DBConsultaMercado.Create(linhasConsultaMercado); //Verificar se tem Fornecedor identificado if (requisitionLine.SupplierNo != null) { //Verificar se na tabela "Seleccao_Entidades" já temos este Fornecedor para esta Consulta Mercado SeleccaoEntidades seleccaoEntidades = DBConsultaMercado.GetSeleccaoEntidadesPorNumConsultaFornecedor(consultaMercado.NumConsultaMercado, requisitionLine.SupplierNo); if (seleccaoEntidades == null) { seleccaoEntidades = new SeleccaoEntidades() { NumConsultaMercado = consultaMercado.NumConsultaMercado, CodFornecedor = requisitionLine.SupplierNo, NomeFornecedor = !string.IsNullOrEmpty(requisitionLine.SupplierNo) ? DBNAV2017Supplier.GetAll(_config.NAVDatabaseName, _config.NAVCompanyName, requisitionLine.SupplierNo).FirstOrDefault().Name : "", Selecionado = true, Preferencial = true }; seleccaoEntidades = DBConsultaMercado.Create(seleccaoEntidades); } } requisitionLine.QueryCreatedMarketNo = consultaMercado.NumConsultaMercado; DBRequestLine.Update(DBRequestLine.ParseToDB(requisitionLine)); } requisition.MarketInquiryNo = consultaMercado.NumConsultaMercado; Requisição requisição = DBRequest.ParseToDB(requisition); DBRequest.Update(requisição); requisition = DBRequest.ParseToViewModel(requisição); requisition.eReasonCode = 1; requisition.eMessage = "Consulta ao Mercado " + consultaMercado.NumConsultaMercado + " criada com sucesso"; } catch (Exception ex) { requisition.eReasonCode = -1; requisition.eMessage = ex.Message; } return(requisition); }
public static async Task <WSCreatePreInvoice.Create_Result> CreatePreInvoice(SPInvoiceListViewModel preInvoiceToCreate, NAVWSConfigurations WSConfigurations) { WSCreatePreInvoice.Document_Type tipo; bool notaDebito = false; string PostingNoSeries = ""; ConfigUtilizadores CUsers = DBUserConfigurations.GetById(preInvoiceToCreate.CreateUser); if (preInvoiceToCreate.MovementType == 2)//Nota de débito { tipo = WSCreatePreInvoice.Document_Type.Invoice; notaDebito = true; PostingNoSeries = CUsers.NumSerieNotasDebito; } else if (preInvoiceToCreate.MovementType == 4)//Nota de crédito { tipo = WSCreatePreInvoice.Document_Type.Credit_Memo; notaDebito = false; PostingNoSeries = CUsers.NumSerieNotasCredito; } else// Fatura { tipo = WSCreatePreInvoice.Document_Type.Invoice; notaDebito = false; PostingNoSeries = CUsers.NumSerieFaturas; } WSCreatePreInvoice.Create NAVCreate = new WSCreatePreInvoice.Create() { WSPreInvoice = new WSCreatePreInvoice.WSPreInvoice() { Document_Type = tipo, Document_TypeSpecified = true, Sell_to_Customer_No = preInvoiceToCreate.InvoiceToClientNo, VAT_Registration_No = preInvoiceToCreate.ClientVATReg, Contract_No = preInvoiceToCreate.ContractNo, Debit_Memo = notaDebito, Debit_MemoSpecified = true, Posting_No_Series = PostingNoSeries, Codigo_Pedido = preInvoiceToCreate.ClientRequest, Currency_Code = preInvoiceToCreate.Currency, Data_Serv_Prestado = preInvoiceToCreate.ServiceDate, Data_Encomenda = !string.IsNullOrEmpty(preInvoiceToCreate.DataPedido) ? DateTime.Parse(preInvoiceToCreate.DataPedido) : DateTime.MinValue, Data_EncomendaSpecified = !string.IsNullOrEmpty(preInvoiceToCreate.DataPedido), //Document_Date = preInvoiceToCreate.dat //Due_Date //Document_Date //External_Document_No RegionCode20 = preInvoiceToCreate.RegionCode, FunctionAreaCode20 = preInvoiceToCreate.FunctionalAreaCode, ResponsabilityCenterCode20 = preInvoiceToCreate.ResponsabilityCenterCode, Location_Code = preInvoiceToCreate.LocationCode, No_Compromisso = preInvoiceToCreate.CommitmentNumber, Observacoes = preInvoiceToCreate.Comments, Responsibility_Center = CUsers.CentroDeResponsabilidade, //Order_Date Payment_Method_Code = preInvoiceToCreate.CodMetodoPagamento, Payment_Terms_Code = preInvoiceToCreate.CodTermosPagamento, //Posting_Date Posting_Date = !string.IsNullOrEmpty(preInvoiceToCreate.Posting_Date.ToString()) ? DateTime.Parse(preInvoiceToCreate.Posting_Date.ToString()) : DateTime.MinValue, Posting_DateSpecified = !string.IsNullOrEmpty(preInvoiceToCreate.Posting_Date.ToString()), Document_Date = !string.IsNullOrEmpty(preInvoiceToCreate.Posting_Date.ToString()) ? DateTime.Parse(preInvoiceToCreate.Posting_Date.ToString()) : DateTime.MinValue, Document_DateSpecified = !string.IsNullOrEmpty(preInvoiceToCreate.Posting_Date.ToString()), External_Document_No = preInvoiceToCreate.ProjectNo, Ship_to_Address = preInvoiceToCreate.Ship_to_Address, Ship_to_Address_2 = preInvoiceToCreate.Ship_to_Address_2, Ship_to_City = preInvoiceToCreate.Ship_to_City, Ship_to_Code = preInvoiceToCreate.Ship_to_Code, Ship_to_Contact = preInvoiceToCreate.Ship_to_Contact, Ship_to_Country_Region_Code = preInvoiceToCreate.Ship_to_Country_Region_Code, Ship_to_County = preInvoiceToCreate.Ship_to_County, Ship_to_Name = preInvoiceToCreate.Ship_to_Name, Ship_to_Name_2 = preInvoiceToCreate.Ship_to_Name_2, Ship_to_Post_Code = preInvoiceToCreate.Ship_to_Post_Code, Prices_Including_VAT = preInvoiceToCreate.FaturaPrecosIvaIncluido.HasValue ? (bool)preInvoiceToCreate.FaturaPrecosIvaIncluido : false, Prices_Including_VATSpecified = true } }; //Configure NAV Client EndpointAddress WS_URL = new EndpointAddress(WSConfigurations.WS_PreInvoice_URL.Replace("Company", WSConfigurations.WS_User_Company)); WSCreatePreInvoice.WSPreInvoice_PortClient WS_Client = new WSCreatePreInvoice.WSPreInvoice_PortClient(navWSBinding, WS_URL); WS_Client.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Delegation; WS_Client.ClientCredentials.Windows.ClientCredential = new NetworkCredential(WSConfigurations.WS_User_Login, WSConfigurations.WS_User_Password, WSConfigurations.WS_User_Domain); return(await WS_Client.CreateAsync(NAVCreate)); }
public static async Task <WSCreatePreInvoice.Create_Result> CreateContractInvoice(AutorizarFaturaçãoContratos CreateInvoice, NAVWSConfigurations WSConfigurations, string ContractInvoicePeriod, string InvoiceBorrowed, string CodTermosPagamento, bool PricesIncludingVAT, string Ship_to_Code) { DateTime now = DateTime.Now; string PostingNoSeries = ""; string Observacoes = ""; string Mes = InvoiceBorrowed.Substring(0, InvoiceBorrowed.IndexOf("/")); string Ano = InvoiceBorrowed.Substring(InvoiceBorrowed.IndexOf("/") + 1, 4); ConfigUtilizadores CUsers = DBUserConfigurations.GetById(CreateInvoice.UtilizadorCriação); Contratos Contrato = DBContracts.GetByIdLastVersion(CreateInvoice.NºContrato); WSCreatePreInvoice.Create_Result result = new WSCreatePreInvoice.Create_Result(); if (Contrato != null && Contrato.TipoContrato == 3 && Contrato.Tipo == 3) //Contrato Quotas { ConfiguracaoParametros Parametro = DBConfiguracaoParametros.GetByParametro("QuotasNoSeries"); if (Parametro != null && !string.IsNullOrEmpty(Parametro.Valor)) { PostingNoSeries = Parametro.Valor; } if (Contrato != null && !string.IsNullOrEmpty(Contrato.TextoFatura)) { Observacoes = Contrato.TextoFatura; Observacoes = Observacoes.Replace("<MES>", Mes); Observacoes = Observacoes.Replace("<ANO>", Ano); } } else { PostingNoSeries = !string.IsNullOrEmpty(CUsers.NumSerieFaturas) ? CUsers.NumSerieFaturas : ""; Observacoes = !string.IsNullOrEmpty(CreateInvoice.Descrição) ? CreateInvoice.Descrição : ""; } WSCreatePreInvoice.Create NAVCreate = new WSCreatePreInvoice.Create() { WSPreInvoice = new WSCreatePreInvoice.WSPreInvoice() { Sell_to_Customer_No = !string.IsNullOrEmpty(CreateInvoice.NºCliente) ? CreateInvoice.NºCliente : "", Document_Date = DateTime.Today, Document_DateSpecified = true, Shipment_Date = now, Shipment_DateSpecified = true, Shipment_Start_Time = now.AddHours(1), Shipment_Start_TimeSpecified = true, Document_Type = WSCreatePreInvoice.Document_Type.Invoice, Document_TypeSpecified = true, Posting_Date = CreateInvoice.DataDeRegisto ?? DateTime.Now, Posting_DateSpecified = true, Periodo_de_Fact_Contrato = !string.IsNullOrEmpty(ContractInvoicePeriod) ? ContractInvoicePeriod : "", Data_Serv_Prestado = !string.IsNullOrEmpty(InvoiceBorrowed) ? InvoiceBorrowed : "", Responsibility_Center = !string.IsNullOrEmpty(CUsers.CentroDeResponsabilidade) ? CUsers.CentroDeResponsabilidade : "", Posting_No_Series = PostingNoSeries, Due_Date = (DateTime)CreateInvoice.DataDeExpiração, Due_DateSpecified = true, Payment_Terms_Code = CodTermosPagamento, //Amaro Observacoes = Observacoes, Contract_No = !string.IsNullOrEmpty(CreateInvoice.NºContrato) ? CreateInvoice.NºContrato : "", Factura_CAF = true, Factura_CAFSpecified = true, Codigo_Pedido = !string.IsNullOrEmpty(CreateInvoice.NoRequisicaoDoCliente) ? CreateInvoice.NoRequisicaoDoCliente : "", No_Compromisso = !string.IsNullOrEmpty(CreateInvoice.NoCompromisso) ? CreateInvoice.NoCompromisso : "", Data_Encomenda = CreateInvoice.DataRececaoRequisicao ?? DateTime.MinValue, Data_EncomendaSpecified = true, RegionCode20 = !string.IsNullOrEmpty(CreateInvoice.CódigoRegião) ? CreateInvoice.CódigoRegião : "", FunctionAreaCode20 = !string.IsNullOrEmpty(CreateInvoice.CódigoÁreaFuncional) ? CreateInvoice.CódigoÁreaFuncional : "", ResponsabilityCenterCode20 = !string.IsNullOrEmpty(CreateInvoice.CódigoCentroResponsabilidade) ? CreateInvoice.CódigoCentroResponsabilidade : "", Prices_Including_VAT = PricesIncludingVAT, Prices_Including_VATSpecified = true, Ship_to_Code = !string.IsNullOrEmpty(Ship_to_Code) ? Ship_to_Code : "", } }; // Configure NAV Client EndpointAddress WS_URL = new EndpointAddress(WSConfigurations.WS_PreInvoice_URL.Replace("Company", WSConfigurations.WS_User_Company)); WSCreatePreInvoice.WSPreInvoice_PortClient WS_Client = new WSCreatePreInvoice.WSPreInvoice_PortClient(navWSBinding, WS_URL); WS_Client.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Delegation; WS_Client.ClientCredentials.Windows.ClientCredential = new NetworkCredential(WSConfigurations.WS_User_Login, WSConfigurations.WS_User_Password, WSConfigurations.WS_User_Domain); try { result = await WS_Client.CreateAsync(NAVCreate); return(result); } catch (Exception ex) { return(null); } }
public JsonResult Create([FromBody] FornecedorDetailsViewModel data) { if (data != null) { if (string.IsNullOrEmpty(data.No)) { data.No = ""; } if (string.IsNullOrEmpty(data.Name)) { data.Name = ""; } if (string.IsNullOrEmpty(data.PostCode)) { data.PostCode = ""; } if (string.IsNullOrEmpty(data.City)) { data.City = ""; } if (string.IsNullOrEmpty(data.Country)) { data.Country = ""; } if (string.IsNullOrEmpty(data.Phone)) { data.Phone = ""; } if (string.IsNullOrEmpty(data.Email)) { data.Email = ""; } if (string.IsNullOrEmpty(data.Fax)) { data.Fax = ""; } if (string.IsNullOrEmpty(data.HomePage)) { data.HomePage = ""; } if (string.IsNullOrEmpty(data.VATRegistrationNo)) { data.VATRegistrationNo = ""; } if (string.IsNullOrEmpty(data.PaymentTermsCode)) { data.PaymentTermsCode = ""; } if (string.IsNullOrEmpty(data.PaymentMethodCode)) { data.PaymentMethodCode = ""; } if (string.IsNullOrEmpty(data.NoClienteAssociado)) { data.NoClienteAssociado = ""; } if (data.Blocked == null) { data.Blocked = 0; } if (string.IsNullOrEmpty(data.Address)) { data.Address = ""; } if (string.IsNullOrEmpty(data.Address_2)) { data.Address_2 = ""; } if (string.IsNullOrEmpty(data.Distrito)) { data.Distrito = ""; } if (data.Criticidade == null) { data.Criticidade = 0; } if (string.IsNullOrEmpty(data.Observacoes)) { data.Observacoes = ""; } data.Utilizador_Alteracao_eSUCH = User.Identity.Name; var createVendorTask = WSVendorService.CreateAsync(data, _configws); try { createVendorTask.Wait(); } catch (Exception ex) { data.eReasonCode = 3; data.eMessage = "Ocorreu um erro ao criar o fornecedor no NAV."; data.eMessages.Add(new TraceInformation(TraceType.Error, ex.Message)); return(Json(data)); } var result = createVendorTask.Result; if (result == null) { data.eReasonCode = 3; data.eMessage = "Ocorreu um erro ao criar o fornecedor no NAV."; return(Json(data)); } data.eReasonCode = 1; var vendor = WSVendorService.MapVendorNAVToVendorModel(result.WSVendor); if (vendor != null) { //SUCESSO vendor.eReasonCode = 1; //Envio de email ConfiguracaoParametros Parametro = DBConfiguracaoParametros.GetByParametro("AddFornecedorEmail"); ConfigUtilizadores UserEmail = DBUserConfigurations.GetById(User.Identity.Name); if (Parametro != null && !string.IsNullOrEmpty(Parametro.Valor)) { SendEmailApprovals Email = new SendEmailApprovals(); var path_tmp = Path.Combine(_generalConfig.FileUploadFolder + "Fornecedores\\tmp\\", data.NomeAnexo); string FileName_Final = data.NomeAnexo.Replace("FORNECEDOR", vendor.No); var path_final = Path.Combine(_generalConfig.FileUploadFolder + "Fornecedores\\", FileName_Final); FileStream file_tmp = new FileStream(path_tmp, FileMode.Open); FileStream file_final = new FileStream(path_final, FileMode.CreateNew); file_tmp.CopyTo(file_final); file_tmp.Dispose(); file_final.Dispose(); System.IO.File.Delete(path_tmp); Anexos newfile = new Anexos(); newfile.NºOrigem = vendor.No; newfile.UrlAnexo = FileName_Final; newfile.TipoOrigem = TipoOrigemAnexos.Fornecedores; newfile.DataHoraCriação = DateTime.Now; newfile.UtilizadorCriação = User.Identity.Name; Email.DisplayName = "e-SUCH - Fornecedor"; Email.From = "*****@*****.**"; Email.To.Add(Parametro.Valor); Email.BCC.Add("*****@*****.**"); Email.BCC.Add("*****@*****.**"); Email.Subject = "e-SUCH - Novo Fornecedor"; Email.Body = MakeEmailBodyContent("Criado o Fornecedor: " + vendor.No + " - " + vendor.Name, UserEmail.Nome); Email.Anexo = path_final; Email.IsBodyHtml = true; Email.SendEmail_Simple(); } return(Json(vendor)); } } return(Json(data)); }