Moved Revision to Document model. Impelemtned document-generic revision system
This commit is contained in:
parent
69f2e7b633
commit
87b56d5666
|
|
@ -108,6 +108,102 @@ class DocumentsController extends AppController {
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Create a New Document
|
||||
*
|
||||
*
|
||||
* @param <type> $type
|
||||
* @param <type> $id
|
||||
*/
|
||||
function newDocument($type = null, $id = null) {
|
||||
if(!$type|| !$id) {
|
||||
$this->Session->setFlash('Invalid Doc Type or ID');
|
||||
}
|
||||
|
||||
$this->Document->create();
|
||||
|
||||
switch($type) {
|
||||
case "quote":
|
||||
|
||||
$enquiryid = $id;
|
||||
$enquiry = $this->Document->Quote->Enquiry->findById($id);
|
||||
|
||||
if(!$enquiry) {
|
||||
$this->Session->setFlash('Invalid Enquiry ID');
|
||||
$this->redirect(array('action'=>'index'));
|
||||
return;
|
||||
}
|
||||
|
||||
$this->data['Document']['enquiry_id'] = $enquiryid;
|
||||
|
||||
$this->data['Quote']['enquiry_id'] = $enquiryid;
|
||||
$number_of_revisions = $this->Document->Quote->findCount('Quote.enquiry_id ='. $enquiryid);
|
||||
$this->data['Document']['revision'] = $number_of_revisions;
|
||||
$this->data['Quote']['date_issued'] = date('Y-m-d');
|
||||
$this->data['Quote']['currency_id'] = 2; //All new Quotes default to AUD.
|
||||
|
||||
$this->data['Document']['user_id']= $enquiry['Enquiry']['user_id'];
|
||||
$this->data['Document']['enquiry_id'] = $enquiryid;
|
||||
$this->data['Document']['type'] = 'quote';
|
||||
break;
|
||||
case "invoice":
|
||||
break;
|
||||
case "purchaseOrder":
|
||||
break;
|
||||
case "orderAck":
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
if ($this->Document->saveAll($this->data)) {
|
||||
$newid = $this->Document->id;
|
||||
|
||||
$this->Session->setFlash(__('The Document has been saved', true));
|
||||
$this->redirect(array('action'=>'view',$newid));
|
||||
} else {
|
||||
$this->Session->setFlash(__('The Document could not be saved. Please, try again.', true));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Revise a Document.
|
||||
*
|
||||
* @param int $id - the document ID we want to make a new revision of.
|
||||
* @return <type>
|
||||
*/
|
||||
|
||||
function revise($id = null) {
|
||||
if(!$id) {
|
||||
$this->Session->setFlash('Invalid Document ID');
|
||||
return;
|
||||
}
|
||||
|
||||
$document = $this->Document->find('first', array('conditions' => array('Document.id' => $id)));
|
||||
|
||||
$this->set('document', $document);
|
||||
|
||||
if(!empty($document['Invoice']['id'])) {
|
||||
echo "WE HAVE AN INVOICE";
|
||||
}
|
||||
else if (!empty($document['Quote']['id'])) {
|
||||
echo "WE ARE REVISING A QUOTE";
|
||||
}
|
||||
|
||||
else if (!empty($document['PurchaseOrder']['id'])) {
|
||||
echo "WE ARE REVISING A PO";
|
||||
}
|
||||
|
||||
|
||||
else if (!empty($document['OrderAcknowledgement']['id'])) {
|
||||
echo "WE ARE REVISING An ORDER ACK";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Create a new Quote, along with its associated Document and the first two pages.
|
||||
|
|
@ -305,6 +401,8 @@ class DocumentsController extends AppController {
|
|||
$this->set('colWidths',$colWidths);
|
||||
}
|
||||
|
||||
|
||||
//Called via AJAX to generate Quotation First Pages.
|
||||
function generateFirstPage($id = null) {
|
||||
$this->layout = 'ajax';
|
||||
|
||||
|
|
@ -314,7 +412,6 @@ class DocumentsController extends AppController {
|
|||
|
||||
$document = $this->Document->read(null, $id);
|
||||
$this->set('document',$document);
|
||||
|
||||
$enquiry = $this->Document->Quote->Enquiry->read(null, $document['Quote']['enquiry_id']);
|
||||
$this->set('enquiry', $enquiry);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,10 +52,9 @@ class EnquiriesController extends AppController {
|
|||
$this->set('emails', $emails);
|
||||
|
||||
//$this->set('quotes', $enquiry['Quote']);
|
||||
$this->set('quotes', $this->Enquiry->Quote->find('all', array('conditions'=>array('Quote.enquiry_id'=>$id), 'order'=>'Quote.revision DESC')));
|
||||
|
||||
$this->set('invoices', $this->Enquiry->Invoice->find('all', array('conditions' => array('Invoice.enquiry_id' => $id))));
|
||||
$this->set('quotes', $this->Enquiry->Quote->find('all', array('conditions'=>array('Quote.enquiry_id'=>$id), 'order'=>'Document.revision DESC')));
|
||||
|
||||
$this->set('invoices', $this->Enquiry->Invoice->find('all', array('conditions' => array('Invoice.enquiry_id' => $id), 'order'=>'Document.revision DESC')));
|
||||
|
||||
$this->pageTitle = "Enquiry: ".$enquiry['Enquiry']['title'];
|
||||
|
||||
|
|
|
|||
|
|
@ -19,17 +19,11 @@ class Invoice extends AppModel {
|
|||
'Enquiry' => array(
|
||||
'className' => 'Enquiry',
|
||||
'foreignKey' => 'enquiry_id',
|
||||
'conditions' => '',
|
||||
'fields' => '',
|
||||
'order' => '',
|
||||
'counterCache'=>true
|
||||
),
|
||||
'User' => array(
|
||||
'className' => 'User',
|
||||
'foreignKey' => 'user_id',
|
||||
'conditions' => '',
|
||||
'fields' => '',
|
||||
'order' => ''
|
||||
),
|
||||
'Customer' => array(
|
||||
'className' => 'Customer',
|
||||
|
|
|
|||
45
vendors/shells/update_quote_revisions.php
vendored
Executable file
45
vendors/shells/update_quote_revisions.php
vendored
Executable file
|
|
@ -0,0 +1,45 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
i* file: Fix Quote revisions now that revision attribute is going to Documents
|
||||
*
|
||||
*/
|
||||
|
||||
class UpdateQuoteRevisionsShell extends Shell {
|
||||
|
||||
|
||||
var $uses = array('Enquiry', 'Quote', 'Document');
|
||||
|
||||
|
||||
function main() {
|
||||
|
||||
// $enquiries = $this->Enquiry->find('all');
|
||||
|
||||
// print_r($enquiries);
|
||||
|
||||
$quotes = $this->Quote->find('all');
|
||||
|
||||
|
||||
foreach($quotes as $quote) {
|
||||
|
||||
if($quote['Quote']['revision'] != 0) {
|
||||
echo 'Quote: '. $quote['Quote']['id'].' Document: '.$quote['Document']['id'];
|
||||
echo "\tQuote Revision is: {$quote['Quote']['revision']} Doc Revision is: {$quote['Document']['revision']} \n";
|
||||
|
||||
$this->Document->read(null, $quote['Document']['id']);
|
||||
$this->Document->set('revision', $quote['Quote']['revision']);
|
||||
|
||||
if($this->Document->save()) {
|
||||
echo "Updated Document ID\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
|
|
@ -4,6 +4,21 @@ echo $javascript->link('ckeditor/adapters/jquery');
|
|||
|
||||
echo $javascript->link('document_add_edit');
|
||||
|
||||
?>
|
||||
|
||||
<h2><?=$docTypeFullName?>: <?=$html->link($enquiry['Enquiry']['title'], array('controller'=>'enquiries','action'=>'view',$enquiry['Enquiry']['id']));?> <?
|
||||
if($document['Document']['revision'] > 0) {
|
||||
echo "Revision {$document['Document']['revision']} ";
|
||||
}
|
||||
?>
|
||||
for
|
||||
<?=$html->link($enquiry['Customer']['name'], array('controller'=>'customers','action'=>'view',$enquiry['Customer']['id']));?>
|
||||
</h2>
|
||||
|
||||
<?=$this->element('pdf_created_message'); ?>
|
||||
|
||||
<?
|
||||
|
||||
switch($docType) {
|
||||
case 'quote':
|
||||
echo $this->element('document_quote_view');
|
||||
|
|
|
|||
|
|
@ -1,13 +1,4 @@
|
|||
<h2>Quote: <?=$html->link($enquiry['Enquiry']['title'], array('controller'=>'enquiries','action'=>'view',$enquiry['Enquiry']['id']));?> <?
|
||||
if($document['Quote']['revision'] > 0) {
|
||||
echo "Revision {$document['Quote']['revision']} ";
|
||||
}
|
||||
?>
|
||||
for
|
||||
<?=$html->link($enquiry['Customer']['name'], array('controller'=>'customers','action'=>'view',$enquiry['Customer']['id']));?>
|
||||
</h2>
|
||||
|
||||
<?=$this->element('pdf_created_message'); ?>
|
||||
<?
|
||||
|
||||
echo $form->create('Document',array('type'=>'post','action'=>'edit', 'default'=>false));
|
||||
|
|
|
|||
|
|
@ -21,13 +21,13 @@
|
|||
$i++;
|
||||
?>
|
||||
<tr<?php echo $class;?>>
|
||||
<td><?php echo $quote['Quote']['revision'];?></td>
|
||||
<td><?php echo $quote['Document']['revision'];?></td>
|
||||
<td><?php echo $quote['Currency']['iso4217'];?></td>
|
||||
<td><?php echo $time->nice($quote['Quote']['created']);?></td>
|
||||
<td class="actions">
|
||||
|
||||
<?php echo $html->link(__('View', true), array('controller'=> 'documents', 'action'=>'view', $quote['Quote']['document_id'])); ?>
|
||||
<?php echo $html->link(__('Revise', true), array('controller'=>'quotes', 'action'=>'revise', $quote['Quote']['id']));
|
||||
<?php echo $html->link(__('Revise', true), array('controller'=>'documents', 'action'=>'revise', $quote['Quote']['document_id']));
|
||||
?>
|
||||
|
||||
|
||||
|
|
@ -39,7 +39,7 @@
|
|||
|
||||
<div class="actions">
|
||||
<ul>
|
||||
<li><?php echo $html->link(__('New Quote', true), array('controller'=> 'documents', 'action'=>'newQuote',$enquiry['Enquiry']['id']));?> </li>
|
||||
<li><?php echo $html->link(__('New Quote', true), array('controller'=> 'documents', 'action'=>'newDocument/quote/'.$enquiry['Enquiry']['id']));?> </li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -323,7 +323,9 @@
|
|||
|
||||
<div class="actions">
|
||||
<ul>
|
||||
<li><?php echo $html->link(__('New Invoice', true), array('controller'=>'invoices', 'action' => 'add/enquiryid:'.$enquiry['Enquiry']['id'])); ?></li>
|
||||
<li><?php //echo $html->link(__('New Invoice', true), array('controller'=>'invoices', 'action' => 'add/enquiryid:'.$enquiry['Enquiry']['id'])); ?>
|
||||
</li>
|
||||
<li><?php echo $html->link(__('New Invoice', true), array('controller'=>'documents', 'action' => 'newDocument/invoice/'.$enquiry['Enquiry']['id'])); ?></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue