public List <BillingReceptionModel> GetPendingOnAreas(string userName) { UserConfigurationsViewModel userConfig = DBUserConfigurations.GetById(userName).ParseToViewModel(); if (userConfig != null) { var billingReceptions = repo.GetPendingOnAreas(userConfig.RFPerfil, userConfig.RFFiltroArea, userConfig.RFPerfilVisualizacao); if (userConfig.RFPerfilVisualizacao.HasValue && userConfig.RFPerfilVisualizacao.Value == BillingReceptionUserProfiles.Tudo) { //Apply User Dimensions Validations List <AcessosDimensões> userDimensions = DBUserDimensions.GetByUserId(userName); if (userDimensions.Where(x => x.Dimensão == (int)Dimensions.Region).Count() > 0) { billingReceptions.RemoveAll(x => !userDimensions.Any(y => y.Dimensão == (int)Dimensions.Region && y.ValorDimensão == x.CodRegiao)); } if (userDimensions.Where(x => x.Dimensão == (int)Dimensions.ResponsabilityCenter).Count() > 0) { billingReceptions.RemoveAll(x => !userDimensions.Any(y => y.Dimensão == (int)Dimensions.ResponsabilityCenter && y.ValorDimensão == x.CodCentroResponsabilidade)); } } return(billingReceptions); } else { return(null); } }
public static StateOfPlayViewModel ParseToViewModel(this PontosSituaçãoRq item) { if (item != null) { return(new StateOfPlayViewModel() { RequisitionNo = item.NºRequisição, StateOfPlayId = item.NºPedido, Question = item.PedidoDePontoSituação, QuestionDate = item.DataPedido, QuestionDateText = item.DataPedido == null ? "" : item.DataPedido.ToString("yyyy-MM-dd"), QuestionTimeText = item.DataPedido == null ? "" : item.DataPedido.ToString("HH:mm"), QuestionedBy = item.UtilizadorPedido, QuestionedByText = item.UtilizadorPedido == null ? "" : DBUserConfigurations.GetById(item.UtilizadorPedido).Nome, Answer = item.Resposta, AnswerDate = item.DataResposta, AnswerDateText = item.DataResposta == null ? "" : item.DataResposta.Value.ToString("yyyy-MM-dd"), AnswerTimeText = item.DataResposta == null ? "" : item.DataResposta.Value.ToString("HH:mm"), AnsweredBy = item.UtilizadorResposta, AnsweredByText = item.UtilizadorResposta == null ? "" : DBUserConfigurations.GetById(item.UtilizadorResposta).Nome, Read = item.ConfirmaçãoLeitura //DimensionRegion = "", //DimensionArea = "", //DimensionCresp = "" }); } return(null); }
public BillingReceptionModel Create(BillingReceptionModel item) { bool autoGenId = false; bool isRec = true; int Cfg = (int)DBUserConfigurations.GetById(item.CriadoPor).PerfilNumeraçãoRecDocCompras; item.DataCriacao = DateTime.Now; item.IdAreaPendente = (int)BillingReceptionAreas.Contabilidade; item.AreaPendente = BillingReceptionAreas.Contabilidade.ToString(); item.Estado = BillingReceptionStates.Rececao; item.DataCriacao = DateTime.Now; item.DescricaoProblema = "Entrada fatura em receção"; if (item.Id == "" || item.Id == null) { ConfiguraçãoNumerações CfgNumeration = DBNumerationConfigurations.GetById(Cfg); autoGenId = true; item.Id = DBNumerationConfigurations.GetNextNumeration(Cfg, autoGenId, isRec); } if (item.Id != "" && item.Id != null) { item = repo.Create(item); RececaoFaturacaoWorkflow wfItem = new RececaoFaturacaoWorkflow(); wfItem.IdRecFaturacao = item.Id; wfItem.AreaWorkflow = Data.EnumHelper.GetDescriptionFor(typeof(BillingReceptionAreas), (int)BillingReceptionAreas.Contabilidade); wfItem.Descricao = "Entrada fatura em receção"; wfItem.CriadoPor = item.CriadoPor; wfItem.Data = DateTime.Now; wfItem.DataCriacao = DateTime.Now; wfItem.Estado = (int)BillingReceptionStates.Rececao;//TODO: Identificar estados possivels “Receção/Conferência” repo.Create(wfItem); try { repo.SaveChanges(); //Update Last Numeration Used ConfiguraçãoNumerações ConfigNumerations = DBNumerationConfigurations.GetById(Cfg); ConfigNumerations.ÚltimoNºUsado = wfItem.IdRecFaturacao; ConfigNumerations.UtilizadorModificação = item.CriadoPor; DBNumerationConfigurations.Update(ConfigNumerations); } catch (Exception ex) { return(null); } return(item); } else { return(item); } }
//[ResponseCache(Duration = 60000)] public IActionResult Index(string orderId) { UserAccessesViewModel UPerm = DBUserAccesses.GetByUserAreaFunctionality(User.Identity.Name, Enumerations.Features.MaintenanceOrders); UserConfigurationsViewModel userConfig = DBUserConfigurations.GetById(User.Identity.Name).ParseToViewModel(); if (UPerm != null && UPerm.Read.Value) { return(View("Index")); } return(RedirectToAction("AccessDenied", "Error")); }
public List <BillingReceptionModel> GetChangeableDestination(string userName) { UserConfigurationsViewModel userConfig = DBUserConfigurations.GetById(userName).ParseToViewModel(); if (userConfig != null) { var billingReceptions = repo.GetChangeableDestination(userName, userConfig.RFPerfil, userConfig.RFPerfilVisualizacao); return(billingReceptions); } else { 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 static ComprasViewModel GetByID(int ID) { try { using (var ctx = new SuchDBContext()) { return(ctx.Compras.Where(x => (x.Id == ID) ).Select(Compras => new ComprasViewModel() { ID = Compras.Id, CodigoProduto = Compras.CodigoProduto, Descricao = Compras.Descricao, Descricao2 = Compras.Descricao2, CodigoUnidadeMedida = Compras.CodigoUnidadeMedida, Quantidade = Compras.Quantidade, NoRequisicao = Compras.NoRequisicao, NoLinhaRequisicao = Compras.NoLinhaRequisicao, Urgente = Compras.Urgente, UrgenteTexto = Compras.Urgente == null ? "" : Compras.Urgente == false ? "Não" : "Sim", RegiaoMercadoLocal = Compras.RegiaoMercadoLocal, Estado = Compras.Estado, //EstadoTexto = Compras.Estado == null ? "" : EnumerablesFixed.ComprasEstado.Where(y => y.Id == Compras.Estado).FirstOrDefault().Value, DataCriacao = Compras.DataCriacao, DataCriacaoTexto = Compras.DataCriacao == null ? "" : Compras.DataCriacao.Value.ToString("yyyy-MM-dd"), HoraCriacaoTexto = Compras.DataCriacao == null ? "" : Compras.DataCriacao.Value.ToString("HH:mm:ss"), UtilizadorCriacao = Compras.UtilizadorCriacao, UtilizadorCriacaoTexto = Compras.UtilizadorCriacao == null ? "" : DBUserConfigurations.GetById(Compras.UtilizadorCriacao).Nome, Responsaveis = Compras.Responsaveis, NoProjeto = Compras.NoProjeto, NoProjetoTexto = Compras.NoProjeto == null ? "" : DBProjects.GetById(Compras.NoProjeto).Descrição, NoFornecedor = Compras.NoFornecedor, //NoFornecedorTexto = Compras.NoFornecedor == null ? "" DBNAV2017Supplier.GetAll(_config.NAVDatabaseName, _config.NAVCompanyName, Compras.NoFornecedor).FirstOrDefault().Name, NoEncomenda = Compras.NoEncomenda, //NoEncomendaTexto = DataEncomenda = Compras.DataEncomenda, DataEncomendaTexto = Compras.DataEncomenda == null ? "" : Compras.DataEncomenda.Value.ToString("yyyy-MM-dd"), HoraEncomendaTexto = Compras.DataEncomenda == null ? "" : Compras.DataEncomenda.Value.ToString("HH:mm:ss"), NoConsultaMercado = Compras.NoConsultaMercado, //NoConsultaMercadoTexto = DataConsultaMercado = Compras.DataConsultaMercado, DataConsultaMercadoTexto = Compras.DataConsultaMercado == null ? "" : Compras.DataConsultaMercado.Value.ToString("yyyy-MM-dd"), HoraConsultaMercadoTexto = Compras.DataConsultaMercado == null ? "" : Compras.DataConsultaMercado.Value.ToString("HH:mm:ss"), DataValidacao = Compras.DataValidacao, DataValidacaoTexto = Compras.DataValidacao == null ? "" : Compras.DataValidacao.Value.ToString("yyyy-MM-dd"), HoraValidacaoTexto = Compras.DataValidacao == null ? "" : Compras.DataValidacao.Value.ToString("HH:mm:ss"), UtilizadorValidacao = Compras.UtilizadorValidacao, UtilizadorValidacaoTexto = Compras.UtilizadorValidacao == null ? "" : DBUserConfigurations.GetById(Compras.UtilizadorValidacao).Nome, DataRecusa = Compras.DataRecusa, DataRecusaTexto = Compras.DataRecusa == null ? "" : Compras.DataRecusa.Value.ToString("yyyy-MM-dd"), HoraRecusaTexto = Compras.DataRecusa == null ? "" : Compras.DataRecusa.Value.ToString("HH:mm:ss"), UtilizadorRecusa = Compras.UtilizadorRecusa, UtilizadorRecusaTexto = Compras.UtilizadorRecusa == null ? "" : DBUserConfigurations.GetById(Compras.UtilizadorRecusa).Nome, DataTratado = Compras.DataTratado, DataTratadoTexto = Compras.DataTratado == null ? "" : Compras.DataTratado.Value.ToString("yyyy-MM-dd"), HoraTratadoTexto = Compras.DataTratado == null ? "" : Compras.DataTratado.Value.ToString("HH:mm:ss"), UtilizadorTratado = Compras.UtilizadorTratado, UtilizadorTratadoTexto = Compras.UtilizadorTratado == null ? "" : DBUserConfigurations.GetById(Compras.UtilizadorTratado).Nome, Recusada = Compras.Recusada, RecusadaTexto = Compras.Recusada == null ? "" : Compras.Recusada == false ? "Não" : "Sim", DataMercadoLocal = Compras.DataMercadoLocal, DataMercadoLocalTexto = Compras.DataMercadoLocal == null ? "" : Compras.DataMercadoLocal.Value.ToString("yyyy-MM-dd"), HoraMercadoLocalTexto = Compras.DataMercadoLocal == null ? "" : Compras.DataMercadoLocal.Value.ToString("HH:mm:ss") }).FirstOrDefault()); } } catch (Exception ex) { return(null); } }
public static List <ComprasViewModel> GetAllByEstado(int Estado) { try { using (var ctx = new SuchDBContext()) { return(ctx.Compras.Where(x => (x.Estado == Estado) ).Select(Compras => new ComprasViewModel() { ID = Compras.Id, CodigoProduto = Compras.CodigoProduto, Descricao = Compras.Descricao, Descricao2 = Compras.Descricao2, CodigoUnidadeMedida = Compras.CodigoUnidadeMedida, Quantidade = Compras.Quantidade, NoRequisicao = Compras.NoRequisicao, NoLinhaRequisicao = Compras.NoLinhaRequisicao, Urgente = Compras.Urgente, UrgenteTexto = Compras.Urgente == null ? "" : Compras.Urgente == false ? "Não" : "Sim", RegiaoMercadoLocal = Compras.RegiaoMercadoLocal, Estado = Compras.Estado, DataCriacao = Compras.DataCriacao, DataCriacaoTexto = Compras.DataCriacao == null ? "" : Compras.DataCriacao.Value.ToString("yyyy-MM-dd"), HoraCriacaoTexto = Compras.DataCriacao == null ? "" : Compras.DataCriacao.Value.ToString("HH:mm:ss"), UtilizadorCriacao = Compras.UtilizadorCriacao, UtilizadorCriacaoTexto = Compras.UtilizadorCriacao == null ? "" : DBUserConfigurations.GetById(Compras.UtilizadorCriacao).Nome, Responsaveis = Compras.Responsaveis, NoProjeto = Compras.NoProjeto, //NoProjetoTexto = Compras.NoProjeto == null ? "" : DBProjects.GetById(Compras.NoProjeto) != null ? DBProjects.GetById(Compras.NoProjeto).Descrição : "", NoFornecedor = Compras.NoFornecedor, NoEncomenda = Compras.NoEncomenda, DataEncomenda = Compras.DataEncomenda, DataEncomendaTexto = Compras.DataEncomenda == null ? "" : Compras.DataEncomenda.Value.ToString("yyyy-MM-dd"), HoraEncomendaTexto = Compras.DataEncomenda == null ? "" : Compras.DataEncomenda.Value.ToString("HH:mm:ss"), NoConsultaMercado = Compras.NoConsultaMercado, DataConsultaMercado = Compras.DataConsultaMercado, DataConsultaMercadoTexto = Compras.DataConsultaMercado == null ? "" : Compras.DataConsultaMercado.Value.ToString("yyyy-MM-dd"), HoraConsultaMercadoTexto = Compras.DataConsultaMercado == null ? "" : Compras.DataConsultaMercado.Value.ToString("HH:mm:ss"), DataValidacao = Compras.DataValidacao, DataValidacaoTexto = Compras.DataValidacao == null ? "" : Compras.DataValidacao.Value.ToString("yyyy-MM-dd"), HoraValidacaoTexto = Compras.DataValidacao == null ? "" : Compras.DataValidacao.Value.ToString("HH:mm:ss"), UtilizadorValidacao = Compras.UtilizadorValidacao, UtilizadorValidacaoTexto = Compras.UtilizadorValidacao == null ? "" : DBUserConfigurations.GetById(Compras.UtilizadorValidacao).Nome, DataRecusa = Compras.DataRecusa, DataRecusaTexto = Compras.DataRecusa == null ? "" : Compras.DataRecusa.Value.ToString("yyyy-MM-dd"), HoraRecusaTexto = Compras.DataRecusa == null ? "" : Compras.DataRecusa.Value.ToString("HH:mm:ss"), UtilizadorRecusa = Compras.UtilizadorRecusa, UtilizadorRecusaTexto = Compras.UtilizadorRecusa == null ? "" : DBUserConfigurations.GetById(Compras.UtilizadorRecusa).Nome, DataTratado = Compras.DataTratado, DataTratadoTexto = Compras.DataTratado == null ? "" : Compras.DataTratado.Value.ToString("yyyy-MM-dd"), HoraTratadoTexto = Compras.DataTratado == null ? "" : Compras.DataTratado.Value.ToString("HH:mm:ss"), UtilizadorTratado = Compras.UtilizadorTratado, UtilizadorTratadoTexto = Compras.UtilizadorTratado == null ? "" : DBUserConfigurations.GetById(Compras.UtilizadorTratado).Nome, Recusada = Compras.Recusada, RecusadaTexto = Compras.Recusada == null ? "" : Compras.Recusada == false ? "Não" : "Sim", DataMercadoLocal = Compras.DataMercadoLocal, DataMercadoLocalTexto = Compras.DataMercadoLocal == null ? "" : Compras.DataMercadoLocal.Value.ToString("yyyy-MM-dd"), HoraMercadoLocalTexto = Compras.DataMercadoLocal == null ? "" : Compras.DataMercadoLocal.Value.ToString("HH:mm:ss") }).ToList()); } } 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)); }
public JsonResult CriarEncomendaCabimento([FromBody] List <LinhasPreEncomendaView> item) { //if (item != null) //{ // try // { // RequisitionService serv = new RequisitionService(configws, HttpContext.User.Identity.Name); // item = serv.CreatePurchaseOrderFor(item); // } // catch (Exception ex) // { // item.eReasonCode = 2; // item.eMessage = "Ocorreu um erro ao criar encomenda de compra (" + ex.Message + ")"; // } //} //else //{ // item = new LinhasPreEncomendaView() // { // eReasonCode = 3, // eMessage = "Não é possivel criar encomenda de compra. A requisição não pode ser nula." // }; //} //return Json(item); /* * 1º - filtrar os itens que chegam aqui, ficando apenas com os que são: * --> Documento a Criar = Encomenda (1) * --> Criar Documento = true * --> Nº Encomenda Aberto = '' * --> Nº Linha Encomenda Aberto = '' * 2º - Criar Encomenda * 3º - As linhas da Requisição devem ficar marcadas com o Nº da Encomenda criada (cada item tem um Nº Linha Requisição) * 4º - Colocar as linhas com Tratadas = 1 */ ErrorHandler resultado = new ErrorHandler { eReasonCode = 1, eMessage = "Criada Encomenda com sucesso." }; if (item != null) { try { List <LinhasPreEncomendaView> list = item.Where(it => it.DocumentoACriar == 1).Where(it => it.CriarDocumento == true).Where(it => it.NumEncomendaAberto == string.Empty).Where(it => !it.NumLinhaEncomendaAberto.HasValue).ToList(); List <PurchOrderDTO> purchOrders = new List <PurchOrderDTO>(); try { if (list != null && list.Count() > 0) { purchOrders = list.GroupBy(x => x.NumFornecedor, x => x, (key, items) => new PurchOrderDTO { SupplierId = key, RequisitionId = list.Where(f => f.NumFornecedor == key).FirstOrDefault().NumRequisicao, CenterResponsibilityCode = list.Where(f => f.NumFornecedor == key).FirstOrDefault().CodigoCentroResponsabilidade, FunctionalAreaCode = list.Where(f => f.NumFornecedor == key).FirstOrDefault().CodigoAreaFuncional, RegionCode = list.Where(f => f.NumFornecedor == key).FirstOrDefault().CodigoRegiao, LocalMarketRegion = list.Where(f => f.NumFornecedor == key).FirstOrDefault().CodigoLocalizacao, Lines = items.Select(line => new PurchOrderLineDTO() { LineId = line.NumLinhaPreEncomenda, Type = null, Code = line.CodigoProduto, Description = line.DescricaoProduto, ProjectNo = line.NumProjeto, QuantityRequired = line.QuantidadeDisponibilizada, UnitCost = line.CustoUnitario, LocationCode = line.CodigoLocalizacao, OpenOrderNo = line.NumEncomendaAberto, OpenOrderLineNo = line.NumLinhaEncomendaAberto, CenterResponsibilityCode = line.CodigoCentroResponsabilidade, FunctionalAreaCode = line.CodigoAreaFuncional, RegionCode = line.CodigoRegiao, UnitMeasureCode = line.CodigoUnidadeMedida, VATBusinessPostingGroup = string.Empty, VATProductPostingGroup = string.Empty, }).ToList() }).ToList(); } } catch { throw new Exception("Ocorreu um erro ao agrupar as linhas."); } if (purchOrders != null && purchOrders.Count() > 0) { purchOrders.ForEach(purchOrder => { RequisitionViewModel requisition = DBRequest.GetById(purchOrder.RequisitionId).ParseToViewModel(); try { //purchOrder.Purchaser_Code = User.Identity.Name; purchOrder.Purchaser_Code = string.IsNullOrEmpty(DBUserConfigurations.GetById(User.Identity.Name).EmployeeNo) ? "" : DBUserConfigurations.GetById(User.Identity.Name).EmployeeNo; var result = CreateNAVPurchaseOrderFor(purchOrder, Convert.ToDateTime(requisition.ReceivedDate)); if (result.CompletedSuccessfully) { foreach (PurchOrderLineDTO Linha in purchOrder.Lines) { LinhasPreEncomenda LinhaPre = DBEncomendas.GetLinhasPreEncomenda((int)Linha.LineId); if (LinhaPre != null) { string ReqNo = LinhaPre.NºRequisição; int ReqNoLinha = (int)LinhaPre.NºLinhaRequisição; Requisição Req = DBRequest.GetById(ReqNo); if (Req != null) { Req.NºEncomenda = result.ResultValue; Req.UtilizadorModificação = User.Identity.Name; Req.DataHoraModificação = DateTime.Now; if (DBRequest.Update(Req) != null) { LinhasRequisição ReqLinha = DBRequestLine.GetByRequisicaoNoAndLineNo(ReqNo, ReqNoLinha); if (ReqLinha != null) { ReqLinha.NºEncomendaCriada = result.ResultValue; ReqLinha.UtilizadorModificação = User.Identity.Name; ReqLinha.DataHoraModificação = DateTime.Now; DBRequestLine.Update(ReqLinha); } } } } } foreach (LinhasPreEncomendaView Linha in list) { if (Linha.NumFornecedor == purchOrder.SupplierId) { Linha.NumPreEncomenda = result.ResultValue; Linha.DocumentoACriar = null; Linha.CriarDocumento = false; Linha.Tratada = true; Linha.UtilizadorModificacao = User.Identity.Name; Linha.DataHoraModificacao = DateTime.Now; DBEncomendas.Update(DBEncomendas.CastLinhasPreEncomendaToDB(Linha)); } } resultado.eMessages.Add(new TraceInformation(TraceType.Success, "Criada encomenda para o fornecedor núm. " + purchOrder.SupplierId + "; ")); //Update req //requisition.OrderNo = result.ResultValue; //Update Requisition Lines //requisition.Lines.Where(x => x.LineNo == purchOrder.OpenOrderLineNo).ToList().ForEach(line => //{ // line.CreatedOrderNo = result.ResultValue; // line.UpdateUser = User.Identity.Name; // line.UpdateDateTime = DateTime.Now; //}); //Commit to DB //var updatedReq = DBRequest.Update(requisition.ParseToDB(), true); //bool linesUpdated = DBRequestLine.Update(requisition.Lines.ParseToDB()); //if (linesUpdated) //if (updatedReq != null) //{ // resultado.eMessages.Add(new TraceInformation(TraceType.Success, "Criada encomenda para o fornecedor núm. " + purchOrder.SupplierId + "; ")); //} } } catch (Exception ex) { resultado.eMessages.Add(new TraceInformation(TraceType.Error, "Ocorreu um erro ao criar encomenda para o fornecedor núm. " + purchOrder.SupplierId + "; ")); resultado.eMessages.Add(new TraceInformation(TraceType.Exception, purchOrder.SupplierId + " " + ex.Message)); } if (resultado.eMessages.Any(x => x.Type == TraceType.Error)) { resultado.eReasonCode = 2; //resultado.eMessage = "Ocorreram erros ao criar encomenda de compra."; resultado.eMessage = "Ocorreram erros ao criar encomenda de compra." + Environment.NewLine + resultado.eMessages[resultado.eMessages.Count() - 1].Message; } else { resultado.eReasonCode = 1; resultado.eMessage = "Encomenda de compra criada com sucesso."; } }); } else { resultado.eReasonCode = 3; resultado.eMessage = "Não existem linhas que cumpram os requisitos de validação do mercado local."; } } catch (Exception ex) { resultado.eReasonCode = -1; resultado.eMessage = "Erro desconhecido."; } } return(Json(resultado)); }