Hyvityslaskun tekeminen

Started by apelix, 06.04.13 - klo:14:21

Previous topic - Next topic

apelix

Asensin ohjelman eilen ja täytyy kyllä sanoa että tämä on juuri se mitä olen etsinyt jo pidempään ! Tällä saa tehtyä juuri sen mitä tarviikin ja voi itse muuttaa sopivaksi jos haluaa.

Tarkoitus olisi käyttää ohjelmaa apuna satunnaiseen käsilaskutukseen, mutta pääasiallinen käyttö olisi asiakkaiden palautusten ja hyvityslakujen tekeminen. Se vaatisi että lasku sivulla olisi rasti ruutuun kohta "hyvityslasku" ja viereen voisi syöttää asiakkaan tilinumeron. Ja jos nämä olisi laitettu päälle niin silloin ohjelma tietää että laskun maksaja olenkin minä ja laskun saajana asiakas. Maksettavan summan tai määrän voisi syöttää riville negatiivisena jolloin myyntiraportitkin näyttää oikeaa. Sitten siitä voisi tehdä pdf tai finvoice laskun ja tilitoimisto voisi maksaa palautukset näillä tiedoilla.

Olisiko tällaisen ominaisuuden lisääminen mahdollista ? Tämä vaatii nuo pari lisäystä lasku sivulle.

T.Ari

Ere Maijala

Mitä ohjelman pitäisi tehdä sillä tiedolla, että maksaja oletkin sinä, eli pitäisikö siihen liittyä jotain toiminnallisuutta? Tai toisin päin kysyttynä, miten tämä eroaisi siitä, että tekisi laskun negatiivisilla määrillä ja laittaisi laskulla näkyviin lisätietoihin tiedon asiakkaan tilistä, jolle palautus maksetaan?

--Ere

apelix

Hei

Kokeilin itse hieman koodata asiaa viikonloppuna ja lopputulos on oikeastaa jo lähes toimiva. Lisäkenttää ei tarvinnutkaan lisätä sivulle ja käytin jo olemassa olevaa "info" kenttää asiakkaan tilinumero kenttänä. Eli homma menee näin: Jos tehdään palautuslasku niin laitetaan kpl määrä negatiivisena. Lisäksi "Info" kenttään asiakkaan tilinumero IBAN muodossa. Lisäksi tarvitaan seuraavat koodimuutokset:
invoice_printer_base.php noin riville 150:
$this->recipientAddress = isset($addressParts[1]) ? $addressParts[1] : '';
    // lisäys tästä eteenpäin. jos palautusmaksu niin muutetaan negatiivinen arvo positiiviseksi jolloin tulostuu barcode yms..
   if ($this->totalSumVAT < 0 ) {
      $refund = $this->totalSumVAT;
      $this->totalSumVAT = abs( $this->totalSumVAT );
      $this->recipientFullAddress = $senderData['name'] . "\n" . $senderData['street_address'] . "\n" . $senderData['zip_code'] . ' ' . $senderData['city'];
      $this->senderAddress = $recipientData['company_name'] . "\n" . $recipientData['street_address'] . "\n" . $recipientData['zip_code'] . ' ' . $recipientData['city'];
      $this->senderData['bank_iban'] = str_replace(' ', '', $invoiceData['info']);
      $this->senderData['bank_swiftbic'] = '';   
      $this->senderData['bank_name'] = '';
      $this->invoiceData['due_date'] = date('Ymd');
   }
   // lisäys

ja lisäksi pari muutosta:

uusi rivi 180 muutettu:
//$IBAN = str_replace(' ', '', substr($senderData['bank_iban'], 2));
$IBAN = str_replace(' ', '', substr($this->senderData['bank_iban'], 2));

uusi rivi 204 muutettu:
//$tmpDueDate = substr($invoiceData['due_date'], 2);
$tmpDueDate = substr($this->invoiceData['due_date'], 2);

ja vielä riville 223 lisäys:
//palautetaan summa takaisin negatiiviseksi niin tulee oikein sivulle
   if ( $refund < 0 ) $this->totalSumVAT = $refund;
    $this->addressXOffset = getSetting('invoice_address_x_offset', 0);
    $this->addressYOffset = getSetting('invoice_address_y_offset', 0);

Näiden lisäysten jälkeen kun valitsee pdf laskun ja summa on negatiivinen niin "Maksaja" ja "Saaja" on käännetty toisinpäin ja tilinumerona on info kentän tilinumero. Lisäksi viivakoodi ja virtuaaliviivakoodit muuttuvat niin että maksun saaja onkin palautuksen saaja. Näillä tiedoilla palautuksen voi maksaa asiakkaalle tai lähettää tilitoimistolle maksettavaksi.

Jatkokehitettävää tässä olisi vielä se että virtuaaliviivakoodi näkyisi suoraan ohjelman laskusivulla, silloin sen voisi maksaa jo siitä eikä turhaan tarvitsisi avata pdf laskua. Lisäksi jos tämän saa toimimaan finvoice laskuna niin homma helpottuisi edelleen.

Mutta ompa tämä kyllä hieno ohjelma, saisikohan näitä lisäyksi ehkä myös seuraavaan versioon mukaan ?

Ari

Ere Maijala

Tuo info-kentän käyttäminen tilinumerolle ei ole sillä tavalla universaali juttu, että sitä kannattaisi tuohon peruslaskuun koodata, mutta jotain tuon helpottamiseksi voi kyllä tehdä. Luulisin, että tuon saisi aika helposti omaan tulostusmalliin, jossa tehtäisiin vain nuo tarvittavat kohdat eri tavalla.

--Ere