Skocz do zawartości

Błąd podczas drukowania korekty przez API.

Polecane posty

Mam taki błąd w miejscu (wydruk.Eksport)

 

When an object is returned with a NoTracking merge option, Load can only be called when the EntityCollection or EntityReference does not contain objects.

 

Kod działa dla Faktur i zamówień...

 

IKorektyDokumentowSprzedazy korekty = ((Uchwyt)Conn).PodajObiektTypu<IKorektyDokumentowSprzedazy>();
Dokument dokument = korekty.Dane.Wszystkie().Where(a => a.Id == input.DokId).FirstOrDefault();

xTyp = TypWzorcaWydruku.KorektaFakturySprzedazy;

using (IWydruk wydruk = manager.Utworz(xTyp))
    {
        wydruk.ObiektDoWydruku = dokument;

        var wzorce = wydruk.ParametryDrukowania.DostepneWzorce.ToList();
        var wzorzecDefault = wzorce.Where(a => a.Domyslny == true).FirstOrDefault();
        if (wzorzecDefault != null)
        {
            wydruk.ParametryDrukowania.WybranyWzorzec = wzorzecDefault;
        }
        else
        {
            wydruk.ParametryDrukowania.WybranyWzorzec = wzorce.FirstOrDefault();
        }     
  
  
        wydruk.ParametryDrukowania.FormatEksportu = ".pdf";
        wydruk.ParametryDrukowania.NazwaDokumentuUzytkownika = input.DokId.ToString();
        wydruk.ParametryDrukowania.SciezkaEksportu = tempPath;
        wydruk.Eksport();
        var err = wydruk.PobierzListeBledow();

        if (err.Count() == 0)
        {
            zwrot.Result = true;
            zwrot.Msg = "OK";
            zwrot.ContentFile = System.IO.File.ReadAllBytes(printFile);

            if (System.IO.File.Exists(printFile))
            {
                System.IO.File.Delete(printFile);
            }
        }
        else
        {
            zwrot.Result = false;
            zwrot.Msg = string.Join(".", err);
        }
    }

 

Edytowane przez Dariusz Żukowski
Link to postu

W przypadku drukowania korekt dokumentów sprzedaży wymagane jest załadowanie obiektu biznesowego dokumentu, czyli kod powinien wyglądać mniej więcej tak:

var korekty = sfera.KorektyDokumentowSprzedazy();
var kfs = korekty.Dane.Pierwszy(x => x.NumerWewnetrzny.PelnaSygnatura == FakturaNumer);
using (var kds = korekty.Znajdz(kfs))
using (var wydruk = sfera.Wydruki().Utworz(TypWzorcaWydruku.KorektaFakturySprzedazy))
{
    // akcja wydruku
}

 

Link to postu

Generalnie mam taki sam błąd jak dam ObiektWydruku równy kfs, jak dam ObiektWydruku równy kds to wywala sie na linii ObiektDoWydruku z błędem :

 

Niepoprawny typ obiektu wejściowego.\r\nNazwa parametru: obiektWejsciowy

var kfs = korekty.Dane.Pierwszy(x => x.Id == input.DokId);
using (var kds = korekty.Znajdz(kfs))
using (var wydruk = ((Uchwyt)Conn).Wydruki().Utworz(xTyp))
{
    wydruk.ObiektDoWydruku = kds;    
}

 

Link to postu
×
×
  • Dodaj nową pozycję...