Optima - dodawanie konta do planu kont

Zapytania SQL, widoki, Crystal, definicje filtrów, szybkich raportów, wydruków, obiekty COM .NET

Moderator: mikey

argas
Posty: 5
Rejestracja: 12 wrz 2018, 09:04
Rola: Inny
Wersja: 2018

Optima - dodawanie konta do planu kont

Post autor: argas »

Cześć,

Kolejna zagwozdka. Klient zażyczył sobie automatu do dodawania kont imiennych do planu kont w Optima.
Kombinuję, a termin jest na wczoraj.
To mój testowy kod, próbuję coś takiego:

Kod: Zaznacz cały

public void DodajKontoDoPlanuKont()
        {
            var knf = (CDNKONFIGLib.IKonfiguracja)Sesja.Login.CreateObject("CDNKonfig.Konfiguracja");
            string val = knf.get_Value("BiezOkresObr");
            int OObID = (val.Length == 0) ? 0 : Convert.ToInt32(val);


            var Kontrahenci = (CDNBase.ICollection)(Sesja.CreateObject("CDN.Kontrahenci", null));
            var kontrahent = (CDNHeal.IKontrahent)Kontrahenci["Knt_Kod='ASTEST'"];

            var konta = (ICollection)Sesja.CreateObject("CDN.Konta", null);

            var testKonto = (CDNKH.IKonto)konta["Acc_Numer = '202-300-AUS0008' AND Acc_OObID=" + OObID];

            //var rodzicKonto = (CDNKH.IKonto)konta["Acc_Numer = '202-300' AND Acc_OObID=" + OObID];
            var rodzicKonto = (CDNKH.IKonto)konta["Acc_Numer = '202-300'"];
            var czlon1konto = rodzicKonto.NumerIdx.Split('.')[0];
            var czlon2konto = rodzicKonto.NumerIdx.Split('.')[1];
            

            var konto = (CDNKH.IKonto)konta.AddNew(null);
	    konto.Poziom = 3;
            konto.Analityka = 1;
            konto.SlownikId = kontrahent.GIDNumer;
            konto.ParId = rodzicKonto.ID;
            konto.OkresId = rodzicKonto.OkresId;
            konto.Numer = string.Format("{0}-{1}", rodzicKonto.Numer, kontrahent.Akronim);
            konto.NumerIdx = string.Format("{0}.{1}.{2}", czlon1konto, czlon2konto, kontrahent.Akronim);
            konto.Nazwa = string.Format("{0}-{1}", rodzicKonto.Numer, kontrahent.Akronim);
            konto.Nazwa2 = kontrahent.Nazwa1;

            Sesja.Save();            
        }
Cały czas wywala mi błąd o zduplikowanym numerze konta: {"Nie można wstawić wiersza zduplikowanego klucza w obiekcie CDN.Konta o unikatowym indeksie AccNumer. Wartość zduplikowanego klucza to (1, 202.300)."} Jakieś wskazówki?

commits
Posty: 6
Rejestracja: 27 sty 2014, 23:02
Rola: Użytkownik CDN XL
Wersja: 8.0

Re: Optima - dodawanie konta do planu kont

Post autor: commits »

Spróbuj tak:

Kod: Zaznacz cały

	var konto = (CDNKH.IKonto)konta.AddNew(null);
            konto.SlownikId = kontrahent.GIDNumer;
            konto.ParId = rodzicKonto.ID;
            konto.OkresId = rodzicKonto.OkresId;
            konto.Numer = kontrahent.Akronim;
            konto.NumerIdx = kontrahent.Akronim;
            konto.Nazwa = string.Format("{0}-{1}", rodzicKonto.Numer, kontrahent.Akronim);
            konto.Nazwa2 = kontrahent.Nazwa1;

argas
Posty: 5
Rejestracja: 12 wrz 2018, 09:04
Rola: Inny
Wersja: 2018

Re: Optima - dodawanie konta do planu kont

Post autor: argas »

Brakowało jednego parametru:

Kod: Zaznacz cały

konto.SlownikTyp = 1;
Teraz działa.

ODPOWIEDZ