Exemple #1
0
 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');
 }
Exemple #2
0
 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;
 }