private function getData($request)
 {
     $account = Auth::user()->account;
     $data = ['account' => $account, 'title' => 'Invoice Ninja v' . NINJA_VERSION . ' - ' . $account->formatDateTime($account->getDateTime()), 'multiUser' => $account->users->count() > 1];
     if ($request->input(ENTITY_CLIENT)) {
         $data['clients'] = Client::scope()->with('user', 'contacts', 'country')->withTrashed()->where('is_deleted', '=', false)->get();
         $data['contacts'] = Contact::scope()->with('user', 'client.contacts')->withTrashed()->get();
         $data['credits'] = Credit::scope()->with('user', 'client.contacts')->get();
     }
     if ($request->input(ENTITY_TASK)) {
         $data['tasks'] = Task::scope()->with('user', 'client.contacts')->withTrashed()->where('is_deleted', '=', false)->get();
     }
     if ($request->input(ENTITY_INVOICE)) {
         $data['invoices'] = Invoice::scope()->with('user', 'client.contacts', 'invoice_status')->withTrashed()->where('is_deleted', '=', false)->where('is_quote', '=', false)->where('is_recurring', '=', false)->get();
         $data['quotes'] = Invoice::scope()->with('user', 'client.contacts', 'invoice_status')->withTrashed()->where('is_deleted', '=', false)->where('is_quote', '=', true)->where('is_recurring', '=', false)->get();
     }
     if ($request->input(ENTITY_PAYMENT)) {
         $data['payments'] = Payment::scope()->withTrashed()->where('is_deleted', '=', false)->with('user', 'client.contacts', 'payment_type', 'invoice', 'account_gateway.gateway')->get();
     }
     if ($request->input(ENTITY_VENDOR)) {
         $data['clients'] = Vendor::scope()->with('user', 'vendorcontacts', 'country')->withTrashed()->where('is_deleted', '=', false)->get();
         $data['vendor_contacts'] = VendorContact::scope()->with('user', 'vendor.contacts')->withTrashed()->get();
         /*
         $data['expenses'] = Credit::scope()
             ->with('user', 'client.contacts')
             ->get();
         */
     }
     return $data;
 }
 public function save($publicId = null, $input)
 {
     if ($publicId) {
         $payment = Payment::scope($publicId)->firstOrFail();
     } else {
         $payment = Payment::createNew();
     }
     $paymentTypeId = $input['payment_type_id'] ? $input['payment_type_id'] : null;
     $payment->payment_type_id = $paymentTypeId;
     $payment->payment_date = Utils::toSqlDate($input['payment_date']);
     $payment->transaction_reference = trim($input['transaction_reference']);
     if (!$publicId) {
         $clientId = Client::getPrivateId($input['client']);
         $amount = Utils::parseFloat($input['amount']);
         if ($paymentTypeId == PAYMENT_TYPE_CREDIT) {
             $credits = Credit::scope()->where('client_id', '=', $clientId)->where('balance', '>', 0)->orderBy('created_at')->get();
             $applied = 0;
             foreach ($credits as $credit) {
                 $applied += $credit->apply($amount);
                 if ($applied >= $amount) {
                     break;
                 }
             }
         }
         $payment->client_id = $clientId;
         $payment->invoice_id = isset($input['invoice']) && $input['invoice'] != "-1" ? Invoice::getPrivateId($input['invoice']) : null;
         $payment->amount = $amount;
     }
     $payment->save();
     return $payment;
 }
 public function save($input, $payment = null)
 {
     $publicId = isset($input['public_id']) ? $input['public_id'] : false;
     if ($payment) {
         // do nothing
     } elseif ($publicId) {
         $payment = Payment::scope($publicId)->firstOrFail();
         if (Utils::isNinjaDev()) {
             \Log::warning('Entity not set in payment repo save');
         }
     } else {
         $payment = Payment::createNew();
     }
     if ($payment->is_deleted) {
         return $payment;
     }
     $paymentTypeId = false;
     if (isset($input['payment_type_id'])) {
         $paymentTypeId = $input['payment_type_id'] ? $input['payment_type_id'] : null;
         $payment->payment_type_id = $paymentTypeId;
     }
     if (isset($input['payment_date_sql'])) {
         $payment->payment_date = $input['payment_date_sql'];
     } elseif (isset($input['payment_date'])) {
         $payment->payment_date = Utils::toSqlDate($input['payment_date']);
     } else {
         $payment->payment_date = date('Y-m-d');
     }
     if (isset($input['transaction_reference'])) {
         $payment->transaction_reference = trim($input['transaction_reference']);
     }
     if (!$publicId) {
         $clientId = $input['client_id'];
         $amount = Utils::parseFloat($input['amount']);
         if ($paymentTypeId == PAYMENT_TYPE_CREDIT) {
             $credits = Credit::scope()->where('client_id', '=', $clientId)->where('balance', '>', 0)->orderBy('created_at')->get();
             $remaining = $amount;
             foreach ($credits as $credit) {
                 $remaining -= $credit->apply($remaining);
                 if (!$remaining) {
                     break;
                 }
             }
         }
         $payment->invoice_id = $input['invoice_id'];
         $payment->client_id = $clientId;
         $payment->amount = $amount;
     }
     $payment->save();
     return $payment;
 }
Esempio n. 4
0
 public function save($publicId = null, $input)
 {
     if ($publicId) {
         $credit = Credit::scope($publicId)->firstOrFail();
     } else {
         $credit = Credit::createNew();
     }
     $credit->client_id = Client::getPrivateId($input['client']);
     $credit->credit_date = Utils::toSqlDate($input['credit_date']);
     $credit->amount = Utils::parseFloat($input['amount']);
     $credit->balance = Utils::parseFloat($input['amount']);
     $credit->private_notes = trim($input['private_notes']);
     $credit->save();
     return $credit;
 }
 public function save($input, $credit = null)
 {
     $publicId = isset($data['public_id']) ? $data['public_id'] : false;
     if ($credit) {
         // do nothing
     } elseif ($publicId) {
         $credit = Credit::scope($publicId)->firstOrFail();
         \Log::warning('Entity not set in credit repo save');
     } else {
         $credit = Credit::createNew();
     }
     $credit->client_id = Client::getPrivateId($input['client']);
     $credit->credit_date = Utils::toSqlDate($input['credit_date']);
     $credit->amount = Utils::parseFloat($input['amount']);
     $credit->balance = Utils::parseFloat($input['amount']);
     $credit->private_notes = trim($input['private_notes']);
     $credit->save();
     return $credit;
 }
 private function export()
 {
     $output = fopen('php://output', 'w') or Utils::fatalError();
     header('Content-Type:application/csv');
     header('Content-Disposition:attachment;filename=export.csv');
     $clients = Client::scope()->get();
     Utils::exportData($output, $clients->toArray());
     $contacts = Contact::scope()->get();
     Utils::exportData($output, $contacts->toArray());
     $invoices = Invoice::scope()->get();
     Utils::exportData($output, $invoices->toArray());
     $invoiceItems = InvoiceItem::scope()->get();
     Utils::exportData($output, $invoiceItems->toArray());
     $payments = Payment::scope()->get();
     Utils::exportData($output, $payments->toArray());
     $credits = Credit::scope()->get();
     Utils::exportData($output, $credits->toArray());
     fclose($output);
     exit;
 }
 /**
  * @param $request
  *
  * @return array
  */
 private function getData($request)
 {
     $account = Auth::user()->account;
     $data = ['account' => $account, 'title' => 'Invoice Ninja v' . NINJA_VERSION . ' - ' . $account->formatDateTime($account->getDateTime()), 'multiUser' => $account->users->count() > 1];
     if ($request->input('include') === 'all' || $request->input('clients')) {
         $data['clients'] = Client::scope()->with('user', 'contacts', 'country')->withArchived()->get();
     }
     if ($request->input('include') === 'all' || $request->input('contacts')) {
         $data['contacts'] = Contact::scope()->with('user', 'client.contacts')->withTrashed()->get();
     }
     if ($request->input('include') === 'all' || $request->input('credits')) {
         $data['credits'] = Credit::scope()->with('user', 'client.contacts')->get();
     }
     if ($request->input('include') === 'all' || $request->input('tasks')) {
         $data['tasks'] = Task::scope()->with('user', 'client.contacts')->withArchived()->get();
     }
     if ($request->input('include') === 'all' || $request->input('invoices')) {
         $data['invoices'] = Invoice::scope()->invoiceType(INVOICE_TYPE_STANDARD)->with('user', 'client.contacts', 'invoice_status')->withArchived()->where('is_recurring', '=', false)->get();
     }
     if ($request->input('include') === 'all' || $request->input('quotes')) {
         $data['quotes'] = Invoice::scope()->invoiceType(INVOICE_TYPE_QUOTE)->with('user', 'client.contacts', 'invoice_status')->withArchived()->where('is_recurring', '=', false)->get();
     }
     if ($request->input('include') === 'all' || $request->input('recurring')) {
         $data['recurringInvoices'] = Invoice::scope()->invoiceType(INVOICE_TYPE_STANDARD)->with('user', 'client.contacts', 'invoice_status', 'frequency')->withArchived()->where('is_recurring', '=', true)->get();
     }
     if ($request->input('include') === 'all' || $request->input('payments')) {
         $data['payments'] = Payment::scope()->withArchived()->with('user', 'client.contacts', 'payment_type', 'invoice', 'account_gateway.gateway')->get();
     }
     if ($request->input('include') === 'all' || $request->input('vendors')) {
         $data['vendors'] = Vendor::scope()->with('user', 'vendor_contacts', 'country')->withArchived()->get();
     }
     if ($request->input('include') === 'all' || $request->input('vendor_contacts')) {
         $data['vendor_contacts'] = VendorContact::scope()->with('user', 'vendor.vendor_contacts')->withTrashed()->get();
     }
     return $data;
 }