/// <summary>
 /// Constrói um itemsaida a partir de dados já adquiridos.
 /// </summary>
 public HistóricoSaídaItem(Saída saída, Entidades.Mercadoria.Mercadoria mercadoria, double quantidade, DateTime data, Entidades.Pessoa.Funcionário funcionário, double índice)
     : base(mercadoria, quantidade, data, funcionário, índice)
 {
     this.saída = saída;
 }
        /// <summary>
		/// Constrói uma coleção de ItemSaída.
		/// </summary>
		/// <param name="saída">Documento de saída original.</param>
		public HistóricoRelacionamentoSaída(Saída saída) : base(saída)
		{
            this.saída 
                = saída;
		}
 /// <summary>
 /// Remove a saída deste acerto no banco de dados.
 /// </summary>
 private void RemoverSaída(IDbCommand cmd, Saída saída)
 {
     AtualizarEntidade(cmd, saída);
 }
 /// <summary>
 /// Adiciona a saída no banco de dados.
 /// </summary>
 private void AdicionarSaída(IDbCommand cmd, Saída saída)
 {
     AtualizarEntidade(cmd, saída);
 }
 /// <summary>
 /// Ocorre ao remover uma saída.
 /// </summary>
 void AoRemoverSaída(DbComposição<Saída> composição, Saída entidade)
 {
     if (entidade.AcertoConsignado != null && entidade.AcertoConsignado.Equals(this))
         entidade.DefinirAcertoConsignado(null);
 }
        /// <summary>
        /// Ocorre ao adicionar uma saída.
        /// </summary>
        void AoAdicionarSaída(DbComposição<Saída> composição, Saída entidade)
        {
            GarantirConsistênciaAdição(entidade, composição);
            entidade.DefinirAcertoConsignado(this);

            if (!Cadastrado)
                entidade.AntesDeCadastrar += new DbManipulaçãoCancelávelHandler(AntesDeCadastrarSaída);

            entidade.AntesDeAtualizar += new DbManipulaçãoCancelávelHandler(AntesDeAtualizarRelacionamento);
        }