/** * * Update Ticket into Database * @param array $aryTicket Ticket object */ private function UpdateTicket($aryTicket) { global $db, $conf; $function = "UpdateTicket"; $idTicket = -1; $data = $aryTicket['data']; $lines = $data['lines']; $idTicket = $data['id']; $statut = 0; if (!$data['customerId']) { $cash = new Cash($db); $terminal = $_SESSION['TERMINAL_ID']; $cash->fetch($terminal); $socid = $cash->fk_soc; } else { $socid = $data['customerId']; } if (!$data['employeeId']) { $employee = $_SESSION['uid']; } else { $employee = $data['employeeId']; } $object = new Ticket($db); $object->fetch($idTicket); $object->type = $data['type']; $object->socid = $socid; $object->statut = $data['state']; $object->fk_cash = $_SESSION['TERMINAL_ID']; $object->remise_percent = $data['discount_percent']; $object->remise_absolut = $data['discount_qty']; $object->mode_reglement_id = $data['payment_type']; $object->fk_place = $data['id_place']; $object->note = $data['note']; $cash = new Cash($db); $cash->fetch($_SESSION['TERMINAL_ID']); if ($data['payment_type'] != $cash->fk_modepaycash) { if ($data['points'] > 0) { $object->customer_pay = $data['total_with_points']; } else { $object->customer_pay = $data['total']; } } else { $object->customer_pay = $data['customerpay']; } $data['customerpay'] = $object->customer_pay; $object->diff_payment = $data['difpayment']; $object->id_source = $data['idsource']; $userstatic = new User($db); $userstatic->fetch($employee); $db->begin; $res = $object->update($userstatic->id); $data['ref'] = $object->ref; if ($res < 0) { $db->rollback(); return -5; } else { //Adding lines $idLines = self::addTicketLines($lines, $idTicket); if ($idLines < 0) { $db->rollback(); return -2; } else { $place = new Place($db); $place->fetch($object->fk_place); if ($object->statut != 0) { //Adding Payments $payment = self::addPayment($data); if (!$payment) { $db->rollback(); return -3; } else { if ($object->diff_payment <= 0) { $object->set_paid($user); } } //Decrease stock $stock = self::quitSotck($lines); if ($stock) { $db->rollback(); return -4; } // liberar puesto $place->free_place(); } else { // usar puesto $place->set_place($idTicket); } } } $db->commit; return $idTicket; }
/** * Delete ticket and all the lines * @return number <0 if KO, >0 if OK */ function delete_ticket() { dol_include_once('/pos/class/place.class.php'); global $user, $langs, $conf, $db; $sql = "DELETE FROM " . MAIN_DB_PREFIX . "pos_ticketdet WHERE fk_ticket=" . $this->id; $resql = $this->db->query($sql); if ($resql) { $sql = "DELETE FROM " . MAIN_DB_PREFIX . "pos_ticket"; $sql .= " WHERE rowid= " . $this->id; $sql .= " AND entity = " . $conf->entity; $resql = $this->db->query($sql); if ($resql) { if ($this->statut == 0) { $place = new Place($db); $place->fetch($this->fk_place); $place->free_place(); } $this->db->commit(); return 1; } else { $this->db->rollback(); return -1; } } else { $this->db->rollback(); return -1; } }