Exemplo n.º 1
0
        public static string Excluir(TRegistro_CompraAvulsa val, BancoDados.TObjetoBanco banco)
        {
            bool             st_transacao = false;
            TCD_CompraAvulsa qtb_compra   = new TCD_CompraAvulsa();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_compra.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_compra.Banco_Dados = banco;
                }
                //Verificar se existe item faturado
                if (new TCD_CompraItens_X_PedidoItens(qtb_compra.Banco_Dados).BuscarEscalar(
                        new Utils.TpBusca[]
                {
                    new Utils.TpBusca()
                    {
                        vNM_Campo = "a.cd_empresa",
                        vOperador = "=",
                        vVL_Busca = "'" + val.Cd_empresa.Trim() + "'"
                    },
                    new Utils.TpBusca()
                    {
                        vNM_Campo = "a.id_compra",
                        vOperador = "=",
                        vVL_Busca = val.Id_comprastr
                    }
                }, "1") != null)
                {
                    throw new Exception("Não é permitido excluir romaneio com itens faturados.");
                }
                val.lItens.ForEach(p => TCN_Compra_Itens.Excluir(p, qtb_compra.Banco_Dados));
                qtb_compra.Excluir(val);
                if (st_transacao)
                {
                    qtb_compra.Banco_Dados.Commit_Tran();
                }
                return(val.Id_comprastr);
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_compra.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro excluir compra: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_compra.deletarBanco_Dados();
                }
            }
        }
Exemplo n.º 2
0
        public static string Gravar(TRegistro_CompraAvulsa val, BancoDados.TObjetoBanco banco)
        {
            bool             st_transacao = false;
            TCD_CompraAvulsa qtb_compra   = new TCD_CompraAvulsa();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_compra.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_compra.Banco_Dados = banco;
                }
                //Buscar config compra avulsa
                CamadaDados.Faturamento.Cadastros.TList_CfgCompraAvulsa lCfg = Cadastros.TCN_CfgCompraAvulsa.Buscar(val.Cd_empresa, qtb_compra.Banco_Dados);
                if (lCfg.Count.Equals(0))
                {
                    throw new Exception("Não existe configuração para gravar romaneio de compra na empresa " + val.Cd_empresa.Trim());
                }
                val.Id_comprastr = CamadaDados.TDataQuery.getPubVariavel(qtb_compra.Gravar(val), "@P_ID_COMPRA");
                //Item Compra
                val.lItensDel.ForEach(p => TCN_Compra_Itens.Excluir(p, qtb_compra.Banco_Dados));
                val.lItens.ForEach(p =>
                {
                    p.Cd_empresa = val.Cd_empresa;
                    p.Id_compra  = val.Id_compra;
                    p.Cd_local   = lCfg[0].Cd_local;
                    TCN_Compra_Itens.Gravar(p, qtb_compra.Banco_Dados);
                });
                if (st_transacao)
                {
                    qtb_compra.Banco_Dados.Commit_Tran();
                }
                return(val.Id_comprastr);
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_compra.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro gravar compra: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_compra.deletarBanco_Dados();
                }
            }
        }
Exemplo n.º 3
0
        public static void RatearDesconto(TRegistro_CompraAvulsa val, bool St_perc)
        {
            decimal total = val.lItens.Sum(p => p.Vl_subtotal);

            if (total > decimal.Zero)
            {
                if (!St_perc)
                {
                    val.Pc_desconto = val.Vl_desconto * 100 / total;
                }
                else
                {
                    val.Vl_desconto = total * val.Pc_desconto / 100;
                }
                val.lItens.ForEach(p =>
                {
                    p.Vl_desconto = (p.Vl_subtotal * val.Vl_desconto) / total;
                    p.Pc_desconto = val.Pc_desconto;
                });
            }
        }