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']}"; }
'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( '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
}
// $sid - id sesji zwrócony przez metodę login()
// $invoice_id - ID faktury zwrócony przez metodę addInvoice();
// dodatkowe ustawienia (opcjonalne)
'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)
'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