コード例 #1
0
 private bool bloqueioCredito()
 {
     if ((!string.IsNullOrEmpty(rPedido.CD_Clifor)))
     {
         CamadaDados.Financeiro.Duplicata.TRegistro_DadosBloqueio rDados = new CamadaDados.Financeiro.Duplicata.TRegistro_DadosBloqueio();
         if (CamadaNegocio.Financeiro.Duplicata.TCN_DadosBloqueio.VerificarBloqueioCredito(rPedido.CD_Clifor,
                                                                                           decimal.Zero,
                                                                                           true,
                                                                                           ref rDados,
                                                                                           null))
         {
             using (Financeiro.TFLan_BloqueioCredito fBloq = new Financeiro.TFLan_BloqueioCredito())
             {
                 fBloq.rDados    = rDados;
                 fBloq.Vl_fatura = decimal.Zero;
                 fBloq.ShowDialog();
                 return(fBloq.St_desbloqueado);
             }
         }
         else
         {
             return(true);
         }
     }
     else
     {
         return(true);
     }
 }
コード例 #2
0
 public static bool VerificarBloqueioCredito(string Cd_clifor,
                                             decimal Vl_fatura,
                                             bool St_duplicata,
                                             ref CamadaDados.Financeiro.Duplicata.TRegistro_DadosBloqueio rDados,
                                             BancoDados.TObjetoBanco banco)
 {
     CamadaDados.Financeiro.Duplicata.TList_DadosBloqueio lDados =
         TCN_DadosBloqueio.Buscar(Cd_clifor, banco);
     if (lDados.Count > 0)
     {
         rDados = lDados[0];
         if (St_duplicata)
         {
             return(((rDados.Vl_limitecredito > decimal.Zero) && ((rDados.Vl_limitecredito - rDados.Vl_debito_aberto) < Vl_fatura)) ||
                    (rDados.St_bloq_debitovencidobool && (rDados.Vl_debito_vencto > decimal.Zero)) ||
                    rDados.Vl_dupPerdidas > decimal.Zero ||
                    rDados.St_bloqcreditoavulsobool ||
                    rDados.St_renovarcadastro ||
                    rDados.St_bloqueiospcbool);
         }
         else
         {
             return((rDados.Vl_ch_devolvido > decimal.Zero) ||
                    ((rDados.Vl_limitecredCH > decimal.Zero) && ((rDados.Vl_limitecredCH - rDados.Vl_ch_predatado) < Vl_fatura)));
         }
     }
     else
     {
         return(false);
     }
 }
コード例 #3
0
        private void InformarValor(string portador)
        {
            if (lPortador.Count > 0)
            {
                if (Math.Round(pVl_receber, 2) > Math.Round(lPortador.Sum(p => p.Vl_pagtoPDV), 2))
                {
                    if (portador.ToUpper().Trim().Equals("CH"))//Cheque
                    {
                        using (Financeiro.TFLanListaCheques fListaCheques = new Financeiro.TFLanListaCheques())
                        {
                            fListaCheques.Tp_mov     = "R";
                            fListaCheques.Cd_empresa = pCd_empresa;
                            fListaCheques.St_pdv     = true;
                            //Buscar Config PDV Empresa
                            CamadaDados.Faturamento.Cadastros.TList_CFGCupomFiscal lCfg =
                                CamadaNegocio.Faturamento.Cadastros.TCN_CFGCupomFiscal.Buscar(pCd_empresa, null);
                            if (lCfg.Count > 0)
                            {
                                fListaCheques.Cd_contager = lCfg[0].Cd_contaoperacional;
                                fListaCheques.Ds_contager = lCfg[0].Ds_contaoperacional;
                            }
                            fListaCheques.Cd_clifor        = pCd_clifor;
                            fListaCheques.Cd_historico     = rCfg.Cd_historicocaixa;
                            fListaCheques.Ds_historico     = rCfg.Ds_historicocaixa;
                            fListaCheques.Cd_portador      = lPortador.Find(p => p.St_controletitulobool).Cd_portador;
                            fListaCheques.Ds_portador      = lPortador.Find(p => p.St_controletitulobool).Ds_portador;
                            fListaCheques.Nm_clifor        = pNm_clifor;
                            fListaCheques.Dt_emissao       = CamadaDados.UtilData.Data_Servidor();
                            fListaCheques.Vl_totaltitulo   = pVl_receber - lPortador.Sum(p => p.Vl_pagtoPDV);
                            fListaCheques.St_bloquearTroco = St_ReprocessaFin;
                            if (fListaCheques.ShowDialog() == DialogResult.OK)
                            {
                                lPortador.Find(p => p.St_controletitulobool).lCheque      = fListaCheques.lCheques;
                                lPortador.Find(p => p.St_controletitulobool).Vl_pagtoPDV +=
                                    fListaCheques.lCheques.Sum(p => p.Vl_titulo);
                                CalcularTroco(portador);
                                ConfirmarFin();
                            }
                            else
                            {
                                MessageBox.Show("Cheque não foi lançado... Liquidação não será efetivada! ");
                                return;
                            }
                        }
                    }
                    else if (portador.ToUpper().Trim().Equals("CC"))//Cartao Credito
                    {
                        //Buscar dados fatura cartao credito
                        using (TFLanCartaoPDV fCartao = new TFLanCartaoPDV())
                        {
                            fCartao.pCd_empresa      = pCd_empresa;
                            fCartao.D_C              = "C";
                            fCartao.Vl_saldofaturar  = pVl_receber - lPortador.Sum(p => p.Vl_pagtoPDV);
                            fCartao.St_bloquearTroco = St_ReprocessaFin;
                            if (fCartao.ShowDialog() == DialogResult.OK)
                            {
                                fCartao.lFatura.ForEach(p => lPortador.Find(x => x.St_cartaocreditobool).lFatura.Add(p));
                                lPortador.Find(p => p.St_cartaocreditobool).Vl_pagtoPDV += fCartao.lFatura.Sum(p => p.Vl_fatura);
                                CalcularTroco(portador);
                                ConfirmarFin();
                            }
                        }
                    }
                    else if (portador.ToUpper().Trim().Equals("CD"))//Cartao Debito
                    {
                        //Buscar dados fatura cartao credito
                        using (TFLanCartaoPDV fCartao = new TFLanCartaoPDV())
                        {
                            fCartao.pCd_empresa      = pCd_empresa;
                            fCartao.D_C              = "D";
                            fCartao.Vl_saldofaturar  = pVl_receber - lPortador.Sum(p => p.Vl_pagtoPDV);
                            fCartao.St_bloquearTroco = St_ReprocessaFin;
                            if (fCartao.ShowDialog() == DialogResult.OK)
                            {
                                fCartao.lFatura.ForEach(p => lPortador.Find(x => x.St_cartaocreditobool).lFatura.Add(p));
                                lPortador.Find(p => p.St_cartaocreditobool).Vl_pagtoPDV += fCartao.lFatura.Sum(p => p.Vl_fatura);
                                CalcularTroco(portador);
                                ConfirmarFin();
                            }
                        }
                    }
                    else if (portador.ToUpper().Trim().Equals("DU"))//Duplicata
                    {
                        //Buscar portador duplicata
                        CamadaDados.Financeiro.Cadastros.TList_CadPortador lDup =
                            new CamadaDados.Financeiro.Cadastros.TCD_CadPortador().Select(
                                new Utils.TpBusca[]
                        {
                            new Utils.TpBusca()
                            {
                                vNM_Campo = "isnull(a.tp_portadorPDV, '')",
                                vOperador = "=",
                                vVL_Busca = "'P'"
                            }
                        }, 1, string.Empty, string.Empty);
                        if (lDup.Count.Equals(0))
                        {
                            MessageBox.Show("Não existe portador duplicata configurado no sistema.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            return;
                        }
                        if (string.IsNullOrEmpty(pCd_clifor))
                        {
                            MessageBox.Show("Não é permitido venda a prazo sem identificar cliente.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            return;
                        }
                        //Abrir tela Duplicata
                        if (pCd_clifor == rCfg.Cd_clifor)
                        {
                            Componentes.EditDefault CD_Clifor = new Componentes.EditDefault();
                            CD_Clifor.NM_Campo      = "CD_Clifor";
                            CD_Clifor.NM_CampoBusca = "CD_Clifor";
                            DataRowView linha = FormBusca.UtilPesquisa.BTN_BuscaClifor(new Componentes.EditDefault[] { CD_Clifor }, string.Empty);
                            if (linha != null)
                            {
                                pCd_clifor = linha["cd_clifor"].ToString();
                                pNm_clifor = linha["Nm_clifor"].ToString();
                            }
                            else
                            {
                                MessageBox.Show("Obrigatório informar cliente para gerar duplicata!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                return;
                            }
                        }
                        //Verificar credito
                        CamadaDados.Financeiro.Duplicata.TRegistro_DadosBloqueio rDados =
                            new CamadaDados.Financeiro.Duplicata.TRegistro_DadosBloqueio();
                        if (CamadaNegocio.Financeiro.Duplicata.TCN_DadosBloqueio.VerificarBloqueioCredito(pCd_clifor,
                                                                                                          pVl_receber - lPortador.Sum(p => p.Vl_pagtoPDV),
                                                                                                          true,
                                                                                                          ref rDados,
                                                                                                          null))
                        {
                            using (Financeiro.TFLan_BloqueioCredito fBloq = new Financeiro.TFLan_BloqueioCredito())
                            {
                                fBloq.rDados    = rDados;
                                fBloq.Vl_fatura = pVl_receber - lPortador.Sum(p => p.Vl_pagtoPDV);
                                fBloq.ShowDialog();
                                if (!fBloq.St_desbloqueado)
                                {
                                    MessageBox.Show("Não é permitido realizar venda para cliente com restrição crédito.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                    return;
                                }
                            }
                        }
                        //Abrir tela Duplicata
                        CamadaDados.Financeiro.Duplicata.TRegistro_LanDuplicata rDup = new CamadaDados.Financeiro.Duplicata.TRegistro_LanDuplicata();
                        rDup.Cd_empresa = pCd_empresa;
                        rDup.Nm_empresa = pNm_empresa;
                        rDup.Cd_clifor  = pCd_clifor;
                        rDup.Nm_clifor  = pNm_clifor;
                        //Buscar cond pagamento
                        CamadaDados.Financeiro.Cadastros.TList_CadCondPgto lCond =
                            CamadaNegocio.Financeiro.Cadastros.TCN_CadCondPgto.Buscar(string.Empty,
                                                                                      string.Empty,
                                                                                      string.Empty,
                                                                                      string.Empty,
                                                                                      string.Empty,
                                                                                      string.Empty,
                                                                                      1,
                                                                                      decimal.Zero,
                                                                                      string.Empty,
                                                                                      string.Empty,
                                                                                      1,
                                                                                      string.Empty,
                                                                                      null);
                        if (lCond.Count > 0)
                        {
                            rDup.Cd_condpgto      = lCond[0].Cd_condpgto;
                            rDup.Qt_parcelas      = lCond[0].Qt_parcelas;
                            rDup.Qt_dias_desdobro = lCond[0].Qt_diasdesdobro;
                        }
                        //Buscar endereco clifor
                        if (!string.IsNullOrEmpty(pCd_clifor))
                        {
                            CamadaDados.Financeiro.Cadastros.TList_CadEndereco lEnd =
                                CamadaNegocio.Financeiro.Cadastros.TCN_CadEndereco.Buscar(pCd_clifor,
                                                                                          string.Empty,
                                                                                          string.Empty,
                                                                                          string.Empty,
                                                                                          string.Empty,
                                                                                          string.Empty,
                                                                                          string.Empty,
                                                                                          string.Empty,
                                                                                          string.Empty,
                                                                                          string.Empty,
                                                                                          string.Empty,
                                                                                          string.Empty,
                                                                                          string.Empty,
                                                                                          string.Empty,
                                                                                          1,
                                                                                          null);
                            if (lEnd.Count > 0)
                            {
                                pCd_endereco = rDup.Cd_endereco = lEnd[0].Cd_endereco;
                                pDs_endereco = rDup.Ds_endereco = lEnd[0].Ds_endereco;
                            }
                        }
                        rDup.Tp_docto       = rCfg.Tp_docto;
                        rDup.Ds_tpdocto     = rCfg.Ds_tpdocto;
                        rDup.Tp_duplicata   = rCfg.Tp_duplicata;
                        rDup.Ds_tpduplicata = rCfg.Ds_tpduplicata;
                        rDup.Tp_mov         = "R";
                        rDup.Cd_historico   = rCfg.Cd_historico;
                        rDup.Ds_historico   = rCfg.Ds_historico;
                        //Buscar Moeda Padrao
                        CamadaDados.Financeiro.Cadastros.TList_Moeda tabela =
                            CamadaNegocio.ConfigGer.TCN_CadParamGer_X_Empresa.BuscarMoedaPadrao(pCd_empresa, null);
                        if (tabela != null)
                        {
                            if (tabela.Count > 0)
                            {
                                rDup.Cd_moeda    = tabela[0].Cd_moeda;
                                rDup.Ds_moeda    = tabela[0].Ds_moeda_singular;
                                rDup.Sigla_moeda = tabela[0].Sigla;
                            }
                        }
                        rDup.Id_configBoleto     = rCfg.Id_config;
                        rDup.Nr_docto            = "PDC123";//pNr_cupom; //Numero Cupom
                        rDup.Dt_emissaostring    = CamadaDados.UtilData.Data_Servidor().ToString("dd/MM/yyyy");
                        rDup.Vl_documento        = pVl_receber - lPortador.Sum(p => p.Vl_pagtoPDV);
                        rDup.Vl_documento_padrao = pVl_receber - lPortador.Sum(p => p.Vl_pagtoPDV);

                        rDup.Parcelas.Add(new CamadaDados.Financeiro.Duplicata.TRegistro_LanParcela()
                        {
                            Cd_parcela        = 1,
                            Dt_vencto         = lCond.Count > 0 ? rDup.Dt_emissao.Value.AddDays(double.Parse(lCond[0].Qt_diasdesdobro.ToString())) : rDup.Dt_emissao,
                            Vl_parcela        = pVl_receber - lPortador.Sum(p => p.Vl_pagtoPDV),
                            Vl_parcela_padrao = pVl_receber - lPortador.Sum(p => p.Vl_pagtoPDV)
                        });
                        lPortador.Find(p => p.Tp_portadorpdv.ToUpper().Equals("P")).lDup.Add(rDup);
                        lPortador.Find(p => p.Tp_portadorpdv.ToUpper().Equals("P")).Vl_pagtoPDV = rDup.Vl_documento_padrao;
                        ConfirmarFin();
                    }
                    else if (portador.ToUpper().Trim().Equals("DV"))//Devolucao Credito
                    {
                        //Devolucao de credito
                        using (Financeiro.TFSaldoCreditos fSaldo = new Financeiro.TFSaldoCreditos())
                        {
                            fSaldo.Cd_empresa    = pCd_empresa;
                            fSaldo.Cd_clifor     = pCd_clifor;
                            fSaldo.Vl_financeiro = pVl_receber - lPortador.Sum(p => p.Vl_pagtoPDV);
                            fSaldo.Tp_mov        = "'R'";
                            if (fSaldo.ShowDialog() == DialogResult.OK)
                            {
                                if (fSaldo.lSaldo != null)
                                {
                                    lPortador.Find(p => p.St_devcreditobool).lCred       = fSaldo.lSaldo;
                                    lPortador.Find(p => p.St_devcreditobool).Vl_pagtoPDV =
                                        fSaldo.lSaldo.Sum(p => p.Vl_processar);
                                    CalcularTroco(portador);
                                    ConfirmarFin();
                                }
                            }
                            else
                            {
                                return;
                            }
                        }
                    }
                    else
                    {
                        //Portador Dinheiro
                        using (Componentes.TFQuantidade fQtde = new Componentes.TFQuantidade())
                        {
                            fQtde.Casas_decimais = 2;
                            fQtde.Vl_default     = pVl_receber - lPortador.Sum(p => p.Vl_pagtoPDV);
                            fQtde.Vl_saldo       = St_ReprocessaFin ? pVl_receber - lPortador.Sum(p => p.Vl_pagtoPDV) : decimal.Zero;
                            fQtde.Ds_label       = "Valor Recebido";
                            if (fQtde.ShowDialog() == DialogResult.OK)
                            {
                                lPortador.Find(p => !p.St_devcreditobool &&
                                               !p.St_entregafuturabool &&
                                               !p.St_controletitulobool &&
                                               !p.St_cartaocreditobool &&
                                               !p.St_cartafretebool &&
                                               !p.Tp_portadorpdv.Equals("P")).Vl_pagtoPDV += fQtde.Quantidade;
                                CalcularTroco(portador);
                                ConfirmarFin();
                            }
                        }
                    }
                }
                else
                {
                    MessageBox.Show("Não existe mais saldo para receber.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
        }
コード例 #4
0
        private void afterBusca()
        {
            if (!string.IsNullOrEmpty(Cd_clifor.Text))
            {
                //Buscar dados clifor
                bsClifor.DataSource = CamadaNegocio.Financeiro.Cadastros.TCN_CadClifor.Busca_Clifor(Cd_clifor.Text,
                                                                                                    string.Empty,
                                                                                                    string.Empty,
                                                                                                    string.Empty,
                                                                                                    string.Empty,
                                                                                                    string.Empty,
                                                                                                    string.Empty,
                                                                                                    string.Empty,
                                                                                                    string.Empty,
                                                                                                    string.Empty,
                                                                                                    false,
                                                                                                    string.Empty,
                                                                                                    string.Empty,
                                                                                                    string.Empty,
                                                                                                    string.Empty,
                                                                                                    string.Empty,
                                                                                                    string.Empty,
                                                                                                    1,
                                                                                                    null);
                if (bsClifor.Count > 0)
                {
                    //Buscar endereco clifor
                    (bsClifor.Current as CamadaDados.Financeiro.Cadastros.TRegistro_CadClifor).lEndereco =
                        CamadaNegocio.Financeiro.Cadastros.TCN_CadEndereco.Buscar(Cd_clifor.Text,
                                                                                  string.Empty,
                                                                                  string.Empty,
                                                                                  string.Empty,
                                                                                  string.Empty,
                                                                                  string.Empty,
                                                                                  string.Empty,
                                                                                  string.Empty,
                                                                                  string.Empty,
                                                                                  string.Empty,
                                                                                  string.Empty,
                                                                                  string.Empty,
                                                                                  string.Empty,
                                                                                  string.Empty,
                                                                                  0,
                                                                                  null);
                    //Buscar contatos clifor
                    (bsClifor.Current as CamadaDados.Financeiro.Cadastros.TRegistro_CadClifor).lContato =
                        CamadaNegocio.Financeiro.Cadastros.TCN_CadContatoCliFor.Buscar(string.Empty,
                                                                                       Cd_clifor.Text,
                                                                                       string.Empty,
                                                                                       string.Empty,
                                                                                       string.Empty,
                                                                                       string.Empty,
                                                                                       string.Empty,
                                                                                       false,
                                                                                       false,
                                                                                       false,
                                                                                       string.Empty,
                                                                                       0,
                                                                                       null);
                    bsClifor.ResetCurrentItem();
                }
                //Buscar dados credito clifor
                CamadaDados.Financeiro.Duplicata.TRegistro_DadosBloqueio rDados = new CamadaDados.Financeiro.Duplicata.TRegistro_DadosBloqueio();
                CamadaNegocio.Financeiro.Duplicata.TCN_DadosBloqueio.VerificarBloqueioCredito(Cd_clifor.Text,
                                                                                              decimal.Zero,
                                                                                              true,
                                                                                              ref rDados,
                                                                                              null);
                vl_limitecredito.Value = rDados.Vl_limitecredito;
                vl_debitoaberto.Value  = rDados.Vl_debito_aberto;
                saldo_credito.Value    = vl_limitecredito.Value > decimal.Zero ? vl_limitecredito.Value - vl_debitoaberto.Value : decimal.Zero;
                if ((vl_limitecredito.Value > decimal.Zero) && (saldo_credito.Value < vl_financeiro.Value))
                {
                    lblSaldoCredito.ForeColor = Color.Red;
                }
                vl_debitovencido.Value        = rDados.Vl_debito_vencto;
                st_bloq_debitovencido.Checked = rDados.St_bloq_debitovencidobool;
                if (st_bloq_debitovencido.Checked && (vl_debitovencido.Value > decimal.Zero))
                {
                    lblDebVencto.ForeColor = Color.Red;
                }
                st_bloqavulso.Checked = rDados.St_bloqcreditoavulsobool;
                ds_motivo.Text        = rDados.Ds_motivobloqavulso;
                if (st_bloqavulso.Checked)
                {
                    lblMotivo.ForeColor = Color.Red;
                }
                st_renovarcadastro.Checked = rDados.St_renovarcadastro;
                dt_renovacaocadastro.Text  = rDados.Dt_renovacaocadastro.HasValue ? rDados.Dt_renovacaocadastro.Value.ToString("dd/MM/yyyy") : string.Empty;
                if (st_renovarcadastro.Checked)
                {
                    lblRenovacao.ForeColor = Color.Red;
                }
                tot_chdevolvido.Value = rDados.Vl_ch_devolvido;
                if (tot_chdevolvido.Value > decimal.Zero)
                {
                    lblChDevolvido.ForeColor = Color.Red;
                }
                vl_limiteCH.Value     = rDados.Vl_limitecredCH;
                vl_ch_predatado.Value = rDados.Vl_ch_predatado;
                saldo_credCH.Value    = vl_limiteCH.Value > decimal.Zero ? vl_limiteCH.Value - vl_ch_predatado.Value : decimal.Zero;
                if ((vl_limiteCH.Value > decimal.Zero) && (saldo_credCH.Value < vl_financeiro.Value))
                {
                    lblSaldoCredCH.ForeColor = Color.Red;
                }

                //Buscar convenio
                Utils.TpBusca[] filtro = new Utils.TpBusca[6];
                //Empresa
                filtro[0].vNM_Campo = "a.cd_empresa";
                filtro[0].vOperador = "=";
                filtro[0].vVL_Busca = "'" + cd_posto.Text.Trim() + "'";
                //Cliente
                filtro[1].vNM_Campo = "a.cd_clifor";
                filtro[1].vOperador = "=";
                filtro[1].vVL_Busca = "'" + Cd_clifor.Text.Trim() + "'";
                //Status convenio
                filtro[2].vNM_Campo = "isnull(conv.st_registro, 'A')";
                filtro[2].vOperador = "=";
                filtro[2].vVL_Busca = "'A'";
                //Convenio nao expirado
                filtro[3].vNM_Campo = "CONVERT(datetime, floor(convert(decimal(30,10), case when conv.DiasValidade = 0 then getdate() else DATEADD(DAY, conv.DiasValidade, conv.DT_Convenio) end)))";
                filtro[3].vOperador = ">=";
                filtro[3].vVL_Busca = "CONVERT(datetime, floor(convert(decimal(30,10), getdate())))";
                //Status convenio x clifor
                filtro[4].vNM_Campo = "isnull(a.st_registro, 'A')";
                filtro[4].vOperador = "=";
                filtro[4].vVL_Busca = "'A'";
                //Saldo litros convenio
                filtro[5].vNM_Campo         = "case when a.qtd_convenio > 0 then a.qtd_convenio - a.qtd_vendida else 1 end";
                filtro[5].vOperador         = ">";
                filtro[5].vVL_Busca         = "0";
                bsConvenioClifor.DataSource = new CamadaDados.PostoCombustivel.TCD_Convenio_Clifor().Select(filtro, 0, string.Empty);
                bsConvenioClifor_PositionChanged(this, new EventArgs());
            }
        }