Add php files
This commit is contained in:
361
modules/EcmSales/importFromPresta.php
Executable file
361
modules/EcmSales/importFromPresta.php
Executable file
@@ -0,0 +1,361 @@
|
||||
<?php
|
||||
ini_set('display_errors',1);
|
||||
if (! defined ( 'sugarEntry' ) || ! sugarEntry) die ( 'Not A Valid Entry Point' );
|
||||
|
||||
|
||||
|
||||
//importProduktow();
|
||||
//importKontrahentow();
|
||||
importZamowien();
|
||||
//ecmprices_ecmproducts
|
||||
|
||||
|
||||
function importVatow(){
|
||||
global $current_user;
|
||||
$db_presta = getConnectionPresta();
|
||||
$db_saas = getConnectionSaas();
|
||||
|
||||
foreach($db_saas->query('SELECT id FROM ecmvats') as $old_row) {
|
||||
$old_array[$old_row['id']] = true;
|
||||
}
|
||||
foreach($db_presta->query('
|
||||
SELECT
|
||||
ps_tax_rules_group.id_tax_rules_group,
|
||||
ps_tax_rule.id_tax,
|
||||
ps_tax_lang.name,
|
||||
ps_tax.rate,
|
||||
ps_tax_rules_group.date_add,
|
||||
ps_tax_rules_group.date_upd
|
||||
FROM
|
||||
ps_tax_rules_group,
|
||||
ps_tax_rule,
|
||||
ps_tax_lang,
|
||||
ps_tax
|
||||
WHERE
|
||||
ps_tax_rules_group.id_tax_rules_group = ps_tax_rule.id_tax_rules_group
|
||||
AND ps_tax_rule.id_tax = ps_tax_lang.id_tax
|
||||
AND ps_tax_rule.id_tax = ps_tax.id_tax
|
||||
GROUP BY ps_tax_rules_group.id_tax_rules_group') as $category_row) {
|
||||
$insert_array = array();
|
||||
$insert_array['id'] = $category_row['id_tax_rules_group'];
|
||||
$insert_array['date_entered'] = $category_row['date_add'];
|
||||
$insert_array['date_modified'] = $category_row['date_upd'];
|
||||
$insert_array['modified_user_id'] = $current_user->id;
|
||||
$insert_array['assigned_user_id'] = $current_user->id;
|
||||
$insert_array['created_by'] = $current_user->id;
|
||||
$insert_array['deleted'] = 0;
|
||||
$insert_array['name'] = $category_row['name'];
|
||||
$insert_array['value'] = $category_row['rate'];
|
||||
$insert_array['id'] = $category_row['id_tax_rules_group'];
|
||||
|
||||
if($old_array[$category_row['id_tax_rules_group']]){
|
||||
$db_saas->query("DELETE FROM ecmvats WHERE id='" . $category_row['id_category'] ."'");
|
||||
}
|
||||
$insert_keys = array_keys($insert_array);
|
||||
$insert_values = array_values($insert_array);
|
||||
$insert_query = "INSERT INTO ecmvats (" . implode(",",$insert_keys) .") VALUES ('" . implode("','",$insert_values) . "');";
|
||||
$db_saas->query($insert_query);
|
||||
}
|
||||
}
|
||||
|
||||
function importKategorii(){
|
||||
global $current_user;
|
||||
$db_presta = getConnectionPresta();
|
||||
$db_saas = getConnectionSaas();
|
||||
$old_array = array();
|
||||
|
||||
foreach($db_saas->query('SELECT id FROM ecmproductcategories') as $old_row) {
|
||||
$old_array[$old_row['id']] = true;
|
||||
}
|
||||
foreach($db_presta->query('SELECT * FROM ps_category') as $category_row) {
|
||||
$category_lang_result = $db_presta->query('SELECT * FROM ps_category_lang WHERE id_lang=2 AND id_category=' . $category_row['id_category']);
|
||||
$category_lang = $category_lang_result->fetch();
|
||||
|
||||
$insert_array = array();
|
||||
$insert_array['id'] = $category_row['id_category'];
|
||||
$insert_array['date_entered'] = $category_row['date_add'];
|
||||
$insert_array['date_modified'] = $category_row['date_upd'];
|
||||
$insert_array['modified_user_id'] = $current_user->id;
|
||||
$insert_array['assigned_user_id'] = $current_user->id;
|
||||
$insert_array['created_by'] = $current_user->id;
|
||||
$insert_array['deleted'] = 0;
|
||||
$insert_array['name'] = $category_lang['name'];
|
||||
$insert_array['to_module'] = 'EcmProducts';
|
||||
|
||||
if($old_array[$category_row['id_category']]){
|
||||
$db_saas->query("DELETE FROM ecmproductcategories WHERE id='" . $category_row['id_category'] ."'");
|
||||
}
|
||||
$insert_keys = array_keys($insert_array);
|
||||
$insert_values = array_values($insert_array);
|
||||
$insert_query = "INSERT INTO ecmproductcategories (" . implode(",",$insert_keys) .") VALUES ('" . implode("','",$insert_values) . "');";
|
||||
$db_saas->query($insert_query);
|
||||
}
|
||||
}
|
||||
|
||||
function importProduktow(){
|
||||
importVatow();
|
||||
importKategorii();
|
||||
global $current_user;
|
||||
$db_presta = getConnectionPresta();
|
||||
$db_saas = getConnectionSaas();
|
||||
|
||||
|
||||
$res = $db_saas->query("SELECT id FROM ecmprices WHERE name='Presta' LIMIT 1");
|
||||
|
||||
var_dump($res->num_rows);
|
||||
if($res->num_rows == 0){
|
||||
$db_saas->query("INSERT INTO ecmprices(id,name,deleted,active) VALUES ('" . uniqid ("ecmprice_",true) . "','Presta',0,1)");
|
||||
}
|
||||
foreach($db_saas->query("SELECT id FROM ecmprices WHERE name='Presta' LIMIT 1") as $tmp) {
|
||||
$prceid = $tmp['id'];
|
||||
}
|
||||
foreach($db_saas->query("SELECT id,value,name FROM ecmvats") as $tmp) {
|
||||
$vats[$tmp['id']] = $tmp;
|
||||
}
|
||||
|
||||
foreach($db_presta->query('SELECT * FROM ps_product') as $product_row) {
|
||||
//usuwanie starego rekordu produktu
|
||||
$db_saas->query("DELETE FROM ecmproducts WHERE id='" . $product_row['id_product'] ."'");
|
||||
//usuwanie starej ceny
|
||||
$del_query = "DELETE FROM ecmprices_ecmproducts WHERE ecmprice_id='" . $prceid ."' AND ecmproduct_id='" . $product_row['id_product'] ."'";
|
||||
$db_saas->query($del_query);
|
||||
|
||||
//pobieranie polskiej nazwy produktu
|
||||
$product_lang_result = $db_presta->query('SELECT * FROM ps_product_lang WHERE id_product=' . $product_row['id_product']);
|
||||
$product_lang = $product_lang_result->fetch();
|
||||
|
||||
$insert_array = array();
|
||||
$insert_array['id'] = $product_row['id_product'];
|
||||
$insert_array['date_entered'] = $product_row['date_add'];
|
||||
$insert_array['date_modified'] = $product_row['date_upd'];
|
||||
$insert_array['modified_user_id'] = $current_user->id;
|
||||
$insert_array['assigned_user_id'] = $current_user->id;
|
||||
$insert_array['created_by'] = $current_user->id;
|
||||
$insert_array['deleted'] = 0;
|
||||
$insert_array['name'] = $product_lang['name'];
|
||||
$insert_array['code'] = $product_row['reference'];
|
||||
$insert_array['product_active'] = 1;
|
||||
$insert_array['unit_id'] = 1;
|
||||
$insert_array['status'] = 1;
|
||||
$insert_array['flag'] = 1;
|
||||
$insert_array['product_active'] = $product_row['active'];
|
||||
|
||||
$insert_array['vat_id'] = $product_row['id_tax_rules_group'];
|
||||
$insert_array['vat_value'] = $vats[$product_row['id_tax_rules_group']]['value'];
|
||||
$insert_array['vat_name'] = $vats[$product_row['id_tax_rules_group']]['name'];
|
||||
|
||||
$insert_array['product_category_id'] = $product_row['id_category_default'];
|
||||
|
||||
$price_query = "INSERT INTO ecmprices_ecmproducts VALUES ('" . uniqid ("presta_price",true) . "','" . $prceid . "','". $product_row['id_product'] ."','" . $product_row['price'] . "')";
|
||||
$db_saas->query($price_query);
|
||||
$insert_keys = array_keys($insert_array);
|
||||
$insert_values = array_values($insert_array);
|
||||
|
||||
$insert_query = "INSERT INTO ecmproducts (" . implode(",",$insert_keys) .") VALUES ('" . implode("','",$insert_values) . "');";
|
||||
$db_saas->query($insert_query);
|
||||
}
|
||||
}
|
||||
|
||||
function importKontrahentow(){
|
||||
global $current_user;
|
||||
$db_presta = getConnectionPresta();
|
||||
$db_saas = getConnectionSaas();
|
||||
|
||||
foreach($db_presta->query('SELECT * FROM ps_customer') as $customer_row) {
|
||||
$db_saas->query("DELETE FROM accounts WHERE id='" . $customer_row['id_customer'] ."'");
|
||||
$adress_result = $db_presta->query('SELECT * FROM ps_address WHERE id_customer=' . $customer_row['id_customer']);
|
||||
$adress = $adress_result->fetch();
|
||||
|
||||
|
||||
$insert_array = array();
|
||||
$insert_array['id'] = $customer_row['id_customer'];
|
||||
$insert_array['date_entered'] = $customer_row['date_add'];
|
||||
$insert_array['date_modified'] = $customer_row['date_upd'];
|
||||
$insert_array['modified_user_id'] = $current_user->id;
|
||||
$insert_array['assigned_user_id'] = $current_user->id;
|
||||
$insert_array['created_by'] = $current_user->id;
|
||||
$insert_array['deleted'] = 0;
|
||||
$insert_array['account_type'] = 'rec';
|
||||
$insert_array['name'] = trim($customer_row['firstname'] . ' ' . $customer_row['lastname']);
|
||||
$insert_array['billing_address_street'] = trim($adress['address1'] . ' ' .$adress['address2']);
|
||||
$insert_array['billing_address_city'] = trim($adress['city']);
|
||||
$insert_array['billing_address_postalcode'] = trim($adress['postcode']);
|
||||
//$insert_array['billing_address_country'] = 'Polska';
|
||||
$insert_array['register_address_street'] = trim($adress['address1'] . ' ' .$adress['address2']);
|
||||
$insert_array['register_address_city'] = trim($adress['city']);
|
||||
$insert_array['register_address_postalcode'] = trim($adress['postcode']);
|
||||
//$insert_array['register_address_country'] = 'Polska';
|
||||
//$insert_array['phone_office'] = round($order_row['total_products'],2);
|
||||
//$insert_array['phone_alternate'] = round($order_row['total_products_wt'],2);
|
||||
$insert_array['is_vat_free'] = 0;
|
||||
$insert_array['currency_id'] = 'PLN';
|
||||
$insert_array['invoice_type'] = 'K';
|
||||
$insert_array['index_dbf'] = $customer_row['email'];
|
||||
|
||||
$insert_keys = array_keys($insert_array);
|
||||
$insert_values = array_values($insert_array);
|
||||
|
||||
$insert_query = "INSERT INTO accounts (" . implode(",",$insert_keys) .") VALUES ('" . implode("','",$insert_values) . "');";
|
||||
$db_saas->query($insert_query);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function importujStatusyZamowien(){
|
||||
$db_presta = getConnectionPresta();
|
||||
$db_saas = getConnectionSaas();
|
||||
foreach($db_presta->query('SELECT * FROM ps_order_state_lang where id_lang=2') as $status_row) {
|
||||
$db_saas->query("DELETE FROM dom_lists WHERE dom_name = 'ecmsales_status_dom' AND key='" . $status_row['id_order_state'] ."' AND lang='pl_pl'");
|
||||
$db_saas->query("INSERT INTO dom_lists VALUES ('id_order_state_" . $status_row['id_order_state']. "', 'pl_pl','ecmsales_status_dom', '" . $status_row['id_order_state'] ."', '" .$status_row['name'] . "')");
|
||||
}
|
||||
}
|
||||
|
||||
function importujMetodyPlatnosci(){
|
||||
$db_presta = getConnectionPresta();
|
||||
$db_saas = getConnectionSaas();
|
||||
foreach($db_presta->query('SELECT payment,module FROM ps_orders GROUP BY module') as $payment) {
|
||||
$db_saas->query("DELETE FROM dom_lists WHERE dom_name = 'payment_method_dom' AND key='" . $payment['module'] ."' AND lang='pl_pl'");
|
||||
|
||||
$db_saas->query("INSERT INTO dom_lists VALUES ('payment_method_dom_" . $payment['module']. "', 'pl_pl','payment_method_dom', '" . $payment['module'] ."', '" .$payment['payment'] . "')");
|
||||
}
|
||||
}
|
||||
|
||||
function importZamowien(){
|
||||
global $current_user;
|
||||
$db_presta = getConnectionPresta();
|
||||
$db_saas = getConnectionSaas();
|
||||
$EcmSale = new EcmSale();
|
||||
$EcmSysInfo = new EcmSysInfo();
|
||||
$number_template = $EcmSysInfo->getFormatNumberForModule('EcmSales');
|
||||
$stock_id = '9fc80fd4-fc09-f869-38f6-5641b962268d';
|
||||
foreach($db_saas->query("SELECT id,value,name FROM ecmvats") as $tmp) {
|
||||
$vats[$tmp['id']] = $tmp;
|
||||
}
|
||||
|
||||
importujStatusyZamowien();
|
||||
importujMetodyPlatnosci();
|
||||
$db_saas->query("DELETE FROM ecmsales WHERE id != '9909730a-67ae-33c5-e22a-5658051e3fc0'");
|
||||
$db_saas->query("DELETE FROM ecmsaleitems WHERE id != '2a8f7cd5-bfe9-8be9-b306-566947b9d743'");
|
||||
|
||||
|
||||
|
||||
foreach($db_presta->query('SELECT * FROM ps_orders') as $order_row) {
|
||||
$customer = null;
|
||||
$adress = null;
|
||||
$customer_result = $db_presta->query('SELECT * FROM ps_customer WHERE id_customer=' . $order_row['id_customer']);
|
||||
$customer = $customer_result->fetch();
|
||||
$adress_invoice_result = $db_presta->query('SELECT * FROM ps_address WHERE id_address=' . $order_row['id_address_invoice']);
|
||||
$adress_invoice = $adress_invoice_result->fetch();
|
||||
$adress_delivery_result = $db_presta->query('SELECT * FROM ps_address WHERE id_address=' . $order_row['id_address_delivery']);
|
||||
$adress_delivery = $adress_delivery_result->fetch();
|
||||
|
||||
$document_no = '';
|
||||
if ($number_template != "") {
|
||||
require_once('include/ECM/EcmDocumentNumberGenerator/EcmDocumentNumberGenerator.inc.php');
|
||||
$dng = new EcmDocumentNumberGenerator('EcmSales');
|
||||
$document_no = $dng->parseNumber($number_template, $stock_id);
|
||||
}
|
||||
|
||||
$insert_array = array();
|
||||
$insert_array['id'] = $order_row['id_order'];
|
||||
$insert_array['date_entered'] = $order_row['date_add'];
|
||||
$insert_array['date_modified'] = $order_row['date_upd'];
|
||||
$insert_array['modified_user_id'] = $current_user->id;
|
||||
$insert_array['assigned_user_id'] = $current_user->id;
|
||||
$insert_array['created_by'] = $current_user->id;
|
||||
$insert_array['parent_document_no'] = $order_row['reference'];
|
||||
$insert_array['deleted'] = 0;
|
||||
$insert_array['document_no'] = $document_no;
|
||||
$insert_array['parent_id'] = $order_row['id_customer'];
|
||||
$insert_array['parent_name'] = trim($customer['firstname'] . ' ' . $customer['lastname']);
|
||||
$insert_array['parent_index_dbf'] = $customer['email'];
|
||||
$insert_array['type'] = 'sales_order';
|
||||
$insert_array['status'] = $order_row['current_state'];
|
||||
$insert_array['register_date'] = $order_row['date_add'];
|
||||
$insert_array['parent_address_street'] = trim($adress_invoice['address1'] . ' ' .$adress_invoice['address2']);
|
||||
$insert_array['parent_address_city'] = trim($adress_invoice['city']);
|
||||
$insert_array['parent_address_postalcode'] = trim($adress_invoice['postcode']);
|
||||
$insert_array['parent_address_country'] = 'Polska';
|
||||
$insert_array['total_netto'] = round($order_row['total_products'],2);
|
||||
$insert_array['total_brutto'] = round($order_row['total_products_wt'],2);
|
||||
$insert_array['discount'] = round($order_row['total_discounts'],2);
|
||||
$insert_array['vats_summary'] = '';
|
||||
$insert_array['no_tax'] = 0;
|
||||
$insert_array['ecmpaymentcondition_text'] = $carrier['delay'];
|
||||
$insert_array['currency_id'] = 'PLN';
|
||||
$insert_array['delivery_date'] = substr($order_row['delivery_date'],0,10);
|
||||
$insert_array['shipping_address_street'] = trim($adress_delivery['address1'] . ' ' . $adress_delivery['address2']);
|
||||
$insert_array['shipping_address_city'] = trim($adress_delivery['city']);
|
||||
$insert_array['shipping_address_postalcode'] = trim($adress_delivery['postcode']);
|
||||
$insert_array['shipping_address_country'] = 'Polska';
|
||||
$insert_array['payment_method'] = $order_row['module'];
|
||||
|
||||
$insert_keys = array_keys($insert_array);
|
||||
$insert_values = array_values($insert_array);
|
||||
|
||||
$insert_query = "INSERT INTO ecmsales (" . implode(",",$insert_keys) .") VALUES ('" . implode("','",$insert_values) . "');";
|
||||
$db_saas->query($insert_query);
|
||||
foreach($db_presta->query('SELECT * FROM ps_order_detail WHERE id_order='. $order_row['id_order']) as $product_row) {
|
||||
$insert_product_array = array();
|
||||
$insert_product_array['id'] = $product_row['id_order_detail'];
|
||||
$insert_product_array['date_entered'] = $insert_array['date_entered'];
|
||||
$insert_product_array['date_modified'] = $insert_array['date_modified'];
|
||||
$insert_product_array['modified_user_id'] = $current_user->id;
|
||||
$insert_product_array['assigned_user_id'] = $current_user->id;
|
||||
$insert_product_array['created_by'] = $current_user->id;
|
||||
$insert_product_array['deleted'] = 0;
|
||||
$insert_product_array['ecmsale_id'] = $product_row['id_order'];
|
||||
$insert_product_array['ecmproduct_id'] = $product_row['product_id'];
|
||||
|
||||
$insert_product_array['code'] = $product_row['product_reference'];
|
||||
$insert_product_array['name'] = $product_row['product_name'];
|
||||
$insert_product_array['quantity'] = $product_row['product_quantity'];
|
||||
$insert_product_array['ecmvat_id'] = $product_row['id_tax_rules_group'];
|
||||
$insert_product_array['ecmvat_value'] = $vats[$product_row['id_tax_rules_group']]['value'];
|
||||
$insert_product_array['ecmvat_name'] = $vats[$product_row['id_tax_rules_group']]['name'];
|
||||
var_dump($product_row['id_tax_rules_group']); echo '<br>';
|
||||
var_dump($vats[$product_row['id_tax_rules_group']]); echo '<br>';
|
||||
//var_dump($product_row['id_tax_rules_group']); echo '<br>';
|
||||
$insert_product_array['price_start'] = $product_row['original_product_price'];
|
||||
$insert_product_array['price_netto'] = $product_row['unit_price_tax_excl'];
|
||||
$insert_product_array['price_brutto'] = $product_row['unit_price_tax_incl'];
|
||||
$insert_product_array['discount'] = $product_row['reduction_percent'];
|
||||
$insert_product_array['total_netto'] = $product_row['total_price_tax_excl'];
|
||||
$insert_product_array['total_brutto'] = $product_row['total_price_tax_incl'];
|
||||
|
||||
|
||||
$insert_product_keys = array_keys($insert_product_array);
|
||||
$insert_product_values = array_values($insert_product_array);
|
||||
$insert_product_query = "INSERT INTO ecmsaleitems (" . implode(",",$insert_product_keys) .") VALUES ('" . implode("','",$insert_product_values) . "');";
|
||||
$db_saas->query($insert_product_query);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getConnectionPresta($host='localhost', $db_name='4ju', $user='root', $password='spire1234'){
|
||||
static $presta;
|
||||
if($presta == null){
|
||||
try {
|
||||
$presta = new PDO('mysql:host=' . $host.';dbname=' . $db_name .';charset=utf8', $user, $password);
|
||||
} catch (PDOException $e) {
|
||||
print "Error!: " . $e->getMessage() . "<br/>";
|
||||
$presta = null;
|
||||
die();
|
||||
}
|
||||
}
|
||||
return $presta;
|
||||
}
|
||||
|
||||
function getConnectionSaas($host='localhost', $db_name='preDb_8a7e080a76ef97c3e304cf463118ef9b', $user='root', $password='spire1234'){
|
||||
static $saas;
|
||||
if($saas == null){
|
||||
try {
|
||||
$saas = new PDO('mysql:host=' . $host.';dbname=' . $db_name .';charset=utf8', $user, $password);
|
||||
} catch (PDOException $e) {
|
||||
print "Error!: " . $e->getMessage() . "<br/>";
|
||||
$saas = null;
|
||||
die();
|
||||
}
|
||||
}
|
||||
return $saas;
|
||||
}
|
||||
Reference in New Issue
Block a user