Add client filters to exports

This commit is contained in:
David Bomba 2024-03-26 14:12:32 +11:00
parent f7094ecff7
commit dccf182b52
38 changed files with 102 additions and 39 deletions

View File

@ -867,15 +867,15 @@ class BaseExport
protected function addClientFilter(Builder $query, $clients): Builder
{
if(is_string($clients)) {
$clients = explode(',', $clients);
$clients = explode(',', $clients);
}
$transformed_clients = $this->transformKeys($clients);
nlog($clients);
nlog($transformed_clients);
if(count($transformed_clients) > 0) {
nlog("yus");
$query->whereIn('client_id', $transformed_clients);
}
@ -1573,7 +1573,7 @@ class BaseExport
public function queueDocuments(Builder $query)
{
nlog("queue docs pls");
if($query->getModel() instanceof Document) {
$documents = $query->pluck('id')->toArray();
} else {
@ -1584,8 +1584,6 @@ class BaseExport
->toArray();
}
nlog($documents);
if(count($documents) > 0) {
$user = $this->company->owner();

View File

@ -107,6 +107,12 @@ class CreditExport extends BaseExport
$query = $this->addDateRange($query);
$clients = &$this->input['client_id'];
if($clients) {
$query = $this->addClientFilter($query, $clients);
}
if($this->input['status'] ?? false) {
$query = $this->addCreditStatusFilter($query, $this->input['status']);
}

View File

@ -62,6 +62,12 @@ class InvoiceExport extends BaseExport
$query = $this->addDateRange($query);
$clients = &$this->input['client_id'];
if($clients) {
$query = $this->addClientFilter($query, $clients);
}
if($this->input['status'] ?? false) {
$query = $this->addInvoiceStatusFilter($query, $this->input['status']);
}

View File

@ -75,6 +75,12 @@ class InvoiceItemExport extends BaseExport
$query = $this->addDateRange($query);
$clients = &$this->input['client_id'];
if($clients) {
$query = $this->addClientFilter($query, $clients);
}
if($this->input['status'] ?? false) {
$query = $this->addInvoiceStatusFilter($query, $this->input['status']);
}

View File

@ -61,6 +61,12 @@ class PaymentExport extends BaseExport
$query = $this->addDateRange($query);
$clients = &$this->input['client_id'];
if($clients) {
$query = $this->addClientFilter($query, $clients);
}
$query = $this->addPaymentStatusFilters($query, $this->input['status'] ?? '');
if($this->input['document_email_attachment'] ?? false) {

View File

@ -63,6 +63,12 @@ class PurchaseOrderExport extends BaseExport
$query = $this->addDateRange($query);
$clients = &$this->input['client_id'];
if($clients)
$query = $this->addClientFilter($query, $clients);
$query = $this->addPurchaseOrderStatusFilter($query, $this->input['status'] ?? '');
if($this->input['document_email_attachment'] ?? false) {

View File

@ -67,6 +67,12 @@ class PurchaseOrderItemExport extends BaseExport
$query = $this->addDateRange($query);
$clients = &$this->input['client_id'];
if($clients) {
$query = $this->addClientFilter($query, $clients);
}
$query = $this->addPurchaseOrderStatusFilter($query, $this->input['status'] ?? '');
if($this->input['document_email_attachment'] ?? false) {

View File

@ -69,6 +69,12 @@ class QuoteExport extends BaseExport
$query = $this->addDateRange($query);
$clients = &$this->input['client_id'];
if($clients) {
$query = $this->addClientFilter($query, $clients);
}
$query = $this->addQuoteStatusFilter($query, $this->input['status'] ?? '');
if($this->input['document_email_attachment'] ?? false) {

View File

@ -70,6 +70,12 @@ class QuoteItemExport extends BaseExport
$query = $this->addDateRange($query);
$clients = &$this->input['client_id'];
if($clients) {
$query = $this->addClientFilter($query, $clients);
}
$query = $this->addQuoteStatusFilter($query, $this->input['status'] ?? '');
if($this->input['document_email_attachment'] ?? false) {

View File

@ -61,6 +61,12 @@ class RecurringInvoiceExport extends BaseExport
$query = $this->addDateRange($query);
$clients = &$this->input['client_id'];
if($clients) {
$query = $this->addClientFilter($query, $clients);
}
$query = $this->addRecurringInvoiceStatusFilter($query, $this->input['status'] ?? '');
return $query;

View File

@ -72,10 +72,16 @@ class TaskExport extends BaseExport
->where('is_deleted', $this->input['include_deleted'] ?? false);
$query = $this->addDateRange($query);
$clients = &$this->input['client_id'];
if($this->input['document_email_attachment'] ?? false) {
if($clients)
$query = $this->addClientFilter($query, $clients);
$document_attachments = &$this->input['document_email_attachment'];
if($document_attachments)
$this->queueDocuments($query);
}
return $query;
@ -132,9 +138,9 @@ class TaskExport extends BaseExport
{
$entity = [];
$transformed_entity = $this->entity_transformer->transform($task);
nlog($this->input['report_keys']);
foreach (array_values($this->input['report_keys']) as $key) {
nlog($key);
$parts = explode('.', $key);
if (is_array($parts) && $parts[0] == 'task' && array_key_exists($parts[1], $transformed_entity)) {

View File

@ -66,7 +66,7 @@ class ARDetailReportController extends BaseController
/** @var \App\Models\User $user */
$user = auth()->user();
if ($request->has('send_email') && $request->get('send_email')) {
if ($request->has('send_email') && $request->get('send_email') && $request->missing('output')) {
SendToAdmin::dispatch($user->company(), $request->all(), ARDetailReport::class, $this->filename);
return response()->json(['message' => 'working...'], 200);

View File

@ -65,7 +65,7 @@ class ARSummaryReportController extends BaseController
/** @var \App\Models\User $user */
$user = auth()->user();
if ($request->has('send_email') && $request->get('send_email')) {
if ($request->has('send_email') && $request->get('send_email') && $request->missing('output')) {
SendToAdmin::dispatch($user->company(), $request->all(), ARSummaryReport::class, $this->filename);
return response()->json(['message' => 'working...'], 200);

View File

@ -36,7 +36,7 @@ class ActivityReportController extends BaseController
/** @var \App\Models\User $user */
$user = auth()->user();
if ($request->has('send_email') && $request->get('send_email')) {
if ($request->has('send_email') && $request->get('send_email') && $request->missing('output')) {
SendToAdmin::dispatch($user->company(), $request->all(), ActivityExport::class, $this->filename);
return response()->json(['message' => 'working...'], 200);

View File

@ -65,7 +65,7 @@ class ClientBalanceReportController extends BaseController
/** @var \App\Models\User $user */
$user = auth()->user();
if ($request->has('send_email') && $request->get('send_email')) {
if ($request->has('send_email') && $request->get('send_email') && $request->missing('output')) {
SendToAdmin::dispatch($user->company(), $request->all(), ClientBalanceReport::class, $this->filename);
return response()->json(['message' => 'working...'], 200);

View File

@ -66,7 +66,7 @@ class ClientContactReportController extends BaseController
/** @var \App\Models\User $user */
$user = auth()->user();
if ($request->has('send_email') && $request->get('send_email')) {
if ($request->has('send_email') && $request->get('send_email') && $request->missing('output')) {
SendToAdmin::dispatch($user->company(), $request->all(), ContactExport::class, $this->filename);
return response()->json(['message' => 'working...'], 200);

View File

@ -67,7 +67,7 @@ class ClientReportController extends BaseController
/** @var \App\Models\User $user */
$user = auth()->user();
if ($request->has('send_email') && $request->get('send_email')) {
if ($request->has('send_email') && $request->get('send_email') && $request->missing('output')) {
SendToAdmin::dispatch($user->company(), $request->all(), ClientExport::class, $this->filename);
return response()->json(['message' => 'working...'], 200);

View File

@ -65,7 +65,7 @@ class ClientSalesReportController extends BaseController
/** @var \App\Models\User $user */
$user = auth()->user();
if ($request->has('send_email') && $request->get('send_email')) {
if ($request->has('send_email') && $request->get('send_email') && $request->missing('output')) {
SendToAdmin::dispatch($user->company(), $request->all(), ClientSalesReport::class, $this->filename);
return response()->json(['message' => 'working...'], 200);

View File

@ -66,7 +66,7 @@ class CreditReportController extends BaseController
/** @var \App\Models\User $user */
$user = auth()->user();
if ($request->has('send_email') && $request->get('send_email')) {
if ($request->has('send_email') && $request->get('send_email') && $request->missing('output')) {
SendToAdmin::dispatch($user->company(), $request->all(), CreditExport::class, $this->filename);
return response()->json(['message' => 'working...'], 200);

View File

@ -67,7 +67,7 @@ class DocumentReportController extends BaseController
/** @var \App\Models\User $user */
$user = auth()->user();
if ($request->has('send_email') && $request->get('send_email')) {
if ($request->has('send_email') && $request->get('send_email') && $request->missing('output')) {
SendToAdmin::dispatch($user->company(), $request->all(), DocumentExport::class, $this->filename);
return response()->json(['message' => 'working...'], 200);

View File

@ -68,7 +68,7 @@ class ExpenseReportController extends BaseController
/** @var \App\Models\User $user */
$user = auth()->user();
if ($request->has('send_email') && $request->get('send_email')) {
if ($request->has('send_email') && $request->get('send_email') && $request->missing('output')) {
SendToAdmin::dispatch($user->company(), $request->all(), ExpenseExport::class, $this->filename);
return response()->json(['message' => 'working...'], 200);

View File

@ -66,7 +66,7 @@ class InvoiceItemReportController extends BaseController
/** @var \App\Models\User $user */
$user = auth()->user();
if ($request->has('send_email') && $request->get('send_email')) {
if ($request->has('send_email') && $request->get('send_email') && $request->missing('output')) {
SendToAdmin::dispatch($user->company(), $request->all(), InvoiceItemExport::class, $this->filename);
return response()->json(['message' => 'working...'], 200);

View File

@ -66,7 +66,7 @@ class InvoiceReportController extends BaseController
/** @var \App\Models\User $user */
$user = auth()->user();
if ($request->has('send_email') && $request->get('send_email')) {
if ($request->has('send_email') && $request->get('send_email') && $request->missing('output')) {
SendToAdmin::dispatch($user->company(), $request->all(), InvoiceExport::class, $this->filename);
return response()->json(['message' => 'working...'], 200);

View File

@ -67,7 +67,7 @@ class PaymentReportController extends BaseController
/** @var \App\Models\User $user */
$user = auth()->user();
if ($request->has('send_email') && $request->get('send_email')) {
if ($request->has('send_email') && $request->get('send_email') && $request->missing('output')) {
SendToAdmin::dispatch($user->company(), $request->all(), PaymentExport::class, $this->filename);
return response()->json(['message' => 'working...'], 200);

View File

@ -68,7 +68,7 @@ class ProductReportController extends BaseController
/** @var \App\Models\User $user */
$user = auth()->user();
if ($request->has('send_email') && $request->get('send_email')) {
if ($request->has('send_email') && $request->get('send_email') && $request->missing('output')) {
SendToAdmin::dispatch($user->company(), $request->all(), ProductExport::class, $this->filename);
return response()->json(['message' => 'working...'], 200);

View File

@ -67,7 +67,7 @@ class ProductSalesReportController extends BaseController
/** @var \App\Models\User $user */
$user = auth()->user();
if ($request->has('send_email') && $request->get('send_email')) {
if ($request->has('send_email') && $request->get('send_email') && $request->missing('output')) {
SendToAdmin::dispatch($user->company(), $request->all(), ProductSalesExport::class, $this->filename);
return response()->json(['message' => 'working...'], 200);

View File

@ -67,7 +67,7 @@ class ProfitAndLossController extends BaseController
/** @var \App\Models\User $user */
$user = auth()->user();
if ($request->has('send_email') && $request->get('send_email')) {
if ($request->has('send_email') && $request->get('send_email') && $request->missing('output')) {
SendToAdmin::dispatch($user->company(), $request->all(), ProfitLoss::class, $this->filename);
return response()->json(['message' => 'working...'], 200);

View File

@ -34,7 +34,7 @@ class PurchaseOrderItemReportController extends BaseController
/** @var \App\Models\User $user */
$user = auth()->user();
if ($request->has('send_email') && $request->get('send_email')) {
if ($request->has('send_email') && $request->get('send_email') && $request->missing('output')) {
SendToAdmin::dispatch($user->company(), $request->all(), PurchaseOrderItemExport::class, $this->filename);
return response()->json(['message' => 'working...'], 200);

View File

@ -36,7 +36,7 @@ class PurchaseOrderReportController extends BaseController
$user = auth()->user();
if ($request->has('send_email') && $request->get('send_email')) {
if ($request->has('send_email') && $request->get('send_email') && $request->missing('output')) {
SendToAdmin::dispatch($user->company(), $request->all(), PurchaseOrderExport::class, $this->filename);
return response()->json(['message' => 'working...'], 200);

View File

@ -66,7 +66,7 @@ class QuoteItemReportController extends BaseController
/** @var \App\Models\User $user */
$user = auth()->user();
if ($request->has('send_email') && $request->get('send_email')) {
if ($request->has('send_email') && $request->get('send_email') && $request->missing('output')) {
SendToAdmin::dispatch($user->company(), $request->all(), QuoteItemExport::class, $this->filename);
return response()->json(['message' => 'working...'], 200);

View File

@ -66,7 +66,7 @@ class QuoteReportController extends BaseController
/** @var \App\Models\User $user */
$user = auth()->user();
if ($request->has('send_email') && $request->get('send_email')) {
if ($request->has('send_email') && $request->get('send_email') && $request->missing('output')) {
SendToAdmin::dispatch($user->company(), $request->all(), QuoteExport::class, $this->filename);
return response()->json(['message' => 'working...'], 200);

View File

@ -34,7 +34,7 @@ class RecurringInvoiceReportController extends BaseController
/** @var \App\Models\User $user */
$user = auth()->user();
if ($request->has('send_email') && $request->get('send_email')) {
if ($request->has('send_email') && $request->get('send_email') && $request->missing('output')) {
SendToAdmin::dispatch($user->company(), $request->all(), RecurringInvoiceExport::class, $this->filename);
return response()->json(['message' => 'working...'], 200);

View File

@ -66,7 +66,8 @@ class TaskReportController extends BaseController
/** @var \App\Models\User $user */
$user = auth()->user();
if ($request->has('send_email') && $request->get('send_email')) {
if ($request->has('send_email') && $request->get('send_email') && $request->missing('output'))
{
SendToAdmin::dispatch($user->company(), $request->all(), TaskExport::class, $this->filename);
return response()->json(['message' => 'working...'], 200);

View File

@ -66,7 +66,7 @@ class TaxSummaryReportController extends BaseController
/** @var \App\Models\User $user */
$user = auth()->user();
if ($request->has('send_email') && $request->get('send_email')) {
if ($request->has('send_email') && $request->get('send_email') && $request->missing('output')) {
SendToAdmin::dispatch($user->company(), $request->all(), TaxSummaryReport::class, $this->filename);
return response()->json(['message' => 'working...'], 200);

View File

@ -65,7 +65,7 @@ class UserSalesReportController extends BaseController
/** @var \App\Models\User $user */
$user = auth()->user();
if ($request->has('send_email') && $request->get('send_email')) {
if ($request->has('send_email') && $request->get('send_email') && $request->missing('output')) {
SendToAdmin::dispatch($user->company(), $request->all(), UserSalesReport::class, $this->filename);
return response()->json(['message' => 'working...'], 200);

View File

@ -34,7 +34,7 @@ class VendorReportController extends BaseController
/** @var \App\Models\User $user */
$user = auth()->user();
if ($request->has('send_email') && $request->get('send_email')) {
if ($request->has('send_email') && $request->get('send_email') && $request->missing('output')) {
SendToAdmin::dispatch($user->company(), $request->all(), VendorExport::class, $this->filename);
return response()->json(['message' => 'working...'], 200);

View File

@ -796,15 +796,18 @@ class Client extends BaseModel implements HasLocalePreference
{
$defaults = [];
if (! (array_key_exists('terms', $data) && is_string($data['terms']) && strlen($data['terms']) > 1)) {
$terms = &$data['terms'];
$footer = &$data['footer'];
if (!$terms || ($terms && strlen((string)$terms) == 0)) {
$defaults['terms'] = $this->getSetting($entity_name.'_terms');
} elseif (array_key_exists('terms', $data)) {
} elseif ($terms) {
$defaults['terms'] = $data['terms'];
}
if (! (array_key_exists('footer', $data) && is_string($data['footer']) && strlen($data['footer']) > 1)) {
if (!$footer || ($footer && strlen((string)$footer) == 0)) {
$defaults['footer'] = $this->getSetting($entity_name.'_footer');
} elseif (array_key_exists('footer', $data)) {
} elseif ($footer) {
$defaults['footer'] = $data['footer'];
}

View File

@ -167,7 +167,8 @@ class BaseRepository
$company_defaults = $client->setCompanyDefaults($data, lcfirst($resource));
$data['exchange_rate'] = $company_defaults['exchange_rate'];
$model->uses_inclusive_taxes = $client->getSetting('inclusive_taxes');
$data = array_merge($company_defaults, $data);
// $data = array_merge($company_defaults, $data);
$data = array_merge($data, $company_defaults);
}
$tmp_data = $data; //preserves the $data array