Exemple #1
0
        public IHttpActionResult Post([FromBody] Propriedade propriedade)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                List <PropriedadeValor> valores = propriedade.Valores.ToList();

                propriedade.Valores = null;

                _repository.Insert(propriedade);

                foreach (var valor in valores)
                {
                    valor.PropriedadeID = propriedade.ID;

                    _valoresRepository.Insert(valor);
                }

                if (propriedade.VincularEspecies)
                {
                    foreach (var esp in _especieRepository.GetByEmpresaID(propriedade.EmpresaID))
                    {
                        _especiePropriedadeRepository.Insert(new EspeciePropriedade {
                            EspecieID = esp.ID, PropriedadeID = propriedade.ID
                        });
                    }
                }

                return(Ok(propriedade));
            }
            catch (System.Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
Exemple #2
0
        public IHttpActionResult Post([FromBody] Empresa empresa)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                _repository.Insert(empresa);

                if (empresa.CopiarDe != 0)
                {
                    var deParaPropriedade   = new Dictionary <int, int>();
                    var deParaGrupo         = new Dictionary <int, int>();
                    var deParaContaContabil = new Dictionary <int, int>();
                    var deParaCentroCusto   = new Dictionary <int, int>();
                    var deParaEspecie       = new Dictionary <int, int>();

                    if (empresa.CopiarEntidades.Contains("propriedade"))
                    {
                        var propriedadeBase = _propriedadeRepository.GetByEmpresaID(empresa.CopiarDe);

                        foreach (var pb in propriedadeBase)
                        {
                            var propriedadeNova = new Propriedade()
                            {
                                EmpresaID = empresa.ID,
                                Nome      = pb.Nome,
                                Fixa      = pb.Fixa
                            };

                            _propriedadeRepository.Insert(propriedadeNova);

                            deParaPropriedade.Add(pb.ID, propriedadeNova.ID);

                            if (pb.Fixa)
                            {
                                foreach (var pbValor in pb.Valores)
                                {
                                    _propriedadeValorRepository.Insert(new PropriedadeValor()
                                    {
                                        PropriedadeID = propriedadeNova.ID,
                                        Valor         = pbValor.Valor
                                    });
                                }
                            }
                        }
                    }

                    if (empresa.CopiarEntidades.Contains("contaContabil"))
                    {
                        var contaContabilBase = _contaContabilRepository.GetByEmpresaID(empresa.CopiarDe).OrderBy(x => x.CodigoInterno);

                        foreach (var ccb in contaContabilBase)
                        {
                            var contaContabilNova = new ContaContabil()
                            {
                                Codigo        = ccb.Codigo,
                                CodigoInterno = ccb.CodigoInterno,
                                EmpresaID     = empresa.ID,
                                Nome          = ccb.Nome,
                                NomeAbreviado = ccb.NomeAbreviado,
                                PaiID         = ccb.PaiID == null ? null : (int?)deParaContaContabil.Where(x => x.Key == ccb.PaiID).Single().Value
                            };

                            _contaContabilRepository.Insert(contaContabilNova);

                            deParaContaContabil.Add(ccb.ID, contaContabilNova.ID);
                        }
                    }

                    if (empresa.CopiarEntidades.Contains("grupo"))
                    {
                        var grupoBase = _grupoRepository.GetByEmpresaID(empresa.CopiarDe);

                        foreach (var gb in grupoBase)
                        {
                            var grupoNovo = new Grupo()
                            {
                                Codigo          = gb.Codigo,
                                ContaContabilID = gb.ContaContabilID == null ? null : deParaContaContabil.Count == 0 ? null : (int?)deParaContaContabil.Where(x => x.Key == gb.ContaContabilID).Single().Value,
                                EmpresaID       = empresa.ID,
                                Nome            = gb.Nome
                            };

                            _grupoRepository.Insert(grupoNovo);

                            deParaGrupo.Add(gb.ID, grupoNovo.ID);
                        }

                        if (empresa.CopiarEntidades.Contains("especie"))
                        {
                            var especieBase = _especieRepository.GetByEmpresaID(empresa.CopiarDe);

                            foreach (var eb in especieBase)
                            {
                                var especieNova = new Especie()
                                {
                                    Codigo  = eb.Codigo,
                                    GrupoID = deParaGrupo.Where(x => x.Key == eb.GrupoID).Single().Value,
                                    Nome    = eb.Nome
                                };

                                _especieRepository.Insert(especieNova);

                                deParaEspecie.Add(eb.ID, especieNova.ID);
                            }

                            if (deParaPropriedade.Count > 0)
                            {
                                var especiePropriedadeBase = _especiePropriedadeRepository.GetByEmpresaID(empresa.CopiarDe);

                                foreach (var epb in especiePropriedadeBase)
                                {
                                    var especiePropriedadeNova = new EspeciePropriedade()
                                    {
                                        EspecieID     = deParaEspecie.Where(x => x.Key == epb.EspecieID).Single().Value,
                                        PropriedadeID = deParaPropriedade.Where(x => x.Key == epb.PropriedadeID).Single().Value
                                    };

                                    _especiePropriedadeRepository.Insert(especiePropriedadeNova);
                                }
                            }
                        }
                    }

                    if (empresa.CopiarEntidades.Contains("centroCusto"))
                    {
                        var centroCustoBase = _centroCustoRepository.GetByEmpresaID(empresa.CopiarDe).OrderBy(x => x.CodigoInterno);

                        foreach (var ccb in centroCustoBase)
                        {
                            var centroCustoNovo = new CentroCusto()
                            {
                                Codigo        = ccb.Codigo,
                                CodigoInterno = ccb.CodigoInterno,
                                EmpresaID     = empresa.ID,
                                Nome          = ccb.Nome,
                                PaiID         = ccb.PaiID == null ? null : (int?)deParaCentroCusto.Where(x => x.Key == ccb.PaiID).Single().Value
                            };

                            _centroCustoRepository.Insert(centroCustoNovo);

                            deParaCentroCusto.Add(ccb.ID, centroCustoNovo.ID);
                        }
                    }
                }

                return(Ok(empresa));
            }
            catch (System.Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }