public JsonResult ValidateNumeration([FromBody] SimplifiedReqTemplateViewModel item) { //Get Project Numeration Configuração conf = DBConfigurations.GetById(1); if (conf != null) { int numModReqSimplificadas = conf.NumeraçãoModReqSimplificadas.Value; ConfiguraçãoNumerações numConf = DBNumerationConfigurations.GetById(numModReqSimplificadas); //Validate if id is valid if (!(item.RequisitionTemplateId == "" || item.RequisitionTemplateId == null) && !numConf.Manual.Value) { return(Json("A numeração configurada para os modelos de requisição simplificada não permite inserção manual.")); } else if (item.RequisitionTemplateId == "" && !numConf.Automático.Value) { return(Json("É obrigatório inserir o Nº Modelo.")); } } else { return(Json("Não foi possivel obter as configurações base de numeração.")); } return(Json("")); }
public JsonResult ValidateNumeration([FromBody] ContactViewModel item) { //Get Project Numeration Configuração conf = DBConfigurations.GetById(1); if (conf != null) { int contactsNumerationConfId = conf.NumeraçãoContactos.Value; ConfiguraçãoNumerações numConf = DBNumerationConfigurations.GetById(contactsNumerationConfId); //Validate if id is valid if (!(item.No == "" || item.No == null) && !numConf.Manual.Value) { return(Json("A numeração configurada para contactos não permite inserção manual.")); } else if (item.No == "" && !numConf.Automático.Value) { return(Json("É obrigatório inserir o Nº de Contacto.")); } } else { return(Json("Não foi possivel obter as configurações base de numeração.")); } return(Json("")); }
public static ConfiguraçãoNumerações Update(ConfiguraçãoNumerações ObjectToUpdate) { try { using (var ctx = new SuchDBContext()) { //Check if need to clear Last Used Numeration ConfiguraçãoNumerações OldNumerationObject = GetById(ObjectToUpdate.Id); if (OldNumerationObject.Prefixo != ObjectToUpdate.Prefixo || OldNumerationObject.NºDígitosIncrementar != ObjectToUpdate.NºDígitosIncrementar) { ObjectToUpdate.ÚltimoNºUsado = ""; } ObjectToUpdate.DataHoraModificação = DateTime.Now; ctx.ConfiguraçãoNumerações.Update(ObjectToUpdate); ctx.SaveChanges(); } return(ObjectToUpdate); } catch (Exception ex) { 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); } }
public JsonResult CreateRecordTechnicalOfPlates([FromBody] RecordTechnicalOfPlatesModelView data) { if (data != null) { //Get Numeration bool autoGenId = false; Configuração conf = DBConfigurations.GetById(1); int entityNumerationConfId = conf.NumeraçãoFichasTécnicasDePratos.Value; if (data.PlateNo == "" || data.PlateNo == null) { autoGenId = true; data.PlateNo = DBNumerationConfigurations.GetNextNumeration(entityNumerationConfId, autoGenId, false); } if (data.PlateNo != null) { data.CreateUser = User.Identity.Name; var createdItem = DBRecordTechnicalOfPlates.Create(data.ParseToDB()); if (createdItem != null) { data = createdItem.ParseToViewModel(); //Update Last Numeration Used if (autoGenId) { ConfiguraçãoNumerações ConfigNumerations = DBNumerationConfigurations.GetById(entityNumerationConfId); ConfigNumerations.ÚltimoNºUsado = data.PlateNo; ConfigNumerations.UtilizadorModificação = User.Identity.Name; DBNumerationConfigurations.Update(ConfigNumerations); } data.eReasonCode = 1; data.eMessage = "Registo criado com sucesso."; } else { data = new RecordTechnicalOfPlatesModelView(); data.eReasonCode = 2; data.eMessage = "Ocorreu um erro ao editar o registo."; } } else { data.eReasonCode = 2; data.eMessage = "A numeração configurada não é compativel com a inserida."; } } else { data = new RecordTechnicalOfPlatesModelView(); data.eReasonCode = 2; data.eMessage = "Ocorreu um erro: a linha não pode ser nula."; } return(Json(data)); }
public JsonResult CreateReqTemplate([FromBody] SimplifiedReqTemplateViewModel item) { try { if (item != null) { //Get Numeration bool autoGenId = false; Configuração conf = DBConfigurations.GetById(1); int entityNumerationConfId = conf.NumeraçãoModReqSimplificadas.Value; if (item.RequisitionTemplateId == "" || item.RequisitionTemplateId == null) { autoGenId = true; item.RequisitionTemplateId = DBNumerationConfigurations.GetNextNumeration(entityNumerationConfId, autoGenId, false); } if (item.RequisitionTemplateId != null) { item.CreateUser = User.Identity.Name; var createdItem = DBSimplifiedReqTemplates.Create(item.ParseToDB()); if (createdItem != null) { item = createdItem.ParseToViewModel(); if (autoGenId) { ConfiguraçãoNumerações configNum = DBNumerationConfigurations.GetById(entityNumerationConfId); configNum.ÚltimoNºUsado = item.RequisitionTemplateId; configNum.UtilizadorModificação = User.Identity.Name; DBNumerationConfigurations.Update(configNum); } item.eReasonCode = 1; item.eMessage = "Registo criado com sucesso."; } else { item.eReasonCode = 3; item.eMessage = "Ocorreu um erro ao inserir os dados na base de dados."; } } else { item.eReasonCode = 5; item.eMessage = "A numeração configurada não é compativel com a inserida."; } } } catch (Exception) { item.eReasonCode = 2; item.eMessage = "Ocorreu um erro ao criar o modelo de requisição simplificado."; } return(Json(item)); }
public JsonResult CreateRequisition([FromBody] RequisitionTemplateViewModel item) { if (item != null) { //Get Numeration bool autoGenId = false; Configuração conf = DBConfigurations.GetById(1); int entityNumerationConfId = conf.NumeracaoModelosRequisicao.Value; if (item.RequisitionNo == "" || item.RequisitionNo == null) { autoGenId = true; item.RequisitionNo = DBNumerationConfigurations.GetNextNumeration(entityNumerationConfId, autoGenId, false); } if (item.RequisitionNo != null) { item.CreateUser = User.Identity.Name; var createdItem = DBRequestTemplates.Create(item.ParseToDB()); if (createdItem != null) { item = createdItem.ParseToTemplateViewModel(); if (autoGenId) { ConfiguraçãoNumerações configNum = DBNumerationConfigurations.GetById(entityNumerationConfId); configNum.ÚltimoNºUsado = item.RequisitionNo; configNum.UtilizadorModificação = User.Identity.Name; DBNumerationConfigurations.Update(configNum); } item.eReasonCode = 1; item.eMessage = "Registo criado com sucesso."; } else { item = new RequisitionTemplateViewModel(); item.eReasonCode = 2; item.eMessage = "Ocorreu um erro ao criar o registo."; } } else { item.eReasonCode = 5; item.eMessage = "A numeração configurada não é compativel com a inserida."; } } else { item = new RequisitionTemplateViewModel(); item.eReasonCode = 2; item.eMessage = "Ocorreu um erro: o modelo de requisição não pode ser nulo."; } return(Json(item)); }
public static bool Delete(ConfiguraçãoNumerações ObjectToDelete) { try { using (var ctx = new SuchDBContext()) { ctx.ConfiguraçãoNumerações.Remove(ObjectToDelete); ctx.SaveChanges(); } return(true); } catch (Exception ex) { return(false); } }
public JsonResult ValidateNumeration([FromBody] SimplifiedRequisitionViewModel data) { //Get Project Numeration Configuração Cfg = DBConfigurations.GetById(1); int ProjectNumerationConfigurationId = 0; ProjectNumerationConfigurationId = Cfg.NumeraçãoRequisiçõesSimplificada.Value; ConfiguraçãoNumerações CfgNumeration = DBNumerationConfigurations.GetById(ProjectNumerationConfigurationId); //Validate if ProjectNo is valid if (!CfgNumeration.Automático.Value) { return(Json("É obrigatório inserir o Nº Requisição.")); } return(Json("")); }
public static ConfiguraçãoNumerações Create(ConfiguraçãoNumerações ObjectToCreate) { try { using (var ctx = new SuchDBContext()) { ObjectToCreate.DataHoraCriação = DateTime.Now; ctx.ConfiguraçãoNumerações.Add(ObjectToCreate); ctx.SaveChanges(); } return(ObjectToCreate); } catch (Exception ex) { return(null); } }
public JsonResult CreateSimplifiedRequisition([FromBody] SimplifiedRequisitionViewModel item) { if (item != null) { item.CreateUser = User.Identity.Name; item.CreateResponsible = User.Identity.Name; item.RequisitionDate = DateTime.Now.ToString(); item.RegistrationDate = DateTime.Now.ToString("dd/MM/yyyy"); item.RequisitionTime = DateTime.Now.ToString("HH:mm:ss"); if (DBSimplifiedRequisitions.GetById(item.RequisitionNo) != null) { item.eReasonCode = 101; item.eMessage = "O Nº " + item.RequisitionNo + " já existe!"; } else { if (DBSimplifiedRequisitions.Create(DBSimplifiedRequisitions.ParseToDatabase(item)) != null) { //Update Last Numeration Used Configuração conf = DBConfigurations.GetById(1); int entityNumerationConfId = conf.NumeraçãoRequisiçõesSimplificada.Value; ConfiguraçãoNumerações ConfigNumerations = DBNumerationConfigurations.GetById(entityNumerationConfId); ConfigNumerations.ÚltimoNºUsado = item.RequisitionNo; ConfigNumerations.UtilizadorModificação = User.Identity.Name; DBNumerationConfigurations.Update(ConfigNumerations); item.eReasonCode = 100; item.eMessage = "Requisição Simplificada criada com sucesso."; } else { item.eReasonCode = 101; item.eMessage = "Ocorreu um erro ao criar a Requisição Simplificada."; } } } return(Json(item)); }
public ErrorHandler CreateProposalFromContract(string contractId, int version, decimal percentageToApllyInLines = decimal.MinValue) { ErrorHandler result = new ErrorHandler() { eReasonCode = 2, eMessage = "Não foi possivel criar a proposta", }; //Get contract data var contractDb = DBContracts.GetByIdAndVersion(contractId, version); ContractViewModel contract = DBContracts.ParseToViewModel(contractDb, string.Empty, string.Empty); contract.LoadLines(); //Get Numeration Configuração conf = DBConfigurations.GetById(1); int entityNumerationConfId = conf.NumeraçãoPropostas.Value; string proposalId = DBNumerationConfigurations.GetNextNumeration(entityNumerationConfId, true, false); if (!string.IsNullOrEmpty(proposalId) && contract != null) { contract.ContractNo = proposalId; contract.ContractType = (int)ContractType.Proposal; contract.VersionNo = 1; contract.Status = 1; contract.RelatedContract = contractId; contract.CreateDate = DateTime.Now.ToString(); contract.CreateUser = changedByUserName; contract.UpdateDate = string.Empty; contract.UpdateUser = string.Empty; //Add Proposal Header var proposal = ctx.Contratos.Add(DBContracts.ParseToDB(contract)); //Add Proposal Lines contract.Lines.ForEach(x => { x.ContractType = (int)ContractType.Proposal; x.ContractNo = proposalId; x.VersionNo = 1; x.LineNo = 0; if (percentageToApllyInLines > (-100)) { x.UnitPrice = x.UnitPrice + ((percentageToApllyInLines * x.UnitPrice) / 100); proposal.Entity.LinhasContratos.Add(DBContractLines.ParseToDB(x)); } else { proposal.Entity.LinhasContratos.Add(DBContractLines.ParseToDB(x)); } }); ctx.SaveChanges(); result.eReasonCode = 1; result.eMessage = "Foi criada a proposta " + proposalId + "."; try { //Update Last Numeration Used ConfiguraçãoNumerações configNumerations = DBNumerationConfigurations.GetById(entityNumerationConfId); if (configNumerations != null) { configNumerations.ÚltimoNºUsado = proposalId; configNumerations.UtilizadorModificação = changedByUserName; DBNumerationConfigurations.Update(configNumerations); } } catch { result.eMessage += " Ocorreu um erro ao atualizar a numeração."; } } return(result); }
public JsonResult CreateContact([FromBody] ContactViewModel item) { if (item != null) { //Get Numeration bool autoGenId = false; Configuração conf = DBConfigurations.GetById(1); int entityNumerationConfId = conf.NumeraçãoContactos.Value; if (item.No == "" || item.No == null) { autoGenId = true; item.No = DBNumerationConfigurations.GetNextNumeration(entityNumerationConfId, autoGenId, false); } if (item.No != null) { //Ensure contact Id doesn't exist var existingContact = DBContacts.GetById(item.No); if (existingContact == null) { item.CriadoPor = User.Identity.Name; var newItem = DBContacts.Create(item.ParseToDB()).ParseToViewModel(); if (newItem != null) { //Inserted, update item to return item = newItem; //Task<WSContacts.Create_Result> createContactTask = NAVContactsService.CreateAsync(item, _configws); //try //{ // createContactTask.Wait(); //} //catch (Exception ex) //{ // item.eReasonCode = 3; // item.eMessage = "Ocorreu um erro ao criar o contacto no NAV."; // item.eMessages.Add(new TraceInformation(TraceType.Error, ex.Message)); //} //if (!createContactTask.IsCompletedSuccessfully) //{ // //Delete Created Project on Database // DBContacts.Delete(item.No); // item.eReasonCode = 3; // item.eMessage = "Ocorreu um erro ao criar o contacto no NAV."; //} //else //{ //Update Last Numeration Used ConfiguraçãoNumerações configNumerations = DBNumerationConfigurations.GetById(entityNumerationConfId); if (configNumerations != null && autoGenId) { configNumerations.ÚltimoNºUsado = item.No; configNumerations.UtilizadorModificação = User.Identity.Name; DBNumerationConfigurations.Update(configNumerations); } item.eReasonCode = 1; item.eMessage = "Contacto criado com sucesso."; //} } else { item.eReasonCode = 3; item.eMessage = "Ocorreu um erro ao criar o contacto no portal."; } } else { item.eReasonCode = 4; item.eMessage = "Já existe um contacto com o Nº " + item.No; } } else { item.eReasonCode = 5; item.eMessage = "A numeração configurada não é compativel com a inserida."; } } return(Json(item)); }
public static string GetNextNumeration(int id, bool isAuto, bool isRec) { try { ConfiguraçãoNumerações ConfNumeration = null; using (var ctx = new SuchDBContext()) { ConfNumeration = ctx.ConfiguraçãoNumerações.Where(x => x.Id == id).FirstOrDefault(); if (ConfNumeration.Automático == isAuto) { string NextNumeration = ConfNumeration.Prefixo; //Check if is first numeration if (ConfNumeration.ÚltimoNºUsado != null && ConfNumeration.ÚltimoNºUsado != "") { int LastUsedNumber = int.Parse(ConfNumeration.ÚltimoNºUsado.Replace(ConfNumeration.Prefixo, "")); LastUsedNumber += ConfNumeration.QuantidadeIncrementar.Value; if (isRec) { int year = DateTime.Today.Year % 100; string lastNum = year + LastUsedNumber.ToString().PadLeft(ConfNumeration.NºDígitosIncrementar.Value, '0'); lastNum = lastNum.Substring(2); NextNumeration += lastNum; } else { NextNumeration += LastUsedNumber.ToString().PadLeft(ConfNumeration.NºDígitosIncrementar.Value, '0'); } } else { if (isRec) { int year = DateTime.Today.Year % 100; NextNumeration += year + "1".PadLeft(ConfNumeration.NºDígitosIncrementar.Value, '0'); } else { NextNumeration += "1".PadLeft(ConfNumeration.NºDígitosIncrementar.Value, '0'); } } ConfNumeration.ÚltimoNºUsado = NextNumeration; ctx.ConfiguraçãoNumerações.Update(ConfNumeration); ctx.SaveChanges(); return(NextNumeration); } else { return(null); } } } catch (Exception ex) { return(null); } }