mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2024-09-20 00:11:35 +02:00
Document support for quotes, recurring invoices, and cloning
This commit is contained in:
parent
cd8290946e
commit
d328db2f54
@ -204,6 +204,21 @@ class Document extends EntityModel
|
||||
$array['preview_url'] = $this->getPreviewUrl();
|
||||
return $array;
|
||||
}
|
||||
|
||||
public function cloneDocument(){
|
||||
$document = Document::createNew($this);
|
||||
$document->path = $this->path;
|
||||
$document->preview = $this->preview;
|
||||
$document->name = $this->name;
|
||||
$document->type = $this->type;
|
||||
$document->disk = $this->disk;
|
||||
$document->hash = $this->hash;
|
||||
$document->size = $this->size;
|
||||
$document->width = $this->width;
|
||||
$document->height = $this->height;
|
||||
|
||||
return $document;
|
||||
}
|
||||
}
|
||||
|
||||
Document::deleted(function ($document) {
|
||||
|
@ -403,6 +403,13 @@ class InvoiceRepository extends BaseRepository
|
||||
foreach ($document_ids as $document_id){
|
||||
$document = Document::scope($document_id)->first();
|
||||
if($document && !$checkSubPermissions || $document->canEdit()){
|
||||
|
||||
if($document->invoice_id && $document->invoice_id != $invoice->id){
|
||||
// From a clone
|
||||
$document = $document->cloneDocument();
|
||||
$document_ids[] = $document->public_id;// Don't remove this document
|
||||
}
|
||||
|
||||
$document->invoice_id = $invoice->id;
|
||||
$document->save();
|
||||
}
|
||||
@ -412,7 +419,10 @@ class InvoiceRepository extends BaseRepository
|
||||
if(!in_array($document->public_id, $document_ids)){
|
||||
// Removed
|
||||
if(!$checkSubPermissions || $document->canEdit()){
|
||||
$document->delete();
|
||||
if($document->invoice_id == $invoice->id){
|
||||
// Make sure the document isn't on a clone
|
||||
$document->delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -572,6 +582,11 @@ class InvoiceRepository extends BaseRepository
|
||||
$clone->invoice_items()->save($cloneItem);
|
||||
}
|
||||
|
||||
foreach ($invoice->documents as $document) {
|
||||
$cloneDocument = $document->cloneDocument();
|
||||
$invoice->documents()->save($cloneDocument);
|
||||
}
|
||||
|
||||
foreach ($invoice->invitations as $invitation) {
|
||||
$cloneInvitation = Invitation::createNew($invoice);
|
||||
$cloneInvitation->contact_id = $invitation->contact_id;
|
||||
@ -676,6 +691,11 @@ class InvoiceRepository extends BaseRepository
|
||||
$invoice->invoice_items()->save($item);
|
||||
}
|
||||
|
||||
foreach ($recurInvoice->documents as $recurDocument) {
|
||||
$document = $recurDocument->cloneDocument();
|
||||
$invoice->documents()->save($document);
|
||||
}
|
||||
|
||||
foreach ($recurInvoice->invitations as $recurInvitation) {
|
||||
$invitation = Invitation::createNew($recurInvitation);
|
||||
$invitation->contact_id = $recurInvitation->contact_id;
|
||||
|
@ -271,7 +271,7 @@
|
||||
<li role="presentation"><a href="#terms" aria-controls="terms" role="tab" data-toggle="tab">{{ trans("texts.{$entityType}_terms") }}</a></li>
|
||||
<li role="presentation"><a href="#footer" aria-controls="footer" role="tab" data-toggle="tab">{{ trans("texts.{$entityType}_footer") }}</a></li>
|
||||
@if ($account->isPro())
|
||||
<li role="presentation"><a href="#attached-documents" aria-controls="attached-documents" role="tab" data-toggle="tab">{{ trans("texts.{$entityType}_documents") }}</a></li>
|
||||
<li role="presentation"><a href="#attached-documents" aria-controls="attached-documents" role="tab" data-toggle="tab">{{ trans("texts.invoice_documents") }}</a></li>
|
||||
@endif
|
||||
</ul>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user