public int GetWorkFlow(BillingReceptionModel item) { RececaoFaturacaoWorkflow LastWork = DBBillingReceptionWf.GetAll().FirstOrDefault(); return(LastWork.Id); }
public BillingReceptionModel CreateWorkFlowSend(BillingReceptionModel item, BillingRecWorkflowModel wfItemLast, string postedByUserName) { //Update Header RecFacturasProblemas questao = new RecFacturasProblemas(); item.Estado = BillingReceptionStates.Pendente; RececaoFaturacaoWorkflow LastID = DBBillingReceptionWf.GetAll().LastOrDefault(); if (wfItemLast.CodProblema != null) { questao = GetQuestionID(wfItemLast.CodProblema, wfItemLast.CodTipoProblema); if (questao.Devolvido == true) { item.Estado = BillingReceptionStates.Devolvido; } else { item.Estado = BillingReceptionStates.Pendente; if (item.DataPassaPendente == null || item.DataPassaPendente == "") { item.DataPassaPendente = DateTime.Now.ToString("dd/MM/yyyy"); } } } item.DataUltimaInteracao = (item.DataModificacao == null) ? item.DataModificacao.ToString() : item.DataCriacao.ToString(); item.TipoProblema = wfItemLast.CodTipoProblema; item.AreaPendente = wfItemLast.AreaWorkflow; item.AreaPendente2 = wfItemLast.Area; item.Destinatario = wfItemLast.Destinatario; item.Descricao = wfItemLast.Comentario; item.TipoProblema = wfItemLast.CodTipoProblema; item.DescricaoProblema = wfItemLast.Descricao; item.DataModificacao = DateTime.Now; item.ModificadoPor = postedByUserName; item.AreaUltimaInteracao = wfItemLast.AreaWorkflow; item.UserUltimaInteracao = wfItemLast.CriadoPor; item = repo.Update(item); RececaoFaturacaoWorkflow wfItem = new RececaoFaturacaoWorkflow(); wfItem.IdRecFaturacao = item.Id; if (questao.Devolvido == true) { wfItem.Estado = (int)BillingReceptionStates.Devolvido; } else { wfItem.Estado = (int)BillingReceptionStates.Pendente; } wfItem.Area = wfItemLast.Area; wfItem.AreaWorkflow = wfItemLast.AreaWorkflow; wfItem.ModificadoPor = item.ModificadoPor; wfItem.Data = item.DataCriacao; wfItem.DataCriacao = DateTime.Now; wfItem.CriadoPor = postedByUserName; wfItem.EnderecoEnvio = postedByUserName; wfItem.EnderecoFornecedor = wfItemLast.EnderecoFornecedor; wfItem.CodDestino = wfItemLast.CodDestino; wfItem.Destinatario = wfItemLast.Destinatario; wfItem.CodTipoProblema = wfItemLast.CodTipoProblema; wfItem.CodProblema = wfItemLast.CodProblema; wfItem.Descricao = wfItemLast.Descricao; wfItem.Comentario = wfItemLast.Comentario; wfItem.Utilizador = postedByUserName; wfItem.Anexo = wfItemLast.AttachedIs; repo.Create(wfItem); if (wfItemLast.Attached != null) { int id = 0; int Idwork = GetWorkFlow(item); item.WorkflowItems.LastOrDefault().Id = Idwork + 1; RececaoFaturacaoWorkflowAnexo wfAnexoItem = new RececaoFaturacaoWorkflowAnexo(); foreach (BillingRecWorkflowModelAttached attached in wfItemLast.Attached) { wfAnexoItem = DBBillingReceptionWFAttach.ParseToDB(attached); wfAnexoItem.Idwokflow = Idwork + 1; wfAnexoItem.Id = id; repo.Create(wfAnexoItem); } } try { repo.SaveChanges(); } catch (Exception ex) { return(null); } RecFaturacaoConfigDestinatarios destino = null; if (wfItem.CodProblema == "RF1P") { destino = GetDestinationAreaDest(wfItemLast.CodDestino); } if (destino != null) { //Rever o Envio de Areas if (destino.EnviaEmail == true && wfItem.EnderecoFornecedor != "") { SendEmailBillingReception Email = new SendEmailBillingReception { Subject = "eSUCH - Recepção da Factura : " + item.Id, //From = "*****@*****.**" From = postedByUserName }; Email.To.Add(wfItem.EnderecoFornecedor); Email.Body = MakeEmailBodyContent("Solicita-se a validação da fatura enviada em anexo:", item.Id, item.CodFornecedor, item.DataUltimaInteracao, item.Valor.ToString(), postedByUserName); Email.IsBodyHtml = true; Email.SendEmail(); try { item.eReasonCode = 1; item.eMessage = "Resposta enviada com sucesso."; } catch { item.eReasonCode = 2; item.eMessage = "Não foi possível enviar email ao utilizador que criou o pedido (" + item.Id + ")"; } } } return(item); }