showError ) { global $webmaster_email; // No queremos que esta página se guarde header( 'Expires: Mon, 26 Jul 1997 05:00:00 GMT' ); header( 'Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT' ); header( 'Cache-Control: no-cache' ); // creamos pantalla de error de conexión echo ' Sentencia errónea

Sentencia errónea

Lo sentimos, pero se ha producido una sentencia SQL errónea. Por favor, si el problema continua, póngase en contacto con un administrador para que miren de solventar el problema. Gracias. '; die; } } /************************************************************************************************** * funciones de carácter public y constructores *************************************************************************************************/ /************************************************************************************************** * @visibility public * @param $namebd string * @param $server string * @param $user string * @param $pas string * @description => constructor de la clase. Se encarga de conectarse a la BD *************************************************************************************************/ function TConection( $namebd, $server, $user, $pas ) { // inicializamos variables $this->server = $server; $this->user = $user; $this->pas = $pas; $this->namebd = $namebd; $this->countsql = 0; $this->error = ''; // conectamos al servidor MySQL $this->idcon = mysqli_connect($this->server, $this->user, $this->pas, $this->namebd); } /************************************************************************************************** * @visibility public * @return string * @description => retorna el identificador de la conexión *************************************************************************************************/ function getIdcon() { return $this->idcon; } /************************************************************************************************** * @visibility public * @return string * @description => retorna el último erro de la sentencia SQL si lo hubiera *************************************************************************************************/ function getLastError() { return $this->error; } /************************************************************************************************** * @visibility public *************************************************************************************************/ function close() { mysqli_close($this->idcon); } /************************************************************************************************** * @visibility public * @return int * @param $sql string * @param $showError string * @description => ejecuta la sentencia SQL $sql y retorna un puntero a la misma *************************************************************************************************/ function execSQL( $sql, $showError = '' ) { $this->error = ''; $res = mysqli_query( $this->idcon, $sql ); //echo $sql; $this->countsql++; if ( $res ) return $res; // si llegamos a este punto es que hay error de SQL $this->error = 'Error: '.mysqli_error( $this->idcon ).'
Consulta SQL:
'.$sql; if ( $showError == '' ) $this->show_sql_error( $sql ); else echo '

'.$showError."

\n"."

 

".$this->error."

\n"; } } ?> constructor de la clase *************************************************************************************************/ function TGeneralFunc() { $this->vars = array(); $this->navigator = array(); $this->urlAbsoluta = ''; } /************************************************************************************************** * @visibility public * @return array() * @param $aUser string * @param $aPass string * @description => verifica un usuario/contraseña para poder entrar en la franquicia. En caso * de ser correcto, devolverá 1 o 0 para saber si es admin o no *************************************************************************************************/ function verifyUserFran( $aUser, $aPass ) { $con = $this->getVar( 'objConection' ); $contrasena = md5( $aPass ); $sql = "select * from usuarios where usuario = '".$aUser."' and fran > 0"; $idSQL = $con->execSQL( $sql ); $rown = mysqli_fetch_array( $idSQL ); if ( mysqli_num_rows($idSQL) == 0 ) { return array('id' => -1, 'admin' => -1); } if ( $rown['password'] != $contrasena ) { return array('id' => -1, 'admin' => -1); } return array('id' => $rown['id'], 'admin' => $rown['admin'], 'invisible' => $rown['invisible'], 'fespecial' => $rown['fespecial']); } /************************************************************************************************** * @visibility public * @return array() * @param $aUser string * @param $aPass string * @description => verifica un usuario/contraseña para poder entrar en la administración. En caso * de ser correcto, devolverá 1 o 0 para saber si es admin o no *************************************************************************************************/ function verifyUserAdmin( $aUser, $aPass ) { $con = $this->getVar( 'objConection' ); $contrasena = md5( $aPass ); $sql = "select * from usuarios where usuario = '".$aUser."' and fran < 2"; $idSQL = $con->execSQL( $sql ); $rown = mysqli_fetch_array( $idSQL ); if ( mysqli_num_rows($idSQL) == 0 ) { return array('id' => -1, 'admin' => -1); } if ( $rown['password'] != $contrasena ) { return array('id' => -1, 'admin' => -1); } return array('id' => $rown['id'], 'admin' => $rown['admin'], 'invisible' => $rown['invisible'], 'fespecial' => $rown['fespecial']); } /************************************************************************************************** * @visibility public * @param $vars array * @description => inicializa el array de variable $this->vars con el array pasado por parámetro *************************************************************************************************/ function initializeVars( $vars ) { $this->vars = $vars; } /************************************************************************************************** * @visibility public * @param $var string * @param $value variant * @description => establece el valor al índice del array $this->vars. $var es el índice y $value * el valor a asignar *************************************************************************************************/ function setVar( $var, $value ) { $this->vars[$var] = $value; } /************************************************************************************************** * @visibility public * @param $array array * @description => adjunta a $this->vars el array pasado por parámetro *************************************************************************************************/ function joinArray( $array ) { $this->vars = array_merge( $this->vars, $array ); } /************************************************************************************************** * @visibility public * @return variant * @param $key string * @param $default variant * @description => retorna el valor de una variable contenida en el array $this->vars. En caso de * no existir, retorna $default *************************************************************************************************/ function getVar( $key, $default = '' ) { if ( array_key_exists($key, $this->vars) ) return $this->vars[$key]; else return $default; } /************************************************************************************************** * @visibility public * @return array * @description => retorna el array $this->vars *************************************************************************************************/ function getVars() { return $this->vars; } /************************************************************************************************** * @visibility public * @return string * @description => devuelve la url absoluta donde está el fichero a cargar en el contenido *************************************************************************************************/ function getUrlAbsoluta() { return $this->urlAbsoluta; } /************************************************************************************************** * @visibility public * @return string * @description => devuelve la url relativa donde está el fichero a cargar en el contenido *************************************************************************************************/ function getUrlRelativa() { return $this->urlRelativa; } } ?> constructor de la clase *************************************************************************************************/ function TParse( $functions ) { $this->functions = $functions; $webBase = $this->functions->getVar('webBase', ''); $this->simpleTag = array(// tipos de letra '[b]' => '', '[/b]' => '', '[i]' => '', '[/i]' => '', '[u]' => '', '[/u]' => '', '[s]' => '', '[/s]' => '', // alineaciones '[pre]' => '
',
	                       '[/pre]' => '
', '[left]' => '
', '[/left]' => '
', '[center]' => '
', '[/center]' => '
', '[right]' => '
', '[/right]' => '
', // up y down '[sub]' => '', '[/sub]' => '', '[sup]' => '', '[/sup]' => '' ); $this->simpleKeys = array_keys( $this->simpleTag ); $this->simpleTag2 = array(// tipos de letra '[b]' => '', '[/b]' => '', '[i]' => '', '[/i]' => '', '[u]' => '', '[/u]' => '', '[s]' => '', '[/s]' => '', // alineaciones '[pre]' => '
',
	                       '[/pre]' => '
', '[left]' => '
', '[/left]' => '
', '[center]' => '
', '[/center]' => '
', '[right]' => '
', '[/right]' => '
', // up y down '[sub]' => '', '[/sub]' => '', '[sup]' => '', '[/sup]' => '', '
' => '' ); $this->simpleKeys2 = array_keys( $this->simpleTag2 ); $this->complexTag = array ( // Internal URL '~\[iurl=([[:print:]]+?)\]~i' => '', '~([[:print:]]*?)(\[\/iurl\])~i' => '\1', // External URL '~\[url=https://(.*?)\](.*?)\[/url\]~i' => '\2', '~\[url\]https://(.*?)\[/url\]~i' => '\1', '~\[url=http://(.*?)\](.*?)\[/url\]~i' => '\2', '~\[url\]http://(.*?)\[/url\]~i' => '\1', "~\[url=(.*?)\](.*?)\[\/url\]~i" => '\2', '~\[url\](.*?)\[/url\]~i' => '\1', // URL a _black '~\[eurl=https://(.*?)\](.*?)\[/eurl\]~i' => '\2', '~\[eurl\]https://(.*?)\[/eurl\]~i' => '\1', '~\[eurl=http://(.*?)\](.*?)\[/eurl\]~i' => '\2', '~\[eurl\]http://(.*?)\[/eurl\]~i' => '\1', "~\[eurl=(.*?)\](.*?)\[\/eurl\]~i" => '\2', '~\[eurl\](.*?)\[/eurl\]~i' => '\1', // URL Name '~\[rurl=http://(.*?)\](.*?)\[/rurl\]~i' => '\2', '~\[rurl\]http://(.*?)\[/rurl\]~i' => '\1', "~\[rurl=(.*?)\](.*?)\[\/rurl\]~i" => '\2', '~\[rurl\](.*?)\[/rurl\]~i' => '\1', // A Name '~\[rmarca\](.*?)\[/rmarca\]~i' => '', // control de la imagen '~\[img\](.*?)\[/img\]~i' => '
'.basename('\1').'
', '~\[amg\](.*?)\[/amg\]~i' => '
', '~\[amg2\](.*?)\[/amg2\]~i' => '
', '~\[amg4\](.*?)\[/amg4\]~i' => '
', '~\[amg6\](.*?)\[/amg6\]~i' => '
', // control del COLOR '~\[color=([[:print:]]+?)\]~i' => '', '~([[:print:]]*?)(\[\/color\])~i' => '\1', // control del SIZE (sólo un numero, con numero + "pt", "small",..... '~\[size=([\d])\]~i' => '', '~\[size=([\d]{1,2}p[xt]|(?:x-)?small(?:er)?|(?:x-)?large[r]?)\]~i' => '', '~([[:print:]]*?)\[/size\]~i' => '\1', // control del FONT '~\[font=([[:print:]]+?)\]~i' => '', '~([[:print:]]*?)\[/font\]~i' => '\1', // control de LIST y LI... se espera que esté todo en el sitio correcto, es decir, una secuencia correcta de [LIST][LI][/LI][/LIST] '~\[list\](?:
)?~i' => '\n", '~(?:
| |\s)*\[li\](.+?)\[/li\](?:
| |\s)*~i' => "
  • $1
  • \n", // control TABLE, TR y TD... se espera que esté todo en el sitio correcto, es decir, una secuencia correcta de [TABLE][TR][TD][/TD][/TR][/TABLE] '~\[table\](?:
    )?~i' => ''."\n", '~\[/table\](?:
    )?~i' => "
    \n", '~\[tablecar\](?:
    )?~i' => ''."\n", '~\[/tablecar\](?:
    )?~i' => "
    \n", '~(?:
    | |\s)*\[tr\](?:
    )?~i' => "\n", '~(?:
    | |\s)*\[/tr\](?:
    )?~i' => "\n", '~(?:
    | |\s)*\[tdcart\](.+?)\[/tdcart\](?:
    | |\s)*~i' => "  $1\n", '~(?:
    | |\s)*\[tdcar1\](.+?)\[/tdcar1\](?:
    | |\s)*~i' => "  $1  \n", '~(?:
    | |\s)*\[tdcar2\](.+?)\[/tdcar2\](?:
    | |\s)*~i' => "  $1  \n", '~(?:
    | |\s)*\[td\](.+?)\[/td\](?:
    | |\s)*~i' => "$1\n", '~(?:
    | |\s)*\[tdl\](.+?)\[/tdl\](?:
    | |\s)*~i' => "$1\n", '~(?:
    | |\s)*\[tdc\](.+?)\[/tdc\](?:
    | |\s)*~i' => "$1\n", '~(?:
    | |\s)*\[tdr\](.+?)\[/tdr\](?:
    | |\s)*~i' => "$1\n"); $this->complexTag2 = array ( // Internal URL '~\[iurl=([[:print:]]+?)\]~i' => '', '~([[:print:]]*?)(\[\/iurl\])~i' => '\1', // External URL '~\[url=https://(.*?)\](.*?)\[/url\]~i' => '\2', '~\[url\]https://(.*?)\[/url\]~i' => '\1', '~\[url=http://(.*?)\](.*?)\[/url\]~i' => '\2', '~\[url\]http://(.*?)\[/url\]~i' => '\1', "~\[url=(.*?)\](.*?)\[\/url\]~i" => '\2', '~\[url\](.*?)\[/url\]~i' => '\1', // URL a _black '~\[eurl=https://(.*?)\](.*?)\[/eurl\]~i' => '\2', '~\[eurl\]https://(.*?)\[/eurl\]~i' => '\1', '~\[eurl=http://(.*?)\](.*?)\[/eurl\]~i' => '\2', '~\[eurl\]http://(.*?)\[/eurl\]~i' => '\1', "~\[eurl=(.*?)\](.*?)\[\/eurl\]~i" => '\2', '~\[eurl\](.*?)\[/eurl\]~i' => '\1', // URL Name '~\[rurl=http://(.*?)\](.*?)\[/rurl\]~i' => '\2', '~\[rurl\]http://(.*?)\[/rurl\]~i' => '\1', "~\[rurl=(.*?)\](.*?)\[\/rurl\]~i" => '\2', '~\[rurl\](.*?)\[/rurl\]~i' => '\1', // A Name '~\[rmarca\](.*?)\[/rmarca\]~i' => '', // control de la imagen '~\[img\](.*?)\[/img\]~i' => '
    '.basename('\1').'
    ', '~\[amg\](.*?)\[/amg\]~i' => '
    ', '~\[amg2\](.*?)\[/amg2\]~i' => '
    ', '~\[amg4\](.*?)\[/amg4\]~i' => '
    ', '~\[amg6\](.*?)\[/amg6\]~i' => '
    ', // control del COLOR '~\[color=([[:print:]]+?)\]~i' => '', '~([[:print:]]*?)(\[\/color\])~i' => '\1', // control del SIZE (sólo un numero, con numero + "pt", "small",..... '~\[size=([\d])\]~i' => '', '~\[size=([\d]{1,2}p[xt]|(?:x-)?small(?:er)?|(?:x-)?large[r]?)\]~i' => '', '~([[:print:]]*?)\[/size\]~i' => '\1', // control del FONT '~\[font=([[:print:]]+?)\]~i' => '', '~([[:print:]]*?)\[/font\]~i' => '\1', // control de LIST y LI... se espera que esté todo en el sitio correcto, es decir, una secuencia correcta de [LIST][LI][/LI][/LIST] '~\[list\](?:
    )?~i' => '\n", '~(?:
    | |\s)*\[li\](.+?)\[/li\](?:
    | |\s)*~i' => "
  • $1
  • \n", // control TABLE, TR y TD... se espera que esté todo en el sitio correcto, es decir, una secuencia correcta de [TABLE][TR][TD][/TD][/TR][/TABLE] '~\[table\](?:
    )?~i' => ''."\n", '~\[/table\](?:
    )?~i' => "
    \n", '~\[tablecar\](?:
    )?~i' => '
    '."\n", '~\[/tablecar\](?:
    )?~i' => "


    ", '~(?:
    | |\s)*\[tr\](?:
    )?~i' => "\n", '~(?:
    | |\s)*\[/tr\](?:
    )?~i' => "\n", '~(?:
    | |\s)*\[tdcart\](.+?)\[/tdcart\](?:
    | |\s)*~i' => "  $1\n", '~(?:
    | |\s)*\[tdcar1\](.+?)\[/tdcar1\](?:
    | |\s)*~i' => " $1 ", '~(?:
    | |\s)*\[tdcar2\](.+?)\[/tdcar2\](?:
    | |\s)*~i' => " -> $1 \n", '~(?:
    | |\s)*\[td\](.+?)\[/td\](?:
    | |\s)*~i' => "$1\n", '~(?:
    | |\s)*\[tdl\](.+?)\[/tdl\](?:
    | |\s)*~i' => "$1\n", '~(?:
    | |\s)*\[tdc\](.+?)\[/tdc\](?:
    | |\s)*~i' => "$1\n", '~(?:
    | |\s)*\[tdr\](.+?)\[/tdr\](?:
    | |\s)*~i' => "$1\n" ); $this->complexKey = array_keys( $this->complexTag ); $this->complexVal = array_values( $this->complexTag ); $this->complexKey2 = array_keys( $this->complexTag2 ); $this->complexVal2 = array_values( $this->complexTag2 ); } /************************************************************************************************** * @visibility public * @return string * @param $aText string * @description => parsea el texto pasado por parámetro *************************************************************************************************/ function getParseText( $aText ) { // $webGesHi = $this->functions->getVar('webGesHi', ''); //require_once( $webGesHi.'/geshi.php' ); // ahora miramos de dar formato al único tag que nos queda, el tag CODE // 1ero dividimes el texto por [CODE=XXXX] y [/CODE] // 2do recorremos las partes, eliminamos las [CODE=XXX] y [/CODE] y damos formato a lo que toque $parts = preg_split('~(\[/code\]|\[code(?:=[^\]]+)?\])~i', $aText, -1, PREG_SPLIT_DELIM_CAPTURE); for ($i = 0; $i < count($parts); $i++) { // si no es multiplo de 4 pero es par, es lo que tenemos que parsear y el lenguaje lo tenemos en $i-1 if ( ($i % 4 != 0) && ($i % 2 == 0) ) { $parts[$i] = str_replace(array('  ', '
    '), array(' ', "\n"), $parts[$i]); $lang = substr( $parts[$i-1], 6, strlen($parts[$i-1])-7 ); //$geshi = new GeSHi($parts[$i], $lang); //$geshi->set_language_path( $webGesHi.'/geshi' ); //$geshi->set_overall_class('geshi'); //$geshi->set_header_content('Código ():'); //$geshi->set_header_content_style('border-bottom : 1px solid gray; margin-bottom: 0.3em;'); //$geshi->set_footer_content_style('border-top : 1px solid gray; margin-top: 0.3em;'); //$geshi->set_footer_content('Código ():'); $parts[$i] = $geshi->parse_code(); $parts[$i-1] = ''; $parts[$i+1] = ''; } else { // reemplazamos TAGS simples $parts[$i] = str_replace( $this->simpleKeys, $this->simpleTag, $parts[$i] ); // reemplazamos TAGS complejos $parts[$i] = preg_replace( $this->complexKey, $this->complexVal, $parts[$i] ); } } return implode('', $parts); } /****************************************ESPECIAL PARA PACKS********************************************************** * @visibility public * @return string * @param $aText string * @description => parsea el texto pasado por parámetro ESPECIAL PARA PACKS ****************************************ESPECIAL PARA PACKS*********************************************************/ function getParseText2( $aText ) { // $webGesHi = $this->functions->getVar('webGesHi', ''); //require_once( $webGesHi.'/geshi.php' ); // ahora miramos de dar formato al único tag que nos queda, el tag CODE // 1ero dividimes el texto por [CODE=XXXX] y [/CODE] // 2do recorremos las partes, eliminamos las [CODE=XXX] y [/CODE] y damos formato a lo que toque $parts = preg_split('~(\[/code\]|\[code(?:=[^\]]+)?\])~i', $aText, -1, PREG_SPLIT_DELIM_CAPTURE); for ($i = 0; $i < count($parts); $i++) { // si no es multiplo de 4 pero es par, es lo que tenemos que parsear y el lenguaje lo tenemos en $i-1 if ( ($i % 4 != 0) && ($i % 2 == 0) ) { $parts[$i] = str_replace(array('  ', '
    '), array(' ', "\n"), $parts[$i]); $lang = substr( $parts[$i-1], 6, strlen($parts[$i-1])-7 ); //$geshi = new GeSHi($parts[$i], $lang); //$geshi->set_language_path( $webGesHi.'/geshi' ); //$geshi->set_overall_class('geshi'); //$geshi->set_header_content('Código ():'); //$geshi->set_header_content_style('border-bottom : 1px solid gray; margin-bottom: 0.3em;'); //$geshi->set_footer_content_style('border-top : 1px solid gray; margin-top: 0.3em;'); //$geshi->set_footer_content('Código ():'); $parts[$i] = $geshi->parse_code(); $parts[$i-1] = ''; $parts[$i+1] = ''; } else { // reemplazamos TAGS simples $parts[$i] = str_replace( $this->simpleKeys2, $this->simpleTag2, $parts[$i] ); // reemplazamos TAGS complejos $parts[$i] = preg_replace( $this->complexKey2, $this->complexVal2, $parts[$i] ); } } return implode('', $parts); } /************************************************************************************************** * @visibility public * @return string * @param $aText string * @description => desparsea el texto pasado por parámetro *************************************************************************************************/ function getUnParseText( $aText ) { // miramos cuantas veces aparece el tag CODE $parts = preg_split('~(\[/code\]|\[code(?:=[^\]]+)?\])~i', $aText, -1, PREG_SPLIT_DELIM_CAPTURE); // We're going to unparse only the stuff outside [code]... for ($i = 0; $i < count($parts); $i++) { // If $i is a multiple of four (0, 4, 8, ...) then it's not a code section... if ($i % 4 == 0) $parts[$i] = preg_replace('~\[html\](.+?)\[/html\]~ie', '\'[html]\' . strtr(htmlspecialchars(stripslashes(\'$1\'), ENT_QUOTES), array(\'&#13;\' => \'
    \', \'&#32;\' => \' \')) . \'[/html]\'', $parts[$i]); } // Change breaks back to \n's. return preg_replace('~~', "\n", implode('', $parts)); } /************************************************************************************************** * @visibility public * @return string * @param $message string * @description => prepara un texto para ser guardado en la base de datos *************************************************************************************************/ function preParseCode( $message ) { // borramos \r's... $message = strtr( $message, array("\r" => '') ); // miramos si todos los tag CODE están cerrados $codeopen = preg_match_all('~(\[code(?:=[^\]]+)?\])~is', $message, $dummy); $codeclose = preg_match_all('~(\[/code\])~is', $message, $dummy); // cerramos/abrimos todos los tags CODE if ($codeopen > $codeclose) $message .= str_repeat('[/code]', $codeopen - $codeclose); elseif ($codeclose > $codeopen) $message = str_repeat('[code]', $codeclose - $codeopen) . $message; // ahora que ya tenemos los tags CODE como dios manda, miramos los otros tags fuera de [CODE]..[/CODE] $parts = preg_split('~(\[/code\]|\[code(?:=[^\]]+)?\])~i', $message, -1, PREG_SPLIT_DELIM_CAPTURE); for ($i = 0, $n = count($parts); $i < $n; $i++) { // si 0 = outside, 1 = begin tag, 2 = inside, 3 = close tag, repetimos. if ($i % 4 == 0) { // abrimos/cerramos todos los tags LIST $list_open = substr_count($parts[$i], '[list]') + substr_count($parts[$i], '[list '); $list_close = substr_count($parts[$i], '[/list]'); if ($list_close - $list_open > 0) $parts[$i] = str_repeat('[list]', $list_close - $list_open) . $parts[$i]; if ($list_open - $list_close > 0) $parts[$i] = $parts[$i] . str_repeat('[/list]', $list_open - $list_close); } } return strtr( implode('', $parts), array(' ' => '  ', "\n" => '
    ', "\t" => '   ') ); } } ?>num_productos=0; } // Muestra el resumen de la caja Cesta de la compra (para el menu) function productos ($SwebBase, $webImgMenu, $actualiza, $car) { $numero=0; for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0){$numero=$numero + ($this->array_cant_prod[$i] * $this->array_num_pack[$i]);} } //if ($car == 1){$numero++;} //if ($actualiza == 1){$numero--;} if ($numero > 0) { echo'Cesta('.$numero.')'; /* echo'cesta_compra
    La cesta tiene '.$numero.' '; if ($numero == 1) {echo'producto';} else{echo'productos';} echo'';*/ } else { echo'Cesta Vacia'; /* echo'cesta_compra
    La cesta está vacia';*/ } } //Introduce un producto en el carrito. Recibe los datos del producto //Se encarga de introducir los datos en los arrays del objeto carrito //luego aumenta en 1 el numero de productos function introduce_producto($id_prod, $img_prod, $num_pack, $nombre_prod, $precio_prod, $espeque_prod, $peso_prod, $id_disp, $id_dispesp, $id_marca){ // Recorremos la cesta para ver si existe el articulo $existe= 0; for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0) { if($this->array_id_prod[$i] == $id_prod){ $this->array_cant_prod[$i]= $this->array_cant_prod[$i]+1; $existe=1; } } } if ($existe > 0) // Si el producto ya existe no se añade. { } else//Si no existe añadimos { $this->array_id_prod[$this->num_productos]=$id_prod; $this->array_num_pack[$this->num_productos]=$num_pack; $this->array_cant_prod[$this->num_productos]=1; $this->array_img_prod[$this->num_productos]=$img_prod; $this->array_nombre_prod[$this->num_productos]=$nombre_prod; $this->array_espeque_prod[$this->num_productos]=$espeque_prod; $this->array_peso_prod[$this->num_productos]=$peso_prod; $this->array_precio_prod[$this->num_productos]=$precio_prod; $this->array_id_disp[$this->num_productos]=$id_disp; $this->array_id_dispesp[$this->num_productos]=$id_dispesp; $this->array_id_marca[$this->num_productos]=$id_marca; $this->num_productos++; } } //Actualiza la cantidad de producto. Recibe los datos del producto function actualiza_producto($linea,$cant_prod){ $this->array_cant_prod[$linea]=$cant_prod; } //Muestra el contenido del carrito de la compra para edicion de articulos //ademas pone los enlaces para eliminar un producto del carrito function ver_cesta($webImages, $SwebBase, $webBase, $bd, $webAbsPd) { $numero=0; $bsh=0; for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0){$numero++;} if($this->array_id_prod[$i]!=0) { if(($this->array_id_marca[$i]==29) or ($this->array_id_marca[$i]==25) or($this->array_id_marca[$i]==4)){$bsh++;} } } if ($numero > 0) { $suma = 0; // ASistente paso 1 echo'
    Si ya sabes lo que quieres comprar (o aunque no lo tengas completamente decidido) llámanos, tomaremos nota de tu PEDIDO o te aconsejaremos telefónicamente al 93 164 10 79 o si lo prefieres rellena este sencillo formulario.
    A continuación nuestro asistente de compra le guiará para realizar el proceso de compra:
    '; echo'
    Paso 1 Paso 2 Paso 3 Paso 4 Paso 5 Paso 6
     Revisar Cesta


    '; echo''; $x=0; $garantia=0; for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0){ if ($this->array_id_prod[$i] == 13219) {$garantia=1;} // Variables de Trabajo $cantidad = $this->array_cant_prod[$i]; $precio = $this->array_precio_prod[$i]; $espeque = $this->array_espeque_prod[$i]; $peso = $this->array_peso_prod[$i]; $disp = $this->array_id_disp[$i]; echo''; } else { echo''; } } $x++; echo'
    PASO 1/6
      Concepto     Precio     Cantidad     Borrar  
     '.$this->array_nombre_prod[$i].'  '.number_format(($precio), 2, ',', '.').' 
    '; if (($bsh > 0) and ($garantia == 0)) { echo'

    '; //Garantia Extra si ya está seleccionada no la volvemos a mostrar... $consulta='Select imagen, nombre, pvp from articulos where id = 13219'; $idSQL = $bd->execSQL($consulta); if ( $rown = mysqli_fetch_array( $idSQL ) ) { $subdir=strtoupper($rown['imagen'][0]); $filename = $webAbsPd.'/peque/'.$subdir.'/'.$rown['imagen'].''; if (file_exists($filename)) // Si existe el fichero en tamaño pequeño { $img=$webBase.'/images/productos/peque/'.$subdir.'/'.$rown['imagen'].''; } echo''; } echo'
    Su producto es Balay, Bosch o Siemens, puede contratar la garantía adicional de 3 años para cada electrodoméstico (total garantía 5 años)
      Concepto     Precio     Añadir  
     '.$rown['nombre'].'  '.number_format(($rown['pvp']), 2, ',', '.').'  Comprar Extension 3 ANOS GARANTIA Oficial del Fabricante
    '; } /*Promo cupon descuento*/ /* echo'
    '; $consulta='Select imagen, nombre, pvp from articulos where id = 13747'; $idSQL = $bd->execSQL($consulta); if ( $rown = mysqli_fetch_array( $idSQL ) ) { $subdir=strtoupper($rown['imagen'][0]); $filename = $webAbsPd.'/peque/'.$subdir.'/'.$rown['imagen'].''; if (file_exists($filename)) // Si existe el fichero en tamaño pequeño { $img=$webBase.'/images/productos/peque/'.$subdir.'/'.$rown['imagen'].''; } echo''; } echo'
    Añade un cupón descuento del 2% para tu próxima compra por solo 1 céntimo
      Concepto     Precio     Añadir  
     '.$rown['nombre'].'  '.number_format(($rown['pvp']), 2, ',', '.').'  Cupón Descuento
    ';*/ /*Fin Promo Descuento*/ } else { echo'
    LA CESTA ESTA VACIA
    '; $cesta_vacia=1; } if ($cesta_vacia == 1) { echo'
    Seguir Comprando
    '; } else { echo'
    '; echo'
    Seguir Comprando
    '; } } //Muestra el contenido del carrito de la compra con calculos incluidos function imprime_carrito($webImages, $SwebBase, $webBase, $cp, $bd, $paso, $id, $dtoporte, $paymin, $payper, $reemin, $reeper, $objParse, $sfp, $pvpfree, $imppvpfree){ $cporigen = $cp; $numero=0; for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0){$numero++;} } if ($numero > 0) { $suma = 0; // Asistente 3 echo'
    Paso 1 Paso 2 Paso 3 Paso 4 Paso 5 Paso 6
    Forma de Entrega


    '; echo''; echo' '; $x=0; $suma=0; $numarticulos=0; for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0){ //Variables de trabajo $cantidad = $this->array_cant_prod[$i]; $numpack = $this->array_num_pack[$i]; $precio = $this->array_precio_prod[$i]; $espeque = $this->array_espeque_prod[$i]; $peso = $this->array_peso_prod[$i]; $numarticulos = $numarticulos + ($cantidad * $numpack); $importe = $cantidad * $precio; echo''; $x++; $suma += $importe; } } echo''; echo'
    PASO 3/6
    Concepto Precio Cantidad Importe
     '.$this->array_nombre_prod[$i].'  '.number_format(($precio), 2, ',', '.').'  '.$cantidad.'  '.number_format(($importe), 2, ',', '.').' 
    Sub - Total   '.number_format($suma, 2, ',', '.').' 
    '; if ($sfp <> '') { $zonaactiva=explode('_', $sfp); $zonaactiva=$zonaactiva[1]; } //echo 'zona = '.$zonaactiva; /***********************************************/ /////AQUI EMPIEZAN TODAS LAS FORMAS DE ENTREGA... /***********************************************/ //Primero buscaremos la forma de entrega seleccionada... if ($zonaactiva <> '') { $consulta='Select * from tipos_entrega where activo = 1 and id = '.$zonaactiva.' order by pos'; $idSQL = $bd->execSQL($consulta); while ( $rown = mysqli_fetch_array( $idSQL ) ) { //Textos para cada cosa. $textoz=$rown['TEXTOZONA']; $texto1=$rown['TRANSFERENCIA']; $texto2=$rown['PAGOENTREGA']; $texto3=$rown['EFECTIVOTIENDA']; $texto4=$rown['REEMBOLSO']; $texto5=$rown['PAYPAL']; $texto6=$rown['TPVTIENDA']; $texto7=$rown['FINANCIA']; $texto8=$rown['TPVONLINE']; //Calculos para cada tipo de forma de entrega... $respuesta = -1; $tipo_entrega= ''; switch ($rown['id']) { case 1: /***********************************/ //Empresa normal de transporte /***********************************/ //Buscamos si el CP esta en la tabla de provincias... $cp = substr($cporigen, 0, 2); $cpok=0; $consultacp="SELECT p.nombre nombre, p.zona zona from provincias p where p.codigo = '".$cp."' and zona > 0"; //echo '1- '.$consultacp; $sqlcp = $bd->execsql($consultacp); if ($sqlcprown =mysqli_fetch_array($sqlcp)) { $cpok = 1; $zonasel=$sqlcprown['zona']; } else { //Buscamos si el pueblo esta en los cp permitidos (pueblos baleares) $csueltos="SELECT p.nombre nombre, p.zona zona from cpsueltos p where p.cp = '".$cporigen."'"; //echo '
    1- '.$csueltos; $sqlcps = $bd->execsql($csueltos); if ($sqlcprowns =mysqli_fetch_array($sqlcps)) { $cpok = 1; $zonasel=$sqlcprowns['zona']; } } IF ($cpok == 1) { //Si es zona 0 (tampoco se envian paquetes a estas hubicaciones... if ($zonasel == 0) { $respuesta = -1; } else { $gpeso=0; //Calculamos el importe individual de cada articulo y lo sumamos al final... for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0) { //Variables de trabajo $cantidad = $this->array_cant_prod[$i]; $peso = $this->array_peso_prod[$i]; $czona="SELECT importe from transportes where zona = ".$zonasel." and desde <= ".$peso." and hasta >= ".$peso." order by importe"; $sqlzona = $bd->execsql($czona); if ($sqlzonar =mysqli_fetch_array($sqlzona)) { $gpeso = $gpeso + ($sqlzonar['importe'] * $cantidad); } } } $respuesta=0; //PROMOCIONES PORTES FIJOS if ($pvpfree == '1') { $tipo_entrega='  Gastos de Transporte  '.number_format(($imppvpfree), 2, ',', '.').'  1  '.number_format(($imppvpfree), 2, ',', '.').'  '; } else { $tipo_entrega='  Gastos de Transporte  '.number_format(($gpeso), 2, ',', '.').'  1  '.number_format(($gpeso), 2, ',', '.').'  '; } } } ELSE { $respuesta = -1; } Break; case 2: /***********************************/ // Punto de recogida Terrassa /***********************************/ //Buscamos los gastos de gestion $consulta2='Select * from puntosamb where id = 1'; $idSQL2 = $bd->execSQL($consulta2); $gestion=0; if ( $rown2 = mysqli_fetch_array( $idSQL2 ) ) { $gestion = $rown2['precio']; } $respuesta=0; //PROMOCIONES PORTES FIJOS if ($pvpfree == '1') { if ($imppvpfree < $gestion) { $gestion=$imppvpfree; } $tipo_entrega='  Gastos Gestión Entrega  '.number_format(($gestion), 2, ',', '.').'  1  '.number_format(($gestion), 2, ',', '.').'  '; } else { $tipo_entrega='  Gastos Gestión Entrega  '.number_format(($gestion), 2, ',', '.').'  1  '.number_format(($gestion), 2, ',', '.').'  '; } Break; case 3: /***********************************/ // Punto de recogida Valencia /***********************************/ //Buscamos los gastos de gestion $consulta2='Select * from puntosamb where id = 4'; $idSQL2 = $bd->execSQL($consulta2); $gestion=0; if ( $rown2 = mysqli_fetch_array( $idSQL2 ) ) { $pgestion = $rown2['precio']; $gestion = $rown2['precio'] * $numarticulos; } $respuesta=0; //PROMOCIONES PORTES FIJOS if ($pvpfree == '1') { if ($imppvpfree < $pgestion) { $pgestion=$imppvpfree; } $tipo_entrega='  Gastos Gestión Entrega  '.number_format(($pgestion), 2, ',', '.').'  1  '.number_format(($pgestion), 2, ',', '.').'  '; } else { $tipo_entrega='  Gastos Gestión Entrega  '.number_format(($pgestion), 2, ',', '.').'  '.$numarticulos.'  '.number_format(($gestion), 2, ',', '.').'  '; } Break; case 4: /***********************************/ //ZONA PIEZA BARCELONA /***********************************/ //Buscamos si el CP esta en la tabla de pueblos $consultacp="SELECT p.nombre, p.tipo, t.pvp1, t.pvp2 from pueblos p left outer join transpueblos t on t.tipo = p.tipo where p.cp = '".$cporigen."' and p.zona = 0 order by t.pvp1"; $sqlcp = $bd->execsql($consultacp); if ($sqlcprown =mysqli_fetch_array($sqlcp)) { //Valores a cobrar $porte1=$sqlcprown['pvp1']; $porte2=$sqlcprown['pvp2']; //Separamos articulos por tipos para saber el importe del porte... $todopeque=0;//Controlaremos si toda la cesta son peques $numportes=0; //Numero de paquetes para contar los bultos a cobrar $peso0=0; //Numero de paquetes no peques con peso0 $numpeque=0; //Numero de peques que tiene la cesta $numportes2=0; //Numero de paquetes para controlar los bultos a cobrar $numarticulos2=0;//Numero de articulos a cobrar $totallineas=0; //Numero de articulos distintos for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0) { $cantidad = $this->array_cant_prod[$i]; $numpack = $this->array_num_pack[$i]; $precio = $this->array_precio_prod[$i]; $espeque = $this->array_espeque_prod[$i]; $peso = $this->array_peso_prod[$i]; $totallineas = $totallineas +1; //Comprobamos que no tenga peso0 if ($peso > 0) { $numportes=$numportes + ($cantidad * $numpack); } else // Peso0 { if ($espeque <> 1) { $peso0=$peso0 + ($cantidad * $numpack); } } //Comprobamos si es peque... if ($espeque == 1) { $numpeque=$numpeque+1; } else { $numportes2=$numportes2 + ($cantidad * $numpack); $numarticulos2=$numarticulos2 + ($cantidad * $numpack); } } } //Calculos... //Si todos fueran peques trabajamos como si fuera 1 paquete... //La variable todopeque no indica que toda la cesta menos peso0 son peques. if (($numportes2 == 0) and ($numpeque <> 0)) { $numportes2 = 1; $todopeque = 1; } // Todo son Peso 0 PORTES GRATIS if ($numportes2 == 0) { $portes = 0; } else { // Controlamos si hay paquetes con peso0 if ($peso0 > 0) { //Si solo hay 1 articulo o son todo peques if ($numportes2 == 1) { //Si son todo peques lo que queda por calcular no hay portes porque //el resto seran peso0 por lo cual portes gratis if($todopeque <> 1) { $portes = 0; } //Si no, es que nos queda 1 articulo solo en la cesta por cobrar else { //Hay mas de 1 peso0 por lo que solo cobramos la unidad extra if ($peso0 > 1) { $portes=$porte2; } else // 1 articulo solo { $portes=$porte1; } } } // mas de un articulo a parte de los de peso0 se cobran como si fuera segunda unidad else { if ($numportes2 == $peso0) { $portes = 0; } else { $portes=$porte1 + ($porte2 * ($numportes2-1-$peso0)); } } } //No hay peso0 los portes son normales else { //Si todos son peques nos vamos a zona portes... if ($numpeque == $totallineas) { $subrespuesta= -1; } else { $portes=$porte1 + ($porte2 * ($numportes2 -1)); } } } $respuesta=0; if ($subrespuesta == -1){$respuesta = -1;} //PROMOCIONES PORTES FIJOS if ($pvpfree == '1') { $tipo_entrega='  Gastos de Transporte  '.number_format(($imppvpfree), 2, ',', '.').'  1  '.number_format(($imppvpfree), 2, ',', '.').'  '; } else { $tipo_entrega='  Gastos de Transporte  '.number_format(($portes), 2, ',', '.').'  1  '.number_format(($portes), 2, ',', '.').'  '; } } ELSE { $respuesta = -1; } Break; case 5: /***********************************/ // Entrega BSH Directo (Subida a Piso) /***********************************/ //Recorremos los productos para ver si las marcas y disponibilidades son validas $respuesta=0; $piezas=0; $peques=0; $accesorios=0; //$naccesorios=''; for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0) { //Dispo y marca controlamos si podemos salir... if (($this->array_id_disp[$i] == 1) or ($this->array_id_disp[$i] == 2) or ($this->array_id_disp[$i] == 7)) { $respuesta = -1; } if ($this->array_id_dispesp[$i] <> 0) { $respuesta = -1; } if (($this->array_id_marca[$i] <> 29) and ($this->array_id_marca[$i] <> 135) and($this->array_id_marca[$i] <> 158) and($this->array_id_marca[$i] <> 25) and($this->array_id_marca[$i] <> 4)) { $respuesta = -1; } //Vamos a resumir el numero de paquetes por tipo.. if (($this->array_id_marca[$i] == 135) or ($this->array_espeque_prod[$i] == 1)) { if ($this->array_id_marca[$i] == 135) { $accesorios=$accesorios+$this->array_cant_prod[$i]; //$naccesorios=$naccesorios.' - '.$this->array_nombre_prod[$i].'('.$this->array_id_marca[$i].')'; } if (($this->array_espeque_prod[$i] == 1) and ($this->array_id_marca[$i] <> 135)) { $peques=$peques+$this->array_cant_prod[$i]; } } else { $piezas=$piezas+($this->array_num_pack[$i]*$this->array_cant_prod[$i]); } } } //Vammos realizar el calculo de los portes... $consultadir="SELECT * from directos where id_tipo = 5"; $sqldir = $bd->execsql($consultadir); if ($sqlcprown =mysqli_fetch_array($sqldir)) { //Piezas if ($piezas == 1){$pgestion=$sqlcprown['u1'];} if ($piezas == 2){$pgestion=$sqlcprown['u2'];} if ($piezas > 2){$pgestion=$sqlcprown['u3'];} //Peques if ($peques > 0){$pgestion=$pgestion+$sqlcprown['p1'];} } //PROMOCIONES PORTES FIJOS if ($pvpfree == '1') { $tipo_entrega='  Gastos Gestión Entrega  '.number_format(($imppvpfree), 2, ',', '.').'  '.$numarticulos.'  '.number_format(($imppvpfree), 2, ',', '.').'  '; } else { $tipo_entrega='  Gastos Gestión Entrega  '.number_format(($pgestion), 2, ',', '.').'  '.$numarticulos.'  '.number_format(($pgestion), 2, ',', '.').'  '; } Break; case 6: /***********************************/ // Punto de recogida Madrid /***********************************/ //Buscamos los gastos de gestion $consulta2='Select * from puntosamb where id = 5'; $idSQL2 = $bd->execSQL($consulta2); $gestion=0; if ( $rown2 = mysqli_fetch_array( $idSQL2 ) ) { $pgestion = $rown2['precio']; } $respuesta=0; //Solo estara disponible si todos los articulos son zona premium... for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0) { if ($this->array_id_dispesp[$i] <> 998){$respuesta = -1;} } } //PROMOCIONES PORTES FIJOS if ($pvpfree == '1') { $tipo_entrega='  Gastos Gestión Entrega  '.number_format(($imppvpfree), 2, ',', '.').'  1  '.number_format(($imppvpfree), 2, ',', '.').'  '; } else { $tipo_entrega='  Gastos Gestión Entrega  '.number_format(($pgestion), 2, ',', '.').'  1  '.number_format(($pgestion), 2, ',', '.').'  '; } Break; case 7: /***********************************/ // Entrega Madrid (Subida a Piso) /***********************************/ //Recorremos los productos para ver si las marcas y familias son validas $respuesta=0; $piezas=0; $peques=0; $accesorios=0; $cp = substr($cporigen, 0, 2); //$naccesorios=''; //Buscamos primero el codigo postal... if ($cp <> '28') { $respuesta = -1; } for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0) { ////Marca controlamos si podemos salir... //if (($this->array_id_marca[$i] <> 29) and ($this->array_id_marca[$i] <> 25) and ($this->array_id_marca[$i] <> 4)) //{ $respuesta = -1; //} //else ////Buscamos familia //{ // //Buscamos los gastos de gestion // $consultap='Select id_sfam from articulos where id = '.$this->array_id_prod[$i].''; // $idSQLp = $bd->execSQL($consultap); // if ( $rownp = mysqli_fetch_array( $idSQLp ) ) // { // //subfamilia conotrol si podemos salir... // if (($rownp['id_sfam'] <> 43) and ($rownp['id_sfam'] <> 46) and ($rownp['id_sfam'] <> 74) and ($rownp['id_sfam'] <> 71) and ($rownp['id_sfam'] <> 72) and ($rownp['id_sfam'] <> 47) and // ($rownp['id_sfam'] <> 44) and ($rownp['id_sfam'] <> 73) and ($rownp['id_sfam'] <> 49) and ($rownp['id_sfam'] <> 54) and ($rownp['id_sfam'] <> 52) and ($rownp['id_sfam'] <> 51)) // { // $respuesta = -1; // } // } //} } } $pgestion=9.90; //PROMOCIONES PORTES FIJOS if ($pvpfree == '1') { $tipo_entrega='  Gastos Gestión Entrega  '.number_format(($imppvpfree), 2, ',', '.').'  '.$numarticulos.'  '.number_format(($imppvpfree), 2, ',', '.').'  '; } else { $tipo_entrega='  Gastos Gestión Entrega  '.number_format(($pgestion), 2, ',', '.').'  '.$numarticulos.'  '.number_format(($pgestion), 2, ',', '.').'  '; } Break; case 9: /***********************************/ // Entrega TTM (Subida e instalacion) /***********************************/ //Buscamos si el CP esta en la tabla de provincias (proventrega)... $cp = substr($cporigen, 0, 2); $consultacp="SELECT p.nombre nombre, p.pvp1 pvp1, p.pvp2 pvp2, p.unidades unidades from proventrega p where p.cp = '".$cp."'"; //echo $consultacp; $sqlcp = $bd->execsql($consultacp); if ($sqlcprown =mysqli_fetch_array($sqlcp)) { $porte1=$sqlcprown['pvp1']; $uniportes=$sqlcprown['unidades']; $porte2=$sqlcprown['pvp2']; //De las provincias aceptadas al transporte controlamos que no sea un pueblo sin servicio. $consultanocp="SELECT id from cpnoentrega where cp = '".$cporigen."'"; $sqlcpno = $bd->execsql($consultanocp); if ($sqlcpnorown =mysqli_fetch_array($sqlcpno))// Localidad sin servicio { $respuesta = -1; } else { //Reiniciamos las variables acumulativas $numportes=0; $peso0=0; $numpeque=0; $numportes2=0; $numarticulos=0; $totallineas=0; //Recorremos los productos para saber cuantos normales y cuantos peques tenemos.... for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0) { $cantidad = $this->array_cant_prod[$i]; $numpack = $this->array_num_pack[$i]; $precio = $this->array_precio_prod[$i]; $espeque = $this->array_espeque_prod[$i]; $peso = $this->array_peso_prod[$i]; $totallineas = $totallineas +1; //Comprobamos que no tenga peso0 if ($peso > 0) { $numportes=$numportes + ($cantidad * $numpack); } else // Peso0 { if ($espeque <> 1) { $peso0=$peso0 + ($cantidad * $numpack); } } //Comprobamos si es peque... if ($espeque == 1) { $numpeque=$numpeque+1; } else { $numportes2=$numportes2 + ($cantidad * $numpack); $numarticulos2=$numarticulos2 + ($cantidad * $numpack); } } } //echo '
    Peque: '.$numpeque; //echo '
    Num Portes: '.$numportes; //echo '
    Peso0: '.$peso0; //echo '
    Num. Portes 2(sin peques): '.$numportes2; //echo '
    Num. Articulos: '.$numarticulos; //Calculos... //Si todos fueran peques trabajamos como si fuera 1 paquete... //La variable todopeque no indica que toda la cesta menos peso0 son peques. if (($numportes2 == 0) and ($numpeque <> 0)) { $numportes2 = 1; $todopeque = 1; } // Todo son Peso 0 PORTES GRATIS if ($numportes2 == 0) { $portes = 0; } else { // Controlamos si hay paquetes con peso0 if ($peso0 > 0) { //Si solo hay 1 articulo o son todo peques if ($numportes2 == 1) { //Si son todo peques lo que queda por calcular no hay portes porque //el resto seran peso0 por lo cual portes gratis if($todopeque <> 1) { $portes = 0; //Calculo de los portes para los peques que nos quedan... $cp = substr($cporigen, 0, 2); $consultacp="SELECT p.nombre nombre, p.zona zona from provincias p where p.codigo = '".$cp."'"; //echo $consultacp; $sqlcp = $bd->execsql($consultacp); if ($sqlcprown =mysqli_fetch_array($sqlcp)) { for ($i=0;$i<$this->num_productos;$i++) { if($this->array_id_prod[$i]!=0) { $cantidad = $this->array_cant_prod[$i]; $numpack = $this->array_num_pack[$i]; $precio = $this->array_precio_prod[$i]; $espeque = $this->array_espeque_prod[$i]; $peso = $this->array_peso_prod[$i]; if ($espeque == 1) { $czona="SELECT importe from transportes where zona = ".$sqlcprown['zona']." and desde <= ".$peso." and hasta >= ".$peso." order by importe"; $sqlzona = $bd->execsql($czona); if ($sqlzonar =mysqli_fetch_array($sqlzona)) { $portepeque = $portepeque + ($sqlzonar['importe'] * $cantidad); } } } } } //Fin Calculos portes peques... $portes=$portes+$portepeque; } //Si no, es que nos queda 1 articulo solo en la cesta por cobrar //OJO REVISAR else { //Hay mas de 1 peso0 por lo que solo cobramos la unidad extra //OJO REVISAR if ($peso0 > 1) { $portes=$porte2; } else // 1 articulo solo { $portes=$porte1; } } } // mas de un articulo a parte de los de peso0 se cobran como si fuera segunda unidad else { if ($numportes2 == $peso0) { $portes = 0; //Calculo de los portes para los peques que nos quedan... $cp = substr($cporigen, 0, 2); $consultacp="SELECT p.nombre nombre, p.zona zona from provincias p where p.codigo = '".$cp."'"; //echo $consultacp; $sqlcp = $bd->execsql($consultacp); if ($sqlcprown =mysqli_fetch_array($sqlcp)) { for ($i=0;$i<$this->num_productos;$i++) { if($this->array_id_prod[$i]!=0) { $cantidad = $this->array_cant_prod[$i]; $numpack = $this->array_num_pack[$i]; $precio = $this->array_precio_prod[$i]; $espeque = $this->array_espeque_prod[$i]; $peso = $this->array_peso_prod[$i]; if ($espeque == 1) { $czona="SELECT importe from transportes where zona = ".$sqlcprown['zona']." and desde <= ".$peso." and hasta >= ".$peso." order by importe"; $sqlzona = $bd->execsql($czona); if ($sqlzonar =mysqli_fetch_array($sqlzona)) { $portepeque = $portepeque + ($sqlzonar['importe'] * $cantidad); } } } } } //Fin Calculos portes peques... $portes=$portes+$portepeque; } else { //Calculamos las unidades divisibles... $numero_2=$numportes2-$uniportes; $numero_2=$numero_2-$peso0; if ($numero_2 < 0){$numero_2=0;} $portes=$porte1 + ($porte2 * $numero_2); //Calculo de los portes para los peques que nos quedan... $cp = substr($cporigen, 0, 2); $consultacp="SELECT p.nombre nombre, p.zona zona from provincias p where p.codigo = '".$cp."'"; //echo $consultacp; $sqlcp = $bd->execsql($consultacp); if ($sqlcprown =mysqli_fetch_array($sqlcp)) { for ($i=0;$i<$this->num_productos;$i++) { if($this->array_id_prod[$i]!=0) { $cantidad = $this->array_cant_prod[$i]; $numpack = $this->array_num_pack[$i]; $precio = $this->array_precio_prod[$i]; $espeque = $this->array_espeque_prod[$i]; $peso = $this->array_peso_prod[$i]; if ($espeque == 1) { $czona="SELECT importe from transportes where zona = ".$sqlcprown['zona']." and desde <= ".$peso." and hasta >= ".$peso." order by importe"; $sqlzona = $bd->execsql($czona); if ($sqlzonar =mysqli_fetch_array($sqlzona)) { $portepeque = $portepeque + ($sqlzonar['importe'] * $cantidad); } } } } } //Fin Calculos portes peques... $portes=$portes+$portepeque; } } } //No hay peso0 los portes son normales else { //Si todos son peques nos vamos a zona portes... if ($numpeque == $totallineas) { $subrespuesta= -1; } else { //Portes normales + posibles peques $numero_2=$numportes2-$uniportes; if ($numero_2 < 0){$numero_2=0;} $portes=$porte1 + ($porte2 * ($numero_2)); //Calculo de los portes para los peques que nos quedan... $cp = substr($cporigen, 0, 2); $consultacp="SELECT p.nombre nombre, p.zona zona from provincias p where p.codigo = '".$cp."'"; //echo $consultacp; $sqlcp = $bd->execsql($consultacp); if ($sqlcprown =mysqli_fetch_array($sqlcp)) { for ($i=0;$i<$this->num_productos;$i++) { if($this->array_id_prod[$i]!=0) { $cantidad = $this->array_cant_prod[$i]; $numpack = $this->array_num_pack[$i]; $precio = $this->array_precio_prod[$i]; $espeque = $this->array_espeque_prod[$i]; $peso = $this->array_peso_prod[$i]; if ($espeque == 1) { $czona="SELECT importe from transportes where zona = ".$sqlcprown['zona']." and desde <= ".$peso." and hasta >= ".$peso." order by importe"; $sqlzona = $bd->execsql($czona); if ($sqlzonar =mysqli_fetch_array($sqlzona)) { $portepeque = $portepeque + ($sqlzonar['importe'] * $cantidad); } } } } } //Fin Calculos portes peques... $portes=$portes+$portepeque; } } } $respuesta=0; if ($subrespuesta == -1){$respuesta = -1;} //Aqui empieza la chicha //PROMOCIONES PORTES FIJOS if ($pvpfree == '1') { $tipo_entrega='  Entrega, subida e instalación  '.number_format(($imppvpfree), 2, ',', '.').'  1  '.number_format(($imppvpfree), 2, ',', '.').'  '; } else { $tipo_entrega='  Entrega, subida e instalación  '.number_format(($portes), 2, ',', '.').'  1  '.number_format(($portes), 2, ',', '.').'  '; } } } else // Provincia sin servicio { $respuesta = -1; } Break; } if ($respuesta <> -1) { //Si es la primera. Texto de seleccionada... echo'
    Formas de Entrega Seleccionada
    '; $zonaactiva=explode('_', $sfp); $zonaactiva=$zonaactiva[1]; //ECHO 'sfp='.$sfp.' Zona:'.$zonaactiva; if ($zonaactiva == $rown['id']) { echo''; } ELSE { echo'
    '; } echo $tipo_entrega; if ($zonaactiva == $rown['id']){ echo'';} echo'
    '.$textoz.'

    '; } } } if ($zonaactiva <> '') { echo'
    Otras Formas de Entrega Disponibles
    '; } else { //Si es la primera. Texto de seleccionada... echo'
    Formas de Entrega Seleccionada
    '; } //Recorremos todas las formas de entrega activas menos la seleccionada... if ($zonaactiva <> '') { $primera=1; $consulta='Select * from tipos_entrega where activo = 1 and id <> '.$zonaactiva.' order by pos'; } else { $primera=0; $consulta='Select * from tipos_entrega where activo = 1 order by pos'; } $idSQL = $bd->execSQL($consulta); while ( $rown = mysqli_fetch_array( $idSQL ) ) { //Textos para cada cosa. $textoz=$rown['TEXTOZONA']; $texto1=$rown['TRANSFERENCIA']; $texto2=$rown['PAGOENTREGA']; $texto3=$rown['EFECTIVOTIENDA']; $texto4=$rown['REEMBOLSO']; $texto5=$rown['PAYPAL']; $texto6=$rown['TPVTIENDA']; $texto7=$rown['FINANCIA']; $texto8=$rown['TPVONLINE']; //Calculos para cada tipo de forma de entrega... $respuesta = -1; $tipo_entrega= ''; switch ($rown['id']) { case 1: /***********************************/ //Empresa normal de transporte /***********************************/ $cp = substr($cporigen, 0, 2); $cpok=0; $consultacp="SELECT p.nombre nombre, p.zona zona from provincias p where p.codigo = '".$cp."' and zona > 0"; //echo '2- '.$consultacp; $sqlcp = $bd->execsql($consultacp); if ($sqlcprown =mysqli_fetch_array($sqlcp)) { $cpok = 1; $zonasel=$sqlcprown['zona']; } else { //Buscamos si el pueblo esta en los cp permitidos (pueblos baleares) $csueltos="SELECT p.nombre nombre, p.zona zona from cpsueltos p where p.cp = '".$cporigen."'"; //echo '
    2- '.$csueltos; $sqlcps = $bd->execsql($csueltos); if ($sqlcprowns =mysqli_fetch_array($sqlcps)) { $cpok = 1; $zonasel=$sqlcprowns['zona']; } } IF ($cpok == 1) { //Si es zona 0 (tampoco se envian paquetes a estas hubicaciones... if ($zonasel == 0) { $respuesta = -1; } else { $gpeso=0; //Calculamos el importe individual de cada articulo y lo sumamos al final... for ($i=0;$i<$this->num_productos;$i++) { if($this->array_id_prod[$i]!=0) { //Variables de trabajo $cantidad = $this->array_cant_prod[$i]; $peso = $this->array_peso_prod[$i]; $czona="SELECT importe from transportes where zona = ".$zonasel." and desde <= ".$peso." and hasta >= ".$peso." order by importe"; $sqlzona = $bd->execsql($czona); if ($sqlzonar =mysqli_fetch_array($sqlzona)) { $gpeso = $gpeso + ($sqlzonar['importe'] * $cantidad); } } } $respuesta=0; //PROMOCIONES PORTES FIJOS if ($pvpfree == '1') { $tipo_entrega='  Gastos de Transporte  '.number_format(($imppvpfree), 2, ',', '.').'  1  '.number_format(($imppvpfree), 2, ',', '.').'  '; } else { $tipo_entrega='  Gastos de Transporte  '.number_format(($gpeso), 2, ',', '.').'  1  '.number_format(($gpeso), 2, ',', '.').'  '; } } } ELSE { $selecciona = 0; $respuesta = -1; } Break; case 2: /***********************************/ // Punto de recogida Terrassa /***********************************/ //Buscamos los gastos de gestion $consulta2='Select * from puntosamb where id = 1'; $idSQL2 = $bd->execSQL($consulta2); $gestion=0; if ( $rown2 = mysqli_fetch_array( $idSQL2 ) ) { $gestion = $rown2['precio']; } $respuesta=0; //PROMOCIONES PORTES FIJOS if ($pvpfree == '1') { if ($imppvpfree < $gestion) { $gestion=$imppvpfree; } $tipo_entrega='  Gastos Gestión Entrega  '.number_format(($gestion), 2, ',', '.').'  1  '.number_format(($gestion), 2, ',', '.').'  '; } else { $tipo_entrega='  Gastos Gestión Entrega  '.number_format(($gestion), 2, ',', '.').'  1  '.number_format(($gestion), 2, ',', '.').'  '; } Break; case 3: /***********************************/ // Punto de recogida Valencia /***********************************/ //Buscamos los gastos de gestion $consulta2='Select * from puntosamb where id = 4'; $idSQL2 = $bd->execSQL($consulta2); $gestion=0; if ( $rown2 = mysqli_fetch_array( $idSQL2 ) ) { $pgestion = $rown2['precio']; $gestion = $rown2['precio'] * $numarticulos; } $respuesta=0; //PROMOCIONES PORTES FIJOS if ($pvpfree == '1') { if ($imppvpfree < $pgestion) { $pgestion=$imppvpfree; } $tipo_entrega='  Gastos Gestión Entrega  '.number_format(($pgestion), 2, ',', '.').'  1  '.number_format(($pgestion), 2, ',', '.').'  '; } else { $tipo_entrega='  Gastos Gestión Entrega  '.number_format(($pgestion), 2, ',', '.').'  '.$numarticulos.'  '.number_format(($gestion), 2, ',', '.').'  '; } Break; case 4: /***********************************/ //ZONA PIEZA BARCELONA /***********************************/ //Buscamos si el CP esta en la tabla de pueblos $consultacp="SELECT p.nombre, p.tipo, t.pvp1, t.pvp2 from pueblos p left outer join transpueblos t on t.tipo = p.tipo where p.cp = '".$cporigen."' and p.zona = 0 order by t.pvp1"; $sqlcp = $bd->execsql($consultacp); if ($sqlcprown =mysqli_fetch_array($sqlcp)) { //Valores a cobrar $porte1=$sqlcprown['pvp1']; $porte2=$sqlcprown['pvp2']; //Separamos articulos por tipos para saber el importe del porte... $todopeque=0;//Controlaremos si toda la cesta son peques $numportes=0; //Numero de paquetes para contar los bultos a cobrar $peso0=0; //Numero de paquetes no peques con peso0 $numpeque=0; //Numero de peques que tiene la cesta $numportes2=0; //Numero de paquetes para controlar los bultos a cobrar $numarticulos2=0;//Numero de articulos a cobrar $totallineas=0; //Numero de articulos distintos for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0) { $cantidad = $this->array_cant_prod[$i]; $numpack = $this->array_num_pack[$i]; $precio = $this->array_precio_prod[$i]; $espeque = $this->array_espeque_prod[$i]; $peso = $this->array_peso_prod[$i]; $totallineas = $totallineas +1; //Comprobamos que no tenga peso0 if ($peso > 0) { $numportes=$numportes + ($cantidad * $numpack); } else // Peso0 { if ($espeque <> 1) { $peso0=$peso0 + ($cantidad * $numpack); } } //Comprobamos si es peque... if ($espeque == 1) { $numpeque=$numpeque+1; } else { $numportes2=$numportes2 + ($cantidad * $numpack); $numarticulos2=$numarticulos2 + ($cantidad * $numpack); } } } //Calculos... //Si todos fueran peques trabajamos como si fuera 1 paquete... //La variable todopeque no indica que toda la cesta menos peso0 son peques. if (($numportes2 == 0) and ($numpeque <> 0)) { $numportes2 = 1; $todopeque = 1; } // Todo son Peso 0 PORTES GRATIS if ($numportes2 == 0) { $portes = 0; } else { // Controlamos si hay paquetes con peso0 if ($peso0 > 0) { //Si solo hay 1 articulo o son todo peques if ($numportes2 == 1) { //Si son todo peques lo que queda por calcular no hay portes porque //el resto seran peso0 por lo cual portes gratis if($todopeque <> 1) { $portes = 0; } //Si no, es que nos queda 1 articulo solo en la cesta por cobrar else { //Hay mas de 1 peso0 por lo que solo cobramos la unidad extra if ($peso0 > 1) { $portes=$porte2; } else // 1 articulo solo { $portes=$porte1; } } } // mas de un articulo a parte de los de peso0 se cobran como si fuera segunda unidad else { if ($numportes2 == $peso0) { $portes = 0; } else { $portes=$porte1 + ($porte2 * ($numportes2-1-$peso0)); } } } //No hay peso0 los portes son normales else { //Si todos son peques nos vamos a zona portes... if ($numpeque == $totallineas) { $subrespuesta= -1; } else { $portes=$porte1 + ($porte2 * ($numportes2 -1)); } } } $respuesta=0; if ($subrespuesta == -1){$respuesta=-1;} //PROMOCIONES PORTES FIJOS if ($pvpfree == '1') { $tipo_entrega='  Gastos de Transporte  '.number_format(($imppvpfree), 2, ',', '.').'  1  '.number_format(($imppvpfree), 2, ',', '.').'  '; } else { $tipo_entrega='  Gastos de Transporte  '.number_format(($portes), 2, ',', '.').'  1  '.number_format(($portes), 2, ',', '.').'  '; } } ELSE { $respuesta = -1; } Break; case 5: /***********************************/ // Entrega BSH Directo (Subida a Piso) /***********************************/ //Recorremos los productos para ver si las marcas y disponibilidades son validas $respuesta=0; $piezas=0; $peques=0; $accesorios=0; //$naccesorios=''; for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0) { //Dispo y marca controlamos si podemos salir... if (($this->array_id_disp[$i] == 1) or ($this->array_id_disp[$i] == 2) or ($this->array_id_disp[$i] == 7)) { $respuesta = -1; } if ($this->array_id_dispesp[$i] <> 0) { $respuesta = -1; } if (($this->array_id_marca[$i] <> 29) and ($this->array_id_marca[$i] <> 135) and($this->array_id_marca[$i] <> 158) and($this->array_id_marca[$i] <> 25) and($this->array_id_marca[$i] <> 4)) { $respuesta = -1; } //Vamos a resumir el numero de paquetes por tipo.. if (($this->array_id_marca[$i] == 135) or ($this->array_espeque_prod[$i] == 1)) { if ($this->array_id_marca[$i] == 135) { $accesorios=$accesorios+$this->array_cant_prod[$i]; //$naccesorios=$naccesorios.' - '.$this->array_nombre_prod[$i].'('.$this->array_id_marca[$i].')'; } if (($this->array_espeque_prod[$i] == 1) and ($this->array_id_marca[$i] <> 135)) { $peques=$peques+$this->array_cant_prod[$i]; } } else { $piezas=$piezas+($this->array_num_pack[$i]*$this->array_cant_prod[$i]); } } } //Vammos realizar el calculo de los portes... $consultadir="SELECT * from directos where id_tipo = 5"; $sqldir = $bd->execsql($consultadir); if ($sqlcprown =mysqli_fetch_array($sqldir)) { //Piezas if ($piezas == 1){$pgestion=$sqlcprown['u1'];} if ($piezas == 2){$pgestion=$sqlcprown['u2'];} if ($piezas > 2){$pgestion=$sqlcprown['u3'];} //Peques if ($peques > 0){$pgestion=$pgestion+$sqlcprown['p1'];} } //PROMOCIONES PORTES FIJOS if ($pvpfree == '1') { $tipo_entrega='  Gastos Gestión Entrega  '.number_format(($imppvpfree), 2, ',', '.').'  '.$numarticulos.'  '.number_format(($imppvpfree), 2, ',', '.').'  '; } else { $tipo_entrega='  Gastos Gestión Entrega  '.number_format(($pgestion), 2, ',', '.').'  '.$numarticulos.'  '.number_format(($pgestion), 2, ',', '.').'  '; } Break; case 6: /***********************************/ // Punto de recogida Madrid /***********************************/ //Buscamos los gastos de gestion $consulta2='Select * from puntosamb where id = 5'; $idSQL2 = $bd->execSQL($consulta2); $gestion=0; if ( $rown2 = mysqli_fetch_array( $idSQL2 ) ) { $pgestion = $rown2['precio']; } $respuesta=0; //Solo estara disponible si todos los articulos son zona premium... for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0) { if ($this->array_id_dispesp[$i] <> 998){$respuesta = -1;} } } //PROMOCIONES PORTES FIJOS if ($pvpfree == '1') { $tipo_entrega='  Gastos Gestión Entrega  '.number_format(($imppvpfree), 2, ',', '.').'  1  '.number_format(($imppvpfree), 2, ',', '.').'  '; } else { $tipo_entrega='  Gastos Gestión Entrega  '.number_format(($pgestion), 2, ',', '.').'  1  '.number_format(($pgestion), 2, ',', '.').'  '; } Break; case 7: /***********************************/ // Entrega Portes Gratis Madrid (Subida a Piso) /***********************************/ //Recorremos los productos para ver si las marcas y familias son validas $respuesta=0; $piezas=0; $peques=0; $accesorios=0; $cp = substr($cporigen, 0, 2); //$naccesorios=''; //Buscamos primero el codigo postal... if ($cp <> '28') { $respuesta = -1; } for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0) { // //Marca controlamos si podemos salir... // if (($this->array_id_marca[$i] <> 29) and ($this->array_id_marca[$i] <> 25) and ($this->array_id_marca[$i] <> 4)) // { // $respuesta = -1; // } // else // //Buscamos familia // { // //Buscamos los gastos de gestion // $consultap='Select id_sfam from articulos where id = '.$this->array_id_prod[$i].''; // $idSQLp = $bd->execSQL($consultap); // if ( $rownp = mysqli_fetch_array( $idSQLp ) ) // { // //subfamilia conotrol si podemos salir... // if (($rownp['id_sfam'] <> 43) and ($rownp['id_sfam'] <> 46) and ($rownp['id_sfam'] <> 74) and ($rownp['id_sfam'] <> 71) and ($rownp['id_sfam'] <> 72) and ($rownp['id_sfam'] <> 47) and // ($rownp['id_sfam'] <> 44) and ($rownp['id_sfam'] <> 73) and ($rownp['id_sfam'] <> 49) and ($rownp['id_sfam'] <> 54) and ($rownp['id_sfam'] <> 52) and ($rownp['id_sfam'] <> 51)) // { // $respuesta = -1; // } // } // } } } $pgestion=9.90; //PROMOCIONES PORTES FIJOS if ($pvpfree == '1') { $tipo_entrega='  Gastos Gestión Entrega  '.number_format(($imppvpfree), 2, ',', '.').'  '.$numarticulos.'  '.number_format(($imppvpfree), 2, ',', '.').'  '; } else { $tipo_entrega='  Gastos Gestión Entrega  '.number_format(($pgestion), 2, ',', '.').'  '.$numarticulos.'  '.number_format(($pgestion), 2, ',', '.').'  '; } Break; case 9: /***********************************/ // Entrega TTM (Subida e instalacion) /***********************************/ //Buscamos si el CP esta en la tabla de provincias (proventrega)... $cp = substr($cporigen, 0, 2); $consultacp="SELECT p.nombre nombre, p.pvp1 pvp1, p.pvp2 pvp2, p.unidades unidades from proventrega p where p.cp = '".$cp."'"; //echo $consultacp; $sqlcp = $bd->execsql($consultacp); if ($sqlcprown =mysqli_fetch_array($sqlcp)) { $porte1=$sqlcprown['pvp1']; $uniportes=$sqlcprown['unidades']; $porte2=$sqlcprown['pvp2']; //De las provincias aceptadas al transporte controlamos que no sea un pueblo sin servicio. $consultanocp="SELECT id from cpnoentrega where cp = '".$cporigen."'"; $sqlcpno = $bd->execsql($consultanocp); if ($sqlcpnorown =mysqli_fetch_array($sqlcpno))// Localidad sin servicio { $respuesta = -1; } else { //Reiniciamos las variables acumulativas $numportes=0; $peso0=0; $numpeque=0; $numportes2=0; $numarticulos=0; $totallineas=0; //Recorremos los productos para saber cuantos normales y cuantos peques tenemos.... for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0) { $cantidad = $this->array_cant_prod[$i]; $numpack = $this->array_num_pack[$i]; $precio = $this->array_precio_prod[$i]; $espeque = $this->array_espeque_prod[$i]; $peso = $this->array_peso_prod[$i]; $totallineas = $totallineas +1; //Comprobamos que no tenga peso0 if ($peso > 0) { $numportes=$numportes + ($cantidad * $numpack); } else // Peso0 { if ($espeque <> 1) { $peso0=$peso0 + ($cantidad * $numpack); } } //Comprobamos si es peque... if ($espeque == 1) { $numpeque=$numpeque+1; } else { $numportes2=$numportes2 + ($cantidad * $numpack); $numarticulos2=$numarticulos2 + ($cantidad * $numpack); } } } //echo '
    Peque: '.$numpeque; //echo '
    Num Portes: '.$numportes; //echo '
    Peso0: '.$peso0; //echo '
    Num. Portes 2(sin peques): '.$numportes2; //echo '
    Num. Articulos: '.$numarticulos; //Calculos... //Si todos fueran peques trabajamos como si fuera 1 paquete... //La variable todopeque no indica que toda la cesta menos peso0 son peques. if (($numportes2 == 0) and ($numpeque <> 0)) { $numportes2 = 1; $todopeque = 1; } // Todo son Peso 0 PORTES GRATIS if ($numportes2 == 0) { $portes = 0; } else { // Controlamos si hay paquetes con peso0 if ($peso0 > 0) { //Si solo hay 1 articulo o son todo peques if ($numportes2 == 1) { //Si son todo peques lo que queda por calcular no hay portes porque //el resto seran peso0 por lo cual portes gratis if($todopeque <> 1) { $portes = 0; //Calculo de los portes para los peques que nos quedan... $cp = substr($cporigen, 0, 2); $consultacp="SELECT p.nombre nombre, p.zona zona from provincias p where p.codigo = '".$cp."'"; //echo $consultacp; $sqlcp = $bd->execsql($consultacp); if ($sqlcprown =mysqli_fetch_array($sqlcp)) { for ($i=0;$i<$this->num_productos;$i++) { if($this->array_id_prod[$i]!=0) { $cantidad = $this->array_cant_prod[$i]; $numpack = $this->array_num_pack[$i]; $precio = $this->array_precio_prod[$i]; $espeque = $this->array_espeque_prod[$i]; $peso = $this->array_peso_prod[$i]; if ($espeque == 1) { $czona="SELECT importe from transportes where zona = ".$sqlcprown['zona']." and desde <= ".$peso." and hasta >= ".$peso." order by importe"; $sqlzona = $bd->execsql($czona); if ($sqlzonar =mysqli_fetch_array($sqlzona)) { $portepeque = $portepeque + ($sqlzonar['importe'] * $cantidad); } } } } } //Fin Calculos portes peques... $portes=$portes+$portepeque; } //Si no, es que nos queda 1 articulo solo en la cesta por cobrar //OJO REVISAR else { //Hay mas de 1 peso0 por lo que solo cobramos la unidad extra //OJO REVISAR if ($peso0 > 1) { $portes=$porte2; } else // 1 articulo solo { $portes=$porte1; } } } // mas de un articulo a parte de los de peso0 se cobran como si fuera segunda unidad else { if ($numportes2 == $peso0) { $portes = 0; //Calculo de los portes para los peques que nos quedan... $cp = substr($cporigen, 0, 2); $consultacp="SELECT p.nombre nombre, p.zona zona from provincias p where p.codigo = '".$cp."'"; //echo $consultacp; $sqlcp = $bd->execsql($consultacp); if ($sqlcprown =mysqli_fetch_array($sqlcp)) { for ($i=0;$i<$this->num_productos;$i++) { if($this->array_id_prod[$i]!=0) { $cantidad = $this->array_cant_prod[$i]; $numpack = $this->array_num_pack[$i]; $precio = $this->array_precio_prod[$i]; $espeque = $this->array_espeque_prod[$i]; $peso = $this->array_peso_prod[$i]; if ($espeque == 1) { $czona="SELECT importe from transportes where zona = ".$sqlcprown['zona']." and desde <= ".$peso." and hasta >= ".$peso." order by importe"; $sqlzona = $bd->execsql($czona); if ($sqlzonar =mysqli_fetch_array($sqlzona)) { $portepeque = $portepeque + ($sqlzonar['importe'] * $cantidad); } } } } } //Fin Calculos portes peques... $portes=$portes+$portepeque; } else { //Calculamos las unidades divisibles... $numero_2=$numportes2-$uniportes; $numero_2=$numero_2-$peso0; if ($numero_2 < 0){$numero_2=0;} $portes=$porte1 + ($porte2 * $numero_2); //Calculo de los portes para los peques que nos quedan... $cp = substr($cporigen, 0, 2); $consultacp="SELECT p.nombre nombre, p.zona zona from provincias p where p.codigo = '".$cp."'"; //echo $consultacp; $sqlcp = $bd->execsql($consultacp); if ($sqlcprown =mysqli_fetch_array($sqlcp)) { for ($i=0;$i<$this->num_productos;$i++) { if($this->array_id_prod[$i]!=0) { $cantidad = $this->array_cant_prod[$i]; $numpack = $this->array_num_pack[$i]; $precio = $this->array_precio_prod[$i]; $espeque = $this->array_espeque_prod[$i]; $peso = $this->array_peso_prod[$i]; if ($espeque == 1) { $czona="SELECT importe from transportes where zona = ".$sqlcprown['zona']." and desde <= ".$peso." and hasta >= ".$peso." order by importe"; $sqlzona = $bd->execsql($czona); if ($sqlzonar =mysqli_fetch_array($sqlzona)) { $portepeque = $portepeque + ($sqlzonar['importe'] * $cantidad); } } } } } //Fin Calculos portes peques... $portes=$portes+$portepeque; } } } //No hay peso0 los portes son normales else { //Si todos son peques nos vamos a zona portes... if ($numpeque == $totallineas) { $subrespuesta= -1; } else { //Portes normales + posibles peques $numero_2=$numportes2-$uniportes; if ($numero_2 < 0){$numero_2=0;} $portes=$porte1 + ($porte2 * ($numero_2)); //Calculo de los portes para los peques que nos quedan... $cp = substr($cporigen, 0, 2); $consultacp="SELECT p.nombre nombre, p.zona zona from provincias p where p.codigo = '".$cp."'"; //echo $consultacp; $sqlcp = $bd->execsql($consultacp); if ($sqlcprown =mysqli_fetch_array($sqlcp)) { for ($i=0;$i<$this->num_productos;$i++) { if($this->array_id_prod[$i]!=0) { $cantidad = $this->array_cant_prod[$i]; $numpack = $this->array_num_pack[$i]; $precio = $this->array_precio_prod[$i]; $espeque = $this->array_espeque_prod[$i]; $peso = $this->array_peso_prod[$i]; if ($espeque == 1) { $czona="SELECT importe from transportes where zona = ".$sqlcprown['zona']." and desde <= ".$peso." and hasta >= ".$peso." order by importe"; $sqlzona = $bd->execsql($czona); if ($sqlzonar =mysqli_fetch_array($sqlzona)) { $portepeque = $portepeque + ($sqlzonar['importe'] * $cantidad); } } } } } //Fin Calculos portes peques... $portes=$portes+$portepeque; } } } $respuesta=0; if ($subrespuesta == -1){$respuesta = -1;} //Aqui empieza la chicha //PROMOCIONES PORTES FIJOS if ($pvpfree == '1') { $tipo_entrega='  Entrega, subida e instalación  '.number_format(($imppvpfree), 2, ',', '.').'  1  '.number_format(($imppvpfree), 2, ',', '.').'  '; } else { $tipo_entrega='  Entrega, subida e instalación  '.number_format(($portes), 2, ',', '.').'  1  '.number_format(($portes), 2, ',', '.').'  '; } } } else // Provincia sin servicio { $respuesta = -1; } Break; } if ($respuesta <> -1) { $zonaactiva=explode('_', $sfp); $zonaactiva=$zonaactiva[1]; //ECHO 'sfp='.$sfp.' Zona:'.$zonaactiva; if ($primera==0) { echo''; } ELSE { echo'
    '; } echo $tipo_entrega; if ($primera==0){ echo''; echo'
    '.$textoz.'

    Otras Formas de Entrega Disponibles
    '; $primera=1;} echo'
    '; } } /***********************************************/ ////AQUI TERMINAN TODAS LAS FORMAS DE ENTREGA.... /***********************************************/ echo''; } else { echo'
    LA CESTA ESTA VACIA
    '; } echo'
    Seguir Comprando
    '; } function imprime_carrito2($webImages, $SwebBase, $webBase, $cp, $bd, $pago, $puntoamb, $paso, $id, $dtoporte, $paymin, $payper, $reemin, $reeper, $objParse, $pvpfree, $imppvpfree){ //echo'El pago seleccionado '.$pago; $cporigen = $cp; $numero=0; for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0){$numero++;} } if ($numero > 0) { $suma = 0; // Asistente 4 echo'
    Paso 1 Paso 2 Paso 3 Paso 4 Paso 5 Paso 6
    Forma de Pago

    '; echo''; echo' '; $x=0; $suma=0; $numarticulos=0; for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0){ //Variables de trabajo $cantidad = $this->array_cant_prod[$i]; $numpack = $this->array_num_pack[$i]; $precio = $this->array_precio_prod[$i]; $espeque = $this->array_espeque_prod[$i]; $peso = $this->array_peso_prod[$i]; $numarticulos = $numarticulos + ($cantidad * $numpack); $importe = $cantidad * $precio; echo''; $x++; $suma += $importe; } } //echo' // // //'; //echo' //'; $zonaactiva=explode('_', $pago); $zonaactiva=$zonaactiva[1]; /***********************************************/ /////AQUI EMPIEZAN TODAS LAS FORMAS DE ENTREGA... /***********************************************/ //Primero buscaremos la forma de entrega seleccionada... $consulta='Select * from tipos_entrega where activo = 1 and id = '.$zonaactiva.' order by pos'; $idSQL = $bd->execSQL($consulta); while ( $rown = mysqli_fetch_array( $idSQL ) ) { //Textos para cada cosa. $textoz=$rown['TEXTOZONA']; $texto1=$rown['TRANSFERENCIA']; $texto2=$rown['PAGOENTREGA']; $texto3=$rown['EFECTIVOTIENDA']; $texto4=$rown['REEMBOLSO']; $texto5=$rown['PAYPAL']; $texto6=$rown['TPVTIENDA']; $texto7=$rown['FINANCIA']; $texto8=$rown['TPVONLINE']; $texto9=$rown['PAGOPLAZOS']; //Calculos para cada tipo de forma de entrega... $respuesta = -1; $tipo_entrega= ''; switch ($rown['id']) { case 1: /***********************************/ //Empresa normal de transporte /***********************************/ //Buscamos si el CP esta en la tabla de provincias... $cp = substr($cporigen, 0, 2); $cpok=0; $consultacp="SELECT p.nombre nombre, p.zona zona from provincias p where p.codigo = '".$cp."' and zona > 0"; //echo $consultacp; $sqlcp = $bd->execsql($consultacp); if ($sqlcprown =mysqli_fetch_array($sqlcp)) { $cpok = 1; $zonasel=$sqlcprown['zona']; } else { //Buscamos si el pueblo esta en los cp permitidos (pueblos baleares) $csueltos="SELECT p.nombre nombre, p.zona zona from cpsueltos p where p.cp = '".$cporigen."'"; //echo $csueltos; $sqlcps = $bd->execsql($csueltos); if ($sqlcprowns =mysqli_fetch_array($sqlcps)) { $cpok = 1; $zonasel=$sqlcprowns['zona']; } } IF ($cpok == 1) { //Si es zona 0 (tampoco se envian paquetes a estas hubicaciones... if ($zonasel == 0) { $respuesta = -1; } else { $gpeso=0; //Calculamos el importe individual de cada articulo y lo sumamos al final... for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0) { //Variables de trabajo $cantidad = $this->array_cant_prod[$i]; $peso = $this->array_peso_prod[$i]; $czona="SELECT importe from transportes where zona = ".$zonasel." and desde <= ".$peso." and hasta >= ".$peso." order by importe"; $sqlzona = $bd->execsql($czona); if ($sqlzonar =mysqli_fetch_array($sqlzona)) { $gpeso = $gpeso + ($sqlzonar['importe'] * $cantidad); } } } $respuesta=0; //PROMOCIONES PORTES FIJOS if ($pvpfree == '1') { $tipo_entrega=' Gastos de Transporte   '.number_format(($imppvpfree), 2, ',', '.').' 
    '; $portes=$imppvpfree; $gpeso=$imppvpfree; } else { $tipo_entrega='
    '; $portes=$gpeso; } if ($pago == '0_1'){$pago = '1_1';} $tipo_entrega=$tipo_entrega.''; //Si estamos en alguna de nuestras formas de pago mostramos el total y si necesita algun calculo añadido se hace el calculo... if (($pago == '1_1') or ($pago == '4_1') or ($pago == '5_1') or ($pago == '8_1') or ($pago == '9_1')) { if ($pago == '1_1') { $tipo_entrega=$tipo_entrega.' '; } if ($pago == '4_1') { $tipo_entrega=$tipo_entrega.' '; $reembolso = round(($portes+$impdto+$suma)* ($reeper / 100)); if ($reembolso < $reemin){$reembolso= $reemin;} $tipo_entrega=$tipo_entrega.' '; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '5_1') { $tipo_entrega=$tipo_entrega.' '; $paypal = round((($portes+$impdto+$suma) * ($payper / 100))); if ($paypal < $paymin){$paypal= $paymin;} $tipo_entrega=$tipo_entrega.' '; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '8_1') { $tipo_entrega=$tipo_entrega.' '; } if ($pago == '9_1') { $tipo_entrega=$tipo_entrega.' '; } } } } ELSE { $respuesta = -1; } Break; case 2: /***********************************/ // Punto de recogida Terrassa /***********************************/ //Buscamos los gastos de gestion $consulta2='Select * from puntosamb where id = 1'; $idSQL2 = $bd->execSQL($consulta2); $gestion=0; if ( $rown2 = mysqli_fetch_array( $idSQL2 ) ) { $gestion = $rown2['precio']; } $respuesta=0; //PROMOCIONES PORTES FIJOS if ($pvpfree == '1') { if ($imppvpfree < $gestion) { $gestion=$imppvpfree; } $tipo_entrega='
    '; $portes=$imppvpfree; if ($imppvpfree < $gestion) { $gestion=$imppvpfree; } } else { $tipo_entrega='
    '; $portes=$gestion; } if ($pago == '0_2'){$pago = '3_2';} $tipo_entrega=$tipo_entrega.''; //Si estamos en alguna de nuestras formas de pago mostramos el total y si necesita algun calculo añadido se hace el calculo... if (($pago == '3_2') or ($pago == '6_2') or ($pago == '1_2') or ($pago == '5_2') or ($pago == '7_2') or ($pago == '8_2') or ($pago == '9_2')) { if ($pago == '3_2') { $tipo_entrega=$tipo_entrega.' '; } if ($pago == '6_2') { $tipo_entrega=$tipo_entrega.' '; } if ($pago == '1_2') { $tipo_entrega=$tipo_entrega.' '; } if ($pago == '8_2') { $tipo_entrega=$tipo_entrega.' '; } if ($pago == '9_2') { $tipo_entrega=$tipo_entrega.' '; } if ($pago == '5_2') { $tipo_entrega=$tipo_entrega.' '; $paypal = round((($gestion+$suma) * ($payper / 100))); if ($paypal < $paymin){$paypal= $paymin;} $tipo_entrega=$tipo_entrega.' '; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '7_2') { $tipo_entrega=$tipo_entrega.' '; } } Break; case 3: /***********************************/ // Punto de recogida Valencia /***********************************/ //Buscamos los gastos de gestion $consulta2='Select * from puntosamb where id = 4'; $idSQL2 = $bd->execSQL($consulta2); $gestion=0; if ( $rown2 = mysqli_fetch_array( $idSQL2 ) ) { $pgestion = $rown2['precio']; $gestion = $rown2['precio'] * $numarticulos; } $respuesta=0; //PROMOCIONES PORTES FIJOS if ($pvpfree == '1') { $tipo_entrega='
    '; $portes=$imppvpfree; } else { $tipo_entrega='
    Seleccione la Forma de Pago
     Gastos Gestión Entrega  '.number_format(($pgestion), 2, ',', '.').'  '.$numarticulos.'  '.number_format(($gestion), 2, ',', '.').' 

    '; $portes=$gestion; } if ($pago == '0_3'){$pago='1_3';} $tipo_entrega=$tipo_entrega.''; $tipo_entrega=$tipo_entrega.'  
    '.$texto8.'

    ';} else{$tipo_entrega=$tipo_entrega. 'onclick="javascript:actuacesta(\''.$SwebBase.'/sources/ajax_actuacesta.php\', \'8_'.$rown['id'].'\', \''.$_SESSION["ambcarr"]->num_productos.'\', \'4\' , \'3\', \''.$webImages.'/ajax-loader.gif\');"> TPV VIRTUAL (Tarjeta de Crédito)
    ';} $tipo_entrega=$tipo_entrega.''; $tipo_entrega=$tipo_entrega.'  
    '.$texto9.'

    ';} else{$tipo_entrega=$tipo_entrega. 'onclick="javascript:actuacesta(\''.$SwebBase.'/sources/ajax_actuacesta.php\', \'9_'.$rown['id'].'\', \''.$_SESSION["ambcarr"]->num_productos.'\', \'4\' , \'3\', \''.$webImages.'/ajax-loader.gif\');"> Financiación en 6, 12 y 18 meses (Cetelem)
    ';} $tipo_entrega=$tipo_entrega.''; //Si estamos en alguna de nuestras formas de pago mostramos el total y si necesita algun calculo añadido se hace el calculo... if (($pago == '6_3') or ($pago == '1_3') or ($pago == '5_3') or ($pago == '8_3') or ($pago == '9_3')) { if ($pago == '6_3') { $tipo_entrega=$tipo_entrega.' '; } if ($pago == '1_3') { $tipo_entrega=$tipo_entrega.' '; } if ($pago == '8_3') { $tipo_entrega=$tipo_entrega.' '; } if ($pago == '9_3') { $tipo_entrega=$tipo_entrega.' '; } if ($pago == '5_3') { $tipo_entrega=$tipo_entrega.' '; $paypal = round((($gestion+$suma) * ($payper / 100))); if ($paypal < $paymin){$paypal= $paymin;} $tipo_entrega=$tipo_entrega.' '; $tipo_entrega=$tipo_entrega.' '; } } Break; case 4: /***********************************/ //ZONA PIEZA BARCELONA /***********************************/ //Buscamos si el CP esta en la tabla de pueblos $consultacp="SELECT p.nombre, p.tipo, t.pvp1, t.pvp2 from pueblos p left outer join transpueblos t on t.tipo = p.tipo where p.cp = '".$cporigen."' and p.zona = 0 order by t.pvp1"; $sqlcp = $bd->execsql($consultacp); if ($sqlcprown =mysqli_fetch_array($sqlcp)) { //Valores a cobrar $porte1=$sqlcprown['pvp1']; $porte2=$sqlcprown['pvp2']; //Separamos articulos por tipos para saber el importe del porte... $todopeque=0;//Controlaremos si toda la cesta son peques $numportes=0; //Numero de paquetes para contar los bultos a cobrar $peso0=0; //Numero de paquetes no peques con peso0 $numpeque=0; //Numero de peques que tiene la cesta $numportes2=0; //Numero de paquetes para controlar los bultos a cobrar $numarticulos2=0;//Numero de articulos a cobrar $totallineas=0; //Numero de articulos distintos for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0) { $cantidad = $this->array_cant_prod[$i]; $numpack = $this->array_num_pack[$i]; $precio = $this->array_precio_prod[$i]; $espeque = $this->array_espeque_prod[$i]; $peso = $this->array_peso_prod[$i]; $totallineas = $totallineas +1; //Comprobamos que no tenga peso0 if ($peso > 0) { $numportes=$numportes + ($cantidad * $numpack); } else // Peso0 { if ($espeque <> 1) { $peso0=$peso0 + ($cantidad * $numpack); } } //Comprobamos si es peque... if ($espeque == 1) { $numpeque=$numpeque+1; } else { $numportes2=$numportes2 + ($cantidad * $numpack); $numarticulos2=$numarticulos2 + ($cantidad * $numpack); } } } //Calculos... //Si todos fueran peques trabajamos como si fuera 1 paquete... //La variable todopeque no indica que toda la cesta menos peso0 son peques. if (($numportes2 == 0) and ($numpeque <> 0)) { $numportes2 = 1; $todopeque = 1; } // Todo son Peso 0 PORTES GRATIS if ($numportes2 == 0) { $portes = 0; } else { // Controlamos si hay paquetes con peso0 if ($peso0 > 0) { //Si solo hay 1 articulo o son todo peques if ($numportes2 == 1) { //Si son todo peques lo que queda por calcular no hay portes porque //el resto seran peso0 por lo cual portes gratis if($todopeque <> 1) { $portes = 0; } //Si no, es que nos queda 1 articulo solo en la cesta por cobrar else { //Hay mas de 1 peso0 por lo que solo cobramos la unidad extra if ($peso0 > 1) { $portes=$porte2; } else // 1 articulo solo { $portes=$porte1; } } } // mas de un articulo a parte de los de peso0 se cobran como si fuera segunda unidad else { if ($numportes2 == $peso0) { $portes = 0; } else { $portes=$porte1 + ($porte2 * ($numportes2-1-$peso0)); } } } //No hay peso0 los portes son normales else { //Si todos son peques nos vamos a zona portes... if ($numpeque == $totallineas) { $respuesta= -1; } else { $portes=$porte1 + ($porte2 * ($numportes2 -1)); } } } $respuesta=0; //PROMOCIONES PORTES FIJOS if ($pvpfree == '1') { $tipo_entrega='
    Seleccione la Forma de Pago
      
    '.$texto6.'

    ';} else{$tipo_entrega=$tipo_entrega. 'onclick="javascript:actuacesta(\''.$SwebBase.'/sources/ajax_actuacesta.php\', \'6_'.$rown['id'].'\', \''.$_SESSION["ambcarr"]->num_productos.'\', \'4\' , \'3\', \''.$webImages.'/ajax-loader.gif\');"> TPV en Tienda
    ';} $tipo_entrega=$tipo_entrega.'  
    '.$texto1.'

    ';} else{$tipo_entrega=$tipo_entrega. 'onclick="javascript:actuacesta(\''.$SwebBase.'/sources/ajax_actuacesta.php\', \'1_'.$rown['id'].'\', \''.$_SESSION["ambcarr"]->num_productos.'\', \'4\' , \'3\', \''.$webImages.'/ajax-loader.gif\');"> Transferencia
    ';} $tipo_entrega=$tipo_entrega.'  
    '.$texto5.'

    ';} else{$tipo_entrega=$tipo_entrega. 'onclick="javascript:actuacesta(\''.$SwebBase.'/sources/ajax_actuacesta.php\', \'5_'.$rown['id'].'\', \''.$_SESSION["ambcarr"]->num_productos.'\', \'4\' , \'3\', \''.$webImages.'/ajax-loader.gif\');"> Paypal
    ';} $tipo_entrega=$tipo_entrega.'
    Total    '.number_format(($suma+$gestion), 2, ',', '.').' 
    Total    '.number_format(($suma+$gestion), 2, ',', '.').' 
    Total    '.number_format(($suma+$gestion), 2, ',', '.').' 
    Total    '.number_format(($suma+$gestion), 2, ',', '.').' 
    Total Compra    '.number_format(($suma+$gestion), 2, ',', '.').' 
    Comisión de Pago Paypal    '.number_format(($paypal), 2, ',', '.').' 
    Total    '.number_format(($suma+$gestion+$paypal), 2, ',', '.').' 
     Gastos de Transporte  '.number_format(($imppvpfree), 2, ',', '.').'  1  '.number_format(($imppvpfree), 2, ',', '.').' 

    '; $portes=$imppvpfree; } else { $tipo_entrega='
    Seleccione la Forma de Pago
     Gastos de Transporte  '.number_format(($portes), 2, ',', '.').'  1  '.number_format(($portes), 2, ',', '.').' 

    '; } $tipo_entrega=$tipo_entrega.''; //Si estamos en alguna de nuestras formas de pago mostramos el total y si necesita algun calculo añadido se hace el calculo... if (($pago == '1_4') or ($pago == '2_4') or ($pago == '5_4') or ($pago == '8_4') or ($pago == '9_4')) { if ($pago == '1_4') { $tipo_entrega=$tipo_entrega.' '; } if ($pago == '2_4') { $tipo_entrega=$tipo_entrega.' '; } if ($pago == '5_4') { $tipo_entrega=$tipo_entrega.' '; $paypal = round((($portes+$suma) * ($payper / 100))); if ($paypal < $paymin){$paypal= $paymin;} $tipo_entrega=$tipo_entrega.' '; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '8_4') { $tipo_entrega=$tipo_entrega.' '; } if ($pago == '9_4') { $tipo_entrega=$tipo_entrega.' '; } } } ELSE { $respuesta = -1; } Break; case 5: /***********************************/ // Entrega BSH Directo (Subida a Piso) /***********************************/ //Recorremos los productos para ver si las marcas y disponibilidades son validas $respuesta=0; $piezas=0; $peques=0; $accesorios=0; //$naccesorios=''; for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0) { //Dispo y marca controlamos si podemos salir... if (($this->array_id_disp[$i] == 1) or ($this->array_id_disp[$i] == 2) or ($this->array_id_disp[$i] == 7)) { $respuesta = -1; } if ($this->array_id_dispesp[$i] <> 0) { $respuesta = -1; } if (($this->array_id_marca[$i] <> 29) and ($this->array_id_marca[$i] <> 135) and($this->array_id_marca[$i] <> 158) and($this->array_id_marca[$i] <> 25) and($this->array_id_marca[$i] <> 4)) { $respuesta = -1; } //Vamos a resumir el numero de paquetes por tipo.. if (($this->array_id_marca[$i] == 135) or ($this->array_espeque_prod[$i] == 1)) { if ($this->array_id_marca[$i] == 135) { $accesorios=$accesorios+$this->array_cant_prod[$i]; //$naccesorios=$naccesorios.' - '.$this->array_nombre_prod[$i].'('.$this->array_id_marca[$i].')'; } if (($this->array_espeque_prod[$i] == 1) and ($this->array_id_marca[$i] <> 135)) { $peques=$peques+$this->array_cant_prod[$i]; } } else { $piezas=$piezas+($this->array_num_pack[$i]*$this->array_cant_prod[$i]); } } } //Vammos realizar el calculo de los portes... $consultadir="SELECT * from directos where id_tipo = 5"; $sqldir = $bd->execsql($consultadir); if ($sqlcprown =mysqli_fetch_array($sqldir)) { //Piezas if ($piezas == 1){$pgestion=$sqlcprown['u1'];} if ($piezas == 2){$pgestion=$sqlcprown['u2'];} if ($piezas > 2){$pgestion=$sqlcprown['u3'];} //Peques if ($peques > 0){$pgestion=$pgestion+$sqlcprown['p1'];} } //PROMOCIONES PORTES FIJOS if ($pvpfree == '1') { $tipo_entrega=' '; $portes=$imppvpfree; } else { $tipo_entrega=' '; $portes=$pgestion; } if ($pago == '0_5'){$pago = '1_5';} $tipo_entrega=$tipo_entrega.''; //Si estamos en alguna de nuestras formas de pago mostramos el total y si necesita algun calculo añadido se hace el calculo... if (($pago == '1_5') or ($pago == '5_5') or ($pago == '8_5') or ($pago == '9_5')) { if ($pago == '1_5') { $tipo_entrega=$tipo_entrega.' '; } /*if ($pago == '4_5') { $tipo_entrega=$tipo_entrega.' '; $reembolso = round(($portes+$impdto+$suma)* ($reeper / 100)); if ($reembolso < $reemin){$reembolso= $reemin;} $tipo_entrega=$tipo_entrega.' '; $tipo_entrega=$tipo_entrega.' '; }*/ if ($pago == '5_5') { $tipo_entrega=$tipo_entrega.' '; $paypal = round((($portes+$impdto+$suma+$pgestion) * ($payper / 100))); if ($paypal < $paymin){$paypal= $paymin;} $tipo_entrega=$tipo_entrega.' '; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '8_5') { $tipo_entrega=$tipo_entrega.' '; } if ($pago == '9_5') { $tipo_entrega=$tipo_entrega.' '; } } Break; case 6: /***********************************/ // Punto de recogida Madrid /***********************************/ //Buscamos los gastos de gestion $consulta2='Select * from puntosamb where id = 5'; $idSQL2 = $bd->execSQL($consulta2); $gestion=0; if ( $rown2 = mysqli_fetch_array( $idSQL2 ) ) { $pgestion = $rown2['precio']; } $respuesta=0; //Solo estara disponible si todos los articulos son zona premium... for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0) { if ($this->array_id_dispesp[$i] <> 998){$respuesta = -1;} } } //PROMOCIONES PORTES FIJOS if ($pvpfree == '1') { $tipo_entrega=' '; $portes=$imppvpfree; } else { $tipo_entrega=' '; $portes=$pgestion; } if ($pago == '0_6'){$pago='1_6';} $tipo_entrega=$tipo_entrega.''; //Si estamos en alguna de nuestras formas de pago mostramos el total y si necesita algun calculo añadido se hace el calculo... if (($pago == '1_6') or ($pago == '5_6') or ($pago == '8_6') or ($pago == '9_6')) { if ($pago == '1_6') { $tipo_entrega=$tipo_entrega.' '; } if ($pago == '5_6') { $tipo_entrega=$tipo_entrega.' '; $paypal = round((($gestion+$suma) * ($payper / 100))); if ($paypal < $paymin){$paypal= $paymin;} $tipo_entrega=$tipo_entrega.' '; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '8_6') { $tipo_entrega=$tipo_entrega.' '; } if ($pago == '9_6') { $tipo_entrega=$tipo_entrega.' '; } } Break; case 7: /***********************************/ // Entrega Portes Gratis Madrid (Subida a Piso) /***********************************/ //Recorremos los productos para ver si las marcas y familias son validas $respuesta=0; $piezas=0; $peques=0; $accesorios=0; $cp = substr($cporigen, 0, 2); //$naccesorios=''; //Buscamos primero el codigo postal... if ($cp <> '28') { $respuesta = -1; } for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0) { // //Marca controlamos si podemos salir... // if (($this->array_id_marca[$i] <> 29) and ($this->array_id_marca[$i] <> 25) and ($this->array_id_marca[$i] <> 4)) // { // $respuesta = -1; // } // //Buscamos familia // else // { // //Buscamos los gastos de gestion // $consultap='Select id_sfam from articulos where id = '.$this->array_id_prod[$i].''; // $idSQLp = $bd->execSQL($consultap); // if ( $rownp = mysqli_fetch_array( $idSQLp ) ) // { // //subfamilia conotrol si podemos salir... // if (($rownp['id_sfam'] <> 43) and ($rownp['id_sfam'] <> 46) and ($rownp['id_sfam'] <> 74) and ($rownp['id_sfam'] <> 71) and ($rownp['id_sfam'] <> 72) and ($rownp['id_sfam'] <> 47) and // ($rownp['id_sfam'] <> 44) and ($rownp['id_sfam'] <> 73) and ($rownp['id_sfam'] <> 49) and ($rownp['id_sfam'] <> 54) and ($rownp['id_sfam'] <> 52) and ($rownp['id_sfam'] <> 51)) // { // $respuesta = -1; // } // } // } } } $pgestion=9.90; //PROMOCIONES PORTES FIJOS if ($pvpfree == '1') { $tipo_entrega=' '; $portes=$imppvpfree; } else { $tipo_entrega=' '; $portes=$pgestion; } if ($pago == '0_7'){$pago = '1_7';} $tipo_entrega=$tipo_entrega.''; //Si estamos en alguna de nuestras formas de pago mostramos el total y si necesita algun calculo añadido se hace el calculo... if (($pago == '1_7') or ($pago == '5_7') or ($pago == '8_7') or ($pago == '9_7')) { if ($pago == '1_7') { $tipo_entrega=$tipo_entrega.' '; } /*if ($pago == '4_7') { $tipo_entrega=$tipo_entrega.' '; $reembolso = round(($portes+$impdto+$suma)* ($reeper / 100)); if ($reembolso < $reemin){$reembolso= $reemin;} $tipo_entrega=$tipo_entrega.' '; $tipo_entrega=$tipo_entrega.' '; }*/ if ($pago == '5_7') { $tipo_entrega=$tipo_entrega.' '; $paypal = round((($portes+$impdto+$suma+$pgestion) * ($payper / 100))); if ($paypal < $paymin){$paypal= $paymin;} $tipo_entrega=$tipo_entrega.' '; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '8_7') { $tipo_entrega=$tipo_entrega.' '; } if ($pago == '9_7') { $tipo_entrega=$tipo_entrega.' '; } } Break; case 9: /***********************************/ // Entrega TTM (Subida e instalacion) /***********************************/ //Buscamos si el CP esta en la tabla de provincias (proventrega)... $cp = substr($cporigen, 0, 2); $consultacp="SELECT p.nombre nombre, p.pvp1 pvp1, p.pvp2 pvp2, p.unidades unidades from proventrega p where p.cp = '".$cp."'"; //echo $consultacp; $sqlcp = $bd->execsql($consultacp); if ($sqlcprown =mysqli_fetch_array($sqlcp)) { $porte1=$sqlcprown['pvp1']; $uniportes=$sqlcprown['unidades']; $porte2=$sqlcprown['pvp2']; //De las provincias aceptadas al transporte controlamos que no sea un pueblo sin servicio. $consultanocp="SELECT id from cpnoentrega where cp = '".$cporigen."'"; $sqlcpno = $bd->execsql($consultanocp); if ($sqlcpnorown =mysqli_fetch_array($sqlcpno))// Localidad sin servicio { $respuesta = -1; } else { //Reiniciamos las variables acumulativas $numportes=0; $peso0=0; $numpeque=0; $numportes2=0; $numarticulos=0; $totallineas=0; //Recorremos los productos para saber cuantos normales y cuantos peques tenemos.... for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0) { $cantidad = $this->array_cant_prod[$i]; $numpack = $this->array_num_pack[$i]; $precio = $this->array_precio_prod[$i]; $espeque = $this->array_espeque_prod[$i]; $peso = $this->array_peso_prod[$i]; $totallineas = $totallineas +1; //Comprobamos que no tenga peso0 if ($peso > 0) { $numportes=$numportes + ($cantidad * $numpack); } else // Peso0 { if ($espeque <> 1) { $peso0=$peso0 + ($cantidad * $numpack); } } //Comprobamos si es peque... if ($espeque == 1) { $numpeque=$numpeque+1; } else { $numportes2=$numportes2 + ($cantidad * $numpack); $numarticulos2=$numarticulos2 + ($cantidad * $numpack); } } } //echo '
    Peque: '.$numpeque; //echo '
    Num Portes: '.$numportes; //echo '
    Peso0: '.$peso0; //echo '
    Num. Portes 2(sin peques): '.$numportes2; //echo '
    Num. Articulos: '.$numarticulos; //Calculos... //Si todos fueran peques trabajamos como si fuera 1 paquete... //La variable todopeque no indica que toda la cesta menos peso0 son peques. if (($numportes2 == 0) and ($numpeque <> 0)) { $numportes2 = 1; $todopeque = 1; } // Todo son Peso 0 PORTES GRATIS if ($numportes2 == 0) { $portes = 0; } else { // Controlamos si hay paquetes con peso0 if ($peso0 > 0) { //Si solo hay 1 articulo o son todo peques if ($numportes2 == 1) { //Si son todo peques lo que queda por calcular no hay portes porque //el resto seran peso0 por lo cual portes gratis if($todopeque <> 1) { $portes = 0; //Calculo de los portes para los peques que nos quedan... $cp = substr($cporigen, 0, 2); $consultacp="SELECT p.nombre nombre, p.zona zona from provincias p where p.codigo = '".$cp."'"; //echo $consultacp; $sqlcp = $bd->execsql($consultacp); if ($sqlcprown =mysqli_fetch_array($sqlcp)) { for ($i=0;$i<$this->num_productos;$i++) { if($this->array_id_prod[$i]!=0) { $cantidad = $this->array_cant_prod[$i]; $numpack = $this->array_num_pack[$i]; $precio = $this->array_precio_prod[$i]; $espeque = $this->array_espeque_prod[$i]; $peso = $this->array_peso_prod[$i]; if ($espeque == 1) { $czona="SELECT importe from transportes where zona = ".$sqlcprown['zona']." and desde <= ".$peso." and hasta >= ".$peso." order by importe"; $sqlzona = $bd->execsql($czona); if ($sqlzonar =mysqli_fetch_array($sqlzona)) { $portepeque = $portepeque + ($sqlzonar['importe'] * $cantidad); } } } } } //Fin Calculos portes peques... $portes=$portes+$portepeque; } //Si no, es que nos queda 1 articulo solo en la cesta por cobrar //OJO REVISAR else { //Hay mas de 1 peso0 por lo que solo cobramos la unidad extra //OJO REVISAR if ($peso0 > 1) { $portes=$porte2; } else // 1 articulo solo { $portes=$porte1; } } } // mas de un articulo a parte de los de peso0 se cobran como si fuera segunda unidad else { if ($numportes2 == $peso0) { $portes = 0; //Calculo de los portes para los peques que nos quedan... $cp = substr($cporigen, 0, 2); $consultacp="SELECT p.nombre nombre, p.zona zona from provincias p where p.codigo = '".$cp."'"; //echo $consultacp; $sqlcp = $bd->execsql($consultacp); if ($sqlcprown =mysqli_fetch_array($sqlcp)) { for ($i=0;$i<$this->num_productos;$i++) { if($this->array_id_prod[$i]!=0) { $cantidad = $this->array_cant_prod[$i]; $numpack = $this->array_num_pack[$i]; $precio = $this->array_precio_prod[$i]; $espeque = $this->array_espeque_prod[$i]; $peso = $this->array_peso_prod[$i]; if ($espeque == 1) { $czona="SELECT importe from transportes where zona = ".$sqlcprown['zona']." and desde <= ".$peso." and hasta >= ".$peso." order by importe"; $sqlzona = $bd->execsql($czona); if ($sqlzonar =mysqli_fetch_array($sqlzona)) { $portepeque = $portepeque + ($sqlzonar['importe'] * $cantidad); } } } } } //Fin Calculos portes peques... $portes=$portes+$portepeque; } else { //Calculamos las unidades divisibles... $numero_2=$numportes2-$uniportes; $numero_2=$numero_2-$peso0; if ($numero_2 < 0){$numero_2=0;} $portes=$porte1 + ($porte2 * $numero_2); //Calculo de los portes para los peques que nos quedan... $cp = substr($cporigen, 0, 2); $consultacp="SELECT p.nombre nombre, p.zona zona from provincias p where p.codigo = '".$cp."'"; //echo $consultacp; $sqlcp = $bd->execsql($consultacp); if ($sqlcprown =mysqli_fetch_array($sqlcp)) { for ($i=0;$i<$this->num_productos;$i++) { if($this->array_id_prod[$i]!=0) { $cantidad = $this->array_cant_prod[$i]; $numpack = $this->array_num_pack[$i]; $precio = $this->array_precio_prod[$i]; $espeque = $this->array_espeque_prod[$i]; $peso = $this->array_peso_prod[$i]; if ($espeque == 1) { $czona="SELECT importe from transportes where zona = ".$sqlcprown['zona']." and desde <= ".$peso." and hasta >= ".$peso." order by importe"; $sqlzona = $bd->execsql($czona); if ($sqlzonar =mysqli_fetch_array($sqlzona)) { $portepeque = $portepeque + ($sqlzonar['importe'] * $cantidad); } } } } } //Fin Calculos portes peques... $portes=$portes+$portepeque; } } } //No hay peso0 los portes son normales else { //Si todos son peques nos vamos a zona portes... if ($numpeque == $totallineas) { $subrespuesta= -1; } else { //Portes normales + posibles peques $numero_2=$numportes2-$uniportes; if ($numero_2 < 0){$numero_2=0;} $portes=$porte1 + ($porte2 * ($numero_2)); //Calculo de los portes para los peques que nos quedan... $cp = substr($cporigen, 0, 2); $consultacp="SELECT p.nombre nombre, p.zona zona from provincias p where p.codigo = '".$cp."'"; //echo $consultacp; $sqlcp = $bd->execsql($consultacp); if ($sqlcprown =mysqli_fetch_array($sqlcp)) { for ($i=0;$i<$this->num_productos;$i++) { if($this->array_id_prod[$i]!=0) { $cantidad = $this->array_cant_prod[$i]; $numpack = $this->array_num_pack[$i]; $precio = $this->array_precio_prod[$i]; $espeque = $this->array_espeque_prod[$i]; $peso = $this->array_peso_prod[$i]; if ($espeque == 1) { $czona="SELECT importe from transportes where zona = ".$sqlcprown['zona']." and desde <= ".$peso." and hasta >= ".$peso." order by importe"; $sqlzona = $bd->execsql($czona); if ($sqlzonar =mysqli_fetch_array($sqlzona)) { $portepeque = $portepeque + ($sqlzonar['importe'] * $cantidad); } } } } } //Fin Calculos portes peques... $portes=$portes+$portepeque; } } } $respuesta=0; if ($subrespuesta == -1){$respuesta = -1;} //Aqui empieza la chicha //PROMOCIONES PORTES FIJOS if ($pvpfree == '1') { $tipo_entrega=' '; } else { $tipo_entrega=' '; } } $tipo_entrega=$tipo_entrega.''; //Si estamos en alguna de nuestras formas de pago mostramos el total y si necesita algun calculo añadido se hace el calculo... if (($pago == '1_9') or ($pago == '2_9') or ($pago == '5_9') or ($pago == '8_9') or ($pago == '9_9')) { if ($pago == '1_9') { $tipo_entrega=$tipo_entrega.' '; } if ($pago == '2_9') { $tipo_entrega=$tipo_entrega.' '; $reembolso = round(($portes+$suma)* (1/100)); $tipo_entrega=$tipo_entrega.' '; $pvptotal=$suma+$portes+$reembolso; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '5_9') { $tipo_entrega=$tipo_entrega.' '; $paypal = round((($portes+$suma) * ($payper / 100))); if ($paypal < $paymin){$paypal= $paymin;} $tipo_entrega=$tipo_entrega.' '; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '8_9') { $tipo_entrega=$tipo_entrega.' '; } if ($pago == '9_9') { $tipo_entrega=$tipo_entrega.' '; } } } else // Provincia sin servicio { $respuesta = -1; } Break; } if ($respuesta <> -1) { $zonaactiva=explode('_', $sfp); $zonaactiva=$zonaactiva[1]; //ECHO 'sfp='.$sfp.' Zona:'.$zonaactiva; echo $tipo_entrega; echo'';} echo'
    Seleccione la Forma de Pago
      
    '.$texto1.'

    ';} else{$tipo_entrega=$tipo_entrega. 'onclick="javascript:actuacesta(\''.$SwebBase.'/sources/ajax_actuacesta.php\', \'1_'.$rown['id'].'\', \''.$_SESSION["ambcarr"]->num_productos.'\', \'4\' , \'3\', \''.$webImages.'/ajax-loader.gif\');" > Transferencia
    ';} $tipo_entrega=$tipo_entrega.'  
    '.$texto2.'

    ';} else{$tipo_entrega=$tipo_entrega. 'onclick="javascript:actuacesta(\''.$SwebBase.'/sources/ajax_actuacesta.php\', \'2_'.$rown['id'].'\', \''.$_SESSION["ambcarr"]->num_productos.'\', \'4\' , \'3\', \''.$webImages.'/ajax-loader.gif\');" > Pago a la Entrega
    ';} $tipo_entrega=$tipo_entrega.'  
    '.$texto5.'

    ';} else{$tipo_entrega=$tipo_entrega. 'onclick="javascript:actuacesta(\''.$SwebBase.'/sources/ajax_actuacesta.php\', \'5_'.$rown['id'].'\', \''.$_SESSION["ambcarr"]->num_productos.'\', \'4\' , \'3\', \''.$webImages.'/ajax-loader.gif\');" > Paypal
    ';} $tipo_entrega=$tipo_entrega.'  
    '.$texto8.'

    ';} else{$tipo_entrega=$tipo_entrega. 'onclick="javascript:actuacesta(\''.$SwebBase.'/sources/ajax_actuacesta.php\', \'8_'.$rown['id'].'\', \''.$_SESSION["ambcarr"]->num_productos.'\', \'4\' , \'3\', \''.$webImages.'/ajax-loader.gif\');" > TPV VIRTUAL (Tarjeta de Crédito)
    ';} $tipo_entrega=$tipo_entrega.'  
    '.$texto9.'

    ';} else{$tipo_entrega=$tipo_entrega. 'onclick="javascript:actuacesta(\''.$SwebBase.'/sources/ajax_actuacesta.php\', \'9_'.$rown['id'].'\', \''.$_SESSION["ambcarr"]->num_productos.'\', \'4\' , \'3\', \''.$webImages.'/ajax-loader.gif\');" > Financiación en 6, 12 y 18 meses (Cetelem)
    ';} $tipo_entrega=$tipo_entrega.'
    Total    '.number_format(($suma+$portes), 2, ',', '.').' 
    Total    '.number_format(($suma+$portes), 2, ',', '.').' 
    Total Compra    '.number_format(($suma+$portes), 2, ',', '.').' 
    Comisión de Pago Paypal    '.number_format(($paypal), 2, ',', '.').' 
    Total    '.number_format(($suma+$portes+$paypal), 2, ',', '.').' 
    Total    '.number_format(($suma+$portes), 2, ',', '.').' 
    Total    '.number_format(($suma+$portes), 2, ',', '.').' 
     Gastos Gestión Entrega  '.number_format(($imppvpfree), 2, ',', '.').'  1  '.number_format(($imppvpfree), 2, ',', '.').' 
     Gastos Gestión Entrega  '.number_format(($pgestion), 2, ',', '.').'  1  '.number_format(($pgestion), 2, ',', '.').' 
      
    '.$texto1.'

    ';} else{$tipo_entrega=$tipo_entrega. 'onclick="javascript:actuacesta(\''.$SwebBase.'/sources/ajax_actuacesta.php\', \'1_'.$rown['id'].'\', \''.$_SESSION["ambcarr"]->num_productos.'\', \'4\' , \'3\', \''.$webImages.'/ajax-loader.gif\');"> Transferencia
    ';} /*$tipo_entrega=$tipo_entrega.'  
    '.$texto4.'

    ';} else{$tipo_entrega=$tipo_entrega. 'onclick="javascript:actuacesta(\''.$SwebBase.'/sources/ajax_actuacesta.php\', \'4_'.$rown['id'].'\', \''.$_SESSION["ambcarr"]->num_productos.'\', \'4\' , \'3\', \''.$webImages.'/ajax-loader.gif\');" > Reembolso
    ';}*/ $tipo_entrega=$tipo_entrega.'  
    '.$texto5.'

    ';} else{$tipo_entrega=$tipo_entrega. 'onclick="javascript:actuacesta(\''.$SwebBase.'/sources/ajax_actuacesta.php\', \'5_'.$rown['id'].'\', \''.$_SESSION["ambcarr"]->num_productos.'\', \'4\' , \'3\', \''.$webImages.'/ajax-loader.gif\');" > Paypal
    ';} $tipo_entrega=$tipo_entrega.'  
    '.$texto8.'

    ';} else{$tipo_entrega=$tipo_entrega. 'onclick="javascript:actuacesta(\''.$SwebBase.'/sources/ajax_actuacesta.php\', \'8_'.$rown['id'].'\', \''.$_SESSION["ambcarr"]->num_productos.'\', \'4\' , \'3\', \''.$webImages.'/ajax-loader.gif\');" > TPV VIRTUAL (Tarjeta de Crédito)
    ';} $tipo_entrega=$tipo_entrega.'  
    '.$texto9.'

    ';} else{$tipo_entrega=$tipo_entrega. 'onclick="javascript:actuacesta(\''.$SwebBase.'/sources/ajax_actuacesta.php\', \'9_'.$rown['id'].'\', \''.$_SESSION["ambcarr"]->num_productos.'\', \'4\' , \'3\', \''.$webImages.'/ajax-loader.gif\');" > Financiación en 6, 12 y 18 meses (Cetelem)
    ';} $tipo_entrega=$tipo_entrega.'
    Total    '.number_format(($suma+$pgestion), 2, ',', '.').' 
    Total Compra '.number_format(($suma+$gpeso), 2, ',', '.').'
    Comisión de Reembolso '.number_format(($reembolso), 2, ',', '.').'
    Total '.number_format(($suma+$gpeso+$reembolso), 2, ',', '.').'
    Total Compra    '.number_format(($suma+$pgestion), 2, ',', '.').' 
    Comisión de Pago Paypal    '.number_format(($paypal), 2, ',', '.').' 
    Total    '.number_format(($suma+$pgestion+$paypal), 2, ',', '.').' 
    Total    '.number_format(($suma+$pgestion), 2, ',', '.').' 
    Total    '.number_format(($suma+$pgestion), 2, ',', '.').' 
     Gastos Gestión Entrega  '.number_format(($imppvpfree), 2, ',', '.').'  1  '.number_format(($imppvpfree), 2, ',', '.').' 
     Gastos Gestión Entrega  '.number_format(($pgestion), 2, ',', '.').'  1  '.number_format(($pgestion), 2, ',', '.').' 
      
    '.$texto1.'

    ';} else{$tipo_entrega=$tipo_entrega. 'onclick="javascript:actuacesta(\''.$SwebBase.'/sources/ajax_actuacesta.php\', \'1_'.$rown['id'].'\', \''.$_SESSION["ambcarr"]->num_productos.'\', \'4\' , \'3\', \''.$webImages.'/ajax-loader.gif\');"> Transferencia
    ';} $tipo_entrega=$tipo_entrega.'  
    '.$texto5.'

    ';} else{$tipo_entrega=$tipo_entrega. 'onclick="javascript:actuacesta(\''.$SwebBase.'/sources/ajax_actuacesta.php\', \'5_'.$rown['id'].'\', \''.$_SESSION["ambcarr"]->num_productos.'\', \'4\' , \'3\', \''.$webImages.'/ajax-loader.gif\');"> Paypal
    ';} $tipo_entrega=$tipo_entrega.'  
    '.$texto8.'

    ';} else{$tipo_entrega=$tipo_entrega. 'onclick="javascript:actuacesta(\''.$SwebBase.'/sources/ajax_actuacesta.php\', \'8_'.$rown['id'].'\', \''.$_SESSION["ambcarr"]->num_productos.'\', \'4\' , \'3\', \''.$webImages.'/ajax-loader.gif\');"> TPV VIRTUAL (Tarjeta de Crédito)
    ';} $tipo_entrega=$tipo_entrega.'  
    '.$texto9.'

    ';} else{$tipo_entrega=$tipo_entrega. 'onclick="javascript:actuacesta(\''.$SwebBase.'/sources/ajax_actuacesta.php\', \'9_'.$rown['id'].'\', \''.$_SESSION["ambcarr"]->num_productos.'\', \'4\' , \'3\', \''.$webImages.'/ajax-loader.gif\');"> Financiación en 6, 12 y 18 meses (Cetelem)
    ';} $tipo_entrega=$tipo_entrega.'
    Total    '.number_format(($suma+$gestion), 2, ',', '.').' 
    Total Compra    '.number_format(($suma+$gestion), 2, ',', '.').' 
    Comisión de Pago Paypal    '.number_format(($paypal), 2, ',', '.').' 
    Total    '.number_format(($suma+$gestion+$paypal), 2, ',', '.').' 
    Total    '.number_format(($suma+$gestion), 2, ',', '.').' 
    Total    '.number_format(($suma+$gestion), 2, ',', '.').' 
     Gastos Gestión Entrega  '.number_format(($imppvpfree), 2, ',', '.').'  1  '.number_format(($imppvpfree), 2, ',', '.').' 
     Gastos Gestión Entrega  '.number_format(($pgestion), 2, ',', '.').'  1  '.number_format(($pgestion), 2, ',', '.').' 
      
    '.$texto1.'

    ';} else{$tipo_entrega=$tipo_entrega. 'onclick="javascript:actuacesta(\''.$SwebBase.'/sources/ajax_actuacesta.php\', \'1_'.$rown['id'].'\', \''.$_SESSION["ambcarr"]->num_productos.'\', \'4\' , \'3\', \''.$webImages.'/ajax-loader.gif\');"> Transferencia
    ';} /*$tipo_entrega=$tipo_entrega.'  
    '.$texto4.'

    ';} else{$tipo_entrega=$tipo_entrega. 'onclick="javascript:actuacesta(\''.$SwebBase.'/sources/ajax_actuacesta.php\', \'4_'.$rown['id'].'\', \''.$_SESSION["ambcarr"]->num_productos.'\', \'4\' , \'3\', \''.$webImages.'/ajax-loader.gif\');" > Reembolso
    ';}*/ $tipo_entrega=$tipo_entrega.'  
    '.$texto5.'

    ';} else{$tipo_entrega=$tipo_entrega. 'onclick="javascript:actuacesta(\''.$SwebBase.'/sources/ajax_actuacesta.php\', \'5_'.$rown['id'].'\', \''.$_SESSION["ambcarr"]->num_productos.'\', \'4\' , \'3\', \''.$webImages.'/ajax-loader.gif\');" > Paypal
    ';} $tipo_entrega=$tipo_entrega.'  
    '.$texto8.'

    ';} else{$tipo_entrega=$tipo_entrega. 'onclick="javascript:actuacesta(\''.$SwebBase.'/sources/ajax_actuacesta.php\', \'8_'.$rown['id'].'\', \''.$_SESSION["ambcarr"]->num_productos.'\', \'4\' , \'3\', \''.$webImages.'/ajax-loader.gif\');" > TPV VIRTUAL (Tarjeta de Crédito)
    ';} $tipo_entrega=$tipo_entrega.'  
    '.$texto9.'

    ';} else{$tipo_entrega=$tipo_entrega. 'onclick="javascript:actuacesta(\''.$SwebBase.'/sources/ajax_actuacesta.php\', \'9_'.$rown['id'].'\', \''.$_SESSION["ambcarr"]->num_productos.'\', \'4\' , \'3\', \''.$webImages.'/ajax-loader.gif\');" > Financiación en 6, 12 y 18 meses (Cetelem)
    ';} $tipo_entrega=$tipo_entrega.'
    Total    '.number_format(($suma+$pgestion), 2, ',', '.').' 
    Total Compra '.number_format(($suma+$gpeso), 2, ',', '.').'
    Comisión de Reembolso '.number_format(($reembolso), 2, ',', '.').'
    Total '.number_format(($suma+$gpeso+$reembolso), 2, ',', '.').'
    Total Compra    '.number_format(($suma+$pgestion), 2, ',', '.').' 
    Comisión de Pago Paypal    '.number_format(($paypal), 2, ',', '.').' 
    Total    '.number_format(($suma+$pgestion+$paypal), 2, ',', '.').' 
    Total    '.number_format(($suma+$pgestion), 2, ',', '.').' 
    Total    '.number_format(($suma+$pgestion), 2, ',', '.').' 
     Entrega, subida e instalación  '.number_format(($imppvpfree), 2, ',', '.').'  1  '.number_format(($imppvpfree), 2, ',', '.').' 
     Entrega, subida e instalación  '.number_format(($portes), 2, ',', '.').'  1  '.number_format(($portes), 2, ',', '.').' 
      
    '.$texto1.'

    ';} else{$tipo_entrega=$tipo_entrega. 'onclick="javascript:actuacesta(\''.$SwebBase.'/sources/ajax_actuacesta.php\', \'1_'.$rown['id'].'\', \''.$_SESSION["ambcarr"]->num_productos.'\', \'4\' , \'3\', \''.$webImages.'/ajax-loader.gif\');" > Transferencia
    ';} $tipo_entrega=$tipo_entrega.'  
    '.$texto2.'

    ';} else{$tipo_entrega=$tipo_entrega. 'onclick="javascript:actuacesta(\''.$SwebBase.'/sources/ajax_actuacesta.php\', \'2_'.$rown['id'].'\', \''.$_SESSION["ambcarr"]->num_productos.'\', \'4\' , \'3\', \''.$webImages.'/ajax-loader.gif\');" > Pago a la Entrega
    ';} $tipo_entrega=$tipo_entrega.'  
    '.$texto5.'

    ';} else{$tipo_entrega=$tipo_entrega. 'onclick="javascript:actuacesta(\''.$SwebBase.'/sources/ajax_actuacesta.php\', \'5_'.$rown['id'].'\', \''.$_SESSION["ambcarr"]->num_productos.'\', \'4\' , \'3\', \''.$webImages.'/ajax-loader.gif\');" > Paypal
    ';} $tipo_entrega=$tipo_entrega.'  
    '.$texto8.'

    ';} else{$tipo_entrega=$tipo_entrega. 'onclick="javascript:actuacesta(\''.$SwebBase.'/sources/ajax_actuacesta.php\', \'8_'.$rown['id'].'\', \''.$_SESSION["ambcarr"]->num_productos.'\', \'4\' , \'3\', \''.$webImages.'/ajax-loader.gif\');" > TPV VIRTUAL (Tarjeta de Crédito)
    ';} $tipo_entrega=$tipo_entrega.'  
    '.$texto9.'

    ';} else{$tipo_entrega=$tipo_entrega. 'onclick="javascript:actuacesta(\''.$SwebBase.'/sources/ajax_actuacesta.php\', \'9_'.$rown['id'].'\', \''.$_SESSION["ambcarr"]->num_productos.'\', \'4\' , \'3\', \''.$webImages.'/ajax-loader.gif\');" > Financiación en 6, 12 y 18 meses (Cetelem)
    ';} $tipo_entrega=$tipo_entrega.'
    Total    '.number_format(($suma+$portes), 2, ',', '.').' 
    Total Compra    '.number_format(($suma+$portes), 2, ',', '.').' 
    Comisión de Reembolso    '.number_format(($reembolso), 2, ',', '.').' 
    Total    '.number_format(($suma+$portes+$reembolso), 2, ',', '.').' 
    Total Compra    '.number_format(($suma+$portes), 2, ',', '.').' 
    Comisión de Pago Paypal    '.number_format(($paypal), 2, ',', '.').' 
    Total    '.number_format(($suma+$portes+$paypal), 2, ',', '.').' 
    Total    '.number_format(($suma+$portes), 2, ',', '.').' 
    Total    '.number_format(($suma+$portes), 2, ',', '.').' 
    '.$textoz.'

    '; } /***********************************************/ ////AQUI TERMINAN TODAS LAS FORMAS DE ENTREGA.... /***********************************************/ echo''; } else { echo'
    LA CESTA ESTA VACIA
    '; } echo'
    Seguir Comprando
    '; } function imprime_carrito3($webImages, $SwebBase, $webBase, $cp, $bd, $pago, $puntoamb, $paso, $id, $dtoporte, $paymin, $payper, $reemin, $reeper, $objParse, $pvpfree, $imppvpfree){ $cporigen = $cp; $numero=0; for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0){$numero++;} } if ($numero > 0) { $suma = 0; // Asistente 4 echo'
    Paso 1 Paso 2 Paso 3 Paso 4 Paso 5 Paso 6
    Resumen Compra

    '; echo''; echo' '; $x=0; $suma=0; $numarticulos=0; for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0){ //Variables de trabajo $cantidad = $this->array_cant_prod[$i]; $numpack = $this->array_num_pack[$i]; $precio = $this->array_precio_prod[$i]; $espeque = $this->array_espeque_prod[$i]; $peso = $this->array_peso_prod[$i]; $numarticulos = $numarticulos + ($cantidad * $numpack); $importe = $cantidad * $precio; echo''; $x++; $suma += $importe; } } //echo' // // //'; //echo' //'; $zonaactiva=explode('_', $pago); $zonaactiva=$zonaactiva[1]; /***********************************************/ /////AQUI EMPIEZAN TODAS LAS FORMAS DE ENTREGA... /***********************************************/ //Primero buscaremos la forma de entrega seleccionada... $consulta='Select * from tipos_entrega where activo = 1 and id = '.$zonaactiva.' order by pos'; $idSQL = $bd->execSQL($consulta); while ( $rown = mysqli_fetch_array( $idSQL ) ) { //Textos para cada cosa. $textoz=$rown['TEXTOZONA']; $texto1=$rown['TRANSFERENCIA']; $texto2=$rown['PAGOENTREGA']; $texto3=$rown['EFECTIVOTIENDA']; $texto4=$rown['REEMBOLSO']; $texto5=$rown['PAYPAL']; $texto6=$rown['TPVTIENDA']; $texto7=$rown['FINANCIA']; $texto8=$rown['TPVONLINE']; $texto9=$rown['PAGOPLAZOS']; //Calculos para cada tipo de forma de entrega... $respuesta = -1; $tipo_entrega= ''; switch ($rown['id']) { case 1: /***********************************/ //Empresa normal de transporte /***********************************/ //Buscamos si el CP esta en la tabla de provincias... //Buscamos si el CP esta en la tabla de provincias... $cp = substr($cporigen, 0, 2); $cpok=0; $consultacp="SELECT p.nombre nombre, p.zona zona from provincias p where p.codigo = '".$cp."' and zona > 0"; //echo $consultacp; $sqlcp = $bd->execsql($consultacp); if ($sqlcprown =mysqli_fetch_array($sqlcp)) { $cpok = 1; $zonasel=$sqlcprown['zona']; } else { //Buscamos si el pueblo esta en los cp permitidos (pueblos baleares) $csueltos="SELECT p.nombre nombre, p.zona zona from cpsueltos p where p.cp = '".$cporigen."'"; //echo $csueltos; $sqlcps = $bd->execsql($csueltos); if ($sqlcprowns =mysqli_fetch_array($sqlcps)) { $cpok = 1; $zonasel=$sqlcprowns['zona']; } } IF ($cpok == 1) { //Si es zona 0 (tampoco se envian paquetes a estas hubicaciones... if ($zonasel == 0) { $respuesta = -1; } else { $gpeso=0; //Calculamos el importe individual de cada articulo y lo sumamos al final... for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0) { //Variables de trabajo $cantidad = $this->array_cant_prod[$i]; $peso = $this->array_peso_prod[$i]; $czona="SELECT importe from transportes where zona = ".$zonasel." and desde <= ".$peso." and hasta >= ".$peso." order by importe"; $sqlzona = $bd->execsql($czona); if ($sqlzonar =mysqli_fetch_array($sqlzona)) { $gpeso = $gpeso + ($sqlzonar['importe'] * $cantidad); } } } $respuesta=0; //PROMOCIONES PORTES FIJOS if ($pvpfree == '1') { $tipo_entrega=' Gastos de Transporte  '.number_format(($imppvpfree), 2, ',', '.').'
    '; $portes=$imppvpfree; $gpeso=$imppvpfree; } else { $tipo_entrega='
    '; $portes=$gpeso; } if ($pago == '0_1'){$pago = '1_1';} $tipo_entrega=$tipo_entrega.''; //Si estamos en alguna de nuestras formas de pago mostramos el total y si necesita algun calculo añadido se hace el calculo... if (($pago == '1_1') or ($pago == '4_1') or ($pago == '5_1') or ($pago == '8_1') or ($pago == '9_1')) { if ($pago == '1_1') { $pvptotal=$suma+$gpeso; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '4_1') { $tipo_entrega=$tipo_entrega.' '; $reembolso = round(($portes+$impdto+$suma)* ($reeper / 100)); if ($reembolso < $reemin){$reembolso= $reemin;} $tipo_entrega=$tipo_entrega.' '; $pvptotal=$suma+$gpeso+$reembolso; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '5_1') { $tipo_entrega=$tipo_entrega.' '; $paypal = round((($portes+$impdto+$suma) * ($payper / 100))); if ($paypal < $paymin){$paypal= $paymin;} $tipo_entrega=$tipo_entrega.' '; $pvptotal=$suma+$gpeso+$paypal; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '8_1') { $pvptotal=$suma+$gpeso; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '9_1') { $pvptotal=$suma+$gpeso; $tipo_entrega=$tipo_entrega.' '; } } } } ELSE { $respuesta = -1; } Break; case 2: /***********************************/ // Punto de recogida Terrassa /***********************************/ //Buscamos los gastos de gestion $consulta2='Select * from puntosamb where id = 1'; $idSQL2 = $bd->execSQL($consulta2); $gestion=0; if ( $rown2 = mysqli_fetch_array( $idSQL2 ) ) { $gestion = $rown2['precio']; } $respuesta=0; //PROMOCIONES PORTES FIJOS if ($pvpfree == '1') { if ($imppvpfree < $gestion) { $gestion=$imppvpfree; } $tipo_entrega='
    '; $portes=$imppvpfree; } else { $tipo_entrega='
    '; $portes=$gestion; } if ($pago == '0_2'){$pago = '3_2';} $tipo_entrega=$tipo_entrega.''; //Si estamos en alguna de nuestras formas de pago mostramos el total y si necesita algun calculo añadido se hace el calculo... if (($pago == '3_2') or ($pago == '6_2') or ($pago == '1_2') or ($pago == '5_2') or ($pago == '7_2') or ($pago == '8_2') or ($pago == '9_2')) { if ($pago == '3_2') { $pvptotal=$suma+$gestion; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '6_2') { $pvptotal=$suma+$gestion; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '1_2') { $pvptotal=$suma+$gestion; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '5_2') { $tipo_entrega=$tipo_entrega.' '; $paypal = round((($gestion+$suma) * ($payper / 100))); if ($paypal < $paymin){$paypal= $paymin;} $tipo_entrega=$tipo_entrega.' '; $pvptotal=$suma+$gestion+$paypal; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '7_2') { $pvptotal=$suma+$gestion; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '8_2') { $pvptotal=$suma+$gestion; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '9_2') { $pvptotal=$suma+$gestion; $tipo_entrega=$tipo_entrega.' '; } } Break; case 3: /***********************************/ // Punto de recogida Valencia /***********************************/ //Buscamos los gastos de gestion $consulta2='Select * from puntosamb where id = 4'; $idSQL2 = $bd->execSQL($consulta2); $gestion=0; if ( $rown2 = mysqli_fetch_array( $idSQL2 ) ) { $pgestion = $rown2['precio']; $gestion = $rown2['precio'] * $numarticulos; } $respuesta=0; //PROMOCIONES PORTES FIJOS if ($pvpfree == '1') { $tipo_entrega='
    '; $portes=$imppvpfree; } else { $tipo_entrega='
    '; $portes=$gestion; } if ($pago == '0_3'){$pago='1_3';} $tipo_entrega=$tipo_entrega.''; //Si estamos en alguna de nuestras formas de pago mostramos el total y si necesita algun calculo añadido se hace el calculo... if (($pago == '6_3') or ($pago == '1_3') or ($pago == '5_3') or ($pago == '8_3') or ($pago == '9_3')) { if ($pago == '6_3') { $pvptotal=$suma+$gestion; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '8_3') { $pvptotal=$suma+$gestion; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '9_3') { $pvptotal=$suma+$gestion; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '1_3') { $pvptotal=$suma+$gestion; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '5_3') { $tipo_entrega=$tipo_entrega.' '; $paypal = round((($gestion+$suma) * ($payper / 100))); if ($paypal < $paymin){$paypal= $paymin;} $tipo_entrega=$tipo_entrega.' '; $pvptotal=$suma+$gestion+$paypal; $tipo_entrega=$tipo_entrega.' '; } } Break; case 4: /***********************************/ //ZONA PIEZA BARCELONA /***********************************/ //Buscamos si el CP esta en la tabla de pueblos $consultacp="SELECT p.nombre, p.tipo, t.pvp1, t.pvp2 from pueblos p left outer join transpueblos t on t.tipo = p.tipo where p.cp = '".$cporigen."' and p.zona = 0 order by t.pvp1"; $sqlcp = $bd->execsql($consultacp); if ($sqlcprown =mysqli_fetch_array($sqlcp)) { //Valores a cobrar $porte1=$sqlcprown['pvp1']; $porte2=$sqlcprown['pvp2']; //Separamos articulos por tipos para saber el importe del porte... $todopeque=0;//Controlaremos si toda la cesta son peques $numportes=0; //Numero de paquetes para contar los bultos a cobrar $peso0=0; //Numero de paquetes no peques con peso0 $numpeque=0; //Numero de peques que tiene la cesta $numportes2=0; //Numero de paquetes para controlar los bultos a cobrar $numarticulos2=0;//Numero de articulos a cobrar $totallineas=0; //Numero de articulos distintos for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0) { $cantidad = $this->array_cant_prod[$i]; $numpack = $this->array_num_pack[$i]; $precio = $this->array_precio_prod[$i]; $espeque = $this->array_espeque_prod[$i]; $peso = $this->array_peso_prod[$i]; $totallineas = $totallineas +1; //Comprobamos que no tenga peso0 if ($peso > 0) { $numportes=$numportes + ($cantidad * $numpack); } else // Peso0 { if ($espeque <> 1) { $peso0=$peso0 + ($cantidad * $numpack); } } //Comprobamos si es peque... if ($espeque == 1) { $numpeque=$numpeque+1; } else { $numportes2=$numportes2 + ($cantidad * $numpack); $numarticulos2=$numarticulos2 + ($cantidad * $numpack); } } } //Calculos... //Si todos fueran peques trabajamos como si fuera 1 paquete... //La variable todopeque no indica que toda la cesta menos peso0 son peques. if (($numportes2 == 0) and ($numpeque <> 0)) { $numportes2 = 1; $todopeque = 1; } // Todo son Peso 0 PORTES GRATIS if ($numportes2 == 0) { $portes = 0; } else { // Controlamos si hay paquetes con peso0 if ($peso0 > 0) { //Si solo hay 1 articulo o son todo peques if ($numportes2 == 1) { //Si son todo peques lo que queda por calcular no hay portes porque //el resto seran peso0 por lo cual portes gratis if($todopeque <> 1) { $portes = 0; } //Si no, es que nos queda 1 articulo solo en la cesta por cobrar else { //Hay mas de 1 peso0 por lo que solo cobramos la unidad extra if ($peso0 > 1) { $portes=$porte2; } else // 1 articulo solo { $portes=$porte1; } } } // mas de un articulo a parte de los de peso0 se cobran como si fuera segunda unidad else { if ($numportes2 == $peso0) { $portes = 0; } else { $portes=$porte1 + ($porte2 * ($numportes2-1-$peso0)); } } } //No hay peso0 los portes son normales else { //Si todos son peques nos vamos a zona portes... if ($numpeque == $totallineas) { $subrespuesta= -1; } else { $portes=$porte1 + ($porte2 * ($numportes2 -1)); } } } $respuesta=0; if ($subrespuesta == -1){$respuesta = -1;} //PROMOCIONES PORTES FIJOS if ($pvpfree == '1') { $tipo_entrega='
    '; $portes=$imppvpfree; } else { $tipo_entrega='
    '; } $tipo_entrega=$tipo_entrega.''; //Si estamos en alguna de nuestras formas de pago mostramos el total y si necesita algun calculo añadido se hace el calculo... if (($pago == '1_4') or ($pago == '2_4') or ($pago == '5_4') or ($pago == '8_4') or ($pago == '9_4')) { if ($pago == '1_4') { $pvptotal=$suma+$portes; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '2_4') { $pvptotal=$suma+$portes; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '5_4') { $tipo_entrega=$tipo_entrega.' '; $paypal = round((($portes+$suma) * ($payper / 100))); if ($paypal < $paymin){$paypal= $paymin;} $tipo_entrega=$tipo_entrega.' '; $pvptotal=$suma+$portes+$paypal; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '8_4') { $pvptotal=$suma+$portes; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '9_4') { $pvptotal=$suma+$portes; $tipo_entrega=$tipo_entrega.' '; } } } ELSE { $respuesta = -1; } Break; case 5: /***********************************/ // Entrega BSH Directo (Subida a Piso) /***********************************/ //Recorremos los productos para ver si las marcas y disponibilidades son validas $respuesta=0; $piezas=0; $peques=0; $accesorios=0; //$naccesorios=''; for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0) { //Dispo y marca controlamos si podemos salir... if (($this->array_id_disp[$i] == 1) or ($this->array_id_disp[$i] == 2) or ($this->array_id_disp[$i] == 7)) { $respuesta = -1; } if ($this->array_id_dispesp[$i] <> 0) { $respuesta = -1; } if (($this->array_id_marca[$i] <> 29) and ($this->array_id_marca[$i] <> 135) and($this->array_id_marca[$i] <> 158) and($this->array_id_marca[$i] <> 25) and($this->array_id_marca[$i] <> 4)) { $respuesta = -1; } //Vamos a resumir el numero de paquetes por tipo.. if (($this->array_id_marca[$i] == 135) or ($this->array_espeque_prod[$i] == 1)) { if ($this->array_id_marca[$i] == 135) { $accesorios=$accesorios+$this->array_cant_prod[$i]; //$naccesorios=$naccesorios.' - '.$this->array_nombre_prod[$i].'('.$this->array_id_marca[$i].')'; } if (($this->array_espeque_prod[$i] == 1) and ($this->array_id_marca[$i] <> 135)) { $peques=$peques+$this->array_cant_prod[$i]; } } else { $piezas=$piezas+($this->array_num_pack[$i]*$this->array_cant_prod[$i]); } } } //Vammos realizar el calculo de los portes... $consultadir="SELECT * from directos where id_tipo = 5"; $sqldir = $bd->execsql($consultadir); if ($sqlcprown =mysqli_fetch_array($sqldir)) { //Piezas if ($piezas == 1){$pgestion=$sqlcprown['u1'];} if ($piezas == 2){$pgestion=$sqlcprown['u2'];} if ($piezas > 2){$pgestion=$sqlcprown['u3'];} //Peques if ($peques > 0){$pgestion=$pgestion+$sqlcprown['p1'];} } $gestion=$pgestion; //PROMOCIONES PORTES FIJOS if ($pvpfree == '1') { $tipo_entrega=' '; $portes=$imppvpfree; } else { $tipo_entrega=' '; $portes=$pgestion; } if ($pago == '0_5'){$pago = '1_5';} $tipo_entrega=$tipo_entrega.''; //Si estamos en alguna de nuestras formas de pago mostramos el total y si necesita algun calculo añadido se hace el calculo... if (($pago == '1_5') or ($pago == '4_5') or ($pago == '5_5') or ($pago == '8_5') or ($pago == '9_5')) { if ($pago == '1_5') { $pvptotal=$suma+$pgestion; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '5_5') { $tipo_entrega=$tipo_entrega.' '; $paypal = round((($suma+$pgestion) * ($payper / 100))); if ($paypal < $paymin){$paypal= $paymin;} $tipo_entrega=$tipo_entrega.' '; $pvptotal=$suma+$pgestion+$paypal; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '8_5') { $pvptotal=$suma+$pgestion; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '9_5') { $pvptotal=$suma+$pgestion; $tipo_entrega=$tipo_entrega.' '; } } Break; case 6: /***********************************/ // Punto de recogida Madrid /***********************************/ //Buscamos los gastos de gestion $consulta2='Select * from puntosamb where id = 5'; $idSQL2 = $bd->execSQL($consulta2); $gestion=0; if ( $rown2 = mysqli_fetch_array( $idSQL2 ) ) { $gestion = $rown2['precio']; } $respuesta=0; //Solo estara disponible si todos los articulos son zona premium... for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0) { if ($this->array_id_dispesp[$i] <> 998){$respuesta = -1;} } } //PROMOCIONES PORTES FIJOS if ($pvpfree == '1') { $tipo_entrega=' '; $portes=$imppvpfree; } else { $tipo_entrega=' '; $portes=$gestion; } if ($pago == '0_6'){$pago='1_6';} $tipo_entrega=$tipo_entrega.''; //Si estamos en alguna de nuestras formas de pago mostramos el total y si necesita algun calculo añadido se hace el calculo... if (($pago == '1_6') or ($pago == '5_6') or ($pago == '8_6') or ($pago == '9_6')) { if ($pago == '1_6') { $pvptotal=$suma+$gestion; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '5_6') { $tipo_entrega=$tipo_entrega.' '; $paypal = round((($gestion+$suma) * ($payper / 100))); if ($paypal < $paymin){$paypal= $paymin;} $tipo_entrega=$tipo_entrega.' '; $pvptotal=$suma+$gestion+$paypal; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '8_6') { $pvptotal=$suma+$gestion; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '9_6') { $pvptotal=$suma+$gestion; $tipo_entrega=$tipo_entrega.' '; } } Break; case 7: /***********************************/ // Entrega Portes Gratis Madrid (Subida a Piso) /***********************************/ //Recorremos los productos para ver si las marcas y familias son validas $respuesta=0; $piezas=0; $peques=0; $accesorios=0; $cp = substr($cporigen, 0, 2); //$naccesorios=''; //Buscamos primero el codigo postal... if ($cp <> '28') { $respuesta = -1; } for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0) { //Marca controlamos si podemos salir... // if (($this->array_id_marca[$i] <> 29) and ($this->array_id_marca[$i] <> 25) and ($this->array_id_marca[$i] <> 4)) // { // $respuesta = -1; // } // //Buscamos familia // else // { // //Buscamos los gastos de gestion // $consultap='Select id_sfam from articulos where id = '.$this->array_id_prod[$i].''; // $idSQLp = $bd->execSQL($consultap); // if ( $rownp = mysqli_fetch_array( $idSQLp ) ) // { // //subfamilia conotrol si podemos salir... // if (($rownp['id_sfam'] <> 43) and ($rownp['id_sfam'] <> 46) and ($rownp['id_sfam'] <> 74) and ($rownp['id_sfam'] <> 71) and ($rownp['id_sfam'] <> 72) and ($rownp['id_sfam'] <> 47) and // ($rownp['id_sfam'] <> 44) and ($rownp['id_sfam'] <> 73) and ($rownp['id_sfam'] <> 49) and ($rownp['id_sfam'] <> 54) and ($rownp['id_sfam'] <> 52) and ($rownp['id_sfam'] <> 51)) // { // $respuesta = -1; // } // } // } } } $pgestion=9.90; //PROMOCIONES PORTES FIJOS if ($pvpfree == '1') { $tipo_entrega=' '; $portes=$imppvpfree; } else { $tipo_entrega=' '; $portes=$pgestion; } if ($pago == '0_7'){$pago = '1_7';} $tipo_entrega=$tipo_entrega.''; //Si estamos en alguna de nuestras formas de pago mostramos el total y si necesita algun calculo añadido se hace el calculo... if (($pago == '1_7') or ($pago == '4_7') or ($pago == '5_7') or ($pago == '8_7') or ($pago == '9_7')) { if ($pago == '1_7') { $pvptotal=$suma+$pgestion; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '5_7') { $tipo_entrega=$tipo_entrega.' '; $paypal = round((($suma+$pgestion) * ($payper / 100))); if ($paypal < $paymin){$paypal= $paymin;} $tipo_entrega=$tipo_entrega.' '; $pvptotal=$suma+$pgestion+$paypal; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '8_7') { $pvptotal=$suma+$pgestion; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '9_7') { $pvptotal=$suma+$pgestion; $tipo_entrega=$tipo_entrega.' '; } } Break; case 9: /***********************************/ // Entrega TTM (Subida e instalacion) /***********************************/ //Buscamos si el CP esta en la tabla de provincias (proventrega)... $cp = substr($cporigen, 0, 2); $consultacp="SELECT p.nombre nombre, p.pvp1 pvp1, p.pvp2 pvp2, p.unidades unidades from proventrega p where p.cp = '".$cp."'"; //echo $consultacp; $sqlcp = $bd->execsql($consultacp); if ($sqlcprown =mysqli_fetch_array($sqlcp)) { $porte1=$sqlcprown['pvp1']; $uniportes=$sqlcprown['unidades']; $porte2=$sqlcprown['pvp2']; //De las provincias aceptadas al transporte controlamos que no sea un pueblo sin servicio. $consultanocp="SELECT id from cpnoentrega where cp = '".$cporigen."'"; $sqlcpno = $bd->execsql($consultanocp); if ($sqlcpnorown =mysqli_fetch_array($sqlcpno))// Localidad sin servicio { $respuesta = -1; } else { //Reiniciamos las variables acumulativas $numportes=0; $peso0=0; $numpeque=0; $numportes2=0; $numarticulos=0; $totallineas=0; //Recorremos los productos para saber cuantos normales y cuantos peques tenemos.... for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0) { $cantidad = $this->array_cant_prod[$i]; $numpack = $this->array_num_pack[$i]; $precio = $this->array_precio_prod[$i]; $espeque = $this->array_espeque_prod[$i]; $peso = $this->array_peso_prod[$i]; $totallineas = $totallineas +1; //Comprobamos que no tenga peso0 if ($peso > 0) { $numportes=$numportes + ($cantidad * $numpack); } else // Peso0 { if ($espeque <> 1) { $peso0=$peso0 + ($cantidad * $numpack); } } //Comprobamos si es peque... if ($espeque == 1) { $numpeque=$numpeque+1; } else { $numportes2=$numportes2 + ($cantidad * $numpack); $numarticulos2=$numarticulos2 + ($cantidad * $numpack); } } } //echo '
    Peque: '.$numpeque; //echo '
    Num Portes: '.$numportes; //echo '
    Peso0: '.$peso0; //echo '
    Num. Portes 2(sin peques): '.$numportes2; //echo '
    Num. Articulos: '.$numarticulos; //Calculos... //Si todos fueran peques trabajamos como si fuera 1 paquete... //La variable todopeque no indica que toda la cesta menos peso0 son peques. if (($numportes2 == 0) and ($numpeque <> 0)) { $numportes2 = 1; $todopeque = 1; } // Todo son Peso 0 PORTES GRATIS if ($numportes2 == 0) { $portes = 0; } else { // Controlamos si hay paquetes con peso0 if ($peso0 > 0) { //Si solo hay 1 articulo o son todo peques if ($numportes2 == 1) { //Si son todo peques lo que queda por calcular no hay portes porque //el resto seran peso0 por lo cual portes gratis if($todopeque <> 1) { $portes = 0; //Calculo de los portes para los peques que nos quedan... $cp = substr($cporigen, 0, 2); $consultacp="SELECT p.nombre nombre, p.zona zona from provincias p where p.codigo = '".$cp."'"; //echo $consultacp; $sqlcp = $bd->execsql($consultacp); if ($sqlcprown =mysqli_fetch_array($sqlcp)) { for ($i=0;$i<$this->num_productos;$i++) { if($this->array_id_prod[$i]!=0) { $cantidad = $this->array_cant_prod[$i]; $numpack = $this->array_num_pack[$i]; $precio = $this->array_precio_prod[$i]; $espeque = $this->array_espeque_prod[$i]; $peso = $this->array_peso_prod[$i]; if ($espeque == 1) { $czona="SELECT importe from transportes where zona = ".$sqlcprown['zona']." and desde <= ".$peso." and hasta >= ".$peso." order by importe"; $sqlzona = $bd->execsql($czona); if ($sqlzonar =mysqli_fetch_array($sqlzona)) { $portepeque = $portepeque + ($sqlzonar['importe'] * $cantidad); } } } } } //Fin Calculos portes peques... $portes=$portes+$portepeque; } //Si no, es que nos queda 1 articulo solo en la cesta por cobrar //OJO REVISAR else { //Hay mas de 1 peso0 por lo que solo cobramos la unidad extra //OJO REVISAR if ($peso0 > 1) { $portes=$porte2; } else // 1 articulo solo { $portes=$porte1; } } } // mas de un articulo a parte de los de peso0 se cobran como si fuera segunda unidad else { if ($numportes2 == $peso0) { $portes = 0; //Calculo de los portes para los peques que nos quedan... $cp = substr($cporigen, 0, 2); $consultacp="SELECT p.nombre nombre, p.zona zona from provincias p where p.codigo = '".$cp."'"; //echo $consultacp; $sqlcp = $bd->execsql($consultacp); if ($sqlcprown =mysqli_fetch_array($sqlcp)) { for ($i=0;$i<$this->num_productos;$i++) { if($this->array_id_prod[$i]!=0) { $cantidad = $this->array_cant_prod[$i]; $numpack = $this->array_num_pack[$i]; $precio = $this->array_precio_prod[$i]; $espeque = $this->array_espeque_prod[$i]; $peso = $this->array_peso_prod[$i]; if ($espeque == 1) { $czona="SELECT importe from transportes where zona = ".$sqlcprown['zona']." and desde <= ".$peso." and hasta >= ".$peso." order by importe"; $sqlzona = $bd->execsql($czona); if ($sqlzonar =mysqli_fetch_array($sqlzona)) { $portepeque = $portepeque + ($sqlzonar['importe'] * $cantidad); } } } } } //Fin Calculos portes peques... $portes=$portes+$portepeque; } else { //Calculamos las unidades divisibles... $numero_2=$numportes2-$uniportes; $numero_2=$numero_2-$peso0; if ($numero_2 < 0){$numero_2=0;} $portes=$porte1 + ($porte2 * $numero_2); //Calculo de los portes para los peques que nos quedan... $cp = substr($cporigen, 0, 2); $consultacp="SELECT p.nombre nombre, p.zona zona from provincias p where p.codigo = '".$cp."'"; //echo $consultacp; $sqlcp = $bd->execsql($consultacp); if ($sqlcprown =mysqli_fetch_array($sqlcp)) { for ($i=0;$i<$this->num_productos;$i++) { if($this->array_id_prod[$i]!=0) { $cantidad = $this->array_cant_prod[$i]; $numpack = $this->array_num_pack[$i]; $precio = $this->array_precio_prod[$i]; $espeque = $this->array_espeque_prod[$i]; $peso = $this->array_peso_prod[$i]; if ($espeque == 1) { $czona="SELECT importe from transportes where zona = ".$sqlcprown['zona']." and desde <= ".$peso." and hasta >= ".$peso." order by importe"; $sqlzona = $bd->execsql($czona); if ($sqlzonar =mysqli_fetch_array($sqlzona)) { $portepeque = $portepeque + ($sqlzonar['importe'] * $cantidad); } } } } } //Fin Calculos portes peques... $portes=$portes+$portepeque; } } } //No hay peso0 los portes son normales else { //Si todos son peques nos vamos a zona portes... if ($numpeque == $totallineas) { $subrespuesta= -1; } else { //Portes normales + posibles peques $numero_2=$numportes2-$uniportes; if ($numero_2 < 0){$numero_2=0;} $portes=$porte1 + ($porte2 * ($numero_2)); //Calculo de los portes para los peques que nos quedan... $cp = substr($cporigen, 0, 2); $consultacp="SELECT p.nombre nombre, p.zona zona from provincias p where p.codigo = '".$cp."'"; //echo $consultacp; $sqlcp = $bd->execsql($consultacp); if ($sqlcprown =mysqli_fetch_array($sqlcp)) { for ($i=0;$i<$this->num_productos;$i++) { if($this->array_id_prod[$i]!=0) { $cantidad = $this->array_cant_prod[$i]; $numpack = $this->array_num_pack[$i]; $precio = $this->array_precio_prod[$i]; $espeque = $this->array_espeque_prod[$i]; $peso = $this->array_peso_prod[$i]; if ($espeque == 1) { $czona="SELECT importe from transportes where zona = ".$sqlcprown['zona']." and desde <= ".$peso." and hasta >= ".$peso." order by importe"; $sqlzona = $bd->execsql($czona); if ($sqlzonar =mysqli_fetch_array($sqlzona)) { $portepeque = $portepeque + ($sqlzonar['importe'] * $cantidad); } } } } } //Fin Calculos portes peques... $portes=$portes+$portepeque; } } } $respuesta=0; if ($subrespuesta == -1){$respuesta = -1;} //PROMOCIONES PORTES FIJOS if ($pvpfree == '1') { $tipo_entrega='
    '; $portes=$imppvpfree; } else { $tipo_entrega='
    '; } $tipo_entrega=$tipo_entrega.''; //Si estamos en alguna de nuestras formas de pago mostramos el total y si necesita algun calculo añadido se hace el calculo... if (($pago == '1_9') or ($pago == '2_9') or ($pago == '5_9') or ($pago == '8_9') or ($pago == '9_9')) { if ($pago == '1_9') { $pvptotal=$suma+$portes; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '2_9') { $tipo_entrega=$tipo_entrega.' '; $reembolso = round(($portes+$suma)* (1/100)); $tipo_entrega=$tipo_entrega.' '; $pvptotal=$suma+$portes+$reembolso; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '5_9') { $tipo_entrega=$tipo_entrega.' '; $paypal = round((($portes+$suma) * ($payper / 100))); if ($paypal < $paymin){$paypal= $paymin;} $tipo_entrega=$tipo_entrega.' '; $tipo_entrega=$tipo_entrega.' '; $pvptotal=$suma+$portes+$paypal; } if ($pago == '8_9') { $pvptotal=$suma+$portes; $tipo_entrega=$tipo_entrega.' '; } if ($pago == '9_9') { $pvptotal=$suma+$portes; $tipo_entrega=$tipo_entrega.' '; } } } } ELSE { $respuesta = -1; } Break; } if ($respuesta <> -1) { $zonaactiva=explode('_', $sfp); $zonaactiva=$zonaactiva[1]; //ECHO 'sfp='.$sfp.' Zona:'.$zonaactiva; echo $tipo_entrega; echo'';} echo'
    '; } $this->portes=$portes; $this->reembolso=$reembolso; $this->paypal=$paypal; $this->gestion=$gestion; $this->pvptotal=$pvptotal; /***********************************************/ ////AQUI TERMINAN TODAS LAS FORMAS DE ENTREGA.... /***********************************************/ echo''; } else { echo'
    LA CESTA ESTA VACIA
    '; } echo'
    '; } // Guarda las lineas en la BD function guarda_lineas($webImages, $SwebBase, $webBase, $cp, $bd, $id_ped){ for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0){ $idSQL = $bd->execSQL( 'select ifnull(max(id), 0)+1 id from cestalin' ); $rown = mysqli_fetch_array( $idSQL ); $id = $rown['id']; // Insertamos lineas pedido $consulta="insert into `cestalin` (`id` , `id_ped` , `id_prod` , `articulo` , `num_pack` , `cantidad` , `espeque` , `peso` , `precio`) values ('".$id."', '".$id_ped."', '".$this->array_id_prod[$i]."', '".$this->array_nombre_prod[$i]."', '".$this->array_num_pack[$i]."', '".$this->array_cant_prod[$i]."', '".$this->array_espeque_prod[$i]."', '".$this->array_peso_prod[$i]."', '".$this->array_precio_prod[$i]."')"; $bd->execSQL($consulta); } } } function guarda_totales($webImages, $SwebBase, $webBase, $cp, $bd, $pago, $puntoamb, $paso, $id, $dtoporte, $paymin, $payper, $reemin, $reeper){ $cporigen = $cp; $numero=0; $numarticulos=0; $numarticulos2=0; for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0){$numero++;} } if ($numero > 0) { $suma = 0; $x=0; for ($i=0;$i<$this->num_productos;$i++){ if($this->array_id_prod[$i]!=0){ // Variables de Trabajo $cantidad = $this->array_cant_prod[$i]; $numpack = $this->array_num_pack[$i]; $precio = $this->array_precio_prod[$i]; $espeque = $this->array_espeque_prod[$i]; $peso = $this->array_peso_prod[$i]; $importe = $cantidad * $precio ; //Calculamos el importe de los portes de este articulo if ( isset($cporigen) ) { if ($espeque <> 1) // Si no es pequeño { // Si se ha introducido codigo postal // Vamos a comprobar primero si el codigo postal esta en las localidades $sqlcpp = $bd->execSQL("SELECT p.nombre nombre, p.tipo tipo, t.pvp1 pvp1, t.pvp2 pvp2 from pueblos p left outer join transpueblos t on t.tipo = p.tipo where p.cp = '".$cporigen."' order by pvp1"); // Hay codigo postal zona if ( $sqlcpprown = mysqli_fetch_array( $sqlcpp )) { $tipo = 'pieza'; $portecat = 1; $porte1 = $sqlcpprown['pvp1']; $porte2 = $sqlcpprown['pvp2']; } // No hay codigo postal zona else { $tipo = 'peso'; $cp = substr($cp, 0, 2); $sqlcp = $bd->execSQL("SELECT p.nombre nombre, p.zona zona, t.importe importe from provincias p left outer join transportes t on t.zona = p.zona where p.codigo = '".$cp."' and t.desde <= ".$peso." and t.hasta >= ".$peso." order by importe"); if ( $sqlcprown = mysqli_fetch_array( $sqlcp ) ) { // El codigo postal es Valido if ($sqlcprown['zona'] == 0) { // No hay servicio en la Zona $porte = 0; $noporte = 1; $textoporte = 'No se realizan envios a '.$sqlcprown['nombre'].''; } // Fin no hay servicio else { // Hay servicio en la zona if ($sqlcprown['importe'] == 0) { // El importe es a consultar $porte = 0; } // Fin a consultar else { // El importe es a mostrar $noporte = 0; $porte = $sqlcprown['importe']; } // Fin a mostrar } // Fin hay servicio } // Codigo postal es valido else { // El codigo postal no es valido $porte = 0; $noporte = 1; $textoporte = 'No se ha introducido un Código Postal Válido.'; } // Fin el codigo postal no es valido }//Fin Codigo postal Zona } else // Al ser peque Solo contamos el peso { $tipo = 'peso'; $cp = substr($cp, 0, 2); $sqlcp = $bd->execSQL("SELECT p.nombre nombre, p.zona zona, t.importe importe from provincias p left outer join transportes t on t.zona = p.zona where p.codigo = '".$cp."' and t.desde <= ".$peso." and t.hasta >= ".$peso." order by importe"); if ( $sqlcprown = mysqli_fetch_array( $sqlcp ) ) { // El codigo postal es Valido if ($sqlcprown['zona'] == 0) { // No hay servicio en la Zona $porte = 0; $noporte = 1; $textoporte = 'No se realizan envios a '.$sqlcprown['nombre'].''; } // Fin no hay servicio else { // Hay servicio en la zona if ($sqlcprown['importe'] == 0) { // El importe es a consultar $porte = 0; } // Fin a consultar else { // El importe es a mostrar $noporte = 0; $porte = $sqlcprown['importe']; } // Fin a mostrar } // Fin hay servicio } // Codigo postal es valido else { // El codigo postal no es valido $porte = 0; $noporte = 1; $textoporte = 'No se ha introducido un Código Postal Válido.'; } // Fin el codigo postal no es valido } // Fin Es peque }//Fin hay cp $x++; $suma += $importe; //calculamos por si fuera portecat... if ($peso > 0) // Articulos con peso 0 no cuentan { $numportes = ($numportes+($cantidad * $numpack)); } else // Articulos Con peso 0 indican que ya han paquetes con peso 0 { if ($espeque <> 1) // Llevaremos una variable que nos diga que hay algun articulo con peso 0 esto hara que cuando haya que sumar paquetes si hay ya uno con peso 0 no se sumaran los primeros 25€ { $peso0=$peso0+($cantidad * $numpack); } } //Calculamos por si fuera no portecat... $portes = $portes + ($porte * $cantidad); $numarticulos=$numarticulos+$cantidad; // Para el descuento en portes y porte cat los peques no contaran como pieza, usamos una 2ª variable para ratificar al menos 1 articulo if ($espeque <> 1) { // Los articulos no pequeños que pesen 0 tampoco van a contar if ($peso > 0) { $numportes2 = ($numportes2+($cantidad * $numpack)); $numarticulos2=($numarticulos2 + $cantidad); } } else // Sumamos que haya peques { $numpeque++; } //Eliminamos los peques de las cuentas de articulos para que no se tengan en cuenta en descuentos por paquetes o en cuenta como segundo bulto en portes. } } // Portes // Dependemos forma de entrega... if ($pago == 3)// No hay portes recoge en tienda { $portes = 0; } else // Hay portes porque entrega TRANSPORTE { // Error en Portes. if ($noporte == 1) { } else { // Controlamos Si tenemos reembolso. if ($pago == 4) { //Descuento en portes (Usamos variable sin peques) if ($numarticulos2 > 1) { if ($dtoporte == 1) // El Descuento Esta activado { //Buscamos el dto de la provincia $cp = substr($cporigen, 0, 2); $sqldto = $bd->execSQL("SELECT dtoporte from provincias where codigo = '".$cp."'"); if ( $sqldtorown = mysqli_fetch_array( $sqldto ) ) {$porcdto =$sqldtorown['dtoporte'];} if ($porcdto > 0) // En esta provincia hay descuento { if ($numarticulos2 == 2) // Se aplica en el 2º articulo el primer % (Usamos variable sin peque) { $impdto= round($portes * ($porcdto / 100)); } else { if ($numarticulos2 > 6) // Usamos variable sin peque { $impdto= round($portes * (6 * $porcdto / 100)); } else { $impdto= round($portes * ($numarticulos2 * $porcdto / 100)); // Usamos variable sin peque } } $impdto=$impdto-$impdto-$impdto; } } } $reembolso = round(($portes+$impdto+$suma)* ($reeper / 100)); if ($reembolso < $reemin){$reembolso= $reemin;} } else // Transferencia o Barcelona { // Entrega por Gente A+B if ($portecat == 1) { // Si todos los articulos son peques contamos como 1 if (($numportes2 == 0) and ($numpeque <> 0)){$numportes2 = 1;$todopeque=1;} // Portes BUENOS A+B (Usamos calculo sobre paquetes sin peques. if ($numportes2 == 0){$portes=0;} // Paquetes con PESO 0 else{ //Controlamos si hubiera paquetes con peso 0 if ($peso0 > 0) { if ($numportes2 == 1) // Solo 1 articulo o todo peques { if ($todopeque <> 0) // Todo peques { $portes=0; } else // 1 articulos o 1 + portes0 { if ($peso0 > 1) // hay mas de 1 articulos por lo que se cobra solo la unidad extra { $portes=$porte2; } else // 1 Articulos { $portes=$porte1; } } } else // mas de 1 articulo a parte de los de peso 0 se cobran como si fueran segunda unidad. { $portes=$porte1+($porte2 *($numportes2-1)); } } else // No hay peso los portes son normales. { $portes= ($porte1 * 1) + ($porte2 *($numportes2-1)); } } if ($pago == 5) // paypal { $paypal = round((($portes+$impdto+$suma) * ($payper / 100))); if ($paypal < $paymin){$paypal= $paymin;} } } else { //Descuento en portes Usamos variable sin peque if ($numarticulos2 > 1) { if ($dtoporte == 1) // El Descuento Esta activado { //Buscamos el dto de la provincia $cp = substr($cporigen, 0, 2); $sqldto = $bd->execSQL("SELECT dtoporte from provincias where codigo = '".$cp."'"); if ( $sqldtorown = mysqli_fetch_array( $sqldto ) ) {$porcdto =$sqldtorown['dtoporte'];} if ($porcdto > 0) // En esta provincia hay descuento { if ($numarticulos2 == 2) // Se aplica en el 2º articulo el primer % (Usamos variable sin peque { $impdto= round($portes * ($porcdto / 100)); } else { if ($numarticulos2 > 6) // Usamos variable sin peque { $impdto= round($portes * (6 * $porcdto / 100)); } else { $impdto= round($portes * ($numarticulos2 * $porcdto / 100)); // Usamos variable sin peque } } $impdto=$impdto-$impdto-$impdto; } } } if ($pago == 5) // paypal { $paypal = round((($portes+$impdto+$suma) * ($payper / 100))); if ($paypal < $paymin){$paypal= $paymin;} } } } } } //Importe del punto de recogida $imppunto=0; if ($puntoamb <> 0) { $sqlp = $bd->execSQL("SELECT precio, tipo from puntosamb where id =".$puntoamb.""); if ( $sqlprown = mysqli_fetch_array( $sqlp ) ) { if ($sqlprown['tipo'] == 1) { $imppunto=$sqlprown['precio']*$numportes; } else { $imppunto=$sqlprown['precio']; } } } if ($id <> '') { //Actualizamos Pedido Guardado Con los importes Totales $total=$portes+$impdto+$reembolso+$suma+$paypal+$imppunto; $consulta="UPDATE cestaped SET `pvp` = '".$total."', `portes` = '".$portes."', `dtoporte` = '".$porcdto."', `impdto` = '".$impdto."', `reembolso` = '".$reembolso."', `entrega` = '".$portecat."', `paypal` = '".$paypal."', `imppunto` = '".$imppunto."' WHERE `cestaped`.`id` =".$id.""; //echo $consulta; $bd->execSQL($consulta); } } } //Vacia la cesta function vaciar_cesta(){ unset ($_SESSION["ambcarr"]); $_SESS1ION["ambcarr"] = new carrito(); } //elimina un producto del carrito. recibe la linea del carrito que debe eliminar //no lo elimina realmente, simplemente pone a cero el id, para saber que esta en estado retirado function elimina_producto($linea){ $this->array_id_prod[$linea]=0; } } class datoscar { //atributos de la clase var $num; var $cp; var $nombre; var $apellidos; var $dir; var $pob; var $prov; var $telf1; var $email; var $nif; var $telf2; var $nif2; var $nombre2; var $dir2; var $cp2; var $pob2; var $prov2; var $masarticulo; var $llama; var $observaciones; var $refetxt; var $refe; var $altaboletin; var $copialineas; //constructor. Realiza las tareas de inicializar los objetos //inicializa el numero de productos a 0 function datoscar () { $this->num=0; } //Inserta/Actualiza Datos CP. Recibe los datos de la cesta (PASO 2/6) function actualiza_cp($cp){ $this->cp=$cp; } //Inserta/Actualiza Datos Pago. Recibe los datos de la cesta (PASO 3/6) function actualiza_pago($pago){ $this->pago=$pago; } //Inserta/Actualiza Datos PuntoAmb. Recibe los datos de la cesta (PASO 3/6) function actualiza_puntoamb($puntoamb){ $this->puntoamb=$puntoamb; } //Inserta/Actualiza Datos Entrega. Recibe los datos de la cesta (PASO 5/6) function actualiza_entrega($entrega){ $this->entrega=$entrega; } //Inserta/actualiza Datos Personales. Recibe los datos de la cesta (PASO 5/6) function actualiza_datos($nombre, $apellidos, $dir, $pob, $prov, $telf1, $email, $nif, $telf2, $nif2, $nombre2, $dir2, $cp2, $pob2, $prov2, $masarticulo, $llama, $observaciones, $refetxt, $refe, $altaboletin){ function mayusculas($texto){ $texto=strtoupper($texto); $toSearch = "áéíóúàèìòùñç"; $toResult = "ÁÉÍÓÚÀÈÌÒÙÑÇ"; $texto = strtr( $texto, $toSearch, $toResult ); return $texto; } $this->nombre=mayusculas($nombre); $this->apellidos=mayusculas($apellidos); $this->dir=mayusculas($dir); $this->pob=mayusculas($pob); $this->prov=mayusculas($prov); $this->telf1=$telf1; $this->email=$email; $this->nif=mayusculas($nif); $this->telf2=$telf2; $this->nif2=mayusculas($nif2); $this->nombre2=mayusculas($nombre2); $this->dir2=mayusculas($dir2); $this->cp2=$cp2; $this->pob2=mayusculas($pob2); $this->prov2=mayusculas($prov2); $this->masarticulo=mayusculas($masarticulo); $this->llama=$llama; $this->observaciones=mayusculas($observaciones); $this->refetxt=mayusculas($refetxt); $this->refe=$refe; $this->altaboletin=$altaboletin; // Nuevo Campo Control de lineas // $copialineas=''; for ($i=0;$i<$_SESSION["ambcarr"]->num_productos;$i++) { if($_SESSION["ambcarr"]->array_id_prod[$i]!=0) { $cantidad = $_SESSION["ambcarr"]->array_cant_prod[$i]; $precio = $_SESSION["ambcarr"]->array_precio_prod[$i]; $copialineas=$copialineas."|".$cantidad. " x ".$_SESSION["ambcarr"]->array_nombre_prod[$i]." (".number_format(($precio), 2, ",", ".").")\n\n"; } } $this->copialineas=$copialineas; } //Muestra el contenido del codigo postal function ver_cp($webImages, $SwebBase, $webBase) { // ASistente paso 2 echo'
    Paso 1 Paso 2 Paso 3 Paso 4 Paso 5 Paso 6
    Introducir su CODIGO POSTAL

    '; echo''; echo''; echo'
    PASO 2/5
    ESCRIBA AQUI SU CODIGO POSTAL


    '; echo'
    '; echo'
    num_productos.'\', \'1\', \'2\' , \''.$webImages.'/ajax-loader.gif\');" class="imgsubmit" style="cursor: pointer"> num_productos.'\', \'3\' , \'2\', \''.$webImages.'/ajax-loader.gif\');" class="imgsubmit" style="cursor: pointer">
    Seguir Comprando
    '; } //Muestra el contenido del entrega y forma de pago function ver_entrega($webImages, $SwebBase, $webBase, $bd, $cp, $paymin, $payper, $reemin, $reeper) { // Asistente paso 3 // Vamos a comprobar primero si el codigo postal esta en las localidades $sqlcpp = $bd->execSQL("SELECT nombre from pueblos where cp = '".$cp."'"); // Hay codigo postal zona if ( $sqlcpprown = mysqli_fetch_array( $sqlcpp )) { $tipo ='pieza'; } else { $tipo ='peso'; } //Buscamos si hay algun NO PEQUE y //si hay peso0 (envio gratis) no se puede reembolso $nopeque=0; $peso0=1; for ($i=0;$i<$_SESSION["ambcarr"]->num_productos;$i++){ if($_SESSION["ambcarr"]->array_id_prod[$i]!=0){ // Variables de Trabajo $espeque = $_SESSION["ambcarr"]->array_espeque_prod[$i]; $espeso = $_SESSION["ambcarr"]->array_peso_prod[$i]; if ($espeque <> 1) // Si no es pequeño { $nopeque=1; } if ($espeso == 0) // Si no es pequeño { $peso0=0; } } } if ($nopeque == 0){$tipo='peso';} // Solo si hay 1 articulo NO PEQUE se activará la opcion PIEZA. echo'
    Paso 1 Paso 2 Paso 3 Paso 4 Paso 5 Paso 6
    Seleccionar FORMA DE PAGO

    '; echo''; echo''; echo'
    PASO 3/6
    '; //recuperamos la variable por si ya tiene valor $pago=$this->pago; $punto=$this->puntoamb; if ($tipo == 'pieza')// La entrega es por cuenta de AMB o el cliente pasa por la tienda { echo'  


    '; // PUNTOS RECOGIDA AMB echo'
    '; } else { echo'  

    '; //Reembolso solo en caso que no haya productos con entrega gratuita... if ($peso0 <> 0) { echo'
    '; } else { echo''; } // PUNTOS RECOGIDA AMB echo'
    '; } echo'
    '; echo'
    '; echo'
    num_productos.'\', \'2\' , \'3\', \''.$webImages.'/ajax-loader.gif\');" class="imgsubmit" style="cursor: pointer"> num_productos.'\', \'4\' , \'3\', \''.$webImages.'/ajax-loader.gif\');" class="imgsubmit" style="cursor: pointer">
    Seguir Comprando
    '; } // Devuelve el valor de pago function ver_pago(){return($this->pago);} // Devuelve el valor de puntoamb function ver_puntoamb(){return($this->puntoamb);} //Muestra datos personales function muestra_datos($webImages, $SwebBase, $webBase, $cp, $tipo, $pago, $bd, $objParse){ //Asistente Paso 5 echo'
    Paso 1 Paso 2 Paso 3 Paso 4 Paso 5 Paso 6
    Datos Personales

    '; echo'
    PASO 5/6

    * Campos imprescindibles.
    Datos de Entrega
    * NIF.:  
    * Nombre:  
    * Apellidos:  
    * Dirección de Envío:  
    * Código Postal:  
    '.$this->cp.'
    * Población:  
    * Provincia:  
    * Teléfono: 
    2º Teléfono: 
    * Email: 
    * Repetir Email: 


    Datos Facturación (Si son distintos de los de entrega).
    NIF/CIF.:  
    Nombre Completo:  
    Dirección:  
    Codigo Postal: 
    Población: 
    Provincia:  


    Observaciones:  
    Por favor, indícanos aquí lo que desees.

    Factura-e:  
     Deseo recibir una copia de mi factura de forma electrónica


    CONDICIONES DE VENTA.

    '; $sqlrep = $bd->execSQL("SELECT texto from reportajes where id = 26"); if ( $sqlreprow = mysqli_fetch_array( $sqlrep ) ) { $texto = $objParse->getParseText($sqlreprow['texto']); echo'
    He leido y acepto sus condiciones de compra.
    '; } echo'

    '; echo'
    num_productos.'\', \'4\' , \'5\', \''.$webImages.'/ajax-loader.gif\');" class="imgsubmit" style="cursor: pointer"> num_productos.'\', \'6\' , \'5\', \''.$webImages.'/ajax-loader.gif\');" class="imgsubmit" style="cursor: pointer">
    Seguir Comprando
    '; echo''; } function imprime_resumen($nombre, $apellidos, $dir, $pob, $prov, $telf1, $email, $nif, $telf2, $nif2, $nombre2, $dir2, $cp2, $pob2, $prov2, $masarticulo, $llama, $observaciones, $refetxt, $refe, $altaboletin, $webImages, $SwebBase, $webBase, $cp, $bd, $pago, $paso, $dtoporte, $paymin, $payper, $reemin, $reeper, $objParse, $pvpfree, $imppvpfree){ echo'
    PASO 6/6
    WWW.AUNMASBARATO.COM
    (TIENDA ONLINE) A+B

    ALMERIA 157
    VISTA PREVIA
    Lugar de Entrega
    08227 TERRASSA
    BARCELONA
    39.175.538Y
    93 164 10 79
    Datos del Cliente

    '.$nif.'
    '.$nombre.', '.$apellidos.'
    '.$dir.'
    '.$cp.' - '.$pob.' ('.$prov.')
    '.$telf1.' - '.$telf2.'
    '.$email.'

    '; // Fecha y Hora $numpedido =date("y").'-'.date("m").date("d").'-'.date("H",time()).date("i",time()).'-'.date("s",time()); Echo''; if ($nombre2 <> '') { echo''; } echo'
    FECHA
    '.date("d/m/Y").'
       FORMA DE PAGO
    '; $fpago=explode('_', $pago); if ($fpago[0] == 1){echo'TRANSFERENCIA BANCARIA';} if ($fpago[0] == 2){echo'PAGO A LA ENTREGA';} if ($fpago[0] == 3){echo'EFECTIVO EN TIENDA';} if ($fpago[0] == 4){echo'CONTRAREEMBOLSO';} if ($fpago[0] == 5){echo'PAYPAL';} if ($fpago[0] == 6){echo'TPV EN TIENDA';} if ($fpago[0] == 7){echo'FINANCIACION';} if ($fpago[0] == 8){echo'TARJETA CREDITO';} if ($fpago[0] == 9){echo'FINANCIA CETELEM';} ECHO'
       REFERENCIA PEDIDO
    '.$numpedido.'
    Datos de Facturacion
    '.$nif2.'
    '.$nombre2.'
    '.$dir2.'
    '.$cp2.' - '.$pob2.' ('.$prov2.')
    '; $_SESSION["ambcarr"]->imprime_carrito3($webImages, $SwebBase, $webBase, $cp, $bd, $pago, $this->puntoamb, $paso, '', $dtoporte, $paymin, $payper, $reemin, $reeper, $objParse, $pvpfree, $imppvpfree); Echo''; if ($masarticulo <> '') { echo''; } if ($observaciones <> '') { echo''; } echo'
    Otros Artículos
    '.$masarticulo.'
    Observaciones
    '.$observaciones.'
    '; echo'
    '; echo'
    num_productos.'\', \'5\' , \'6\', \''.$webImages.'/ajax-loader.gif\');" class="imgsubmit" style="cursor: pointer">
    gestion.'">pvptotal.'">paypal.'">reembolso.'">portes.'">
    Seguir Comprando
    '; echo''; } function compra_confirma($webImages, $SwebBase, $webBase, $ip, $httprefe, $httpagente, $bd, $dtoporte, $webmaster_email, $email_recibo, $paypal, $portes, $reembolso, $correlativo, $objParse, $gestion, $pvptotal, $pago){ //echo $pago; // COMPROBAMOS QUE TODOS LOS PRODUCTOS ESTEN EN STOCK $stock=1; for ($i=0;$i<$_SESSION["ambcarr"]->num_productos;$i++) { if($_SESSION["ambcarr"]->array_id_prod[$i]!=0) { if($_SESSION["ambcarr"]->array_id_disp[$i]!=1){$stock=0;} } } // Datos necesarios // Fecha y Hora $fecha = date("Y-m-d"); $hora = date(" H:i ",time()); if ($correlativo == 1) // Pedidos con numero correlativo { //Buscamos el ultimo nº de pedido $consulta="Select pedido from correlativo where id = 1"; $sqlnum=$bd->execSQL($consulta); if( $rownnum = mysqli_fetch_array( $sqlnum ) ) { if ($rownnum['pedido'] < 1000) { if ($rownnum['pedido'] < 100) { $num1='00'; if ($rownnum['pedido'] < 10) { $num2='0'.$rownnum['pedido']; } else { $num2=substr($rownnum['pedido'], 0,2); } } else { $num1='0'.substr($rownnum['pedido'], 0,1); $num2=substr($rownnum['pedido'], 1,2); } } else { $num1=substr($rownnum['pedido'], 0,2); $num2=substr($rownnum['pedido'], 2,2); } } //Numero de Pedido. $numped=date("y").'-'.date("m").date("d").'-'.date("H",time()).$num1.'-'.$num2; //Actualizamos al siguiente numero $consulta="update correlativo set pedido =".($rownnum['pedido']+1)." where id = 1"; $bd->execSQL($consulta); } else { //Numero de Pedido. $numped=date("y").'-'.date("m").date("d").'-'.date("H",time()).date("i",time()).'-'.date("s",time()); } // Guardamos el formulario de presupuesto //Buscamos el ultimo id pedido... $idSQL = $bd->execSQL( 'select ifnull(max(id), 0)+1 id from cestaped' ); $rown = mysqli_fetch_array( $idSQL ); $id = $rown['id']; // Insertamos pedido //Quitar apostrofes... $toSearch = array("\"", "'"); $toResult = array(""", "\'"); $observaciones= str_replace( $toSearch, $toResult, $this->observaciones ); $nombre1= str_replace( $toSearch, $toResult, $this->nombre ); $apellidos1= str_replace( $toSearch, $toResult, $this->apellidos ); $direccion1= str_replace( $toSearch, $toResult, $this->dir ); $poblacion1= str_replace( $toSearch, $toResult, $this->pob ); $provincia1= str_replace( $toSearch, $toResult, $this->prov ); $nombre2= str_replace( $toSearch, $toResult, $this->nombre2 ); $direccion2= str_replace( $toSearch, $toResult, $this->dir2 ); $poblacion2= str_replace( $toSearch, $toResult, $this->pob2 ); $provincia2= str_replace( $toSearch, $toResult, $this->prov2 ); $consulta="insert into cestaped (`id` , `numped` , `nif` , `nombre` , `apellidos` , `direccion` , `cp` , `poblacion` , `provincia` , `telf1` , `telf2` , `nif2` , `nom2` , `dir2` , `cp2` , `pob2` , `prov2` , `email` , `masarticulo`, `entrega`, `pago`, `llama`, `observaciones`, `refe`, `refetext`, `httprefe`, `httpagent`, `ip`, `fecha`, `hora`, `estado`, `fecha_confirma`, `pagable`, `copialineas`, `puntoamb`, `imppunto`, `portes`, `paypal`, `reembolso`, `pvp` ) values ('".$id."', '".$numped."', '".$this->nif."', '".$nombre1."', '".$apellidos1."', '".$direccion1."', '".$this->cp."', '".$poblacion1."', '".$provincia1."', '".$this->telf1."', '".$this->telf2."', '".$this->nif2."', '".$nombre2."', '".$direccion2."', '".$this->cp2."', '".$poblacion2."', '".$provincia2."', '".$this->email."', '".$this->masarticulo."', '".$this->entrega."', '".$pago."', '".$this->llama."', '".$observaciones."', '".$this->refe."', '".$this->refetxt."', '".$httprefe."', '".$httpagente."', '".$ip."', '".$fecha."', '".$hora."', 1, '".$fecha."', 0, '".$this->copialineas."', '".$this->puntoamb."', '".$gestion."', '".$portes."', '".$paypal."', '".$reembolso."', '".$pvptotal."')"; //Log ficheros... $gestor=fopen('logsys', 'a'); fputs($gestor,$consulta); $bd->execSQL($consulta); //echo $consulta; $fpago=explode('_', $pago); $fentrega=$fpago[1]; $fpago=$fpago[0]; if (mysqli_errno($bd->getIdcon()) == 0) { fputs($gestor,'ok'); fclose($gestor); $_SESSION["ambcarr"]->guarda_lineas($webImages, $SwebBase, $webBase, $cp, $bd, $id); // Obtenemos y traducimos el nombre del día $dia=date("l"); if ($dia=="Monday") $dia="Lunes"; if ($dia=="Tuesday") $dia="Martes"; if ($dia=="Wednesday") $dia="Miércoles"; if ($dia=="Thursday") $dia="Jueves"; if ($dia=="Friday") $dia="Viernes"; if ($dia=="Saturday") $dia="Sabado"; if ($dia=="Sunday") $dia="Domingo"; // Obtenemos el número del día $dia2=date("d"); // Obtenemos y traducimos el nombre del mes $mes=date("F"); if ($mes=="January") $mes="Enero"; if ($mes=="February") $mes="Febrero"; if ($mes=="March") $mes="Marzo"; if ($mes=="April") $mes="Abril"; if ($mes=="May") $mes="Mayo"; if ($mes=="June") $mes="Junio"; if ($mes=="July") $mes="Julio"; if ($mes=="August") $mes="Agosto"; if ($mes=="September") $mes="Setiembre"; if ($mes=="October") $mes="Octubre"; if ($mes=="November") $mes="Noviembre"; if ($mes=="December") $mes="Diciembre"; // Obtenemos el año $ano=date("Y"); // Fecha y Hora $numpedido =$numped; // Imprimimos la fecha completa echo'


    Su pedido nº.: '.$numpedido.' se ha enviado correctamente en fecha: '; echo "$dia $dia2 de $mes de $ano a las $hora h"; echo'

    Gracias por confiar en ®A+B www.aunmasbarato.com

    '; //$_SESSION["ambcarr"]->guarda_totales($webImages, $SwebBase, $webBase, $this->cp, $bd, $this->pago, $this->puntoamb, '6', $id, $dtoporte, $paymin, $payper, $reemin, $reeper); IF ($fpago == 1) //Transferencia { // COMPROBAMOS QUE TODOS LOS PRODUCTOS ESTEN EN STOCK Y SI ES ASI MOSTRAMOS EL TEXTO... if ($stock == 1) { if (($fentrega == 1) or ($fentrega == 2) or ($fentrega == 4)) { echo'

    NUMEROS DE CUENTA PARA REALIZAR LA TRANSFERENCIA:
    :SANTANDER ES64-0049-1783-1923-1000-4594
    SABADELL ES48-0081-0900-8700-0346-9658
    LA CAIXA ES46-2100-2771-0302-0005-6636
    BBVA ES20-0182-8122-0402-0155-7906

    Por favor es muy importante que indique el número de pedido en la transferencia para que podamos identificar su pedido.


    '; } } } IF ($fpago == 5) //Paypal { $sqlped = $bd->execSQL("SELECT pvp from cestaped where id=".$id.""); if ($sqlpedrown = mysqli_fetch_array( $sqlped ) ) {$total=$sqlpedrown['pvp'];} echo'

    Realizar el pago
    '; echo""; /*echo'

    Para realizar el pago por PAYPAL pulse el siguiente botón

    ';*/ } IF ($fpago == 8) //TPV VIRTUAL { $sqlped = $bd->execSQL("SELECT pvp from cestaped where id=".$id.""); if ($sqlpedrown = mysqli_fetch_array( $sqlped ) ) {$total=$sqlpedrown['pvp'];} // Se incluye la librería include 'apiRedsys.php'; // Se crea Objeto $miObj = new RedsysAPI; // Valores de entrada $fuc="344468400"; $terminal="001"; $moneda="978"; $trans="0"; $url=$webBase.'/index.php?p=31&id='.$id.''; $urlok=$webBase.'/index.php?p=31&id='.$id.''; $urlko=$webBase.'/index.php?p=30&id='.$id.''; $toSearch = array("-"); $toResult = array(""); $numped= str_replace( $toSearch, $toResult, $numped ); $len=strlen(trim($numped)); $tpvped=trim($numped); for($i = $len; $i < 12; $i++){$tpvped='0'.$tpvped;} $amount=number_format($total,2, '',''); // Se Rellenan los campos $miObj->setParameter("DS_MERCHANT_AMOUNT",$amount); $miObj->setParameter("DS_MERCHANT_ORDER",$tpvped); $miObj->setParameter("DS_MERCHANT_MERCHANTCODE",$fuc); $miObj->setParameter("DS_MERCHANT_CURRENCY",$moneda); $miObj->setParameter("DS_MERCHANT_TRANSACTIONTYPE",$trans); $miObj->setParameter("DS_MERCHANT_TERMINAL",$terminal); $miObj->setParameter("DS_MERCHANT_MERCHANTURL",$url); $miObj->setParameter("DS_MERCHANT_URLOK",$urlok); $miObj->setParameter("DS_MERCHANT_URLKO",$urlko); $miObj->setParameter("Ds_MERCHANT_PAYMETHODS","C"); //Datos de configuración $version="HMAC_SHA256_V1"; $kc = 'MZHUdyVp2I66PRCUJ0WQ4hlxRGm/KMZ8';//Clave recuperada de CANALES // Se generan los parámetros de la petición $request = ""; $params = $miObj->createMerchantParameters(); $signature = $miObj->createMerchantSignature($kc); echo'
    '; echo''; echo'
    REALIZAR PAGO TPV
    Pulse en la imagen para realizar el pago.

    Para realizar el pago del pedido debe hacer click en la siguiente imagen
    REALIZAR PAGO
    PAGO TPV
    Proceso de pago iniciado.

    Si ha encontrado algún problema a la hora de realizar el pago, póngase en contacto con nosotros, en cambio si el proceso se ha realizado correctamente en cuanto tengamos constancia del pago recibirá un correo electrónico informando del cambio del estado del pedido.


    '; } IF ($fpago == 9) //CETELEM { $sqlped = $bd->execSQL("SELECT * from cestaped where id=".$id.""); if ($sqlpedrown = mysqli_fetch_array( $sqlped ) ) { $numped=$sqlpedrown['numped']; $nombre=$sqlpedrown['nombre']; $apellidos=$sqlpedrown['apellidos']; $nif=$sqlpedrown['nif']; $direccion=$sqlpedrown['direccion']; $localidad=$sqlpedrown['poblacion']; $cpostal=$sqlpedrown['cp']; $email=$sqlpedrown['email']; $telefono=$sqlpedrown['telf1']; $importe=$sqlpedrown['pvp']; $importe=($importe * 100); $idPedido=$id; $len=strlen(trim($idPedido)); $tpvped=trim($idPedido); for($i = $len; $i < 10; $i++){$tpvped='0'.$tpvped;} } $url=$webBase.'/index.php?p=32&id='.$id.''; $urlok=$webBase.'/index.php?p=33&id='.$id.''; echo'

    Para rellenar el formulario de CETELEM pulse el siguiente botón

    '; } //Enviar correo confirmacion... //SELECCIONAMOS LA FIRMA $sqlf = $bd->execSQL("SELECT texto from firmas where id=1"); if ($sqlfrown = mysqli_fetch_array( $sqlf ) ) {$firma= $sqlfrown['texto'];} //SELECCIONAMOS EL MAIL //Preparamos datos if ($this->nif2 <> '') //Datos de Facturacion { $facturacion = 'Nif.: '.$this->nif2.'
    Nombre: '.$nombre2.'
    Direccion: '.$direccion2.'
    CP: '.$this->cp2.' '.$poblacion2.' ('.$provincia2.')
    '; } else { $facturacion = 'Nif.: '.$this->nif.'
    Nombre: '.$nombre1.' '.$apellidos1.'
    Direccion: '.$direccion1.'
    CP: '.$this->cp.' '.$poblacion1.' ('.$provincia1.')
    '; } //Formas de entrega y pago if ($fpago==1){$pago='Transferencia Bancaria';} if ($fpago==2){$pago='Pago a la Entrega';} if ($fpago==3){$pago='Pago en Efectivo';} if ($fpago==4){$pago='Contrarrembolso';} if ($fpago==5){$pago='PayPal';} if ($fpago==6){$pago='Tpv en Local';} if ($fpago==7){$pago='Financiacion en Local';} if ($fpago==8){$pago='Tpv Virtual';} if ($fentrega==1){$entrega='Compañia de Transportes';} if ($fentrega==2){$entrega='Recogida en Tienda Terrassa';} if ($fentrega==3){$entrega='Recogida en Punto Valencia';} if ($fentrega==4){$entrega='Entrega Personal A+B';} if ($fentrega==5){$entrega='Entrega Directo Fabrica BSH';} if ($fentrega==6){$entrega='Recogida en Punto Madrid';} if ($fentrega==7){$entrega='Entrega Transportes Madrid';} if ($fentrega==9){$entrega='Entrega TTM';} //Lineas Pedido $pedido=''; $sqllin = $bd->execSQL("SELECT * from cestalin where id_ped=".$id." order by id"); while ($sqllinrown = mysqli_fetch_array( $sqllin ) ) { $pedido .= ''; } //Lineas de portes $sqlped = $bd->execSQL("SELECT * from cestaped where id=".$id.""); if ($sqlpedrown = mysqli_fetch_array( $sqlped ) ) { $pedido.=''; if ($sqlpedrown['reembolso'] > 0) { $pedido.=''; } if ($sqlpedrown['imppunto'] > 0) { $pedido.=''; } if ($sqlpedrown['paypal'] > 0) { $pedido.=''; } $pedido.='
    Concepto Precio Cantidad Importe
    '.$sqllinrown['articulo'].' '.number_format($sqllinrown['precio'], 2, ',', '.').' '.$sqllinrown['cantidad'].' '.number_format(($sqllinrown['precio'] * $sqllinrown['cantidad']), 2, ',', '.').'
    Portes '.number_format($sqlpedrown['portes'], 2, ',', '.').' 1 '.number_format($sqlpedrown['portes'], 2, ',', '.').'
    Comisión de Reembolso '.number_format($sqlpedrown['reembolso'], 2, ',', '.').' 1 '.number_format($sqlpedrown['reembolso'], 2, ',', '.').'
    Gastos Gestion Entrega '.number_format($sqlpedrown['imppunto'], 2, ',', '.').' 1 '.number_format($sqlpedrown['imppunto'], 2, ',', '.').'
    Comisión Paypal '.number_format($sqlpedrown['paypal'], 2, ',', '.').' 1 '.number_format($sqlpedrown['paypal'], 2, ',', '.').'
    Total '.number_format($sqlpedrown['pvp'], 2, ',', '.').'
    '; } //Fin Preparamos datos //Añadimos Condiciones de Entrega //Condiciones de entrega... if ($fpago == 1) // Transferencia { if ($fentrega == 1) // Transportes Peso { $condiciones.='
    La entrega será realizada por AGENCIA DE TRANSPORTE.

    NOTA IMPORTANTE A TENER EN CUENTA

    TODAS las empresas de transporte en general, NO SUBEN A PISO, NI INSTALAN, NI RETIRAN NADA, en todos los casos la entrega se realizará en la entrada principal del lugar señalado por el cliente.

    '; } if ($fentrega == 2) // Tienda Terrassa { } if ($fentrega == 4) // Transportes por empresas AMB { $condiciones.='
    Servicio realizado por personal de A+B, el cual, incluye:
    1. - Subida a piso.
    2. - Instalación.
    3. - Retirada del viejo (en caso que lo haya).

    ATENCION: NO SE INSTALAN HORNOS, ENCIMERAS, GRIFOS, FREGADERAS, CAMPANAS, todo lo que sea LINEA DE ENCASTRE. Nuestro personal NO MANIPULA gas ni electricidad

    '; } if ($fentrega == 5) // Directo BSH { $condiciones.='
    El servicio incluye subida a piso y, adicionalmente, puede contratarse la instalación y la retirada de los antiguos (ésta última opción no está disponible para frigoríficos americanos).
    '; } if ($fentrega == 6) // Punto recogida Hepecasa { } if ($fentrega == 7) // Transportes Madrid Portes Gratis { $condiciones.=''; } if($fentrega == 9) // Transportes TTM { $condiciones.='
    Servicio realizado por agencia de transporte TTM el cual, incluye:
    1. - Subida a piso.
    2. - Instalación.
    3. - Retirada del viejo (en caso que lo haya).

    ATENCIÓN: NO INSTALAN HORNOS, ENCIMERAS, GRIFOS, FREGADERAS, CAMPANAS, todo lo que sea LINEA DE ENCASTRE, gas ni electricidad. La entrega se realiza con acceso viable sin grúa y sin desmontar ni desembalar el producto y siempre que el acceso al emplazamiento elegido por el cliente no requiera de trabajos adicionales (desmontaje puerta) o el mobiliario impida el normal acceso. Se realizarán las conexiones a las tomas de agua entrante, saliente y al suministro eléctrico, siempre y cuando sea suficiente el cableado y las tomas de agua y suministro eléctrico cumplan con la normativa, estén adaptadas y usando únicamente los accesorios incluidos en el productos.

    '; } // COMPROBAMOS QUE TODOS LOS PRODUCTOS ESTEN EN STOCK Y SI ES ASI MOSTRAMOS EL TEXTO... $stock=1; for ($i=0;$i<$_SESSION["ambcarr"]->num_productos;$i++) { if($_SESSION["ambcarr"]->array_id_prod[$i]!=0) { if($_SESSION["ambcarr"]->array_id_disp[$i]!=1){$stock=0;} } } if ($stock == 1) { if (($fentrega == 1) or ($fentrega == 2) or ($fentrega == 4)) { $condiciones=$condiciones.'

    NUMEROS DE CUENTA PARA REALIZAR LA TRANSFERENCIA:
    :SANTANDER ES64-0049-1783-1923-1000-4594
    SABADELL ES48-0081-0900-8700-0346-9658
    LA CAIXA ES46-2100-2771-0302-0005-6636
    BBVA ES20-0182-8122-0402-0155-7906

    Por favor es muy importante que indique el número de pedido en la transferencia para que podamos identificar su pedido.


    '; } } } //Fin Transferencia if ($fpago == 2) // Pago en efectivo a la entrega { if ($fentrega == 4) // Transportes por empresas AMB { $condiciones='
    Servicio realizado por personal de A+B, el cual, incluye:
    1. - Subida a piso.
    2. - Instalación.
    3. - Retirada del viejo (en caso que lo haya).
    4. - PAGO EN EFECTIVO al finalizar el servicio SIN RECARGO ADICIONAL alguno.
    Por favor, tenga preparado el importe exacto para agilizar la entrega.

    ATENCION: NO SE INSTALAN HORNOS, ENCIMERAS, GRIFOS, FREGADERAS, CAMPANAS, todo lo que sea LINEA DE ENCASTRE. Nuestro personal NO MANIPULA gas ni electricidad

    '; } if($fentrega == 9) // Transportes TTM { $condiciones.='
    Servicio realizado por agencia de transporte TTM el cual, incluye:
    1. - Subida a piso.
    2. - Instalación.
    3. - Retirada del viejo (en caso que lo haya).

    ATENCIÓN: NO INSTALAN HORNOS, ENCIMERAS, GRIFOS, FREGADERAS, CAMPANAS, todo lo que sea LINEA DE ENCASTRE, gas ni electricidad. La entrega se realiza con acceso viable sin grúa y sin desmontar ni desembalar el producto y siempre que el acceso al emplazamiento elegido por el cliente no requiera de trabajos adicionales (desmontaje puerta) o el mobiliario impida el normal acceso. Se realizarán las conexiones a las tomas de agua entrante, saliente y al suministro eléctrico, siempre y cuando sea suficiente el cableado y las tomas de agua y suministro eléctrico cumplan con la normativa, estén adaptadas y usando únicamente los accesorios incluidos en el productos.

    '; } } if ($fpago == 3) // Recogida en tienda { //Buscamos la tienda $sqlf = $bd->execSQL("SELECT condiciones from puntosamb where id=1"); if ($sqlfrown = mysqli_fetch_array( $sqlf ) ) { $condiciones=$objParse->getParseText($sqlfrown['condiciones']); } } if ($fpago == 4) // Reembolso { $condiciones= '
    La entrega será realizada por AGENCIA DE TRANSPORTE.

    NOTA IMPORTANTE A TENER EN CUENTA

    TODAS las empresas de transporte en general, NO SUBEN A PISO, NI INSTALAN, NI RETIRAN NADA, en todos los casos la entrega se realizará en la entrada principal del lugar señalado por el cliente y también el pago contra reembolso acarreará un incremento del '.number_format($reeper, 2, '.', '').'% en concepto de gestión de cobro por parte de la COMPAÑIA DE TRANSPORTE, cuyo importe mínimo está fijado en '.number_format($reemin, 2, '.', '').' Eur (IVA incluido).

    Por favor, tenga preparado el importe exacto para agilizar la entrega en caso de haber elegido esta modalidad de pago. Las agencias de transporte solo aceptarán el pago en efectivo.

    '; } $paypal=''; if ($fpago == 5) // Paypal { if ($fentrega == 1) // Transportes Peso // Transportes normales { $condiciones= '
    La entrega será realizada por AGENCIA DE TRANSPORTE.

    NOTA IMPORTANTE A TENER EN CUENTA

    TODAS las empresas de transporte en general, NO SUBEN A PISO, NI INSTALAN, NI RETIRAN NADA, en todos los casos la entrega se realizará en la entrada principal del lugar señalado por el cliente.

    El pago por PAYPAL acarreará un incremento del '.$payper.'% en concepto de gestión de cobro por parte de la empresa PAYPAL,'; if ($paymin > 0){$condiciones.=', cuyo importe mínimo está fijado en '.$paymin.' Eur (IVA incluido)';} $condiciones.='

    '; } if ($fentrega == 2) // Tienda Terrassa { $condiciones= '
    Forma de pago: Paypal
    Est$eacute; atento a la direcci$oacute;n de correo e-mail y/o al tel$eacutefono de contacto que nos ha facilitado, puesto que nosotros le avisaremos cuando podr$aacute; pasar a recoger su compra por nuestra tienda situada en [u]C/Almeria, 157 en Terrassa (BARCELONA)[/u].

    El pago por PAYPAL acarreará un incremento del '.$payper.'% en concepto de gestión de cobro por parte de la empresa PAYPAL,'; if ($paymin > 0){$condiciones.=', cuyo importe mínimo está fijado en '.$paymin.' Eur (IVA incluido)';} $condiciones.='

    '; } if ($fentrega == 4) // Transportes por empresas AMB { $condiciones.='
    Servicio realizado por personal de A+B, el cual, incluye:
    1. - Subida a piso.
    2. - Instalación.
    3. - Retirada del viejo (en caso que lo haya).

    ATENCION: NO SE INSTALAN HORNOS, ENCIMERAS, GRIFOS, FREGADERAS, CAMPANAS, todo lo que sea LINEA DE ENCASTRE. Nuestro personal NO MANIPULA gas ni electricidad

    El pago por PAYPAL acarreará un incremento del '.$payper.'% en concepto de gestión de cobro por parte de la empresa PAYPAL'; if ($paymin > 0){$condiciones.=', cuyo importe mínimo está fijado en '.$paymin.' Eur (IVA incluido)';} $condiciones.='.

    '; } if ($fentrega == 5) // Directo Bsh { $condiciones= '
    Forma de pago: Paypal
    El servicio incluye subida a piso y, adicionalmente, puede contratarse la instalación y la retirada de los antiguos ($eacute;sta última opción no está disponible para frigoríficos americanos)..

    El pago por PAYPAL acarreará un incremento del '.$payper.'% en concepto de gestión de cobro por parte de la empresa PAYPAL,'; if ($paymin > 0){$condiciones.=', cuyo importe mínimo está fijado en '.$paymin.' Eur (IVA incluido)';} $condiciones.='

    '; } if ($fentrega == 6) // Punto recogida Hepecasa { $condiciones= '
    El pago por PAYPAL acarreará un incremento del '.$payper.'% en concepto de gestión de cobro por parte de la empresa PAYPAL,'; if ($paymin > 0){$condiciones.=', cuyo importe mínimo está fijado en '.$paymin.' Eur (IVA incluido)';} $condiciones.='
    '; } if ($fentrega == 7) // Zona transporte Madrid Portes Gratis { $condiciones= '
    El pago por PAYPAL acarreará un incremento del '.$payper.'% en concepto de gestión de cobro por parte de la empresa PAYPAL,'; if ($paymin > 0){$condiciones.=', cuyo importe mínimo está fijado en '.$paymin.' Eur (IVA incluido)';} $condiciones.='
    '; } if($fentrega == 9) // Transportes TTM { $condiciones.='
    Servicio realizado por agencia de transporte TTM el cual, incluye:
    1. - Subida a piso.
    2. - Instalación.
    3. - Retirada del viejo (en caso que lo haya).

    ATENCIÓN: NO INSTALAN HORNOS, ENCIMERAS, GRIFOS, FREGADERAS, CAMPANAS, todo lo que sea LINEA DE ENCASTRE, gas ni electricidad. La entrega se realiza con acceso viable sin grúa y sin desmontar ni desembalar el producto y siempre que el acceso al emplazamiento elegido por el cliente no requiera de trabajos adicionales (desmontaje puerta) o el mobiliario impida el normal acceso. Se realizarán las conexiones a las tomas de agua entrante, saliente y al suministro eléctrico, siempre y cuando sea suficiente el cableado y las tomas de agua y suministro eléctrico cumplan con la normativa, estén adaptadas y usando únicamente los accesorios incluidos en el productos.

    '; } $paypal='
    Debido al constante movimiento de stock en nuestros almacenes le facilitaremos la opción de pago por PAYPAL, una vez confirmada la disponibilidad del artículo.'; } if ($fpago == 6) // Tpv en Local { if ($fentrega == 2) // Tienda Terrassa { $condiciones= '
    Forma de pago: TPV en Local
    Esté atento a la dirección de correo e-mail y/o al teléfono de contacto que nos ha facilitado, puesto que nosotros le avisaremos cuando podrá pasar a recoger su compra por nuestra tienda situada en C/Almeria, 157 en Terrassa (BARCELONA).

    '; } } if ($fpago == 7) // Financiacion en Local { if ($fentrega == 2) // Tienda Terrassa { $condiciones= '
    Forma de pago: Financiacion en Local
    Esté atento a la dirección de correo e-mail y/o al teléfono de contacto que nos ha facilitado, puesto que nosotros le avisaremos cuando podrá pasar a recoger su compra por nuestra tienda situada en C/Almeria, 157 en Terrassa (BARCELONA).

    '; } } $sqlm = $bd->execSQL("SELECT texto from emails where id=1"); if ($sqlmrown = mysqli_fetch_array( $sqlm ) ) { $toSearch = array("|NIF|", "|NOMBRE|", "|APELLIDOS|", "|DIRECCION|", "|CP|", "|POBLACION|", "|PROVINCIA|", "|TELF1|", "|TELF2|", "|EMAIL|", "|FACTURACION|", "|FECHA RECEPCION|", "|FIRMA|", "|NUMPEDIDO|", "|PEDIDO|", "|OBSERVACIONES|", "|ENTREGA|", "|PAGO|", "|CONDICIONES|", "|PAYPAL|"); $toResult = array($this->nif, $this->nombre, $this->apellidos, $this->dir, $this->cp, $this->pob, $this->prov, $this->telf1, $this->telf2, $this->email, $facturacion, date( 'd/m/Y'), $firma, $numpedido, $pedido, $this->observaciones, $entrega, $pago, $condiciones, $paypal); $contenidomail = str_replace( $toSearch, $toResult, $sqlmrown['texto']); $asunto = "Confirmación Recepción de Pedido"; $destinatario = $this->email; $cuerpo = $contenidomail; //para el envío en formato HTML $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; //dirección del remitente $headers .= "From: Electrodomesticos Aun Mas Barato <".$webmaster_email.">\r\n"; if (mail($destinatario,$asunto,$cuerpo,$headers)) { $asunto2="Copia de ".$asunto; mail($email_recibo,$asunto2,$cuerpo,$headers); } } //Fin Enviamos Pedido echo'






    Volver a ofertas en Pagina Princial'; //Lista Cliente // Buscamos que no exista Cliente $sql = $bd->execSQL("SELECT * from listaclientes where mail = '".$email."'"); if ( $sqlrow = mysqli_fetch_array( $sql ) ) { } else { // Insertamos Lista Cliente $consulta="Insert into `listaclientes` (`mail`) values ('".$email."')"; $bd->execSQL($consulta); } // Boletin Noticias if ($altaboletin == '1') { // Buscamos que no exista $sql = $bd->execSQL("SELECT * from boletin where mail = '".$email."'"); if ( $sqlrow = mysqli_fetch_array( $sql ) ) { } else { // Insertamos Boletin $consulta="Insert into `boletin` (`mail`) values ('".$email."')"; $bd->execSQL($consulta); } } echo' '; } else { fputs($gestor,'falla'); fclose($gestor); echo'


    Se ha producido un error al intentar enviar tu consulta.



    '; } } } //inicio la sesión session_start(); //si no esta creado el objeto carrito en la sesion, lo creo if (!isset($_SESSION["ambcarr"])){ $_SESSION["ambcarr"] = new carrito(); $_SESSION["ambdatcar"] = new datoscar(); } ?>