Ejemplo n.º 1
0
 /**
  * @param mixed $handler_id The ID of the handler.
  * @param Array $args The argument list.
  * @param Array &$data The local request data.
  */
 public function _handler_itemedit($handler_id, array $args, array &$data)
 {
     $this->_verify_post_data();
     $invoice = new org_openpsa_invoices_invoice_dba($args[0]);
     midcom::get()->skip_page_style = true;
     switch ($_POST['oper']) {
         case 'edit':
             if (strpos($_POST['id'], 'new_') === 0) {
                 $item = new org_openpsa_invoices_invoice_item_dba();
                 $item->invoice = $invoice->id;
                 $item->create();
             } else {
                 $item = new org_openpsa_invoices_invoice_item_dba((int) $_POST['id']);
             }
             $item->units = (double) str_replace(',', '.', $_POST['quantity']);
             $item->pricePerUnit = (double) str_replace(',', '.', $_POST['price']);
             $item->description = $_POST['description'];
             if (!$item->update()) {
                 throw new midcom_error('Failed to update item: ' . midcom_connection::get_error_string());
             }
             break;
         case 'del':
             $item = new org_openpsa_invoices_invoice_item_dba((int) $_POST['id']);
             if (!$item->delete()) {
                 throw new midcom_error('Failed to delete item: ' . midcom_connection::get_error_string());
             }
             break;
         default:
             throw new midcom_error('Invalid operation "' . $_POST['oper'] . '"');
     }
     $data['saved_values'] = array('id' => $item->id, 'quantity' => $item->units, 'price' => $item->pricePerUnit, 'description' => $item->description, 'position' => $item->position, 'oldid' => $_POST['id']);
 }