northwest 0 Zgłoś post Napisano Luty 2, 2010 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
kszymon0 0 Zgłoś post Napisano Luty 2, 2010 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
northwest 0 Zgłoś post Napisano Luty 2, 2010 to jest konto demo powinno działać... :/ Udostępnij ten post Link to postu Udostępnij na innych stronach
kszymon0 0 Zgłoś post Napisano Luty 2, 2010 hmm podstawie formę pod tablicę. Zmień $r = $C->addInvoice($sid, $invoiceHeader, $contactorDetails, $invoiceContents); na $r = $C->addInvoice($sid, $invoiceHeader, $contractorDetails, $invoiceContents); Pozdrawiam, Szymon Udostępnij ten post Link to postu Udostępnij na innych stronach
northwest 0 Zgłoś post Napisano Luty 2, 2010 hmm podstawie formę pod tablicę. Zmień $r = $C->addInvoice($sid, $invoiceHeader, $contactorDetails, $invoiceContents); na $r = $C->addInvoice($sid, $invoiceHeader, $contractorDetails, $invoiceContents); Pozdrawiam, Szymon wow, dzięki qurcze, ale wtopa Udostępnij ten post Link to postu Udostępnij na innych stronach