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