コード例 #1
0
        private void bb_resgatar_Click(object sender, EventArgs e)
        {
            if (lPontos.Sum(p => p.SD_Pontos) < rCfgPosto.Qt_pontosvale_fid)
            {
                MessageBox.Show("Saldo de pontos insuficiente para emitir VALE<Pontos necessários por vale: " + rCfgPosto.Qt_pontosvale_fid.ToString() + ">.",
                                "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            string loginautoriza = string.Empty;

            if (rCfgPosto.Qt_maxvaledia > decimal.Zero)
            {
                if (rCfgPosto.Qt_maxvaledia <= vales_impressos.Value)
                {
                    using (Parametros.Diversos.TFRegraUsuario fRegra = new Parametros.Diversos.TFRegraUsuario())
                    {
                        fRegra.Ds_regraespecial = "AUTORIZA EMISSÃO VALE PONTOS FIDELIZAÇÃO";
                        if (fRegra.ShowDialog() == DialogResult.OK)
                        {
                            loginautoriza = fRegra.Login;
                        }
                        else
                        {
                            return;
                        }
                    }
                }
            }
            CamadaDados.Faturamento.Fidelizacao.TRegistro_ValeResgate rVale = null;
            try
            {
                rVale = CamadaNegocio.PostoCombustivel.TCN_Convenio_Clifor.ResgatarPontosFid(lPontos, rCfgPosto.Qt_pontosvale_fid, LoginPDV, loginautoriza, null);
                lPontos.RemoveAll(p => p.SD_Pontos.Equals(decimal.Zero));
                pontos_resgatar.Value = lPontos.Sum(p => p.SD_Pontos);
                BuscarValesDia();
            }
            catch (Exception ex)
            { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
            try
            {
                //Imprimir Vale
                List <string> Texto = new List <string>();
                Texto.Add("                RESGATE PONTOS                 ");
                Texto.Add("VALE Nr.: " + rVale.Id_valestr);
                if (!string.IsNullOrWhiteSpace(pPlaca.Replace("-", string.Empty)))
                {
                    Texto.Add("PLACA: " + pPlaca.Trim() + "          VALE: " + rVale.Id_valestr);
                }
                else
                {
                    Texto.Add("CLIENTE: " + pCd_clifor.Trim() + "-" + pNm_clifor.Trim());
                }
                Texto.Add("DATA EMISSAO: " + CamadaDados.UtilData.Data_Servidor().ToString("dd/MM/yyyy HH:mm:ss"));
                //Buscar Nº Dias Validade
                if (rCfgPosto.diasValidadeVale > decimal.Zero)
                {
                    Texto.Add("DT.VALIDADE: " + CamadaDados.UtilData.Data_Servidor().AddDays(int.Parse(rCfgPosto.diasValidadeVale.ToString())).ToString("dd/MM/yyyy"));
                }
                Texto.Add(string.Empty);
                Texto.Add(string.Empty);
                Texto.Add(string.Empty);
                //Verificar se existe msg especifica para clifor do convenio
                string Ds_msgVale_Clifor = string.Empty;
                if (!string.IsNullOrEmpty(pId_Convenio))
                {
                    object obj = new CamadaDados.PostoCombustivel.TCD_Convenio_Clifor().BuscarEscalar(
                        new TpBusca[]
                    {
                        new TpBusca()
                        {
                            vNM_Campo = string.Empty,
                            vOperador = string.Empty,
                            vVL_Busca = "a.cd_clifor = '" + pCd_clifor.Trim() +
                                        "' or exists(select 1 from TB_PDC_Convenio_X_Placa x " +
                                        "where a.id_convenio = x.id_convenio " +
                                        "and a.cd_empresa = x.cd_empresa " +
                                        "and a.cd_clifor = x.cd_clifor " +
                                        "and a.cd_endereco = x.cd_endereco " +
                                        "and a.cd_produto = x.cd_produto " +
                                        "and x.placa = '" + pPlaca.Trim() + "')"
                        },
                        new TpBusca()
                        {
                            vNM_Campo = "a.id_convenio",
                            vOperador = "=",
                            vVL_Busca = pId_Convenio
                        }
                    }, "a.ds_msgvale");
                    Ds_msgVale_Clifor = obj == null ? string.Empty : obj.ToString();
                }
                else
                {
                    object obj = new CamadaDados.PostoCombustivel.TCD_Convenio_Clifor().BuscarEscalar(
                        new TpBusca[]
                    {
                        new TpBusca()
                        {
                            vNM_Campo = "a.cd_empresa",
                            vOperador = "=",
                            vVL_Busca = "'" + rCfgPosto.Cd_empresa.Trim() + "'"
                        },
                        new TpBusca()
                        {
                            vNM_Campo = string.Empty,
                            vOperador = string.Empty,
                            vVL_Busca = "a.cd_clifor = '" + pCd_clifor.Trim() +
                                        "' or exists(select 1 from TB_PDC_Convenio_X_Placa x " +
                                        "where a.id_convenio = x.id_convenio " +
                                        "and a.cd_empresa = x.cd_empresa " +
                                        "and a.cd_clifor = x.cd_clifor " +
                                        "and a.cd_endereco = x.cd_endereco " +
                                        "and a.cd_produto = x.cd_produto " +
                                        "and x.placa = '" + pPlaca.Trim() + "')"
                        },
                        new TpBusca()
                        {
                            vNM_Campo = "isnull(a.ds_msgvale, '')",
                            vOperador = "<>",
                            vVL_Busca = "''"
                        }
                    }, "a.ds_msgvale");
                    Ds_msgVale_Clifor = obj == null ? string.Empty : obj.ToString();
                }
                if (string.IsNullOrEmpty(Ds_msgVale_Clifor))
                {
                    Texto.Add(rCfgPosto.Ds_msgvale.Trim().ToUpper());
                }
                else
                {
                    Texto.Add(Ds_msgVale_Clifor);
                }
                Texto.Add(string.Empty);
                Texto.Add(string.Empty);
                Texto.Add("PONTOS RESGATAR: " + lPontos.Sum(p => p.SD_Pontos).ToString());
                ImprimirVale(Texto);
                //Marcar vale como impresso
                try
                {
                    rVale.St_impresso = "S";
                    CamadaNegocio.Faturamento.Fidelizacao.TCN_ValeResgate.Gravar(rVale, null);
                }
                catch (Exception ex)
                { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
            }
            catch { }
        }