public function testPatronageChecks() { $config = FannieConfig::factory(); $task = new PatronageCheckTask(); $dbc = FannieDB::get($config->get('OP_DB')); $dbc->query('TRUNCATE TABLE patronage'); $p = new PatronageModel($dbc); $p->cardno(1); $p->FY(2000); $p->check_number(1); $p->cashed_date(null); $p->cashed_here(0); $p->save(); $dbc = FannieDB::get($config->get('TRANS_DB')); $dbc->query('TRUNCATE TABLE dlog_15'); $d = new DLog15Model($dbc); $d->tdate('2000-01-01 00:00:00'); $d->trans_type('T'); $d->description('REBATE CHECK'); $d->total(1.23); $d->card_no(1); $d->save(); $task->run(); $dbc = FannieDB::get($config->get('OP_DB')); $p->reset(); $p->cardno(1); $p->FY(2000); $loaded = $p->load(); $this->assertEquals(true, $loaded, 'Failed to load patronage record'); $this->assertEquals('2000-01-01 00:00:00', $p->cashed_date(), 'Cashed date missing'); $this->assertEquals(1, $p->cashed_here(), 'Not marked as cashed'); }
public function get_reprint_mem_fy_handler() { global $FANNIE_OP_DB; $dbc = FannieDB::get($FANNIE_OP_DB); $custdata = new CustdataModel($dbc); $meminfo = new MeminfoModel($dbc); $custdata->CardNo($this->mem); $custdata->personNum(1); $custdata->load(); $meminfo->card_no($this->mem); $meminfo->load(); $patronage = new PatronageModel($dbc); $patronage->cardno($this->mem); $patronage->FY($this->fy); $patronage->load(); $pdf = new FPDF('P', 'mm', 'Letter'); $pdf->SetMargins(6.35, 6.35, 6.35); // quarter-inch margins $pdf->SetAutoPageBreak(false); $pdf->AddPage(); $pdf->Image('rebate_body.png', 10, 0, 190); $check = new GumCheckTemplate($custdata, $meminfo, $patronage->cash_pat(), 'Rebate ' . $this->fy, $patronage->check_number()); $check->renderAsPDF($pdf); $pdf->Output('Rebate_' . $this->mem . '_' . $this->fy . '.pdf', 'I'); return false; }
public function get_id_view() { global $FANNIE_OP_DB; $dbc = FannieDB::get($FANNIE_OP_DB); $patronage = new PatronageModel($dbc); $patronage->cardno($this->id); $patronage->FY(FormLib::get('fy')); $exists = $patronage->load(); if ($exists) { return '<div class="alert alert-danger">Member ' . $this->id . ' already has a patronage entry for ' . FormLib::get('fy') . '</div>'; } $workingP = $dbc->prepare(' SELECT net_purch FROM patronage_workingcopy WHERE FY=? AND cardno=?'); $workingR = $dbc->execute($workingP, array(FormLib::get('fy'), $this->id)); if (!$workingR || $dbc->num_rows($workingR) == 0) { return '<div class="alert alert-danger">Member ' . $this->id . ' has no patronage info for ' . FormLib::get('fy') . '</div>'; } $workingW = $dbc->fetch_row($workingR); $infoP = $dbc->prepare(' SELECT SUM(net_purch) AS spendingTotal, SUM(tot_pat) AS patronageTotal, SUM(cash_pat) AS cashTotal, SUM(equit_pat) AS retainedTotal FROM patronage AS p WHERE FY=?'); $infoR = $dbc->execute($infoP, array(FormLib::get('fy'))); $infoW = $dbc->fetch_row($infoR); $ratio = $workingW['net_purch'] / $infoW['spendingTotal']; $cash = round($infoW['cashTotal'] * $ratio, 2); $equity = round($infoW['retainedTotal'] * $ratio, 2); $ret = '<form method="post"> <input type="hidden" name="id" value="' . $this->id . '" /> <input type="hidden" name="fy" value="' . FormLib::get('fy') . '" /> <div class="form-group"> <label>Suggested Cash Portion</label> <div class="input-group"> <span class="input-group-addon">$</span> <input type="text" required class="form-control" name="cash" value="' . $cash . '" /> </div> </div> <div class="form-group"> <label>Suggested Retained Portion</label> <div class="input-group"> <span class="input-group-addon">$</span> <input type="text" required class="form-control" name="retain" value="' . $equity . '" /> </div> </div> <div class="form-group"> <button class="btn btn-default" type="submit">Submit </div> </form>'; return $ret; }