Exemple #1
0
        public TList_HoraBoliche Select(Utils.TpBusca[] vBusca, Int32 vTop, string vNM_Campo, string vOrder)
        {
            bool podeFecharBco      = false;
            TList_HoraBoliche lista = new TList_HoraBoliche();

            if (Banco_Dados == null)
            {
                podeFecharBco = this.CriarBanco_Dados(false);
            }
            System.Data.SqlClient.SqlDataReader reader = this.ExecutarBusca(this.SqlCodeBusca(vBusca, vTop, vNM_Campo, vOrder));
            try
            {
                while (reader.Read())
                {
                    TRegistro_HoraBoliche rHora = new TRegistro_HoraBoliche();
                    if (!reader.IsDBNull(reader.GetOrdinal("ID_Hora")))
                    {
                        rHora.Id_Hora = reader.GetDecimal(reader.GetOrdinal("ID_Hora"));
                    }
                    if (!reader.IsDBNull(reader.GetOrdinal("Hora")))
                    {
                        rHora.Hora = reader.GetTimeSpan(reader.GetOrdinal("Hora"));
                    }
                    if (!reader.IsDBNull(reader.GetOrdinal("Vl_Hora")))
                    {
                        rHora.Vl_hora = reader.GetDecimal(reader.GetOrdinal("Vl_Hora"));
                    }
                    if (!reader.IsDBNull(reader.GetOrdinal("Dia")))
                    {
                        rHora.Dia = reader.GetString(reader.GetOrdinal("Dia"));
                    }
                    if (!reader.IsDBNull(reader.GetOrdinal("Tp_servico")))
                    {
                        rHora.Tp_servico = reader.GetString(reader.GetOrdinal("Tp_servico"));
                    }
                    lista.Add(rHora);
                }
            }
            finally
            {
                reader.Close();
                reader.Dispose();
                if (podeFecharBco)
                {
                    this.deletarBanco_Dados();
                }
            }
            return(lista);
        }
Exemple #2
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();
        }
Exemple #3
0
        private void calcularVlPorServico(ref object rValorhora, TList_HoraBoliche lHora, DateTime dateTimeAbertura)
        {
            string x = dateTimeAbertura.DayOfWeek.ToString();

            switch (x)
            {
            case "Sunday":
                x = "1";
                break;

            case "Monday":
                x = "2";
                break;

            case "Tuesday":
                x = "3";
                break;

            case "Wednesday":
                x = "4";
                break;

            case "Thursday":
                x = "5";
                break;

            case "Friday":
                x = "6";
                break;

            case "Saturday":
                x = "7";
                break;
            }

            if (lHora.Count.Equals(1) || Convert.ToInt16(x) < Convert.ToInt16(lHora[0].Tp_dia))
            {
                rValorhora = lHora[0].Vl_hora;
            }
            else
            {
                for (int i = 0; i < lHora.Count; i++)
                {
                    if (i < (lHora.Count - 1))
                    {
                        if (Convert.ToInt16(x) >= Convert.ToInt16(lHora[i].Tp_dia) &&
                            Convert.ToInt16(x) <= Convert.ToInt16(lHora[i + 1].Tp_dia))
                        {
                            if (Convert.ToInt16(x) == Convert.ToInt16(lHora[i + 1].Tp_dia))
                            {
                                if (dateTimeAbertura.TimeOfDay.TotalMilliseconds < Convert.ToDateTime(lHora[i + 1].Hora.ToString()).TimeOfDay.TotalMilliseconds)
                                {
                                    rValorhora = lHora[i].Vl_hora;
                                }
                                else
                                {
                                    rValorhora = lHora[i + 1].Vl_hora;
                                }
                            }
                            else
                            {
                                if (rValorhora == null)
                                {
                                    rValorhora = lHora[i].Vl_hora;
                                }
                            }
                        }
                    }
                    else
                    {
                        if (rValorhora == null)
                        {
                            rValorhora = lHora[i].Vl_hora;
                        }
                    }
                }
            }
        }