MayaLabs Discussion Area

Suomeksi (Finnish only) => MLInvoiceen liittyvä keskustelu => Topic started by: mikkora on 25.04.16 - klo:15:46

Title: Toistuvuuden säätö
Post by: mikkora on 25.04.16 - klo:15:46
Terve

Olen uusi täällä joten saatan kysellä tyhmiä. Olen kyllä koittanut jo hakua tuloksetta.

Haluan säätää toistuvuutta niin että toisto olisi mahdollista valita tahtuvan 3 ja 4 kuukauden välein. Kuvittelen että tämä ei olisi paha rasti, pitäisi päästä kiinni lasku lomakkeeseen.
Mutta en löydä oikeaa paikkaa...

Joten voisiko joku auttaa alkuun ?

Mikko

ps.
On mahtavaa nähdä että on olemassa ihmisiä jotka jaksavat tuottaa taidoillaan tällaisia avoimen koodin ohjelmia. Suuri Kiitos siitä teille.
Title: Re: Toistuvuuden säätö
Post by: Ere Maijala on 25.04.16 - klo:20:30
Tervehdys!

Kiitokset kiitoksista! :) Nykyisen version koodipohja on aika kamala, joten ei mikään ihme, jos sieltä on vaikea löytää oikeaa paikkaa. Valitettavasti uuden version kehittäminen uudelta pohjalta etenee hyvin hitaasti. Tässä kuitenkin pari vihjettä, mistä voi lähteä liikkeelle:

form_switch.php: $intervalOptions
copy_invoice.php: etsi interval_type
json.php: $intervalType

Jos tällaisille vaihtoehdoille on tarvetta, voidaan ne toki ottaa mukaan "viralliseen" versioonkin.

t. Ere
Title: Re: Toistuvuuden säätö
Post by: mikkora on 25.04.16 - klo:20:49
Kiitos nopeasta vastauksesta. Kerron myöhemmin onnistuinko...  ;D

Sanoisin että viralliseen versioon olisi hyvä saada asetuksiin intervallin säätö. Toisaalta jos minä saan itse säädettyä jaksot, se kai onnistuu kaikilta... 
Title: Re: Toistuvuuden säätö
Post by: Ere Maijala on 25.04.16 - klo:20:53
Toki se voi onnistua, mutta se ei välttämättä ole kovin kestävä ratkaisu, koska koodin päivittyessä joutuu pitämään yllä omia muutoksia, eli päivittäminen ei ole enää niin helppoa, ja pahimmassa tapauksessa virallinen versio alkaa käyttää käytettyjä arvoja eri jaksoihin, jolloin omat muutokset eivät enää ole yhteensopivia.

Voin varmaan lisätä 3kk ja 4kk jaksot seuraavaan versioon ID:illä 4 ja 5.

t. Ere
Title: Re: Toistuvuuden säätö
Post by: keysers0ze on 26.04.16 - klo:16:05
Toistuvuudet voisi olla:
1kk (itse käytän)
3kk
4kk
6kk (tarve olisi puolivuosittain)
12kk (tarve olisi vuosittain)
Title: Re: Toistuvuuden säätö
Post by: keysers0ze on 26.04.16 - klo:16:17
- Lisäksi olisi superhyvä jos voisi "tulostaa/tehdä" koko vuoden laskut kerralla. Lähettää esim. 2kpl 6kk laskuja tai 12kpl 1kk laskuja samalla kerralla. Eli laskuihin generoituisi uudet eräpäivät ja viitteet sekä voisi koko paketin lähettää sähköpostiin.
- Tai voisiko olla siten, että esim. 12kpl viitenumeroita tulisi yhteen laskuun. Kuukausi perusteista laskutusta jossa joka kuukausi on sama summa helpottaisi paljon... Vai olisiko tuohon kuukausi laskutukseen jokin "parempi" helpompi jo aiemmin havaittu tapa..


Terv.
.K
Title: Re: Toistuvuuden säätö
Post by: mikkora on 27.04.16 - klo:13:17
Kiitos ohjeista.

Sain muutokset tehtyä. Osoittamiesi muutosten lisäksi piti tiedostoon fi-FI.ini lisätä dropboxin selkokielitekstit.

Toivottavasti tästä on apua muillekin.  8)

Olen siis lisännyt vaihtoehdot 3 ja 4 sekä vaihtanut vuoden intervallin vaihtoehdoksi 5

fi-FI.ini

InvoiceIntervalType = 'Toistuvuus'
InvoiceIntervalNone = 'Ei toistoa'
InvoiceIntervalMonth = '1 kk'
InvoiceInterval2Month = '2 kk'
InvoiceInterval3Month = '3 kk'
InvoiceIntervalYear = '1 vuosi'



Json.php
switch ($intervalType) {
    case 2 :
        $nextIntervalDate = date($GLOBALS['locDateFormat'],
            mktime(0, 0, 0, date('m') + 1, date('d'), date('Y')));
        break;
   case 3 :
        $nextIntervalDate = date($GLOBALS['locDateFormat'],
            mktime(0, 0, 0, date('m') + 2, date('d'), date('Y')));
        break;
    case 4 :
        $nextIntervalDate = date($GLOBALS['locDateFormat'],
            mktime(0, 0, 0, date('m') + 3, date('d'), date('Y')));
        break;
    case 5 :
        $nextIntervalDate = date($GLOBALS['locDateFormat'],
            mktime(0, 0, 0, date('m'), date('d'), date('Y') + 1));
        break;
    default :
        $nextIntervalDate = '';
    }


form_switch.php
$intervalOptions = [
    '0' => $GLOBALS['locInvoiceIntervalNone'],
    '2' => $GLOBALS['locInvoiceIntervalMonth'],
    '3' => $GLOBALS['locInvoiceInterval2Month'],
    '4' => $GLOBALS['locInvoiceInterval3Month'],     
    '5' => $GLOBALS['locInvoiceIntervalYear']
];


copy_invoice.php
   switch ($invoiceData['interval_type']) {
    // Month
    case 2 :
        $invoiceData['next_interval_date'] = date('Ymd',
            mktime(0, 0, 0, date('m') + 1, date('d'), date('Y')));
        break;
 
    // 2Month
    case 3 :
        $invoiceData['next_interval_date'] = date('Ymd',
            mktime(0, 0, 0, date('m') + 2, date('d'), date('Y')));
        break;
       
        // 3Month
    case 4 :
        $invoiceData['next_interval_date'] = date('Ymd',
            mktime(0, 0, 0, date('m') + 2, date('d'), date('Y')));
        break;
   
    // Year
    case 5 :
        $invoiceData['next_interval_date'] = date('Ymd',
            mktime(0, 0, 0, date('m'), date('d'), date('Y') + 1));
        break;
    }


Mahdoinko unohtaa vielä jonkun ? Yritin kyllä boldata nuo uudet/muutetut kohdat mutta tämä alusta ohittaa kaiken muotoilun tunnistuksen tuossa code tagien sisällä.

T.
Mikko
Title: Re: Toistuvuuden säätö
Post by: Ere Maijala on 30.04.16 - klo:16:12
Tulossa seuraavaan versioon aiempien 1kk ja 1v lisäksi vaihtoehdot

4 = 2kk
5 = 3kk
6 = 4kk
7 = 5kk
8 = 6kk

5kk on varmaan aika epätavallinen, mutta olkoon tuolla vaikka kuriositeettina, jos ei muuten.

--Ere