コード例 #1
0
        private void CalcularValorProdConvenio()
        {
            if ((bsConvenio.Current != null) && (lVenda.Count > 0))
            {
                decimal vl_liquido = decimal.Zero;
                decimal vl_bruto   = decimal.Zero;
                decimal volume     = decimal.Zero;
                lVenda.GroupBy(p => p.Cd_produto,
                               (aux, venda) =>
                               new
                {
                    produto     = aux,
                    volume      = venda.Sum(v => v.Volumeabastecido),
                    vl_unitario = venda.Average(v => v.Vl_unitario),
                    vl_subtotal = venda.Sum(v => v.Vl_subtotal)
                }).ToList().ForEach(p =>
                {
                    //Buscar convenio x clifor x produto

                    //Verificar se o produto tem convenio valor unitario
                    CamadaDados.PostoCombustivel.TList_Convenio_Clifor lConvClifor =
                        new CamadaDados.PostoCombustivel.TCD_Convenio_Clifor().Select(
                            new TpBusca[]
                    {
                        new TpBusca()
                        {
                            vNM_Campo = "a.cd_empresa",
                            vOperador = "=",
                            vVL_Busca = "'" + lVenda[0].Cd_empresa.Trim() + "'"
                        },
                        new TpBusca()
                        {
                            vNM_Campo = "a.id_convenio",
                            vOperador = "=",
                            vVL_Busca = (bsConvenio.Current as CamadaDados.PostoCombustivel.TRegistro_Convenio).Id_conveniostr
                        },
                        new TpBusca()
                        {
                            vNM_Campo = "a.cd_clifor",
                            vOperador = "=",
                            vVL_Busca = "'" + cd_clifor.Text.Trim() + "'"
                        },
                        new TpBusca()
                        {
                            vNM_Campo = "a.cd_endereco",
                            vOperador = "=",
                            vVL_Busca = "'" + cd_endereco.Text.Trim() + "'"
                        },
                        new TpBusca()
                        {
                            vNM_Campo = "a.cd_produto",
                            vOperador = "=",
                            vVL_Busca = "'" + p.produto.Trim() + "'"
                        }
                    }, 1, string.Empty);
                    if (lConvClifor[0].Vl_unitario > decimal.Zero)
                    {
                        vl_liquido += p.volume * lConvClifor[0].Vl_unitario;
                    }
                    else
                    {
                        string tp_acresdesc = !string.IsNullOrWhiteSpace(lConvClifor[0].Tp_acresdesc) ? lConvClifor[0].Tp_acresdesc : (bsConvenio.Current as CamadaDados.PostoCombustivel.TRegistro_Convenio).Tp_acresdesc;
                        string tp_desconto  = !string.IsNullOrWhiteSpace(lConvClifor[0].Tp_desconto) ? lConvClifor[0].Tp_desconto : (bsConvenio.Current as CamadaDados.PostoCombustivel.TRegistro_Convenio).Tp_desconto;
                        decimal vl_desc     = lConvClifor[0].Desconto > decimal.Zero ? lConvClifor[0].Desconto : (bsConvenio.Current as CamadaDados.PostoCombustivel.TRegistro_Convenio).Desconto;

                        if (lConvClifor[0].Tp_preco.Trim().ToUpper() != "N")
                        {
                            if (lConvClifor[0].Tp_preco.Trim().ToUpper().Equals("A"))
                            {
                                //Buscar Preço ANP do combustivel
                                decimal vl_precoANP = CamadaNegocio.PostoCombustivel.Cadastros.TCN_PrecoANP.BuscarPrecoANP(p.produto, null);
                                if (vl_precoANP > decimal.Zero)
                                {
                                    //Verificar se o convenio tem desconto/acrescimo valor unitario
                                    if (vl_desc > decimal.Zero)
                                    {
                                        if (tp_acresdesc.Trim().ToUpper().Equals("A"))
                                        {
                                            vl_liquido += tp_desconto.Trim().ToUpper().Equals("V") ?
                                                          (p.volume * vl_precoANP) + (vl_desc * p.volume) :
                                                          (p.volume * vl_precoANP) + Math.Round((p.volume * vl_precoANP) * (vl_desc / 100), 2);
                                        }
                                        else
                                        {
                                            vl_liquido += tp_desconto.Trim().ToUpper().Equals("V") ?
                                                          (p.volume * vl_precoANP) - (vl_desc * p.volume) :
                                                          (p.volume * vl_precoANP) - Math.Round((p.volume * vl_precoANP) * (vl_desc / 100), 2);
                                        }
                                    }
                                    else
                                    {
                                        vl_liquido += p.volume * vl_precoANP;
                                    }
                                }
                            }
                            else if (lConvClifor[0].Tp_preco.Trim().ToUpper().Equals("C"))
                            {
                                //Buscar preco Custo
                                decimal vl_precoCusto = CamadaNegocio.Estoque.TCN_LanEstoque.Valor_Medio_Est_Produto(lVenda[0].Cd_empresa, p.produto, null);
                                if (vl_precoCusto > decimal.Zero)
                                {
                                    //Verificar se o convenio tem desconto/acrescimo valor unitario
                                    if (vl_desc > decimal.Zero)
                                    {
                                        if (tp_acresdesc.Trim().ToUpper().Equals("A"))
                                        {
                                            vl_liquido += tp_desconto.Trim().ToUpper().Equals("V") ?
                                                          (p.volume * vl_precoCusto) + (vl_desc * p.volume) :
                                                          (p.volume * vl_precoCusto) + Math.Round((p.volume * vl_precoCusto) * (vl_desc / 100), 2);
                                        }
                                        else
                                        {
                                            vl_liquido += tp_desconto.Trim().ToUpper().Equals("V") ?
                                                          (p.volume * vl_precoCusto) - (vl_desc * p.volume) :
                                                          (p.volume * vl_precoCusto) - Math.Round((p.volume * vl_precoCusto) * (vl_desc / 100), 2);
                                        }
                                    }
                                    else
                                    {
                                        vl_liquido += p.volume * vl_precoCusto;
                                    }
                                }
                            }
                            else
                            {
                                //Verificar se o convenio tem desconto/acrescimo valor unitario
                                if (vl_desc > decimal.Zero)
                                {
                                    if (tp_acresdesc.Trim().ToUpper().Equals("A"))
                                    {
                                        vl_liquido += tp_desconto.Trim().ToUpper().Equals("V") ?
                                                      p.vl_subtotal + (vl_desc * p.volume) :
                                                      p.vl_subtotal + Math.Round(p.vl_subtotal * (vl_desc / 100), 2);
                                    }
                                    else
                                    {
                                        vl_liquido += tp_desconto.Trim().ToUpper().Equals("V") ?
                                                      p.vl_subtotal - (vl_desc * p.volume) :
                                                      p.vl_subtotal - Math.Round(p.vl_subtotal * (vl_desc / 100), 2);
                                    }
                                }
                                else
                                {
                                    vl_liquido += p.vl_subtotal;
                                }
                            }
                        }
                        else
                        {
                            //Verificar se o convenio tem desconto/acrescimo valor unitario
                            if (vl_desc > decimal.Zero)
                            {
                                if (tp_acresdesc.Trim().ToUpper().Equals("A"))
                                {
                                    vl_liquido += tp_desconto.Trim().ToUpper().Equals("V") ?
                                                  p.vl_subtotal + (vl_desc * p.volume) :
                                                  p.vl_subtotal + Math.Round(p.vl_subtotal * (vl_desc / 100), 2);
                                }
                                else
                                {
                                    vl_liquido += tp_desconto.Trim().ToUpper().Equals("V") ?
                                                  p.vl_subtotal - (vl_desc * p.volume) :
                                                  p.vl_subtotal - Math.Round(p.vl_subtotal * (vl_desc / 100), 2);
                                }
                            }
                            else
                            {
                                vl_liquido += p.vl_subtotal;
                            }
                        }
                    }
                    vl_bruto += p.vl_subtotal;
                    volume   += p.volume;
                });
                tot_volume.Value    = volume;
                tot_bruto.Value     = vl_bruto;
                tot_liquido.Value   = vl_liquido;
                total_receber.Value = tot_liquido.Value + tot_outrasvenda.Value;
            }
        }
コード例 #2
0
 private void bb_imprimir_Click(object sender, EventArgs e)
 {
     if (bsValeResgate.Current != null)
     {
         if ((bsValeResgate.Current as CamadaDados.Faturamento.Fidelizacao.TRegistro_ValeResgate).St_impressobool)
         {
             MessageBox.Show("Não é permitido reimprimir vale.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
             return;
         }
         try
         {
             //Imprimir Vale
             List <string> Texto = new List <string>();
             Texto.Add("                RESGATE PONTOS                 ");
             Texto.Add("PLACA: " + (bsValeResgate.Current as CamadaDados.Faturamento.Fidelizacao.TRegistro_ValeResgate).Placa +
                       "          VALE: " + (bsValeResgate.Current as CamadaDados.Faturamento.Fidelizacao.TRegistro_ValeResgate).Id_valestr);
             Texto.Add("DATA EMISSAO: " + CamadaDados.UtilData.Data_Servidor().ToString("dd/MM/yyyy HH:mm:ss"));
             //Buscar Convenio e clifor
             CamadaDados.PostoCombustivel.TList_VendaCombustivel lVenda =
                 new CamadaDados.PostoCombustivel.TCD_VendaCombustivel().Select(
                     new Utils.TpBusca[]
             {
                 new Utils.TpBusca()
                 {
                     vNM_Campo = string.Empty,
                     vOperador = "exists",
                     vVL_Busca = "(select 1 from VTB_FAT_PONTOSFIDELIDADE x " +
                                 "inner join TB_FAT_ResgatePontos y " +
                                 "on x.CD_Empresa = y.CD_Empresa " +
                                 "and x.ID_Ponto = y.ID_Ponto " +
                                 "where x.cd_empresa = a.CD_Empresa " +
                                 "and x.Id_Cupom = a.Id_Cupom " +
                                 "and y.ID_Vale = " + (bsValeResgate.Current as CamadaDados.Faturamento.Fidelizacao.TRegistro_ValeResgate).Id_valestr + ")"
                 }
             }, 1, string.Empty, string.Empty);
             //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);
             //Verificar se existe msg especifica para clifor do convenio
             //Buscar msg
             if (!string.IsNullOrEmpty(lVenda[0].Nm_clifor))
             {
                 Texto.Add(lVenda[0].Nm_clifor);
                 Texto.Add(string.Empty);
                 Texto.Add(string.Empty);
             }
             string Ds_msgVale_Clifor =
                 new CamadaDados.PostoCombustivel.TCD_Convenio_Clifor().BuscarEscalar(
                     new Utils.TpBusca[]
             {
                 new Utils.TpBusca()
                 {
                     vNM_Campo = "a.cd_clifor",
                     vOperador = "=",
                     vVL_Busca = "'" + lVenda[0].Cd_clifor.Trim() + "'"
                 },
                 new Utils.TpBusca()
                 {
                     vNM_Campo = "a.id_convenio",
                     vOperador = "=",
                     vVL_Busca = lVenda[0].Id_conveniostr
                 }
             }, "a.ds_msgvale").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);
             object obj = new CamadaDados.Faturamento.Fidelizacao.TCD_PontosFidelidade().BuscarEscalar(
                 new Utils.TpBusca[]
             {
                 new Utils.TpBusca()
                 {
                     vNM_Campo = "a.cd_empresa",
                     vOperador = "=",
                     vVL_Busca = "'" + rCfgPosto.Cd_empresa.Trim() + "'"
                 },
                 new Utils.TpBusca()
                 {
                     vNM_Campo = string.Empty,
                     vOperador = string.Empty,
                     vVL_Busca = "a.dt_validade is null or convert(datetime, floor(convert(decimal(30,10), a.dt_validade))) >= convert(datetime, floor(convert(decimal(30,10), getdate())))"
                 },
                 new Utils.TpBusca()
                 {
                     vNM_Campo = "replace(a.placa, '-', '')",
                     vOperador = "=",
                     vVL_Busca = "'" + placa.Text.Replace("-", string.Empty) + "'"
                 }
             }, "isnull(sum(isnull(a.qt_pontos, 0) - isnull(a.pontos_res, 0)), 0)");
             Texto.Add("PONTOS RESGATAR: " + (obj == null ? "0" : obj.ToString()));
             ImprimirVale(Texto);
             //Marcar vale como impresso
             try
             {
                 (bsValeResgate.Current as CamadaDados.Faturamento.Fidelizacao.TRegistro_ValeResgate).St_impresso = "S";
                 CamadaNegocio.Faturamento.Fidelizacao.TCN_ValeResgate.Gravar(bsValeResgate.Current as CamadaDados.Faturamento.Fidelizacao.TRegistro_ValeResgate, null);
                 afterBusca();
             }
             catch (Exception ex)
             { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
         }
         catch { }
     }
 }
コード例 #3
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 { }
        }