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); } }
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); } }
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); } } }
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()); } }