public override bool Run(string client_msg, ref Transaction trans, ref bool IsTerm, ref string buffer_response)
        {
            if (client_msg.Length < 61)
            {
                return(false);
            }

            string trilha = client_msg.Substring(14, 27);

            POS_Entrada pe = new POS_Entrada();

            pe.set_st_terminal(client_msg.Substring(6, 8));

            pe.set_st_empresa(trilha.Substring(6, 6));
            pe.set_st_matricula(trilha.Substring(12, 6));
            pe.set_st_titularidade(trilha.Substring(18, 2));

            exec_pos_confirmaVendaEmpresarial tr = new exec_pos_confirmaVendaEmpresarial(trans);

            tr.input_cont_pe = pe;
            tr.input_st_nsu  = client_msg.Substring(41, 6);

            tr.RunOnline();

            IsTerm = true;

            buffer_response = util.Get_POS_Buffer(tr.output_cont_pr, tr.output_st_msg);

            return(true);
        }
        public override bool execute( )
        {
            if (base.execute() == false)
            {
                return(false);
            }

            Registry("execute exec_venda_pend_lojista ");

            /// USER [ execute ]

            T_Cartao cart = new T_Cartao(this);

            if (!cart.select_rows_tudo(input_st_cartao.Substring(0, 6),
                                       input_st_cartao.Substring(6, 6),
                                       input_st_cartao.Substring(12, 2)))
            {
                PublishError("Cartão inválido");
                return(false);
            }

            if (!cart.fetch())
            {
                return(false);
            }

            POS_Entrada pe = new POS_Entrada();

            pe.set_st_senha(cart.get_st_senha());
            pe.set_st_empresa(input_st_cartao.Substring(0, 6));
            pe.set_st_matricula(input_st_cartao.Substring(6, 6));
            pe.set_st_titularidade(input_st_cartao.Substring(12, 2));
            pe.set_vr_valor(input_vr_valor.PadLeft(12, '0'));
            pe.set_st_terminal(input_cont_header.get_nu_terminal());
            pe.set_nu_parcelas("1");
            pe.set_st_valores(input_vr_valor.PadLeft(12, '0'));

            exec_pos_vendaEmpresarial epv = new exec_pos_vendaEmpresarial(this);

            epv.input_cont_pe = pe;

            if (!epv.RunOnline())
            {
                PublishError(epv.output_st_msg);
                return(false);
            }

            exec_pos_confirmaVendaEmpresarial epcve = new exec_pos_confirmaVendaEmpresarial(this);

            epcve.input_cont_pe = pe;
            epcve.input_st_nsu  = epv.output_cont_pr.get_st_nsuRcb();

            if (!epcve.RunOnline())
            {
                PublishError(epcve.output_st_msg);
                return(false);
            }

            PublishNote("Venda offline confirmada");

            /// USER [ execute ] END

            Registry("execute done exec_venda_pend_lojista ");

            return(true);
        }