protected override IHttpActionResult ExecutarAntesPost(FAT_NF_SERVICO item)
        {
            string Generator = "FAT_NF_SERVICO_" + item.SERIE + "_" + item.CEMP;

            try
            {
                var fb = new FuncoesBanco(db);
                item.NUMERO = fb.BuscarPKRegistro(Generator);
                return(null);
            }
            catch
            {
                return(Content(HttpStatusCode.Accepted, new { mensagem_erro = "Problema com generator da tabela " + Generator }));
            }
        }
Example #2
0
        protected override void BeforeSaveChanges(FAT_ROMANEIO_PAO item)
        {
            var itens = db.Set <FAT_ROMANEIO_PAO_ITEM>()
                        .Where(i => i.COD_FATROMANEIOPAO == item.id);

            foreach (FAT_ROMANEIO_PAO_ITEM i in itens)
            {
                db.Set <FAT_ROMANEIO_PAO_ITEM>().Remove(i);
            }

            if (item.Itens != null)
            {
                for (int i = 0; i < item.Itens.Count; i++)
                {
                    FAT_ROMANEIO_PAO_ITEM novo = new FAT_ROMANEIO_PAO_ITEM();

                    if (item.Itens[i].id == null)
                    {
                        var fb = new FuncoesBanco(new Context());
                        novo.id = fb.BuscarPKRegistro("FAT_ROMANEIO_PAO_ITEM");
                    }
                    else
                    {
                        novo.id = item.Itens[i].id;
                    }

                    novo.COD_FATROMANEIOPAO = item.id;
                    novo.COD_CADPRODUTO     = item.Itens[i].COD_CADPRODUTO;
                    novo.COD_CADUNIDADE     = item.Itens[i].COD_CADUNIDADE;

                    if (item.Itens[i].COD_FATOPERACAOSAIDA == null)
                    {
                        novo.COD_FATOPERACAOSAIDA = this.GetOperacao((int)item.Itens[i].COD_CADPRODUTO);
                    }
                    else
                    {
                        novo.COD_FATOPERACAOSAIDA = item.Itens[i].COD_FATOPERACAOSAIDA;
                    }

                    novo.ITEM             = item.Itens[i].ITEM;
                    novo.PRODUTO          = item.Itens[i].PRODUTO;
                    novo.QUANTIDADE       = item.Itens[i].QUANTIDADE;
                    novo.QUANTIDADE_TROCA = item.Itens[i].QUANTIDADE_TROCA;
                    novo.VALOR_UNITARIO   = item.Itens[i].VALOR_UNITARIO;
                    db.Set <FAT_ROMANEIO_PAO_ITEM>().Add(novo);
                }
            }
        }
        // POST: api/T
        //[ResponseType(typeof(T))]
        //[ResponseType(typeof(void))]
        public IHttpActionResult Post(T item)
        {
            //if (typeof(IRaizDeAgregacao).IsAssignableFrom(typeof(T)))
            //{
            //    ((IRaizDeAgregacao)item).Flag = true;
            //    ModelState["item.Flag"].Errors.Clear();
            //}

            var resultpost = ExecutarAntesPost(item);

            if (resultpost != null)
            {
                return(resultpost);
            }

            if (item.id == 0)
            {
                try
                {
                    var fb = new FuncoesBanco(db);
                    item.id = fb.BuscarPKRegistro(item.GetType().Name);
                }
                catch
                {
                    return(Content(HttpStatusCode.Accepted, new { mensagem_erro = "Problema com generator da tabela " + item.GetType().Name }));
                }
            }

            ConfCEMP(item);

            if (!ModelState.IsValid)
            {
                return(TestarModelState(ModelState));
            }

            var result = ValidarEntidade(item);

            if (result != null)
            {
                return(Content(HttpStatusCode.Accepted, new { mensagem_erro = result }));
            }

            db.Set <T>().Add(item);

            InternalUpdate(item);
            using (var dbContextTransaction = db.Database.BeginTransaction())
            {
                try
                {
                    BeforeSaveChanges(item);
                    db.SaveChanges();
                    dbContextTransaction.Commit();
                }
                catch (DbUpdateException e)
                {
                    dbContextTransaction.Rollback();
                    if (ItemExiste(item.id))
                    {
                        return(Content(HttpStatusCode.Accepted, new { mensagem_erro = "Registro já existe!" }));
                        //return Conflict();
                    }
                    else
                    {
                        if (e.InnerException != null)
                        {
                            return(Content(HttpStatusCode.Accepted, new { mensagem_erro = e.InnerException.InnerException.Message }));
                        }
                        else
                        {
                            return(Content(HttpStatusCode.Accepted, new { mensagem_erro = e.Message }));
                        }
                    }
                }
                catch (DbEntityValidationException e)
                {
                    dbContextTransaction.Rollback();

                    if (e.InnerException != null)
                    {
                        return(Content(HttpStatusCode.Accepted, new { mensagem_erro = e.InnerException.InnerException.Message }));
                    }
                    else
                    {
                        return(Content(HttpStatusCode.Accepted, new { mensagem_erro = e.Message }));
                    }
                }
                catch (InvalidOperationException e)
                {
                    dbContextTransaction.Rollback();

                    if (e.InnerException != null)
                    {
                        return(Content(HttpStatusCode.Accepted, new { mensagem_erro = e.InnerException.InnerException.Message }));
                    }
                    else
                    {
                        return(Content(HttpStatusCode.Accepted, new { mensagem_erro = e.Message }));
                    }
                }
            }

            BeforeReturn(item);
            return(CreatedAtRoute("DefaultApi", new { id = item.id }, item));
        }
        protected override IHttpActionResult ExecutarAntesPost(MOV_ENTRADA item)
        {
            CAD_PESSOA pessoa = null;
            var        fb     = new FuncoesBanco(db);

            if (item.COD_CADPESSOA == null)
            {
                pessoa             = new CAD_PESSOA();
                pessoa.id          = fb.BuscarPKRegistro(pessoa.GetType().Name);
                item.COD_CADPESSOA = pessoa.id;
                pessoa.ATIVO       = "S";
                pessoa.CEMP        = "01";
                pessoa.DOCUMENTO   = item.DOCUMENTO_PESSOA;
                pessoa.NOME        = item.NOME_PESSOA;
                pessoa.TIPO        = "1";

                //if (item.NOME_PESSOA_AP != null)
                //{
                //    pessoa.TIPO = "1";
                //}
                //else
                //    if (item.NOME_PESSOA_AP != item.NOME_PESSOA)
                //{
                //    pessoa.TIPO = "2";
                //}
            }

            CAD_VEICULO veiculo = null;

            if (item.COD_CADVEICULO == null)
            {
                veiculo               = new CAD_VEICULO();
                veiculo.id            = fb.BuscarPKRegistro(veiculo.GetType().Name);
                veiculo.PLACA         = item.PLACA.ToUpper();
                veiculo.COD_CADPESSOA = item.COD_CADPESSOA;
                item.COD_CADVEICULO   = veiculo.id;
                veiculo.CEMP          = "01";
                //if (pessoa == null)
                //{
                //    veiculo.VISITANTE = "S";
                //}
            }

            bool fezInsert = false;

            if (pessoa != null)
            {
                db.CAD_PESSOA.Add(pessoa);
                fezInsert = true;
            }

            if (veiculo != null)
            {
                db.CAD_VEICULO.Add(veiculo);
                fezInsert = true;
            }

            if (fezInsert == true)
            {
                db.SaveChanges();
            }

            var ap = db.CAD_APARTAMENTO.Where(w => w.id == item.COD_CADAPARTAMENTO).FirstOrDefault();

            if (ap == null)
            {
                ap               = new CAD_APARTAMENTO();
                ap.id            = item.COD_CADAPARTAMENTO;
                ap.GARAGEM       = item.GARAGEM;
                ap.TORRE         = item.TORRE;
                ap.COD_CADPESSOA = item.COD_CADPESSOA;
                ap.CEMP          = "01";
                db.CAD_APARTAMENTO.Add(ap);
                db.SaveChanges();
            }

            if (pessoa != null)
            {
                pessoa.COD_CADAPARTAMENTO = item.COD_CADAPARTAMENTO;
                db.Entry(pessoa).State    = EntityState.Modified;
            }

            if (ap != null)
            {
                ap.COD_CADPESSOA   = item.COD_CADPESSOA;
                db.Entry(ap).State = EntityState.Modified;
            }

            if (veiculo != null)
            {
                veiculo.COD_CADPESSOA   = item.COD_CADPESSOA;
                db.Entry(veiculo).State = EntityState.Modified;
            }

            if (fezInsert == true)
            {
                db.SaveChanges();
            }

            return(null);
        }