private void CriarSolicitacaoDocumento(FichaCadastralWebForLinkVM model) { var solicitacao = CriarSolicitacaoDocumentos(model, (int)EnumTiposFluxo.ModificacaoDocumentos); foreach (var item in model.SolicitacaoFornecedor.Documentos.Where(x => x.AtualizarDocOutrosContratantes == true).ToArray()) { if (item.DescricaoDocumentoId_CH > 0) { var pjpfs = _fornecedorDocumentoService.BuscarDocumentoOutrosContratantes(model.ContratanteID, model.PJPFID, item.DescricaoDocumentoId_CH); foreach (var subitem in pjpfs) { FichaCadastralWebForLinkVM modelOutroContratante = new FichaCadastralWebForLinkVM(); modelOutroContratante.ContratanteID = subitem.CONTRATANTE_ID; modelOutroContratante.PJPFID = subitem.PJPF_ID; modelOutroContratante.SolicitacaoFornecedor = new SolicitacaoFornecedorVM(); modelOutroContratante.SolicitacaoFornecedor.Documentos = new List <SolicitacaoDocumentosVM>(); SolicitacaoDocumentosVM doc = new SolicitacaoDocumentosVM(); doc.NomeArquivo = item.NomeArquivo; doc.Arquivo = item.Arquivo; doc.PorValidade = item.PorValidade; doc.DescricaoDocumentoId = item.DescricaoDocumentoId; doc.ListaDocumentosID = item.ListaDocumentosID; doc.SolicitacaoID = item.SolicitacaoID; modelOutroContratante.SolicitacaoFornecedor.Documentos.Add(doc); CriarSolicitacaoDocumentos(modelOutroContratante, (int)EnumTiposFluxo.ModificacaoDocumentos); } } } }
public ActionResult FornecedoresExpandirFrm(FichaCadastralWebForLinkVM model, int Empresa, int Organizacao, int FluxoID, int[] DocumentoID, string[] NomeDocumento, int?[] ArquivoID, int[] BancoOrdem, int[] BancoID, int[] Banco, string[] Agencia, string[] Digito, string[] ContaCorrente, string[] ContaCorrenteDigito, int?UsarContato, int[] ContatoID, string[] NomeContato, string[] Email, string[] Telefone, string[] Celular) { int?usuarioId = (int?)Geral.PegaAuthTicket("UsuarioId"); List <int> contratantesForn = Db.WFD_CONTRATANTE_PJPF.Where(c => c.PJPF_ID == model.ID).Select(cc => cc.CONTRATANTE_ID).ToList(); List <Contratante> contratantes = Db.Contratante.Where(c => c.WFD_USUARIO1.Any(u => u.ID == usuarioId) && !contratantesForn.Contains(c.ID)).ToList(); int contID = contratantes.FirstOrDefault(c => c.ID == Empresa).ID; ViewBag.Empresa = new SelectList(contratantes, "ID", "RAZAO_SOCIAL", Empresa); ViewBag.Organizacao = new SelectList(_organizacaoComprasBP.ListarTodosPorIdContratante(contID), "ID", "ORG_COMPRAS_DSC"); ViewBag.Bancos = _bancoBP.ListarTodosPorNome(); ViewBag.EscolherContato = true; ViewBag.UsarContato = UsarContato; model.Expansao = new ExpansaoVM(); model.Solicitacao = new SolicitacaoVM { Fluxo = new FluxoVM { ID = FluxoID } }; if (UsarContato == null) { ModelState.AddModelError("ContatosValidation", "Informe contato que deseja utilizar!"); } //VERIFICA DADOS DE CONTATOS model.DadosContatos = new List <DadosContatoVM>(); for (int i = 0; i < ContatoID.Length; i++) { model.DadosContatos.Add(new DadosContatoVM { ContatoID = ContatoID[i], NomeContato = (i < NomeContato.Length) ? NomeContato[i] : "", EmailContato = (i < Email.Length) ? Email[i] : "", Telefone = (i < Telefone.Length) ? Telefone[i] : "", Celular = (i < Celular.Length) ? Celular[i] : "", }); if (ContatoID[i] == UsarContato) { if (string.IsNullOrEmpty(Email[i])) { ModelState.AddModelError("ContatosValidation", "Informe o email!"); } } } // VERIFICA DADOS BANCARIOS bool dadosBancariosCompleto = true; model.DadosBancarios = new List <DadosBancariosVM>(); for (int i = 0; i < Banco.Length; i++) { bool temDadosBancario = false; if ((Banco[i] != 0)) { temDadosBancario = true; } if ((!string.IsNullOrEmpty(Agencia[i]))) { temDadosBancario = true; } if ((!string.IsNullOrEmpty(Digito[i]))) { temDadosBancario = true; } if ((!string.IsNullOrEmpty(ContaCorrente[i]))) { temDadosBancario = true; } if ((!string.IsNullOrEmpty(ContaCorrenteDigito[i]))) { temDadosBancario = true; } model.DadosBancarios.Add(new DadosBancariosVM { BancoSolicitacaoID = BancoID[i], Banco = (i < Banco.Length) ? Banco[i] : 0, Agencia = (i < Agencia.Length) ? Agencia[i] : "", Digito = (i < Digito.Length) ? Digito[i] : "", ContaCorrente = (i < ContaCorrente.Length) ? ContaCorrente[i] : "", ContaCorrenteDigito = (i < ContaCorrenteDigito.Length) ? ContaCorrenteDigito[i] : "" }); if (temDadosBancario) { if ((Banco[i] == 0)) { dadosBancariosCompleto = false; } if ((string.IsNullOrEmpty(Agencia[i]))) { dadosBancariosCompleto = false; } if (Agencia[i].Length < 4) { dadosBancariosCompleto = false; } if ((string.IsNullOrEmpty(ContaCorrente[i]))) { dadosBancariosCompleto = false; } } } if (!dadosBancariosCompleto) { ModelState.AddModelError("DadosBancariosValidation", "Dado Bancário Incompleto!"); } if (model.DadosBancarios.Count == 0) { ModelState.AddModelError("DadosBancariosValidation", "Informe ao menos um Dado Bancário!"); } //VERIFICA ANEXOS model.SolicitacaoFornecedor = new SolicitacaoFornecedorVM() { Solicitacao = false, Documentos = new List <SolicitacaoDocumentosVM>() }; if (DocumentoID != null) { for (int i = 0; i < DocumentoID.Length; i++) { SolicitacaoDocumentosVM solicitacaoDocumentosvm = new SolicitacaoDocumentosVM() { ID = DocumentoID[i], Documento = NomeDocumento[i], ArquivoID = ArquivoID[i] }; model.SolicitacaoFornecedor.Documentos.Add(solicitacaoDocumentosvm); } } ModelState.Remove("SolicitacaoFornecedor.Assunto"); ModelState.Remove("SolicitacaoFornecedor.DescricaoSolicitacao"); if (ModelState.IsValid) { try { WFD_CONTRATANTE_PJPF fornecedor = Db.WFD_CONTRATANTE_PJPF.Include("Fornecedor") .Include("WFD_PJPF_CATEGORIA") .FirstOrDefault(f => f.PJPF_ID == model.ID && f.CONTRATANTE_ID == model.ContratanteFornecedorID); string codigoCategoria = fornecedor.WFD_PJPF_CATEGORIA.CODIGO; FORNECEDOR_CATEGORIA categoria = Db.WFD_PJPF_CATEGORIA.FirstOrDefault(c => c.CONTRATANTE_ID == Empresa && c.CODIGO == codigoCategoria); SOLICITACAO solicitacao = new SOLICITACAO(); PopularSolicitacaoEmAprovacao(Empresa, model.ID, usuarioId, FluxoID, solicitacao); Db.Entry(solicitacao).State = EntityState.Added; Db.SaveChanges(); SolicitacaoCadastroFornecedor solforn = new SolicitacaoCadastroFornecedor { SOLICITACAO_ID = solicitacao.ID, EhExpansao = true, EXPANSAO_PARA_CONTR_ID = Empresa, CATEGORIA_ID = categoria.ID, ORG_COMPRAS_ID = Organizacao }; for (int i = 0; i < BancoID.Length; i++) { solforn.WFD_SOLICITACAO.SolicitacaoModificacaoDadosBancario.Add( new SolicitacaoModificacaoDadosBancario() { BANCO_PJPF_ID = BancoID[i] != 0 ? (int?)BancoID[i] : null, BANCO_ID = (Banco[i] != 0) ? Banco[i] : 0, AGENCIA = (string.IsNullOrEmpty(Agencia[i]) || String.IsNullOrWhiteSpace(Agencia[i])) ? null : Agencia[i], AG_DV = (string.IsNullOrEmpty(Digito[i]) || String.IsNullOrWhiteSpace(Digito[i])) ? null : Digito[i], CONTA = (string.IsNullOrEmpty(ContaCorrente[i]) || String.IsNullOrWhiteSpace(ContaCorrente[i])) ? null : ContaCorrente[i], CONTA_DV = (string.IsNullOrEmpty(ContaCorrenteDigito[i]) || String.IsNullOrWhiteSpace(ContaCorrenteDigito[i])) ? null : ContaCorrenteDigito[i] }); } for (int i = 0; i < ContatoID.Length; i++) { if (ContatoID[i] == UsarContato) { solforn.WFD_SOLICITACAO.SolicitacaoModificacaoDadosContato.Add(new SolicitacaoModificacaoDadosContato { EMAIL = Email[i], NOME = NomeContato[i], TELEFONE = Mascara.RemoverMascaraTelefone(Telefone[i]), CELULAR = Celular[i] }); } } solforn.OBSERVACAO = model.Observacao; Db.Entry(solforn).State = EntityState.Added; Db.SaveChanges(); _tramite.AtualizarTramite(Empresa, solicitacao.ID, FluxoID, 1, 2, null); return(RedirectToAction("FornecedoresLst", "Fornecedores", new { MensagemSucesso = string.Format("Solicitação {0} de Expansão realizado com Sucesso!", solicitacao.ID) })); } catch (Exception ex) { Log.Error(ex); } } return(View(model)); }