diff --git a/app/controllers/documents_controller.php b/app/controllers/documents_controller.php
index 2096220f..039f0dcc 100755
--- a/app/controllers/documents_controller.php
+++ b/app/controllers/documents_controller.php
@@ -25,7 +25,8 @@ class DocumentsController extends AppController {
$this->Session->setFlash(__('Invalid Document.', true));
$this->redirect(array('action'=>'index'));
}
- $document = $this->Document->read(null,$id);
+ //$document = $this->Document->read(null,$id);
+ $document = $this->Document->find('first', array('conditions' => array('Document.id' => $id), 'recursive'=>1));
$this->set('document', $document);
@@ -77,6 +78,12 @@ class DocumentsController extends AppController {
case 'purchaseOrder':
$docTypeElement = 'document_purchase_order_view';
$this->set('currencies', $this->Document->PurchaseOrder->Currency->find('list'));
+ $this->set('purchaseOrder', $this->Document->PurchaseOrder->find('first',
+ array('conditions'=>
+ array('PurchaseOrder.id' => $document['PurchaseOrder']['id'])
+ )
+ ));
+
break;
case 'orderAck':
$this->set('currencies', $this->Document->OrderAcknowledgement->Currency->find('list'));
@@ -266,7 +273,7 @@ class DocumentsController extends AppController {
break;
case "purchaseOrder":
- $enquiry = $this->Document->OrderAcknowledgement->Enquiry->read(null, $enquiryid);
+ //$enquiry = $this->Document->OrderAcknowledgement->Enquiry->read(null, $enquiryid);
$count = $this->Document->PurchaseOrder->findCount();
$count++;
$offset = 2060;
@@ -295,9 +302,8 @@ ALEXANDRIA NSW 2015 AUSTRALIA
ENDINSTRUCTIONS;
-
-
- $this->data['Document']['user_id']= $enquiry['Enquiry']['user_id'];
+ $currentuser = $this->Session->read('Auth.User');
+ $this->data['Document']['user_id'] = $currentuser['id'];
$this->data['Document']['revision'] = 0; //No revisions for POs. I have decreed it!
$this->data['Document']['type'] = 'purchaseOrder';
break;
@@ -492,6 +498,31 @@ ENDINSTRUCTIONS;
$this->Document->DocPage->deleteAll(array('document_id'=>$docID));
$this->Document->DocPage->updateCounterCache(array('document_id'=>$docID));
+ if(isset($this->data['PurchaseOrder'])) {
+ //Delete all the existing JobPurchaseOrder relationships for this PO.
+ //Fuck it. @TODO SQL injection potential here.
+ $query = "DELETE FROM jobs_purchase_orders WHERE purchase_order_id =".$this->data['PurchaseOrder']['id'];
+ $result = $this->Document->query($query);
+
+ }
+
+ if(isset($this->data['PurchaseOrder']['Job'])) {
+ //Loop over the submitted Jobs and add them. Fuck CakePHP is a piece of shit.
+ //This is easier than using the fucking built in crap that doesnt work.
+ //Fuck everything about this.
+ $po_id = $this->data['PurchaseOrder']['id'];
+ foreach($this->data['PurchaseOrder']['Job'] as $job_id) {
+ $query = "INSERT INTO `quotenik`.`jobs_purchase_orders` (`id`, `job_id`, `purchase_order_id`) VALUES (NULL, '{$job_id}', '{$po_id}');";
+ $this->Document->query($query);
+ }
+
+ $result = $this->Document->PurchaseOrder->saveAll($this->data['PurchaseOrder']);
+
+
+ //die(print_r($this->data['PurchaseOrder']));
+ //die(print_r($result));
+ //die(print_r($this->data));
+ }
if ($this->Document->saveAll($this->data)) {
echo 'SUCCESS';
@@ -851,6 +882,51 @@ ENDINSTRUCTIONS;
}
+ function add_job_items_to_po($job_id, $document_id) {
+ $this->layout = 'ajax';
+ $job = $this->Document->PurchaseOrder->Job->find('first', array('conditions'=>array('Job.id' => $job_id)));
+
+ $orderack = $this->Document->OrderAcknowledgement->find('first', array('conditions'=>array('OrderAcknowledgement.enquiry_id' => $job['Job']['enquiry_id']), 'recursive' => 1));
+
+ $oa_document = $this->Document->find('first',
+ array('conditions'=>
+ array('Document.id' => $orderack['Document']['id']
+ )
+ )
+ );
+
+
+ $destination_document = $this->Document->find('first', array('conditions'=>array('Document.id' => $document_id)));
+
+ $new_items = $this->copy_related($oa_document, 'LineItem', array('id', 'document_id', 'costing_id'));
+
+ $last_item_number = 1.0;
+ foreach($destination_document['LineItem'] as $item) {
+ $last_item_number = $item['item_number'];
+ }
+ if($last_item_number != 1.0) { //Fuck knows
+ $last_item_number++;
+ }
+
+ foreach($new_items as $i => $item) {
+ $item['item_number'] = $last_item_number++;
+ $item['document_id'] = $document_id;
+ $destination_document['LineItem'][] = $item;
+ }
+
+
+
+ if ($this->Document->LineItem->saveAll($destination_document['LineItem'])) {
+ echo 'SUCCESS';
+ }
+ else {
+ echo 'FAILURE';
+
+ }
+
+ }
+
+
function costing() {
}
diff --git a/app/views/documents/add_job_items_to_po.ctp b/app/views/documents/add_job_items_to_po.ctp
new file mode 100644
index 00000000..e69de29b
diff --git a/app/views/elements/document_purchase_order_view.ctp b/app/views/elements/document_purchase_order_view.ctp
index 2bba11f1..25600124 100755
--- a/app/views/elements/document_purchase_order_view.ctp
+++ b/app/views/elements/document_purchase_order_view.ctp
@@ -1,5 +1,4 @@