protected function processPayment($row) { if ($row) { $manager = $this->getContainer()->get('doctrine.orm.entity_manager'); // $accountRepo = $manager->getRepository('TSK\PaymentBundle\Entity\Account'); // $account = $accountRepo->findOneBy(array('name' => 'Inc Fm Students', 'organization' => $this->org)); $paymentTypeRepo = $manager->getRepository('TSK\\PaymentBundle\\Entity\\PaymentType'); $paymentMethodRepo = $manager->getRepository('TSK\\PaymentBundle\\Entity\\PaymentMethod'); // $incomeTypeRepo = $manager->getRepository('TSK\PaymentBundle\Entity\IncomeType'); // $incomeType = $incomeTypeRepo->findOneBy(array('name' => 'TUITION', 'organization' => $this->org)); $paymentRepo = $manager->getRepository('TSK\\PaymentBundle\\Entity\\Payment'); $oldPayment = $paymentRepo->findOneBy(array('legacyPaymentId' => $row[1])); $isCash = true; if (!$oldPayment) { switch ($row[4]) { case 'VISA': $row[4] = 'VISA'; break; case 'MC': $row[4] = 'MASTERCARD'; break; case 'SCHOOL CREDIT': case 'CREDIT': $row[4] = 'CREDIT'; $isCash = false; break; case 'AMEX': $row[4] = 'AMERICAN EXPRESS'; break; case 'CHECK': $row[4] = 'CHECK'; break; case 'DISCOVER': $row[4] = 'DISCOVER'; break; case 'CASH': $row[4] = 'CASH'; break; } $payment = new Payment(); $payment->setLegacyPaymentId($row[1]); $payment->setSchool($this->school); $payment->setPaymentType($paymentTypeRepo->findOneBy(array('name' => $row[3], 'organization' => $this->org))); $paymentMethod = $paymentMethodRepo->findOneBy(array('name' => $row[4], 'organization' => $this->org)); if (!$paymentMethod) { print "cannot find paymentMethod for " . $row[4]; exit; } $payment->setPaymentMethod($paymentMethod); $payment->setPaymentAmount($row[5]); $payment->setCreatedDate(new \DateTime($row[6])); $payment->setCreatedUser('mhill'); $payment->setDescription($row[7]); $payment->setRefNumber($row[8]); $payment->setIsVoided($row[9]); $payment->setIsCash($isCash); $chargeRepo = $manager->getRepository('TSK\\PaymentBundle\\Entity\\Charge'); $charge = $chargeRepo->findOneBy(array('legacyChargeId' => $row[2])); if ($charge) { $cp = new ChargePayment(); $cp->setCharge($charge); $cp->setPayment($payment); $cp->setAmount(min($charge->getAmount(), $payment->getPaymentAmount())); $manager->persist($cp); } $manager->persist($payment); $manager->flush(); } } }