Exemple #1
0
        public bool SalvarMovimento(Movimento movimento)
        {
            using (var ctx = new BalcaoContext())
            {
                try
                {
                    var movSave = movimento.Clone(movimento);

                    if (movimento.TipoMovimento != null && movimento.TipoMovimento.GeraMovimentoFiscal)
                    {
                        //cria os impostos
                        movSave.ItensMovimento.ToList().ForEach(it => { CriarImpostosItemNF(it); });
                        //calcula o icms que fica na capa
                        movSave.CalculaValoresIcms();
                    }

                    //cancela as referencias para o Save
                    CancelarReferenciaNfInclusao(movSave);

                    var transaction = ctx.MovimentoDao.Save(movSave);

                    if (transaction)
                    {
                        new ProdutoDaoManager().AddMovimentacaoProduto(movimento, movSave.IdMovimento);
                        XMessageIts.Mensagem("Nota fiscal cadastrada com sucesso!", "SUCESSO!!",
                                             MessageBoxIcon.Information);
                    }
                    return(transaction);
                }
                catch (DbUpdateException db)
                {
                    XMessageIts.ExceptionMessageDetails(db,
                                                        "Dados em duplicidade! Vefique todos os campos e se já não existe uma nota fiscal com os mesmos dados!");
                    return(false);
                }
                catch (Exception ex)
                {
                    XMessageIts.ExceptionMessageDetails(ex, "Ocorreu um erro na inclusão/atualização da nota fiscal");
                    return(false);
                }
            }
        }