예제 #1
0
        private void afterNovo()
        {
            if (vQTDesdobro > bsNFPesagem.Count)
            {
                gNfPesagem.Enabled = false;
                tpModo             = TTpModo.tm_Insert;
                pnClifor.HabilitarControls(true, tpModo);

                modoBotoes();
                bsNFPesagem.AddNew();
                NR_PedidoClifor.Text     = vNR_PedidoPrincipal;
                nr_Contrato.Text         = vNr_Contrato;
                cd_cliforpedido.Text     = this.Cd_clifor_pedido;
                nm_cliforpedido.Text     = this.Nm_clifor_pedido;
                cd_clifordesdobro.Text   = this.Cd_clifor;
                nm_clifordesdobro.Text   = this.Nm_clifor;
                cd_enderecodesdobro.Text = this.Cd_endclifor;
                DS_Endereco.Text         = this.Ds_endclifor;
                tp_pessoadesdobro.Text   = this.Tp_pessoa;
                ufdesdobro.Text          = this.Uf_clifor;
                CD_Transp.Text           = this.vCd_transportadora;
                nm_transportadora.Text   = this.vNm_transportadora;
                PlacaVeiculo.Text        = this.vPlacaveiculo;
                this.habilitarCampos(true);
                if (!NR_PedidoClifor.Focus())
                {
                    nr_notafiscal.Focus();
                }
            }
            else
            {
                MessageBox.Show("Número máximo de desdobros atingido! ");
            }
        }
예제 #2
0
 private void BB_Fechar_Click(object sender, EventArgs e)
 {
     if (tpModo != TTpModo.tm_Standby)
     {
         if (MessageBox.Show("Existe Alterações que ainda não foram salvas. Deseja Salvar?", "Mensagem", MessageBoxButtons.YesNo,
                             MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
         {
             bsNFPesagem.EndEdit();
         }
         else
         {
             bsNFPesagem.RemoveCurrent();
             if (bsNFItens.Count > 0)
             {
                 bsNFItens.RemoveCurrent();
             }
             tpModo = TTpModo.tm_Standby;
             modoBotoes();
         }
     }
     else
     {
         if ((bsNFPesagem.Count > 0) && (bsNFItens.Count > 0))
         {
             this.DialogResult = DialogResult.OK;
         }
         else
         {
             this.DialogResult = DialogResult.OK;
         }
         Close();
     }
 }
예제 #3
0
 public virtual void afterBusca()
 {
     this.vTP_Modo = TTpModo.tm_busca;
     this.habilitarControls(false);
     vTP_Busca = null;
     this.buscarRegistros();
     this.modoBotoes(this.vTP_Modo, true, true, false, true, false, true, true);
 }
예제 #4
0
 public virtual void afterNovo()
 {
     this.vPageOld[0] = tcCentral.SelectedTab;
     this.vTP_Modo    = TTpModo.tm_Insert;
     this.habilitarControls(true);
     this.limparControls();
     this.modoBotoes(this.vTP_Modo, true, false, true, false, true, true, false);
 }
예제 #5
0
 public virtual void afterExclui()
 {
     this.vTP_Modo = TTpModo.tm_busca;
     this.excluirRegistro();
     this.limparControls();
     this.buscarRegistros();
     this.modoBotoes(this.vTP_Modo, true, true, false, true, true, true, true);
 }
예제 #6
0
 private void afterCancela()
 {
     bs_Classificacao.Clear();
     bs_PesagemGraos.Clear();
     bs_Classificacao.Clear();
     tpModo = TTpModo.tm_Standby;
     modoBotoes();
     HabilitaCampos();
 }
예제 #7
0
 public void modoBotoes(TTpModo vTP_Modo, bool vNovo, bool vAlterar, bool vGravar, bool vExcluir,
                        bool vCancelar, bool vBuscar, bool vImprimir)
 {
     if (vTP_Modo == TTpModo.tm_Standby)
     {
         BB_Novo.Checked     = false;
         BB_Alterar.Checked  = false;
         BB_Buscar.Checked   = false;
         BB_Cancelar.Checked = false;
         BB_Excluir.Checked  = false;
         BB_Fechar.Checked   = false;
         BB_Gravar.Checked   = false;
         BB_Imprimir.Checked = false;
     }
     else if (vTP_Modo == TTpModo.tm_Insert)
     {
         BB_Novo.Checked     = true;
         BB_Alterar.Checked  = false;
         BB_Buscar.Checked   = false;
         BB_Cancelar.Checked = false;
         BB_Excluir.Checked  = false;
         BB_Fechar.Checked   = false;
         BB_Gravar.Checked   = false;
         BB_Imprimir.Checked = false;
     }
     else if (vTP_Modo == TTpModo.tm_Edit)
     {
         BB_Novo.Checked     = false;
         BB_Alterar.Checked  = true;
         BB_Buscar.Checked   = false;
         BB_Cancelar.Checked = false;
         BB_Excluir.Checked  = false;
         BB_Fechar.Checked   = false;
         BB_Gravar.Checked   = false;
         BB_Imprimir.Checked = false;
     }
     else if (vTP_Modo == TTpModo.tm_busca)
     {
         BB_Novo.Checked     = false;
         BB_Alterar.Checked  = false;
         BB_Buscar.Checked   = false;
         BB_Cancelar.Checked = false;
         BB_Excluir.Checked  = false;
         BB_Fechar.Checked   = false;
         BB_Gravar.Checked   = false;
         BB_Imprimir.Checked = false;
     }
     BB_Novo.Visible     = vNovo;
     BB_Alterar.Visible  = vAlterar;
     BB_Buscar.Visible   = vBuscar;
     BB_Cancelar.Visible = vCancelar;
     BB_Excluir.Visible  = vExcluir;
     BB_Fechar.Visible   = true;
     BB_Gravar.Visible   = vGravar;
     BB_Imprimir.Visible = vImprimir;
 }
예제 #8
0
 public virtual void afterAltera()
 {
     if (this.buscarRegistros() > 0)
     {
         this.vPageOld[0] = tcCentral.SelectedTab;
         this.vTP_Modo    = TTpModo.tm_Edit;
         this.habilitarControls(true);
         this.modoBotoes(this.vTP_Modo, false, false, true, false, true, false, false);
     }
 }
예제 #9
0
        public TFLanTitulo()
        {
            InitializeComponent();
            tpModo = TTpModo.tm_Standby;
            ArrayList cbx1 = new ArrayList();

            cbx1.Add(new TDataCombo("PAGAR", "P"));
            cbx1.Add(new TDataCombo("RECEBER", "R"));
            tp_titulo.DataSource    = cbx1;
            tp_titulo.DisplayMember = "Display";
            tp_titulo.ValueMember   = "Value";
        }
예제 #10
0
        private void afterNovo()
        {
            if (tab_Classificacao.SelectedTab == Tab_Consulta)
            {
                tab_Classificacao.SelectedTab = Tab_Classificacao_Superior;
            }

            tpModo = TTpModo.tm_Insert;
            modoBotoes();
            HabilitaCampos();
            Placa.Focus();
            bs_PesagemGraos.AddNew();
        }
예제 #11
0
        public TFLanPesagemPadrao()
        {
            InitializeComponent();
            tpModo        = TTpModo.tm_Standby;
            vOrdemPesagem = string.Empty;
            vST_SeqManual = string.Empty;

            System.Collections.ArrayList cbx = new System.Collections.ArrayList();
            cbx.Add(new Utils.TDataCombo("ENTRADA", "E"));
            cbx.Add(new Utils.TDataCombo("SAIDA", "S"));
            TP_Movimento.DataSource    = cbx;
            TP_Movimento.DisplayMember = "Display";
            TP_Movimento.ValueMember   = "Value";
        }
예제 #12
0
 public virtual void afterGrava()
 {
     if (this.gravarRegistro() != "")
     {
         this.vTP_Modo = TTpModo.tm_busca;
         this.habilitarControls(false);
         this.buscarRegistros();
         this.modoBotoes(this.vTP_Modo, true, true, false, true, false, true, true);
     }
     else
     {
         this.vTP_Modo = TTpModo.tm_Insert;
         this.modoBotoes(this.vTP_Modo, true, false, true, false, true, true, false);
     }
 }
예제 #13
0
 private void BarraBotoesItem(ToolStrip barra, TTpModo modo)
 {
     if (modo == TTpModo.tm_Insert)
     {
         barra.Items[0].Enabled = false;
         barra.Items[1].Enabled = true;
         barra.Items[2].Enabled = true;
     }
     else
     {
         barra.Items[0].Enabled = true;
         barra.Items[1].Enabled = true;
         barra.Items[2].Enabled = false;
     }
 }
예제 #14
0
 public void aterar_Modo_Botoes(TTpModo x)
 {
     if (TTpModo.tm_Standby == x)
     {
         if (tcCentral.SelectedIndex == Posicao_Usuario_X_Tabela)
         {
             this.modoBotoes(x, true, false, false, false, false, true, false);
         }
         else
         {
             this.modoBotoes(x, true, false, false, false, false, true, false);
         }
     }
     if (TTpModo.tm_Insert == x)
     {
         if (tcCentral.SelectedIndex == Posicao_Usuario_X_Tabela)
         {
             this.modoBotoes(x, true, false, true, false, true, true, false);
         }
         else
         {
             this.modoBotoes(x, true, false, false, false, true, true, false);
         }
     }
     if (TTpModo.tm_busca == x)
     {
         if (tcCentral.SelectedIndex == Posicao_Usuario_X_Tabela)
         {
             this.modoBotoes(x, true, true, false, false, false, true, false);
         }
         else
         {
             this.modoBotoes(x, true, false, false, false, false, true, false);
         }
     }
     if (TTpModo.tm_Edit == x)
     {
         if (tcCentral.SelectedIndex == Posicao_Usuario_X_Tabela)
         {
             this.modoBotoes(x, false, false, true, false, true, false, false);
         }
         else
         {
             this.modoBotoes(x, false, false, false, false, true, false, false);
         }
     }
 }
예제 #15
0
 private void afterAltera()
 {
     if (bsNFPesagem.Current != null)
     {
         tpModo = TTpModo.tm_Edit;
         modoBotoes();
         NR_PedidoClifor.Text = vNR_PedidoPrincipal;
         nr_Contrato.Text     = vNr_Contrato;
         cd_clifordesdobro.Focus();
         gNfPesagem.Enabled         = false;
         bb_obsfiscal.Enabled       = true;
         ds_obsfiscal.Enabled       = true;
         bb_dadosadic.Enabled       = true;
         ds_DadosAdicionais.Enabled = true;
         this.habilitarCampos(true);
     }
 }
예제 #16
0
 private void afterCancela()
 {
     if (tpModo.Equals(TTpModo.tm_Insert))
     {
         bsNFPesagem.RemoveCurrent();
     }
     else
     {
         bsNFPesagem.CancelEdit();
     }
     tpModo = TTpModo.tm_Standby;
     modoBotoes();
     pnClifor.HabilitarControls(false, tpModo);
     bb_obsfiscal.Enabled       = false;
     ds_obsfiscal.Enabled       = false;
     bb_dadosadic.Enabled       = false;
     ds_DadosAdicionais.Enabled = false;
     gNfPesagem.Enabled         = true;
 }
예제 #17
0
 private void afterGrava()
 {
     if (pnClifor.validarCampoObrigatorio())
     {
         if ((bsNFPesagem.Current as TRegistro_LanPesagemClifor).Desdobroprodutos.Count < 1)
         {
             MessageBox.Show("Obrigatorio informar item para gravar nota fiscal pesagem.",
                             "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
             return;
         }
         tpModo = TTpModo.tm_Standby;
         modoBotoes();
         pnClifor.HabilitarControls(false, tpModo);
         bb_obsfiscal.Enabled       = false;
         ds_obsfiscal.Enabled       = false;
         bb_dadosadic.Enabled       = false;
         ds_DadosAdicionais.Enabled = false;
         gNfPesagem.Enabled         = true;
     }
 }
예제 #18
0
 private void afterExclui()
 {
     if (bsNFPesagem.Count > 0)
     {
         if (MessageBox.Show("Confirma Exclusão do Registro?", "Mensagem",
                             MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) ==
             System.Windows.Forms.DialogResult.Yes)
         {
             lexcluiproduto.Add((bsNFPesagem.Current as TRegistro_LanPesagemClifor));
             bsNFPesagem.RemoveCurrent();
             bsNFPesagem.ResetCurrentItem();
             tpModo = TTpModo.tm_Standby;
             modoBotoes();
             pnClifor.HabilitarControls(false, tpModo);
             bb_obsfiscal.Enabled       = false;
             ds_obsfiscal.Enabled       = false;
             bb_dadosadic.Enabled       = false;
             ds_DadosAdicionais.Enabled = false;
         }
     }
 }
예제 #19
0
 private void PreparaBotoes(TTpModo pModo)
 {
     if (pModo == TTpModo.tm_Standby)
     {
         BB_Novo.Visible     = true;
         BB_Alterar.Visible  = false;
         BB_Cancelar.Visible = false;
         BB_Gravar.Visible   = false;
         BB_Excluir.Visible  = false;
         BB_Buscar.Visible   = true;
     }
     else if (pModo == TTpModo.tm_Insert)
     {
         BB_Novo.Visible     = false;
         BB_Alterar.Visible  = false;
         BB_Cancelar.Visible = true;
         BB_Gravar.Visible   = true;
         BB_Excluir.Visible  = false;
         BB_Buscar.Visible   = true;
     }
     else if (pModo == TTpModo.tm_Edit)
     {
         BB_Novo.Visible     = false;
         BB_Alterar.Visible  = false;
         BB_Cancelar.Visible = true;
         BB_Gravar.Visible   = true;
         BB_Excluir.Visible  = false;
         BB_Buscar.Visible   = false;
     }
     else if (pModo == TTpModo.tm_busca)
     {
         BB_Novo.Visible     = true;
         BB_Alterar.Visible  = true;
         BB_Cancelar.Visible = true;
         BB_Gravar.Visible   = false;
         BB_Excluir.Visible  = true;
         BB_Buscar.Visible   = true;
     }
     ;
 }
예제 #20
0
        public TFLanNotasPesagem()
        {
            InitializeComponent();
            this.St_controlardesdobro = false;
            this.vST_Altera           = false;
            this.vQTDesdobro          = decimal.Zero;
            this.vCD_Empresa          = string.Empty;
            this.vNr_Contrato         = string.Empty;
            this.vNR_PedidoPrincipal  = string.Empty;
            this.vTP_MovPedido        = string.Empty;
            this.vTP_Movimento        = string.Empty;
            this.vCD_Produto          = string.Empty;
            this.vDS_Produto          = string.Empty;
            this.vQTD_PESAGEM         = decimal.Zero;
            this.cd_movimentacao      = string.Empty;
            this.Cd_clifor            = string.Empty;
            this.Nm_clifor            = string.Empty;
            this.Cd_endclifor         = string.Empty;
            this.Ds_endclifor         = string.Empty;
            this.Tp_pessoa            = string.Empty;
            this.Uf_clifor            = string.Empty;
            this.Cd_clifor_pedido     = string.Empty;
            this.Nm_clifor_pedido     = string.Empty;
            this.Nr_cnpj_cpf_pedido   = string.Empty;
            this.vCd_transportadora   = string.Empty;
            this.vNm_transportadora   = string.Empty;
            this.vPlacaveiculo        = string.Empty;
            tpModo         = TTpModo.tm_Standby;
            lexcluiproduto = new TList_RegLanPesagemClifor();

            ArrayList cBox2 = new ArrayList();

            cBox2.Add(new TDataCombo("EMITENTE", "1"));
            cBox2.Add(new TDataCombo("DESTINATARIO", "2"));
            freteporconta.DataSource    = cBox2;
            freteporconta.DisplayMember = "Display";
            freteporconta.ValueMember   = "Value";
        }
예제 #21
0
        private void Placa_Leave(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(Placa.Text))
            {
                TList_RegLanPesagemGraos ListaPlaca = TCN_LanPesagemGraos.Busca(string.Empty,
                                                                                string.Empty,
                                                                                string.Empty,
                                                                                Placa.Text, "'A', 'R'",
                                                                                string.Empty,
                                                                                Utils.Parametros.pubLogin,
                                                                                string.Empty,
                                                                                0,
                                                                                string.Empty,
                                                                                string.Empty,
                                                                                1,
                                                                                string.Empty,
                                                                                null);

                if (ListaPlaca.Count > 0)
                {
                    //Buscar Classificacao
                    ListaPlaca[0].Classificacao = TCN_LanClassificacao.Buscar(ListaPlaca[0].Cd_empresa,
                                                                              ListaPlaca[0].Id_ticket.ToString(),
                                                                              ListaPlaca[0].Tp_pesagem,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              0,
                                                                              string.Empty,
                                                                              null);
                    bs_PesagemGraos.DataSource = ListaPlaca;
                    tpModo = TTpModo.tm_Edit;
                    HabilitaCampos();
                    CD_TabelaDesconto_Leave(this, e);
                }
            }
        }
예제 #22
0
        private void lvPistas_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
        {
            if (!e.IsSelected)
            {
                return;
            }
            if (modo == TTpModo.tm_Edit)
            {
                modo = TTpModo.tm_Standby; return;
            }
            ;

            //Valida se existe movimentação aberta para pista selecionada
            object obj = new CamadaDados.Restaurante.TCD_MovBoliche().BuscarEscalar(new TpBusca[]
            {
                new TpBusca()
                {
                    vNM_Campo = "a.id_pista",
                    vOperador = "=",
                    vVL_Busca = "'" + e.Item.SubItems[1].Text + "'"
                },
                new TpBusca()
                {
                    vNM_Campo = "a.dt_fechamento",
                    vOperador = "is null",
                    vVL_Busca = ""
                }
            }, "a.id_mov");

            if (obj == null)
            {
                //Buscar Tp_servico para pista selecionada
                object tpServico = new CamadaDados.Restaurante.Cadastro.TCD_PistaBoliche().BuscarEscalar(new TpBusca[] { new TpBusca()
                                                                                                                         {
                                                                                                                             vNM_Campo = "a.id_pista", vOperador = "=", vVL_Busca = "'" + e.Item.SubItems[1].Text + "'"
                                                                                                                         } }, "a.tp_servico");
                if (tpServico != null && !string.IsNullOrEmpty(tpServico.ToString()))
                {
                    if (!tpServico.ToString().Equals("B"))
                    {
                        if (!tpServico.ToString().Equals("S"))
                        {
                            MessageBox.Show("Tipo de serviço do item está incorreto. Não será possível finalizar o processo. Informe um tipo válido no cadastro do item.");
                            return;
                        }
                    }
                }
                else
                {
                    MessageBox.Show("Erro ao obter tipo do serviço para o item selecionado. Não será possível finalizar o processo. Informe um tipo de serviço no cadastro do item.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                using (TFLanMovBoliche fMov = new TFLanMovBoliche())
                {
                    if (fMov.ShowDialog() == DialogResult.OK)
                    {
                        //Gera movimentação
                        TCN_MovBoliche.Gravar(new TRegistro_MovBoliche()
                        {
                            Cd_Empresa  = fMov.Cd_Empresa,
                            Id_Cartao   = fMov.Id_cartao,
                            Id_Pista    = decimal.Parse(e.Item.SubItems[1].Text),
                            Dt_abertura = CamadaDados.UtilData.Data_Servidor(),
                        }, null);
                        modo = TTpModo.tm_Edit;
                        atualizaListagem();
                    }
                }
            }
            else
            {
                if (MessageBox.Show("Já existe movimentação para o item selecionado. Deseja finalizar?", "Mensagem", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
                {
                    fecharPista(sender, e);
                }
            }
        }
예제 #23
0
 public static void CarregarPanel(PanelDados vPanel, DataGridDefault vDataGrid, TTpModo vTpModo)
 {
     if (vDataGrid.DataSource != null)
     {
         if ((vDataGrid.DataSource is BindingSource))
         {
             if ((((vDataGrid.DataSource as BindingSource).DataSource as DataTable).Rows.Count > 0) &&
                 (vDataGrid.CurrentRow != null))
             {
                 vPanel.CarregarRegistro(((vDataGrid.DataSource as BindingSource).DataSource as DataTable).Rows[vDataGrid.CurrentRow.Index], vTpModo);
             }
         }
         else if (((vDataGrid.DataSource as DataTable).Rows.Count > 0) &&
                  (vDataGrid.CurrentRow != null))
         {
             vPanel.CarregarRegistro((vDataGrid.DataSource as DataTable).Rows[vDataGrid.CurrentRow.Index], vTpModo);
         }
     }
 }
예제 #24
0
        private void fecharPista(object sender, ListViewItemSelectionChangedEventArgs e)
        {
            if (!e.IsSelected)
            {
                return;
            }
            modo = TTpModo.tm_Edit;

            //Busca caixa aberto
            CamadaDados.Faturamento.PDV.TList_CaixaPDV lCaixa =
                new CamadaDados.Faturamento.PDV.TCD_CaixaPDV().Select(
                    new Utils.TpBusca[]
            {
                new Utils.TpBusca()
                {
                    vNM_Campo = "a.login",
                    vOperador = "=",
                    vVL_Busca = "'" + Utils.Parametros.pubLogin + "'"
                },
                new Utils.TpBusca()
                {
                    vNM_Campo = "isnull(a.st_registro, 'A')",
                    vOperador = "=",
                    vVL_Busca = "'A'"
                }
            }, 1, string.Empty);
            if (lCaixa.Count > 0)
            {
                rCaixa = lCaixa[0];
            }
            else
            {
                MessageBox.Show("Não existe caixa aberto para finalizar a movimentação!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            //Controlar tempo minimo para fechamento
            try
            {
                string[] minTime = e.Item.Text.ToString().Split(new string[] { " \n", " Tempo: " }, 0);
                if (Convert.ToDateTime(minTime[2]).TimeOfDay <= new TimeSpan(0, 0, 5))
                {
                    MessageBox.Show("Tempo mínimo para fechamento é de 5 segundos.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
            }
            catch { }

            //Busca Movimentação boliche pela ID
            DataRow rMov = new TCD_MovBoliche().Buscar(
                new TpBusca[]
            {
                new TpBusca()
                {
                    vNM_Campo = "a.id_pista",
                    vOperador = "=",
                    vVL_Busca = "'" + e.Item.SubItems[1].Text.Trim() + "'"
                },
                new TpBusca()
                {
                    vNM_Campo = "a.DT_Fechamento",
                    vOperador = "",
                    vVL_Busca = "is null"
                }
            }, 1).Rows[0];

            if (rMov == null)
            {
                return;
            }

            //Valida existencia de prevenda
            DataRow rPreVenda = new TCD_PreVenda().Buscar(
                new TpBusca[]
            {
                new TpBusca()
                {
                    vNM_Campo = "a.cd_empresa",
                    vOperador = "=",
                    vVL_Busca = "'" + rMov[0].ToString().Trim() + "'"
                },
                new TpBusca()
                {
                    vNM_Campo = "a.id_cartao",
                    vOperador = "=",
                    vVL_Busca = "'" + rMov[1].ToString().Trim() + "'"
                },
                new TpBusca()
                {
                    vNM_Campo = "a.st_registro",
                    vOperador = "=",
                    vVL_Busca = "'A'"
                }
            }, 1).Rows[0];

            if (rPreVenda == null)
            {
                MessageBox.Show("Não existe lançamento de pré-venda para o cartão informado.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            //Obtém valor por hora
            rMov[7] = CamadaDados.UtilData.Data_Servidor();
            object            rValorhora = null;
            TList_HoraBoliche lHora      = null;

            //Buscar tipo servico pela pista
            object tp_servico = new TCD_PistaBoliche().BuscarEscalar(new TpBusca[] { new TpBusca()
                                                                                     {
                                                                                         vNM_Campo = "a.id_pista", vOperador = "=", vVL_Busca = "'" + e.Item.SubItems[1].Text.Trim() + "'"
                                                                                     } }, "a.tp_servico");

            if (tp_servico == null || string.IsNullOrEmpty(tp_servico.ToString()))
            {
                MessageBox.Show("Não foi possível obter o tipo de serviço, para o item selecionado.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); return;
            }

            switch (tp_servico.ToString())
            {
            case "B":
                lHora = new TCD_HoraBoliche().Select(new TpBusca[] { new TpBusca()
                                                                     {
                                                                         vNM_Campo = "a.tp_servico", vOperador = "=", vVL_Busca = "'B'"
                                                                     } }, 0, string.Empty, " dia, hora asc");
                break;

            case "S":
                lHora = new TCD_HoraBoliche().Select(new TpBusca[] { new TpBusca()
                                                                     {
                                                                         vNM_Campo = "a.tp_servico", vOperador = "=", vVL_Busca = "'S'"
                                                                     } }, 0, string.Empty, " dia, hora asc");
                break;
            }

            calcularVlPorServico(ref rValorhora, lHora, Convert.ToDateTime(rMov[6].ToString()));

            if (lHora == null || lHora.Count.Equals(0))
            {
                MessageBox.Show("Não foi possível obter o valor por hora, para a pista de boliche.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if (rValorhora == null)
            {
                MessageBox.Show("Não foi possível obter o valor por hora, para a pista de boliche.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            //Lança item na prevenda
            TRegistro_PreVenda_Item rItem = new TRegistro_PreVenda_Item()
            {
                Cd_empresa = rMov[0].ToString(),
                cd_produto = tp_servico.ToString().Equals("B")
                    ? (string)new TCD_CFG().BuscarEscalar(new TpBusca[] { new TpBusca()
                                                                          {
                                                                              vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + rMov[0].ToString().Trim() + "'"
                                                                          } }, "a.cd_horaboliche")
                    : (string)new TCD_CFG().BuscarEscalar(new TpBusca[] { new TpBusca()
                                                                          {
                                                                              vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + rMov[0].ToString().Trim() + "'"
                                                                          } }, "a.cd_horasinuca"),
                id_prevenda = decimal.Parse(rPreVenda[17].ToString().Trim()),
                quantidade  = (decimal)Convert.ToDateTime(rMov[7].ToString()).Subtract(Convert.ToDateTime(rMov[6].ToString())).TotalMinutes / 60,
                vl_unitario = decimal.Parse(rValorhora.ToString()),
                vl_desconto = 0,
                obsItem     = "Tempo: " + (Convert.ToDateTime(rMov[7].ToString()) - Convert.ToDateTime(rMov[6].ToString())),
                st_registro = "A",
                St_impresso = "N"
            };

            TCN_PreVenda_Item.Gravar(rItem, null);

            //Atualiza prevenda e itemprevenda na movimentacao
            TCN_MovBoliche.Gravar(new TRegistro_MovBoliche()
            {
                Cd_Empresa    = rItem.Cd_empresa,
                Id_Cartao     = decimal.Parse(rMov[1].ToString().Trim()),
                Id_Pista      = decimal.Parse(e.Item.SubItems[1].Text.Trim()),
                Id_Mov        = decimal.Parse(rMov[3].ToString().Trim()),
                Id_PreVenda   = rItem.id_prevenda,
                Id_Item       = rItem.id_item,
                Dt_abertura   = Convert.ToDateTime(rMov[6].ToString().Trim()),
                Dt_fechamento = Convert.ToDateTime(rMov[7].ToString().Trim())
            }, null);

            //Reatualiza listagem de pistas
            atualizaListagem();
        }