protected void DoAddPedido(BackgroundWorker bk) { Datos.RaiseListChangedEvents = false; Lines_BS.RaiseListChangedEvents = false; try { PgMng.Reset(_results.Count + 1, 1, Resources.Messages.IMPORTANDO_ALBARANES, this); //Asignamos el cliente if (_entity.OidHolder == 0) { _entity.CopyFrom(_results[0]); SetCliente(ClienteInfo.Get(_results[0].OidCliente)); } foreach (PedidoInfo item in _results) { _entity.Insert(item); _pedidos.RemoveItem(item.Oid); } PgMng.Grow(string.Empty, "Insertar el Pedido"); Result = BGResult.OK; } catch (Exception ex) { throw ex; } finally { PgMng.FillUp(); Datos.RaiseListChangedEvents = true; Lines_BS.RaiseListChangedEvents = true; #if TRACE PgMng.ShowCronos(); #endif } }
/// <summary> /// Crea los conceptos de factura asociados a un albarán /// </summary> /// <param name="source"></param> public virtual void Compact(OutputInvoice invoice) { if (this.Count == 0) { return; } OutputDelivery main_albaran = null; Cash caja = null; try { List <long> oid_list = new List <long>(); foreach (AlbaranFactura item in this) { oid_list.Add(item.OidAlbaran); } OutputDeliveryList albaranes = OutputDeliveryList.GetList(oid_list, true); main_albaran = OutputDelivery.Get(oid_list[0], true, invoice.SessionCode); foreach (AlbaranFactura af in this) { if (af.OidAlbaran == main_albaran.Oid) { continue; } OutputDeliveryInfo source = albaranes.GetItem(af.OidAlbaran); main_albaran.Merge(source); } main_albaran.Compact(); SortedBindingList <AlbaranFactura> sorted_list = this.GetSortedList("CodigoAlbaran", ListSortDirection.Ascending); OutputDeliveryInfo first_albaran = OutputDeliveryInfo.Get(sorted_list[0].OidAlbaran, ETipoEntidad.Cliente, false); main_albaran.CopyFrom(invoice); main_albaran.Codigo = first_albaran.Codigo; main_albaran.Serial = first_albaran.Serial; main_albaran.Save(); ToDelete = new List <OutputDeliveryInfo>(); for (int i = 1; i < oid_list.Count; i++) { Remove(GetItemByAlbaran(oid_list[i]).Oid); ToDelete.Add(albaranes.GetItem(oid_list[i])); } CashLine.DeleteByAlbaranList(albaranes.GetListInfo(), ModulePrincipal.GetCajaTicketsSetting()); Ticket.DeleteFromList(albaranes.GetListInfo()); //Actualizamos la caja de Tickets caja = Cash.Get(ModulePrincipal.GetCajaTicketsSetting(), true, invoice.SessionCode); caja.UpdateSaldo(); caja.SaveAsChild(); AlbaranFactura ab = GetItemByAlbaran(main_albaran.Oid); ab.CodigoAlbaran = main_albaran.Codigo; } catch (Exception ex) { throw ex; } finally { Cache.Instance.Remove(typeof(ClienteList)); Cache.Instance.Remove(typeof(ProductList)); } }