Exemplo n.º 1
0
 /// <summary>
 /// Texto impresso no rodape do relatório
 /// </summary>
 public static string TextoRodapeRelatorio(string nomeFuncionario, bool incluirData)
 {
     return
         (string.Format("WebGlass v{0} - Relatório impresso por {1}{2}",
                        ObtemVersao(), BibliotecaTexto.GetTwoFirstNames(nomeFuncionario),
                        incluirData ? string.Format(" em {0}", DateTime.Now.ToString("dd/MM/yyyy HH:mm")) : string.Empty));
 }
Exemplo n.º 2
0
        /// <summary>
        /// Retorna os funcionários para um determinado filtro.
        /// </summary>
        /// <param name="tipo"></param>
        /// <param name="dataIni"></param>
        /// <param name="dataFim"></param>
        /// <returns></returns>
        public KeyValuePair <uint, string>[] GetFuncionarios(string tipo, string dataIni, string dataFim, int tabela, string campo)
        {
            if (String.IsNullOrEmpty(tipo))
            {
                return new KeyValuePair <uint, string>[] { new KeyValuePair <uint, string>(0, "Todos (selecione um Tipo)") }
            }
            ;

            DadosFiltro <uint, string>[] filtros = GetFiltro <uint, string>("f.idFunc", "f.nome", tipo, dataIni, dataFim,
                                                                            tabela, campo, 0, true, false);

            List <KeyValuePair <uint, string> > retorno = new List <KeyValuePair <uint, string> >();

            foreach (DadosFiltro <uint, string> f in filtros)
            {
                retorno.Add(new KeyValuePair <uint, string>(f.Valor, BibliotecaTexto.GetTwoFirstNames(f.Descricao)));
            }

            retorno.Sort(new Comparison <KeyValuePair <uint, string> >(
                             delegate(KeyValuePair <uint, string> x, KeyValuePair <uint, string> y)
            {
                return(x.Key > 0 ? x.Value.CompareTo(y.Value) : x.Key.CompareTo(y.Key));
            }
                             ));

            return(retorno.ToArray());
        }
Exemplo n.º 3
0
        /// <summary>
        /// Envia SMS de pedido pronto
        /// </summary>
        public static void EnviaSMSPedidoPronto(GDASession session, uint idPedido)
        {
            bool exibirM2 = PedidoConfig.EnviarTotM2SMSPedidoPronto;

            uint idCli = PedidoDAO.Instance.ObtemIdCliente(session, idPedido);

            // Verifica se o cliente não recebe SMS
            if (ClienteDAO.Instance.NaoRecebeSMS(session, idCli))
            {
                return;
            }

            // Se o sms já tiver sido enviado, ignora.
            if (FilaSmsDAO.Instance.MensagemJaEnviada(session, "nosso numero " + idPedido))
            {
                return;
            }

            // Se for pedido importado de outro sistema, envia o SMS para o cliente original, ou seja, o cliente da empresa que exportou
            // o pedido para esta empresa, caso contrário, envia para o cliente deste pedido mesmo.
            var celCliente = !PedidoDAO.Instance.IsPedidoImportado(session, idPedido) ? ClienteDAO.Instance.ObtemCelEnvioSMS(session, idCli) : PedidoDAO.Instance.ObtemCelCliExterno(session, idPedido);

            if (String.IsNullOrEmpty(celCliente))
            {
                throw new Exception("O número do celular do cliente não foi informado.");
            }

            while (celCliente.Contains(" "))
            {
                celCliente = celCliente.Replace(" ", "");
            }

            celCliente = celCliente.Replace("(", "").Replace(")", "").Replace("-", "");

            // Deve considerar que em São Paulo são 9 dígitos fora o DDD
            if (celCliente.Length < 10 || celCliente.Length > 11)
            {
                throw new Exception("O número do celular do cliente informado é inválido.");
            }

            uint    idLoja      = PedidoDAO.Instance.ObtemIdLoja(session, idPedido);
            string  codCliente  = PedidoDAO.Instance.ObtemValorCampo <string>(session, "codCliente", "idPedido=" + idPedido);
            decimal totalPedido = PedidoEspelhoDAO.Instance.ObtemValorCampo <decimal>(session, "total", "idPedido=" + idPedido);
            float   totM        = PedidoEspelhoDAO.Instance.ObtemTotM2(session, idPedido);
            float   peso        = PedidoEspelhoDAO.Instance.ObtemPeso(session, idPedido);
            string  nomeLoja    = BibliotecaTexto.GetTwoFirstNames(LojaDAO.Instance.GetNome(session, idLoja));

            // Se for pedido importado, exibe o nome do cliente (loja filial) ao enviar o SMS
            if (OrdemCargaConfig.ControlarPedidosImportados && PedidoDAO.Instance.IsPedidoImportado(session, idPedido))
            {
                nomeLoja    = BibliotecaTexto.GetTwoFirstNames(ClienteDAO.Instance.GetNome(session, idCli));
                totalPedido = PedidoDAO.Instance.ObtemValorCampo <decimal>(session, "TotalPedidoExterno", "idPedido=" + idPedido);
            }

            var mensagem = TextoSMSPedidoPronto((int)idPedido, codCliente, ref nomeLoja, totalPedido, exibirM2, (decimal)totM, peso);

            EnviaSMSAsync(session, idPedido.ToString() + idCli, nomeLoja, celCliente, mensagem, false);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Inicia uma nova instância da classe <see cref="ListaDto"/>.
        /// </summary>
        /// <param name="pedidoConferencia">A model de pedido em conferência.</param>
        internal ListaDto(PedidoEspelho pedidoConferencia)
        {
            this.Id = (int)pedidoConferencia.IdPedido;
            this.PedidoGeradoParceiro = pedidoConferencia.GeradoParceiro;
            this.PedidoImportado      = pedidoConferencia.Importado;
            this.Situacao             = pedidoConferencia.DescrSituacao;
            this.Cliente = new IdNomeDto
            {
                Id   = (int)pedidoConferencia.IdCli,
                Nome = BibliotecaTexto.GetThreeFirstWords(pedidoConferencia.NomeCli),
            };

            this.NomeLoja                   = pedidoConferencia.NomeLoja;
            this.NomeConferente             = pedidoConferencia.ResponsavelConferecia;
            this.TotalPedidoComercial       = pedidoConferencia.TotalPedido;
            this.TotalPedidoConferencia     = pedidoConferencia.Total;
            this.DataCadastroConferencia    = pedidoConferencia.DataEspelho;
            this.DataFinalizacaoConferencia = pedidoConferencia.DataConf;
            this.TotalM2                            = (decimal)pedidoConferencia.TotM;
            this.QuantidadePecas                    = (int)pedidoConferencia.QtdePecas;
            this.Peso                               = (decimal)pedidoConferencia.Peso;
            this.DataEntregaPedidoComercial         = pedidoConferencia.DataEntrega;
            this.DataEntregaOriginalPedidoComercial = pedidoConferencia.DataEntregaOriginal;
            this.FastDelivery                       = pedidoConferencia.FastDelivery;
            this.DataEntregaFabrica                 = pedidoConferencia.DataFabrica;
            this.SituacaoCnc                        = new IdNomeDto
            {
                Id   = pedidoConferencia.SituacaoCnc,
                Nome = pedidoConferencia.DescrSituacaoCnc,
            };

            this.PedidoConferido = pedidoConferencia.PedidoConferido;
            this.ComprasGeradas  = !string.IsNullOrEmpty(pedidoConferencia.CompraGerada) ? pedidoConferencia.CompraGerada.Split(',').Select(f => f.StrParaInt()) : new List <int>();
            this.CorLinhaTabela  = pedidoConferencia.CorLinhaLista.ToString();

            this.Permissoes = new PermissoesDto
            {
                Editar   = pedidoConferencia.EditVisible,
                Cancelar = pedidoConferencia.CancelarVisible,
                Reabrir  = pedidoConferencia.ExibirReabrir,
                Imprimir = pedidoConferencia.Situacao != (int)PedidoEspelho.SituacaoPedido.Processando,
                ImprimirMemoriaCalculo       = pedidoConferencia.ExibirRelatorioCalculo,
                UsarControleReposicao        = pedidoConferencia.Situacao != (int)PedidoEspelho.SituacaoPedido.Processando && pedidoConferencia.UsarControleReposicao,
                AnexarArquivos               = pedidoConferencia.Situacao != (int)PedidoEspelho.SituacaoPedido.Processando,
                ImprimirProjeto              = pedidoConferencia.Situacao != (int)PedidoEspelho.SituacaoPedido.Processando,
                AssociarImagemAsPecas        = pedidoConferencia.Situacao != (int)PedidoEspelho.SituacaoPedido.Processando,
                ImprimirProdutosAComprar     = pedidoConferencia.Situacao != (int)PedidoEspelho.SituacaoPedido.Processando,
                ExibirSituacaoCnc            = pedidoConferencia.ExibirSituacaoCnc,
                ExibirSituacaoCncConferencia = pedidoConferencia.ExibirSituacaoCncConferencia,
                ExibirConferirPedido         = pedidoConferencia.ConferirPedidoVisible,
                LogAlteracoes = LogAlteracaoDAO.Instance.TemRegistro(LogAlteracao.TabelaAlteracao.PedidoEspelho, pedidoConferencia.IdPedido, null),
                PedidoImportadoPodeGerarArquivo = !pedidoConferencia.Importado || pedidoConferencia.PedidoConferido,
            };
        }
Exemplo n.º 5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Ajax.Utility.RegisterTypeForAjax(typeof(Glass.UI.Web.Cadastros.CadMensagem));

            var funcionarioFluxo = ServiceLocator.Current.GetInstance <Glass.Global.Negocios.IFuncionarioFluxo>();

            if (!Config.PossuiPermissao(Config.FuncaoMenuCadastro.PermitirEnvioMensagemInterna))
            {
                Response.Redirect("../WebGlass/Main.aspx");
                return;
            }

            if (!IsPostBack && !String.IsNullOrEmpty(Request["idFuncDest"]) && Request["responderTodos"] == "false")
            {
                // Recupera os dados do funcionário
                var funcionario = funcionarioFluxo.ObtemFuncionario(Request["idFuncDest"].StrParaInt());

                // Se for resposta de mensagem, inclui destinatário e assunto
                ClientScript.RegisterStartupScript(typeof(string), "scr", "setDest(" + funcionario.IdFunc +
                                                   ", '" + BibliotecaTexto.GetFirstName(funcionario.Nome) + "');", true);

                txtAssunto.Text = "RES: " + Request["assunto"];

                txtMensagem.Focus();
            }

            if (!IsPostBack && Request["responderTodos"] == "true")
            {
                var trocador = 0;
                var idsFunc  = Request["idFuncDest"].Split(',').Select(f => int.TryParse(f, out trocador)).Select(f => trocador);

                var funcionarios = funcionarioFluxo.ObtemFuncionario(idsFunc);

                var func = string.Empty;

                foreach (var funcionario in funcionarios)
                {
                    // Se for resposta de mensagem, inclui destinatário e assunto
                    func += "setDest(" + funcionario.Id + ", '" + BibliotecaTexto.GetFirstName(funcionario.Name) + "');";
                }

                ClientScript.RegisterStartupScript(typeof(string), "scr", func, true);

                txtAssunto.Text = "RES: " + Request["assunto"];

                txtMensagem.Focus();
            }
        }
Exemplo n.º 6
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Ajax.Utility.RegisterTypeForAjax(typeof(Glass.UI.Web.Cadastros.CadMensagemParceiro));

            if (!IsPostBack && !String.IsNullOrEmpty(Request["idCliDest"]))
            {
                var clienteFluxo = ServiceLocator.Current
                                   .GetInstance <Glass.Global.Negocios.IClienteFluxo>();
                var cliente = clienteFluxo.ObtemCliente(Request["idCliDest"].StrParaInt());

                // Se for resposta de mensagem, inclui destinatário e assunto
                ClientScript.RegisterStartupScript(typeof(string), "scr", "setDest(" + cliente.IdCli +
                                                   ", '" + BibliotecaTexto.GetFirstName(cliente.Nome) + "');", true);

                txtAssunto.Text = "RES: " + Request["assunto"];

                txtMensagem.Focus();
            }
        }
Exemplo n.º 7
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Ajax.Utility.RegisterTypeForAjax(typeof(WebGlassParceiros.CadMensagemParceiro));

            if (!IsPostBack && !String.IsNullOrEmpty(Request["idFuncDest"]))
            {
                var funcionarioFluxo = ServiceLocator.Current.GetInstance <Glass.Global.Negocios.IFuncionarioFluxo>();
                // Recupera os dados do funcionário
                var funcionario = funcionarioFluxo.ObtemFuncionario(Request["idFuncDest"].StrParaInt());

                // Se for resposta de mensagem, inclui destinatário e assunto
                ClientScript.RegisterStartupScript(typeof(string), "scr", "setDest(" + funcionario.IdFunc +
                                                   ", '" + BibliotecaTexto.GetFirstName(funcionario.Nome) + "');", true);

                txtAssunto.Text = "RES: " + Request["assunto"];

                txtMensagem.Focus();
            }
        }
Exemplo n.º 8
0
        public Equipe[] GetOrdered()
        {
            string sql = "Select * From equipe Where situacao=" + (int)Equipe.SituacaoEnum.Ativa + " Order By nome";

            var lstEquipe = objPersistence.LoadData(sql).ToList();

            foreach (Equipe e in lstEquipe)
            {
                string nomeEquipe = e.Nome + ":";

                var lstFunc = FuncEquipeDAO.Instance.GetByEquipe(e.IdEquipe);

                foreach (FuncEquipe f in lstFunc)
                {
                    nomeEquipe += " " + BibliotecaTexto.GetFirstName(f.NomeFunc) + ",";
                }

                e.NomeEstendido = nomeEquipe.TrimEnd(',');
            }

            return(lstEquipe.ToArray());
        }
Exemplo n.º 9
0
        /// <summary>
        /// Busca as equipes que são do tipo do usuário logado. Por exemplo, se o usuário logado
        /// for supervisor de colocação temperado, busca apenas equipes de temperado.
        /// </summary>
        /// <returns></returns>
        public Equipe[] GetByTipo()
        {
            string sql = "Select * From equipe Where Situacao=" + (int)Equipe.SituacaoEnum.Ativa;

            LoginUsuario loginUsuario = UserInfo.GetUserInfo;

            bool instComum = Config.PossuiPermissao(Config.FuncaoMenuInstalacao.ControleInstalacaoComum);
            bool instTemp  = Config.PossuiPermissao(Config.FuncaoMenuInstalacao.ControleInstalacaoTemperado);

            if (instComum && !instTemp)
            {
                sql += " And Tipo=" + (int)Equipe.TipoEquipeEnum.ColocacaoComum;
            }
            else if (instTemp && !instComum)
            {
                sql += " And Tipo=" + (int)Equipe.TipoEquipeEnum.ColocacaoTemperado;
            }

            var lstEquipe = objPersistence.LoadData(sql + " Order By nome").ToList();

            foreach (Equipe e in lstEquipe)
            {
                string nomeEquipe = e.Nome + ":";

                var lstFunc = FuncEquipeDAO.Instance.GetByEquipe(e.IdEquipe);

                foreach (FuncEquipe f in lstFunc)
                {
                    nomeEquipe += " " + BibliotecaTexto.GetFirstName(f.NomeFunc) + ",";
                }

                e.NomeEstendido = nomeEquipe.TrimEnd(',');
            }

            return(lstEquipe.ToArray());
        }
Exemplo n.º 10
0
        //private GraficoVendasDAO() { }

        /// <summary>
        ///
        /// </summary>
        /// <param name="idLoja"></param>
        /// <param name="idVendedor"></param>
        /// <param name="dataIni"></param>
        /// <param name="dataFim"></param>
        /// <param name="agrupar"></param>
        /// <param name="series">Se verdadeiro, busca apenas séries (do gráfico), senão busca todos os dados</param>
        /// <returns></returns>
        public GraficoVendas[] GetVendas(uint idLoja, int tipoFunc, uint idVendedor, uint idCli, string nomeCliente,
                                         string dataIni, string dataFim, int agrupar, bool series)
        {
            string data = PedidoConfig.LiberarPedido ? "DataLiberacao" : "DataConf";

            bool   temFiltro;
            string filtroAdicional;

            var login                   = UserInfo.GetUserInfo;
            var cliente                 = login.IsCliente;
            var administrador           = login.IsAdministrador;
            var emitirGarantia          = Config.PossuiPermissao(Config.FuncaoMenuPedido.EmitirPedidoGarantia);
            var emitirReposicao         = Config.PossuiPermissao(Config.FuncaoMenuPedido.EmitirPedidoReposicao);
            var emitirPedidoFuncionario = Config.PossuiPermissao(Config.FuncaoMenuPedido.EmitirPedidoFuncionario);

            string sql = PedidoDAO.Instance.SqlRptSit(0, "", 0, null, null, idCli.ToString(), nomeCliente, 0, (idLoja > 0 ? idLoja.ToString() : null),
                                                      (int)Pedido.SituacaoPedido.Confirmado + "," + (int)Pedido.SituacaoPedido.LiberadoParcialmente, dataIni, dataFim, null,
                                                      null, null, null, 0, 0, null, 0, 0, 0, null, null, 0, null, null, false, false, false, null, null, 0, null, null, 0, 0, null, null,
                                                      null, null, false, 0, 0, true, false, false, true, out temFiltro, out filtroAdicional, 0, null, 0, true, 0, null,
                                                      cliente, administrador, emitirGarantia, emitirReposicao, emitirPedidoFuncionario).Replace("?filtroAdicional?", filtroAdicional);

            string criterio = String.Empty;

            sql = @"
                Select p.idLoja, p.idFunc" + (tipoFunc == 0 ? "" : "Cliente") + @" as idFunc, cast(Sum(p.Total) as decimal(12,2)) as TotalVenda, 
                    NomeFunc" + (tipoFunc == 0 ? "" : "Cliente") + " as NomeVendedor, NomeLoja, (Right(Concat('0', Cast(Month(p." + data +
                  ") as char), '/', Cast(Year(p." + data + @") as char)), 7)) as DataVenda, p.idCli as idCliente, NomeCliente, '$$$' as Criterio
                From (" + sql + @") as p
                Where 1";

            if (idLoja > 0)
            {
                criterio += "Loja: " + LojaDAO.Instance.GetNome(idLoja) + "    ";
            }

            if (idVendedor > 0)
            {
                sql      += " And p.idFunc" + (tipoFunc == 0 ? "" : "Cliente") + "=" + idVendedor;
                criterio += (tipoFunc == 0 ? "Emissor" : "Vendedor") + ": " + BibliotecaTexto.GetTwoFirstNames(FuncionarioDAO.Instance.GetNome(idVendedor)) + "    ";
            }

            if (idCli > 0)
            {
                criterio += "Cliente: " + ClienteDAO.Instance.GetNome(idCli) + "    ";
            }
            else if (!String.IsNullOrEmpty(nomeCliente))
            {
                criterio += "Cliente: " + nomeCliente + "    ";
            }

            if (!String.IsNullOrEmpty(dataIni))
            {
                criterio += "Data Início: " + dataIni + "    ";
            }

            if (!String.IsNullOrEmpty(dataFim))
            {
                criterio += "Data Fim: " + dataFim + "    ";
            }

            // Agrupar por loja
            if (agrupar == 1)
            {
                sql += " Group By p.idLoja";

                if (!series)
                {
                    sql += ", (Right(Concat('0', Cast(Month(p." + data + ") as char), '/', Cast(Year(p." + data + ") as char)), 7))";
                }

                sql += " Order By NomeLoja";
            }
            // Agrupar por vendedor
            else if (agrupar == 2)
            {
                sql += " Group By p.idFunc" + (tipoFunc == 0 ? "" : "Cliente");

                if (!series)
                {
                    sql += ", (Right(Concat('0', Cast(Month(p." + data + ") as char), '/', Cast(Year(p." + data + ") as char)), 7))";
                }

                sql += " Having sum(p.Total) > 500";

                sql += " Order By NomeFunc" + (tipoFunc == 0 ? "" : "Cliente");
            }
            else
            // Nenhum
            {
                if (!series)
                {
                    sql += " Group By (Right(Concat('0', Cast(Month(p." + data + ") as char), '/', Cast(Year(p." + data + ") as char)), 7))";
                }
            }


            return(objPersistence.LoadData(sql.Replace("$$$", criterio), GetParams(dataIni, dataFim, nomeCliente)).ToList().ToArray());
        }
Exemplo n.º 11
0
        //private GraficoProdutosDAO() { }

        /// <summary>
        /// Retorna os dados para o gráfico de produtos mais vendidos
        /// </summary>
        public GraficoProdutos[] GetMaisVendidos(uint idLoja, uint idVendedor, int idCliente, string nomeCliente, uint idGrupoProd,
                                                 uint idSubgrupoProd, int quantidade, int tipo, string dataIni, string dataFim, string codInternoMP, string descrMP, bool apenasMP)
        {
            var tipoCalcM2 = (int)TipoCalculoGrupoProd.M2 + "," + (int)TipoCalculoGrupoProd.M2Direto + "," +
                             (int)TipoCalculoGrupoProd.Perimetro + "," + (int)TipoCalculoGrupoProd.QtdM2;

            var qtde = "if(tipoCalc in (" + tipoCalcM2 + @"), sum(totalM2), sum(totalQtdeLong))";

            var campos = @"p.idProd, p.descricao as DescrProduto, p.idFunc, cast(Sum(p.TotalVend) as decimal(12,2)) as TotalVenda,
                (Right(Concat('0', Cast(Month(dataFiltro) as char), '/', Cast(Year(dataFiltro) as char)), 7)) as DataVenda,
                '$$$' as Criterio, (" + qtde + ") as totalQtde, cast(" + tipo + " as signed) as tipo";

            var criterio = string.Empty;
            var lstParam = new List <GDAParameter>();

            // Se for para buscar apenas matéria-prima busca apenas produtos que são matéria-prima (ignora codInternoMP e descrMP)
            // Senão busca por produtos que tenham como matéria-prima o produto indicado
            var tipoBuscaMP = apenasMP ? ProdutoDAO.TipoBuscaMateriaPrima.ApenasProdutoMateriaPrima :
                              ProdutoDAO.TipoBuscaMateriaPrima.ApenasMateriaPrima;

            var sql = @"
                Select " + campos + @"
                From (" + ProdutoDAO.Instance.SqlVendasProd((uint)idCliente, nomeCliente, null, idLoja.ToString(), idGrupoProd.ToString(), idSubgrupoProd.ToString(), codInternoMP,
                                                            descrMP, tipoBuscaMP, dataIni, dataFim, null, null, null, null, ((int)Pedido.SituacaoPedido.Confirmado).ToString(), null, null, null,
                                                            idVendedor, 0, 0, 0, 0, false, false, false, false, false, 0, 0, null, null, ref lstParam, true) + @") as p
                Where 1";

            if (idLoja > 0)
            {
                criterio += "Loja: " + LojaDAO.Instance.GetNome(idLoja) + "    ";
            }

            if (idVendedor > 0)
            {
                criterio += "Vendedor: " + BibliotecaTexto.GetTwoFirstNames(FuncionarioDAO.Instance.GetNome(idVendedor)) + "    ";
            }

            if (idCliente > 0 || !string.IsNullOrEmpty(nomeCliente))
            {
                criterio += string.Format("Cliente: {0}    ", idCliente == 0 ? nomeCliente : ClienteDAO.Instance.GetNome((uint)idCliente));
            }

            if (idGrupoProd > 0)
            {
                criterio += "Grupo: " + GrupoProdDAO.Instance.GetDescricao((int)idGrupoProd) + "    ";
            }

            if (idSubgrupoProd > 0)
            {
                criterio += "Subgrupo: " + SubgrupoProdDAO.Instance.GetDescricao((int)idSubgrupoProd) + "    ";
            }

            if (!String.IsNullOrEmpty(dataIni))
            {
                criterio += "Data Início: " + dataIni + "    ";
            }

            if (!String.IsNullOrEmpty(dataFim))
            {
                criterio += "Data Fim: " + dataFim + "    ";
            }

            var campoTipo = tipo == 1 ? "totalQtde" : "totalVenda";

            sql += " group by idProd order by " + campoTipo + " desc limit " + quantidade;

            var lista = new List <GraficoProdutos>();

            if (lstParam != null)
            {
                lista = objPersistence.LoadData(sql.Replace("$$$", criterio), lstParam.ToArray());
            }
            else
            {
                lista = objPersistence.LoadData(sql.Replace("$$$", criterio));
            }

            return(lista.ToArray());
        }
Exemplo n.º 12
0
 /// <summary>
 /// Texto impresso no rodape do relatório
 /// </summary>
 /// <param name="nomeFuncionario"> nome do funcionário que imprimiu o relatório </param>
 /// <returns></returns>
 public static string TextoRodapeRelatorio(string nomeFuncionario)
 {
     return("WebGlass v" + Glass.Configuracoes.Geral.ObtemVersao() + " - Relatório impresso por " +
            BibliotecaTexto.GetTwoFirstNames(nomeFuncionario) + " em " +
            DateTime.Now.ToString("dd/MM/yyyy HH:mm"));
 }
Exemplo n.º 13
0
        //private GraficoOrcamentosDAO() { }

        /// <summary>
        ///
        /// </summary>
        /// <param name="idLoja"></param>
        /// <param name="idVendedor"></param>
        /// <param name="dataIni"></param>
        /// <param name="dataFim"></param>
        /// <param name="agrupar"></param>
        /// <param name="series">Se verdadeiro, busca apenas séries (do gráfico), senão busca todos os dados</param>
        /// <returns></returns>
        public IList <GraficoOrcamentos> GetOrcamentos(uint idLoja, uint idVendedor, IEnumerable <int> situacao, string dataIni, string dataFim, int agrupar, bool series)
        {
            string data = agrupar != 3 ? "DataCad" : "DataSituacao";

            string campos = @"o.idLoja, o.idFunc, cast(Sum(o.Total) as decimal(12,2)) as TotalVenda, f.Nome as NomeVendedor, coalesce(l.nomeFantasia, l.razaoSocial) as NomeLoja, 
                (Right(Concat('0', Cast(Month(o." + data + ") as char), '/', Cast(Year(o." + data + @") as char)), 7)) as DataVenda, 
                o.situacao, '$$$' as Criterio";

            string criterio = String.Empty;

            string sql = @"
                Select " + campos + @" 
                From orcamento o
                    left join funcionario f On (o.idFunc=f.idFunc)
                    left join loja l on (o.idLoja=l.idLoja)
                Where 1";

            if (idLoja > 0)
            {
                sql      += " And o.IdLoja=" + idLoja;
                criterio += "Loja: " + LojaDAO.Instance.GetNome(idLoja) + "    ";
            }

            if (idVendedor > 0)
            {
                sql      += " And o.idFunc=" + idVendedor;
                criterio += "Vendedor: " + BibliotecaTexto.GetTwoFirstNames(FuncionarioDAO.Instance.GetNome(idVendedor)) + "    ";
            }

            if (situacao != null && situacao.Count() > 0 && situacao.ToList()[0] != 0)
            {
                sql += string.Format(" And o.Situacao IN ({0})", string.Join(",", situacao));

                criterio += "Situação: " + string.Join(",", situacao.Select(f => Orcamento.GetDescrSituacao(f)).ToList());
            }

            if (!String.IsNullOrEmpty(dataIni))
            {
                sql      += " And o." + data + ">=?dataIni";
                criterio += "Data Início: " + dataIni + "    ";
            }

            if (!String.IsNullOrEmpty(dataFim))
            {
                sql      += " And o." + data + "<=?dataFim";
                criterio += "Data Fim: " + dataFim + "    ";
            }

            // Agrupar por loja
            if (agrupar == 1)
            {
                sql += " and o.idLoja is not null Group By o.idLoja";

                if (!series)
                {
                    sql += ", (Right(Concat('0', Cast(Month(o." + data + ") as char), '/', Cast(Year(o." + data + ") as char)), 7))";
                }

                sql += " Order By coalesce(l.Nomefantasia, l.razaoSocial)";
            }
            // Agrupar por vendedor
            else if (agrupar == 2)
            {
                sql += " and o.idFunc is not null Group By o.idFunc";

                if (!series)
                {
                    sql += ", (Right(Concat('0', Cast(Month(o." + data + ") as char), '/', Cast(Year(o." + data + ") as char)), 7))";
                }

                sql += " Having sum(o.Total) > 500";

                sql += " Order By f.Nome";
            }
            // Agrupar por situação
            else if (agrupar == 3)
            {
                sql += " and o.situacao is not null Group By o.situacao";

                if (!series)
                {
                    sql += ", (Right(Concat('0', Cast(Month(o." + data + ") as char), '/', Cast(Year(o." + data + ") as char)), 7))";
                }

                sql += " Order By o.situacao";
            }
            else
            // Nenhum
            {
                if (!series)
                {
                    sql += " Group By (Right(Concat('0', Cast(Month(o." + data + ") as char), '/', Cast(Year(o." + data + ") as char)), 7))";
                }
            }

            return(objPersistence.LoadData(sql.Replace("$$$", criterio), GetParams(dataIni, dataFim)).ToList());
        }
Exemplo n.º 14
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Ajax.Utility.RegisterTypeForAjax(typeof(Glass.UI.Web.Cadastros.CadConfirmarPedido));
            Ajax.Utility.RegisterTypeForAjax(typeof(MetodosAjax));

            hdfDataTela.Value = DateTime.Now.ToString();

            if (!IsPostBack && Request["idPedido"] != null)
            {
                txtNumPedido.Text = Request["idPedido"];
                uint idPedido = Glass.Conversoes.StrParaUint(Request["idPedido"]);

                // Se o pedido não existir
                if (!PedidoDAO.Instance.PedidoExists(idPedido))
                {
                    grdProdutos.Visible = false;
                }
                else
                {
                    // Busca o pedido
                    Glass.Data.Model.Pedido pedido = PedidoDAO.Instance.GetElementByPrimaryKey(idPedido);

                    // Se o pedido já tiver sido cancelado, esconde os produtos
                    grdProdutos.Visible = pedido.Situacao != Glass.Data.Model.Pedido.SituacaoPedido.Cancelado;

                    if (pedido.Situacao == Glass.Data.Model.Pedido.SituacaoPedido.Ativo)
                    {
                        lblViewConfirm.Text += "Pedido está ativo. Só é possível confirmar pedidos conferidos.";
                        imgImprimir.Visible  = false;
                    }

                    // Se o pedido estiver confirmado, mostra quem confirmou e quando
                    if (pedido.Situacao == Glass.Data.Model.Pedido.SituacaoPedido.Confirmado)
                    {
                        lblViewConfirm.Text += "Pedido confirmado";

                        if (pedido.UsuConf != null)
                        {
                            lblViewConfirm.Text += " por " + BibliotecaTexto.GetTwoFirstNames(FuncionarioDAO.Instance.GetNome((uint)pedido.UsuConf.Value));
                        }

                        lblViewConfirm.Text += pedido.DataConf != null ? " no dia " + pedido.DataConf.Value.ToString("dd/MM/yy") + ". " : ". ";
                        imgImprimir.Visible  = true;
                    }

                    // Vendido para funcionário
                    if (pedido.VendidoFuncionario)
                    {
                        divFunc.Visible              = true;
                        divAVista.Visible            = false;
                        chkVerificarParcelas.Visible = false;
                        chkVerificarParcelas.Checked = false;
                        btnConfirmarPrazo.Visible    = false;
                        tbObra.Visible = false;

                        lblNomeFuncVenda.Text += "Funcionário comprador: " + PedidoDAO.Instance.ObtemNomeFuncVenda(idPedido);
                    }
                    // À Prazo
                    else if (pedido.TipoVenda == (int)Glass.Data.Model.Pedido.TipoVendaPedido.APrazo)
                    {
                        // Se tiver sido recebido o sinal, mostra quem recebeu
                        if (pedido.RecebeuSinal)
                        {
                            CaixaDiario caixa = CaixaDiarioDAO.Instance.GetPedidoSinal(pedido.IdPedido);
                            lblViewSinal.Text = "O sinal deste pedido no valor de " + pedido.ValorEntrada.ToString("F2") + " foi recebido por " + caixa.DescrUsuCad + " em " + caixa.DataCad.ToString("dd/MM/yy") + ".";
                        }

                        divAVista.Visible            = false;
                        chkVerificarParcelas.Checked = true;
                        btnConfirmarPrazo.Visible    = true;
                        divFunc.Visible = false;
                        tbObra.Visible  = false;
                    }
                    // À Vista
                    else if (pedido.TipoVenda == (int)Glass.Data.Model.Pedido.TipoVendaPedido.AVista)
                    {
                        decimal totalASerPago = pedido.Total;

                        #region Crédito cliente

                        decimal valorCredito = 0;
                        decimal credito      = ClienteDAO.Instance.GetCredito(pedido.IdCli);

                        valorCredito          = credito;
                        hdfValorCredito.Value = credito.ToString().Replace(',', '.');
                        hdfIdCliente.Value    = pedido.IdCli.ToString();

                        #endregion

                        divAVista.Visible            = true;
                        chkVerificarParcelas.Visible = false;
                        btnConfirmarPrazo.Visible    = false;
                        divFunc.Visible = false;
                        tbObra.Visible  = false;
                    }
                    else if (pedido.TipoVenda == (int)Glass.Data.Model.Pedido.TipoVendaPedido.Obra)
                    {
                        if (pedido.IdObra != null)
                        {
                            Obra obra = ObraDAO.Instance.GetElementByPrimaryKey(pedido.IdObra.Value);
                            lblDescrObra.Text   = obra.Descricao;
                            lblSaldoObra.Text   = obra.Saldo.ToString("C");
                            lblValorPedido.Text = pedido.Total.ToString("C");
                            hdfValorObra.Value  = (pedido.Total - obra.Saldo).ToString();
                            pagtoObra.Visible   = (pedido.Total - obra.Saldo) > 0;
                            hdfIdCliente.Value  = obra.IdCliente.ToString();
                        }

                        divAVista.Visible            = false;
                        chkVerificarParcelas.Visible = false;
                        btnConfirmarPrazo.Visible    = false;
                        divFunc.Visible = false;
                        tbObra.Visible  = true;
                    }

                    if (pedido.Situacao == Glass.Data.Model.Pedido.SituacaoPedido.Confirmado || pedido.Situacao == Glass.Data.Model.Pedido.SituacaoPedido.Ativo)
                    {
                        divAVista.Visible            = false;
                        grdProdutos.Visible          = true;
                        btnConfirmarPrazo.Visible    = false;
                        chkVerificarParcelas.Visible = false;
                        divFunc.Visible = false;
                        tbObra.Visible  = false;
                    }
                }
            }
            else if (!IsPostBack)
            {
                grdProdutos.Visible = false;
            }
        }