Ejemplo n.º 1
0
        public ActionResult Salva(DocViewModel docViewModel)
        {
            //if (ModelState.IsValid)
            //{



            var p_guid_planilha = docViewModel.GuidPlanilha;
            var p_projeto       = docViewModel.Projeto;
            var p_os            = docViewModel.OS;
            var p_area          = docViewModel.Area;
            var p_disciplina    = docViewModel.SiglaDisciplina;
            var p_tipodoc       = docViewModel.TipoDocumento;
            var p_sequencial    = docViewModel.Sequencial;



            bool   documentoContemRevisoes       = false;
            bool   existemRevisoesNaoConfirmadas = false;
            string docGuid = "";

            var validador = new DocViewModelValidator();

            var result = validador.Validate(docViewModel);


            if (!result.IsValid)
            {
                //return View(docViewModel);
                //return View("MsgDocIndefinido");
                //return Json(new
                //{
                //    status = "failure"
                //});
                return(Content(""));
            }
            else
            {
                if (_passou == false)
                {
                    var numeroDocSNCLavalin =
                        new NumeroDocSNCLavalin(
                            p_projeto,
                            p_os,
                            p_area,
                            p_disciplina,
                            p_tipodoc,
                            p_sequencial);

                    TempData["IsVerificador"] = true;

                    string numeroDesenho = numeroDocSNCLavalin.ToString();



                    ListaVerificacao documento = null;

                    using (var contextoDocumento = DIContainer.Instance.AppContainer.Resolve <AppServiceBase <ListaVerificacao> >())
                    {
                        contextoDocumento.Start();
                        documento = contextoDocumento.GetByProperty("DOC_VERIFICADO", numeroDesenho).FirstOrDefault();

                        Projeto projeto = null;

                        if (documento == null)
                        {
                            using (var contextoProjeto = DIContainer.Instance.AppContainer.Resolve <AppServiceBase <Projeto> >())
                            {
                                contextoProjeto.Start();

                                var listaProjetos = contextoProjeto.GetByProperty("NUMERO", p_projeto).ToList();

                                if (listaProjetos.Count > 0 && listaProjetos.Count < 2)
                                {
                                    projeto = listaProjetos.FirstOrDefault();

                                    if (projeto.ListaOSs.FirstOrDefault(x => x.NUMERO == numeroDocSNCLavalin.OS) == null)
                                    {
                                        projeto.AddOS(new OS()
                                        {
                                            GUID    = Guid.NewGuid().ToString(),
                                            NUMERO  = numeroDocSNCLavalin.OS,
                                            Projeto = projeto
                                        });
                                    }

                                    if (projeto.ListaAreas.FirstOrDefault(x => x.NUMERO == numeroDocSNCLavalin.AREA) == null)
                                    {
                                        projeto.AddArea(new Area()
                                        {
                                            GUID    = Guid.NewGuid().ToString(),
                                            NUMERO  = numeroDocSNCLavalin.AREA,
                                            Projeto = projeto
                                        });
                                    }

                                    contextoProjeto.Update(projeto);
                                    contextoProjeto.Commit();
                                }
                                else
                                {
                                    projeto = new Projeto()
                                    {
                                        GUID   = Guid.NewGuid().ToString(),
                                        NUMERO = numeroDocSNCLavalin.PROJETO
                                    };

                                    projeto.AddOS(new OS()
                                    {
                                        GUID    = Guid.NewGuid().ToString(),
                                        NUMERO  = numeroDocSNCLavalin.OS,
                                        Projeto = projeto
                                    });

                                    projeto.AddArea(new Area()
                                    {
                                        GUID    = Guid.NewGuid().ToString(),
                                        NUMERO  = numeroDocSNCLavalin.AREA,
                                        Projeto = projeto
                                    });


                                    contextoProjeto.Insert(projeto);
                                    contextoProjeto.Commit();
                                }
                            }

                            docGuid = Guid.NewGuid().ToString();


                            Planilha planilha = null;

                            using (var contextoPlanilha = DIContainer.Instance.AppContainer.Resolve <AppServiceBase <Planilha> >())
                            {
                                contextoPlanilha.Start();
                                planilha = contextoPlanilha.ReturnByGUID(p_guid_planilha);
                            }

                            documento = new ListaVerificacao()
                            {
                                GUID           = docGuid,
                                NUMERO         = "1",
                                DOC_VERIFICADO = numeroDocSNCLavalin.ToString(),
                                Planilha       = planilha,
                                Projeto        = projeto,
                                OS             = projeto.ListaOSs.Last(),
                                Area           = projeto.ListaAreas.Last()
                            };

                            contextoDocumento.Insert(documento);
                            contextoDocumento.Commit();

                            numeroDocSNCLavalin.GUID = docGuid;
                            using (var contextoNumeroDocSNCLavalin = DIContainer.Instance.AppContainer.Resolve <AppServiceBase <NumeroDocSNCLavalin> >())
                            {
                                contextoNumeroDocSNCLavalin.Start();
                                contextoNumeroDocSNCLavalin.Insert(numeroDocSNCLavalin);
                                contextoNumeroDocSNCLavalin.Commit();
                            }

                            _passou = true;

                            docViewModel.GuidDocumento = docGuid;
                            Session["GuidDoc"]         = docGuid;
                        }
                        else
                        {
                            docGuid = documento.GUID;

                            Session["GuidDoc"] = docGuid;

                            var listaRevisoes = documento.ListaRevisoes.Distinct().ToList();
                            documentoContemRevisoes = listaRevisoes.Count > 0;

                            existemRevisoesNaoConfirmadas = listaRevisoes.Exists(x => x.CONFIRMADO == 0);

                            _passou = true;
                        }
                    }
                }

                string guid_logPC   = HttpContext.User.Identity.Name.Split('\\')[1].ToUpper();
                bool   isVerficador = getUsuario(guid_logPC).GetBoolIsVerificador();

                if (!isVerficador)
                {
                    TempData["LayoutUsuario"] = "_LayoutNoVerificador";
                }
                else
                {
                    if (documentoContemRevisoes)
                    {
                        if (existemRevisoesNaoConfirmadas)
                        {
                            TempData["LayoutUsuario"] = "_LayoutAddRevisao";
                        }
                        else
                        {
                            TempData["LayoutUsuario"] = "_LayoutNoConfirm";
                        }
                    }
                    else
                    {
                        TempData["LayoutUsuario"] = "_LayoutDocumentoNovo";
                    }
                }



                if (_passou == true)
                {
                    var urlBuilder = new UriBuilder(Request.Url.AbsoluteUri)
                    {
                        Path  = Url.Action("IndexLD", "ListaDocumento"),
                        Query = null,
                    };

                    //Uri uri = urlBuilder.Uri;
                    string url = urlBuilder.ToString();

                    string env = url + "?guidDocumento=" + docGuid;
                    return(Content(env));
                }

                return(Content("Preenchimento inadequado."));
            }
        }
Ejemplo n.º 2
0
        public static ListaVerificacao CriaLV(ValoresComandoCriaLV valoresComandoCriaLV)
        {
            ListaVerificacao listaVerificacao = new ListaVerificacao();



            NumeroDocSNCLavalin numeroDocSNCLavalin = new NumeroDocSNCLavalin(valoresComandoCriaLV.NumeroSNC);


            //Insere GUID
            numeroDocSNCLavalin.GUID = valoresComandoCriaLV.NovoGuidLV;

            Projeto projeto = null;

            using (var contextoProjeto = DIContainer.Instance.AppContainer.Resolve <AppServiceBase <Projeto> >())
            {
                contextoProjeto.Start();

                var listaProjetos = contextoProjeto.GetByProperty("NUMERO", numeroDocSNCLavalin.PROJETO).ToList();

                if (listaProjetos.Count > 0 && listaProjetos.Count < 2)
                {
                    projeto = listaProjetos.FirstOrDefault();

                    if (projeto.ListaOSs.FirstOrDefault(x => x.NUMERO == numeroDocSNCLavalin.OS) == null)
                    {
                        projeto.AddOS(new OS()
                        {
                            GUID    = Guid.NewGuid().ToString(),
                            NUMERO  = numeroDocSNCLavalin.OS,
                            Projeto = projeto
                        });
                    }

                    if (projeto.ListaAreas.FirstOrDefault(x => x.NUMERO == numeroDocSNCLavalin.AREA) == null)
                    {
                        projeto.AddArea(new Area()
                        {
                            GUID    = Guid.NewGuid().ToString(),
                            NUMERO  = numeroDocSNCLavalin.AREA,
                            Projeto = projeto
                        });
                    }

                    contextoProjeto.Update(projeto);
                    contextoProjeto.Commit();
                }
                else
                {
                    projeto = new Projeto()
                    {
                        GUID   = Guid.NewGuid().ToString(),
                        NUMERO = numeroDocSNCLavalin.PROJETO
                    };

                    projeto.AddOS(new OS()
                    {
                        GUID    = Guid.NewGuid().ToString(),
                        NUMERO  = numeroDocSNCLavalin.OS,
                        Projeto = projeto
                    });

                    projeto.AddArea(new Area()
                    {
                        GUID    = Guid.NewGuid().ToString(),
                        NUMERO  = numeroDocSNCLavalin.AREA,
                        Projeto = projeto
                    });


                    contextoProjeto.Insert(projeto);
                    contextoProjeto.Commit();
                }
            }

            //Prepara planilha
            Planilha planilha = null;

            using (var contextoPlanilha = DIContainer.Instance.AppContainer.Resolve <AppServiceBase <Planilha> >())
            {
                contextoPlanilha.Start();
                planilha = contextoPlanilha.ReturnByGUID(valoresComandoCriaLV.GuidPlanilha);
            }


            //Insere Lista
            using (var contextoLV = DIContainer.Instance.AppContainer.Resolve <AppServiceBase <ListaVerificacao> >())
            {
                contextoLV.Start();

                listaVerificacao = new ListaVerificacao()
                {
                    GUID           = numeroDocSNCLavalin.GUID,
                    NUMERO         = "1",
                    DOC_VERIFICADO = numeroDocSNCLavalin.ToString(),
                    Planilha       = planilha,
                    Projeto        = projeto,
                    OS             = projeto.ListaOSs.Last(),
                    Area           = projeto.ListaAreas.Last()
                };

                contextoLV.Insert(listaVerificacao);
                contextoLV.Commit();
            }


            //Insere NumeroSNCLavalin
            using (var contextoNumeroDocSNCLavalin = DIContainer.Instance.AppContainer.Resolve <AppServiceBase <NumeroDocSNCLavalin> >())
            {
                contextoNumeroDocSNCLavalin.Start();
                contextoNumeroDocSNCLavalin.Insert(numeroDocSNCLavalin);
                contextoNumeroDocSNCLavalin.Commit();
            }

            //return true;



            return(listaVerificacao);
        }