static public List <Alerts> ShowAllAlerts() { DBRequest req = new DBRequest(); List <Alerts> lstAlert = req.GetAllAlerts(); return(lstAlert); }
static public List <StorageBoxes> ShowAllBoxes() { DBRequest req = new DBRequest(); List <StorageBoxes> lstBox = req.GetAllBoxes(); return(lstBox); }
static public bool AddLog(string action, int bottleID) { DateTime moment = DateTime.Now; DBRequest req = new DBRequest(); bool res = false; switch (action) { case "ajoutNouvelle": req.LogAddNew(bottleID); break; case "ajoutExistante": req.LogAddExist(bottleID); break; case "retrait": req.LogDel(bottleID); break; case "default": break; } return(res); }
static public Bottles GetBottleWithName(string name) { DBRequest req = new DBRequest(); Bottles bot = req.GetBottleWithName(name); return(bot); }
static public List <Bottles> ShowAllBottles() { DBRequest req = new DBRequest(); List <Bottles> lstBot = req.GetAllBottles(); return(lstBot); }
private bool ExecuteNonQuery(DBRequest request) { //Controllo if (!registered.Contains(request.Controller)) { throw new Exception("Il Controller non è registrato all'inizio dell'esecuzione"); } //Inizio DB2Transaction transaction = databaseConnection.GetTransaction(); DB2Command command = databaseConnection.GetCommand(); command.CommandText = request.Command; command.Transaction = transaction; //Esecuzione try { command.ExecuteNonQuery(); } catch (Exception e) { throw new Exception("Errore: " + e.Message); } //Controllo if (!registered.Contains(request.Controller)) { transaction.Rollback(); throw new Exception("Il Controller non è registrato alla fine dell'esecuzione"); } //Fine transaction.Commit(); return(true); }
static public List <Bottles> GetBottlesWithAlert(int id) { DBRequest req = new DBRequest(); List <Bottles> lstBot = req.GetBottlesWithAlert(id); return(lstBot); }
static public List <Logs> GetAllLogs() { DBRequest req = new DBRequest(); List <Logs> lstlog = req.GetAllLogs(); return(lstlog); }
static public bool UpdateBottle(string wineName, int number, double volume, int year) { DBRequest req = new DBRequest(); bool res = req.UpdateBottle(wineName, number, volume, year); return(res); }
static public bool RemoveBottle(string name, int num, double vol, string manu, int year) { bool res = false; DBRequest req = new DBRequest(); res = req.RemoveBottle(name, num, vol, manu, year); return(res); }
static public bool AddStorageWDesc(string name, string desc) { bool res = false; DBRequest req = new DBRequest(); res = req.AddStorageWDesc(name, desc); return(res); }
static public bool RemoveStorage(string name) { bool res = false; DBRequest req = new DBRequest(); res = req.RemoveStorage(name); return(res); }
static public bool AddBottle(string name, string col, int num, double vol, string manu, int year, string box) { bool res = false; DBRequest req = new DBRequest(); res = req.AddBottle(name, col, num, vol, manu, year, box); return(res); }
static public List <Bottles> OrderByVarietal() { List <Bottles> lstBot = new List <Bottles>(); DBRequest req = new DBRequest(); lstBot = req.OrderByVarietal(); return(lstBot); }
static public List <Bottles> OrderByManufacturer() { List <Bottles> lstBot = new List <Bottles>(); DBRequest req = new DBRequest(); lstBot = req.OrderByManufacturer(); return(lstBot); }
static public List <Bottles> ResearchByKeyword(string key) { List <Bottles> lstBot = new List <Bottles>(); DBRequest req = new DBRequest(); lstBot = req.ResearchByKeyword(key); return(lstBot); }
static public bool AddBottleWithVarietal(string name, string col, int num, double vol, string manu, int year, string box, List <string> var) { bool res = false; DBRequest req = new DBRequest(); res = req.AddBottleWVar(name, col, num, vol, manu, year, box, var); return(res); }
static public bool AddAlertToBottle(string name, string alert) { bool res = false; DBRequest req = new DBRequest(); res = req.AddAlertToBottle(name, alert); return(res); }
static public bool DelAlert(string alert) { bool res = false; DBRequest req = new DBRequest(); res = req.DelAlert(alert); return(res); }
static public bool AddAlert(string alert, string message) { bool res = false; DBRequest req = new DBRequest(); res = req.AddAlert(alert, message); return(res); }
public GenericResult CreateTransferShipmentFor(string requisitionId) { GenericResult response = new GenericResult(); RequisitionViewModel requisition = null; if (!string.IsNullOrEmpty(requisitionId)) { var tempReq = DBRequest.GetById(requisitionId); if (tempReq != null) { requisition = tempReq.ParseToViewModel(); } } return(CreateTransferShipmentFor(requisition)); }
public JsonResult GetRequisicoes() { List <RequisitionStates> states = new List <RequisitionStates>() { RequisitionStates.Approved, RequisitionStates.Archived, RequisitionStates.Available, RequisitionStates.Consulta, RequisitionStates.Encomenda, RequisitionStates.Pending, RequisitionStates.Received, RequisitionStates.Treated, RequisitionStates.Validated }; List <AcessosDimensões> userDimensions = DBUserDimensions.GetByUserId(User.Identity.Name); List <RequisitionViewModel> requisitions = DBRequest.GetByState(states, userDimensions, _config.NAVDatabaseName, _config.NAVCompanyName).ParseToViewModel(); return(Json(requisitions)); }
public bool AskNonQuery(DBRequest request) { //Controllo if (!registered.Contains(request.Controller)) { throw new Exception("Il Controller non è registrato"); } if (queue.Contains(request)) { throw new Exception("La richiesta è già in corso"); } //Aggiunta alla coda queue.Enqueue(request); //Attesa bool first = queue.Peek().Equals(request); while (!first) { first = queue.Peek().Equals(request); } //Esecuzione bool result; try { result = ExecuteNonQuery(request); } catch (Exception e) { throw e; } //Comunque vada, la richiesta viene tolta dalla fila finally { queue.Dequeue(); } return(result); }
private DBReaderController ExecuteQuery(DBRequest request) { //Controllo if (!registered.Contains(request.Controller)) { throw new Exception("Il Controller non è registrato all'inizio dell'esecuzione"); } //Inizio DBReaderController result; DB2DataReader reader; DB2Transaction transaction = databaseConnection.GetTransaction(); DB2Command command = databaseConnection.GetCommand(); command.CommandText = request.Command; command.Transaction = transaction; //Esecuzione try { reader = command.ExecuteReader(); } catch (Exception e) { throw new Exception("Errore in lettura: " + e.Message); } //Controllo if (!registered.Contains(request.Controller)) { transaction.Rollback(); throw new Exception("Il Controller non è registrato alla fine dell'esecuzione"); } //Fine transaction.Commit(); return(result = new DBReaderController(reader)); }
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)); }
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 RequisitionViewModel ValidateRequisition(RequisitionViewModel requisition) { requisition.eReasonCode = 99; requisition.eMessage = "Ocorreu um erro na Validação da Requisição."; try { if (requisition != null) { if (requisition.State == RequisitionStates.Approved) { if (requisition.Lines != null && requisition.Lines.Count > 0) { var linesToValidate = requisition.Lines .Where(x => x.QuantityRequired != null && x.QuantityRequired.HasValue && x.QuantityRequired.Value > 0) .ToList(); if (linesToValidate != null && linesToValidate.Count > 0) { linesToValidate.ForEach(item => { item.QuantityToProvide = item.QuantityRequired; // QuantidadeADisponibilizar = QuantidadeRequerida item.UpdateUser = this.changedByUserName; item.UpdateDateTime = DateTime.Now; if (DBRequestLine.Update(item.ParseToDB()) == null) { requisition.eReasonCode = 2; requisition.eMessage = "Ocorreu um erro ao atualizar as linhas na Validação da Requisição."; } }); if (requisition.eReasonCode == 99) { requisition.State = RequisitionStates.Validated; requisition.ResponsibleValidation = this.changedByUserName; requisition.ValidationDate = DateTime.Now; requisition.UpdateUser = this.changedByUserName; var updatedReq = DBRequest.UpdateHeaderAndLines(requisition.ParseToDB(), true); if (updatedReq != null) { requisition = updatedReq.ParseToViewModel(); requisition.eReasonCode = 1; requisition.eMessage = "Requisição validada com sucesso."; } else { requisition.eReasonCode = 3; requisition.eMessage = "Ocorreu um erro ao validar a requisição."; } } } else { requisition.eReasonCode = 4; requisition.eMessage = "Não existem linhas com Qt. Requerida superior a zero."; } } else { requisition.eReasonCode = 5; requisition.eMessage = "Não existem linhas para validar na Requisição."; } } else { requisition.eReasonCode = 6; requisition.eMessage = "A Requisição não está no estado Aprovado."; } } else { requisition = new RequisitionViewModel() { eReasonCode = 7, eMessage = "Erro na obtenção da Requisição.", }; } } catch { requisition.eReasonCode = 99; requisition.eMessage = "Ocorreu um erro na Validação da Requisição."; }; return(requisition); }
public RequisitionViewModel CreatePurchaseOrderFor(RequisitionViewModel requisition) { if (requisition != null && requisition.Lines != null && requisition.Lines.Count > 0) { if (string.IsNullOrEmpty(requisition.ReceivedDate)) { requisition.eReasonCode = 4; requisition.eMessage = "É obrigatório o preenchimento do campo Data Receção no Geral."; return(requisition); } //use for database update later var requisitionLines = requisition.Lines; requisitionLines.RemoveAll(x => x.CriarNotaEncomenda == null || x.CriarNotaEncomenda == false); requisitionLines.RemoveAll(x => x.CreatedOrderNo != "" && x.CreatedOrderNo != null); //FIM if (requisitionLines.Any(x => string.IsNullOrEmpty(x.SupplierNo) || !x.UnitCost.HasValue || x.UnitCost.Value == 0)) { throw new Exception("É obrigatório o preenchimento do fornecedor e do custo unitário nas linhas"); } List <PurchOrderDTO> purchOrders = new List <PurchOrderDTO>(); List <DBNAV2017SupplierProductRef.SuppliersProductsRefs> supplierProductRef = new List <DBNAV2017SupplierProductRef.SuppliersProductsRefs>(); try { purchOrders = requisitionLines.GroupBy(x => x.SupplierNo, x => x, (key, items) => new PurchOrderDTO { SupplierId = key, RequisitionId = requisition.RequisitionNo, CenterResponsibilityCode = requisition.CenterResponsibilityCode, FunctionalAreaCode = requisition.FunctionalAreaCode, RegionCode = requisition.RegionCode, LocalMarketRegion = requisition.LocalMarketRegion, InAdvance = requisition.InAdvance.HasValue ? requisition.InAdvance.Value : false, PricesIncludingVAT = requisition.PricesIncludingVAT.HasValue ? requisition.PricesIncludingVAT.Value : false, LocationCode = requisition.LocalCode, Purchaser_Code = requisition.NumeroMecanografico, Lines = items.Select(line => new PurchOrderLineDTO() { LineId = line.LineNo, Type = line.Type, Code = line.Code, Description = line.Description, Description2 = line.Description2, ProjectNo = line.ProjectNo, QuantityRequired = line.QuantityRequired, UnitCost = line.UnitCost, LocationCode = line.LocalCode, OpenOrderNo = line.OpenOrderNo, OpenOrderLineNo = line.OpenOrderLineNo, CenterResponsibilityCode = line.CenterResponsibilityCode, FunctionalAreaCode = line.FunctionalAreaCode, RegionCode = line.RegionCode, UnitMeasureCode = line.UnitMeasureCode, VATBusinessPostingGroup = line.VATBusinessPostingGroup, VATProductPostingGroup = line.VATProductPostingGroup, DiscountPercentage = line.DiscountPercentage.HasValue ? line.DiscountPercentage.Value : 0, }) .ToList() }) .ToList(); supplierProductRef = DBNAV2017SupplierProductRef.GetSuplierProductRefsForRequisition(_config.NAVDatabaseName, _config.NAVCompanyName, requisition.RequisitionNo); } catch { throw new Exception("Ocorreu um erro ao agrupar as linhas."); } if (purchOrders.Count() > 0) { purchOrders.ForEach(purchOrder => { try { purchOrder.Lines.ForEach(line => line.SupplierProductCode = supplierProductRef .Where(x => x.ProductId == line.Code && x.SupplierNo == purchOrder.SupplierId && x.UnitOfMeasureCode == line.UnitMeasureCode) .FirstOrDefault() ?.SupplierProductId ); //Novo código que adiciona + linhas mas só para requisições do tipo nutrição if (requisition.RequestNutrition == true) { string codFornecedor = purchOrder.SupplierId; List <ConfigLinhasEncFornecedor> LinhasEncFornecedor = DBConfigLinhasEncFornecedor.GetAll().Where(x => x.VendorNo == codFornecedor).ToList(); if (LinhasEncFornecedor != null && LinhasEncFornecedor.Count > 0) { foreach (ConfigLinhasEncFornecedor linha in LinhasEncFornecedor) { string ProjectNo = string.Empty; string RegionCode = string.Empty; string FunctionalAreaCode = string.Empty; string CenterResponsibilityCode = string.Empty; string ArmazemCompraDireta = string.Empty; Configuração Config = DBConfigurations.GetById(1); if (Config != null) { ArmazemCompraDireta = Config.ArmazemCompraDireta; } UnidadesProdutivas UnidProd = DBProductivityUnits.GetAll().Where(x => x.NºCliente == codFornecedor).FirstOrDefault(); if (UnidProd != null) { ProjectNo = UnidProd.ProjetoMatSubsidiárias; } if (!string.IsNullOrEmpty(ProjectNo)) { NAVProjectsViewModel Project = DBNAV2017Projects.GetAll(_config.NAVDatabaseName, _config.NAVCompanyName, ProjectNo).FirstOrDefault(); if (Project != null) { RegionCode = Project.RegionCode; FunctionalAreaCode = Project.AreaCode; CenterResponsibilityCode = Project.CenterResponsibilityCode; } } PurchOrderLineDTO purchOrderLine = new PurchOrderLineDTO() { LineId = null, Type = 2, //PRODUTO Code = linha.No, Description = linha.Description, Description2 = linha.Description2, ProjectNo = ProjectNo, QuantityRequired = linha.Quantity, UnitCost = linha.Valor, LocationCode = ArmazemCompraDireta, OpenOrderNo = "", //line.OpenOrderNo, OpenOrderLineNo = null, //line.OpenOrderLineNo, CenterResponsibilityCode = CenterResponsibilityCode, FunctionalAreaCode = FunctionalAreaCode, RegionCode = RegionCode, UnitMeasureCode = linha.UnitOfMeasure, VATBusinessPostingGroup = "", //line.VATBusinessPostingGroup, VATProductPostingGroup = "", //line.VATProductPostingGroup, DiscountPercentage = 0 //line.DiscountPercentage.HasValue ? line.DiscountPercentage.Value : 0, }; purchOrder.Lines.Add(purchOrderLine); } } } //var result = CreateNAVPurchaseOrderFor(purchOrder, Convert.ToDateTime(requisition.ReceivedDate), requisition.Comments); var result = CreateNAVPurchaseOrderFor(purchOrder, Convert.ToDateTime(requisition.ReceivedDate)); if (result.CompletedSuccessfully) { //Update req requisition.OrderNo = result.ResultValue; //Update Requisition Lines requisition.Lines.ForEach(line => { if (line.SupplierNo == purchOrder.SupplierId) { line.CreatedOrderNo = result.ResultValue; line.UpdateUser = this.changedByUserName; } }); //Commit to DB var updatedReq = DBRequest.Update(requisition.ParseToDB(), true); //bool linesUpdated = DBRequestLine.Update(requisition.Lines.ParseToDB()); //if (linesUpdated) if (updatedReq != null) { requisition.eMessages.Add(new TraceInformation(TraceType.Success, "Criada encomenda para o fornecedor núm. " + purchOrder.SupplierId + "; ")); } } } catch (Exception ex) { requisition.eMessages.Add(new TraceInformation(TraceType.Error, "Ocorreu um erro ao criar encomenda para o fornecedor núm. " + purchOrder.SupplierId + ": " + ex.Message)); //requisition.eMessages.Add(new TraceInformation(TraceType.Exception, purchOrder.SupplierId + " " + ex.Message)); } }); if (requisition.eMessages.Any(x => x.Type == TraceType.Success)) { //Refresh lines - Get from db var updatedLines = DBRequestLine.GetByRequisitionId(requisition.RequisitionNo); if (updatedLines != null) { requisition.Lines = updatedLines.ParseToViewModel(); } } if (requisition.eMessages.Any(x => x.Type == TraceType.Error)) { requisition.eReasonCode = 2; requisition.eMessage = "Ocorram erros ao criar encomenda de compra."; } else { requisition.eReasonCode = 1; requisition.eMessage = "Encomenda de compra criada com sucesso."; } } else { requisition.eReasonCode = 3; requisition.eMessage = "Não existem linhas que cumpram os requisitos de criação de encomenda."; } } return(requisition); }
public string Post([FromBody] LogInForm value) { DBRequest request = new DBRequest(); return(request.LogIn(value)); }
public string Post([FromBody] NewUserForm value) { DBRequest request = new DBRequest(); return(request.Registeration(value)); }