2016-09-06 15:32:52 +02:00
< ? php
2016-11-02 11:26:25 +01:00
$_SERVER [ 'REMOTE_ADDR' ] = '127.0.0.1' ;
$_SERVER [ 'HTTP_HOST' ] = 'www.bebeboutik.com' ;
2016-09-28 10:41:39 +02:00
include ( '../../../config/settings.inc.php' );
include ( '../../../config/config.inc.php' );
include ( dirname ( __FILE__ ) . '/../philea_magistor.php' );
global $regex_file_in ;
$regex_file_in = '@^CRE(.*)\.(BAL|DAT)@' ;
@ ini_set ( 'display_errors' , 'on' );
$magistorModule = new philea_magistor ();
//$id_shipping = 4; // PHILEA
$CRE = array (
'OP_CODE' => array ( 1 , 10 ),
'CODE_SOC' => array ( 11 , 20 ),
'NO_CLIENT' => array ( 31 , 8 ),
'N_CDE' => array ( 39 , 50 ),
'NO_COLIS' => array ( 89 , 50 ),
'NO_TRACKING' => array ( 139 , 50 ),
'NO_EXPEDITION' => array ( 189 , 50 ),
'DATE_EXPED' => array ( 239 , 8 ),
'TRANSPORTEUR' => array ( 247 , 50 ),
2016-09-28 18:11:07 +02:00
'CODE_ART' => array ( 297 , 50 ),
2016-09-28 10:41:39 +02:00
'QTE' => array ( 347 , 10 ),
);
$tab_conversion_carrier = philea_magistor :: getTabState ();
$socol_to_magistor = array (
'DOM' => 'SOCOLMDSS' ,
'DOS' => 'SOCOLMDS' ,
'RDV' => 'SOCOLMRDV' ,
'CIT' => 'SOCOLCITY' ,
'BPR' => 'SOCOLMBP' ,
'CDI' => 'SOCOLMBP' ,
'A2P' => 'SOCOLMC' ,
'ACP' => 'SOCOLMBP' ,
);
$mr_to_magistor = array (
'24R' => 'MRMDSS' , // Point relais
'DRI' => 'MRMDS' , // Colis drive
'LD1' => 'MRMRDV' , // Domicile RDC (1 pers)
'LDS' => 'MRCITY' , // Domicile spé (2 pers)
'HOM' => 'MRMBP' , // Domicile spé
);
$format = $CRE ;
if ( $magistorModule -> active ) {
2016-11-02 10:31:03 +01:00
require_once ( 'connection_ftp.php' );
2016-09-28 10:41:39 +02:00
@ set_time_limit ( 0 );
// Checking for ".bal" files with a "CRE" prefix that has an equivalent ".dat" file and process them...
$inFolder = dirname ( __FILE__ ) . '/IN/' ;
$iterator = new DirectoryIterator ( $inFolder );
$id_order_state = Configuration :: get ( 'PHILEA_MAGISTOR_STATUS_CRE' );
foreach ( $iterator as $fileinfo ) {
if ( $fileinfo -> isFile ()) {
if ( preg_match ( '@^CRE(.*)\.BAL@' , $fileinfo -> getFilename ())) {
$datFile = $fileinfo -> getPath () . '/' . preg_replace ( '@BAL$@' , 'DAT' , $fileinfo -> getFilename () );
if ( file_exists ( $datFile )) {
$content = file_get_contents ( $datFile );
$lines = preg_split ( '@\n@' , $content );
2016-09-28 18:11:07 +02:00
$id_order_details = array ();
$shipping_numbers = array ();
$parcel_carrier = array ();
2016-09-28 10:41:39 +02:00
if ( ! empty ( $lines )) {
2016-12-05 10:13:27 +01:00
$details = array ();
2016-12-06 15:45:47 +01:00
$order_details = array ();
2016-09-28 18:11:07 +02:00
2016-12-07 10:36:03 +01:00
// GET DATA
2016-09-28 10:41:39 +02:00
foreach ( $lines as $line ) {
2016-09-28 18:11:07 +02:00
2016-09-28 10:41:39 +02:00
$data = array ();
foreach ( $format as $field => $value ) {
$data [] = substr ( $line , ( $value [ 0 ] - 1 ), $value [ 1 ]);
}
if ( ! isset ( $data [ 2 ]) || ( isset ( $data [ 2 ]) && ! $data [ 2 ])){
continue ;
}
$id_sale = 0 ;
$id_order = ( string ) $data [ 3 ];
if ( substr ( $id_order , 0 , 2 ) == 'OP' ) {
$id_order = explode ( '-' , $id_order );
if ( count ( $id_order ) < 2 ) {
continue ;
}
$id_sale = ( int ) str_replace ( 'OP' , '' , $id_order [ 0 ]);
$id_order = ( int ) $id_order [ 1 ];
} else {
$id_order = ( int ) $id_order ;
}
2016-12-07 14:29:33 +01:00
if ( ! isset ( $details [( int ) $id_order ])){
$details [( int ) $id_order ] = array ();
}
2016-09-28 18:11:07 +02:00
$code_art = explode ( " _ " , trim ( $data [ 9 ]));
2016-09-28 10:41:39 +02:00
if ( count ( $code_art ) > 1 ) {
list ( $id_product , $id_attribute ) = $code_art ;
} else {
$id_product = $code_art [ 0 ];
$id_attribute = 0 ;
}
2016-12-06 15:45:47 +01:00
2016-12-07 14:29:33 +01:00
$order = new Order (( int ) $id_order );
// GET CARRIER ID
2016-12-06 15:45:47 +01:00
$carrier_found = false ;
$id_active_carrier = false ;
$id_inactive_carrier = false ;
if ( isset ( $data [ 8 ]) && $data [ 8 ]){
$carrier_name = trim ( $data [ 8 ]);
2016-12-08 13:25:39 +01:00
if ( $carrier_name == 'COLINT' ) {
$carrier_name = 'SOCOLMDSS' ;
}
2016-12-06 15:45:47 +01:00
$carriers = philea_magistor :: getCarriersIdByRef ( $carrier_name );
if ( $carriers ){
foreach ( $carriers as $carrier ) {
if ( $carrier [ 'name' ] == 'GLS' && $carrier_name == 'DPD' ) {
continue ;
2016-09-28 10:41:39 +02:00
}
2016-12-06 15:45:47 +01:00
if ( $carrier [ 'active' ] == 1 && $carrier [ 'deleted' ] == 0 ) {
$id_active_carrier = ( int ) $carrier [ 'id_carrier' ];
}
if ( $carrier [ 'active' ] == 0 && $carrier [ 'deleted' ] == 0 ) {
$id_inactive_carrier = ( int ) $carrier [ 'id_carrier' ];
}
if (( int ) $order -> id_carrier == ( int ) $carrier [ 'id_carrier' ]){
$carrier_found = ( int ) $order -> id_carrier ;
}
}
}
}
if ( $carrier_found )
$id_carrier = ( int ) $carrier_found ;
elseif ( $id_active_carrier )
$id_carrier = ( int ) $id_active_carrier ;
elseif ( $id_inactive_carrier )
$id_carrier = ( int ) $id_inactive_carrier ;
else
$id_carrier = ( int ) $order -> id_carrier ;
if ( isset ( $id_carrier ) && $id_carrier ) {
$parcel_carrier [( int ) $id_order . '|' . trim ( $data [ 5 ])] = $id_carrier ;
}
2016-09-28 10:41:39 +02:00
2016-12-06 15:45:47 +01:00
$shipping_numbers [] = '"' . pSQL ( trim ( $data [ 5 ])) . '"' ;
2016-12-06 10:07:54 +01:00
if ( ! isset ( $details [( int ) $id_order ][ $id_product . '_' . $id_attribute ])) {
$details [( int ) $id_order ][ $id_product . '_' . $id_attribute ] = array (
'shipping_numbers' => array (),
'quantity' => 0
);
2016-12-05 10:13:27 +01:00
}
2016-12-06 10:07:54 +01:00
$details [( int ) $id_order ][ $id_product . '_' . $id_attribute ][ 'quantity' ] += ( int ) trim ( $data [ 10 ]);
$details [( int ) $id_order ][ $id_product . '_' . $id_attribute ][ 'shipping_numbers' ][] = array (
'number' => trim ( $data [ 5 ]),
2016-12-06 15:45:47 +01:00
'date' => pSQL ( substr ( $data [ 7 ], 0 , 4 ) . '-' . substr ( $data [ 7 ], 4 , 2 ) . '-' . substr ( $data [ 7 ], 6 , 2 ) . ' 18:00:00' ),
'quantity' => ( int ) trim ( $data [ 10 ])
2016-12-06 10:07:54 +01:00
);
2016-12-05 10:13:27 +01:00
2016-12-07 14:29:33 +01:00
if ( ! isset ( $order_details [( int ) $id_order ])){
$order_details [( int ) $id_order ] = array ();
foreach ( Db :: getInstance () -> ExecuteS ( '
SELECT DISTINCT `id_order_detail` , `product_id` , `product_attribute_id` , `product_quantity` - GREATEST ( `product_quantity_return` , `product_quantity_refunded` ) AS `quantity`
FROM `'._DB_PREFIX_.'order_detail`
WHERE `id_order` = '.(int) $id_order.'
' ) as $key => $row ) {
$sent = ( int ) Db :: getInstance () -> getValue ( '
SELECT SUM ( `quantity` )
FROM `'._DB_PREFIX_.'philea_parcel`
WHERE `id_order_detail` = '.(int) $row[' id_order_detail '].'
' );
$id_order_details [] = ( int ) $row [ 'id_order_detail' ];
if ( Pack :: isPack (( int ) $row [ 'product_id' ])) {
$items = Pack :: getSimplePack ( $row [ 'product_id' ]);
foreach ( $items as $item ) {
if ( ! isset ( $order_details [( int ) $id_order ][ $item [ 'id_product_item' ] . '_0' ])) {
$order_details [( int ) $id_order ][ $item [ 'id_product_item' ] . '_0' ] = array (
'id_order_details' => array (),
'quantity_to_sent' => 0
);
}
$order_details [ $id_order ][ $item [ 'id_product_item' ] . '_0' ][ 'quantity_to_sent' ] += (( $row [ 'quantity' ] - $sent ) * $item [ 'quantity' ]);
$order_details [ $id_order ][ $item [ 'id_product_item' ] . '_0' ][ 'id_order_details' ][ $row [ 'id_order_detail' ]] = array (
'detail_quantity' => ( $row [ 'quantity' ] - $sent ),
'id_order_detail' => $row [ 'id_order_detail' ]
);
}
} else {
if ( ! isset ( $order_details [( int ) $id_order ][ $row [ 'product_id' ] . '_' . $row [ 'product_attribute_id' ]])) {
$order_details [( int ) $id_order ][ $row [ 'product_id' ] . '_' . $row [ 'product_attribute_id' ]] = array (
2016-12-06 10:07:54 +01:00
'id_order_details' => array (),
'quantity_to_sent' => 0
2016-09-28 10:41:39 +02:00
);
}
2016-12-07 14:29:33 +01:00
$order_details [( int ) $id_order ][ $row [ 'product_id' ] . '_' . $row [ 'product_attribute_id' ]][ 'quantity_to_sent' ] += ( $row [ 'quantity' ] - $sent );
$order_details [( int ) $id_order ][ $row [ 'product_id' ] . '_' . $row [ 'product_attribute_id' ]][ 'id_order_details' ][ $row [ 'id_order_detail' ]] = array (
2016-12-06 15:45:47 +01:00
'detail_quantity' => ( $row [ 'quantity' ] - $sent ),
'id_order_detail' => $row [ 'id_order_detail' ]
2016-09-28 10:41:39 +02:00
);
}
}
}
2016-12-06 10:07:54 +01:00
} // end foreach lines
2016-12-06 15:45:47 +01:00
foreach ( $order_details as $order => $order_detail ){
foreach ( $order_detail as $key => $product ) {
2016-12-07 14:29:33 +01:00
if ( isset ( $details [( int ) $order ][ $key ])) {
if ( $details [( int ) $order ][ $key ][ 'quantity' ] <= $product [ 'quantity_to_sent' ]) {
if ( count ( $details [( int ) $order ][ $key ][ 'shipping_numbers' ]) > 1 ) {
foreach ( $details [( int ) $order ][ $key ][ 'shipping_numbers' ] as $shipping_number ) {
foreach ( $product [ 'id_order_details' ] as $id_order_detail => $row ) {
Db :: getInstance () -> ExecuteS ( '
INSERT INTO `'._DB_PREFIX_.'philea_parcel`
VALUES (
'.(int) $id_order_detail.' ,
'.(int) $row[' detail_quantity '].' ,
" '.pSQL( $shipping_number['number'] ).' " ,
" '. $shipping_number['date'] .' "
)
' );
}
}
} else {
2016-12-06 15:45:47 +01:00
foreach ( $product [ 'id_order_details' ] as $id_order_detail => $row ) {
Db :: getInstance () -> ExecuteS ( '
INSERT INTO `'._DB_PREFIX_.'philea_parcel`
VALUES (
'.(int) $id_order_detail.' ,
'.(int) $row[' detail_quantity '].' ,
2016-12-07 14:29:33 +01:00
" '.pSQL( $details[(int)$order] [ $key ]['shipping_numbers'][0]['number']).' " ,
" '. $details[(int)$order] [ $key ]['shipping_numbers'][0]['date'].' "
2016-12-06 15:45:47 +01:00
)
' );
}
}
2016-12-07 14:29:33 +01:00
} else {
$message = " Commande : " . $order . " \r \n Produit : " . $key . " \r \n Quantity to sent : " . $product [ 'quantity_to_sent' ] . " \r \n Quantity : " . $details [( int ) $order ][ $key ][ 'quantity' ];
mail ( 'marion@antadis.com' , '[BBB] Erreurs quantity expe Philea' , $message );
2016-12-06 15:45:47 +01:00
}
2016-12-07 14:29:33 +01:00
} else {
$message = " Commande : " . $order . " \r \n Produit : " . $key . " \r \n Produit non présent dans le fichier expe philea " ;
mail ( 'marion@antadis.com' , '[BBB] Erreurs produit expe Philea' , $message );
2016-09-28 10:41:39 +02:00
}
}
2016-12-06 15:45:47 +01:00
}
2016-12-07 14:29:33 +01:00
unset ( $details );
unset ( $order_details );
2016-12-06 10:07:54 +01:00
} // end if lines
2016-12-06 15:45:47 +01:00
$id_order_details = array_unique ( $id_order_details );
$shipping_numbers = array_unique ( $shipping_numbers );
if ( count ( $id_order_details ) > 0 ) {
$id_orders = array ();
$orders_infos = array ();
foreach ( Db :: getInstance () -> ExecuteS ( '
SELECT d . `id_order` , p . `shipping_number` , p . `date_add`
FROM `'._DB_PREFIX_.'philea_parcel` p
LEFT JOIN `'._DB_PREFIX_.'order_detail` d ON ( p . `id_order_detail` = d . `id_order_detail` )
WHERE d . `id_order_detail` IN ( '.implode(' , ', $id_order_details).' )
AND p . `shipping_number` IN ( '.implode(' , ', $shipping_numbers).' )
GROUP BY d . `id_order` , p . `shipping_number`
' ) as $row ) {
Db :: getInstance () -> ExecuteS ( '
INSERT INTO `'._DB_PREFIX_.'shipping_history`
VALUES (
'.(int) $row[' id_order '].' ,
" '.pSQL( $row['shipping_number'] ).' " ,
" '.pSQL( $row['date_add'] ).' " ,
'.(int) $parcel_carrier[(int) $row[' id_order '].' | '.$row[' shipping_number ']].' ,
0
)
2016-09-28 10:41:39 +02:00
' );
2016-12-06 15:45:47 +01:00
$id_orders [] = ( int ) $row [ 'id_order' ];
if ( ! isset ( $orders_infos [( int ) $row [ 'id_order' ]])) {
$orders_infos [( int ) $row [ 'id_order' ]] = array ();
2016-09-28 10:41:39 +02:00
}
2016-12-06 15:45:47 +01:00
$orders_infos [( int ) $row [ 'id_order' ]][] = array ( $row [ 'shipping_number' ], $row [ 'date_add' ], ( int ) $parcel_carrier [( int ) $row [ 'id_order' ] . '|' . $row [ 'shipping_number' ]]);
}
2016-09-28 10:41:39 +02:00
2016-12-07 10:36:03 +01:00
$id_orders = array_unique ( $id_orders );
2016-12-06 15:45:47 +01:00
2016-12-07 10:36:03 +01:00
$products = Db :: getInstance () -> ExecuteS ( '
SELECT d . `id_order_detail` , d . `id_order` , c . `id_sale` , d . `product_quantity` - GREATEST ( d . `product_quantity_refunded` , d . `product_quantity_return` ) AS `quantity`
FROM ps_order_detail d
LEFT JOIN `'._DB_PREFIX_.'product_ps_cache` c ON ( d . `product_id` = c . `id_product` )
WHERE d . `id_order` IN ( '.implode(' , ', $id_orders).' )
' );
2016-12-06 15:45:47 +01:00
2016-12-07 10:36:03 +01:00
$sent_sales = array ();
foreach ( Db :: getInstance () -> ExecuteS ( '
SELECT `id_order` , `id_sale`
FROM `'._DB_PREFIX_.'shipping_history`
WHERE `id_order` IN ( '.implode(' , ', $id_orders).' )
AND `id_sale` != 0
GROUP BY `id_order` , `id_sale`
' ) as $row ) {
if ( ! isset ( $sent_sales [( int ) $row [ 'id_order' ]])) {
$sent_sales [( int ) $row [ 'id_order' ]] = array ();
2016-09-28 10:41:39 +02:00
}
2016-12-07 10:36:03 +01:00
$sent_sales [( int ) $row [ 'id_order' ]][] = ( int ) $row [ 'id_sale' ];
}
2016-09-28 10:41:39 +02:00
2016-12-07 10:36:03 +01:00
$to_send = array ();
foreach ( $products as $product ) {
if (( int ) $product [ 'quantity' ] > 0
&& ( ! isset ( $sent_sales [( int ) $product [ 'id_order' ]])
|| ! in_array (( int ) $product [ 'id_sale' ], $sent_sales [( int ) $product [ 'id_order' ]]))) {
$to_send [] = $product ;
2016-09-28 10:41:39 +02:00
}
2016-12-07 10:36:03 +01:00
}
2016-09-28 10:41:39 +02:00
2016-12-07 10:36:03 +01:00
unset ( $products );
$sent_products = array ();
foreach ( Db :: getInstance () -> ExecuteS ( '
SELECT l . `id_order_detail` , SUM ( l . `quantity` ) AS `quantity`
FROM `'._DB_PREFIX_.'lapostews` l
LEFT JOIN `'._DB_PREFIX_.'order_detail` d ON ( l . `id_order_detail` = d . `id_order_detail` )
WHERE d . `id_order` IN ( '.implode(' , ', $id_orders).' )
GROUP BY l . `id_order_detail`
' ) as $row ) {
$sent_products [( int ) $row [ 'id_order_detail' ]] = ( int ) $row [ 'quantity' ];
}
foreach ( Db :: getInstance () -> ExecuteS ( '
SELECT l . `id_order_detail` , SUM ( l . `quantity` ) AS `quantity`
FROM `'._DB_PREFIX_.'philea_parcel` l
LEFT JOIN `'._DB_PREFIX_.'order_detail` d ON ( l . `id_order_detail` = d . `id_order_detail` )
WHERE d . `id_order` IN ( '.implode(' , ', $id_orders).' )
GROUP BY l . `id_order_detail`
' ) as $row ) {
$sent_products [( int ) $row [ 'id_order_detail' ]] = ( int ) $row [ 'quantity' ];
}
2016-09-28 10:41:39 +02:00
2016-12-07 10:36:03 +01:00
$orders_to_send = array ();
$orders_list = array ();
2016-09-28 10:41:39 +02:00
2016-12-07 10:36:03 +01:00
$total = count ( $to_send );
2016-12-06 15:45:47 +01:00
2016-12-07 10:36:03 +01:00
foreach ( $to_send as $product ) {
if ( ! in_array (( int ) $product [ 'id_order' ], $orders_list )) {
$orders_list [] = ( int ) $product [ 'id_order' ];
}
if ( ! in_array (( int ) $product [ 'id_order' ], $orders_to_send )) {
if ( ! isset ( $sent_products [( int ) $product [ 'id_order_detail' ]])
|| $product [ 'quantity' ] > $sent_products [( int ) $product [ 'id_order_detail' ]]) {
$orders_to_send [] = ( int ) $product [ 'id_order' ];
2016-09-28 10:41:39 +02:00
}
}
2016-12-07 10:36:03 +01:00
}
2016-09-28 10:41:39 +02:00
2016-12-07 10:36:03 +01:00
unset ( $sent_products );
unset ( $to_send );
2016-09-28 10:41:39 +02:00
2016-12-07 10:36:03 +01:00
$orders_sent = array ();
foreach ( $orders_list as $order ) {
if ( ! in_array ( $order , $orders_to_send )) {
$orders_sent [] = $order ;
2016-09-28 10:41:39 +02:00
}
2016-12-07 10:36:03 +01:00
}
2016-09-28 10:41:39 +02:00
2016-12-07 10:36:03 +01:00
unset ( $orders_list );
2016-09-28 10:41:39 +02:00
2016-12-07 10:36:03 +01:00
$status_sent = array ();
$status_partially_sent = array ();
2016-09-28 10:41:39 +02:00
2016-12-07 10:36:03 +01:00
foreach ( $orders_sent as $order ) {
if (( int ) Db :: getInstance () -> getValue ( '
SELECT `id_order_state`
FROM `'._DB_PREFIX_.'order_history`
WHERE `id_order` = '.(int) $order.'
ORDER BY `date_add` DESC LIMIT 1
' ) != 4 ) {
$status_sent [] = ( int ) $order ;
}
}
foreach ( $id_orders as $order ) {
if ( ! in_array ( $order , $status_sent )) {
if ( ! in_array (( int ) Db :: getInstance () -> getValue ( '
2016-09-28 10:41:39 +02:00
SELECT `id_order_state`
FROM `'._DB_PREFIX_.'order_history`
WHERE `id_order` = '.(int) $order.'
ORDER BY `date_add` DESC LIMIT 1
2016-12-07 10:36:03 +01:00
' ), array ( 4 , 17 , 9 , 19 ))) {
$status_partially_sent [] = ( int ) $order ;
2016-09-28 10:41:39 +02:00
}
}
2016-12-07 10:36:03 +01:00
}
2016-09-28 10:41:39 +02:00
2016-12-07 10:36:03 +01:00
unset ( $orders_sent );
unset ( $orders_to_send );
2016-09-28 10:41:39 +02:00
2016-12-07 10:36:03 +01:00
foreach ( $orders_infos as $id_order => $parcels ) {
$order = new Order ( $id_order );
$customer = new Customer (( int ) $order -> id_customer );
2016-09-28 10:41:39 +02:00
2016-12-07 10:36:03 +01:00
foreach ( $parcels as $parcel ) {
$products_sent = '' ;
2016-09-28 10:41:39 +02:00
2016-12-07 10:36:03 +01:00
$products_names = array ();
2016-09-28 10:41:39 +02:00
2016-12-07 10:36:03 +01:00
foreach ( Db :: getInstance () -> ExecuteS ( '
SELECT d . `id_order_detail` , d . `product_name` , SUM ( p . `quantity` ) AS `quantity`
FROM `'._DB_PREFIX_.'philea_parcel` p
LEFT JOIN `'._DB_PREFIX_.'order_detail` d ON ( p . `id_order_detail` = d . `id_order_detail` )
WHERE d . `id_order` = '.(int) $id_order.'
AND p . `shipping_number` = " '.pSQL( $parcel[0] ).' "
AND p . `date_add` = " '.pSQL( $parcel[1] ).' "
GROUP BY d . `id_order_detail`
' ) as $p ) {
$products_sent .= '<br />' . " \r \n " . $p [ 'quantity' ] . ' x ' . $p [ 'product_name' ];
}
2016-09-28 10:41:39 +02:00
2016-12-07 10:36:03 +01:00
$carrier = new Carrier ( $parcel [ 2 ], ( int ) $order -> id_lang );
2016-09-28 10:41:39 +02:00
2016-12-07 10:36:03 +01:00
if (( int ) $order -> id_lang == 3 ) {
if ( preg_match ( '/colissimo/i' , $carrier -> name )) {
$carrier -> url .= '&language=es_ES' ;
2016-09-28 10:41:39 +02:00
}
2016-12-07 10:36:03 +01:00
$content_html = '<strong>Contenido del paquete:</strong>' ;
$content_txt = 'Contenido del paquete:' ;
} else {
$content_html = '<strong>Contenu du colis :</strong>' ;
$content_txt = 'Contenu du colis :' ;
}
2016-09-28 10:41:39 +02:00
2016-12-07 10:36:03 +01:00
$templateVars = array (
'{followup}' => str_replace ( '@' , $parcel [ 0 ], $carrier -> url ),
'{firstname}' => $customer -> firstname ,
'{lastname}' => $customer -> lastname ,
'{id_order}' => ( int ) $order -> id ,
'{product_list}' => ! empty ( $products_sent ) ? $content_html . $products_sent : '' ,
'{product_list_txt}' => ! empty ( $products_sent ) ? $content_txt . strip_tags ( $products_sent ) : '' ,
);
2016-11-03 10:28:57 +01:00
2016-12-07 10:36:03 +01:00
$order -> shipping_number = $parcel [ 0 ];
$order -> update ();
2016-12-14 11:30:09 +01:00
$last_state = Db :: getInstance () -> getValue ( '
SELECT `id_order_state`
FROM `'._DB_PREFIX_.'order_state_current`
WHERE `id_order` = ' . ( int ) $order -> id
);
if ( in_array ( $order -> id , $status_sent ) && ( int ) $last_state != 4 ) {
2016-12-07 10:36:03 +01:00
$history = new OrderHistory ();
$history -> id_order = ( int ) $order -> id ;
$history -> changeIdOrderState ( 4 , ( int ) $order -> id );
2016-12-08 15:23:33 +01:00
$history -> addWithemail ( true , $templateVars );
2016-12-07 10:36:03 +01:00
} elseif ( in_array ( $order -> id , $status_partially_sent )) {
$history = new OrderHistory ();
$history -> id_order = ( int ) $order -> id ;
$history -> changeIdOrderState ( 17 , ( int ) $order -> id );
2016-12-08 15:23:33 +01:00
$history -> addWithemail ( true , $templateVars );
2016-12-07 10:36:03 +01:00
}
2016-11-03 10:28:57 +01:00
2016-12-07 10:36:03 +01:00
$subjects = array (
1 => 'Package in transit' ,
2 => 'Livraison en cours' ,
3 => 'Pedido en tránsito' ,
);
2016-09-28 10:41:39 +02:00
2016-12-07 10:36:03 +01:00
Mail :: Send (
intval ( $order -> id_lang ),
'in_transit' ,
$subjects [( int ) $order -> id_lang ],
$templateVars ,
$customer -> email ,
$customer -> firstname . ' ' . $customer -> lastname
);
2016-09-28 10:41:39 +02:00
}
}
}
2016-12-06 15:45:47 +01:00
mail ( 'marion@antadis.com' , '[BBB] Recept expe Philea' , $datFile );
2016-09-28 10:41:39 +02:00
$repo_archive = './archives/IN/LIVRAISON/' ;
$repo_paths = array ( date ( 'Y' ), date ( 'm' ));
foreach ( $repo_paths as $repo_path ) {
$repo_archive .= $repo_path . '/' ;
if ( ! file_exists ( $repo_archive ))
mkdir ( $repo_archive );
}
copy ( $datFile , $repo_archive . preg_replace ( '@BAL$@' , 'DAT' , $fileinfo -> getFilename () ));
unlink ( $inFolder . $fileinfo -> getFilename ());
unlink ( $datFile );
}
}
}
}
}
echo 'fin' ;