mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2024-11-11 13:42:49 +01:00
Merge invoice document/api fix to master
This commit is contained in:
parent
bf19a77053
commit
8e6113dad0
@ -484,31 +484,33 @@ class InvoiceRepository extends BaseRepository
|
|||||||
$invoice->invoice_items()->forceDelete();
|
$invoice->invoice_items()->forceDelete();
|
||||||
}
|
}
|
||||||
|
|
||||||
$document_ids = !empty($data['document_ids'])?array_map('intval', $data['document_ids']):[];;
|
if ( ! empty($data['document_ids'])) {
|
||||||
foreach ($document_ids as $document_id){
|
$document_ids = array_map('intval', $data['document_ids']);
|
||||||
$document = Document::scope($document_id)->first();
|
foreach ($document_ids as $document_id){
|
||||||
if($document && Auth::user()->can('edit', $document)){
|
$document = Document::scope($document_id)->first();
|
||||||
|
if($document && Auth::user()->can('edit', $document)){
|
||||||
|
|
||||||
if($document->invoice_id && $document->invoice_id != $invoice->id){
|
if($document->invoice_id && $document->invoice_id != $invoice->id){
|
||||||
// From a clone
|
// From a clone
|
||||||
$document = $document->cloneDocument();
|
$document = $document->cloneDocument();
|
||||||
$document_ids[] = $document->public_id;// Don't remove this document
|
$document_ids[] = $document->public_id;// Don't remove this document
|
||||||
|
}
|
||||||
|
|
||||||
|
$document->invoice_id = $invoice->id;
|
||||||
|
$document->expense_id = null;
|
||||||
|
$document->save();
|
||||||
}
|
}
|
||||||
|
|
||||||
$document->invoice_id = $invoice->id;
|
|
||||||
$document->expense_id = null;
|
|
||||||
$document->save();
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if ( ! $invoice->wasRecentlyCreated) {
|
if ( ! $invoice->wasRecentlyCreated) {
|
||||||
foreach ($invoice->documents as $document){
|
foreach ($invoice->documents as $document){
|
||||||
if(!in_array($document->public_id, $document_ids)){
|
if(!in_array($document->public_id, $document_ids)){
|
||||||
// Removed
|
// Removed
|
||||||
// Not checking permissions; deleting a document is just editing the invoice
|
// Not checking permissions; deleting a document is just editing the invoice
|
||||||
if($document->invoice_id == $invoice->id){
|
if($document->invoice_id == $invoice->id){
|
||||||
// Make sure the document isn't on a clone
|
// Make sure the document isn't on a clone
|
||||||
$document->delete();
|
$document->delete();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user