zebraf1 / Kassa

Private inventory system
GNU General Public License v2.0
0 stars 0 forks source link

Aruande loomine #80

Closed tanelk closed 7 years ago

tanelk commented 7 years ago

POST /api/reports/

Lisaks peaks saama ka lao (warehouse) jaoks saama teha VERIFICATION tüüpi aruannet - nö lao inventuur. Tehakse arvatavasti korra semestris - ametit üle andes. Annab selge pildi kuipalju mida on. Tegemiseks vaja admini õiguseid.

Vajalik UI on olemas, tuleb külge pookida lihtsalt.

zebraf1 commented 7 years ago

Need on olemas: GET /api/reports POST /api/reports PATCH /api/reports

Vaata api doci all peaks need kirjeldatud olema. Kas saab kasutada? Mis siin API pool vaja veel teha, et selle labeli panid külge?

tanelk commented 7 years ago

Ma kolmandat päeva teen seda aruande loomist. Hetk tagasi sain läbi UI edukalt esimese aruande salvestatud. Tulevad ka commitid varsti.

Osaliselt sain kasutada, osaliselt pidin ümber tegema. Eriti oli probleeme klassiga Report, kuna see on väga tihedalt seotud legacy UIga.

zebraf1 commented 7 years ago

Tead, kui sul on sellega probleeme, siis on mõistlik see klass extendida APIBundle/Models/Report klassina ja seal üle kirjutada mingid meetodid. Samuti ReportType võib üle kirjutada. Siis on vähe ohtu, et vana kood katki läheb

tanelk commented 7 years ago

Kuidas teha nii, et ReportsQuery tagastab selle uue klassi aga mitte originaali?

zebraf1 commented 7 years ago

Kui teha ReportQuery::create() asemel konstruktoriga - new ReportsQuery(null, Report::class). Teine parameeter on modelClass - namespace sellele. Mudeli küljest ::class annab siis selle täispika nime.

zebraf1 commented 7 years ago

Õigem oleks vist extendida ka ReportQuery klass ja seal sees create() meetod üle kirjutada ning anda selle teise Report klass kaasa konstruktorile.

zebraf1 commented 7 years ago

Äkki midagi sellist:

    public static function create($modelAlias = null, $criteria = null)
    {
        $query = parent::create($modelAlias, $criteria);
        $query->modelName = Report::class;
        return $query;
    }
zebraf1 commented 7 years ago

Seotud kandega #66 - aruannete kuvamine. Kas sa siin raames tegid ainult aruande lisamist? Kui kuvamine ka siin, siis teine kanne läheb ka pärast kinni.

tanelk commented 7 years ago

Mulle tundub, et selle classi extendimine ei tööta ikkagi. Query tagastab ikkagi vana classi.

Näiteks classis BaseReportQuery on meetod findPkSimple ja seal on selgelt

$obj = new Report();
$obj->hydrate($row);

Ning see Report class, millele viidatakse on hardcoded Inventorybudle omale.

zebraf1 commented 7 years ago

Mnjahh, ilmselt siis lahendus oleks APIBundle schemas ka see defineerida. Võib-olla saad siis ikkagi vana modelit kasutada ja peab lihtsalt vaatama, et vana UI toimib :)

tanelk commented 7 years ago

Tegelt olemasolev raportite asi oli juba katki. Mitme koha peal polnud näiteks konvendi id-d, jäänuk sellest ajast kui ainult Tallinn töötas.