HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux Bradford-Sitios 6.14.0-1017-azure #17~24.04.1-Ubuntu SMP Mon Dec 1 20:10:50 UTC 2025 x86_64
User: www-data (33)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/proveedores.bradford/application/models/Devolucion_model.php
<?php
  
  class devolucion_model extends CI_Model
  {
    function __construct()
    {
      parent::__construct();
    }

    function apply_devolution ($data, $customer_id) {
      $query = $this->db->query("SELECT ((COALESCE(MAX(id), 0)) + 1) as id FROM credit_notes");
      $id = $query->row()->id;

      $sale_id = $this->db->query("SELECT id FROM sales_transactions WHERE folio_doc = '".$data['folio']."'");
      $sale_id = $sale_id->row()->id;

      $this->db->query(
        "UPDATE sales_transactions SET refund = 1, credit_note = ".$id." WHERE id = ".$sale_id
      );

      $this->db->query(
        "INSERT INTO credit_notes (id,sales_transactions_id,document_types_id,customers_id,update_time) VALUES (".$id.", ".$sale_id.", 61, ".$customer_id.", CURRENT_TIMESTAMP)"
      );

      return $id;
    }

    function revert_devolution ($credit_note_id) {
      $this->db->query(
        "UPDATE sales_transactions SET refund = 0, credit_note = NULL WHERE credit_note = " . $credit_note_id);

      $this->db->query(
        "DELETE FROM credit_notes WHERE id = " . $credit_note_id);
    }

    function get_document_customer($folio) {
      $query = $this->db->query("SELECT customers_id as id FROM sales_transactions WHERE folio_doc = '" . $folio . "'");

      return $query->row();
    }

    function create_customer($data) {
      $query = $this->db->query("SELECT id FROM customers WHERE rut = '".$data['rut_customer']."'");

      if ($query->num_rows() > 0) {
        $id = $query->row()->id;

        $this->db->query("UPDATE customers SET first_name = '".$data['first_name_customer']."', last_name = '".$data['last_name_customer']."', turn = '".$data['turn_customer']."', phone = '".$data['phone_customer']."', email = '".$data['email_customer']."', address = '".$data['address_customer']." ".$data['address_number_customer']."', postal_code = ".$data['postal_customer'].", commune = '".$data['commune_customer']."', city = '".$data['city_customer']."'  WHERE id = ".$id);

        return array(
          'id' => $id,
          'exist' => TRUE
        );
      }

      $query = $this->db->query("SELECT ((COALESCE(MAX(id), 0)) + 1) as id FROM customers");
      $id = $query->row()->id;

      $cardcode = 'C'.substr($data['rut_customer'], 0, strlen($data['rut_customer']) - 2);

      $this->db->query("INSERT INTO customers (id,customer_types_id,rut,first_name,last_name,email,is_active,phone,address,communes_id,cities_id,turn,postal_code,commune,city,cardcode,business_name) VALUES (".$id.",1,'".$data['rut_customer']."','".$data['first_name_customer']."','".$data['last_name_customer']."','".$data['email_customer']."',true,'".$data['phone_customer']."','".$data['address_customer']." ".$data['address_number_customer']."',1,1,'".$data['turn_customer']."',".$data['postal_customer'].",'".$data['commune_customer']."','".$data['city_customer']."', '".$cardcode."','".$data['first_name_customer']." ".$data['last_name_customer']."')");

      return array(
        'id' => $id,
        'exist' => FALSE,
        'cardcode' => $cardcode
      );
    }

    function delete_customer($rut) {
      $query = $this->db->query("DELETE FROM customers WHERE rut = '".$rut."'");
    }

    function get_document ($folio) {

      $query = $this->db->query(
        "SELECT id, document_types_id as type, refund as retornada, folio_doc as folio, to_char(create_time, 'DD/MM/YYYY HH24:MI:SS') as fecha_hora, sessions_id as session,
        COALESCE((discount_rate * 100), 0) as descuento,
        discounts as monto_descuento, redondeo, net_total as total
        FROM sales_transactions
        WHERE document_types_id <> 52
        AND folio_doc = '".$folio."'"
      );

      if ($query->num_rows() === 0) {
        return NULL;
      }

      return $query->row();
    }

    function get_detail ($sale_id) {
      $query = $this->db->query(
        "select
        sales_transactions_details.id as \"id\",
        sales_transactions_details.products_id as \"products_id\",
        products.name as producto,
        sales_transactions_details.quantity_items as cantidad,
        sales_transactions_details.item_price as precio,
        sales_transactions_details.total_price as total,
        sales_transactions_details.refund as devuelto,
        sales_transactions_details.refund_quantity as cantidad_devuelta
        from sales_transactions_details
        inner join products
        on sales_transactions_details.products_id = products.id
        where sales_transactions_details.sales_transactions_id = ".$sale_id."
        order by sales_transactions_details.id ASC"
      );

      return $query->result();
    }

    function get_pay ($sale_id) {
      $query = $this->db->query(
        "select
        payment_methods.name as nombre,
        payments.amount as monto,
        payments.voucher_number as voucher
        from payments
        inner join payment_methods
        on payments.payment_methods_id = payment_methods.id
        where payments.sales_transactions_id = ".$sale_id
      );

      return $query->result();
    }
  }