Skocz do zawartości

Wydruk korekty dokumentu sprzedaży

Polecane posty

Witam, 

Potrafie drukować do PDF dokumenty, sprzedaży. Niestety podobna metoda nie działa do druku korekt dokumentu sprzedaży

Program, nie zwraca błędu. Po prostu nie generuje plików. 

IKorektyDokumentowSprzedazy dokumenty = sfera.PodajObiektTypu<IKorektyDokumentowSprzedazy>();

//DokumentKDS dokument


Dokument idokument = dokumenty.Dane.Wszystkie().Where(a => a.Id == dokument.Id).FirstOrDefault();

if (idokument == null)
                throw new Exception("Brak dokumentu w bazie");

IWydruki manager = sfera.PodajObiektTypu<IWydruki>();
using (IWydruk wydruk = manager.Utworz(TypWzorcaWydruku.KorektaDokumentuSprzedazy))
{
                wydruk.ObiektDoWydruku = idokument;                
                wydruk.ParametryDrukowania.NazwaDokumentuUzytkownika = dokument.DokumentDoKsiegowania.NumerDokumentu.Replace(@"/", "_");
                wydruk.ParametryDrukowania.SciezkaEksportu = System.IO.Path.GetDirectoryName(filename);
               
                wydruk.Eksport();
}

 

Gdzie popełniam błąd?

Link to postu

Na moje w using, gdzie powinno być: KorektaFakturySprzedazy

Jak coś, mój działający kod, z wybieraniem wzorca przypisanego do klienta i wersji dokumentu, tylko, że eksport do PDF, to może coś się przyda :)

int id; id = results.id;          	
// uzyskanie dokumentu do wydruk
IKorektyDokumentowSprzedazy dokumenty = sfera.PodajObiektTypu<IKorektyDokumentowSprzedazy>(); 
DokumentKDS dokument = dokumenty.Dane.Wszystkie().Where(d => d.Id == id).Single();
if(dokument == null) { Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd H:mm:ss")+" - Wskazany do wydruku dokument nie istnieje!"); response = "{ \"error\":\"Dokument nie istnieje!\" }"; }
  {
  Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd H:mm:ss")+" - Drukowanie KFSki: "+dokument.NumerWewnetrzny.PelnaSygnatura);
  //pobranie managera drukowania
  IWydruki manager = sfera.PodajObiektTypu<IWydruki>();
  // utworzenie zadania drukowania
  using (IKorektaDokumentuSprzedazy kds = dokumenty.Znajdz(dokument))
  using (IWydruk wydruk = manager.Utworz(TypWzorcaWydruku.KorektaFakturySprzedazy))
    {
    // wskazanie obiektu do wydruku
    wydruk.ObiektDoWydruku = kds.Dane;
    using (var podmiot = sfera.PodajObiektTypu<IPodmioty>().Znajdz(dokument.Podmiot))
      {
      IOperacjePodmiotuDlaDokumentu operacje = podmiot.OperacjePodmiotuDlaDokumentu[dokument.Konfiguracja];
      wydruk.ParametryDrukowania.WybranyWzorzec = operacje.WzorzecWydrukuKorekty;
      // sposób ustawienia "kopia" na wydruku
      IWydrukParametryExtension param = (IWydrukParametryExtension)wydruk.ParametryDrukowania;
      if(results.type=="copy") ((IWydrukParametryDokument)wydruk.ParametryDrukowania).SposobWydrukuOryginalKopia = SposobWydrukuOryginalKopia.Kopia;
      if(results.type=="org") ((IWydrukParametryDokument)wydruk.ParametryDrukowania).SposobWydrukuOryginalKopia = SposobWydrukuOryginalKopia.Oryginal;
      param.ZastapPliki = true;
      // wyeksportowanie dokumentu do pliku 
      wydruk.ObiektDoWydruku = kds.Dane;
      string filename;
      if(Globals.mode=="developer") filename = "kfs"+dokument.Id+"_"+results.type+"_DEV"; else filename = "kfs"+dokument.Id+"_"+results.type;
      wydruk.ParametryDrukowania.NazwaDokumentuUzytkownika = filename;
      wydruk.ParametryDrukowania.SciezkaEksportu = @"N:\";
      wydruk.Eksport();
      Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd H:mm:ss")+" - Wydrukowano: " +wydruk.ParametryDrukowania.NazwaDokumentuUzytkownika+".pdf");                      
      response = "{ \"number\":\""+dokument.NumerWewnetrzny.PelnaSygnatura+"\", \"filename\":\""+filename+"\", \"id\":\""+dokument.Id+"\" }";
      }
    }       
  }

 

Link to postu
 IWydruki manager = sfera.PodajObiektTypu<IWydruki>();
            IKorektyDokumentowSprzedazy dokumentyK = sfera.PodajObiektTypu<IKorektyDokumentowSprzedazy>();
            using (IKorektaDokumentuSprzedazy kds = dokumentyK.Znajdz(dokument))
            using (IWydruk wydruk = manager.Utworz(TypWzorcaWydruku.KorektaFakturySprzedazy))
            {
                wydruk.ObiektDoWydruku = kds.Dane;
                using (var podmiot = sfera.PodajObiektTypu<IPodmioty>().Znajdz(dokument.Podmiot))
                {
                    IOperacjePodmiotuDlaDokumentu operacje = podmiot.OperacjePodmiotuDlaDokumentu[dokument.Konfiguracja];
                    wydruk.ParametryDrukowania.WybranyWzorzec = operacje.WzorzecWydrukuKorekty;
                    // sposób ustawienia "kopia" na wydruku                    
                    ((IWydrukParametryDokument)wydruk.ParametryDrukowania).SposobWydrukuOryginalKopia = SposobWydrukuOryginalKopia.Oryginal;
                    
                    // wyeksportowanie dokumentu do pliku 
                    wydruk.ObiektDoWydruku = kds.Dane;                    
                    wydruk.ParametryDrukowania.NazwaDokumentuUzytkownika = dokument.DokumentDoKsiegowania.NumerDokumentu.Replace(@"/", "_").Replace(" ", "");
                    wydruk.ParametryDrukowania.SciezkaEksportu = System.IO.Path.GetDirectoryName(filename);
                    wydruk.Eksport();
                    MessageBox.Show((kds.Dane ==null?"Puste":"jest") + " - Wydrukowano: " + wydruk.ParametryDrukowania.NazwaDokumentuUzytkownika + ".pdf");                    
                }
            }

Zmodyfikowałem kod. Nadal skrypt nie generuje faktur i nie wyrzuca błędów...

Link to postu

Aplikacja jest w WPF. Wcześniejsza część kodu pobiera dane z dokumentu dotyczące płatnika, kwot itp, ponad 20 pól i to zapisuje do pliku XML i tu jest obsługa błędów.. Oprócz pliku XML powinien być PDF z fakturą, plik XML z danymi dokumentu się generuje, ale PDF nie.

Jeśli sprawa dotyczy zwykłych dokumentów sprzedaży to generowane są dane PDF i XML. Problem dotyczy korekt.

 

 

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