private void TFLanVendas_FormClosing(object sender, FormClosingEventArgs e) { //Fechar sessao aberta if (lSessao != null) { if (lSessao.Count > 0) { try { TCN_Sessao.EncerrarSessao(lSessao[0], null); } catch { } } } }
private void FecharCaixa() { //Logar no PDV using (Proc_Commoditties.TFLanSessaoPDV fSessao = new Proc_Commoditties.TFLanSessaoPDV()) { if (fSessao.ShowDialog() == DialogResult.OK) { //Verificar se existe caixa aberto para o pdv/login TList_CaixaPDV lCaixa = new TCD_CaixaPDV().Select( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.login", vOperador = "=", vVL_Busca = "'" + fSessao.Usuario.Trim() + "'" }, new Utils.TpBusca() { vNM_Campo = "isnull(a.st_registro, 'A')", vOperador = "=", vVL_Busca = "'A'" } }, 1, string.Empty); if (lCaixa.Count > 0) { //Verificar se existe sessao aberta para o usuario if (new TCD_Sessao().BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.login", vOperador = "=", vVL_Busca = "'" + fSessao.Usuario.Trim() + "'" }, new Utils.TpBusca() { vNM_Campo = "isnull(a.st_registro, 'A')", vOperador = "<>", vVL_Busca = "'F'" } }, "1") != null) { if (MessageBox.Show("Existe sessão aberta para o Usuário." + fSessao.Usuario.Trim() + "\r\n" + "Deseja finalizar todas as sessões?", "Mensagem", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) { TList_Sessao se = new TList_Sessao(); se = TCN_Sessao.Buscar(string.Empty, string.Empty, Utils.Parametros.pubLogin, string.Empty, string.Empty, string.Empty, "'A'", 0, null); se.ForEach(p => { p.St_registro = "F"; TCN_Sessao.EncerrarSessao(p, null); }); } else { return; } } string dt_ini = Convert.ToDateTime(DateTime.Now.AddDays(-1).ToString("dd/MM/yyyy")).ToString(); string dt_fim = Convert.ToDateTime(DateTime.Now.AddDays(1).ToString("dd/MM/yyyy")).ToString(); //Verificar se existe venda de delivery if (new CamadaDados.Restaurante.TCD_PreVenda().BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "isnull(a.st_delivery, 'A')", vOperador = "=", vVL_Busca = "'E'" }, new Utils.TpBusca() { vNM_Campo = "isnull(a.st_registro, 'A')", vOperador = "<>", vVL_Busca = "'C'" }, new Utils.TpBusca() { vNM_Campo = "a.dt_venda", vOperador = ">=", vVL_Busca = "'" + string.Format(new System.Globalization.CultureInfo("en-US", true), Convert.ToDateTime(dt_ini).ToString("yyyyMMdd")) + " 00:00:00'" }, new Utils.TpBusca() { vNM_Campo = "a.dt_venda", vOperador = "<=", vVL_Busca = "'" + string.Format(new System.Globalization.CultureInfo("en-US", true), Convert.ToDateTime(dt_fim).ToString("yyyyMMdd")) + " 00:00:00'" } }, "1") != null) { if (MessageBox.Show("Existe venda de delivery em ENTREGA, gostaria de fechar?" + fSessao.Usuario.Trim() + ".\r\n" + "Deseja fechar delivery?.", "Mensagem", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) { using (TFVendaDelivery f = new TFVendaDelivery()) { f.vSt_entrega = true; f.vSt_buscar = true; f.ShowDialog(); } } } //Verificar se existe venda de combustivel em espera para o login if (new CamadaDados.PostoCombustivel.TCD_VendaCombustivel().BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "isnull(a.st_registro, 'A')", vOperador = "=", vVL_Busca = "'E'" }, new Utils.TpBusca() { vNM_Campo = "a.loginespera", vOperador = "=", vVL_Busca = "'" + fSessao.Usuario.Trim() + "'" } }, "1") != null) { MessageBox.Show("Existe venda de combustivel em ESPERA para o login " + fSessao.Usuario.Trim() + ".\r\n" + "Não é permitido fechar caixa com venda em ESPERA.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (new CamadaDados.PostoCombustivel.Cadastros.TCD_CfgPosto().BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + lCaixa[0].Cd_empresa.Trim() + "'" }, new Utils.TpBusca() { vNM_Campo = "isnull(a.st_encerrantecaixa, 'N')", vOperador = "=", vVL_Busca = "'S'" } }, "1") != null) { MessageBox.Show("Posto exige que seja informado encerrante no fechamento de caixa.\r\n" + "Fechamento de caixa deve ser realizado pela tela de recebimento de combustivel, menu FISCAL, opção FECHAR CAIXA.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } using (PDV.TFFechaCaixaOperacional fFechar = new PDV.TFFechaCaixaOperacional()) { fFechar.Id_caixa = lCaixa[0].Id_caixastr; fFechar.pLogin = fSessao.Usuario; if (fFechar.ShowDialog() == DialogResult.OK) { if (fFechar.lPortador != null) { lCaixa[0].lPorFecharCaixa = fFechar.lPortador; lCaixa[0].Dt_fechamento = CamadaDados.UtilData.Data_Servidor(); lCaixa[0].St_registro = "F"; if (lCaixa[0].Vl_transportar.Equals(decimal.Zero)) { if (lPdv[0].St_fixarvlretidobool) { lCaixa[0].Vl_transportar = lPdv[0].Vl_maxretcaixa; } else { using (Componentes.TFQuantidade fQtde = new Componentes.TFQuantidade()) { fQtde.Ds_label = "Vl. Retido Caixa"; fQtde.Vl_saldo = lPdv[0].Vl_maxretcaixa; fQtde.Casas_decimais = 2; if (fQtde.ShowDialog() == DialogResult.OK) { lCaixa[0].Vl_transportar = fQtde.Quantidade; } } } } try { TCN_CaixaPDV.FecharCaixa(lCaixa[0], null); //Imprimir Extrato Fechamento Caixa FormRelPadrao.Relatorio extrato = new FormRelPadrao.Relatorio(); extrato.Altera_Relatorio = Altera_relatorio; extrato.Nome_Relatorio = "EXTRATO_FECHAMENTO_CAIXA_OPERACIONAL"; extrato.NM_Classe = this.Name; extrato.Modulo = "PDV"; extrato.Ident = "EXTRATO_FECHAMENTO_CAIXA_OPERACIONAL"; BindingSource bs_caixa = new BindingSource(); bs_caixa.DataSource = lCaixa; extrato.Adiciona_DataSource("CAIXA", bs_caixa); BindingSource bs = new BindingSource(); bs.DataSource = TCN_FechamentoCaixa.Buscar(lCaixa[0].Id_caixastr, string.Empty, "'A'", null); extrato.DTS_Relatorio = bs; //Buscar retiradas a processar object obj = new CamadaDados.Faturamento.PDV.TCD_RetiradaCaixa().BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.id_caixa", vOperador = "=", vVL_Busca = lCaixa[0].Id_caixastr }, new Utils.TpBusca() { vNM_Campo = "isnull(a.st_registro, 'A')", vOperador = "=", vVL_Busca = "'A'" } }, "isnull(sum(a.Vl_Retirada), 0)"); if (obj != null) { extrato.Parametros_Relatorio.Add("VL_RET_PROCESSAR", decimal.Parse(obj.ToString())); } using (FormRelPadrao.TFGerenciadorImpressao fImp = new FormRelPadrao.TFGerenciadorImpressao()) { fImp.St_enabled_enviaremail = true; fImp.pCd_clifor = string.Empty; fImp.pMensagem = "EXTRATO FECHAMENTO CAIXA OPERACIONAL"; if (Altera_relatorio) { extrato.Gera_Relatorio(string.Empty, fImp.pSt_imprimir, fImp.pSt_visualizar, fImp.pSt_enviaremail, fImp.pSt_exportPdf, fImp.Path_exportPdf, fImp.pDestinatarios, null, "EXTRATO FECHAMENTO CAIXA OPERACIONAL", fImp.pDs_mensagem); Altera_relatorio = false; } else if ((fImp.ShowDialog() == DialogResult.OK) || (fImp.pSt_enviaremail)) { extrato.Gera_Relatorio(string.Empty, fImp.pSt_imprimir, fImp.pSt_visualizar, fImp.pSt_enviaremail, fImp.pSt_exportPdf, fImp.Path_exportPdf, fImp.pDestinatarios, null, "EXTRATO FECHAMENTO CAIXA OPERACIONAL", fImp.pDs_mensagem); } } } catch (Exception ex) { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } } else { MessageBox.Show("Não existe caixa aberto para o Usuário " + fSessao.Usuario.Trim(), "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); } } else { MessageBox.Show("Obrigatorio informar usuario para fechar caixa.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); } } }