Exemplo n.º 1
0
        public static string Gravar(TRegistro_LanServicosPecas val, TObjetoBanco banco)
        {
            bool st_transacao = false;
            TCD_LanServicosPecas qtb_pecas = new TCD_LanServicosPecas();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_pecas.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_pecas.Banco_Dados = banco;
                }

                string retorno = qtb_pecas.Gravar(val);
                val.Id_pecastr = CamadaDados.TDataQuery.getPubVariavel(retorno, "@P_ID_PECA");
                //Excluir Ficha
                val.lFichaTecOSDel.ForEach(p => TCN_FichaTecOS.Excluir(p, qtb_pecas.Banco_Dados));
                //Gravar Ficha
                val.lFichaTecOS.ForEach(p =>
                {
                    p.Cd_empresa = val.Cd_empresa;
                    p.Id_os      = val.Id_os;
                    p.Id_peca    = val.Id_peca;
                    TCN_FichaTecOS.Gravar(p, qtb_pecas.Banco_Dados);
                });
                if (st_transacao)
                {
                    qtb_pecas.Banco_Dados.Commit_Tran();
                }
                return(retorno);
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_pecas.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro gravar peças/serviços: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_pecas.deletarBanco_Dados();
                }
            }
        }