private bool AddAlbaran()
        {
            if (_entity.OidSerie == 0)
            {
                PgMng.ShowInfoException(Resources.Messages.NO_SERIE_SELECTED);
                return(false);
            }

            OutputDeliveryList list = null;

            if (!_entity.AlbaranContado)
            {
                if (_entity.OidCliente != 0)
                {
                    list = OutputDeliveryList.GetNoFacturados(true, _entity.OidCliente, _entity.OidSerie, (_entity.Rectificativa ? ETipoFactura.Rectificativa : ETipoFactura.Ordinaria));
                }
                else
                {
                    list = OutputDeliveryList.GetNoFacturados(true, 0, _entity.OidSerie, (_entity.Rectificativa ? ETipoFactura.Rectificativa : ETipoFactura.Ordinaria));
                }
            }
            else
            {
                list = OutputDeliveryList.GetNoFacturadosAgrupados(_entity.OidSerie, true);
            }

            //Quitamos de la lista los ya añadidos
            List <OutputDeliveryInfo> lista = new List <OutputDeliveryInfo>();

            foreach (OutputDeliveryInfo item in list)
            {
                if (_entity.AlbaranFacturas.GetItemByAlbaran(item.Oid) == null)
                {
                    lista.Add(item);
                }
            }

            OutputDeliveryList lista_completa = OutputDeliveryList.GetListByCliente(true, _entity.OidCliente);

            //Añadimos a lista los eliminados
            foreach (AlbaranFactura item in _albaranes_factura)
            {
                if (_entity.AlbaranFacturas.GetItemByAlbaran(item.OidAlbaran) == null)
                {
                    lista.Add(lista_completa.GetItem(item.OidAlbaran));
                }
            }

            DeliverySelectForm form = new DeliverySelectForm(this, ETipoEntidad.Cliente, OutputDeliveryList.GetList(lista));

            form.ShowDialog(this);
            if (form.DialogResult == DialogResult.OK)
            {
                _results = form.Selected as List <OutputDeliveryInfo>;

                if (_entity.Rectificativa && (_results.Count > 1))
                {
                    PgMng.ShowInfoException("No es posible asignar varios albaranes a una factura rectificativa.");
                    return(false);
                }

                foreach (OutputDeliveryInfo item in _results)
                {
                    if (item.OidHolder != _results[0].OidHolder)
                    {
                        PgMng.ShowInfoException("No es posible asignar albaranes de clientes distintos a una misma Factura.");
                        return(false);
                    }
                }

                _back_job = BackJob.AddAlbaran;
                //PgMng.StartBackJob(this);

                DoAddAlbaran(null);

                if (Result == BGResult.OK)
                {
                    Serie_BT.Enabled = false;
                    Datos.ResetBindings(false);
                }
            }

            if ((_entity.AlbaranContado) && (_entity.Conceptos.Count < 0))
            {
                Agrupada_CkB.Enabled = false;
            }

            return(false);
        }
        public override void UpdateList()
        {
            switch (_current_action)
            {
            case molAction.Add:
            case molAction.Copy:
                if (_entity == null)
                {
                    return;
                }
                if (List.GetItem(_entity.Oid) != null)
                {
                    return;
                }
                List.AddItem(_entity.GetInfo(false));
                if (FilterType == IFilterType.Filter)
                {
                    OutputDeliveryList listA = OutputDeliveryList.GetList(_filter_results);
                    listA.AddItem(_entity.GetInfo(false));
                    _filter_results = listA.GetSortedList();
                }
                break;

            case molAction.CustomAction1:
            case molAction.CustomAction2:
            case molAction.Edit:
            case molAction.Lock:
            case molAction.Unlock:

                if (_selected != null)
                {
                    List <OutputDeliveryInfo> entities = (List <OutputDeliveryInfo>)_selected;
                    foreach (OutputDeliveryInfo item in entities)
                    {
                        List.GetItem(item.Oid).CopyFrom(item);
                        if (FilterType == IFilterType.Filter)
                        {
                            OutputDeliveryList list   = OutputDeliveryList.GetList(_filter_results);
                            OutputDeliveryInfo entity = list.GetItem(item.Oid);
                            if (entity != null)
                            {
                                entity.CopyFrom(item);
                            }
                            _filter_results = list.GetSortedList();
                        }
                    }
                }

                if (_entity == null)
                {
                    return;
                }
                ActiveItem.CopyFrom(_entity);

                break;

            case molAction.Delete:
                if (ActiveItem == null)
                {
                    return;
                }
                List.RemoveItem(ActiveOID);
                if (FilterType == IFilterType.Filter)
                {
                    OutputDeliveryList listD = OutputDeliveryList.GetList(_filter_results);
                    listD.RemoveItem(ActiveOID);
                    _filter_results = listD.GetSortedList();
                }
                break;
            }

            RefreshSources();
            if (_entity != null)
            {
                Select(_entity.Oid);
            }
            _entity = null;
        }