示例#1
0
        /// <summary>
        /// Verifica possíveis questões que podem dificultar
        /// o acerto correto.
        /// </summary>
        /// <param name="acerto">Acerto a ser verificado.</param>
        /// <returns>Lista de alertas.</returns>
        public static IList<Alerta> VerificarAcerto(ControleAcertoMercadorias acerto)
        {
            List<Alerta> alertas;
            DateTime dSaídaÚltAcerto, dSaídaPri, dVendaPri, dVendaÚltAcerto;
            DateTime dRetornoÚltAcerto, dRetornoPri;

            if (acerto == null)
                throw new NullReferenceException("Acerto é nulo!");

            dSaídaPri         = Saída.ObterDataPrimeiraSaídaNãoAcertada(acerto.Pessoa);
            dSaídaÚltAcerto   = Saída.ObterDataÚltimaSaídaAcertada(acerto.Pessoa);
            dVendaPri         = Venda.ObterDataPrimeiraVendaNãoAcertada(acerto.Pessoa);
            dVendaÚltAcerto   = Venda.ObterDataÚltimaVendaAcertada(acerto.Pessoa);
            dRetornoPri       = Retorno.ObterDataPrimeiroRetornoNãoAcertado(acerto.Pessoa);
            dRetornoÚltAcerto = Retorno.ObterDataÚltimoRetornoAcertado(acerto.Pessoa);

            alertas = new List<Alerta>(5);

            if (dSaídaÚltAcerto > dSaídaPri)
                alertas.Add(new Alerta(
                    acerto,
                    "Existe(m) saída(s) de mercadorias que foram acertadas posteriormente a saída(s) ainda não acertada(s)."
                    + " A última saída acertada é datada em " + dSaídaÚltAcerto.ToShortDateString()
                    + " enquanto a primeira saída não acertada é datada em " + dSaídaPri.ToShortDateString(),
                    NívelPrioridade.Alta));

            if (dVendaÚltAcerto > dVendaPri)
                alertas.Add(new Alerta(
                    acerto,
                    "Existe(m) venda(s) que foram acertadas posteriormente a venda(s) que ainda não fora(m) acertada(s)."
                    + " A última venda acertada é datada em " + dVendaÚltAcerto.ToShortDateString()
                    + " enquanto a primeira venda não acertada é datada em " + dVendaPri.ToShortDateString(),
                    NívelPrioridade.Alta));

            if (dRetornoÚltAcerto > dRetornoPri)
                alertas.Add(new Alerta(
                    acerto,
                    "Existe(m) retorno(s) de mercadorias que foram acertados posteriormente a retorno(s) ainda não acertado(s)."
                    + " O último retorno acertado é datado em " + dRetornoÚltAcerto.ToShortDateString()
                    + " enquanto o primeiro retorno não acertado é datado em " + dRetornoPri.ToShortDateString(),
                    NívelPrioridade.Alta));

            if (dVendaÚltAcerto > dSaídaPri)
                alertas.Add(new Alerta(
                    acerto,
                    "Existe(m) venda(s) que foram acertadas posteriormente ao registro de uma saída não acertada."
                    + " A última venda acertada é datada em " + dVendaÚltAcerto.ToShortDateString()
                    + " enquanto a primeira saída não acertada é datada em " + dSaídaPri.ToShortDateString(),
                    NívelPrioridade.Normal));

            if (dRetornoÚltAcerto > dSaídaPri)
                alertas.Add(new Alerta(
                    acerto,
                    "Existe(m) retorno(s) que foram acertados posteriormente ao registro de uma saída não acertada."
                    + " O último retorno acertado é datado em " + dVendaÚltAcerto.ToShortDateString()
                    + " enquanto a primeira saída não acertada é datada em " + dSaídaPri.ToShortDateString(),
                    NívelPrioridade.Normal));

            return alertas;
        }
示例#2
0
 /// <summary>
 /// Constrói o objeto de alertas, verificando
 /// no banco de dados questões que podem comprometer
 /// o acerto.
 /// </summary>
 /// <param name="acerto">Acerto a ser verificado.</param>
 /// <param name="descrição">Descrição do alerta.</param>
 /// <param name="prioridade">Prioridade do alerta.</param>
 private Alerta(ControleAcertoMercadorias acerto, string descrição,
     NívelPrioridade prioridade)
 {
     this.acerto = acerto;
     this.descrição = descrição;
     this.prioridade = prioridade;
 }
        public DataSetAcerto GerarDataSet(ControleAcertoMercadorias acerto)
        {
            DataSetAcerto ds = new DataSetAcerto();
            DataTable tabelaItens = ds.Tables["Itens"];
            DataTable tabelaInformações = ds.Tables["Informações"];

            resumido = Representante.ÉRepresentante(acerto.Pessoa);

            List<SaquinhoAcerto> coleção = acerto.ColeçãoSaquinhos;
            // Preencher itens do relacionamento
            foreach (SaquinhoAcerto s in coleção)
            {
                if (!resumido || s.QtdAcerto != 0)
                {
                    DataRow linha = tabelaItens.NewRow();
                    MapearItem(linha, s, acerto);
                    tabelaItens.Rows.Add(linha);
                }
            }

            // Preencher informações gerais
            DataRow linhaInfo = tabelaInformações.NewRow();
            MapearInformações(linhaInfo, acerto);
            tabelaInformações.Rows.Add(linhaInfo);

            return ds;
        }
 /// <summary>
 /// Mapeia um saquinho para uma linha da tabela de itens do DataSet.
 /// </summary>
 protected static void MapearItem(DataRow linha, SaquinhoAcerto s, ControleAcertoMercadorias acerto)
 {
     linha["referência"] = s.Mercadoria.Referência;
     linha["faixaGrupo"] = s.Mercadoria.Faixa + " - " + s.Mercadoria.Grupo.ToString();
     linha["índice"] = s.Índice;
     linha["peso"] = s.Mercadoria.DePeso ? s.Peso : 0.0;
     linha["descrição"] = s.Mercadoria.Descrição;
     linha["depeso"] = s.Mercadoria.DePeso;
     linha["saída"] = s.QtdSaída;
     linha["retorno"] = s.QtdRetorno;
     linha["venda"] = s.QtdVenda;
     linha["acerto"] = s.QtdAcerto;
     linha["devolução"] = s.QtdDevolvida;
 }
 public void Abrir(ControleAcertoMercadorias acerto)
 {
     this.acerto = null;
     this.Acerto = acerto;
     PreencherBandeja();
 }
        private void Recarregar()
        {
            título.Título = "Acerto de Mercadorias (cod " + this.acerto.Código.ToString() + ") de " + this.acerto.Cliente.Nome;

            ControleAcertoMercadorias acerto = new ControleAcertoMercadorias(this.acerto); 
            bandejaAcerto.Abrir(acerto);

            quadroBateu.Visible = !this.acerto.Acertado && bandejaAcerto.Acerto.Validar();
            
            opçãoLançarVendas.Enabled = !acerto.Acerto.Acertado;
            opçãoRetorno.Enabled = !acerto.Acerto.Acertado;
            quadroCorreção.Visible = !acerto.Acerto.Acertado;
            lblFórmula.Text =
                (this.acerto.FórmulaAcerto == FórmulaAcerto.Padrão) ?
                "=\nSaída - Retorno - Venda" : "=\nVenda - Devolução";
        }
        /// <summary>
        /// Mapeia informações gerais do relacionamento à linha única da tabela Informações.
        /// </summary>
        protected static void MapearInformações(DataRow linha, ControleAcertoMercadorias acerto)
        {
            // Nome do funcionário que digitou
            //linha["funcionário"] = Funcionário.FuncionárioAtual.Nome;
            linha["funcionário"] = acerto.Acerto.FuncAcerto != null ? acerto.Acerto.FuncAcerto.Nome : "N/D";
            //linha["data"] = relacionamento.Data.ToShortDateString();
            linha["código"] = acerto.Acerto.Código.ToString();
            linha["pessoa"] = acerto.Pessoa.Nome;
            linha["cotação"] = acerto.Acerto.Cotação.HasValue ? acerto.Acerto.Cotação.Value : 0;
            linha["mostrarÍndices"] = !Representante.ÉRepresentante(acerto.Pessoa);
            
            //SumárioDevolução sumário = 
            //    SumárioDevolução.ObterSumário(acerto.ColeçãoSaquinhos, acerto.Acerto.Cotação);

            linha["índiceDevolvidoPeso"] = acerto.ObterÍndiceDevolvido(true).ToString();
            linha["índiceDevolvidoPeça"] = acerto.ObterÍndiceDevolvido(false).ToString();
            
            linha["valorDevolvidoPeso"] = acerto.ObterValorDevolvido(true).ToString("C");
            linha["valorDevolvidoPeça"] = acerto.ObterValorDevolvido(false).ToString("C");
            linha["valorVendidoPeso"] = acerto.ObterValorVendido(true).ToString("C");
            linha["valorVendidoPeça"] = acerto.ObterValorVendido(false).ToString("C");
            linha["valorPagar"] = acerto.ObterValorPagar().ToString("C");
            linha["índicePagar"] = Math.Round(acerto.ObterÍndicePagar(),2);
            linha["valorDesconto"] = acerto.ObterDesconto().ToString("C");

            bool primeiro = true;

            foreach (long codSaída in acerto.CódigoSaídas)
            {
                if (!primeiro)
                    linha["saídas"] += ", ";
                else
                    primeiro = false;

                linha["saídas"] += codSaída.ToString();
            }

            primeiro = true;

            foreach (long codRetorno in acerto.CódigoRetornos)
            {
                if (!primeiro)
                    linha["retornos"] += ", ";
                else
                    primeiro = false;

                linha["retornos"] += codRetorno.ToString();
            }

            primeiro = true;

            foreach (long codVenda in acerto.CódigoVendas)
            {
                if (!primeiro)
                    linha["vendas"] += ", ";
                else
                    primeiro = false;

                linha["vendas"] += codVenda.ToString();
            }
        }
 public virtual void PrepararImpressão(ReportClass relatório, ControleAcertoMercadorias relacionamento)
 {
     relatório.SetDataSource(GerarDataSet(relacionamento));
 }