public FormPedido()
        {
            InitializeComponent();
            btnPrint.Visible = false;
            _pedido          = RepositorySingleton.GetInstance().PedidoAux;
            txtEstado.Text   = _pedido._StatusString;

            int lastId = PedidoRepository.GetMaxId(_pedido);

            if (lastId == 0)
            {
                lastId = 1;
            }
            else
            {
                lastId++;
            }

            txtNumero.Text       = lastId.ToString().PadLeft(6, '0');
            txtCadasterDate.Text = _pedido.CadasterDate.ToString("dd/MM/yyyy HH:mm:ss");
            AtualizaFormulario();

            btnEdit.Visible   = false;
            btnDelete.Visible = false;
        }
        private void btnSave_Click(object sender, System.EventArgs e)
        {
            DirtyFields(this, _pedido);
            DirtyFields02();
            if (_pedido.Id == 0)
            {
                PedidoRepository.Save(_pedido);
                _pedido.Id = PedidoRepository.GetMaxId(_pedido);

                if (_pedido.ItensPedido != null && _pedido.ItensPedido.Count > 0)
                {
                    foreach (var item in _pedido.ItensPedido)
                    {
                        item.IdPedido = _pedido.Id;
                        ItensPedidoRepository.Save(item);
                    }
                }

                if (_pedido.EnderecoEntrega != null)
                {
                    if (_pedido.NovoEnderecoEntrega != null)
                    {
                        _pedido.EnderecoEntrega = _pedido.NovoEnderecoEntrega;
                    }
                    _pedido.EnderecoEntrega.PedidoId = _pedido.Id;
                    EnderecoRepository.Save(_pedido.EnderecoEntrega);
                }
                else if (_pedido.NovoEnderecoEntrega != null)
                {
                    _pedido.EnderecoEntrega = _pedido.NovoEnderecoEntrega;
                }
                if (_pedido.EnderecoEntrega == null)
                {
                    var lista = grdEndereco.DataSource as BindingList <EnderecoEntrega>;
                    if (lista != null && lista.Count > 0)
                    {
                        _pedido.EnderecoEntrega = lista[0];
                    }
                }

                _pedido.EnderecoEntrega.PedidoId = _pedido.Id;
                EnderecoRepository.Save(_pedido.EnderecoEntrega);
            }
            else
            {
                //Verifica se o item é novo ou edição
                PedidoRepository.Update(_pedido);
                foreach (var item in _pedido.ItensPedido)
                {
                    if (item.Id == 0)
                    {
                        item.IdPedido = _pedido.Id;
                        PedidoItemRepository.Save(item);
                    }
                    else
                    {
                        PedidoItemRepository.Update02(item);
                    }
                }

                if (_pedido.ItensPedidoDelete != null && _pedido.ItensPedidoDelete.Count > 0)
                {
                    foreach (var item in _pedido.ItensPedidoDelete)
                    {
                        PedidoItemRepository.Delete(item);
                    }
                }

                if (_pedido.EnderecoEntrega != null)
                {
                    if (_pedido.NovoEnderecoEntrega != null)
                    {
                        int idDelete = _pedido.EnderecoEntrega.Id;
                        EnderecoRepository.Delete(_pedido.EnderecoEntrega);
                        _pedido.EnderecoEntrega = _pedido.NovoEnderecoEntrega;
                        EnderecoRepository.Save(_pedido.EnderecoEntrega);
                    }
                    else
                    {
                        EnderecoRepository.Update02(_pedido.EnderecoEntrega);
                    }
                }
            }

            this.Close();
        }