Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

NEW! Complete Order Editing Tool!


jhilgeman

Recommended Posts

I must say that SearchSuggest by insomniac2 doesn't work for me. So I reverted back to Drako's Ajax version, just changed product's name into model in the query. But I still have that Syntax Error at Line: 71 Char: 77 which is in my edit_orders.php is: //figure out the country, state. What can be the problem here?

 

Thanks.

Link to comment
Share on other sites

Great work on the search funsction. referencing this post, http://www.oscommerce.com/forums/index.php?sho...mp;#entry961828

 

is there any way to create this in your modded version? i need the ability to have a blank product inserted into the orders. my shop sells used items, and it would be impossible to have all of the parts in the shop. so this would greatly help us.

Link to comment
Share on other sites

Great work on the search funsction. referencing this post, http://www.oscommerce.com/forums/index.php?sho...mp;#entry961828

 

is there any way to create this in your modded version? i need the ability to have a blank product inserted into the orders. my shop sells used items, and it would be impossible to have all of the parts in the shop. so this would greatly help us.

 

 

I've the same problem sometimes, and i've resolved like this:

 

1) Create a new product, and call it whatever u want, like "Generic Stuff" or whatever

2) Disable it

3) In search_suggest.php find the SQL Query at line 20 that should be like this:

 

 

WHERE p.products_status = '1' and p.products_id = pd.products_id

 

and just wipe out the products_status thing. Code should be like this:

 

WHERE p.products_id = pd.products_id

 

4) When u need to add a blank one just use the brand new "Generic Stuff" and live peacefully ;)

 

 

 

 

 

BTW i got a nice error with tax when adding a product; every products i'll add always give me zero TAX. Anyone else?

my contribution: Alex's Contributions

Link to comment
Share on other sites

Hi,

 

I'm losing order's ID every time I add products to the order. When I go to add a product, the order ID is lost halfway. In Step=1, the order ID is still there, but as soon as I choose a product from the suggested list, the page refreshes itself but the order ID is lost. The path shows admin/edit_orders.php?action=add_product&oID=0&step=3&add_product_products_id=48. What's wrong?

 

Thanks for any help.

Link to comment
Share on other sites

Hi Drako

 

Looks like my admin/includes/classes/oe_orders.php was missing the following ...

 

from orders_products query around ln 106 after p.products_weight,

	
 p.products_id

 

and around ln 121 after 'weight' => $orders_products['products_weight'],

	
'magazzino' => $orders_products['products_id'],

 

now its working fine

 

 

Hi to all community.

even if I followed your instruction upper quoted, I continue to see the error:

Fatal error: Call to undefined function: tep_get_products_inventory_qty() in /web/htdocs/www.my website.it/home/catalog/admin/edit_orders.php on line 1809

 

and quantity and kind of products ordered are not showed.

 

in my file the line 1809 is:

' <td class="' . $RowStyle . '" valign="top">' . tep_get_products_inventory_qty($order->products[$i]['magazzino']). '</td>' .//MOD mag view ************************************************

 

 

hope for your fast reply to solve my problem...

thanks to all

rgds

meastore

Link to comment
Share on other sites

Hi,

 

I'm losing order's ID every time I add products to the order. When I go to add a product, the order ID is lost halfway. In Step=1, the order ID is still there, but as soon as I choose a product from the suggested list, the page refreshes itself but the order ID is lost. The path shows admin/edit_orders.php?action=add_product&oID=0&step=3&add_product_products_id=48. What's wrong?

 

Thanks for any help.

 

 

dont't use insomniac2 mod cause is not working, that's what get u lose the product id.

 

 

Bye

my contribution: Alex's Contributions

Link to comment
Share on other sites

Hi to all community.

even if I followed your instruction upper quoted, I continue to see the error:

Fatal error: Call to undefined function: tep_get_products_inventory_qty() in /web/htdocs/www.my website.it/home/catalog/admin/edit_orders.php on line 1809

 

and quantity and kind of products ordered are not showed.

 

in my file the line 1809 is:

' <td class="' . $RowStyle . '" valign="top">' . tep_get_products_inventory_qty($order->products[$i]['magazzino']). '</td>' .//MOD mag view ************************************************

hope for your fast reply to solve my problem...

thanks to all

rgds

meastore

 

Read the recent post before posting for a solution, u are missing a function in general.php. Check out the instruction and add the function tep_get_products_inventory_qty() to the general.php function file as described in the install.txt

 

 

If u need more i'm here.

 

Bye

my contribution: Alex's Contributions

Link to comment
Share on other sites

Read the recent post before posting for a solution, u are missing a function in general.php. Check out the instruction and add the function tep_get_products_inventory_qty() to the general.php function file as described in the install.txt

If u need more i'm here.

 

Bye

 

 

many thanks drako

now all is working. I can see only an error in the status bar that write some mistake in the reading of the page.

Line 1226 character 123

line 965 character 234

 

can we solve also this small error?

 

thanks again

alessandro/meastore

Link to comment
Share on other sites

First off Great Contribution!

 

95% of the editing I need to do to the orders is adding a product. Is there anyway, that I can add the "add a product" button to the orders details page, so that i dont have to open edit_orders, and go through the whole process to add a product? I added

 

<td align="right"><?php echo '<a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')) . 'action=add_product&step=1') . '">' . tep_image_button('button_add_article.gif', ADDING_TITLE) . '</a>'; ?></td>

 

however, the button doesnt work.

 

 

 

ALSO

 

did anyone figure out how to get the contribution by insomniac working. I would love to be able to search by model number.

 

Thank you.

Link to comment
Share on other sites

You were right about the taxes being off. It looks like it is getting the total tax from the products. What I would like to do is somehow get it from the subtotal minus the discount. Any ideas how we can make that happen?

 

Find
if (action == 'subtotal') {
 <?php if (DISPLAY_PRICE_WITH_TAX == 'true') { ?>
 if(pid == 'p-total_incl')// display price with tax => total including tax
 <?php } else { ?>
 if(pid == 'p-total_excl')// display price without tax => total excluding tax
 <?php } ?>
 {
 sum+=Number(el[i].value);
 }
 }

 

and change it to

if (action == 'subtotal') {
 <?php if (DISPLAY_PRICE_WITH_TAX == 'true') { ?>
 if ((pid == 'p-total_incl') || (pid == 'ot_coupon'))// display price with tax => total including tax
 <?php } else { ?>
 if((pid == 'p-total_excl') || (pid == 'ot_coupon'))// display price without tax => total excluding tax
 <?php } ?>
 {
 sum+=Number(el[i].value);
 }
 }

 

Then find

if (action =='total'){
//I cheat here- the grand total always includes the value of the various totals including tax of 
//each item, regardless of individual shop settings.  So I take the various Total incls, all the
//ot_customs, ot_loworderfees, and any ot_shipping value, and voila
if ((pid ==  'ot_custom') || (pid == defaultTaxName + 'ot_shipping') || (pid == 'p-total_incl') || (pid == 'ot_loworderfee')) {
sum += Number(el[i].value);
 }

 

and change it to

if (action =='total'){
//I cheat here- the grand total always includes the value of the various totals including tax of 
//each item, regardless of individual shop settings.  So I take the various Total incls, all the
//ot_customs, ot_loworderfees, and any ot_shipping value, and voila
if ((pid ==  'ot_custom') || (pid == defaultTaxName + 'ot_shipping') || (pid == 'p-total_incl') || (pid == 'ot_loworderfee') || (pid == 'ot_coupon')) {
sum += Number(el[i].value);
 }

 

Let me know how this goes. You may need additional custom code to get the tax totals right.

Link to comment
Share on other sites

Hi, i tested the latest 13 nov. v2.8.1 Added AJAX to ADD PRODUCTS update, and it works o.k, only the tax won't show up when you add a product...

 

I also upgraded the last SearchSuggest_Update for v2.8.1 but it ain't working, i can search a product, but when i update the order, an error message come's up "order don't excist" ???

 

Somebody knows a solution?

 

 

O yeah.. Respect for this newest addon :D

Link to comment
Share on other sites

I don't use insomniac2 mod. I'm losing order id with your mod.

and

I also upgraded the last SearchSuggest_Update for v2.8.1 but it ain't working, i can search a product, but when i update the order, an error message come's up "order don't excist" ???

To fix the missing order_id/order doesn't exist problem when adding a new product do the following:

 

In edit_order.php line 2285 change this:

		   	echo '<tr class="dataTableRow">' . tep_draw_form('addProduct', FILENAME_ORDERS_EDIT,'oID=' . $HTTP_GET_VARS['oID'] . '&action=' . $_GET['action']) . "\n";

 

To this:

		   	echo '<tr class="dataTableRow">' . tep_draw_form('addProduct', FILENAME_ORDERS_EDIT,'oID=' . $_GET['oID'] . '&action=' . $_GET['action']) . "\n";

 

In SearchSuggest.php check line 59, you may need to change this:

		$url = tep_href_link(FILENAME_ORDERS_EDIT, 'action=add_product&oID=' . (int)$_GET['oID'] . '&step=3&add_product_products_id=' . $id);

 

To this:

		$url = tep_href_link(FILENAME_ORDERS_EDIT, 'action=add_product&oID=' . $_GET['oid'] . '&step=3&add_product_products_id=' . $id);

 

Trina

Link to comment
Share on other sites

hi, I have just tried to install the contrib nut did not succesd...

 

At step 4 you write:

Open admin/function/general.php and find the function tep_get_products_info function... I do not have it in my file...

 

when i run the editor it displays:

Parse error: parse error, unexpected $end in c:\wamp\www\novonew\catalog\admin\edit_orders.php on line 2318

 

do you have any idea ???

 

Many thanks !

Link to comment
Share on other sites

Hi,

 

I've added an additional drop-down block for Purchase Order payment method but can't figure out the trick with hidding the drop-down fields when not selected. They are always visible doesn't matter what payment method is selected. Does anybody have any idea on how to achieve that?

 

Thanks in advance.

Link to comment
Share on other sites

Hello,

Last package loaded as 2.8.2 is crashing under Firefox2 and IE 6/7.

Browser just hang as soon as I type something in the field.

In ie7 it does finally come back but just include the all admin back into the div !!

 

Instruction on how not to use the Ajax part would be nice as I thought the drowdown were good enough and faster

Link to comment
Share on other sites

hello,

 

thanks for the brilliant contribution, it works a treat :)

i did have v2.8.1 running which worked fine but since upgrading to v2..8.2 i get the following error on updating an order:

 

1054 - Unknown column 'billing_piva' in 'field list'
Link to comment
Share on other sites

hello,

 

thanks for the brilliant contribution, it works a treat :)

i did have v2.8.1 running which worked fine but since upgrading to v2..8.2 i get the following error on updating an order:

 

I get the errors to, and the edit_orders.php there are the 2 new line:

billing_piva = '" . tep_db_input($_POST['update_billing_piva']) . "',

billing_cf = '" . tep_db_input($_POST['update_billing_cf']) . "',

 

But i can not get it to work with the sql, someone there can help ???

Link to comment
Share on other sites

Hi Drako

 

not sure if you are aware of this. I can add thing to an order fine, however when I go to delete something, ie tick the box to remove it and then click update I get the following

 

1054 - Unknown column 'billing_piva' in 'field list'

 

update orders set customers_name = 'Thermaltech Admin', **MORE SQL STUFF HERE REMOVED AS ITS PERSONAL**

 

any ideas what might be causing that?

Things still to do before going "live" in no real order...

Change "buy now buttons" css styles

Change "lets see what we have here" into something meaningfull

Main logo of the website

Sort out currency to make site UK only (at present)

Remove "xx requests since" stuff

Update mainpage :D

Move shopping cart status into header

Add in stock status to product listing page

Define styles for product listing standardisation

Change CSS background for Headings

Increase Category size headings

Used mods so far:- basic_design_pack1mk7 | Google XML sitemap w admin | Paypal IPN v 1.2 | Feedmachine | pricematch_1_3_1 | Dynamic Sitemap 1.6 | Whos online Enhancement | Easypopulate 2.72

 

Each one that I solve I;ll be putting a post on the forum in a "completed shop" thread that Im writing up

Link to comment
Share on other sites

Fixed! A new packege is on the web now. The problem was a MOD for Italian VAC i fogeto to erase. BTw now it's fixed.

 

Phocea u probably have "Admin Login" installed, but u forgot to give serachsuggest.php right to be used. Try that and let me know.

 

But how i do that ??? I have read the readme file, and do what you write there, but i can not see where you will have i out "serachsuggest.php right to be used"

 

Sorry my bad english

Link to comment
Share on other sites

Phocea u probably have "Admin Login" installed, but u forgot to give serachsuggest.php right to be used. Try that and let me know.

 

Yeap that was right sorry !!

Still got an error when going to view a normal order as it was using some of the function moved to oe_functions in classes/orders.php (god knows why and when I put stuff in there). Anyway, just included the function in orders.php and its cool.

 

Ah well, to be forgivent, here is the french translation file up to date:

 

<?php
/*
 $Id: edit_orders.php,v 2.5 2006/04/28 10:42:44 ams Exp $
 french

 osCommerce, Open Source E-Commerce Solutions
 http://www.oscommerce.com
 Translated by Maverick

 Copyright (c) 2006 osCommerce

 Released under the GNU General Public License
*/

define('HEADING_TITLE', 'Modification de commande');
define('HEADING_TITLE_NUMBER', 'N°');
define('HEADING_TITLE_DATE', 'en date du');
define('HEADING_SUBTITLE', 'Modifiez tous les champs souhaités puis cliquez sur le bouton "Mise à jour" ci-dessous.');
define('HEADING_TITLE_STATUS', 'Statut');
define('ADDING_TITLE', 'Ajouter un produit');

define('HINT_UPDATE_TO_CC', 'Set payment method to ');
//ENTRY_CREDIT_CARD should be whatever is saved in your db as the payment method
//when your customer pays by Credit Card
define('ENTRY_CREDIT_CARD', 'Credit Card');
define('HINT_UPDATE_TO_CC2', ' and the other fields will be displayed automatically.  CC fields are hidden if any other payment method is selected.');
define('HINT_PRODUCTS_PRICES', 'Price and weight calculations are done on the fly, but you must hit update in order to save any changes.  Zero and negative values may be entered for quantity. If you want to delete a product, check the delete box and hit update. Weight fields are not editable.');
define('HINT_SHIPPING_ADDRESS', 'If the shipping destination is changed this may change the tax zone the order is in as well.  You will have to press the update button again to properly calculate tax totals in this case.');
define('HINT_TOTALS', 'Feel free to give discounts by adding negative values. Any field with a value of 0 is deleted when updating the order (exception: shipping).  Weight, subtotal, tax total, and total fields are not editable. On-the-fly calculations are estimates; small rounding differences are possible after updating.');
define('HINT_PRESS_UPDATE', 'Cliquez sur le bouton "Mise à jour" pour enregistrer toutes vos modifications.');
define('HINT_BASE_PRICE', 'Price (base) is the products price before products attributes (ie, the catalog price of the item)');
define('HINT_PRICE_EXCL', 'Price (excl) is the base price plus any product attributes prices that may exist');
define('HINT_PRICE_INCL', 'Price (incl) is Price (excl) times tax');
define('HINT_TOTAL_EXCL', 'Total (excl) is Price (excl) times qty');
define('HINT_TOTAL_INCL', 'Total (incl) is Price (excl) times tax and qty');

define('TABLE_HEADING_COMMENTS', 'Commentaires');
define('TABLE_HEADING_STATUS', 'Statut de la commande');
define('TABLE_HEADING_QUANTITY', 'Qté');
define('TABLE_HEADING_PRODUCTS_MODEL', 'Modèle');
define('TABLE_HEADING_PRODUCTS_WEIGHT', 'Weight');
define('TABLE_HEADING_PRODUCTS', 'Produits');
define('TABLE_HEADING_TAX', 'Taxes');
define('TABLE_HEADING_BASE_PRICE', 'Prix (base)');
define('TABLE_HEADING_UNIT_PRICE', 'Prix unitaire HT');
define('TABLE_HEADING_TOTAL_PRICE', 'Prix total HT');
define('TABLE_HEADING_UNIT_PRICE_TAXED', 'Prix TTC');
define('TABLE_HEADING_TOTAL_PRICE', 'Total (excl.)');
define('TABLE_HEADING_TOTAL_PRICE_TAXED', 'Total TTC');
define('TABLE_HEADING_TOTAL_MODULE', 'Récapitulatif de la commande');
define('TABLE_HEADING_TOTAL_AMOUNT', 'Montant');
define('TABLE_HEADING_TOTAL_WEIGHT', 'Poids Total: ');
define('TABLE_HEADING_DELETE', 'Effacement?');
define('TABLE_HEADING_SHIPPING_TAX', 'Taxe Frais de Port: ');

define('TABLE_HEADING_CUSTOMER_NOTIFIED', 'Client avisé');
define('TABLE_HEADING_DATE_ADDED', 'Date de modification');

define('ENTRY_CUSTOMER_NAME', 'Nom');
define('ENTRY_CITY_STATE', 'Ville, Département:');
define('ENTRY_CUSTOMER_COMPANY', 'Société');
define('ENTRY_CUSTOMER_ADDRESS', 'Adresse');
define('ENTRY_CUSTOMER_SUBURB', 'Banlieue');
define('ENTRY_CUSTOMER_PHONE', 'Téléphone');
define('ENTRY_CUSTOMER_CITY', 'Ville');
define('ENTRY_CUSTOMER_STATE', 'Département');
define('ENTRY_CUSTOMER_POSTCODE', 'Code postal');
define('ENTRY_CUSTOMER_COUNTRY', 'Pays');
define('ENTRY_CUSTOMER_EMAIL', 'E-Mail');
define('ENTRY_ADDRESS', 'Adresse');
define('ENTRY_CURRENCY_TYPE', 'Devise');
define('ENTRY_CURRENCY_VALUE', 'Valeur Devise');

define('ENTRY_SHIPPING_ADDRESS', 'Adresse de livraison:');
define('ENTRY_BILLING_ADDRESS', 'Adresse de facturation:');
define('ENTRY_PAYMENT_METHOD', 'Moyen de paiement:');
define('ENTRY_CREDIT_CARD_TYPE', 'Type de carte de crédit:');
define('ENTRY_CREDIT_CARD_OWNER', 'Proporiétaire de la carte:');
define('ENTRY_CREDIT_CARD_NUMBER', 'Numéro de la carte:');
define('ENTRY_CREDIT_CARD_EXPIRES', 'Expiration de la carte:');
define('ENTRY_SUB_TOTAL', 'Sous-Total:');
//do not put a colon (" : ") in the definition of ENTRY_TAX
//ie entry should be 'Tax' NOT 'Tax:'
define('ENTRY_TAX', 'Taxes');

define('ENTRY_TOTAL', 'Total:');
define('ENTRY_STATUS', 'Statut:');
define('ENTRY_NOTIFY_CUSTOMER', 'Notifier le client:');
define('ENTRY_NOTIFY_COMMENTS', 'Commentaires:');


define('EMAIL_TEXT_STATUS_UPDATE2', 'Si vous avez des questions, n\'hésitez pas à nous contacter.' . "\n\n" . 'Cordialement. Le Service Commercial ' . STORE_NAME . "\n");
define('TEXT_NO_ORDER_HISTORY', 'Pas d\'historique disponible');

define('EMAIL_SEPARATOR', '------------------------------------------------------');
define('EMAIL_TEXT_SUBJECT', 'Mise à jour de votre commande');
define('EMAIL_TEXT_ORDER_NUMBER', 'Commande n°:');
define('EMAIL_TEXT_INVOICE_URL', 'Facture détaillée:');
define('EMAIL_TEXT_DATE_ORDERED', 'Date de commande:');
define('EMAIL_TEXT_STATUS_UPDATE', 'Votre commande a été mise à jour au statut suivant.' . "\n\n" . 'Nouveau statut: %s' . "\n\n" . 'Répondez à cette email, dans le cas où vous désirez obtenir plus d\'informations.' . "\n");
define('EMAIL_TEXT_COMMENTS_UPDATE', 'Les commentaires pour votre commande sont' . "\n\n%s\n\n");
define('ERROR_ORDER_DOES_NOT_EXIST', 'Erreur: aucune commande existante');
define('SUCCESS_ORDER_UPDATED', 'Succès: la commande a bien été mise à jour.');

define('ADDPRODUCT_TEXT_CATEGORY_CONFIRM', 'OK');
define('ADDPRODUCT_TEXT_SELECT_PRODUCT', 'Choisissez un article');
define('ADDPRODUCT_TEXT_PRODUCT_CONFIRM', 'OK');
define('ADDPRODUCT_TEXT_SELECT_OPTIONS', 'Choisissez une option');
define('ADDPRODUCT_TEXT_OPTIONS_CONFIRM', 'OK');
define('ADDPRODUCT_TEXT_STEP', 'Etape n°');
define('ADDPRODUCT_TEXT_STEP1', ' « Choisir une catégorie. ');
define('ADDPRODUCT_TEXT_OPTIONS_NOTEXIST', 'Pas d\'options: sauté..');
define('ADDPRODUCT_TEXT_CONFIRM_QUANTITY', 'Qté.');
define('ADDPRODUCT_TEXT_CONFIRM_ADDNOW', 'Ajouter maintenant');
define('ADDPRODUCT_TEXT_STEP2', ' « Choisir un article. ');
define('ADDPRODUCT_TEXT_STEP3', ' « Choisir une option. ');

define('MENUE_TITLE_CUSTOMER', '1. Informations Clients');
define('MENUE_TITLE_PAYMENT', '2. Moyen de paiement');
define('MENUE_TITLE_ORDER', '3. Produits Commandés');
define('MENUE_TITLE_TOTAL', '4. Remise, Frais de Port et Total');
define('MENUE_TITLE_STATUS', '5. Status et Notification');
define('MENUE_TITLE_UPDATE', '6. Mise à jour');

//add-on for downloads
define('ENTRY_DOWNLOAD_COUNT', 'Télechargement #');
define('ENTRY_DOWNLOAD_FILENAME', 'Nom de Fichier');
define('ENTRY_DOWNLOAD_MAXDAYS', 'Jours d\'Expiration');
define('ENTRY_DOWNLOAD_MAXCOUNT', 'Téléchargements Restants');

define('TEXT_SHIPPING_SAME_AS_BILLING', 'Adresse de livraison identique à celle de facturation');
define('TEXT_BILLING_SAME_AS_CUSTOMER', 'Adress de facturation identique à celle du client');

// pull down default text
define('PLEASE_SELECT', 'Veuillez Selectionner');
define('TYPE_BELOW', 'Tapez Ci-Dessous');
?>

 

Hey drako, whats is the menu you are using at the top of your site ?

Link to comment
Share on other sites

Fixed! A new packege is on the web now. The problem was a MOD for Italian VAC i fogeto to erase. BTw now it's fixed.

 

Phocea u probably have "Admin Login" installed, but u forgot to give serachsuggest.php right to be used. Try that and let me know.

 

 

THANK YOU!!!! Seriously I really appreciate an author who responds back as quick as you. Result... very minimal hassle and downtime for us.

 

Ill send you an xmas card :D

Things still to do before going "live" in no real order...

Change "buy now buttons" css styles

Change "lets see what we have here" into something meaningfull

Main logo of the website

Sort out currency to make site UK only (at present)

Remove "xx requests since" stuff

Update mainpage :D

Move shopping cart status into header

Add in stock status to product listing page

Define styles for product listing standardisation

Change CSS background for Headings

Increase Category size headings

Used mods so far:- basic_design_pack1mk7 | Google XML sitemap w admin | Paypal IPN v 1.2 | Feedmachine | pricematch_1_3_1 | Dynamic Sitemap 1.6 | Whos online Enhancement | Easypopulate 2.72

 

Each one that I solve I;ll be putting a post on the forum in a "completed shop" thread that Im writing up

Link to comment
Share on other sites

I've loaded the latest order editing tool, however when I try to edit an order I get the following error

Parse error: parse error, unexpected $end in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\shop\admin\edit_orders.php on line 2307

 

Has anyone found the open bracket?

 

I've tried all the edit_orders.php files from all the contributions 2.8 and above

 

(I can get the non-AJAX version 2.7.4 working just fine)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...