Skocz do zawartości

[SFERA] - dodanie magazynu


Zobacz rozwiązanie Rozwiązane przez Wojciech Szopiński,

Polecane posty

Witam, jak w temacie

private Magazyn AddMagazynIfNotExist(Uchwyt sfera, HospDocHeaders dok)
        {
            var magazyny = sfera.Magazyny();
            var encjaMag = magazyny.Dane.Wszystkie().Where(m=> m.Symbol == dok.Warehouse).FirstOrDefault();
           // var jedOrg = sfera.JednostkiOrganizacyjne();
            //var encjaJedOrg = jedOrg.Dane.Wszystkie().FirstOrDefault();

            if (encjaMag != null) /// Jeśli encja istnieje to ją zwraca i pomija dodawanie nowej
            {
                return encjaMag;
            }

            using (var magazyn = magazyny.Utworz())
            {
                magazyn.Dane.Symbol = dok.Warehouse;
                magazyn.Dane.Nazwa = dok.Warehouse;
                

                if (magazyn.Zapisz())
                {
                    Console.WriteLine("Poprawnie zapisano centralę.");
                }
                else
                {
                    magazyn.WypiszBledy();
                }

                return magazyn.Dane;
            }
        }

Powyższy kod zwraca błąd {Magazyn Hot_RE musi być podłączony do co najmniej jednej jednostki organizacyjnej}. Jak podłączyć taką jednostkę?

Link to postu
  • Rozwiązanie

Jednostka organizacyjna to inaczej mówiąc - oddział. Zgodnie z komunikatem magazyn musi być elementem co najmniej jednego oddziału. Typ JednostkaOrganizacyjna to klasa bazowa dla centrali, która zawsze jest jedna i jest tworzona podczas zakładania podmiotu oraz pozostałych oddziałów. Teraz w zależności od tego czy chcemy magazyn podłączyć do centrali można wykorzystać menedżer ICentrale, a jeśli do innego oddziału - menedżer IOddzialy:

var magazyny = sfera.Magazyny();
var encjaMag = magazyny.Dane.Wszystkie().Where(m=> m.Symbol == dok.Warehouse).FirstOrDefault();
ICentrale centrala = sfera.Centrale();
IOddzialy oddzialy = sfera.Oddzialy();

if (encjaMag != null) /// Jeśli encja istnieje to ją zwraca i pomija dodawanie nowej
{
	return encjaMag;
}

using (var magazyn = magazyny.Utworz())
{
	magazyn.Dane.Symbol = dok.Warehouse;
	magazyn.Dane.Nazwa = dok.Warehouse;
  	// jeśli chcemy dodać go do centrali:
  	nowy.Dane.JednostkiOrganizacyjne.Add(centrala.Dane.Wszystkie().FirstOrDefault());
	// jeśli chcemy dodać go do innego oddziału:
  	Oddzial szukany = oddzialy.Dane.Wszystkie().Where(o => o.Symbol == "SZUKANY").FirstOrDefault();
  	if (szukany != null)
    		nowy.Dane.JednostkiOrganizacyjne.Add(szukany);

	if (magazyn.Zapisz())
	{
		Console.WriteLine("Poprawnie zapisano centralę.");
	}
	else
	{
		magazyn.WypiszBledy();
	}
	return magazyn.Dane;
}

 

  • Dziękuję 1
Link to postu
×
×
  • Dodaj nową pozycję...