mirror of
https://github.com/opensourcepos/opensourcepos.git
synced 2026-07-13 08:22:52 -04:00
Merge branch 'master' of https://github.com/jekkos/opensourcepos
This commit is contained in:
@@ -15,3 +15,10 @@ password:pointofsale
|
||||
9. Enjoy
|
||||
|
||||
A more extensive setup guide can be found at [this site](http://www.opensourceposguide.com/guide/gettingstarted/installation)
|
||||
|
||||
If you like the project, and you are making money out of it on a daily basis, then consider to buy me a coffee so I can keep adding features.
|
||||
|
||||
|
||||
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=MUN6AEG7NY6H8)
|
||||
|
||||
Or send some coins to **19kwPpAwrUTxbNEs5D6cRR1k4mf5HNa4v2**
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
*/
|
||||
|
||||
$route['default_controller'] = "login";
|
||||
$route['no_access/(:any)'] = "no_access/index/$1";
|
||||
$route['no_access/(:any)/(:any)'] = "no_access/index/$1/$2";
|
||||
$route['reports/(summary_:any)/(:any)/(:any)'] = "reports/$1/$2/$3";
|
||||
$route['reports/summary_:any'] = "reports/date_input_excel_export";
|
||||
|
||||
@@ -10,17 +10,17 @@ class Config extends Secure_area
|
||||
function index()
|
||||
{
|
||||
$location_names = array();
|
||||
$locations = $this->Stock_locations->get_location_names();
|
||||
foreach($locations->result_array() as $array)
|
||||
{
|
||||
array_push($location_names, $array['location_name']);
|
||||
}
|
||||
$data['location_names'] = implode(',', $location_names);
|
||||
$this->load->view("config", $data);
|
||||
$stock_locations = $this->Stock_locations->get_all()->result_array();
|
||||
$this->load->view("config", array('stock_locations' => $stock_locations));
|
||||
}
|
||||
|
||||
function save()
|
||||
{
|
||||
$barcode_labels = preg_replace('/^_|barcode_label_|_$/', '', implode('_', array(
|
||||
$this->input->post('barcode_label_name'),
|
||||
$this->input->post('barcode_label_price'),
|
||||
$this->input->post('barcode_label_company')
|
||||
)));
|
||||
$batch_save_data=array(
|
||||
'company'=>$this->input->post('company'),
|
||||
'address'=>$this->input->post('address'),
|
||||
@@ -41,6 +41,8 @@ class Config extends Secure_area
|
||||
'tax_included'=>$this->input->post('tax_included'),
|
||||
'recv_invoice_format'=>$this->input->post('recv_invoice_format'),
|
||||
'sales_invoice_format'=>$this->input->post('sales_invoice_format'),
|
||||
'barcode_labels'=>$barcode_labels,
|
||||
'barcode_content'=>$this->input->post('barcode_content'),
|
||||
'custom1_name'=>$this->input->post('custom1_name'),/**GARRISON ADDED 4/20/2013**/
|
||||
'custom2_name'=>$this->input->post('custom2_name'),/**GARRISON ADDED 4/20/2013**/
|
||||
'custom3_name'=>$this->input->post('custom3_name'),/**GARRISON ADDED 4/20/2013**/
|
||||
@@ -53,28 +55,49 @@ class Config extends Secure_area
|
||||
'custom10_name'=>$this->input->post('custom10_name')/**GARRISON ADDED 4/20/2013**/
|
||||
);
|
||||
|
||||
$stock_locations = explode( ',', $this->input->post('stock_location'));
|
||||
$stock_locations_trimmed=array();
|
||||
foreach($stock_locations as $location)
|
||||
$deleted_locations = $this->Stock_locations->get_allowed_locations();
|
||||
foreach($this->input->post() as $key => $value)
|
||||
{
|
||||
if (strstr($key, 'stock_location'))
|
||||
{
|
||||
$location_id = preg_replace("/.*?_(\d+)$/", "$1", $key);
|
||||
unset($deleted_locations[$location_id]);
|
||||
// save or update
|
||||
$location_data = array('location_name' => $value);
|
||||
if ($this->Stock_locations->save($location_data, $location_id))
|
||||
{
|
||||
$this->_clear_session_state();
|
||||
}
|
||||
}
|
||||
}
|
||||
// all locations not available in post will be deleted now
|
||||
foreach ($deleted_locations as $location_id => $location_name)
|
||||
{
|
||||
array_push($stock_locations_trimmed, trim($location, ' '));
|
||||
}
|
||||
$current_locations = $this->Stock_locations->concat_location_names()->location_names;
|
||||
if ($this->input->post('stock_locations') != $current_locations)
|
||||
{
|
||||
$this->load->library('sale_lib');
|
||||
$this->sale_lib->clear_sale_location();
|
||||
$this->sale_lib->clear_all();
|
||||
$this->load->library('receiving_lib');
|
||||
$this->receiving_lib->clear_stock_source();
|
||||
$this->receiving_lib->clear_stock_destination();
|
||||
$this->receiving_lib->clear_all();
|
||||
$this->Stock_locations->delete($location_id);
|
||||
}
|
||||
|
||||
if( $this->Appconfig->batch_save( $batch_save_data ) && $this->Stock_locations->array_save($stock_locations_trimmed))
|
||||
if( $this->Appconfig->batch_save( $batch_save_data ))
|
||||
{
|
||||
echo json_encode(array('success'=>true,'message'=>$this->lang->line('config_saved_successfully')));
|
||||
}
|
||||
$this->_remove_duplicate_cookies();
|
||||
}
|
||||
|
||||
function stock_locations()
|
||||
{
|
||||
$stock_locations = $this->Stock_locations->get_all()->result_array();
|
||||
$this->load->view('partial/stock_locations', array('stock_locations' => $stock_locations));
|
||||
}
|
||||
|
||||
function _clear_session_state()
|
||||
{
|
||||
$this->load->library('sale_lib');
|
||||
$this->sale_lib->clear_sale_location();
|
||||
$this->sale_lib->clear_all();
|
||||
$this->load->library('receiving_lib');
|
||||
$this->receiving_lib->clear_stock_source();
|
||||
$this->receiving_lib->clear_stock_destination();
|
||||
$this->receiving_lib->clear_all();
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -69,7 +69,7 @@ class Employees extends Person_controller
|
||||
'country'=>$this->input->post('country'),
|
||||
'comments'=>$this->input->post('comments')
|
||||
);
|
||||
$grants_data = $this->input->post("grants")!=false ? $this->input->post("grants"):array();
|
||||
$grants_data = $this->input->post("grants")!=FALSE ? $this->input->post("grants"):array();
|
||||
|
||||
//Password has been changed OR first time password set
|
||||
if($this->input->post('password')!='')
|
||||
|
||||
@@ -25,6 +25,7 @@ class Items extends Secure_area implements iData_controller
|
||||
$data['form_width']=$this->get_form_width();
|
||||
$data['manage_table']=get_items_manage_table( $this->Item->get_all( $stock_location, $config['per_page'], $this->uri->segment( $config['uri_segment'] ) ), $this );
|
||||
$this->load->view('items/manage',$data);
|
||||
$this->_remove_duplicate_cookies();
|
||||
}
|
||||
|
||||
function refresh()
|
||||
@@ -49,6 +50,7 @@ class Items extends Secure_area implements iData_controller
|
||||
$data['form_width']=$this->get_form_width();
|
||||
$data['manage_table']=get_items_manage_table($this->Item->get_all_filtered($stock_location,$is_serialized,$no_description,$search_custom,$is_deleted),$this);//GARRISON MODIFIED 4/13/2013, Parq 131215
|
||||
$this->load->view('items/manage',$data);
|
||||
$this->_remove_duplicate_cookies();
|
||||
}
|
||||
|
||||
function find_item_info()
|
||||
@@ -63,6 +65,7 @@ class Items extends Secure_area implements iData_controller
|
||||
$stock_location=$this->item_lib->get_item_location();
|
||||
$data_rows=get_items_manage_table_data_rows($this->Item->search($search,$stock_location),$this);
|
||||
echo $data_rows;
|
||||
$this->_remove_duplicate_cookies();
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -201,6 +204,7 @@ class Items extends Secure_area implements iData_controller
|
||||
$data_row=get_item_data_row($item_info,$this);
|
||||
|
||||
echo $data_row;
|
||||
$this->_remove_duplicate_cookies();
|
||||
}
|
||||
|
||||
function view($item_id=-1)
|
||||
@@ -271,7 +275,7 @@ class Items extends Secure_area implements iData_controller
|
||||
{
|
||||
$item_info = $this->Item->get_info($item_id);
|
||||
|
||||
$result[] = array('name' =>$item_info->name, 'id'=> $item_id);
|
||||
$result[] = array('name' =>$item_info->name, 'id'=> $item_id, 'item_number'=> $item_info->item_number, 'unit_price'=>$item_info->unit_price);
|
||||
}
|
||||
|
||||
$data['items'] = $result;
|
||||
|
||||
@@ -9,7 +9,7 @@ class No_Access extends CI_Controller
|
||||
function index($module_id='',$permission_id='')
|
||||
{
|
||||
$data['module_name']=$this->Module->get_module_name($module_id);
|
||||
$data['permission_id']=empty($permission_id)?$module_id:$permission_id;
|
||||
$data['permission_id']=$permission_id;
|
||||
$this->load->view('no_access',$data);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ class Receivings extends Secure_area
|
||||
{
|
||||
function __construct()
|
||||
{
|
||||
parent::__construct('receivings','items');
|
||||
parent::__construct('receivings');
|
||||
$this->load->library('receiving_lib');
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ class Sales extends Secure_area
|
||||
{
|
||||
function __construct()
|
||||
{
|
||||
parent::__construct('sales','items');
|
||||
parent::__construct('sales');
|
||||
$this->load->library('sale_lib');
|
||||
}
|
||||
|
||||
|
||||
@@ -36,7 +36,15 @@ $lang["config_sales_invoice_format"] = "Sales Invoice Format";
|
||||
$lang["config_saved_successfully"] = "Configuration saved successfully";
|
||||
$lang["config_saved_unsuccessfully"] = "Configuration saved unsuccessfully";
|
||||
$lang["config_stock_location"] = "Stock location";
|
||||
$lang["config_stock_location_duplicate"] = "Please use an unique location name";
|
||||
$lang["config_stock_location_required"] = "Stock location number is a required field";
|
||||
$lang["config_tax_included"] = "Tax Included";
|
||||
$lang["config_timezone"] = "Timezone";
|
||||
$lang["config_website"] = "Website";
|
||||
$lang["config_barcode_number"] = "UPC/EAN/ISBN";
|
||||
$lang["config_barcode_id"] = "Item Id/Name";
|
||||
$lang["config_barcode_content"] = "Barcode Content";
|
||||
$lang["config_barcode_labels"] = "Barcode Labels";
|
||||
$lang["config_barcode_name"] = "Name";
|
||||
$lang["config_barcode_price"] = "Price";
|
||||
$lang["config_barcode_company"] = "Company Name";
|
||||
|
||||
@@ -5,7 +5,6 @@ $lang["sales_amount_due"] = "Amount Due";
|
||||
$lang["sales_amount_tendered"] = "Amount Tendered";
|
||||
$lang["sales_basic_information"] = "Sale information";
|
||||
$lang["sales_cancel_sale"] = "Cancel Sale";
|
||||
$lang["sales_cannot_be_deleted"] = "Sale(s) could not be deleted";
|
||||
$lang["sales_cash"] = "Cash";
|
||||
$lang["sales_change_due"] = "Change Due";
|
||||
$lang["sales_check"] = "Check";
|
||||
@@ -27,7 +26,6 @@ $lang["sales_delete_successful"] = "You have successfully deleted a sale";
|
||||
$lang["sales_delete_unsuccessful"] = "You have unsuccessfully deleted a sale";
|
||||
$lang["sales_description_abbrv"] = "Desc";
|
||||
$lang["sales_discount"] = "Disc %";
|
||||
$lang["sales_discount_included"] = "";
|
||||
$lang["sales_discount_short"] = "%";
|
||||
$lang["sales_edit"] = "Edit";
|
||||
$lang["sales_edit_item"] = "Edit Item";
|
||||
@@ -43,7 +41,6 @@ $lang["sales_id"] = "Sale ID";
|
||||
$lang["sales_invoice_number"] = "Invoice #";
|
||||
$lang["sales_invoice_number_duplicate"] = "Please enter an unique invoice number";
|
||||
$lang["sales_item_insufficient_of_stock"] = "Item is Insufficient of Stock";
|
||||
$lang["sales_item_insufficient_of_stockfi"] = "";
|
||||
$lang["sales_item_name"] = "Item Name";
|
||||
$lang["sales_item_number"] = "Item #";
|
||||
$lang["sales_item_out_of_stock"] = "Item is Out of Stock";
|
||||
@@ -87,7 +84,7 @@ $lang["sales_tax_percent"] = "Tax %";
|
||||
$lang["sales_total"] = "Total";
|
||||
$lang["sales_transaction_failed"] = "Sales Transaction Failed";
|
||||
$lang["sales_unable_to_add_item"] = "Unable to add item to sale";
|
||||
$lang["sales_unsuccessfully_deleted"] = "";
|
||||
$lang["sales_unsuccessfully_deleted"] = "Sale(s) could not be deleted";
|
||||
$lang["sales_unsuccessfully_updated"] = "Sale unsuccessfully updated";
|
||||
$lang["sales_unsuspend"] = "Unsuspend";
|
||||
$lang["sales_unsuspend_and_delete"] = "";
|
||||
|
||||
@@ -36,7 +36,15 @@ $lang["config_sales_invoice_format"] = "";
|
||||
$lang["config_saved_successfully"] = "Configuración guardada satisfactoriamente";
|
||||
$lang["config_saved_unsuccessfully"] = "Configuración no guardada";
|
||||
$lang["config_stock_location"] = "";
|
||||
$lang["config_stock_location_duplicate"] = "";
|
||||
$lang["config_stock_location_required"] = "";
|
||||
$lang["config_tax_included"] = "Impuestos incluidos";
|
||||
$lang["config_timezone"] = "Zona Horaria";
|
||||
$lang["config_website"] = "Sitio Web";
|
||||
$lang["config_barcode_number"] = "UPC/EAN/ISBN";
|
||||
$lang["config_barcode_id"] = "Item Id/Name";
|
||||
$lang["config_barcode_content"] = "Barcode Content";
|
||||
$lang["config_barcode_labels"] = "Barcode Labels";
|
||||
$lang["config_barcode_name"] = "Name";
|
||||
$lang["config_barcode_price"] = "Price";
|
||||
$lang["config_barcode_company"] = "Nombre del Comercio";
|
||||
|
||||
@@ -5,7 +5,6 @@ $lang["sales_amount_due"] = "Debe";
|
||||
$lang["sales_amount_tendered"] = "Cantidad Recibida";
|
||||
$lang["sales_basic_information"] = "información sobre las entradas";
|
||||
$lang["sales_cancel_sale"] = "Cancelar Venta";
|
||||
$lang["sales_cannot_be_deleted"] = "";
|
||||
$lang["sales_cash"] = "Efectivo";
|
||||
$lang["sales_change_due"] = "Cambio";
|
||||
$lang["sales_check"] = "Cheque";
|
||||
@@ -27,7 +26,6 @@ $lang["sales_delete_successful"] = "Has borrado satisfactoriamente una venta";
|
||||
$lang["sales_delete_unsuccessful"] = "No he podido borrar la venta satisfactoriamente";
|
||||
$lang["sales_description_abbrv"] = "Desc";
|
||||
$lang["sales_discount"] = "Desc %";
|
||||
$lang["sales_discount_included"] = "";
|
||||
$lang["sales_discount_short"] = "%";
|
||||
$lang["sales_edit"] = "Editar";
|
||||
$lang["sales_edit_item"] = "Editar Artículo";
|
||||
@@ -40,10 +38,9 @@ $lang["sales_find_or_scan_item_or_receipt"] = "Encontrar/Escanear Artículo o En
|
||||
$lang["sales_giftcard"] = "Tarjeta de Regalo";
|
||||
$lang["sales_giftcard_number"] = "Número de Tarjeta de Regalo";
|
||||
$lang["sales_id"] = "ID de Venta";
|
||||
$lang["sales_invoice_number"] = "";
|
||||
$lang["sales_invoice_number_duplicate"] = "";
|
||||
$lang["sales_invoice_number"] = "Invoice #";
|
||||
$lang["sales_invoice_number_duplicate"] = "Please enter an unique invoice number";
|
||||
$lang["sales_item_insufficient_of_stock"] = "Hay un número insuficiente de Artículos en existencia";
|
||||
$lang["sales_item_insufficient_of_stockfi"] = "";
|
||||
$lang["sales_item_name"] = "Nombre del Artículo";
|
||||
$lang["sales_item_number"] = "UPC/EAN/ISBN";
|
||||
$lang["sales_item_out_of_stock"] = "El artículo está agotado";
|
||||
|
||||
@@ -36,7 +36,15 @@ $lang["config_sales_invoice_format"] = "";
|
||||
$lang["config_saved_successfully"] = "Configuration sauvegardée";
|
||||
$lang["config_saved_unsuccessfully"] = "Échec de sauvegarde de configuration";
|
||||
$lang["config_stock_location"] = "";
|
||||
$lang["config_stock_location_duplicate"] = "";
|
||||
$lang["config_stock_location_required"] = "";
|
||||
$lang["config_tax_included"] = "";
|
||||
$lang["config_timezone"] = "Fuseau Horaire";
|
||||
$lang["config_website"] = "Site-web";
|
||||
$lang["config_barcode_number"] = "UPC/EAN/ISBN";
|
||||
$lang["config_barcode_id"] = "Item Id/Name";
|
||||
$lang["config_barcode_content"] = "Barcode Content";
|
||||
$lang["config_barcode_labels"] = "Barcode Labels";
|
||||
$lang["config_barcode_name"] = "Name";
|
||||
$lang["config_barcode_price"] = "Price";
|
||||
$lang["config_barcode_company"] = "Nome de l\'Entreprise";
|
||||
|
||||
@@ -5,7 +5,6 @@ $lang["sales_amount_due"] = "Somme Due";
|
||||
$lang["sales_amount_tendered"] = "Somme";
|
||||
$lang["sales_basic_information"] = "Information de Vente";
|
||||
$lang["sales_cancel_sale"] = "Annuler la Vente";
|
||||
$lang["sales_cannot_be_deleted"] = "";
|
||||
$lang["sales_cash"] = "Cash";
|
||||
$lang["sales_change_due"] = "Reste";
|
||||
$lang["sales_check"] = "Cheque";
|
||||
@@ -27,7 +26,6 @@ $lang["sales_delete_successful"] = "Suppréssion réussie";
|
||||
$lang["sales_delete_unsuccessful"] = "Échec de suppression";
|
||||
$lang["sales_description_abbrv"] = "Desc";
|
||||
$lang["sales_discount"] = "% Remise";
|
||||
$lang["sales_discount_included"] = "";
|
||||
$lang["sales_discount_short"] = "%";
|
||||
$lang["sales_edit"] = "Éditer";
|
||||
$lang["sales_edit_item"] = "Éditer Item";
|
||||
@@ -40,10 +38,9 @@ $lang["sales_find_or_scan_item_or_receipt"] = "Trouver/Scanner Item OU Recu";
|
||||
$lang["sales_giftcard"] = "Carte Cadeau";
|
||||
$lang["sales_giftcard_number"] = "Numéro de Carte cadeau";
|
||||
$lang["sales_id"] = "ID Vente";
|
||||
$lang["sales_invoice_number"] = "";
|
||||
$lang["sales_invoice_number"] = "Invoice #";
|
||||
$lang["sales_invoice_number_duplicate"] = "";
|
||||
$lang["sales_item_insufficient_of_stock"] = "Stock top faible";
|
||||
$lang["sales_item_insufficient_of_stockfi"] = "";
|
||||
$lang["sales_item_name"] = "Nom";
|
||||
$lang["sales_item_number"] = "# Item";
|
||||
$lang["sales_item_out_of_stock"] = "Stock épuisé";
|
||||
|
||||
@@ -36,7 +36,15 @@ $lang["config_sales_invoice_format"] = "";
|
||||
$lang["config_saved_successfully"] = "Konfigurasi berhasil disimpan";
|
||||
$lang["config_saved_unsuccessfully"] = "Konfigurasi tidak berhasil disimpan";
|
||||
$lang["config_stock_location"] = "";
|
||||
$lang["config_stock_location_duplicate"] = "";
|
||||
$lang["config_stock_location_required"] = "";
|
||||
$lang["config_tax_included"] = "Dikenakan Pajak";
|
||||
$lang["config_timezone"] = "Zona Waktu";
|
||||
$lang["config_website"] = "Situs Perusahaan";
|
||||
$lang["config_barcode_number"] = "UPC/EAN/ISBN";
|
||||
$lang["config_barcode_id"] = "Item Id/Name";
|
||||
$lang["config_barcode_content"] = "Barcode Content";
|
||||
$lang["config_barcode_labels"] = "Barcode Labels";
|
||||
$lang["config_barcode_name"] = "Name";
|
||||
$lang["config_barcode_price"] = "Price";
|
||||
$lang["config_barcode_company"] = "Nama Perusahaan";
|
||||
|
||||
@@ -5,7 +5,6 @@ $lang["sales_amount_due"] = "Kembalian Uang";
|
||||
$lang["sales_amount_tendered"] = "Nilai Pembayaran";
|
||||
$lang["sales_basic_information"] = "Sale information";
|
||||
$lang["sales_cancel_sale"] = "Batal Jual";
|
||||
$lang["sales_cannot_be_deleted"] = "";
|
||||
$lang["sales_cash"] = "Tunai";
|
||||
$lang["sales_change_due"] = "Kembalian Uang";
|
||||
$lang["sales_check"] = "Cek";
|
||||
@@ -27,7 +26,6 @@ $lang["sales_delete_successful"] = "Transaksi Penjualan berhasil dihapus";
|
||||
$lang["sales_delete_unsuccessful"] = "Transaksi Penjualan tidak berhasil dihapus";
|
||||
$lang["sales_description_abbrv"] = "Deskripsi";
|
||||
$lang["sales_discount"] = "Diskon %";
|
||||
$lang["sales_discount_included"] = "";
|
||||
$lang["sales_discount_short"] = "%";
|
||||
$lang["sales_edit"] = "Ubah";
|
||||
$lang["sales_edit_item"] = "Ubah Item";
|
||||
@@ -43,7 +41,6 @@ $lang["sales_id"] = "ID Penjualan";
|
||||
$lang["sales_invoice_number"] = "";
|
||||
$lang["sales_invoice_number_duplicate"] = "";
|
||||
$lang["sales_item_insufficient_of_stock"] = "Stok Item tidak mencukupi";
|
||||
$lang["sales_item_insufficient_of_stockfi"] = "";
|
||||
$lang["sales_item_name"] = "Nama Item ";
|
||||
$lang["sales_item_number"] = "Item #";
|
||||
$lang["sales_item_out_of_stock"] = "Item tidak ada stok";
|
||||
|
||||
@@ -35,8 +35,16 @@ $lang["config_sales_invoice_enable"] = "";
|
||||
$lang["config_sales_invoice_format"] = "";
|
||||
$lang["config_saved_successfully"] = "Configuratie werd bewaard";
|
||||
$lang["config_saved_unsuccessfully"] = "Configuratie kon niet worden bewaard";
|
||||
$lang["config_stock_location"] = "";
|
||||
$lang["config_stock_location_required"] = "";
|
||||
$lang["config_stock_location"] = "Stock locatie";
|
||||
$lang["config_stock_location_duplicate"] = "Vul een unieke naam in";
|
||||
$lang["config_stock_location_required"] = "Naam van de stock locatie is een verplicht veld";
|
||||
$lang["config_tax_included"] = "VAT Ingebgrepen";
|
||||
$lang["config_timezone"] = "Tijdzone";
|
||||
$lang["config_website"] = "Website";
|
||||
$lang["config_barcode_number"] = "UPC/EAN/ISBN";
|
||||
$lang["config_barcode_id"] = "Product id/naam";
|
||||
$lang["config_barcode_content"] = "Inhoud Barcode";
|
||||
$lang["config_barcode_labels"] = "Barcode Labels";
|
||||
$lang["config_barcode_name"] = "Productnaam";
|
||||
$lang["config_barcode_price"] = "Prijs";
|
||||
$lang["config_barcode_company"] = "Bedrijfsnaam";
|
||||
|
||||
@@ -5,7 +5,6 @@ $lang["sales_amount_due"] = "Te betalen";
|
||||
$lang["sales_amount_tendered"] = "Ontvangen bedrag";
|
||||
$lang["sales_basic_information"] = "Ticket informatie";
|
||||
$lang["sales_cancel_sale"] = "Annuleer";
|
||||
$lang["sales_cannot_be_deleted"] = "";
|
||||
$lang["sales_cash"] = "Contant";
|
||||
$lang["sales_change_due"] = "Wisselgeld terug";
|
||||
$lang["sales_check"] = "Waardebon";
|
||||
@@ -27,7 +26,6 @@ $lang["sales_delete_successful"] = "De geselecteerde aanko(o)p(en) werden verwij
|
||||
$lang["sales_delete_unsuccessful"] = "De geselecteerde aankopen konden niet worden verwijderd.";
|
||||
$lang["sales_description_abbrv"] = "Omschr.";
|
||||
$lang["sales_discount"] = "%";
|
||||
$lang["sales_discount_included"] = "";
|
||||
$lang["sales_discount_short"] = "%";
|
||||
$lang["sales_edit"] = "Bewerk";
|
||||
$lang["sales_edit_item"] = "Bewaar";
|
||||
@@ -41,9 +39,8 @@ $lang["sales_giftcard"] = "Cadeaubon";
|
||||
$lang["sales_giftcard_number"] = "Cadeaubon nummer";
|
||||
$lang["sales_id"] = "Nummer Verkoop ";
|
||||
$lang["sales_invoice_number"] = "";
|
||||
$lang["sales_invoice_number_duplicate"] = "";
|
||||
$lang["sales_item_insufficient_of_stock"] = "";
|
||||
$lang["sales_item_insufficient_of_stockfi"] = "Product is niet meer in voorraad";
|
||||
$lang["sales_invoice_number_duplicate"] = "Vul een unieke nummer in";
|
||||
$lang["sales_item_insufficient_of_stock"] = "Product is niet meer in voorraad";
|
||||
$lang["sales_item_name"] = "Naam";
|
||||
$lang["sales_item_number"] = "Product #";
|
||||
$lang["sales_item_out_of_stock"] = "Product is niet meer in voorraad";
|
||||
@@ -53,7 +50,7 @@ $lang["sales_must_enter_numeric_giftcard"] = "Er moet een geldige code worden in
|
||||
$lang["sales_new_customer"] = "Nieuwe klant";
|
||||
$lang["sales_new_item"] = "Nieuw Product";
|
||||
$lang["sales_no_items_in_cart"] = "Er zijn geen aankopen geselecteerd";
|
||||
$lang["sales_one_or_multiple"] = "";
|
||||
$lang["sales_one_or_multiple"] = "aankopen verwijderd";
|
||||
$lang["sales_payment"] = "Betaalmethode";
|
||||
$lang["sales_payment_amount"] = "Bedrag";
|
||||
$lang["sales_payment_not_cover_total"] = "Betaalde hoeveelheid is onvoldoende";
|
||||
@@ -74,9 +71,9 @@ $lang["sales_select_customer"] = "Selecteer Klant (Optioneel)";
|
||||
$lang["sales_serial"] = "Nummer";
|
||||
$lang["sales_start_typing_customer_name"] = "Typ naam klant...";
|
||||
$lang["sales_start_typing_item_name"] = "Typ naam product of barcode...";
|
||||
$lang["sales_stock_location"] = "";
|
||||
$lang["sales_stock_location"] = "Stock locatie";
|
||||
$lang["sales_sub_total"] = "Subtotaal excl. VAT";
|
||||
$lang["sales_successfully_deleted"] = "";
|
||||
$lang["sales_successfully_deleted"] = "Uw aankoop werd verwijded";
|
||||
$lang["sales_successfully_suspended_sale"] = "Uw aankoop werd met sucess bewaard";
|
||||
$lang["sales_successfully_updated"] = "Wijzigingen bewaard voor ticket";
|
||||
$lang["sales_suspend_sale"] = "Bewaar aankoop";
|
||||
@@ -87,7 +84,7 @@ $lang["sales_tax_percent"] = "VAT %";
|
||||
$lang["sales_total"] = "Totaal";
|
||||
$lang["sales_transaction_failed"] = "Transactie mislukt";
|
||||
$lang["sales_unable_to_add_item"] = "Onmogelijk om product toe te voegen";
|
||||
$lang["sales_unsuccessfully_deleted"] = "";
|
||||
$lang["sales_unsuccessfully_deleted"] = "De aankoop kon niet verwijderd worden";
|
||||
$lang["sales_unsuccessfully_updated"] = "Fout bij het bewaren van ticket";
|
||||
$lang["sales_unsuspend"] = "Hervat";
|
||||
$lang["sales_unsuspend_and_delete"] = "";
|
||||
|
||||
@@ -36,7 +36,15 @@ $lang["config_sales_invoice_format"] = "";
|
||||
$lang["config_saved_successfully"] = "Конфигурация успешно сохранена";
|
||||
$lang["config_saved_unsuccessfully"] = "Конфигурация сохраненная безуспешно";
|
||||
$lang["config_stock_location"] = "";
|
||||
$lang["config_stock_location_duplicate"] = "";
|
||||
$lang["config_stock_location_required"] = "";
|
||||
$lang["config_tax_included"] = "Tax Included";
|
||||
$lang["config_timezone"] = "Часовой пояс";
|
||||
$lang["config_website"] = "Веб-сайт";
|
||||
$lang["config_barcode_number"] = "UPC/EAN/ISBN";
|
||||
$lang["config_barcode_id"] = "Item Id/Name";
|
||||
$lang["config_barcode_content"] = "Barcode Content";
|
||||
$lang["config_barcode_labels"] = "Barcode Labels";
|
||||
$lang["config_barcode_name"] = "Name";
|
||||
$lang["config_barcode_price"] = "Price";
|
||||
$lang["config_barcode_company"] = "Название Компании";
|
||||
|
||||
@@ -5,7 +5,6 @@ $lang["sales_amount_due"] = "Amount Due";
|
||||
$lang["sales_amount_tendered"] = "предложенная сумма";
|
||||
$lang["sales_basic_information"] = "информацию о билетах";
|
||||
$lang["sales_cancel_sale"] = "Отменить продажу";
|
||||
$lang["sales_cannot_be_deleted"] = "";
|
||||
$lang["sales_cash"] = "наличные деньги";
|
||||
$lang["sales_change_due"] = "сдача должное";
|
||||
$lang["sales_check"] = "банковский чек";
|
||||
@@ -27,7 +26,6 @@ $lang["sales_delete_successful"] = "Вы успешно удален прода
|
||||
$lang["sales_delete_unsuccessful"] = "Вы безуспешно удален продаже";
|
||||
$lang["sales_description_abbrv"] = "описание";
|
||||
$lang["sales_discount"] = "скидка %";
|
||||
$lang["sales_discount_included"] = "";
|
||||
$lang["sales_discount_short"] = "%";
|
||||
$lang["sales_edit"] = "редактировать";
|
||||
$lang["sales_edit_item"] = "Редактировать Товар";
|
||||
@@ -43,7 +41,6 @@ $lang["sales_id"] = "Номер Продажы";
|
||||
$lang["sales_invoice_number"] = "";
|
||||
$lang["sales_invoice_number_duplicate"] = "";
|
||||
$lang["sales_item_insufficient_of_stock"] = "Товар недостаточно на складе";
|
||||
$lang["sales_item_insufficient_of_stockfi"] = "";
|
||||
$lang["sales_item_name"] = "Название товара";
|
||||
$lang["sales_item_number"] = "Номер товара";
|
||||
$lang["sales_item_out_of_stock"] = "Товар распродано";
|
||||
|
||||
@@ -36,7 +36,15 @@ $lang["config_sales_invoice_format"] = "รหัสใบเสร็จ";
|
||||
$lang["config_saved_successfully"] = "องค์ประกอบร้านค้าบันทึกเรียบร้อย";
|
||||
$lang["config_saved_unsuccessfully"] = "องค์ประกอบร้านค้าบันทึกล้มเหลว";
|
||||
$lang["config_stock_location"] = "สถานที่เก็บ";
|
||||
$lang["config_stock_location_duplicate"] = "";
|
||||
$lang["config_stock_location_required"] = "จำเป็นต้องระบุสถานที่เก็บ";
|
||||
$lang["config_tax_included"] = "รวมภาษีแล้ว";
|
||||
$lang["config_timezone"] = "โซนเวลา";
|
||||
$lang["config_website"] = "เว็บไซต์";
|
||||
$lang["config_barcode_number"] = "UPC/EAN/ISBN";
|
||||
$lang["config_barcode_id"] = "Item Id/Name";
|
||||
$lang["config_barcode_content"] = "Barcode Content";
|
||||
$lang["config_barcode_labels"] = "Barcode Labels";
|
||||
$lang["config_barcode_name"] = "Name";
|
||||
$lang["config_barcode_price"] = "Price";
|
||||
$lang["config_barcode_company"] = "ชื่อร้านค้า";
|
||||
|
||||
@@ -5,7 +5,6 @@ $lang["sales_amount_due"] = "";
|
||||
$lang["sales_amount_tendered"] = "จำนวนประมูล";
|
||||
$lang["sales_basic_information"] = "";
|
||||
$lang["sales_cancel_sale"] = "ยกเลิกการขาย";
|
||||
$lang["sales_cannot_be_deleted"] = "";
|
||||
$lang["sales_cash"] = "เงินสด";
|
||||
$lang["sales_change_due"] = "เงินทอน";
|
||||
$lang["sales_check"] = "เช็ก";
|
||||
@@ -27,7 +26,6 @@ $lang["sales_delete_successful"] = "คุณลบการขายสำเ
|
||||
$lang["sales_delete_unsuccessful"] = "คุณลบการขายไม่สำเร็จ";
|
||||
$lang["sales_description_abbrv"] = "Desc";
|
||||
$lang["sales_discount"] = "ส่วนลด %";
|
||||
$lang["sales_discount_included"] = "";
|
||||
$lang["sales_discount_short"] = "";
|
||||
$lang["sales_edit"] = "แก้ไข";
|
||||
$lang["sales_edit_item"] = "แก้ไขสินค้า";
|
||||
@@ -43,7 +41,6 @@ $lang["sales_id"] = "เลขที่ขาย";
|
||||
$lang["sales_invoice_number"] = "";
|
||||
$lang["sales_invoice_number_duplicate"] = "";
|
||||
$lang["sales_item_insufficient_of_stock"] = "จำนวนสินค้าไม่เพียงพอ";
|
||||
$lang["sales_item_insufficient_of_stockfi"] = "";
|
||||
$lang["sales_item_name"] = "ชื่อสินค้า";
|
||||
$lang["sales_item_number"] = "สินค้า #";
|
||||
$lang["sales_item_out_of_stock"] = "สินค้าจำหน่ายหมด";
|
||||
|
||||
@@ -36,7 +36,15 @@ $lang["config_sales_invoice_format"] = "";
|
||||
$lang["config_saved_successfully"] = "Yapılandırma kaydedildi";
|
||||
$lang["config_saved_unsuccessfully"] = "Yapılandırma kaydedilemedi";
|
||||
$lang["config_stock_location"] = "Mağaza Yeri";
|
||||
$lang["config_stock_location_duplicate"] = "";
|
||||
$lang["config_stock_location_required"] = "Mağaza Yeri numarası zorunlu alandır";
|
||||
$lang["config_tax_included"] = "";
|
||||
$lang["config_timezone"] = "Saat Dilimi";
|
||||
$lang["config_website"] = "Website";
|
||||
$lang["config_barcode_number"] = "UPC/EAN/ISBN";
|
||||
$lang["config_barcode_id"] = "Item Id/Name";
|
||||
$lang["config_barcode_content"] = "Barcode Content";
|
||||
$lang["config_barcode_labels"] = "Barcode Labels";
|
||||
$lang["config_barcode_name"] = "Name";
|
||||
$lang["config_barcode_price"] = "Price";
|
||||
$lang["config_barcode_company"] = "Şirket Adı";
|
||||
|
||||
@@ -5,7 +5,6 @@ $lang["sales_amount_due"] = "Kalan Ödeme";
|
||||
$lang["sales_amount_tendered"] = "Ödenen Tutar";
|
||||
$lang["sales_basic_information"] = "Satış bilgisi";
|
||||
$lang["sales_cancel_sale"] = "İptal Et";
|
||||
$lang["sales_cannot_be_deleted"] = "";
|
||||
$lang["sales_cash"] = "Nakit";
|
||||
$lang["sales_change_due"] = "Para Üstü";
|
||||
$lang["sales_check"] = "Çek";
|
||||
@@ -27,7 +26,6 @@ $lang["sales_delete_successful"] = "Satışı sildiniz";
|
||||
$lang["sales_delete_unsuccessful"] = "Satışı silemediniz";
|
||||
$lang["sales_description_abbrv"] = "Tanım";
|
||||
$lang["sales_discount"] = "İndirim %";
|
||||
$lang["sales_discount_included"] = "% İndirim";
|
||||
$lang["sales_discount_short"] = "%";
|
||||
$lang["sales_edit"] = "Düzenle";
|
||||
$lang["sales_edit_item"] = "Düzenle";
|
||||
@@ -43,7 +41,6 @@ $lang["sales_id"] = "Satış No";
|
||||
$lang["sales_invoice_number"] = "";
|
||||
$lang["sales_invoice_number_duplicate"] = "";
|
||||
$lang["sales_item_insufficient_of_stock"] = "Ürün Stoğu Yetersiz";
|
||||
$lang["sales_item_insufficient_of_stockfi"] = "";
|
||||
$lang["sales_item_name"] = "Ürün Adı";
|
||||
$lang["sales_item_number"] = "Ürün No";
|
||||
$lang["sales_item_out_of_stock"] = "Ürün Stokta Yok";
|
||||
|
||||
@@ -36,7 +36,15 @@ $lang["config_sales_invoice_format"] = "";
|
||||
$lang["config_saved_successfully"] = "組態設置儲存成功";
|
||||
$lang["config_saved_unsuccessfully"] = "組態設置儲存失敗";
|
||||
$lang["config_stock_location"] = "";
|
||||
$lang["config_stock_location_duplicate"] = "";
|
||||
$lang["config_stock_location_required"] = "";
|
||||
$lang["config_tax_included"] = "Tax Included";
|
||||
$lang["config_timezone"] = "時區";
|
||||
$lang["config_website"] = "網站";
|
||||
$lang["config_barcode_number"] = "UPC/EAN/ISBN";
|
||||
$lang["config_barcode_id"] = "Item Id/Name";
|
||||
$lang["config_barcode_content"] = "Barcode Content";
|
||||
$lang["config_barcode_labels"] = "Barcode Labels";
|
||||
$lang["config_barcode_name"] = "Name";
|
||||
$lang["config_barcode_price"] = "Price";
|
||||
$lang["config_barcode_company"] = "公司名稱";
|
||||
|
||||
@@ -5,7 +5,6 @@ $lang["sales_amount_due"] = "Amount Due";
|
||||
$lang["sales_amount_tendered"] = "已收帳款";
|
||||
$lang["sales_basic_information"] = "Sale information";
|
||||
$lang["sales_cancel_sale"] = "取消銷售";
|
||||
$lang["sales_cannot_be_deleted"] = "";
|
||||
$lang["sales_cash"] = "現金";
|
||||
$lang["sales_change_due"] = "更改到期日";
|
||||
$lang["sales_check"] = "支票";
|
||||
@@ -27,7 +26,6 @@ $lang["sales_delete_successful"] = "您已成功刪除銷售資料";
|
||||
$lang["sales_delete_unsuccessful"] = "銷售資料刪除失敗";
|
||||
$lang["sales_description_abbrv"] = "倒序";
|
||||
$lang["sales_discount"] = "折扣 %";
|
||||
$lang["sales_discount_included"] = "";
|
||||
$lang["sales_discount_short"] = "%";
|
||||
$lang["sales_edit"] = "編輯";
|
||||
$lang["sales_edit_item"] = "編輯產品";
|
||||
@@ -43,7 +41,6 @@ $lang["sales_id"] = "銷售編號";
|
||||
$lang["sales_invoice_number"] = "";
|
||||
$lang["sales_invoice_number_duplicate"] = "";
|
||||
$lang["sales_item_insufficient_of_stock"] = "產品庫存不足";
|
||||
$lang["sales_item_insufficient_of_stockfi"] = "";
|
||||
$lang["sales_item_name"] = "產品名稱";
|
||||
$lang["sales_item_number"] = "產品 #";
|
||||
$lang["sales_item_out_of_stock"] = "產品缺貨";
|
||||
|
||||
@@ -185,7 +185,7 @@ class Sale extends CI_Model
|
||||
'trans_user'=>$employee_id,
|
||||
'trans_comment'=>'Deleting sale ' . $sale_id,
|
||||
'trans_location'=>$item['item_location'],
|
||||
'trans_inventory'=>$item['quantity_purchased']*-1
|
||||
'trans_inventory'=>$item['quantity_purchased']
|
||||
|
||||
);
|
||||
// update inventory
|
||||
@@ -194,7 +194,7 @@ class Sale extends CI_Model
|
||||
// update quantities
|
||||
$this->Item_quantities->change_quantity($item['item_id'],
|
||||
$item['item_location'],
|
||||
$item['quantity_purchased']*-1);
|
||||
$item['quantity_purchased']);
|
||||
}
|
||||
}
|
||||
// delete all items
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
<?php
|
||||
class Stock_locations extends CI_Model
|
||||
{
|
||||
function exists($location_name='')
|
||||
function exists($location_id='')
|
||||
{
|
||||
$this->db->from('stock_locations');
|
||||
$this->db->where('location_name',$location_name);
|
||||
$this->db->where('location_id',$location_id);
|
||||
$query = $this->db->get();
|
||||
|
||||
return ($query->num_rows()==1);
|
||||
return ($query->num_rows()>=1);
|
||||
}
|
||||
|
||||
function get_all($limit=10000, $offset=0)
|
||||
@@ -18,14 +18,6 @@ class Stock_locations extends CI_Model
|
||||
return $this->db->get();
|
||||
}
|
||||
|
||||
function get_location_names()
|
||||
{
|
||||
$this->db->select('location_name');
|
||||
$this->db->from('stock_locations');
|
||||
$this->db->where('deleted', 0);
|
||||
return $this->db->get();
|
||||
}
|
||||
|
||||
/*
|
||||
* returns all location-ids in a simple array like array (location_id, location_id, ...)
|
||||
* used in items-controller::do_excel_import
|
||||
@@ -45,14 +37,6 @@ class Stock_locations extends CI_Model
|
||||
return $ids_array;
|
||||
}
|
||||
|
||||
function concat_location_names()
|
||||
{
|
||||
$this->db->select('GROUP_CONCAT(location_name SEPARATOR\',\') AS location_names', FALSE);
|
||||
$this->db->from('stock_locations');
|
||||
$this->db->where('deleted', 0);
|
||||
return $this->db->get()->row();
|
||||
}
|
||||
|
||||
function get_undeleted_all()
|
||||
{
|
||||
$this->db->from('stock_locations');
|
||||
@@ -92,61 +76,69 @@ class Stock_locations extends CI_Model
|
||||
return $this->db->get()->row()->location_name;
|
||||
}
|
||||
|
||||
function array_save($stock_locations)
|
||||
function save(&$location_data,$location_id)
|
||||
{
|
||||
$allowed_locations = $this->get_allowed_locations();
|
||||
// check for insertion
|
||||
foreach ($stock_locations as $location_name)
|
||||
{
|
||||
if(!$this->exists($location_name))
|
||||
{
|
||||
$this->db->trans_start();
|
||||
$location_data = array('location_name'=>$location_name,'deleted'=>0);
|
||||
$this->db->insert('stock_locations',$location_data);
|
||||
$location_id = $this->db->insert_id();
|
||||
|
||||
// insert new permission for stock location
|
||||
$permission_id = 'items_'.$location_name;
|
||||
$permission_data = array('permission_id'=>$permission_id,'module_id'=>'items','location_id' => $location_id);
|
||||
$this->db->insert('permissions', $permission_data);
|
||||
|
||||
// insert grants for new permission
|
||||
$employees = $this->Employee->get_all();
|
||||
foreach ($employees->result_array() as $employee)
|
||||
{
|
||||
$grants_data = array('permission_id' => $permission_id, 'person_id' => $employee['person_id']);
|
||||
$this->db->insert('grants', $grants_data);
|
||||
}
|
||||
|
||||
// insert quantities for existing items
|
||||
$items = $this->Item->get_all();
|
||||
foreach ($items->result_array() as $item)
|
||||
{
|
||||
$quantity_data = array('item_id' => $item['item_id'], 'location_id' => $location_id, 'quantity' => 0);
|
||||
$this->db->insert('item_quantities', $quantity_data);
|
||||
}
|
||||
$this->db->trans_complete();
|
||||
}
|
||||
else if (!in_array($location_name, array_values($allowed_locations)))
|
||||
{
|
||||
$this->db->where('location_name', $location_name);
|
||||
$this->db->update('stock_locations', array('deleted' => 0));
|
||||
}
|
||||
}
|
||||
|
||||
// check for deletion
|
||||
foreach ($allowed_locations as $location_id => $location_name)
|
||||
{
|
||||
if (!in_array($location_name, $stock_locations))
|
||||
{
|
||||
$this->db->where('location_id', $location_id);
|
||||
$this->db->update('stock_locations', array('deleted' => 1));
|
||||
|
||||
$this->db->delete('permissions', array('permission_id' => 'items_'.$location_name));
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
if (!$this->exists($location_id))
|
||||
{
|
||||
$location_name = $location_data['location_name'];
|
||||
$this->db->trans_start();
|
||||
$location_data = array('location_name'=>$location_name,'deleted'=>0);
|
||||
$this->db->insert('stock_locations',$location_data);
|
||||
$location_id = $this->db->insert_id();
|
||||
|
||||
$this->_insert_new_permission('items', $location_id, $location_name);
|
||||
$this->_insert_new_permission('sales', $location_id, $location_name);
|
||||
$this->_insert_new_permission('receivings', $location_id, $location_name);
|
||||
|
||||
|
||||
// insert quantities for existing items
|
||||
$items = $this->Item->get_all();
|
||||
foreach ($items->result_array() as $item)
|
||||
{
|
||||
$quantity_data = array('item_id' => $item['item_id'], 'location_id' => $location_id, 'quantity' => 0);
|
||||
$this->db->insert('item_quantities', $quantity_data);
|
||||
}
|
||||
$this->db->trans_complete();
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db->where('location_id', $location_id);
|
||||
return $this->db->update('stock_locations',$location_data);
|
||||
}
|
||||
}
|
||||
|
||||
function _insert_new_permission($module, $location_id, $location_name)
|
||||
{
|
||||
// insert new permission for stock location
|
||||
$permission_id = $module."_".$location_name;
|
||||
$permission_data = array('permission_id'=>$permission_id,'module_id'=>$module,'location_id' => $location_id);
|
||||
$this->db->insert('permissions', $permission_data);
|
||||
|
||||
// insert grants for new permission
|
||||
$employees = $this->Employee->get_all();
|
||||
foreach ($employees->result_array() as $employee)
|
||||
{
|
||||
$grants_data = array('permission_id' => $permission_id, 'person_id' => $employee['person_id']);
|
||||
$this->db->insert('grants', $grants_data);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
Deletes one item
|
||||
*/
|
||||
function delete($location_id)
|
||||
{
|
||||
$this->db->trans_start();
|
||||
$this->db->where('location_id', $location_id);
|
||||
$this->db->update('stock_locations', array('deleted' => 1));
|
||||
|
||||
// should delete permissions and grants as well?
|
||||
$this->db->where('location_id', $location_id);
|
||||
$this->db->delete('permissions');
|
||||
$this->db->trans_complete();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
?>
|
||||
@@ -3,6 +3,12 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title><?php echo $this->lang->line('items_generate_barcodes'); ?></title>
|
||||
<style type="text/css" >
|
||||
*
|
||||
{
|
||||
font-size: 12px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<table width='50%' align='center' cellpadding='20'>
|
||||
@@ -11,14 +17,28 @@
|
||||
$count = 0;
|
||||
foreach($items as $item)
|
||||
{
|
||||
$barcode = $item['id'];
|
||||
$text = $item['name'];
|
||||
$barcode = $this->config->item('barcode_content') === "id" ? $item['id'] : $item['item_number'];
|
||||
$text = $this->config->item('barcode_content') === "id" ? $item['name'] : $item['item_number'];
|
||||
|
||||
if ($count % 2 ==0 and $count!=0)
|
||||
{
|
||||
echo '</tr><tr>';
|
||||
}
|
||||
echo "<td><img src='".site_url()."/barcode?barcode=$barcode&text=$text&width=256' /></td>";
|
||||
echo "<td align='center'>";
|
||||
if (strstr($this->config->item('barcode_labels'), 'company'))
|
||||
{
|
||||
echo $this->config->item('company');
|
||||
}
|
||||
echo "<br><img src='".site_url()."/barcode?barcode=$barcode&text=$text&width=256' /><br>";
|
||||
if (strstr($this->config->item('barcode_labels'), 'price'))
|
||||
{
|
||||
echo to_currency($item['unit_price']);
|
||||
}
|
||||
if (strstr($this->config->item('barcode_labels'), 'name'))
|
||||
{
|
||||
echo " " . $item['name'];
|
||||
}
|
||||
echo "</td>";
|
||||
$count++;
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -259,14 +259,8 @@ echo form_open('config/save/',array('id'=>'config_form'));
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="field_row clearfix">
|
||||
<?php echo form_label($this->lang->line('config_stock_location').':', 'stock_location',array('class'=>'required wide')); ?>
|
||||
<div class='form_field'>
|
||||
<?php echo form_input(array(
|
||||
'name'=>'stock_location',
|
||||
'id'=>'stock_location',
|
||||
'value'=>$location_names)); ?>
|
||||
</div>
|
||||
<div id="stock_locations">
|
||||
<?php $this->load->view('partial/stock_locations', array('stock_locations' => $stock_locations)); ?>
|
||||
</div>
|
||||
|
||||
<div class="field_row clearfix">
|
||||
@@ -289,6 +283,43 @@ echo form_open('config/save/',array('id'=>'config_form'));
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="field_row clearfix">
|
||||
<?php echo form_label($this->lang->line('config_barcode_content').':', 'barcode_content',array('class'=>'wide')); ?>
|
||||
<div class='form_field'>
|
||||
<?php echo form_radio(array(
|
||||
'name'=>'barcode_content',
|
||||
'value'=>'id',
|
||||
'checked'=>$this->config->item('barcode_content') === "id")); ?>
|
||||
<?php echo $this->lang->line('config_barcode_id'); ?>
|
||||
<?php echo form_radio(array(
|
||||
'name'=>'barcode_content',
|
||||
'value'=>'number',
|
||||
'checked'=>$this->config->item('barcode_content') === "number")); ?>
|
||||
<?php echo $this->lang->line('config_barcode_number'); ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="field_row clearfix">
|
||||
<?php echo form_label($this->lang->line('config_barcode_labels').':', 'barcode_labels',array('class'=>'wide')); ?>
|
||||
<div class='form_field'>
|
||||
<?php echo form_checkbox(array(
|
||||
'name'=>'barcode_label_company',
|
||||
'value'=>'barcode_label_company',
|
||||
'checked'=>strstr($this->config->item('barcode_labels'), 'company'))); ?>
|
||||
<?php echo $this->lang->line('config_barcode_company'); ?>
|
||||
<?php echo form_checkbox(array(
|
||||
'name'=>'barcode_label_name',
|
||||
'value'=>'barcode_label_name',
|
||||
'checked'=>strstr($this->config->item('barcode_labels'), 'name'))); ?>
|
||||
<?php echo $this->lang->line('config_barcode_name'); ?>
|
||||
<?php echo form_checkbox(array(
|
||||
'name'=>'barcode_label_price',
|
||||
'value'=>'barcode_label_price',
|
||||
'checked'=>strstr($this->config->item('barcode_labels'), 'price'))); ?>
|
||||
<?php echo $this->lang->line('config_barcode_price'); ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="field_row clearfix">
|
||||
<?php echo form_label($this->lang->line('config_print_after_sale').':', 'print_after_sale',array('class'=>'wide')); ?>
|
||||
<div class='form_field'>
|
||||
@@ -430,6 +461,60 @@ echo form_close();
|
||||
//validation and submit handling
|
||||
$(document).ready(function()
|
||||
{
|
||||
var location_count = <?php echo sizeof($stock_locations); ?>;
|
||||
|
||||
var hide_show_remove = function()
|
||||
{
|
||||
if ($("input[name*='stock_location']").length > 1)
|
||||
{
|
||||
$(".remove_stock_location").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$(".remove_stock_location").hide();
|
||||
}
|
||||
};
|
||||
|
||||
hide_show_remove();
|
||||
|
||||
var add_stock_location = function()
|
||||
{
|
||||
var id = $(this).parent().find('input').attr('id');
|
||||
id = id.replace(/.*?_(\d+)$/g, "$1");
|
||||
var block = $(this).parent().clone(true);
|
||||
var new_block = block.insertAfter($(this).parent());
|
||||
var new_block_id = 'stock_location_' + ++id;
|
||||
$(new_block).find('label').html("<?php echo $this->lang->line('config_stock_location'); ?> " + ++location_count + ": ").attr('for', new_block_id);
|
||||
$(new_block).find('input').attr('id', new_block_id).attr('name', new_block_id).val('');
|
||||
$('.add_stock_location', new_block).click(add_stock_location);
|
||||
$('.remove_stock_location', new_block).click(remove_stock_location);
|
||||
hide_show_remove();
|
||||
};
|
||||
|
||||
var remove_stock_location = function()
|
||||
{
|
||||
$(this).parent().remove();
|
||||
hide_show_remove();
|
||||
};
|
||||
|
||||
var init_add_remove_locations = function()
|
||||
{
|
||||
$('.add_stock_location').click(add_stock_location);
|
||||
$('.remove_stock_location').click(remove_stock_location);
|
||||
};
|
||||
init_add_remove_locations();
|
||||
|
||||
var duplicate_found = false;
|
||||
// run validator once for all fields
|
||||
$.validator.addMethod('stock_location' , function(value, element)
|
||||
{
|
||||
var value_count = 0;
|
||||
$("input[name*='stock_location']").each(function() {
|
||||
value_count = $(this).val() == value ? value_count + 1 : value_count;
|
||||
});
|
||||
return value_count < 2;
|
||||
}, "<?php echo $this->lang->line('config_stock_location_duplicate'); ?>");
|
||||
|
||||
$('#config_form').validate({
|
||||
submitHandler:function(form)
|
||||
{
|
||||
@@ -444,6 +529,7 @@ $(document).ready(function()
|
||||
{
|
||||
set_feedback(response.message,'error_message',true);
|
||||
}
|
||||
$("#stock_locations").load('<?php echo site_url("config/stock_locations");?>', init_add_remove_locations);
|
||||
},
|
||||
dataType:'json'
|
||||
});
|
||||
@@ -463,8 +549,10 @@ $(document).ready(function()
|
||||
},
|
||||
email:"email",
|
||||
return_policy: "required",
|
||||
stock_location:"required"
|
||||
|
||||
stock_location: {
|
||||
required:true,
|
||||
stock_location: true
|
||||
}
|
||||
},
|
||||
messages:
|
||||
{
|
||||
@@ -478,8 +566,7 @@ $(document).ready(function()
|
||||
},
|
||||
email: "<?php echo $this->lang->line('common_email_invalid_format'); ?>",
|
||||
return_policy:"<?php echo $this->lang->line('config_return_policy_required'); ?>",
|
||||
stock_location:"<?php echo $this->lang->line('config_stock_location_required'); ?>"
|
||||
|
||||
stock_location:"<?php echo $this->lang->line('config_stock_location_required'); ?>"
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -161,7 +161,8 @@ $(document).ready(function()
|
||||
{
|
||||
equalTo: "#password"
|
||||
},
|
||||
email: "email", "grants[]" : {
|
||||
email: "email",
|
||||
"grants[]" : {
|
||||
required : function(element) {
|
||||
var checked = false;
|
||||
$("ul#permission_list > li > input:checkbox").each(function()
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<?php
|
||||
echo $this->lang->line('error_no_permission_module').' '.$module_name . ' (' . $permission_id . ')';
|
||||
echo $this->lang->line('error_no_permission_module').' '.$module_name . (!empty($permission_id) ? ' (' . $permission_id . ')' : '');
|
||||
?>
|
||||
17
application/views/partial/stock_locations.php
Normal file
17
application/views/partial/stock_locations.php
Normal file
@@ -0,0 +1,17 @@
|
||||
<?php $i = 0; ?>
|
||||
<?php foreach($stock_locations as $location => $location_data ) { ?>
|
||||
<?php $location_id = $location_data['location_id']; ?>
|
||||
<?php $location_name = $location_data['location_name']; ?>
|
||||
<div class="field_row clearfix" style="<? echo $location_data['deleted'] ? ';display:none;' : 'display:block;' ?>">
|
||||
<?php echo form_label($this->lang->line('config_stock_location').' ' .++$i. ':', 'stock_location_'.$i ,array('class'=>'required wide')); ?>
|
||||
<div class='form_field'>
|
||||
<?php echo form_input(array(
|
||||
'name'=>'stock_location_'.$location_id,
|
||||
'id'=>'stock_location_'.$location_id,
|
||||
'class'=>'stock_location required',
|
||||
'value'=>$location_name)); ?>
|
||||
</div>
|
||||
<img class="add_stock_location" src="<?php echo base_url('images/plus.png'); ?>" />
|
||||
<img class="remove_stock_location" src="<?php echo base_url('images/minus.png'); ?>" />
|
||||
</div>
|
||||
<?php } ?>
|
||||
@@ -37,7 +37,14 @@ INSERT INTO `ospos_permissions` (`permission_id`, `module_id`) VALUES
|
||||
('suppliers', 'suppliers');
|
||||
|
||||
-- add permissions for existing stock locations
|
||||
INSERT INTO `ospos_permissions` (permission_id, module_id, location_id) (SELECT CONCAT('items_', location_name), 'items', location_id FROM ospos_stock_locations);
|
||||
INSERT INTO `ospos_permissions` (permission_id, module_id, location_id)
|
||||
(SELECT CONCAT('items_', location_name), 'items', location_id FROM ospos_stock_locations);
|
||||
|
||||
INSERT INTO `ospos_permissions` (permission_id, module_id, location_id)
|
||||
(SELECT CONCAT('sales_', location_name), 'sales', location_id FROM ospos_stock_locations);
|
||||
|
||||
INSERT INTO `ospos_permissions` (permission_id, module_id, location_id)
|
||||
(SELECT CONCAT('receivings_', location_name), 'receivings', location_id FROM ospos_stock_locations);
|
||||
|
||||
CREATE TABLE `ospos_grants` (
|
||||
`permission_id` varchar(255) NOT NULL,
|
||||
@@ -72,13 +79,17 @@ INSERT INTO `ospos_grants` (`permission_id`, `person_id`) VALUES
|
||||
('sales', 1),
|
||||
('config', 1),
|
||||
('items_stock', 1),
|
||||
('sales_stock', 1),
|
||||
('receivings_stock', 1),
|
||||
('suppliers', 1);
|
||||
|
||||
-- add config options for tax inclusive sales
|
||||
INSERT INTO `ospos_app_config` (`key`, `value`) VALUES
|
||||
('tax_included', '0'),
|
||||
('recv_invoice_format', '$CO'),
|
||||
('sales_invoice_format', '$CO');
|
||||
('sales_invoice_format', '$CO'),
|
||||
('barcode_content', 'id'),
|
||||
('barcode_labels', '');
|
||||
|
||||
-- add invoice_number column to receivings table
|
||||
ALTER TABLE `ospos_receivings`
|
||||
|
||||
@@ -39,7 +39,9 @@ INSERT INTO `ospos_app_config` (`key`, `value`) VALUES
|
||||
('website', ''),
|
||||
('recv_invoice_format', '$CO'),
|
||||
('sales_invoice_format', '$CO'),
|
||||
('tax_included', '0');
|
||||
('tax_included', '0'),
|
||||
('barcode_content', 'id'),
|
||||
('barcode_labels', '');
|
||||
|
||||
|
||||
-- --------------------------------------------------------
|
||||
@@ -343,8 +345,9 @@ INSERT INTO `ospos_permissions` (`permission_id`, `module_id`) VALUES
|
||||
('suppliers', 'suppliers');
|
||||
|
||||
INSERT INTO `ospos_permissions` (`permission_id`, `module_id`, `location_id`) VALUES
|
||||
('items_stock', 'items', 1);
|
||||
|
||||
('items_stock', 'items', 1),
|
||||
('sales_stock', 'sales', 1),
|
||||
('receivings_stock', 'receivings', 1);
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
@@ -385,6 +388,8 @@ INSERT INTO `ospos_grants` (`permission_id`, `person_id`) VALUES
|
||||
('sales', 1),
|
||||
('config', 1),
|
||||
('items_stock', 1),
|
||||
('sales_stock', 1),
|
||||
('receivings_stock', 1),
|
||||
('suppliers', 1);
|
||||
|
||||
--
|
||||
@@ -651,7 +656,7 @@ CREATE TABLE `ospos_stock_locations` (
|
||||
`location_name` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
|
||||
`deleted` int(1) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`location_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=0;
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
|
||||
|
||||
--
|
||||
-- Dumping data for table `ospos_stock_locations`
|
||||
@@ -732,8 +737,8 @@ ALTER TABLE `ospos_permissions`
|
||||
-- Constraints for table `ospos_grants`
|
||||
--
|
||||
ALTER TABLE `ospos_grants`
|
||||
ADD CONSTRAINT `ospos_grants_ibfk_1` foreign key (`permission_id`) references `ospos_permissions` (`permission_id`),
|
||||
ADD CONSTRAINT `ospos_grants_ibfk_2` foreign key (`person_id`) references `ospos_employees` (`person_id`);
|
||||
ADD CONSTRAINT `ospos_grants_ibfk_1` foreign key (`permission_id`) references `ospos_permissions` (`permission_id`) ON DELETE CASCADE,
|
||||
ADD CONSTRAINT `ospos_grants_ibfk_2` foreign key (`person_id`) references `ospos_employees` (`person_id`) ON DELETE CASCADE;
|
||||
|
||||
--
|
||||
-- Constraints for table `ospos_receivings`
|
||||
|
||||
@@ -1,41 +1,49 @@
|
||||
"label","nl-BE","es","en","fr","zh","ru","th","tr","id"
|
||||
"config_address","Adres","Dirección del Comercio","Company Address","Addresse","公司地址","Адрес Компании","ที่อยู่","Şirket Adresi","Alamat Perusahaan"
|
||||
"config_address_required","Het adres van het bedrijf moet ingevuld worden","Dirección del Comercio es requerida","Company address is a required field","L\'adresse est requise","公司地址為必填","Адрес Компании обязательный пробел","ที่อยู่ต้องกรอก","Şirket Adresi zorunlu alandır","Alamat Perusahaan wajib diisi"
|
||||
"config_company","Bedrijfsnaam","Nombre del Comercio","Company Name","Nome de l\'Entreprise","公司名稱","Название Компании","ชื่อร้านค้า","Şirket Adı","Nama Perusahaan"
|
||||
"config_company_required","De bedrijfsnaam moet ingevuld worden","Nombre del Comercio es requerido","Company name is a required field","Le nom d\'entreprise est requis","公司名稱為必填","Имя Компании обязательный пробел","ชื่อร้านค้าต้องกรอก","Şirket Adı zorunlu alandır","Nama Perusahaan wajib diisi"
|
||||
"config_company_website_url","De website van het bedrijf is geen geldige URL (http://...)","Sitio Web no es una URL estándard (http://...)","Company website is not a valid URL (http://...)","Le site web de l\'entreprise n\'est pas une URL valide (http://...)","公司網址格式錯誤 (http://...)","Веб-сайт Компании не является допустимым URL (http://...)","เว็บไซต์ร้านค้าไม่ถูกต้อง","website adresi yanlış (http://...)","Situs Perusahaan bukan URL yang benar(http://...)"
|
||||
"config_currency_side","Rechterkant","Lado derecho","Right side","Symbole à droite","Right side","Правая сторона","ด้านขวา","Sağda","Sisi Kanan"
|
||||
"config_currency_symbol","Valuta","Símbolo de divisa","Currency Symbol","Symbole Monétaire","貨幣符號","Символ валюты","ลัญลักษณ์สกุลเงิน","Para Birimi","Simbol Mata Uang"
|
||||
"config_custom1","Custom Veld 1","Campo Libre 1","Custom Field 1","Champ Personnalisé 1","Custom Field 1","Изготовленный пробел 1","พื้นที่เพิ่มเติม 1","Özel Alan 1","Custom Field 1"
|
||||
"config_custom10","Custom Veld 10","Campo Libre 10","Custom Field 10","Champ Personnalisé 10","Custom Field 10","Изготовленный пробел 10","พื้นที่เพิ่มเติม 10","Özel Alan 10","Custom Field 10"
|
||||
"config_custom2","Custom Veld 2","Campo Libre 2","Custom Field 2","Champ Personnalisé 2","Custom Field 2","Изготовленный пробел 2","พื้นที่เพิ่มเติม 2","Özel Alan 2","Custom Field 2"
|
||||
"config_custom3","Custom Veld 3","Campo Libre 3","Custom Field 3","Champ Personnalisé 3","Custom Field 3","Изготовленный пробел 3","พื้นที่เพิ่มเติม 3","Özel Alan 3","Custom Field 3"
|
||||
"config_custom4","Custom Veld 4","Campo Libre 4","Custom Field 4","Champ Personnalisé 4","Custom Field 4","Изготовленный пробел 4","พื้นที่เพิ่มเติม 4","Özel Alan 4","Custom Field 4"
|
||||
"config_custom5","Custom Veld 5","Campo Libre 5","Custom Field 5","Champ Personnalisé 5","Custom Field 5","Изготовленный пробел 5","พื้นที่เพิ่มเติม 5","Özel Alan 5","Custom Field 5"
|
||||
"config_custom6","Custom Veld 6","Campo Libre 6","Custom Field 6","Champ Personnalisé 6","Custom Field 6","Изготовленный пробел 6","พื้นที่เพิ่มเติม 6","Özel Alan 6","Custom Field 6"
|
||||
"config_custom7","Custom Veld 7","Campo Libre 7","Custom Field 7","Champ Personnalisé 7","Custom Field 7","Изготовленный пробел 7","พื้นที่เพิ่มเติม 7","Özel Alan 7","Custom Field 7"
|
||||
"config_custom8","Custom Veld 8","Campo Libre 8","Custom Field 8","Champ Personnalisé 8","Custom Field 8","Изготовленный пробел 8","พื้นที่เพิ่มเติม 8","Özel Alan 8","Custom Field 8"
|
||||
"config_custom9","Custom Veld 9","Campo Libre 9","Custom Field 9","Champ Personnalisé 9","Custom Field 9","Изготовленный пробел 9","พื้นที่เพิ่มเติม 9","Özel Alan 9","Custom Field 9"
|
||||
"config_default_tax_rate","Standaard VAT %","% de Impuestos Predeterminada","Default Tax Rate %","Taux d\'Imposition par Défaut","預設稅率 %","Обычный ставка налога %","อัตราภาษีโดยปริยาย %","Varsayılan Vergi Oranı %","Tarif Pajak Biasa%"
|
||||
"config_default_tax_rate_1","VAT 1 %","Impuesto 1","Tax 1 Rate","Taux d\'Imposition 1","稅率 1","ставка налога 1","อัตราภาษี 1","Vergi Oranı 1","Tarif Pajak 1"
|
||||
"config_default_tax_rate_2","VAT 2 %","Impuesto 2","Tax 2 Rate","Taux d\'Imposition 2","稅率 2","ставка налога 2","อัตราภาษี 2","Vergi Oranı 2","Tarif Pajak 2"
|
||||
"config_default_tax_rate_number","Het percentage VAT moet een nummer zijn","El Impuesto Predeterminado debe ser un número","The default tax rate must be a number","Le taux d\'imposition doit etre un nombre","預設稅率必需為數字","Обычный ставка налога должен быть цифра","อัตราภาษีเริ่มต้นต้องเป็นตัวเลข","Varsayılan Vergi Oranı sayı olmalıdır","Tarif Pajak Biasa harus angka"
|
||||
"config_default_tax_rate_required","Het percentage VAT moet ingevuld worden","El Impuesto Predeterminado es requerido","The default tax rate is a required field","Le taux d\'imposition par défaut est requis","預設稅率為必填","Обычный ставка налога обязательный пробел","อัตราภาษีเริ่มต้นต้องกรอก","Varsayılan Vergi Oranı zorunlu alandır","Tarif Pajak Biasa wajib diisi"
|
||||
"config_fax","Fax","Fax","Fax","Fax","傳真","Факс","แฟ็กซ์","Faks","Fax"
|
||||
"config_info","Configuratie Informatie","Información del Comercio","Store Configuration Information","Çonfiguration de l\'Entreprise","儲存組態","информация о магазин конфигурация","ข้อมูลร้านค้า","Mağaza yapılandırma bilgisi","Informasi Konfigurasi Toko"
|
||||
"config_language","Taal","Idioma","Language","Langue","語言","Язик","ภาษา","Dil","Bahasa"
|
||||
"config_phone","Telefoon","Teléfono del Comercio","Company Phone","Téléphone","電話","Телефон Компании","เบอร์โทรศัพท์","Şirket Telefonu","Telepon Perusahaan"
|
||||
"config_phone_required","De telefoonnummer van het bedrijf moet ingevuld worden","Teléfono del Comercio es requerido","Company phone is a required field","Le numéro de téléphone est requis","公司電話為必填","Телефон Компании обязательный пробел","เบอร์โทรต้องกรอก","Şirket Telefonu zorunlu alandır","Telepon Perusahaan wajib diisi"
|
||||
"config_print_after_sale","Druk ticket na verkoop","Imprimir recibo después de una venta","Print receipt after sale","Imprimer un recu après vente","出貨時打印收據","Распечатать квитанцию после продажи","พิมพ์บิลหลังการขาย","Satıştan sonra yazdır","Cetak Faktur setelah penjualan"
|
||||
"config_recv_invoice_enable","","","Enable Orders Invoice#","","","","หมายเลขใบแจ้งหนี้","",""
|
||||
"config_recv_invoice_format","","","Receivings Invoice Format","","","","รหัสใบแจ้งหนี้","",""
|
||||
"config_return_policy_required","De retourvoorwaarden moeten ingevuld worden","Política de Devolución es requerida","Return policy is a required field","Le Message est un champ requis","退換貨政策為必填","Возвратний полис обязательный пробел","กฎการคืนของต้องกรอก","İade Politikası zorunlu alandır","Kebijakan retur wajib diisi"
|
||||
"config_sales_invoice_enable","","","Enable Sales Invoice#","","","","หมายเลขใบแจ้งหนี้","",""
|
||||
"config_sales_invoice_format","","","Sales Invoice Format","","","","รหัสใบเสร็จ","",""
|
||||
"config_saved_successfully","Configuratie werd bewaard","Configuración guardada satisfactoriamente","Configuration saved successfully","Configuration sauvegardée","組態設置儲存成功","Конфигурация успешно сохранена","องค์ประกอบร้านค้าบันทึกเรียบร้อย","Yapılandırma kaydedildi","Konfigurasi berhasil disimpan"
|
||||
"config_saved_unsuccessfully","Configuratie kon niet worden bewaard","Configuración no guardada","Configuration saved unsuccessfully","Échec de sauvegarde de configuration","組態設置儲存失敗","Конфигурация сохраненная безуспешно","องค์ประกอบร้านค้าบันทึกล้มเหลว","Yapılandırma kaydedilemedi","Konfigurasi tidak berhasil disimpan"
|
||||
"config_stock_location","","","Stock location","","","","สถานที่เก็บ","Mağaza Yeri",""
|
||||
"config_stock_location_required","","","Stock location number is a required field","","","","จำเป็นต้องระบุสถานที่เก็บ","Mağaza Yeri numarası zorunlu alandır",""
|
||||
"config_tax_included","VAT Ingebgrepen","Impuestos incluidos","Tax Included","","Tax Included","Tax Included","รวมภาษีแล้ว","","Dikenakan Pajak"
|
||||
"config_timezone","Tijdzone","Zona Horaria","Timezone","Fuseau Horaire","時區","Часовой пояс","โซนเวลา","Saat Dilimi","Zona Waktu"
|
||||
"config_website","Website","Sitio Web","Website","Site-web","網站","Веб-сайт","เว็บไซต์","Website","Situs Perusahaan"
|
||||
label,nl-BE,es,en,fr,zh,ru,th,tr,id
|
||||
config_address,Adres,Dirección del Comercio,Company Address,Addresse,公司地址,Адрес Компании,ที่อยู่,Şirket Adresi,Alamat Perusahaan
|
||||
config_address_required,Het adres van het bedrijf moet ingevuld worden,Dirección del Comercio es requerida,Company address is a required field,L\'adresse est requise,公司地址為必填,Адрес Компании обязательный пробел,ที่อยู่ต้องกรอก,Şirket Adresi zorunlu alandır,Alamat Perusahaan wajib diisi
|
||||
config_company,Bedrijfsnaam,Nombre del Comercio,Company Name,Nome de l\'Entreprise,公司名稱,Название Компании,ชื่อร้านค้า,Şirket Adı,Nama Perusahaan
|
||||
config_company_required,De bedrijfsnaam moet ingevuld worden,Nombre del Comercio es requerido,Company name is a required field,Le nom d\'entreprise est requis,公司名稱為必填,Имя Компании обязательный пробел,ชื่อร้านค้าต้องกรอก,Şirket Adı zorunlu alandır,Nama Perusahaan wajib diisi
|
||||
config_company_website_url,De website van het bedrijf is geen geldige URL (http://...),Sitio Web no es una URL estándard (http://...),Company website is not a valid URL (http://...),Le site web de l\'entreprise n\'est pas une URL valide (http://...),公司網址格式錯誤 (http://...),Веб-сайт Компании не является допустимым URL (http://...),เว็บไซต์ร้านค้าไม่ถูกต้อง,website adresi yanlış (http://...),Situs Perusahaan bukan URL yang benar(http://...)
|
||||
config_currency_side,Rechterkant,Lado derecho,Right side,Symbole à droite,Right side,Правая сторона,ด้านขวา,Sağda,Sisi Kanan
|
||||
config_currency_symbol,Valuta,Símbolo de divisa,Currency Symbol,Symbole Monétaire,貨幣符號,Символ валюты,ลัญลักษณ์สกุลเงิน,Para Birimi,Simbol Mata Uang
|
||||
config_custom1,Custom Veld 1,Campo Libre 1,Custom Field 1,Champ Personnalisé 1,Custom Field 1,Изготовленный пробел 1,พื้นที่เพิ่มเติม 1,Özel Alan 1,Custom Field 1
|
||||
config_custom10,Custom Veld 10,Campo Libre 10,Custom Field 10,Champ Personnalisé 10,Custom Field 10,Изготовленный пробел 10,พื้นที่เพิ่มเติม 10,Özel Alan 10,Custom Field 10
|
||||
config_custom2,Custom Veld 2,Campo Libre 2,Custom Field 2,Champ Personnalisé 2,Custom Field 2,Изготовленный пробел 2,พื้นที่เพิ่มเติม 2,Özel Alan 2,Custom Field 2
|
||||
config_custom3,Custom Veld 3,Campo Libre 3,Custom Field 3,Champ Personnalisé 3,Custom Field 3,Изготовленный пробел 3,พื้นที่เพิ่มเติม 3,Özel Alan 3,Custom Field 3
|
||||
config_custom4,Custom Veld 4,Campo Libre 4,Custom Field 4,Champ Personnalisé 4,Custom Field 4,Изготовленный пробел 4,พื้นที่เพิ่มเติม 4,Özel Alan 4,Custom Field 4
|
||||
config_custom5,Custom Veld 5,Campo Libre 5,Custom Field 5,Champ Personnalisé 5,Custom Field 5,Изготовленный пробел 5,พื้นที่เพิ่มเติม 5,Özel Alan 5,Custom Field 5
|
||||
config_custom6,Custom Veld 6,Campo Libre 6,Custom Field 6,Champ Personnalisé 6,Custom Field 6,Изготовленный пробел 6,พื้นที่เพิ่มเติม 6,Özel Alan 6,Custom Field 6
|
||||
config_custom7,Custom Veld 7,Campo Libre 7,Custom Field 7,Champ Personnalisé 7,Custom Field 7,Изготовленный пробел 7,พื้นที่เพิ่มเติม 7,Özel Alan 7,Custom Field 7
|
||||
config_custom8,Custom Veld 8,Campo Libre 8,Custom Field 8,Champ Personnalisé 8,Custom Field 8,Изготовленный пробел 8,พื้นที่เพิ่มเติม 8,Özel Alan 8,Custom Field 8
|
||||
config_custom9,Custom Veld 9,Campo Libre 9,Custom Field 9,Champ Personnalisé 9,Custom Field 9,Изготовленный пробел 9,พื้นที่เพิ่มเติม 9,Özel Alan 9,Custom Field 9
|
||||
config_default_tax_rate,Standaard VAT %,% de Impuestos Predeterminada,Default Tax Rate %,Taux d\'Imposition par Défaut,預設稅率 %,Обычный ставка налога %,อัตราภาษีโดยปริยาย %,Varsayılan Vergi Oranı %,Tarif Pajak Biasa%
|
||||
config_default_tax_rate_1,VAT 1 %,Impuesto 1,Tax 1 Rate,Taux d\'Imposition 1,稅率 1,ставка налога 1,อัตราภาษี 1,Vergi Oranı 1,Tarif Pajak 1
|
||||
config_default_tax_rate_2,VAT 2 %,Impuesto 2,Tax 2 Rate,Taux d\'Imposition 2,稅率 2,ставка налога 2,อัตราภาษี 2,Vergi Oranı 2,Tarif Pajak 2
|
||||
config_default_tax_rate_number,Het percentage VAT moet een nummer zijn,El Impuesto Predeterminado debe ser un número,The default tax rate must be a number,Le taux d\'imposition doit etre un nombre,預設稅率必需為數字,Обычный ставка налога должен быть цифра,อัตราภาษีเริ่มต้นต้องเป็นตัวเลข,Varsayılan Vergi Oranı sayı olmalıdır,Tarif Pajak Biasa harus angka
|
||||
config_default_tax_rate_required,Het percentage VAT moet ingevuld worden,El Impuesto Predeterminado es requerido,The default tax rate is a required field,Le taux d\'imposition par défaut est requis,預設稅率為必填,Обычный ставка налога обязательный пробел,อัตราภาษีเริ่มต้นต้องกรอก,Varsayılan Vergi Oranı zorunlu alandır,Tarif Pajak Biasa wajib diisi
|
||||
config_fax,Fax,Fax,Fax,Fax,傳真,Факс,แฟ็กซ์,Faks,Fax
|
||||
config_info,Configuratie Informatie,Información del Comercio,Store Configuration Information,Çonfiguration de l\'Entreprise,儲存組態,информация о магазин конфигурация,ข้อมูลร้านค้า,Mağaza yapılandırma bilgisi,Informasi Konfigurasi Toko
|
||||
config_language,Taal,Idioma,Language,Langue,語言,Язик,ภาษา,Dil,Bahasa
|
||||
config_phone,Telefoon,Teléfono del Comercio,Company Phone,Téléphone,電話,Телефон Компании,เบอร์โทรศัพท์,Şirket Telefonu,Telepon Perusahaan
|
||||
config_phone_required,De telefoonnummer van het bedrijf moet ingevuld worden,Teléfono del Comercio es requerido,Company phone is a required field,Le numéro de téléphone est requis,公司電話為必填,Телефон Компании обязательный пробел,เบอร์โทรต้องกรอก,Şirket Telefonu zorunlu alandır,Telepon Perusahaan wajib diisi
|
||||
config_print_after_sale,Druk ticket na verkoop,Imprimir recibo después de una venta,Print receipt after sale,Imprimer un recu après vente,出貨時打印收據,Распечатать квитанцию после продажи,พิมพ์บิลหลังการขาย,Satıştan sonra yazdır,Cetak Faktur setelah penjualan
|
||||
config_recv_invoice_enable,,,Enable Orders Invoice#,,,,หมายเลขใบแจ้งหนี้,,
|
||||
config_recv_invoice_format,,,Receivings Invoice Format,,,,รหัสใบแจ้งหนี้,,
|
||||
config_return_policy_required,De retourvoorwaarden moeten ingevuld worden,Política de Devolución es requerida,Return policy is a required field,Le Message est un champ requis,退換貨政策為必填,Возвратний полис обязательный пробел,กฎการคืนของต้องกรอก,İade Politikası zorunlu alandır,Kebijakan retur wajib diisi
|
||||
config_sales_invoice_enable,,,Enable Sales Invoice#,,,,หมายเลขใบแจ้งหนี้,,
|
||||
config_sales_invoice_format,,,Sales Invoice Format,,,,รหัสใบเสร็จ,,
|
||||
config_saved_successfully,Configuratie werd bewaard,Configuración guardada satisfactoriamente,Configuration saved successfully,Configuration sauvegardée,組態設置儲存成功,Конфигурация успешно сохранена,องค์ประกอบร้านค้าบันทึกเรียบร้อย,Yapılandırma kaydedildi,Konfigurasi berhasil disimpan
|
||||
config_saved_unsuccessfully,Configuratie kon niet worden bewaard,Configuración no guardada,Configuration saved unsuccessfully,Échec de sauvegarde de configuration,組態設置儲存失敗,Конфигурация сохраненная безуспешно,องค์ประกอบร้านค้าบันทึกล้มเหลว,Yapılandırma kaydedilemedi,Konfigurasi tidak berhasil disimpan
|
||||
config_stock_location,Stock locatie,,Stock location,,,,สถานที่เก็บ,Mağaza Yeri,
|
||||
config_stock_location_duplicate,Vul een unieke naam in,,Please use an unique location name,,,,,,
|
||||
config_stock_location_required,Naam van de stock locatie is een verplicht veld,,Stock location number is a required field,,,,จำเป็นต้องระบุสถานที่เก็บ,Mağaza Yeri numarası zorunlu alandır,
|
||||
config_tax_included,VAT Ingebgrepen,Impuestos incluidos,Tax Included,,Tax Included,Tax Included,รวมภาษีแล้ว,,Dikenakan Pajak
|
||||
config_timezone,Tijdzone,Zona Horaria,Timezone,Fuseau Horaire,時區,Часовой пояс,โซนเวลา,Saat Dilimi,Zona Waktu
|
||||
config_website,Website,Sitio Web,Website,Site-web,網站,Веб-сайт,เว็บไซต์,Website,Situs Perusahaan
|
||||
config_barcode_number,UPC/EAN/ISBN,UPC/EAN/ISBN,UPC/EAN/ISBN,UPC/EAN/ISBN,UPC/EAN/ISBN,UPC/EAN/ISBN,UPC/EAN/ISBN,UPC/EAN/ISBN,UPC/EAN/ISBN
|
||||
config_barcode_id,Product id/naam,Item Id/Name,Item Id/Name,Item Id/Name,Item Id/Name,Item Id/Name,Item Id/Name,Item Id/Name,Item Id/Name
|
||||
config_barcode_content,Inhoud Barcode,Barcode Content,Barcode Content,Barcode Content,Barcode Content,Barcode Content,Barcode Content,Barcode Content,Barcode Content
|
||||
config_barcode_labels,Barcode Labels,Barcode Labels,Barcode Labels,Barcode Labels,Barcode Labels,Barcode Labels,Barcode Labels,Barcode Labels,Barcode Labels
|
||||
config_barcode_name,Productnaam,Name,Name,Name,Name,Name,Name,Name,Name
|
||||
config_barcode_price,Prijs,Price,Price,Price,Price,Price,Price,Price,Price
|
||||
config_barcode_company,Bedrijfsnaam,Nombre del Comercio,Company Name,Nome de l\'Entreprise,公司名稱,Название Компании,ชื่อร้านค้า,Şirket Adı,Nama Perusahaan
|
||||
|
||||
|
@@ -4,7 +4,6 @@ sales_amount_due,Te betalen,Debe,Amount Due,Somme Due,Amount Due,Amount Due,,Kal
|
||||
sales_amount_tendered,Ontvangen bedrag,Cantidad Recibida,Amount Tendered,Somme,已收帳款,предложенная сумма,จำนวนประมูล,Ödenen Tutar,Nilai Pembayaran
|
||||
sales_basic_information,Ticket informatie,información sobre las entradas,Sale information,Information de Vente,Sale information,информацию о билетах,,Satış bilgisi,Sale information
|
||||
sales_cancel_sale,Annuleer,Cancelar Venta,Cancel Sale,Annuler la Vente,取消銷售,Отменить продажу,ยกเลิกการขาย,İptal Et,Batal Jual
|
||||
sales_cannot_be_deleted,,,Sale(s) could not be deleted,,,,,,
|
||||
sales_cash,Contant,Efectivo,Cash,Cash,現金,наличные деньги,เงินสด,Nakit,Tunai
|
||||
sales_change_due,Wisselgeld terug,Cambio,Change Due,Reste,更改到期日,сдача должное,เงินทอน,Para Üstü,Kembalian Uang
|
||||
sales_check,Waardebon,Cheque,Check,Cheque,支票,банковский чек,เช็ก,Çek,Cek
|
||||
@@ -26,7 +25,6 @@ sales_delete_successful,De geselecteerde aanko(o)p(en) werden verwijderd,Has bor
|
||||
sales_delete_unsuccessful,De geselecteerde aankopen konden niet worden verwijderd.,No he podido borrar la venta satisfactoriamente,You have unsuccessfully deleted a sale,Échec de suppression,銷售資料刪除失敗,Вы безуспешно удален продаже,คุณลบการขายไม่สำเร็จ,Satışı silemediniz,Transaksi Penjualan tidak berhasil dihapus
|
||||
sales_description_abbrv,Omschr.,Desc,Desc,Desc,倒序,описание,Desc,Tanım,Deskripsi
|
||||
sales_discount,%,Desc %,Disc %,% Remise,折扣 %,скидка %,ส่วนลด %,İndirim %,Diskon %
|
||||
sales_discount_included,,,,,,,,% İndirim,
|
||||
sales_discount_short,%,%,%,%,%,%,,%,%
|
||||
sales_edit,Bewerk,Editar,Edit,Éditer,編輯,редактировать,แก้ไข,Düzenle,Ubah
|
||||
sales_edit_item,Bewaar,Editar Artículo,Edit Item,Éditer Item,編輯產品,Редактировать Товар,แก้ไขสินค้า,Düzenle,Ubah Item
|
||||
@@ -39,10 +37,9 @@ sales_find_or_scan_item_or_receipt,Zoek/Scan Product of Ticket,Encontrar/Escanea
|
||||
sales_giftcard,Cadeaubon,Tarjeta de Regalo,Gift Card,Carte Cadeau,禮金券,Подарочная карта,Gift Card,Hediye Çeki,Gift Card
|
||||
sales_giftcard_number,Cadeaubon nummer,Número de Tarjeta de Regalo,Gift Card Number,Numéro de Carte cadeau,禮金券編號,Номер подарочных карт,เลขที่ Gift Card,Hediye Çeki No,Nomor Gift Card
|
||||
sales_id,Nummer Verkoop ,ID de Venta,Sale ID,ID Vente,銷售編號,Номер Продажы,เลขที่ขาย,Satış No,ID Penjualan
|
||||
sales_invoice_number,,,Invoice #,,,,,,
|
||||
sales_invoice_number_duplicate,,,Please enter an unique invoice number,,,,,,
|
||||
sales_item_insufficient_of_stock,,Hay un número insuficiente de Artículos en existencia,Item is Insufficient of Stock,Stock top faible,產品庫存不足,Товар недостаточно на складе,จำนวนสินค้าไม่เพียงพอ,Ürün Stoğu Yetersiz,Stok Item tidak mencukupi
|
||||
sales_item_insufficient_of_stockfi,Product is niet meer in voorraad,,,,,,,,
|
||||
sales_invoice_number,,Invoice #,Invoice #,Invoice #,,,,,
|
||||
sales_invoice_number_duplicate,Vul een unieke nummer in,Please enter an unique invoice number,Please enter an unique invoice number,,,,,,
|
||||
sales_item_insufficient_of_stock,Product is niet meer in voorraad,Hay un número insuficiente de Artículos en existencia,Item is Insufficient of Stock,Stock top faible,產品庫存不足,Товар недостаточно на складе,จำนวนสินค้าไม่เพียงพอ,Ürün Stoğu Yetersiz,Stok Item tidak mencukupi
|
||||
sales_item_name,Naam,Nombre del Artículo,Item Name,Nom,產品名稱,Название товара,ชื่อสินค้า,Ürün Adı,Nama Item
|
||||
sales_item_number,Product #,UPC/EAN/ISBN,Item #,# Item,產品 #,Номер товара,สินค้า #,Ürün No,Item #
|
||||
sales_item_out_of_stock,Product is niet meer in voorraad,El artículo está agotado,Item is Out of Stock,Stock épuisé,產品缺貨,Товар распродано,สินค้าจำหน่ายหมด,Ürün Stokta Yok,Item tidak ada stok
|
||||
@@ -52,7 +49,7 @@ sales_must_enter_numeric_giftcard,Er moet een geldige code worden ingevuld voor
|
||||
sales_new_customer,Nieuwe klant,Cliente Nuevo,New Customer,Nouveau Client,新客戶,Новый клиент,ลูกค้าใหม่,Yeni Müşteri,Pelanggan Baru
|
||||
sales_new_item,Nieuw Product,Artículo Nuevo,New Item,Nouvel Élément,新增產品,Новый Товар,สินค้าใหม่,Yeni Ürün,Item Baru
|
||||
sales_no_items_in_cart,Er zijn geen aankopen geselecteerd,No hay artículos en el carrito,There are no items in the cart,Il n\'y a rien dans votre panier,購物車中沒有任何產品,Там нет товаров в корзине,ไม่พบสินค้าในตระกร้า,Sepette Ürün Yok,Tidak ada Item dalam Keranjang Belanja
|
||||
sales_one_or_multiple,,,sale(s),,,,,,
|
||||
sales_one_or_multiple,aankopen verwijderd,,sale(s),,,,,,
|
||||
sales_payment,Betaalmethode,Tipo de Pago,Payment Type,Type Paiement,付款方式,Вид оплаты,รูปแบบชำระเงิน,Ödeme Türü,Type Pembayaran
|
||||
sales_payment_amount,Bedrag,Cantidad,Amount,Somme,Amount,количество,,Tutar,Amount
|
||||
sales_payment_not_cover_total,Betaalde hoeveelheid is onvoldoende,La Cantidad Recibida no cubre el pago total,Payment Amount does not cover Total,Le Paiement ne couvre pas le Total,付款金額不足,оплачиваемая сумма недостаточно, ปริมาณการจ่ายที่ไม่เพียงพอกะยอดรวม,Ödemeler toplam tutarı karşılamıyor,Jumlah pembayaran tidak mencakup Total
|
||||
@@ -73,9 +70,9 @@ sales_select_customer,Selecteer Klant (Optioneel),Seleccionar Cliente (Opcional)
|
||||
sales_serial,Nummer,Serial,Serial,Serie,序號,серийный номер,Serial,Seri,Serial
|
||||
sales_start_typing_customer_name,Typ naam klant...,Empieza a escribir el cliente...,Start Typing customer\'s name...,Commencez à saisir le nom du client...,開始輸入客戶的名字,Начните печатать название клиента...,เริ่มต้นพิมพ์ชื่อลูกค้า...,Müşteri Adı...,Ketik Nama Pelanggan...
|
||||
sales_start_typing_item_name,Typ naam product of barcode...,Empieza a escribir o escanea el código de barras...,Start Typing item\'s name or scan barcode...,Commencez à saisir le nom de l\'item ou scannez le code-barre...,開始輸入產品名或掃描條碼...,Начните печатать название товара или сканировайте штрих-кода...,เริ่มต้นพิมพ์ชื่อสินค้า หรือ สแกนบาร์โค๊ด...,Ürün adı yazın yada barkod okutun...,Ketik Nama Barang atau Scan Barcode...
|
||||
sales_stock_location,,,Stock location,,,,,Stok yeri,
|
||||
sales_stock_location,Stock locatie,,Stock location,,,,,Stok yeri,
|
||||
sales_sub_total,Subtotaal excl. VAT,Subtotal,Sub Total,Sous-Total,小計,промежуточный итог,ยอดรวมหักภาษี ,Ara Toplam,Sub Total
|
||||
sales_successfully_deleted,,La Venta ha sido borrada satisfactoriamente,You have successfully deleted,Vente supprimée,銷售資料成功刪除,продажи успешно удален,ลบการขายสมยูรณ์,Satış silindi,Transaksi Penjualan berhasil dihapus
|
||||
sales_successfully_deleted,Uw aankoop werd verwijded,La Venta ha sido borrada satisfactoriamente,You have successfully deleted,Vente supprimée,銷售資料成功刪除,продажи успешно удален,ลบการขายสมยูรณ์,Satış silindi,Transaksi Penjualan berhasil dihapus
|
||||
sales_successfully_suspended_sale,Uw aankoop werd met sucess bewaard,La venta ha sido suspendida satisfactoriamente,Your sale has been successfully suspended,Vente suspendue,本銷售資料已經成功暫停,Ваши продажи успешно приостановлена,การขายของคุณถูกระงับเรียบร้อย,Satış askıya alındı,Penjualan anda telah berhasil ditangguhkan
|
||||
sales_successfully_updated,Wijzigingen bewaard voor ticket,La venta ha sido actualizada satisfactoriamente,Sale successfully updated,Vente éditée,銷售資料成功更新,Продажа успешно обновлен,อัพเดทการขายสมบูรณ์,Satış düzenlendi,Penjualan berhasil diperbarui
|
||||
sales_suspend_sale,Bewaar aankoop,Suspender Venta,Suspend Sale,Suspendre la Vente,暫停銷售,Приостановить продажи,ระงับการขายชั่วคราว,Satışı Askıya Al,Tangguhkan
|
||||
@@ -86,7 +83,7 @@ sales_tax_percent,VAT %,% de Impuesto,Tax %,% Taxe,稅率 %,Налоговые %
|
||||
sales_total,Totaal,Total,Total,Total,總計,сумма,ยอดรวม,Toplam,Total
|
||||
sales_transaction_failed,Transactie mislukt,La transacción de venta falló,Sales Transaction Failed,Échec de Transaction de vente,銷售交易失敗,Транзакция не удалось,การดำเนินการขายล้มเหลว,Satış işlemi hatası,Transaksi Penjualan Salah
|
||||
sales_unable_to_add_item,Onmogelijk om product toe te voegen,No se puede agregar el artículo a la venta,Unable to add item to sale,Erreur d\'ajout à la vente,無法增加出售產品,Невозможно добавить товар продажи,ไม่สามารถเพิ่มสินค้าได้,Ürün satışa eklenemedi,Tidak dapat menambahkan item dengan penjualan
|
||||
sales_unsuccessfully_deleted,,Ha fallado la eliminación de la Venta,,Échec de suppression,銷售資料刪除失敗,продажи безуспешно удален,ลบการขายไม่สมยูรณ์,Satış silinemedi,Transaksi Penjualan tidak berhasil dihapus
|
||||
sales_unsuccessfully_deleted,De aankoop kon niet verwijderd worden,Ha fallado la eliminación de la Venta,Sale(s) could not be deleted,Échec de suppression,銷售資料刪除失敗,продажи безуспешно удален,ลบการขายไม่สมยูรณ์,Satış silinemedi,Transaksi Penjualan tidak berhasil dihapus
|
||||
sales_unsuccessfully_updated,Fout bij het bewaren van ticket,Ha fallado la actualización de la venta,Sale unsuccessfully updated,Échec d\'édition,銷售資料更新失敗,Продажа безуспешно обновлен,อัพเดทการขายไม่สมบูรณ์,Satış düzenlenemedi,Penjualan tidak berhasil diperbarui
|
||||
sales_unsuspend,Hervat,Retomar,Unsuspend,Débloquer,取消暫停銷售,Разблокировать,ยกเลิกการระงับ,Satışa Al,Batal Penangguhan
|
||||
sales_unsuspend_and_delete,,Retomar y Borrar,,,取消暫停銷售並刪除,Разблокировать и удалить,ยกเลิกการระงับ และ ลบ,,Batalkan dan hapus penangguhan
|
||||
|
||||
|
Reference in New Issue
Block a user