예제 #1
0
        public void Put(int materialId, MaterialModel material)
        {
            try
            {
                var where = $"MATERIAL_ID = {materialId}";
                if (string.IsNullOrEmpty(MetodosGenericosService.DlookupOrcamentaria("MATERIAL_ID", "T_ORCA_MATERIAL", where)))
                {
                    throw new Exception();
                }

                MaterialModel materialDB = GetComParametro(new MaterialQO(materialId, "", "")).ToList()[0];

                if (material.FABRICANTE.PESSOA_ID != materialDB.FABRICANTE.PESSOA_ID)
                {
                    CartaCoberturaRepository cartaCoberturaRepository = new CartaCoberturaRepository(new Conexao(MetodosGenericosService.RetornaConexao()));

                    List <CartaCoberturaModel> listCartaCobertura = cartaCoberturaRepository.ListPorMaterialId(materialId).ToList();

                    foreach (CartaCoberturaModel cartaCobertura in listCartaCobertura)
                    {
                        cartaCobertura.LIST_ITENS_CARTA_COBERTURA = ItensCartaCoberturaService.GetComParametro(new ItensCartaCoberturaQO(0, cartaCobertura.CARTA_COBERTURA_ID, "")).ToList();

                        cartaCobertura.MATERIAL = GetComParametro(new MaterialQO(materialId, "", "")).ToArray()[0];
                    }

                    where = $"PESSOA_ID = {material.FABRICANTE.PESSOA_ID}";
                    if (string.IsNullOrEmpty(MetodosGenericosService.DlookupOrcamentaria("PESSOA_ID", "T_ORCA_PESSOA", where)))
                    {
                        throw new Exception();
                    }

                    var fabricante = PessoaService.GetComParametro(new PessoaQO(material.FABRICANTE.PESSOA_ID, "")).ToArray()[0];

                    foreach (CartaCoberturaModel cartaCobertura in listCartaCobertura)
                    {
                        cartaCobertura.MATERIAL.FABRICANTE = fabricante;

                        cartaCoberturaRepository.Update(cartaCobertura.CARTA_COBERTURA_ID, cartaCobertura);
                    }

                    material.FABRICANTE = fabricante;
                }

                MaterialRepository.Update(materialId, material);
            }
            catch (Exception)
            {
                throw;
            }
        }