From c71d578931ed9126937fdcb3dda0e8e5a332f0c8 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Wed, 16 Dec 2015 16:39:50 +0100 Subject: [PATCH 01/14] Fix: for avoid division by 0 --- htdocs/core/tpl/objectline_create.tpl.php | 19 ++++++++++--------- htdocs/core/tpl/objectline_edit.tpl.php | 17 ++++++++++------- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/htdocs/core/tpl/objectline_create.tpl.php b/htdocs/core/tpl/objectline_create.tpl.php index e600df26147..d2827cb0b8e 100644 --- a/htdocs/core/tpl/objectline_create.tpl.php +++ b/htdocs/core/tpl/objectline_create.tpl.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2010-2015 Regis Houssin * Copyright (C) 2010-2014 Laurent Destailleur * Copyright (C) 2012-2013 Christophe Battarel * Copyright (C) 2013 Florian Henry @@ -352,35 +352,36 @@ if (! empty($usemargins) && $user->rights->margins->creer) if (! $.isNumeric(rate.val().replace(',','.'))) { - alert('trans("rateMustBeNumeric")); ?>'); + alert('transnoentities("rateMustBeNumeric")); ?>'); e.stopPropagation(); setTimeout(function () { rate.focus() }, 50); return false; } if (npRate == "np_markRate" && rate.val() >= 100) { - alert('trans("markRateShouldBeLesserThan100")); ?>'); + alert('transnoentities("markRateShouldBeLesserThan100")); ?>'); e.stopPropagation(); setTimeout(function () { rate.focus() }, 50); return false; } - var price = 0; remisejs=price2numjs(remise.val()); + if (remisejs == '') remisejs=0; - if (remisejs != 100) // If a discount not 100 or no discount + bpjs=price2numjs(buying_price.val()); + + if (bpjs > 0 && remisejs != 100) // If buying_price and a discount not 100 or no discount { - if (remisejs == '') remisejs=0; - - bpjs=price2numjs(buying_price.val()); + var price = 0; ratejs=price2numjs(rate.val()); if (npRate == "np_marginRate") price = ((bpjs * (1 + ratejs / 100)) / (1 - remisejs / 100)); else if (npRate == "np_markRate") price = ((bpjs / (1 - ratejs / 100)) / (1 - remisejs / 100)); + + $("input[name='price_ht']:first").val(price); // TODO Must use a function like php price to have here a formated value } - $("input[name='price_ht']:first").val(price); // TODO Must use a function like php price to have here a formated value return true; } diff --git a/htdocs/core/tpl/objectline_edit.tpl.php b/htdocs/core/tpl/objectline_edit.tpl.php index bb75b007524..eacba3519af 100644 --- a/htdocs/core/tpl/objectline_edit.tpl.php +++ b/htdocs/core/tpl/objectline_edit.tpl.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2010-2015 Regis Houssin * Copyright (C) 2010-2012 Laurent Destailleur * Copyright (C) 2012 Christophe Battarel * Copyright (C) 2013 Florian Henry @@ -282,25 +282,27 @@ if (! empty($conf->margin->enabled)) if (! $.isNumeric(rate.val().replace(',','.'))) { - alert('trans("rateMustBeNumeric"); ?>'); + alert('transnoentities("rateMustBeNumeric"); ?>'); e.stopPropagation(); setTimeout(function () { rate.focus() }, 50); return false; } if (npRate == "np_markRate" && rate.val() >= 100) { - alert('trans("markRateShouldBeLesserThan100"); ?>'); + alert('transnoentities("markRateShouldBeLesserThan100"); ?>'); e.stopPropagation(); setTimeout(function () { rate.focus() }, 50); return false; } - var price = 0; remisejs=price2numjs(remise.val()); + if (remisejs == '') remisejs=0; - if (remisejs != 100) + bpjs=price2numjs(buying_price.val()); + + if (bpjs > 0 && remisejs != 100) // If buying_price and a discount not 100 or no discount { - bpjs=price2numjs(buying_price.val()); + var price = 0; ratejs=price2numjs(rate.val()); /* console.log(npRate+" - "+bpjs+" - "+ratejs); */ @@ -309,8 +311,9 @@ if (! empty($conf->margin->enabled)) price = ((bpjs * (1 + ratejs / 100)) / (1 - remisejs / 100)); else if (npRate == "np_markRate") price = ((bpjs / (1 - ratejs / 100)) / (1 - remisejs / 100)); + + $("input[name='price_ht']:first").val(price); // TODO Must use a function like php price to have here a formated value } - $("input[name='price_ht']:first").val(price); // TODO Must use a function like php price to have here a formated value return true; } From 905f9d78edbfe2089ed48dbbc17769ae06f6bb79 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Fri, 15 Jan 2016 13:12:19 +0100 Subject: [PATCH 02/14] Fix: $outputlangs is not defined (dolibarr 3.7, 3.8, 3.9) --- htdocs/fourn/commande/card.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/htdocs/fourn/commande/card.php b/htdocs/fourn/commande/card.php index 20abbdf8378..0ce61f0eb51 100644 --- a/htdocs/fourn/commande/card.php +++ b/htdocs/fourn/commande/card.php @@ -2,7 +2,7 @@ /* Copyright (C) 2004-2006 Rodolphe Quiedeville * Copyright (C) 2004-2013 Laurent Destailleur * Copyright (C) 2005 Eric Seigne - * Copyright (C) 2005-2012 Regis Houssin + * Copyright (C) 2005-2016 Regis Houssin * Copyright (C) 2010-2015 Juanjo Menent * Copyright (C) 2011 Philippe Grand * Copyright (C) 2012 Marcos García @@ -121,7 +121,7 @@ include DOL_DOCUMENT_ROOT.'/core/actions_setnotes.inc.php'; // Must be include, if ($action == 'setref_supplier' && $user->rights->fournisseur->commande->creer) { - + $result=$object->setValueFrom('ref_supplier',GETPOST('ref_supplier','alpha')); if ($result < 0) dol_print_error($db, $object->error); else $object->ref_supplier=GETPOST('ref_supplier','alpha'); // ADD : ref_supplier to object property, otherwise not visibly updated on change @@ -615,6 +615,14 @@ if ($action == 'confirm_commande' && $confirm == 'yes' && $user->rights->fournis if ($result > 0) { if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { + $outputlangs = $langs; + $newlang = ''; + if ($conf->global->MAIN_MULTILANGS && empty($newlang) && GETPOST('lang_id')) $newlang = GETPOST('lang_id','alpha'); + if ($conf->global->MAIN_MULTILANGS && empty($newlang)) $newlang = $object->thirdparty->default_lang; + if (! empty($newlang)) { + $outputlangs = new Translate("", $conf); + $outputlangs->setDefaultLang($newlang); + } $object->generateDocument($object->modelpdf, $outputlangs, $hidedetails, $hidedesc, $hideref); } header("Location: ".$_SERVER["PHP_SELF"]."?id=".$object->id); From 6aeb18ed7532aa534a3fc261145fd29f928238e6 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Fri, 15 Jan 2016 13:14:55 +0100 Subject: [PATCH 03/14] Revert "Fix: for avoid division by 0" This reverts commit c71d578931ed9126937fdcb3dda0e8e5a332f0c8. --- htdocs/core/tpl/objectline_create.tpl.php | 19 +++++++++---------- htdocs/core/tpl/objectline_edit.tpl.php | 17 +++++++---------- 2 files changed, 16 insertions(+), 20 deletions(-) diff --git a/htdocs/core/tpl/objectline_create.tpl.php b/htdocs/core/tpl/objectline_create.tpl.php index d2827cb0b8e..e600df26147 100644 --- a/htdocs/core/tpl/objectline_create.tpl.php +++ b/htdocs/core/tpl/objectline_create.tpl.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2010-2012 Regis Houssin * Copyright (C) 2010-2014 Laurent Destailleur * Copyright (C) 2012-2013 Christophe Battarel * Copyright (C) 2013 Florian Henry @@ -352,36 +352,35 @@ if (! empty($usemargins) && $user->rights->margins->creer) if (! $.isNumeric(rate.val().replace(',','.'))) { - alert('transnoentities("rateMustBeNumeric")); ?>'); + alert('trans("rateMustBeNumeric")); ?>'); e.stopPropagation(); setTimeout(function () { rate.focus() }, 50); return false; } if (npRate == "np_markRate" && rate.val() >= 100) { - alert('transnoentities("markRateShouldBeLesserThan100")); ?>'); + alert('trans("markRateShouldBeLesserThan100")); ?>'); e.stopPropagation(); setTimeout(function () { rate.focus() }, 50); return false; } + var price = 0; remisejs=price2numjs(remise.val()); - if (remisejs == '') remisejs=0; - bpjs=price2numjs(buying_price.val()); - - if (bpjs > 0 && remisejs != 100) // If buying_price and a discount not 100 or no discount + if (remisejs != 100) // If a discount not 100 or no discount { - var price = 0; + if (remisejs == '') remisejs=0; + + bpjs=price2numjs(buying_price.val()); ratejs=price2numjs(rate.val()); if (npRate == "np_marginRate") price = ((bpjs * (1 + ratejs / 100)) / (1 - remisejs / 100)); else if (npRate == "np_markRate") price = ((bpjs / (1 - ratejs / 100)) / (1 - remisejs / 100)); - - $("input[name='price_ht']:first").val(price); // TODO Must use a function like php price to have here a formated value } + $("input[name='price_ht']:first").val(price); // TODO Must use a function like php price to have here a formated value return true; } diff --git a/htdocs/core/tpl/objectline_edit.tpl.php b/htdocs/core/tpl/objectline_edit.tpl.php index eacba3519af..bb75b007524 100644 --- a/htdocs/core/tpl/objectline_edit.tpl.php +++ b/htdocs/core/tpl/objectline_edit.tpl.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2010-2012 Regis Houssin * Copyright (C) 2010-2012 Laurent Destailleur * Copyright (C) 2012 Christophe Battarel * Copyright (C) 2013 Florian Henry @@ -282,27 +282,25 @@ if (! empty($conf->margin->enabled)) if (! $.isNumeric(rate.val().replace(',','.'))) { - alert('transnoentities("rateMustBeNumeric"); ?>'); + alert('trans("rateMustBeNumeric"); ?>'); e.stopPropagation(); setTimeout(function () { rate.focus() }, 50); return false; } if (npRate == "np_markRate" && rate.val() >= 100) { - alert('transnoentities("markRateShouldBeLesserThan100"); ?>'); + alert('trans("markRateShouldBeLesserThan100"); ?>'); e.stopPropagation(); setTimeout(function () { rate.focus() }, 50); return false; } + var price = 0; remisejs=price2numjs(remise.val()); - if (remisejs == '') remisejs=0; - bpjs=price2numjs(buying_price.val()); - - if (bpjs > 0 && remisejs != 100) // If buying_price and a discount not 100 or no discount + if (remisejs != 100) { - var price = 0; + bpjs=price2numjs(buying_price.val()); ratejs=price2numjs(rate.val()); /* console.log(npRate+" - "+bpjs+" - "+ratejs); */ @@ -311,9 +309,8 @@ if (! empty($conf->margin->enabled)) price = ((bpjs * (1 + ratejs / 100)) / (1 - remisejs / 100)); else if (npRate == "np_markRate") price = ((bpjs / (1 - ratejs / 100)) / (1 - remisejs / 100)); - - $("input[name='price_ht']:first").val(price); // TODO Must use a function like php price to have here a formated value } + $("input[name='price_ht']:first").val(price); // TODO Must use a function like php price to have here a formated value return true; } From da637db162be2131c03366513796579e97280183 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcos=20Garci=CC=81a=20de=20La=20Fuente?= Date: Mon, 18 Jan 2016 10:13:58 +0100 Subject: [PATCH 04/14] FIX #4440 Wrong price is filled by Product::fetch into multiprices arrays --- htdocs/core/class/html.form.class.php | 2 +- htdocs/product/class/product.class.php | 4 ++-- htdocs/product/price.php | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 10db9442ca6..71d28e2ea42 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -1551,7 +1551,7 @@ class Form $sql.= " WHERE fk_product='".$objp->rowid."'"; $sql.= " AND entity IN (".getEntity('productprice', 1).")"; $sql.= " AND price_level=".$price_level; - $sql.= " ORDER BY date_price"; + $sql.= " ORDER BY date_price, rowid"; $sql.= " DESC LIMIT 1"; dol_syslog(get_class($this).'::constructProductListOption search price for level '.$price_level.' sql='.$sql); diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index 72f826d546f..2bf92821c1e 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -1510,7 +1510,7 @@ class Product extends CommonObject $sql.= " WHERE entity IN (".getEntity('productprice', 1).")"; $sql.= " AND price_level=".$i; $sql.= " AND fk_product = '".$this->id."'"; - $sql.= " ORDER BY date_price DESC"; + $sql.= " ORDER BY date_price, rowid DESC"; $sql.= " LIMIT 1"; $resql = $this->db->query($sql); if ($resql) @@ -1571,7 +1571,7 @@ class Product extends CommonObject $sql.= " price_base_type, tva_tx, tosell, price_by_qty, rowid"; $sql.= " FROM ".MAIN_DB_PREFIX."product_price"; $sql.= " WHERE fk_product = '".$this->id."'"; - $sql.= " ORDER BY date_price DESC"; + $sql.= " ORDER BY date_price, rowid DESC"; $sql.= " LIMIT 1"; $resql = $this->db->query($sql); if ($resql) diff --git a/htdocs/product/price.php b/htdocs/product/price.php index 9c916ec4b74..79ee0dd0f55 100644 --- a/htdocs/product/price.php +++ b/htdocs/product/price.php @@ -687,7 +687,7 @@ $sql .= " WHERE fk_product = " . $object->id; $sql .= " AND p.entity IN (" . getEntity('productprice', 1) . ")"; $sql .= " AND p.fk_user_author = u.rowid"; if (! empty($socid) && ! empty($conf->global->PRODUIT_MULTIPRICES)) $sql .= " AND p.price_level = " . $soc->price_level; -$sql .= " ORDER BY p.date_price DESC, p.price_level ASC, p.rowid DESC"; +$sql .= " ORDER BY p.date_price, p.rowid DESC, p.price_level ASC"; // $sql .= $db->plimit(); dol_syslog("sql=" . $sql); From 9ce6e2938cedc967026b68b5ce2cfb1cd291257e Mon Sep 17 00:00:00 2001 From: arnaud Date: Tue, 19 Jan 2016 09:46:27 +0100 Subject: [PATCH 05/14] FIX bookmark's user change after update if the user hasn't superadmin right --- htdocs/bookmarks/card.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/htdocs/bookmarks/card.php b/htdocs/bookmarks/card.php index a821cf8e94f..fd46165b794 100644 --- a/htdocs/bookmarks/card.php +++ b/htdocs/bookmarks/card.php @@ -70,7 +70,9 @@ if ($action == 'add' || $action == 'addproduct' || $action == 'update') } if ($action == 'update') $bookmark->fetch($_POST["id"]); - $bookmark->fk_user=$userid; + // Check if null because user not admin can't set an user and send empty value here. + if(!empty($userid)) + $bookmark->fk_user=$userid; $bookmark->title=$title; $bookmark->url=$url; $bookmark->target=$target; From 50b0019ead204107919fec379b2dbf45c7aedea2 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 22 Jan 2016 11:54:14 +0100 Subject: [PATCH 06/14] A protection to avoid situation loosing all admin accounts --- htdocs/user/class/user.class.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/htdocs/user/class/user.class.php b/htdocs/user/class/user.class.php index 4459dfc3fc0..0a03e47fca4 100644 --- a/htdocs/user/class/user.class.php +++ b/htdocs/user/class/user.class.php @@ -262,6 +262,10 @@ class User extends CommonObject $this->fk_member = $obj->fk_member; $this->fk_user = $obj->fk_user; + // Protection when module multicompany was set, admin was set to first entity and the module disabled, + // then this admin user must be admin for all entities. + if (empty($conf->multicompany->enabled) && $this->admin && $this->entity == 1) $this->entity = 0; + // Retreive all extrafield for thirdparty // fetch optionals attributes and labels require_once(DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'); From fedf1f3288addbc32ad6b0de1492058ceaea9ee5 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 22 Jan 2016 14:02:48 +0100 Subject: [PATCH 07/14] Fix view of product image when using old path Fix size of image uploaded on user. --- htdocs/core/lib/files.lib.php | 6 ++++-- htdocs/core/lib/functions.lib.php | 4 +++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/htdocs/core/lib/files.lib.php b/htdocs/core/lib/files.lib.php index 73de2784427..8fc5bea72b6 100644 --- a/htdocs/core/lib/files.lib.php +++ b/htdocs/core/lib/files.lib.php @@ -1127,6 +1127,8 @@ function dol_add_file_process($upload_dir, $allowoverwrite=0, $donotupdatesessio if (is_numeric($resupload) && $resupload > 0) { include_once DOL_DOCUMENT_ROOT.'/core/lib/images.lib.php'; + global $maxwidthsmall, $maxheightsmall, $maxwidthmini, $maxheightmini; + if (empty($donotupdatesession)) { include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php'; @@ -1137,10 +1139,10 @@ function dol_add_file_process($upload_dir, $allowoverwrite=0, $donotupdatesessio { // Create small thumbs for image (Ratio is near 16/9) // Used on logon for example - $imgThumbSmall = vignette($destpath, 160, 120, '_small', 50, "thumbs"); + $imgThumbSmall = vignette($destpath, $maxwidthsmall, $maxheigthsmall, '_small', 50, "thumbs"); // Create mini thumbs for image (Ratio is near 16/9) // Used on menu or for setup page for example - $imgThumbMini = vignette($destpath, 160, 120, '_mini', 50, "thumbs"); + $imgThumbMini = vignette($destpath, $maxwidthmini, $maxheightmini, '_mini', 50, "thumbs"); } setEventMessage($langs->trans("FileTransferComplete")); diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 8c71b882d21..41a9d7c78b7 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -3762,7 +3762,9 @@ function get_exdir($num,$level,$alpha,$withoutslash,$object,$modulepart) $path = ''; - if (! empty($level) && in_array($modulepart, array('cheque','user','category','holiday','shipment', 'member','don','donation','supplier_invoice','invoice_supplier','mailing'))) + $arrayforoldpath=array('cheque','user','category','holiday','shipment', 'member','don','donation','supplier_invoice','invoice_supplier','mailing'); + if (! empty($conf->global->PRODUCT_USE_OLD_PATH_FOR_PHOTO)) $arrayforoldpath[]='product'; + if (! empty($level) && in_array($modulepart, $arrayforoldpath)) { // This part should be removed once all code is using "get_exdir" to forge path, with all parameters provided if (empty($alpha)) $num = preg_replace('/([^0-9])/i','',$num); From 49a325e7aecb2ba33bac0c7cf5fa74dcefd3ba31 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 22 Jan 2016 14:10:27 +0100 Subject: [PATCH 08/14] Fix: We must ue the "small" size of imge to show on card pages. --- htdocs/user/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/user/card.php b/htdocs/user/card.php index 5d63c755417..6324a6bb37f 100644 --- a/htdocs/user/card.php +++ b/htdocs/user/card.php @@ -1213,7 +1213,7 @@ else // Photo print ''; - print $form->showphoto('userphoto',$object,100); + print $form->showphoto('userphoto',$object,100,0,0,'photowithmargin','small'); print ''; print ''."\n"; From dadc24462a417038e9a7d22aaa640fca524fdfb0 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 22 Jan 2016 14:14:39 +0100 Subject: [PATCH 09/14] Fix: We must ue the "small" size of imge to show on card pages. --- htdocs/user/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/user/card.php b/htdocs/user/card.php index 6324a6bb37f..f4e001bb8f0 100644 --- a/htdocs/user/card.php +++ b/htdocs/user/card.php @@ -1783,7 +1783,7 @@ else // Photo print ''; - print $form->showphoto('userphoto',$object,100,0,$caneditfield); + print $form->showphoto('userphoto',$object,100,0,$caneditfield,'photowithmargin','small'); print ''; print ''; From 540bb04cac9196921ac383b0c3d886d49dc4e8c5 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 22 Jan 2016 14:29:44 +0100 Subject: [PATCH 10/14] Update demo init data --- dev/initdata/img/mybigcompany.png | Bin 5935 -> 9827 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/dev/initdata/img/mybigcompany.png b/dev/initdata/img/mybigcompany.png index 7b9747e073b0a521d04cd6886a28d6102e3c31e5..62a96380acc14634189454f47c40b41fbd818abd 100644 GIT binary patch literal 9827 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 literal 5935 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 nJK<8u^L#AoGau(4V)UO7e~i$vZR^!1JG= From 4c3f9db2a1c47e38da374765e5162cb88d17155d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 22 Jan 2016 17:34:11 +0100 Subject: [PATCH 11/14] Add demo data --- dev/initdata/img/comapnycorp1company.png | Bin 0 -> 16141 bytes dev/initdata/img/compxp4523product.jpg | Bin 0 -> 17068 bytes dev/initdata/img/ldestailleur_200x200.jpg | Bin 0 -> 7444 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 dev/initdata/img/comapnycorp1company.png create mode 100644 dev/initdata/img/compxp4523product.jpg create mode 100644 dev/initdata/img/ldestailleur_200x200.jpg diff --git a/dev/initdata/img/comapnycorp1company.png b/dev/initdata/img/comapnycorp1company.png new file mode 100644 index 0000000000000000000000000000000000000000..7d45cad6258c5f5ebcd34495c9a055a12014df37 GIT binary patch literal 16141 zcmZ8oWk6d^vo7xL?q1v>!QI`8Yq3(?-95MmcPkXv;#w$HJQOQVa433tzn}L{lC#-4 zyE{9xJM+v;tcIFA1}Z7)hYuex6cuE&K74>le*Zm*jQIX(;xnD_;e*(sqKu@D&)Qia zN;dgOMn(DUX+!V#snZ5KyEBt;yXjN(x|FWw2uukD1!Gv0P2A%z)eN4>=DV&|R_@7p zLx>jAf-8t*=;`ppTwh7bJzFIsB%ecw`EeGhddj~M6`o;4S7La_qo;J9G@ z(Yce+!opHZSEW9A;LhP}-O=jN)eqsLjovGxo!kzAewg?7eg42Hg)6HBugTpMqOtPH z;+=er#(%TMq)fl5s~ah*(=>(_vG`^ia!Gda=^>Ga7+o$df<_POyl1#amdFJgL$3~2 zB*Q~_pIHYTx`HO0bmT``(8Pxz-v706S#YJiPh8Fjdz42oot|ZEUN1==`MonXkA6Wn zS@}FBm!{06j9=Hqw9nrA*xSmar}jE~v0Sn54;J#IOX`X2?0>Z7ceb``)j0FLzhO5` z_9rSv449*P&L5svM{zTxey+9AG;JcZ0qG#lzijTT^880z942*_&R6u0&yk+A*smLV z>jzMH!Ik@fMhq8E1|OVIRjux(B*c0$!h)mOd6}A zn?LT>7J2{Mcr=)_tN-NoXCC$9C zrWkG&4xdfm+j0?Ei&X}15iums168Qe5r(PJnh0vk++_4ZMKPFL9)c+_}px$QJC|#OY)}Kue zqWLA7FkrqozQV{Q;;A`O=h=8xJ7BBY>`QlEOle(I);oIaiu2=r$;8%9SFZPSRplzO zBEb!m?cW*H8T3z<0*p!Gf!K)QI9WoEWW{$iNQlHMJwK%dVOW1dDPB@~^uIQY@U5~BWZndSpZooxOaXndNr_stl{LH^FO zKs@;dFzOq#Y=?J8YSdAVzBEUiFy^DrUoPUI9HHMH?MryB^k-9i9~H__yV*wRLFBX4 zh*rc>dNRwgI+FaPzKpSJw(TRBCGJ~1h*sG+@{**J%eg{jO_nZnDMYEqqOl6p`Jp4` z=z^WBU9Jj=LadvypkC08R=E`}vYk0M@ld!>No$qD0<%uDYl`&ly82HH_YvDz&15OE z^u99D2Vr&|6&AX9WNT^%K!P1%ICpw1T;gNNBo2!XkO*DtSztRU7vHObgp=9h^z6J& zmUpzp3${$@1~4Z6t~m)+QPk`dqDOty6UTI@?DLMV)4FI6tRO`rT&u+g;{W>4u<6V4 zn%mb=r=6qW_KK%F@fqB+nbl;@mNTrDx8j*ErhhRmv?C4YZrQ7uFfW}^R>=ZR4y{3^7%mCWjTNYBB7lbH*sQLO`?(PxlhJ1tB@GE0-Y+Z zB3%r}eb@oJ6G;LMr#^;E_Fe&taeKe%f;!pBi!S(gK4Pd$Y_aPlb@*JBn{ErrIp557 zn9%$rv4a70PO`#?6&{!7bzs09v6QdSvpM?ca+{>dT1OI0xOM0zCTugW2e%63T3@7( z9g9=D1%LN#Myi(ip^-_WgtLHUdx=Ln;CH%^GS36k6D8G>-qjTZK(|hj1M$sZy5Cy! zeZC(wHu|)Md9K0?XeMQZ9sW7&#$t99kBXObp<=^zY|vZ;SF3amA7%@D>y4m5V6NLI4wNSr|)BB>p9uw|BbsWW~vifDdN`HbZR*|}s zZxm(17cReT%6ze4S(BA6qug2KN@NEgPS4*nhtH(7O-8GrVW8!LssFrHG#Ar_Q)7tAet{e2XkmQ(e`qntN$zr$=j+ie(PR5ViBuFKHjUUzP9w#Wn zT!t1)kn7Tcszg7CT#4P3=!W-95*(n*VN8_LQ!F<=b?4@%^kR;&L!!IdEf_%fjxw~~ z;$HiK=}J|-ex#hU=7^<~^lY2sqDCWfYm>h(<)mTemHV%a(3@y8BR!F?#^l(NlDD-x#Ar=K_ZUc`UQ>@<&6fsTG2OUF^bB5YKi2n9dx{9%-)T&F#ndfD?N~nkemT19DvrT*V zM30I4wK<>P2@sjA8h;B`^CC<*6zQ$%#@C)pF~!lB!t?9D-lZ< z9{vcgQsr!Nkg|pG{`~aayq1^yD<(<<5B$3=@{4|PheGMtl?aN=MawcGvQyTKIpVB> zSI!`M*Ar$*)nLuAZ&UrJ|BV#zog{%Twv?}L4$6e5PomN0BX2~a*R)qdQDx#?`RM%Pv$baP=PCSKHnuZ%Ir5fGg3(O z+_eWz8Rum_PUAw@Az+9k;RapVzN<8t;eg)YOD0IGnlt9mQ^(zV&`(06UfDuktR8W! z_1>cP(zQwG66vQdS-?z(C0C6UWv(qiXs#elds5aor8mif*$&>e$KF}Z*q^FxT2LPx z+DBb2w+xGDwIZFB5|E?U5Vrra1gf+2p&0sI1dq@-1&|rr`;yv_-}>~+aJnMCywT?_C2ZjQFMD?m};VQERads=B~7V780 z(>koxzr2h*ztA@D8NFn&(?@AK#Sc_b`lj2~cx0x^??Xaa7FaPRSluM^>7-!?vwuO1 zZl;^r4xnLgV}*$==FID8#!rIFO*Cm9`)jo<*KQrZ!v_?y0E_g>qN;-B0>r(ct!PP& zY&}T=K4h=`;RoCey{+GItUspR7lV`AIOT%ZmOX(<&b#lHP=`s=?2USJYDQ(aqTOOA zMWgMM-qgzNEIzRpvsnn>PayG|DkzQ?8yi(@9T_6eZCd2(%2Cc%8huzYmQnceV!dSz z3w(qg<$guH7-bVMD0pN{jA4bn-h^0>mu{nb#y5l-5z-NTv{e?dG&c_i8_J|L29YnE zK>M|;!!ZG2&Jk|7{qaxfu5?>U5|Pg2imUUjVS+BhC%U0D5B7UfFNH}n4-7nQ(yJdv zMPAQ`EnZb;<>lu4eFeSdiAEJl^wD3`Sd~!WKHwh??|X2YDEc=T1b z`b~dSqc@)S3aiv}r15CeCR=V(|F_MozBm6Sh74bO!3g_8K8Ci><~Nh$L(W+2!+f+8 zdVL`xJ5(1E$Etm($MzYSr~0X7+ZP)nOa zlNimgFeyhFGTDQQ+NMt?IXlV8*~$0AX7Bv7q-Kv9BNn0+GANo+v!mDB89~_-waeA5 zSI`?D1r-uo4}lBDf|VpM`z;%3L-9drytHg>!?|=Af4pEKe1N!QZyRu7M5xX(PGzKg z-g9CXB_y|ESArc*k25)3!w{R^;(3`Sf7E@_ILe;`AWlGJO6G(8+o0cQQx9ROs!fT$ z#_UQ7+s6^pe*T!t_WK)8Fa6U5)%7nxhlBA#tl-ezfVoZ~;F%{X?>fuL^&}U7s4`k# zCh;*+k69C#EOelA2{J0Xc~o5CywptuklVN&^@qOCOCbY*>I&Cyp#Icyahv8!4R6{^d)^oIEgr1S{exuZvyL**I~(xSu4 zA`#txsdHm&9On0hziqj~lPHe@15)xG?!guEJJ(`JVaRJXzjG76%~NB2NfFu{P>d8j&?YZWUDYJdn=NwMivdV8qHo!4QGr@#P}6Peszj zb=;fFlB4F`HwvApLTr+{LIxJHaY`;ljGOz#+4oAyd_uT7bQh*f*j>3CwR(5fl+OE< zrc}}ZH~zYze#?8?TOU}*5A_2Ik}@fS`MVN)kzqp<_PdleiO4?J!uZ~Fkz?6UG@>KY zq53id*IZwFm8B`=D1$num-uzbX&0}nxFE%N@)P~VUA@2R+sAY>y4a~re{W4X|Jbl+ z)JXvZ99UhMb7@5#qwIZZ_3m1WYWo^=kE@kVNI#-uDlfPY2mqio&AyGv6-XK9Nw;T%IV!PXyUtCF z9-eYRhJ65*n$(>X*o`vpWg8-rq0~}xaQR6`#+Gydv!jqJi!i}@ev3X^xs}P0=Vc|6 z6;U=SwK^DDJN15@n5R~Ak(hiT`Ly9UuwNmyX1X8hCKu_7)!L+ujiPe+d6NZ8lGcJU zW)iIA#`(}t2cvlCjK9@=#l?;&aF%(>(F>cfl*(r^rbzX^BjYg-jNgqsyYe=^>|%A* zS#~c=!WkM~h%05ZJ2Anc*n?#JR81wde3eu2=RHM@{EQa^@VzZsupQ&_BwIVhDxIIZ zAVJv!=GprNVu4}ZSNQWFoE!Gfa6zA3%1w3BGsJGokE0JPuBE;v(T6(kJ9kvk%;}ws zip1AANuP{=BMRRYKPrhSjY zhfdA&C@4#gZYC*oFOYtcGJFoxQCVx;j}<%eicbf76B;=@QIqOlUMg&v&?{-#6K{;2 z^0eMk`AbP0+C0QFTD3LB%%LM>Fk`M04*0CRJP)k%HzCDr&Gl?$cgh!uD7jCOU}b?H zIz!A)cn-PZTHK;jD^ZYs@n2+&W)0fWs))P(81@*|+0nMJqCb#!v^0j$ZfVC=^FiC( za02GmLFk!GRkl;TPA09+XX%wx@~uHZ3ZWTov=D$(LpoNd2}p)LYPso7ub%8l3eoNC z6YN>{k@wC!F_1Crp`*tMdB55OS>b|qk7@PHJLLM=SU#S=9$xrZPo-wdF;ry^vg&L8 z*3I`io)5<pKwn~AVDtOHey`E~g0l5=Dmpnc)IXR~0G zJ8$rA=v|~_5Lq#Dr_9T~qgU^|?qK$i)DHrPcKthr5T^;D%uc^`lyDi<>BH<65OCc# z9e^mV$67_ojd%x2@BF#N+c5vu)1CM~lQr8C_rYbE)Kk*EaU)NWbg_KN(0{A;~|c_TRsc}Z+pw-~^*hIIH3hrXPdr9;>1ls9I|y&p69lDpndTy*r(4X~iwW-tO9Z zT>G!UDZ1R!L@6j`(M*h{z;P=uqYm>$)=3darzj!$7)*0va@U<pHkzz@@8v4#(NE!JrxFkg_ zV>)A|l(~Bs?h{%e2L>$mpT8OP32J^Q15arw`~20)_4n!9!w65-x_!( zCM_7L-mj;RNa>_^Qr{Mu5R<0C@U@!3aSh78k+3Un$q7;ga?1T{)h-uMWyQh0SYjaY zvA1p(#I|#J?%)A9>v8T$Evuhac{9z17_RATr3I?KvS0)1!{bi<$XcT5_%ug2Q7nOP z(jxC;rWnjhi`5#NHi0)6L#MBr!&i$(pgc+}!~b^=t1yQ_^SgKDqTz8Qr9_rg z&enOH=sMFZ0xut>hR_pU(`_?_b0vjZR(yB<`Dl3}G^V`WXjO;6H<-aRdOf2%otPpG zhuzxG6B_lsjyU0wi?!gf2Fz!3kkRd$5HC(QUf!f(D!&+{b$l&!Q^&G|@jq%(i+&=( zKRiRM=iP~7h+Y2Z+?~dxl$hZIF(^w&N`j2`3i_HDdaJCf76h)@%bIeOF;<}A{Wt#{ zO@FD#^uL6lBD&FQpg{(Dg?}$ zmph;rc#&6XPOI9i*Q{rm#{?u>SAI!RO3oRO%05taO2VW$R|yF;s8q61>R`Uv!EFo| zZTyD}IW^qdfy%rdiZ5tb_YCz)Xt>zdaefh3{4sEwLJAMLKLxtnkPlTSvzwGdtu0b&#;o=s z|JewR67|j#a-4D_yonnIk6wMT(c#I!r5s;dn`(DQ!+VH;dfbWP=M%HaxknFHFQ|V0 zx_Tu7%uNstc!s%sOs{Ss)`UYG^K6t>XAnq~e%Ffow9b6y)Hc23KSwv6HD?;|@5arM zoZ4J$Da4vJt-W|hCb6r~Tau9dKGUaC0jQ+m%NB!tKw3XGqLsdKfx^ z0;6Z9W_dHjV_xIzn5=UvEmo-HOZ7XrPHLlNwSN+HFU+(jxwK^?*KfV$dZjQ3Nb#%Q z)qrsgK8qsU%3d9}nwG;Qr?=xGCB`4-8%NpXHEHlL0m(N#)f298td1*!lyjJ*>^t2m zB|umy^7Z?ysg()fDAp2k)J>b85NF@#_do?7_}+pZHH&RXX`<8s{*W#j*CoQ5S^IYe zC3>Y?EPpkd28nz{cGTNH^bG3e3C9vUt~5K!aBg^W9z7n$9cGEz6#3IdmDb3*bM}XO z3jN-yXSWQ+TrGs~CH@kiiH-l4^t90*8ay@BC<_nUr>uxp%qd8ZYUM(6`)%zgXd61S zti75RI-NDs;RF3Bvt_KaOR2);cA6NnFIyedO$oe+;oQTF-MJT-d+}Fb6`Z@3yH=e> zg9g@rY6Rm$I+ewC8W>Bu9nRC=mfwLBU081G5s9EGz77^aLy^X*&l2H%O#XV2;k5UsoSvSlP8p! zQ)-9p7PpZ2f#`IEc91ANMKfG@Dn_?N=jX3p1mWE1Ou-Dqe8==m1snE@FE7g!H@HTV zW$a7O8qQ>&c47@gb`VD-je)$t240Qe@rRD=hMs@cn}7VfCTMs zx*;k{Q;2ErpcFZE-NM;J>6(`xQINNt0g<5(x5EOH{SWCq*8a*Jtp?hiLqVsR#R-?Z z_s*^3M${hM&6-@jMPr^Wa@pkO)ZUc z%N%+UQPIjc3i>Y=n1XE+YQ3$P0NlgS=+j1&!jow?NnWdoDHCKPKYsD|w+$Bf`T5|EyPmq~K!v zjXx_bfNQIsv}Hm;{^-QKZ{B&ov(c%(o9ZvxnQTEubI)@o=_D`^6)dL>nKH?Od}x@w zN3)vHR}Cs8TBlFlnDw^>%TwamVyz;Vsk~_)lM$X04e8N;yn+wT=G;Fo5J?a#&U|m( z^nbx}mk$n{&gOpmwruME;@vNqipanBl$Ys0>#cId80WvLO1xt74Ci$a=VbTG8zIFR zce$YF9^x+;3q5CLe8+?fqqBv`f(1Fh%jBP2cVM|b>&`1yQ6+O+nLAa+xt~W)D9%>J zD1o&@FG}BLmNRXs@Sy>5XQqQOyOFpC0H8sx$y*U~BQ6n0+k#vfKqlUSzV;3OSugO=sK3b$;Ck3s&Vv8EKdb2S_E!pI zVMlaxXRR_${L=_GWz@=Deu-FN(XJWhMFZ}#kSip}DzoQzW`Ju^l6RILr=U7HulDn6 z@E|IgsX{q?^lqE4X>y0U%gy23n|$J%5cKy_cAa(cLbKVO)}?V05!5s3;ad4Z&BPy| zR*W>EI!wLKBuz*#@4l;GIA9vHE)wt7$=VYcfS+7CKM-TJR16W}{^fF#uk~+_Lv7Lq zf(S|xf(B(voDc=ut1Lnx?LYiA(SK_Xdt*_(YyFms{e2(FzW-L?Um#n9Z{h<)adUx3 zzWagV{^K|Ren^3Bb9Tk}o~v;@*qDF8Up4>4;gW2-_zVq8RaMEpjt+cq`S+CV^#Hzl zh7sY#HmUt}<{u=lB3Sh8+o{zKpmH1Fqc6+J7$S6@ebCDw_Ez-(q1c&K9_AI1Bfp3c zv%4|11W>JCx+wQzjkHqYF85qTj;u17BrdTfUj(t72exsIzfsZmSVi9FDb1oZ6CND@ z;0+~$?PQth_T*+v^C3I-F)!|Udm2f>TYf|(40{|bQM0MN>Sd$;^e@)pnR_Zx@+%0n zC$5U#GGiFgd)Kk{`96I@7w*em&DU7^Np5>5FF5o8w0el+@7VRf&izhN?MH`-Io^GM zRsW~3p`Pd6_#UjV8Mc{!+V4SVx6kdG(1Tc6h%Ies@W0KC3K!WI$X*kqKNh;do}~N2 zzFMnV=o?slpYm|;J#yJ4WQx1&dskMSp~t&+1_ z$=k!e1MrT$4wTQorzQ?5X=$GqWk2?PZ5Ha*4Y)tpIm939K*M^SKX5Jt`ZeF1PRT$$ zcUgTKqVIzQ+#MMmT1p?X~63?9T2qisRj4-Zqx>XRxxV=R90K;5dxP!b(;np7}fQ` zDO?EDUEruoe(n7DqnBshF=bAy1vG~A5J*oz8D@TMZanS}m~qEF@R7*hC3kg+rg?Bi z|IC>+iwOSnJ=p$M;1guYd1p&KiiuuvyqSk#$0rN@&}8Q!^kD|q)%wCoMI-=Z9O*CW zV&pXz_rklbr*_pA%eY;PFxLmDJh@<4#{qPA(^9mNxL-YXHlHoYFot9W z;!JAA6Wd;#NYrz{G<<30nn<_3+Vu{$(&|q1vIRZ9^j*qxo@uiyIK3YmEZe>^u@=^x zLUei>6sg%M3Am@F7FR{ay2(hY<7BpW=ICv|SdU0L3N7bf)W`)-q95AxzD-86k^jkY zA}AcFdF6J!iFus|rQjs^8JSo$%Wk*5#r_wy)0!Z!q4((KOxNDr&6u|;G&2~;vryX!S z>pLL%REc_n7fVkc6unonEISu0Vk}}b@0UMZP{{>5H6YhDIUptyZ;ZUNe#n3FCTA-7 z0)kiQ8x7`-*$va!LH?&2oqXRGzVcNKVCVWQ`Fziw+2r>kx!W@(4Mk1IY`jjHJx8x`@=u%+t!(nB8;2sTn7WLgMrQA*368wM#hlBj;+UQx5RZk-HvbL# zP2g_Q5CXgYkD3Jp{}qohO9(TH13mn52iK+R%-;lQ0tR{YPl$ z+!Nl|+o&jE+1KD7D+AdbM-Onl;E-8!HDJgV#|)4n76v)YNZQ74(67eG;_3HZkUG&RZs+s1tNU6EbpYx^LwRa3-M zxMl{}@4^!8GS6(I^%q)d9arBMdi6lSIky7Lp@;!Tmqc5wr1cVUn%;zx&zM60SjqNi zCnQ{w5-`y}j@X0JpAi#~)%CMk>nU};Cw@FfFKTutUouKODL?XL@=GtFdKu}aYdB*V z>TwDs>e-FL^j{2-wPGBV)$?A~@L#^ePcXPc!qx*w8rC4y1T5yKN;XxhD z#qaK~bG0%D;bWU{_v_Oot@dwgvlBzUAh-Fb(9_>2WjkmoRTm*0UU?ye?@Ilby6?#Z zAn4lfZ^@0DNlV(&@i2<7?%N`mN?)#(DQ{G}0XH5q`r{hkN+Rx*vSl3QnG#5qP>`?M zEUgkoU(0{7F%X5E8&j z+sUJ@5SRRdSd2D%^;Ugg;4SG^w>Cz#DS&-!LR>RpapRn$=l4@y15ie6kepqhOONxt zG9~M!L(9R9xGdfbAl*P}df(Xh%n$E+s}c99uJkmyv2k**muyfsSxbBo$ z7ofF3$H{po5J4RItf+m45Nruci}n{sC4uNu@76lwja7W}`pAnDu|a;|e!b0V>$<+r zNtlA;BRmvt{-O9272Ht#78O2yp_n8i(Vv`6kG}(d%MkH=S6Guv0hQWVe0G@=56ck) z2H5nN)<3Du-ePT`d(=BZyXGt~y~Q|VPQ+>f;!4hv8W^cUv$lou>pRz<&#dt^3eI>3 ziT;SaNbVIuak#~Q_cQ`w_UB|F^6CQqQ1Pwf`rzK5{(e(#-?J)z4hic1-Rfe1)Y~Ud z6dgnbBjv=+Qo24bPIuB=6UL8pU-r>x#zS8lznKS^AWXzVA_rFT_EN+ynK`q0COe7vS(=Z0$Vf%Pk>aU zU#NSHPI8w!N2!Ng|0v}Gwxgr{w-S{o+cGNNgo{hoZ%97X!}uoo+MsJ_hdFKw=KKAq z3Pv?ZbYV(-`&TxM)6#LFXx~3}oU>LMz&Ne2>en_0{ix*b5AD6D_mLYJRG#{Ni*s$# zpYJ@Q6Yn4LIfj_qr9tKleJ!pG$QTYL3){R9z~MzzA}@+0Jyr>dT}xsf*6FsCs5goJ za;V$Y(3-nJ^d0%;BRV}UzK%XUYzYdhfQ%A1eY=AgFP{#Y!B0sJUu;)I_}gEsv;k6U z{syX~Y#4$&ga@(WcGM3Br*C-J-l0>NN2l2nIknP^Vd=2v*=D9zQs@6{jchjYX{UN3 zR7%pYrt|kLQ)#v1!Wx642opn?dN@A!OUee!w)s%qb6&LpH+Ook=PjY-7*jvXs?x^b zrn z{7J)8;AKWXeQxNVj+X|=x;(~^ToADApr)SWPOS-Re|QYO6hS6Uv$#YaF26Yc zBa8ghL{rrkP7g(^9+~~(NyaQl@GB>5&vo82TtSj4;+s>=k2ue03_PnzJ;_VVarAat z4G#1dG0ioUh`PUVY<>#n4n>Hn)^36OHCK?xzqzm(B&9qeGliLkx<56bblPC5B`N;?HhOp2Tq_<+7q*p<6snJ8 zK+y<=EuCu$$fxW*6Tx|1gFoHGyIi`VWavGuSH^*+Ae9uE2qdeFzGqkbjkFstqeqi- zt8);*`Zscm2K;yle3z7-J13dGJKIl|M6qQe-Hzqn-bH`@9})zyU*?9n-Iw|$mkR-U zqv)oki|f~g2I-v)GF}~IFfSNWJw(nt6AZk~q8vHrfj&nGr@xi$##^=$v#3%wL&WF2 z%I$LRUlUNk4meGOY3a>re+B|^*mkLn!lW*+wWnO4Q%IYqtX3`Wh2l*3WnK0un@jdlKo+ZodiL=A8 z08lUn5C;yUiE+Lry!eN!g&Y@6tWc>yYq6@szjn!~fC>Wo+4_B|t`YjHiaT8nF!6d*c+B`hxGKi*9Uq@Hw?XcapS> zZ?0H28JjBHU_5TcIcI{}^ZF@ysy{V2g@u6OCnNG(VabY>o(+FShYT(){c4^k__8ck zbv}j3;t!&L&iG+(!a+8L`Ak{`Q(4YR?Mhp4lzitSGW0>7C<%OhH(wFHD73jK;J`7C zgu%_N)`UC=A%fvqU#G{*@EeD@#pp|4+!9+o1>#aSI+x5!a`-*G>_af!|CrzsquMuy zl)=xR73|wAkf*uAuHwY%C_;Eaub-Bmyni6eEBeZQly02(hOqdOV;F~T4WKXjE1lI} zra}lxJ?Z)~MBpp4Jjm-FsrfJ_`d5&`dh6uJ(}R4p?}@tbc=z_;5UDKC4o$5NwS=xJj}7*WGDrKeb$W zfPng|p~8H3buIJ+tQh6R64ued#IU>)w&$b9#^@`mr#2Z7Vuaq(CFG~|R}~)_BEs1- z_#BGxmk__=AVQ_uJIgkRguBB*)ugpvLf1i{6E8mYBrN5D^w^Gb@i@CY!w2krGakfuXC~Mt+UDck^W| z1nwzdG(VG*M07y0o?UqC;J11k>ox z4PHzK5wRlP^RvZkrHb+OR88ZAi4G`TRXc%$D0X;>7gIBKM{1x{jUr`d)m|}XFNAJd zTO;)98#>1)rHhB8-wh(Z#&qF&<~aAT5`Z0Con*@&ax8@LQsf4`zao0>L9Tb%$P)L_#?j2(?qZUoR?V-O98ddo$ARbc4XdwzpD z?<(uo?UK;`B%#DcKgqmHXfpRadd&%nv!d|(o6Z@?UC&MOsR>yjkJ0y<;wpDWh8iqF znNa6{C1E0C{O)7TN44V2S_I%G)Dbib0D~limS?cYLBAV&4wdAWPnF8F8^m^LV*mWz55uLtk=fPwQ zl-M4?$x*+J!XO1iSD7E%-uM3XV7+1(hMNmfT^B|l3?OH?wb(l68E}?|aW90C?bouF)$Hy!+O6kk7+}^S(`xdYg{i!G*Ki6l7@o)z^{vYsl61G70=hZlt$T|3M!NG zTL#B3N1XA!o{o9Fi3@Qg`cUdXOQn5_rmSxTjbp!KVu9kHi6S=Ch#?!3&$jyu!Dt9)vv zn1f5l0BENkbZc0+J>-Y0sVDMoOK4ZiEAr?>A!>Ii-FI7M|2s(?CGmctClLY2;C;%i z^uYRwVhPEoiMG<1#-i4dMECDR2+lmVXC0zU*Eor6K2&2Rfhaw5!cRWRF1aVb3!U$Q zpG?GIitqJjTTThrE>2bBQY1}9T<#*K-4e7D8aKj? zghE0MIXM*34qtU5OV#o3oCmzW6yy!~_hPoPQP143f5-YanwZ9&)AEhjiuf81x-((x zlID`%tDNI-pbeaD@Z5yw{_D*v>Z6kB~GLKB!NQM6bd@Q$@*d&Q7y^eat@N zhKE48{yPOSt`ur9qKjL+ipZA7q+VxK%Sx-qOx9r!=f5PFW2BbMmZuYzMhcc*?G%hK zftg=1EFnI;_G9Yvot(w&4#2>-FPjTtb7f#7CatxLp}y1fLe0x{d}}AehG;%W;jg5q zCVgE4dnp%25~Re#FQo>9yDgO?Ru@6`ij^2jKnIqHLUBTgCWN?5|rk?_9-=JV8<>&!;V$3?^` z`H^mm(FB9$-dJtWHkC)8%8_?HLPiPCn@D8iKwjguCqu!>RJxmmLg{10eZ`=6fh9^;Bt6N+7$Z8kcZc7ceSH?4zWu4 zHiJgI9Sv8k9`ic42?MZ9ls|v{bJNxj{ynRYe+DeBB_0Fl<$uNgu~h!a1Mqdp(gnLm6>WV#hUF4^+K(e1S| ziyX4pkPK-%p>afW!;Rr-h)Rx4Jcu~?b*qv0mBvP5fXyKGh4$jp4K-bTUlZK=0GApl zT%qQ$qAv5_uX)K053s^)EF_q)x29<92|ST}B$N!9@Bk16-wK?gG@&0}aS>O+X!awq zy<@zi-M@Mzb%>FC#BMP4=6(eB+yR+r&B1;v8@Z!Uwj1~PE%x$Ra@1HjL=-%na4b2UO{)6iBx*N9 z30dQ(s`R06x|rwjh+=yA(F-mn5`lqtm2D)!@|1Cxev5jK@rv_U+ea2*+JZ(ZeVsy_ zT6UM~l1{(sbl0&0Zxatf{D*tz`&iMcc-f8i{i((Lh@RvF)wm|PO00`8i~S8HpjI@_ z{vs%&XwYF!=^q-~z5~2vi?gdYfP)49SzN=wwE_-wbK(TMEEa~jT1!?q_d02Ct3#7%_mdTGkn5zc71mEtGyVb z4r@-prAAljiw^8S#GuUJ-mt_dYZ~&1pZO2VE9xh?Pb|tnicwNH3`ETWZE?j&n)zCtxybZHB|x za8UvX4@O{yLX>QMVDJ+JRJ(AFbHb{Y0=K)l{_GW>g?Zy#_sNGzTmbXsH}U!^#mREGpuRs-LsC^LWZvzO?V2EqJHO0-EqwjPc9aYOr77mIIxU?4Fy{QMk z-9M1`4yD#HtUqD+MipwHP(FZ3vu-fO;_Z;#27MQZ(-ap`7epK9dKcRuL$c-+_8rCa zT1=8xMX`!w3Ix;fZUMCBv+$mM%m+G!@opSvF?o_agKiuzfQAO5+ebP&u;6K5Dy03) zKO?|fCeDigw@{*p9z}tj%%GhR?OtyMKO9vYr9}6;1tfzxf{x!CxIKD6GkiVRI<2)Igv)q>-iw0YQ+qs8f;Bg6L;XT#VthHaUh4k-PBk20HohAOM>G^yv@bH?m z^|JpZh-fl_Rt+8fx`e#m>HdH9_~^IMez-g8h)e?#S(5iM_YaD)YBCK{=3)N_nI>L& literal 0 HcmV?d00001 diff --git a/dev/initdata/img/compxp4523product.jpg b/dev/initdata/img/compxp4523product.jpg new file mode 100644 index 0000000000000000000000000000000000000000..aefbdd9b0f75e79c33f3d6397e5f3da162af550e GIT binary patch literal 17068 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 O1bFGd@P*Fj)Bg`Ybcdh- literal 0 HcmV?d00001 From 1012fb8be1792e21116697ba237371e42190921b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 22 Jan 2016 19:11:46 +0100 Subject: [PATCH 12/14] Update demo data --- dev/initdata/img/companycorp2company.png | Bin 0 -> 9362 bytes dev/initdata/img/magicfoodstorecompany.png | Bin 0 -> 4920 bytes dev/initdata/img/valeencompany.png | Bin 0 -> 4675 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 dev/initdata/img/companycorp2company.png create mode 100644 dev/initdata/img/magicfoodstorecompany.png create mode 100644 dev/initdata/img/valeencompany.png diff --git a/dev/initdata/img/companycorp2company.png b/dev/initdata/img/companycorp2company.png new file mode 100644 index 0000000000000000000000000000000000000000..18917afb66d01caff5df74e81fd784c0097c9284 GIT binary patch literal 9362 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 Q*61BbUQMn+#ytH008h5tQvd(} literal 0 HcmV?d00001 diff --git a/dev/initdata/img/magicfoodstorecompany.png b/dev/initdata/img/magicfoodstorecompany.png new file mode 100644 index 0000000000000000000000000000000000000000..ec54049d984d8b6f2e7a9cf04fb4b5e8eb0befd9 GIT binary patch literal 4920 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 literal 0 HcmV?d00001 From 2b96c8f2059af0e09823e390de53aa56162f7ed8 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 23 Jan 2016 11:05:06 +0100 Subject: [PATCH 13/14] FIX Noway to validate a leave request for some uer even if they have permission for. --- htdocs/holiday/card.php | 42 ++++++++++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/htdocs/holiday/card.php b/htdocs/holiday/card.php index 87c8dc07f91..70c07d72e0d 100644 --- a/htdocs/holiday/card.php +++ b/htdocs/holiday/card.php @@ -60,7 +60,7 @@ if ($action == 'create') if (($userid == $user->id && empty($user->rights->holiday->write)) || ($userid != $user->id && empty($user->rights->holiday->write_all))) { $error++; - setEventMessage($langs->trans('CantCreateCP')); + setEventMessages($langs->trans('CantCreateCP'), null, 'errors'); $action='request'; } @@ -84,6 +84,14 @@ if ($action == 'create') $description = trim(GETPOST('description')); $userID = GETPOST('userID'); + // If no type + if ($type <= 0) + { + setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Type")), null, 'errors'); + $error++; + $action='create'; + } + // If no start date if (empty($date_debut)) { @@ -134,6 +142,8 @@ if ($action == 'create') $error++; } + $result = 0; + if (! $error) { $cp->fk_user = $userid; @@ -144,15 +154,15 @@ if ($action == 'create') $cp->halfday = $halfday; $cp->fk_type = $type; - $verif = $cp->create($user); + $result = $cp->create($user); } // If no SQL error we redirect to the request card - if (! $error && $verif > 0) + if (! $error && $result > 0) { $db->commit(); - header('Location: card.php?id='.$verif); + header('Location: card.php?id='.$result); exit; } else @@ -298,8 +308,10 @@ if ($action == 'confirm_send') $cp = new Holiday($db); $cp->fetch($id); + $canedit=(($user->id == $cp->fk_user && $user->rights->holiday->write) || ($user->id != $cp->fk_user && $user->rights->holiday->write_all)); + // Si brouillon et créateur - if($cp->statut == 1 && $user->id == $cp->fk_user) + if($cp->statut == 1 && $canedit) { $cp->statut = 2; @@ -354,7 +366,7 @@ if ($action == 'confirm_send') if ($cp->getConfCP('AlertValidatorSolde')) { $nbopenedday=num_open_day($cp->date_debut_gmt,$cp->date_fin_gmt,0,1,$cp->halfday); - if ($nbopenedday > $cp->getCPforUser($cp->fk_user)) + if ($nbopenedday > $cp->getCPforUser($cp->fk_user, $cp->fk_type)) { $message.= "\n"; $message.= $langs->transnoentities("HolidaysToValidateAlertSolde")."\n"; @@ -411,15 +423,15 @@ if ($action == 'confirm_valid') // Calculcate number of days consummed $nbopenedday=num_open_day($cp->date_debut_gmt,$cp->date_fin_gmt,0,1,$cp->halfday); - $soldeActuel = $cp->getCpforUser($cp->fk_user); + $soldeActuel = $cp->getCpforUser($cp->fk_user, $cp->fk_type); $newSolde = $soldeActuel - ($nbopenedday * $cp->getConfCP('nbHolidayDeducted')); // On ajoute la modification dans le LOG - $cp->addLogCP($user->id, $cp->fk_user, $langs->transnoentitiesnoconv("Holidays"), $newSolde); + $cp->addLogCP($user->id, $cp->fk_user, $langs->transnoentitiesnoconv("Holidays"), $newSolde, $cp->fk_type); // Mise à jour du solde - $cp->updateSoldeCP($cp->fk_user, $newSolde); - + $cp->updateSoldeCP($cp->fk_user, $newSolde, $cp->fk_type); + // To $destinataire = new User($db); $destinataire->fetch($cp->fk_user); @@ -576,7 +588,7 @@ if ($action == 'confirm_cancel' && GETPOST('confirm') == 'yes') // Calculcate number of days consummed $nbopenedday=num_open_day($cp->date_debut_gmt,$cp->date_fin_gmt,0,1,$cp->halfday); - $soldeActuel = $cp->getCpforUser($cp->fk_user); + $soldeActuel = $cp->getCpforUser($cp->fk_user, $cp->fk_type); $newSolde = $soldeActuel + ($nbopenedday * $cp->getConfCP('nbHolidayDeducted')); // On ajoute la modification dans le LOG @@ -616,7 +628,7 @@ if ($action == 'confirm_cancel' && GETPOST('confirm') == 'yes') // From $expediteur = new User($db); - $expediteur->fetch($cp->fk_validator); + $expediteur->fetch($cp->fk_user_cancel); $emailFrom = $expediteur->email; // Subject @@ -798,7 +810,7 @@ if (empty($id) || $action == 'add' || $action == 'request' || $action == 'create print ''; print ''.$langs->trans("Type").''; print ''; - $typeleaves=$cp->getTypes(1,1); + $typeleaves=$cp->getTypes(1,-1); $arraytypeleaves=array(); foreach($typeleaves as $key => $val) { @@ -953,7 +965,7 @@ else } // Si envoi en validation - if ($action == 'sendToValidate' && $cp->statut == 1 && $user->id == $cp->fk_user) + if ($action == 'sendToValidate' && $cp->statut == 1) { print $form->formconfirm("card.php?id=".$id,$langs->trans("TitleToValidCP"),$langs->trans("ConfirmToValidCP"),"confirm_send", '', 1, 1); } @@ -1011,7 +1023,7 @@ else print ''; print ''.$langs->trans("Type").''; print ''; - $typeleaves=$cp->getTypes(1,1); + $typeleaves=$cp->getTypes(1,-1); print $typeleaves[$cp->fk_type]['label']; print ''; print ''; From 627f606c4db7519759127fdfe2596677cea3f801 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 23 Jan 2016 11:17:20 +0100 Subject: [PATCH 14/14] Fix list of leave request was not showing label correctly. --- htdocs/holiday/list.php | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/htdocs/holiday/list.php b/htdocs/holiday/list.php index 751b24a9d1b..d9e1c3bf00c 100644 --- a/htdocs/holiday/list.php +++ b/htdocs/holiday/list.php @@ -35,10 +35,12 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/usergroups.lib.php'; $langs->load('users'); $langs->load('holidays'); +$langs->load('hrm'); // Protection if external user if ($user->societe_id > 0) accessforbidden(); +$limit = GETPOST('limit')?GETPOST('limit','int'):$conf->liste_limit; $sortfield = GETPOST("sortfield",'alpha'); $sortorder = GETPOST("sortorder",'alpha'); $page = GETPOST("page",'int'); @@ -47,12 +49,13 @@ $page = $page == -1 ? 0 : $page; if (! $sortfield) $sortfield="cp.rowid"; if (! $sortorder) $sortorder="DESC"; -$offset = $conf->liste_limit * $page ; +$offset = $limit * $page ; $pageprev = $page - 1; $pagenext = $page + 1; $id = GETPOST('id','int'); +$sall = GETPOST('sall'); $search_ref = GETPOST('search_ref'); $month_create = GETPOST('month_create'); $year_create = GETPOST('year_create'); @@ -64,7 +67,7 @@ $search_employe = GETPOST('search_employe'); $search_valideur = GETPOST('search_valideur'); $search_statut = GETPOST('select_statut'); -if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers +if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter.x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers { $search_ref=""; $month_create=""; @@ -104,7 +107,7 @@ $filter=''; llxHeader(array(),$langs->trans('CPTitreMenu')); -$order = $db->order($sortfield,$sortorder).$db->plimit($conf->liste_limit + 1, $offset); +$order = $db->order($sortfield,$sortorder).$db->plimit($limit + 1, $offset); // WHERE if(!empty($search_ref)) @@ -172,6 +175,7 @@ if(!empty($search_statut) && $search_statut != -1) { $filter.= " AND cp.statut = '".$db->escape($search_statut)."'\n"; } + /************************************* * Fin des filtres de recherche *************************************/ @@ -207,7 +211,8 @@ if ($holiday_payes == '-1') // Show table of vacations -$var=true; $num = count($holiday->holiday); +$var=true; +$num = count($holiday->holiday); $form = new Form($db); $formother = new FormOther($db); @@ -246,6 +251,7 @@ else dol_fiche_head(''); } +$alltypeleaves=$holiday->getTypes(1,-1); // To have labels $out=''; $typeleaves=$holiday->getTypes(1,1); @@ -388,7 +394,10 @@ if (! empty($holiday->holiday)) print ''.dol_print_date($date,'day').''; print ''.$userstatic->getNomUrl('1').''; print ''.$approbatorstatic->getNomUrl('1').''; - print ''.$infos_CP['fk_type'].''; + print ''; + $label=$alltypeleaves[$infos_CP['fk_type']]['label']; + print $label?$label:$infos_CP['fk_type']; + print ''; print ''; $nbopenedday=num_open_day($infos_CP['date_debut_gmt'], $infos_CP['date_fin_gmt'], 0, 1, $infos_CP['halfday']); print $nbopenedday.' '.$langs->trans('DurationDays');