public function indexAction() { $this->_helper->getHelper('layout')->disableLayout(); $processid = $this->_getParam('processid', 0); $locale = Zend_Registry::get('Zend_Locale'); //Get process $processDb = new Processes_Model_DbTable_Process(); $process = $processDb->getProcess($processid); //Get positions $positions = $this->getPositions($processid); //Get units of measurements $uoms = $this->_helper->Uom->getUoms(); $uoms = array_combine($uoms, $uoms); //Get shipping methods $shippingmethods = $this->_helper->ShippingMethod->getShippingMethods($this->_user['clientid']); $forms = array(); $orderings = array(); foreach ($positions as $position) { $orderings[$position->ordering] = $position->ordering; } foreach ($positions as $position) { $position->price = $this->_currency->toCurrency($position->price); $position->supplierinvoicetotal = $this->_currency->toCurrency($position->supplierinvoicetotal); $position->quantity = Zend_Locale_Format::toNumber($position->quantity, array('precision' => 2, 'locale' => $locale)); $form = new Processes_Form_Processpos(); $forms[$position->id] = $form->populate($position->toArray()); $forms[$position->id]->uom->addMultiOptions($uoms); $forms[$position->id]->ordering->addMultiOptions($orderings); $forms[$position->id]->shippingmethod->addMultiOptions($shippingmethods); foreach ($forms[$position->id] as $element) { $id = $element->getId(); $forms[$position->id]->{$id}->setAttrib('id', $id . $position->id); if (!$process['editpositionsseparately']) { $element->setAttrib('disabled', 'disabled'); } } } $this->view->forms = $forms; $this->view->toolbar = new Processes_Form_ToolbarPositions(); }
public function generateprocessAction() { $id = $this->_getParam('id', 0); $salesorderDb = new Sales_Model_DbTable_Salesorder(); $salesorder = $salesorderDb->getSalesorder($id); $data = array(); $form = new Processes_Form_Process(); $elements = $form->getElements(); foreach ($elements as $key => $value) { if (isset($salesorder[$key])) { $data[$key] = $salesorder[$key]; } } $data['subtotal'] = $salesorder['subtotal']; $data['taxes'] = $salesorder['taxes']; $data['total'] = $salesorder['total']; $data['customerid'] = $salesorder['contactid']; $data['deliverystatus'] = 'deliveryIsWaiting'; $data['supplierorderstatus'] = 'supplierNotOrdered'; $data['paymentstatus'] = 'waitingForPayment'; $data['state'] = 100; $data['completed'] = 0; $data['cancelled'] = 0; $data["created"] = $this->_date; $data["createdby"] = $this->_user['id']; $data["modified"] = "0000-00-00"; $data["modifiedby"] = 0; unset($data["id"]); $process = new Processes_Model_DbTable_Process(); $processID = $process->addProcess($data); $positions = $this->getPositions($id); $processposDb = new Processes_Model_DbTable_Processpos(); foreach ($positions as $position) { $positionData = array(); $positionForm = new Processes_Form_Processpos(); $positionElements = $positionForm->getElements(); foreach ($positionElements as $key => $value) { if (isset($position->{$key})) { $positionData[$key] = $position->{$key}; } } $positionData['processid'] = $processID; $positionData['taxrate'] = $position->taxrate; $positionData['deliverystatus'] = 'deliveryIsWaiting'; $positionData['supplierorderstatus'] = 'supplierNotOrdered'; $positionData["created"] = $this->_date; $positionData["createdby"] = $this->_user['id']; $positionData["modified"] = "0000-00-00"; $positionData["modifiedby"] = 0; unset($positionData['id']); $processposDb->addPosition($positionData); } $this->_flashMessenger->addMessage('MESSAGES_PROCESS_SUCCESFULLY_GENERATED'); $this->_helper->redirector->gotoSimple('index', 'process', 'processes'); }
protected function getHistory($id) { $this->_currency->setFormat(array('display' => Zend_Currency::USE_SYMBOL)); $documentrelationDb = new Application_Model_DbTable_Documentrelation(); $documentrelations = $documentrelationDb->fetchAll($documentrelationDb->select()->where('contactid = ?', $id)); $documentrelationIDs = array(); foreach ($documentrelations as $documentrelation) { if (!isset($documentrelationIDs[$documentrelation['module']][$documentrelation['controller']])) { $documentrelationIDs[$documentrelation['module']][$documentrelation['controller']] = array(); } array_push($documentrelationIDs[$documentrelation['module']][$documentrelation['controller']], $documentrelation['documentid']); } //Quotes $quoteDb = new Sales_Model_DbTable_Quote(); if (isset($documentrelationIDs['sales']['quote'])) { $history['quotes'] = $quoteDb->fetchAll($quoteDb->select()->where('contactid = ?', $id)->where('clientid = ?', $this->_user['clientid'])->orWhere('id IN (?)', $documentrelationIDs['sales']['quote'])->where('clientid = ?', $this->_user['clientid'])); } else { $history['quotes'] = $quoteDb->fetchAll($quoteDb->select()->where('contactid = ?', $id)->where('clientid = ?', $this->_user['clientid'])); } foreach ($history['quotes'] as $quote) { $quote->subtotal = $this->_currency->toCurrency($quote->subtotal); $quote->taxes = $this->_currency->toCurrency($quote->taxes); $quote->total = $this->_currency->toCurrency($quote->total); if ($quote->quotedate && $quote->quotedate != '0000-00-00') { $quote->quotedate = date('d.m.Y', strtotime($quote->quotedate)); } if ($quote->modified && $quote->modified != '0000-00-00') { $quote->modified = date('d.m.Y', strtotime($quote->modified)); } if ($quote->deliverydate && $quote->deliverydate != '0000-00-00') { $quote->deliverydate = date('d.m.Y', strtotime($quote->deliverydate)); } } //Sales orders $salesorderDb = new Sales_Model_DbTable_Salesorder(); if (isset($documentrelationIDs['sales']['salesorder'])) { $history['salesorders'] = $salesorderDb->fetchAll($salesorderDb->select()->where('contactid = ?', $id)->where('clientid = ?', $this->_user['clientid'])->orWhere('id IN (?)', $documentrelationIDs['sales']['salesorder'])->where('clientid = ?', $this->_user['clientid'])); } else { $history['salesorders'] = $salesorderDb->fetchAll($salesorderDb->select()->where('contactid = ?', $id)->where('clientid = ?', $this->_user['clientid'])); } foreach ($history['salesorders'] as $salesorder) { $salesorder->subtotal = $this->_currency->toCurrency($salesorder->subtotal); $salesorder->taxes = $this->_currency->toCurrency($salesorder->taxes); $salesorder->total = $this->_currency->toCurrency($salesorder->total); if ($salesorder->salesorderdate && $salesorder->salesorderdate != '0000-00-00') { $salesorder->salesorderdate = date('d.m.Y', strtotime($salesorder->salesorderdate)); } if ($salesorder->modified && $salesorder->modified != '0000-00-00') { $salesorder->modified = date('d.m.Y', strtotime($salesorder->modified)); } if ($salesorder->deliverydate && $salesorder->deliverydate != '0000-00-00') { $salesorder->deliverydate = date('d.m.Y', strtotime($salesorder->deliverydate)); } } //Invoices $invoiceDb = new Sales_Model_DbTable_Invoice(); if (isset($documentrelationIDs['sales']['invoice'])) { $history['invoices'] = $invoiceDb->fetchAll($invoiceDb->select()->where('contactid = ?', $id)->where('clientid = ?', $this->_user['clientid'])->orWhere('id IN (?)', $documentrelationIDs['sales']['invoice'])->where('clientid = ?', $this->_user['clientid'])); } else { $history['invoices'] = $invoiceDb->fetchAll($invoiceDb->select()->where('contactid = ?', $id)->where('clientid = ?', $this->_user['clientid'])); } foreach ($history['invoices'] as $invoice) { $invoice->subtotal = $this->_currency->toCurrency($invoice->subtotal); $invoice->taxes = $this->_currency->toCurrency($invoice->taxes); $invoice->total = $this->_currency->toCurrency($invoice->total); if ($invoice->invoicedate && $invoice->invoicedate != '0000-00-00') { $invoice->invoicedate = date('d.m.Y', strtotime($invoice->invoicedate)); } if ($invoice->modified && $invoice->modified != '0000-00-00') { $invoice->modified = date('d.m.Y', strtotime($invoice->modified)); } if ($invoice->deliverydate && $invoice->deliverydate != '0000-00-00') { $invoice->deliverydate = date('d.m.Y', strtotime($invoice->deliverydate)); } } //Delivery orders $deliveryorderDb = new Sales_Model_DbTable_Deliveryorder(); if (isset($documentrelationIDs['sales']['deliveryorder'])) { $history['deliveryorders'] = $deliveryorderDb->fetchAll($deliveryorderDb->select()->where('contactid = ?', $id)->where('clientid = ?', $this->_user['clientid'])->orWhere('id IN (?)', $documentrelationIDs['sales']['deliveryorder'])->where('clientid = ?', $this->_user['clientid'])); } else { $history['deliveryorders'] = $deliveryorderDb->fetchAll($deliveryorderDb->select()->where('contactid = ?', $id)->where('clientid = ?', $this->_user['clientid'])); } foreach ($history['deliveryorders'] as $deliveryorder) { $deliveryorder->subtotal = $this->_currency->toCurrency($deliveryorder->subtotal); $deliveryorder->taxes = $this->_currency->toCurrency($deliveryorder->taxes); $deliveryorder->total = $this->_currency->toCurrency($deliveryorder->total); if ($deliveryorder->deliveryorderdate && $deliveryorder->deliveryorderdate != '0000-00-00') { $deliveryorder->deliveryorderdate = date('d.m.Y', strtotime($deliveryorder->deliveryorderdate)); } if ($deliveryorder->modified && $deliveryorder->modified != '0000-00-00') { $deliveryorder->modified = date('d.m.Y', strtotime($deliveryorder->modified)); } if ($deliveryorder->deliverydate && $deliveryorder->deliverydate != '0000-00-00') { $deliveryorder->deliverydate = date('d.m.Y', strtotime($deliveryorder->deliverydate)); } } //Credit notes $creditnoteDb = new Sales_Model_DbTable_Creditnote(); if (isset($documentrelationIDs['sales']['creditnote'])) { $history['creditnotes'] = $creditnoteDb->fetchAll($creditnoteDb->select()->where('contactid = ?', $id)->where('clientid = ?', $this->_user['clientid'])->orWhere('id IN (?)', $documentrelationIDs['sales']['creditnote'])->where('clientid = ?', $this->_user['clientid'])); } else { $history['creditnotes'] = $creditnoteDb->fetchAll($creditnoteDb->select()->where('contactid = ?', $id)->where('clientid = ?', $this->_user['clientid'])); } foreach ($history['creditnotes'] as $creditnote) { $creditnote->subtotal = $this->_currency->toCurrency($creditnote->subtotal); $creditnote->taxes = $this->_currency->toCurrency($creditnote->taxes); $creditnote->total = $this->_currency->toCurrency($creditnote->total); if ($creditnote->creditnotedate && $creditnote->creditnotedate != '0000-00-00') { $creditnote->creditnotedate = date('d.m.Y', strtotime($creditnote->creditnotedate)); } if ($creditnote->modified && $creditnote->modified != '0000-00-00') { $creditnote->modified = date('d.m.Y', strtotime($creditnote->modified)); } if ($creditnote->deliverydate && $creditnote->deliverydate != '0000-00-00') { $creditnote->deliverydate = date('d.m.Y', strtotime($creditnote->deliverydate)); } } //Quote requests $quoterequestDb = new Purchases_Model_DbTable_Quoterequest(); if (isset($documentrelationIDs['purchases']['quoterequest'])) { $history['quoterequests'] = $quoterequestDb->fetchAll($quoterequestDb->select()->where('contactid = ?', $id)->where('clientid = ?', $this->_user['clientid'])->orWhere('id IN (?)', $documentrelationIDs['purchases']['quoterequest'])->where('clientid = ?', $this->_user['clientid'])); } else { $history['quoterequests'] = $quoterequestDb->fetchAll($quoterequestDb->select()->where('contactid = ?', $id)->where('clientid = ?', $this->_user['clientid'])); } foreach ($history['quoterequests'] as $quoterequest) { $quoterequest->subtotal = $this->_currency->toCurrency($quoterequest->subtotal); $quoterequest->taxes = $this->_currency->toCurrency($quoterequest->taxes); $quoterequest->total = $this->_currency->toCurrency($quoterequest->total); if ($quoterequest->quoterequestdate && $quoterequest->quoterequestdate != '0000-00-00') { $quoterequest->quoterequestdate = date('d.m.Y', strtotime($quoterequest->quoterequestdate)); } if ($quoterequest->modified && $quoterequest->modified != '0000-00-00') { $quoterequest->modified = date('d.m.Y', strtotime($quoterequest->modified)); } if ($quoterequest->deliverydate && $quoterequest->deliverydate != '0000-00-00') { $quoterequest->deliverydate = date('d.m.Y', strtotime($quoterequest->deliverydate)); } } //Purchase orders $purchaseorderDb = new Purchases_Model_DbTable_Purchaseorder(); if (isset($documentrelationIDs['purchases']['purchaseorder'])) { $history['purchaseorders'] = $purchaseorderDb->fetchAll($purchaseorderDb->select()->where('contactid = ?', $id)->where('clientid = ?', $this->_user['clientid'])->orWhere('id IN (?)', $documentrelationIDs['purchases']['purchaseorder'])->where('clientid = ?', $this->_user['clientid'])); } else { $history['purchaseorders'] = $purchaseorderDb->fetchAll($purchaseorderDb->select()->where('contactid = ?', $id)->where('clientid = ?', $this->_user['clientid'])); } foreach ($history['purchaseorders'] as $purchaseorder) { $purchaseorder->subtotal = $this->_currency->toCurrency($purchaseorder->subtotal); $purchaseorder->taxes = $this->_currency->toCurrency($purchaseorder->taxes); $purchaseorder->total = $this->_currency->toCurrency($purchaseorder->total); } //Processes $processesDb = new Processes_Model_DbTable_Process(); $history['processes'] = $processesDb->fetchAll($processesDb->select()->where('customerid = ?', $id)); /*foreach($history['processes'] as $process) { $process->subtotal = $this->_currency->toCurrency($process->subtotal); $process->taxes = $this->_currency->toCurrency($process->taxes); $process->total = $this->_currency->toCurrency($process->total); }*/ return $history; }
protected function search($params, $categories) { $processesDb = new Processes_Model_DbTable_Process(); $columns = array('p.title', 'p.customerid', 'p.billingname1', 'p.billingname2', 'p.billingdepartment', 'p.billingstreet', 'p.billingpostcode', 'p.billingcity', 'p.shippingname1', 'p.shippingname2', 'p.shippingdepartment', 'p.shippingstreet', 'p.shippingpostcode', 'p.shippingcity'); $query = ''; $schema = 'p'; if ($params['keyword']) { $query = $this->_helper->Query->getQueryKeyword($query, $params['keyword'], $columns); } if ($params['catid']) { $query = $this->_helper->Query->getQueryCategory($query, $params['catid'], $categories, 'c'); } if ($params['states']) { $query = $this->_helper->Query->getQueryStates($query, $params['states'], $schema); } if ($params['daterange']) { $query = $this->_helper->Query->getQueryDaterange($query, $params['from'], $params['to'], $schema); } if ($params['country']) { $query = $this->_helper->Query->getQueryCountry($query, $params['country'], $schema); } if ($params['paymentstatus']) { $query = $this->_helper->Query->getQueryPaymentstatus($query, $params['paymentstatus'], $schema); } if ($params['catid']) { $processes = $processesDb->fetchAll($processesDb->select()->setIntegrityCheck(false)->from(array('p' => 'process'))->join(array('c' => 'contact'), 'p.customerid = c.id', array('catid'))->group($schema . '.id')->where($query ? $query : 1)->order($params['order'] . ' ' . $params['sort'])->limit($params['limit'])); if (!count($processes) && $params['keyword']) { $this->_flashMessenger->addMessage('MESSAGES_SEARCH_RETURNED_NO_RESULTS'); $query = $this->_helper->Query->getQueryKeyword('', $params['keyword'], $columns); $processes = $processesDb->fetchAll($processesDb->select()->setIntegrityCheck(false)->from(array('p' => 'process'))->join(array('c' => 'contact'), 'p.customerid = c.id', array('catid'))->group($schema . '.id')->where($query ? $query : 1)->order($params['order'] . ' ' . $params['sort'])->limit($params['limit'])); } } else { $processes = $processesDb->fetchAll($processesDb->select()->setIntegrityCheck(false)->from(array('p' => 'process'))->group($schema . '.id')->where($query ? $query : 1)->order($params['order'] . ' ' . $params['sort'])->limit($params['limit'])); if (!count($processes) && $params['keyword']) { $this->_flashMessenger->addMessage('MESSAGES_SEARCH_RETURNED_NO_RESULTS'); $query = $this->_helper->Query->getQueryKeyword('', $params['keyword'], $columns); $processes = $processesDb->fetchAll($processesDb->select()->setIntegrityCheck(false)->from(array('p' => 'process'))->group($schema . '.id')->where($query ? $query : 1)->order($params['order'] . ' ' . $params['sort'])->limit($params['limit'])); } } $processes->subtotal = 0; $processes->total = 0; foreach ($processes as $process) { $processes->subtotal += $process->subtotal; $processes->total += $process->total; if ($process->prepayment == 0.0) { $process->prepayment = 0; } else { //$process->stillToPay = $this->_currency->toCurrency($processes->subtotal-$process->prepayment); $process->prepayment = $this->_currency->toCurrency($process->prepayment); } if ($process->total == 0.0) { $process->total = 0; } else { $process->total = $this->_currency->toCurrency($process->total); } if ($process->prepaymenttotal == 0.0) { $process->prepaymenttotal = 0; } else { $process->prepaymenttotal = $this->_currency->toCurrency($process->prepaymenttotal); } if ($process->creditnotetotal == 0.0) { $process->creditnotetotal = 0; } else { $process->creditnotetotal = $this->_currency->toCurrency($process->creditnotetotal); } } $processes->total = $this->_currency->toCurrency($processes->total); return $processes; }