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