public override bool authenticate( ) { Registry("authenticate exec_pos_vendaEmpresarialSITEF "); /// USER [ authenticate ] cart = new T_Cartao(this); emp = new T_Empresa(this); l_nsu = new LOG_NSU(this); info = new T_InfoAdicionais(this); prot = new T_Proprietario(this); loj = new T_Loja(this); // Default é erro genérico var_codResp = "9999"; // Normal var_nu_nsuAtual = Context.NONE; var_nu_nsuEntidade = Context.NONE; // Cancelamento var_nu_nsuOrig = Context.NONE; var_nu_nsuEntOrig = Context.NONE; // Valores básicos de comércio var_vr_total = input_cont_pe.get_vr_valor(); var_nu_parcelas = input_cont_pe.get_nu_parcelas(); var_codResp = "0606"; // alterado #region - valida loja AO INVES DE TERMINAL (antigo) - // ## Busca terminal pelo seu código // pega os 7 ultimos if (!loj.select_rows_loja(input_cont_pe.get_st_terminal().Substring(1).TrimStart('0'))) { output_st_msg = "Loja inexistente"; var_codResp = "0303"; return(false); } if (!loj.fetch()) { output_st_msg = "Erro aplicativo"; return(false); } // alterado! // busca o primeiro terminal vinculado if (!term.select_fk_loja(loj.get_identity())) { output_st_msg = "Erro do terminal"; return(false); } term.fetch(); #endregion // continua igual #region - valida empresa - // ## Busca empresa informada if (!emp.select_rows_empresa(input_cont_pe.get_st_empresa())) { output_st_msg = "Empresa inexistente"; var_codResp = "0303"; return(false); } if (!emp.fetch()) { output_st_msg = "Erro de aplicativo"; return(false); } // ## Caso empresa bloqueada, sair if (emp.get_tg_bloq() == Context.TRUE) { output_st_msg = "Empresa bloqueada"; var_codResp = "0303"; return(false); } #endregion // alterado! #region - valida relação da Loja do Terminal com Empresa (Convênio) LINK_LojaEmpresa loj_emp = new LINK_LojaEmpresa(this); if (!loj_emp.select_fk_empresa_loja(emp.get_identity(), loj.get_identity())) { output_st_msg = "Loja não conveniada"; var_codResp = "0303"; return(false); } if (loj.get_tg_blocked() == Context.TRUE) { output_st_msg = "Loja bloqueada"; var_codResp = "0303"; return(false); } if (loj.get_tg_cancel() == Context.TRUE) { output_st_msg = "Loja cancelada"; var_codResp = "0303"; return(false); } #endregion // continua igual #region - valida cartão - if (!cart.select_rows_tudo(input_cont_pe.get_st_empresa(), input_cont_pe.get_st_matricula(), input_cont_pe.get_st_titularidade())) { output_st_msg = "Cartão inexistente"; var_codResp = "0606"; return(false); } if (!cart.fetch()) { output_st_msg = "Erro aplicativo"; return(false); } // ## Verifica bloqueio if (cart.get_tg_status() == CartaoStatus.Bloqueado) { output_st_msg = "Cartão inválido"; var_codResp = "0505"; return(false); } if (cart.get_tg_emitido() != StatusExpedicao.Expedido) { output_st_msg = "Cartão inválido"; var_codResp = "0505"; return(false); } if (cart.get_tg_tipoCartao() == TipoCartao.educacional) { // ## No caso educacional, permitir somente venda // ## em uma parcela if (input_cont_pe.get_nu_parcelas().TrimStart('0') != "1") { output_st_msg = "Somente uma parcela"; var_codResp = "0606"; return(false); } } // ## Conferir vencto do cartão /* * if ( cart.get_tg_tipoCartao() == TipoCartao.empresarial ) * { * int year = 2000 + Convert.ToInt32 ( cart.get_st_venctoCartao().Substring ( 2,2 ) ); * int month = Convert.ToInt32 ( cart.get_st_venctoCartao().Substring ( 0,2 ) ); * int day = 1; * * DateTime tim_venc = new DateTime ( year, month, day ); * * if ( tim_venc < DateTime.Now ) * { * output_st_msg = "Cartão vencido"; * var_codResp = "7676"; * return false; * } * } */ #endregion var_vr_total = input_cont_pe.get_vr_valor(); var_nu_parcelas = input_cont_pe.get_nu_parcelas(); SQL_LOGGING_ENABLE = false; // continua igual #region - Verifica disponivel mensal nas parcelas - T_Parcelas parc = new T_Parcelas(this); string myId = cart.get_identity(); if (cart.get_st_titularidade() != "01") { cart.select_rows_tudo(cart.get_st_empresa(), cart.get_st_matricula(), "01"); cart.fetch(); } vr_dispMes = cart.get_int_vr_limiteMensal() + cart.get_int_vr_extraCota(); vr_dispTot = cart.get_int_vr_limiteTotal() + cart.get_int_vr_extraCota(); vr_valor = Convert.ToInt64(input_cont_pe.get_vr_valor()); if (cart.get_tg_tipoCartao() != TipoCartao.presente) { new ApplicationUtil().GetSaldoDisponivel(ref cart, ref vr_dispMes, ref vr_dispTot); int tmp_nu_parc = Convert.ToInt32(input_cont_pe.get_nu_parcelas()); if (tmp_nu_parc > 1) { if (vr_valor > vr_dispTot) { output_st_msg = "limite excedido"; var_codResp = "2727"; SQL_LOGGING_ENABLE = true; return(false); } LOG_Transacoes ltr = new LOG_Transacoes(this); T_Parcelas parcTot = new T_Parcelas(this); string tmp = input_cont_pe.get_st_valores(); ArrayList lstCartoes = new ArrayList(); T_Cartao c_t = new T_Cartao(this); c_t.select_rows_empresa_matricula(cart.get_st_empresa(), cart.get_st_matricula()); while (c_t.fetch()) { lstCartoes.Add(c_t.get_identity()); } for (int t = 1, index_pos = 0; t <= tmp_nu_parc; ++t) { long valor_unit_parc = Convert.ToInt64(tmp.Substring(index_pos, 12)); index_pos += 12; if (valor_unit_parc > cart.get_int_vr_limiteMensal()) { output_st_msg = "limite excedido"; var_codResp = "2727"; SQL_LOGGING_ENABLE = true; return(false); } long dispMesParc = cart.get_int_vr_limiteMensal(); // Verifica disponivel mensal nas parcelas if (parcTot.select_rows_cartao_mensal(ref lstCartoes, t.ToString())) // este mês { while (parcTot.fetch()) { if (ltr.selectIdentity(parcTot.get_fk_log_transacoes())) // busca transação { if (ltr.get_tg_confirmada() == TipoConfirmacao.Confirmada || ltr.get_tg_confirmada() == TipoConfirmacao.Pendente) { dispMesParc -= parcTot.get_int_vr_valor(); } } } } if (valor_unit_parc > dispMesParc) { output_st_msg = "limite excedido"; var_codResp = "2727"; SQL_LOGGING_ENABLE = true; return(false); } } } else { if (vr_valor > vr_dispMes || vr_valor > vr_dispTot) { output_st_msg = "limite excedido"; var_codResp = "2727"; SQL_LOGGING_ENABLE = true; return(false); } } } else { if (vr_valor > cart.get_int_vr_limiteTotal()) { output_st_msg = "limite excedido"; var_codResp = "2727"; SQL_LOGGING_ENABLE = true; return(false); } } if (myId != cart.get_identity()) { // restaurar cartão dep cart.selectIdentity(myId); } #endregion SQL_LOGGING_ENABLE = true; /// USER [ authenticate ] END Registry("authenticate done exec_pos_vendaEmpresarialSITEF "); return(true); }