Skocz do zawartości
northwest

wFirma problem ze skryptem

Polecane posty

Witam serdecznie,

Ściągnąłem sobie skrypt ze strony wFirma.pl do fakturowania (i wysyłania faktury na maila). Mam problem z uruchomieniem go :/ gdy próbuję go uruchomić skrypt twierdzi że nie ma danych (a są podane). Wiecie może dlaczego?

 

Kod wygląda tak:


<?php
$C = new SoapClient(null, array(
   'uri' => "http://api.wfirma.pl/",
   'location' => "http://api.wfirma.pl",
   'trace' => 1,
));

$r = $C->login('demo','demo');
if ($r['status'] == 'OK') {
   $sid = $r['response'];
   // tutaj wywołanie innych metod ...
} else {
   echo "Wystąpił błąd: {$r['status']}: {$r['response']}";
}
$invoiceHeader = array( 

   'date' => '2009-01-01',         	// data wystawienia, format (YYYY-MM-DD)

   'disposaldate' => '2009-01-01', 	// data sprzedaży, format (YYYY-MM-DD)

   'paymentdate' => '2009-01-15',      // termin płatności, format (YYYY-MM-DD)

   'paymentmethod' => 'transfer',      // metoda płatności, możliwe wartości to cash, 
                                       // transfer i compensation

   'paid' => 0,                        // opcjonalna flaga 0/1 czy faktura została
                                       // opłacona w całości, 0 jest wartością domyślną

   'description' => 'Tutaj moje uwagi', // opcjonalne uwagi na fakturze, (max.320 znaków)

   'auto_send' => '0',             	// opcjonalna flaga 0/1 czy wysłać fakturę na
                                       // adres email kontrahenta, 
                                       // domyślna wartość to 0

   'lump' => 'rate20',             	// opcjonalna stawka ryczałtu dla korzystających 
                                       // z pakietu Księgowość Premium, 
                                       // możliwe wartości to: rate 20
                                       // rate17, rate8_5, rate5_5, rate3, 
                                       // domyślna wartość, jeżeli nie zostanie
                                       // podana, to rate20

   'tax_evaluation_method' => 'netto',  // określenie metody naliczania cen na fakturze, 
                                       // ceny w pozycjach faktury pozycji podawane
                                       // netto lub brutto, 
                                       // domyślna wartość to netto



   'type' => 'normal',             	// opcjonalnie type faktury, możliwe wartości:
                                       // normal - faktura VAT (wartość domyślna)
                                       // proforma - faktura proforma
);

// dane nabywcy
$contractorDetails = array( 
   "name" => "Jan Kowalski",          // nazwa pełna kontrahenta

   "nip" => "1231231212",         	// NIP kontrahenta, bez spacji i kresek

   "street" => "Kwiatowa 5",          // Ulica, nr domu i lokalu

   'zip' => '59-413',             	// kod pocztowy

   'city' => 'Wrocław',           	// miejscowość

   'email' => 'jan@kowalski-test.com',// opcjonalnie adres email

   'add' => 1                     	// flaga 0/1 czy dopisać kontrahenta do katalogu
                                  	// (dopasowanie po NIP, jeśli taki kontrahent
                                  	// już jest to nie zostanie 
                                  	// dodany ani zaktualizowany) 
);

// pozycje towarów i usług na fakturze
$invoiceContents = array(
   array(   	
       'name' => 'Mysz komputerowa',  // nazwa towaru, max. 1024 znaki

       'price' => '35,12',            // cenna netto lub brutto w zależności 
                                  	// od ustawienia tax_evaluation_method w
                                  	// invoiceHeader, format NUMERIC(15,2)

       'unit' => 'szt.',              // jednostka, max 64 znaki

       'count' => '1',                // ilość towaru lub usługi, format NUMERIC(15,4) 
                                  	// max. 15 cyfr i dwie cyfry po przecniku

       'vatcode' => '22',         	// opcjonalnie stawka VAT, 
                                  	// możliwe wartości to
                                  	// 22, 7, 3, 0, WDT, EXP, NP, ZW, 
                                  	// domyślna wartość: 22

       'classification' => '',        // opcjonalnie kod PKWiU dla obniżonych 
                                  	// stawek VAT

       'discount' => '25,00'          // opcjonalnie rabat w pozycji faktury, 
                                  	// format NUMERIC(2,2)
   ) 
);


// zmienne $sid, $invoiceHeader i $contractorDetails i $invoiceContents z poprzednich przykładów

// wystawienie faktury
$r = $C->addInvoice($sid, $invoiceHeader, $contactorDetails, $invoiceContents);

if ($r['status']=='OK') {
   $invoice_id = $r['response'];
   $id_faktury = $r['object_id']; 
   // id faktury mozna wykorzystac np do wysyłania 
   // faktury na email lub pobrania PDF z fakturą
   // (patrz metody sendInvoice() i downloadInvoice())
} else {
   // coś poszło nie tak
   print_r($r['status']);
   print_r($r['response']);
}    


// $sid - id sesji zwrócony przez metodę login()
// $invoice_id - ID faktury zwrócony przez metodę addInvoice();

// dodatkowe ustawienia (opcjonalne)
$options = array(
   'page' => 'invoice',            // którą stronę faktury załączyć, możliwe wartości to:
                                   // invoice - oryginał
                                   // invoicecopy - kopia
                                   // all - wszystkie, wartość domyślna

   'leaflet' => 0,             	// flaga 0/1 czy dołączyć druczek przelewu
                                   // działa tylko dla metody płatności przelew, 
                                   // domyślnie 0

   'duplicate' => 0,           	// flaga 0/1 czy nadrukować słowo duplikat 
                                   // z aktualną datą, 
                                   // domyślnie 0
);


// generujemy plik PDF z wydrukiem
$response = $C->sendInvoice($sid, $invoice_id, $option);

if ($r['status'] == 'OK') {
   // w odpowiedzi przychodzi URL do pliku PDF, URL jest ważny przez 10 minut
   $url_pliku_pdf = $r['response'];
} else {
   // coś poszło nie tak
   switch ($r['status']) {
       case 'ERR':
           echo "Nieprawidłowwy ID faktury";
           break;
       case 'FATAL_ERROR':
           echo "Błąd usługi - skontaktuj się z administratorem";
           break;
   }
}


// $sid - id sesji zwrócony przez metodę login()
// $invoice_id - ID faktury zwrócony przez metodę addInvoice();

// dodatkowe ustawienia (opcjonalne)
$options = array(
   'subject' => 'Wystawiono fakturę',  
                                   // Temat wiadomości email, domyślnie 'Faktura od NAZWA_FIRMY'

   'page' => 'invoice',            // którą stronę faktury załączyć, możliwe wartości to:
                                   // invoice - oryginał
                                   // invoicecopy - kopia
                                   // all - wszystkie, wartość domyślna

   'leaflet' => 0,             	// flaga 0/1 czy dołączyć druczek przelewu
                                   // działa tylko dla metody płatności przelew, 
                                   // domyślnie 0

   'duplicate' => 0,           	// flaga 0/1 czy nadrukować słowo duplikat 
                                   // z aktualną datą, 
                                   // domyślnie 0

   'cc' => '',                 	// opcjonalnie adres email DW
   'bcc' => '',                    // opcjonalnie adres email UDW

   'body' => 'Przesyłam fakturę. Pozdrowienia'
                                   // treść wiadomości email, jeśli nie będzie wpisana to 
                                   // zostanie użyta treść zdefiniowana w ustawieniach firmy
);

$response = $C->sendInvoice($sid, $invoice_id, 'spam@mediait.pl');

switch ($r['response']) {
   case 'OK':       	// faktura wysłana
       break;
   case 'ERR':          // nie ma takiej faktury, sprawdź $invoice_id
       break;
   case 'FATAL_ERROR':  // coś poszło nie tak - skontaktuj się z nami
       break;
}

$C->logout($sid);

 

 

 

 

 

 

Skrypt nie wykrywa danych... Widzicie jakiś błąd?

 

 

Northwest

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

 Hmm posiadasz konto w serwisie wFirma? czy ten skrypt chciałeś użyc nie korzystając z ich usług?

 

 

Pozdrawiam,

 

Szymon

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

hmm podstawie formę pod tablicę. Zmień

$r = $C->addInvoice($sid, $invoiceHeader, $contactorDetails, $invoiceContents);

na 

$r = $C->addInvoice($sid, $invoiceHeader, $contractorDetails, $invoiceContents);

:D

 

Pozdrawiam,

 

Szymon

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

hmm podstawie formę pod tablicę. Zmień

$r = $C->addInvoice($sid, $invoiceHeader, $contactorDetails, $invoiceContents);

na

$r = $C->addInvoice($sid, $invoiceHeader, $contractorDetails, $invoiceContents);

:D

 

Pozdrawiam,

 

Szymon

 

 

 

wow, dzięki :D qurcze, ale wtopa :D

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×