_Veronika_ Posted January 20, 2022 Share Posted January 20, 2022 (edited) Muy buenas, a ver si alguien me puede echar una manita con esto que se me ha atravesado. He instalado el modulo de Belvg para las tallas de la ropa. Y resulta que en atributos he creado un atributo que se llama Talla y como valores he puesto S M L XL 30 32 34 36... pues esto depende de como lo ponga el fabricante en la etiqueta. El módulo funciona muy bien si quieres mostrar las medidas para todas las tallas pero si solo quieres mostrar para S M L y XL el resto aparece en blanco. Entonces lo que estoy intentando hacer es que si la casilla está en blanco que no lo muestre pero no lo consigo. Este es el código original: <tbody> {foreach from=$group.def_collection_ps_val item=attr name=collection} <tr class="{if $smarty.foreach.collection.index % 2 != 0}alt{/if}"> <td class="ps_attr_name">{$attr.name|escape}</td> {foreach from=$attr.values item=val key=key} <td>{if ($val)}{$val}{else}-{/if}</td> {/foreach} </tr> {/foreach} </tbody> Y esta es la modificación que he hecho pero no me funciona: <tbody> {foreach from=$group.def_collection_ps_val item=attr name=collection} {if !empty($val)} <tr class="{if $smarty.foreach.collection.index % 2 != 0}alt{/if}"> <td class="ps_attr_name">{$attr.name|escape}</td> {foreach from=$attr.values item=val key=key} <td>{$val}</td> {/foreach} </tr> {/if} {/foreach} </tbody> Parece que es una modificación fácil pero se me resiste, a ver si alguien del foro me puede arrojar algo de luz a ver que estoy haciendo mal. Muchas gracias Edited January 21, 2022 by veronica garcia (see edit history) Link to comment Share on other sites More sharing options...
luishuaymana Posted January 20, 2022 Share Posted January 20, 2022 (edited) de donde viene $val?.. para que tengas una idea de que cosa muestra y que no antes del {if !empty($val)} agrega. {json_encode($group.def_collection_ps_val)|print_r} y fíjate en el front, luego has una validación simple. Edited January 20, 2022 by luishuaymana (see edit history) Link to comment Share on other sites More sharing options...
_Veronika_ Posted January 20, 2022 Author Share Posted January 20, 2022 Gracias por tu respuesta @luishuaymana creo que $val viene de aquí: public function getBackendPreparedProductData($id_product) { $available_groups = $this->getAvailableGroups($id_product); Belvg_SizeAssistant::setMultistore(); $array_unique = array(); $prepare_smarty_data = array(); foreach ($available_groups as $key => $value) { if (in_array($value, $array_unique)) { continue; } $array_unique[] = $value; $belvgSaGroupObj = new BelvgSAGroup($value['id_belvg_sa_group']); $check_exists_info = $belvgSaGroupObj->checkIsMeasured($id_product, TRUE); $prepare_smarty_data['groups_items_collection'][] = array( 'name' => $value['name'], 'id' => $value['id_belvg_sa_group'], 'is_measured' => isset($check_exists_info['is_measured']) ? $check_exists_info['is_measured'] : FALSE, 'is_exists' => isset($check_exists_info['id_belvg_sa_group_product']) ? $check_exists_info['id_belvg_sa_group_product'] : FALSE, //'def_collection' => $belvgSaGroupObj->getAttributeWithValues($this->context->language->id, $id_product), 'def_collection' => $belvgSaGroupObj->getAttribute($this->context->language->id), 'def_collection_ps_val' => $belvgSaGroupObj->getPsAttributeWithValuesForGrid($this->context->language->id, $id_product), ); } return $prepare_smarty_data; } public function getFrontendPreparedProductData($id_product) { $groups_arr = BelvgSAGroup::getGroupsByIdProduct($id_product); foreach ($groups_arr as &$group) { $belvgSaGroupObj = new BelvgSAGroup($group['id_belvg_sa_group']); $group['image_url'] = ''; if (file_exists(_PS_IMG_DIR_ . '/belvg_sa/' . $belvgSaGroupObj->id . '.jpg')) { $group['image_url'] = __PS_BASE_URI__ . 'img/belvg_sa/' . $belvgSaGroupObj->id . '.jpg'; } $group['def_collection'] = $belvgSaGroupObj->getAttribute($this->context->language->id); $group['def_collection_ps_val'] = $belvgSaGroupObj->getPsAttributeWithValuesForGrid($this->context->language->id, $id_product); } //print_r($groups_arr); die; return $groups_arr; } Es un modulo externo que he instalado y no me aclaro Link to comment Share on other sites More sharing options...
luishuaymana Posted January 20, 2022 Share Posted January 20, 2022 Puedes poner el codigo que te mencione anterior y luego en el front ver que sale,, y pasarlo aqui para revisar el json Link to comment Share on other sites More sharing options...
_Veronika_ Posted January 20, 2022 Author Share Posted January 20, 2022 Ok @luishuaymana Para ilustrar mejor lo que intento hacer, adjunto pantallazos: El primero es como hace el modulo por defecto, el segundo lo más que he conseguido hacer, el tercero es con el codigo que me indicaste. En definitiva, me falta que en la primera columna no se vea nada si en la segunda y tercera no hay valores, pero nada se me resiste Link to comment Share on other sites More sharing options...
luishuaymana Posted January 21, 2022 Share Posted January 21, 2022 Hola, puedes probar asi : modifica este código a tu php : public function getFrontendPreparedProductData($id_product) { $filtered = array(); $groups_arr = BelvgSAGroup::getGroupsByIdProduct($id_product); foreach ($groups_arr as &$group) { $belvgSaGroupObj = new BelvgSAGroup($group['id_belvg_sa_group']); $group['image_url'] = ''; if (file_exists(_PS_IMG_DIR_ . '/belvg_sa/' . $belvgSaGroupObj->id . '.jpg')) { $group['image_url'] = __PS_BASE_URI__ . 'img/belvg_sa/' . $belvgSaGroupObj->id . '.jpg'; } $group['def_collection'] = $belvgSaGroupObj->getAttribute($this->context->language->id); $verify = $belvgSaGroupObj->getPsAttributeWithValuesForGrid($this->context->language->id, $id_product); foreach ($verify as $key => $value) { foreach ($value['values'] as $v) { if($v == 0){ $filtered[$key] = false; } else{ $filtered[$key] = true; } } } foreach ($verify as $clave => $valor) { $valor['remove'] = $filtered[$clave]; $group['def_collection_ps_val'] = $valor; } } //print_r($groups_arr); die; return $groups_arr; } y en tu .tpl agrega esto : <tbody> {foreach from=$group.def_collection_ps_val item=attr name=collection} {if $attr.remove} <tr class="{if $smarty.foreach.collection.index % 2 != 0}alt{/if}"> <td class="ps_attr_name">{$attr.name|escape}</td> {foreach from=$attr.values item=val key=key} <td>{$val}</td> {/foreach} </tr> {/if} {/foreach} </tbody> La funcion se puede mejorar, pero con esto puedes lograr lo que pides.. comentanos.. Link to comment Share on other sites More sharing options...
_Veronika_ Posted January 21, 2022 Author Share Posted January 21, 2022 @luishuaymana Lo he probado pero aparecen otros valores que no son, paso imagen: Link to comment Share on other sites More sharing options...
luishuaymana Posted January 21, 2022 Share Posted January 21, 2022 (edited) en tu tpl antes de $group.def_collection_ps_val , existe otro foreach ? puedes adjuntar el .php principal de tu modulo para poder ayudarte mucho mas rapido Edited January 21, 2022 by luishuaymana (see edit history) Link to comment Share on other sites More sharing options...
_Veronika_ Posted January 21, 2022 Author Share Posted January 21, 2022 Si, este es el codigo desde el primer foreach y con el cambio que me dijiste <div style="display:none"> <div id="belvg_sizeassistant_content" class="belvgSizeassistantFancyContent"> <div id="sizeList"> <div class="belvgSizeListProductName">{$belvg_sa_productObj->name|escape}</div> <div class="belvgSizeListContent"> {foreach from=$belvg_sa_data item=group} {if !empty($group.image_url)} <div class="belvgSizeListImage"> <img src="{$group.image_url}" title="{$group.id_belvg_sa_group|escape}" width="{if $group.image_width}{$group.image_width}{else}600{/if}" height="{if $group.image_height}{$group.image_height}{else}600{/if}" /> </div> {/if} <div class="belvgSizeListData"> <div id="table_values_{$group.id_belvg_sa_group_product}" class="table_values" > <p class="is_measured_individually" {if !$group.is_measured && (!isset($group.is_exists) || !$group.is_exists)}style="display:none"{/if}>{l s='Product is measured individually' mod='belvg_sizeassistant'}</p> <table> <col> {foreach from=$group.def_collection item=sa_attr} <col width="150" valign="top"> {/foreach} <thead> <tr> <th></th> {foreach from=$group.def_collection item=sa_attr} <th>{$sa_attr.name|escape}</th> {/foreach} </tr> </thead> <tbody> {foreach from=$group.def_collection_ps_val item=attr name=collection} {if $attr.remove} <tr class="{if $smarty.foreach.collection.index % 2 != 0}alt{/if}"> <td class="ps_attr_name">{$attr.name|escape}</td> {foreach from=$attr.values item=val key=key} <td>{$val}</td> {/foreach} </tr> {/if} {/foreach} </tbody> </table> </div> </div> {/foreach} </div> </div> </div> </div> Link to comment Share on other sites More sharing options...
luishuaymana Posted January 21, 2022 Share Posted January 21, 2022 busca esta variable en tu .php princiapl, belvg_sa_data.. puedes adjuntar tu archivo sino para que sea mucho mas rapido Link to comment Share on other sites More sharing options...
_Veronika_ Posted January 21, 2022 Author Share Posted January 21, 2022 if (!defined('_PS_VERSION_')) { exit; } require_once(dirname(__FILE__) . '/classes/BelvgSAGroup.php'); require_once(dirname(__FILE__) . '/classes/BelvgSAAttribute.php'); class Belvg_SizeAssistant extends Module { public function __construct() { $this->name = 'belvg_sizeassistant'; $this->tab = 'front_office_features'; $this->version = '2.0.0'; $this->author = 'BelVG'; $this->need_instance = 0; $this->module_key = 'da22ecce04778039b65ddb25d65f7e3a'; $this->bootstrap = TRUE; parent::__construct(); $this->displayName = $this->l('Size Assistant'); $this->description = $this->l('Size Assistant allows creating visual and clear size guides for groups of products or particular items. Package for PrestaShop v.1.6.x'); } public function install() { if (!parent::install() OR !$this->registerHook('displayHeader') OR !$this->registerHook('displayProductButtons') OR !$this->registerHook('displayRightColumnProduct') OR !$this->registerHook('actionAttributeDelete') OR !$this->registerHook('actionAttributeGroupDelete') OR !$this->registerHook('displayAdminProductsExtra') OR !$this->registerHook('actionProductUpdate') ) { return FALSE; } include(dirname(__FILE__) . '/init/install_sql.php'); foreach ($sql as $s) { if (!Db::getInstance()->Execute($s)) { return FALSE; } } //make a new dir "belvg_sa" $images_dir = _PS_IMG_DIR_ . 'belvg_sa/'; if (!file_exists($images_dir)) { mkdir($images_dir, 0777); } $new_tab = new Tab(); $new_tab->class_name = 'AdminSizeAssistant'; $new_tab->id_parent = Tab::getCurrentParentId(); $new_tab->module = $this->name; $languages = Language::getLanguages(); foreach ($languages as $language) { $new_tab->name[$language['id_lang']] = 'Belvg Size Assistant'; } $new_tab->add(); return TRUE; } public function uninstall() { include(dirname(__FILE__) . '/init/uninstall_sql.php'); foreach ($sql as $s) { if (!Db::getInstance()->Execute($s)) { return FALSE; } } //delete dir "belvg_sa" $images_dir = _PS_IMG_DIR_ . 'belvg_sa/'; if (!file_exists($images_dir)) { mkdir($images_dir, 0777); } $idTabs = array(); $idTabs[] = Tab::getIdFromClassName('AdminSizeAssistant'); foreach ($idTabs as $idTab) { if ($idTab) { $tab = new Tab($idTab); $tab->delete(); } } if (!parent::uninstall()) { return FALSE; } return TRUE; } public function getAvailableGroups($id_product) { $product_obj = new Product($id_product, TRUE, $this->context->language->id); //BelvgSAGroup::checkDataIntegrity($id_product); $available_groups = array(); foreach ($product_obj->getAttributesGroups($this->context->language->id) as $attr) { $pre_sa_groups = BelvgSAGroup::getGroupByPsAttributeGroup($attr['id_attribute_group']); if (!empty($pre_sa_groups)) { foreach ($pre_sa_groups as $pre_sa_group) { $available_groups[] = $pre_sa_group; } } } return $available_groups; } public function getBackendPreparedProductData($id_product) { $available_groups = $this->getAvailableGroups($id_product); Belvg_SizeAssistant::setMultistore(); $array_unique = array(); $prepare_smarty_data = array(); foreach ($available_groups as $key => $value) { if (in_array($value, $array_unique)) { continue; } $array_unique[] = $value; $belvgSaGroupObj = new BelvgSAGroup($value['id_belvg_sa_group']); $check_exists_info = $belvgSaGroupObj->checkIsMeasured($id_product, TRUE); $prepare_smarty_data['groups_items_collection'][] = array( 'name' => $value['name'], 'id' => $value['id_belvg_sa_group'], 'is_measured' => isset($check_exists_info['is_measured']) ? $check_exists_info['is_measured'] : FALSE, 'is_exists' => isset($check_exists_info['id_belvg_sa_group_product']) ? $check_exists_info['id_belvg_sa_group_product'] : FALSE, //'def_collection' => $belvgSaGroupObj->getAttributeWithValues($this->context->language->id, $id_product), 'def_collection' => $belvgSaGroupObj->getAttribute($this->context->language->id), 'def_collection_ps_val' => $belvgSaGroupObj->getPsAttributeWithValuesForGrid($this->context->language->id, $id_product), ); } return $prepare_smarty_data; } public function getFrontendPreparedProductData($id_product) { $filtered = array(); $groups_arr = BelvgSAGroup::getGroupsByIdProduct($id_product); foreach ($groups_arr as &$group) { $belvgSaGroupObj = new BelvgSAGroup($group['id_belvg_sa_group']); $group['image_url'] = ''; if (file_exists(_PS_IMG_DIR_ . '/belvg_sa/' . $belvgSaGroupObj->id . '.jpg')) { $group['image_url'] = __PS_BASE_URI__ . 'img/belvg_sa/' . $belvgSaGroupObj->id . '.jpg'; } $group['def_collection'] = $belvgSaGroupObj->getAttribute($this->context->language->id); $verify = $belvgSaGroupObj->getPsAttributeWithValuesForGrid($this->context->language->id, $id_product); foreach ($verify as $key => $value) { foreach ($value['values'] as $v) { if($v == 0){ $filtered[$key] = false; } else{ $filtered[$key] = true; } } } foreach ($verify as $clave => $valor) { $valor['remove'] = $filtered[$clave]; $group['def_collection_ps_val'] = $valor; } } //print_r($groups_arr); die; return $groups_arr; } public function hookDisplayHeader() { $this->context->controller->addCSS(($this->_path) . 'css/styles.css', 'all'); } public function hookDisplayAdminProductsExtra($params) { $id_product = Tools::getValue('id_product'); $groups_arr = BelvgSAGroup::getGroupsByIdProduct($id_product); $template_path = dirname(__FILE__) . '/views/templates/admin/size_assistant/admin_products.tpl'; $data = $this->context->smarty->createTemplate($template_path); $prepare_smarty_data = $this->getBackendPreparedProductData($id_product); $data->assign(array( 'belvg_sa_data' => $prepare_smarty_data, //'belvg_bg_errors' => ((isset($this->context->cookie->belvg_bg_errors) && !empty($this->context->cookie->belvg_bg_errors)) ? $this->context->cookie->belvg_bg_errors : ''), )); return $data->fetch(); } public function sanitizeProductValues($id_product) { $sql_delete = 'DELETE FROM `' . _DB_PREFIX_ . 'belvg_sa_attribute_value_product` WHERE id_product = ' . (int)$id_product; Db::getInstance()->Execute($sql_delete); BelvgSAGroup::clearProductAssociationWithGroups($id_product); } public function hookActionProductUpdate($params) { $id_product = Tools::getValue('id_product'); $groups_id = Tools::getValue('group_id', array()); $measured_groups = Tools::getValue('is_measured', array()); $product_vals = Tools::getValue('product_val'); //assign product with group BelvgSAGroup::assignProductWithGroup($groups_id, $id_product, $measured_groups); $available_groups = $this->getAvailableGroups($id_product); if (empty($available_groups)) { $this->sanitizeProductValues($id_product); return TRUE; } foreach ($groups_id as $group_id) { //if product has been measured for this group if (in_array($group_id, $measured_groups)) { foreach ($product_vals[$group_id] as $id_belvg_sa_attribute => $attribute_values) { $attr_obj = new BelvgSAAttribute($id_belvg_sa_attribute); foreach ($attribute_values as $id_ps_attribute => $attribute_value) { $attr_obj->addProductValue($id_product, $id_ps_attribute, $attribute_value); } } } } /* print_r($params); print_r("--------------------------------------------------"); print_r($_POST); die; */ } public function hookDisplayRightColumnProduct($params) { $id_product = Tools::getValue('id_product'); $prepare_smarty_data = $this->getFrontendPreparedProductData($id_product); $this->smarty->assign(array( 'belvg_sa_data' => $prepare_smarty_data, 'belvg_sa_productObj' => $group['productObj'] = new Product($id_product, FALSE, $this->context->language->id) )); return $this->display(__FILE__, 'views/templates/frontend/product_page_link.tpl'); } public function hookActionAttributeDelete($params) { //DEFAULT VALUES $sql = 'SELECT id_belvg_sa_attribute_value FROM `' . _DB_PREFIX_ . 'belvg_sa_attribute_value` sa_a_v WHERE sa_a_v.id_attribute = ' . (int) $params['id_attribute']; $attribute_value_ids = Db::getInstance()->ExecuteS($sql); if (!empty($attribute_value_ids)) { $ids_array = array(); foreach ($attribute_value_ids as $value_id) { $ids_array[] = $value_id['id_belvg_sa_attribute_value']; } $ids_str = implode(",", $ids_array); $sql = 'DELETE FROM `' . _DB_PREFIX_ . 'belvg_sa_attribute_value` WHERE id_belvg_sa_attribute_value IN (' . $ids_str . ')'; Db::getInstance()->Execute($sql); } //PRODUCT VALUES $sql = 'SELECT id_belvg_sa_attribute_value_product FROM `' . _DB_PREFIX_ . 'belvg_sa_attribute_value_product` sa_a_v_p WHERE sa_a_v_p.id_attribute = ' . (int) $params['id_attribute']; $attribute_value_ids = Db::getInstance()->ExecuteS($sql); if (!empty($attribute_value_ids)) { $ids_array = array(); foreach ($attribute_value_ids as $value_id) { $ids_array[] = $value_id['id_belvg_sa_attribute_value']; } $ids_str = implode(",", $ids_array); $sql = 'DELETE FROM `' . _DB_PREFIX_ . 'belvg_sa_attribute_value_product` WHERE id_belvg_sa_attribute_value_product IN (' . $ids_str . ')'; Db::getInstance()->Execute($sql); } } public function hookActionAttributeGroupDelete($params) { $sql = 'SELECT id_belvg_sa_group FROM `' . _DB_PREFIX_ . 'belvg_sa_group` sa_g WHERE sa_g.id_attribute_group = ' . (int) $params['id_attribute_group']; $sa_group_ids = Db::getInstance()->ExecuteS($sql); foreach ($sa_group_ids as $group_id) { $group_obj = new BelvgSAGroup($group_id['id_belvg_sa_group']); $group_obj->delete(); } } protected function removeDir($path) { if (file_exists($path) && is_dir($path)) { $dirHandle = opendir($path); while (FALSE !== ($file = readdir($dirHandle))) { $tmpPath = $path . '/' . $file; @chmod($tmpPath, 0777); if (is_dir($tmpPath)) { $this->removeDir($tmpPath); } else { if (!unlink($tmpPath)) { return FALSE; } } } closedir($dirHandle); } else { return FALSE; } return TRUE; } public static function setMultistore() { $shopCollection = Shop::getShopsCollection(); Shop::setContext(Shop::CONTEXT_SHOP, $shopCollection->getFirst()->id); } } Link to comment Share on other sites More sharing options...
luishuaymana Posted January 21, 2022 Share Posted January 21, 2022 public function getFrontendPreparedProductData($id_product) { $filtered = array(); $ready = array(); $newData = array(); $groups_arr = BelvgSAGroup::getGroupsByIdProduct($id_product); foreach ($groups_arr as &$group) { $belvgSaGroupObj = new BelvgSAGroup($group['id_belvg_sa_group']); $group['image_url'] = ''; if (file_exists(_PS_IMG_DIR_ . '/belvg_sa/' . $belvgSaGroupObj->id . '.jpg')) { $group['image_url'] = __PS_BASE_URI__ . 'img/belvg_sa/' . $belvgSaGroupObj->id . '.jpg'; } $group['def_collection'] = $belvgSaGroupObj->getAttribute($this->context->language->id); $group['def_collection_ps_val'] = $belvgSaGroupObj->getPsAttributeWithValuesForGrid($this->context->language->id, $id_product); } foreach ($groups_arr as $group) { foreach ($group['def_collection_ps_val'] as $key => $value) { foreach ($value['values'] as $v) { if($v == 0){ $filtered[$key] = false; } else{ $filtered[$key] = true; } } } } foreach ($groups_arr as $i => $group) { $ready[$i] = $group; foreach ($group['def_collection_ps_val'] as $clave => $valor) { $valor['remove'] = $filtered[$clave]; $ready[$i]['def_collection_ps_val'] = $valor; } } //print_r($groups_arr); die; // return $groups_arr; return $ready; } ... Link to comment Share on other sites More sharing options...
_Veronika_ Posted January 21, 2022 Author Share Posted January 21, 2022 Ayy pues no, sigue igual que antes sin cambios Link to comment Share on other sites More sharing options...
luishuaymana Posted January 21, 2022 Share Posted January 21, 2022 2 minutes ago, veronica garcia said: Ayy pues no, sigue igual que antes sin cambios agregaste en el tpl?, si aun persiste por mp me mandas tu modulo y lo reviso Link to comment Share on other sites More sharing options...
_Veronika_ Posted January 21, 2022 Author Share Posted January 21, 2022 Ahora solo agregué en el .php la ultima modificacion, lo anterior si lo tenia agregado en el tpl Link to comment Share on other sites More sharing options...
luishuaymana Posted January 21, 2022 Share Posted January 21, 2022 Hola, esta solución puede mejorar pero cumple lo que necesita. Edite su función getFrontendPreparedProductData en el archivo belvg_sizeassistant.php por: public function getFrontendPreparedProductData($id_product) { $groups_arr = BelvgSAGroup::getGroupsByIdProduct($id_product); foreach ($groups_arr as &$group) { $belvgSaGroupObj = new BelvgSAGroup($group['id_belvg_sa_group']); $group['image_url'] = ''; if (file_exists(_PS_IMG_DIR_ . '/belvg_sa/' . $belvgSaGroupObj->id . '.jpg')) { $group['image_url'] = __PS_BASE_URI__ . 'img/belvg_sa/' . $belvgSaGroupObj->id . '.jpg'; } $group['def_collection'] = $belvgSaGroupObj->getAttribute($this->context->language->id); $group['def_collection_ps_val'] = $belvgSaGroupObj->getPsAttributeWithValuesForGrid($this->context->language->id, $id_product); } $filtered = array(); $collection = array(); $groupFiltered = array(); foreach ($groups_arr as $de => $ga) { foreach ($ga['def_collection_ps_val'] as $key => $dcpv) { foreach ($dcpv['values'] as $clave => $v) { if($v == 0){ $filtered[$key] = false; } else{ $filtered[$key] = true; } } $dcpv['remove'] = $filtered[$key]; $collection[] = $dcpv; } $ga['def_collection_ps_val_2'] = $collection; $groupFiltered[] = $ga; } return $groupFiltered; // return $groups_arr; } y en su tpl cambie a esto.: <tbody> {foreach from=$group.def_collection_ps_val_2 item=attr name=collection} {if $attr.remove} <tr class="{if $smarty.foreach.collection.index % 2 != 0}alt{/if}"> <td class="ps_attr_name">{$attr.name|escape}</td> {foreach from=$attr.values item=val key=key} <td>{if ($val)}{$val}{else}-{/if}</td> {/foreach} </tr> {/if} {/foreach} </tbody> Listo. si te sirvió pon solucionado. 1 Link to comment Share on other sites More sharing options...
_Veronika_ Posted January 21, 2022 Author Share Posted January 21, 2022 @luishuaymana Funciona perfecto, muchisimas gracias por tu ayuda. Yo crei que con un solo condicional lo podria solucionar pero estaba equivocada, sin ti no lo podría haber conseguido. Graciaaaassss 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now