@@ -57,24 +57,24 @@ discard block |
||
| 57 | 57 | $pagenext = $page + 1; |
| 58 | 58 | if (! $sortfield) |
| 59 | 59 | { |
| 60 | - if ($id > 0) |
|
| 61 | - { |
|
| 62 | - $sortfield="f.datef"; |
|
| 63 | - $sortorder="DESC"; |
|
| 64 | - } |
|
| 65 | - else |
|
| 66 | - { |
|
| 67 | - $sortfield="p.ref"; |
|
| 68 | - $sortorder="ASC"; |
|
| 69 | - } |
|
| 60 | + if ($id > 0) |
|
| 61 | + { |
|
| 62 | + $sortfield="f.datef"; |
|
| 63 | + $sortorder="DESC"; |
|
| 64 | + } |
|
| 65 | + else |
|
| 66 | + { |
|
| 67 | + $sortfield="p.ref"; |
|
| 68 | + $sortorder="ASC"; |
|
| 69 | + } |
|
| 70 | 70 | } |
| 71 | 71 | |
| 72 | 72 | $startdate=$enddate=''; |
| 73 | 73 | |
| 74 | 74 | if (!empty($_POST['startdatemonth'])) |
| 75 | - $startdate = dol_mktime(0, 0, 0, $_POST['startdatemonth'], $_POST['startdateday'], $_POST['startdateyear']); |
|
| 75 | + $startdate = dol_mktime(0, 0, 0, $_POST['startdatemonth'], $_POST['startdateday'], $_POST['startdateyear']); |
|
| 76 | 76 | if (!empty($_POST['enddatemonth'])) |
| 77 | - $enddate = dol_mktime(23, 59, 59, $_POST['enddatemonth'], $_POST['enddateday'], $_POST['enddateyear']); |
|
| 77 | + $enddate = dol_mktime(23, 59, 59, $_POST['enddatemonth'], $_POST['enddateday'], $_POST['enddateyear']); |
|
| 78 | 78 | |
| 79 | 79 | |
| 80 | 80 | /* |
@@ -104,19 +104,19 @@ discard block |
||
| 104 | 104 | |
| 105 | 105 | if ($id > 0) { |
| 106 | 106 | |
| 107 | - print '<tr><td class="titlefield">'.$langs->trans('ChooseProduct/Service').'</td>'; |
|
| 108 | - print '<td class="maxwidthonsmartpone" colspan="4">'; |
|
| 109 | - print $form->select_produits($id,'id','',20,0,1,2,'',1, array(), 0, 'All'); |
|
| 110 | - print '</td></tr>'; |
|
| 107 | + print '<tr><td class="titlefield">'.$langs->trans('ChooseProduct/Service').'</td>'; |
|
| 108 | + print '<td class="maxwidthonsmartpone" colspan="4">'; |
|
| 109 | + print $form->select_produits($id,'id','',20,0,1,2,'',1, array(), 0, 'All'); |
|
| 110 | + print '</td></tr>'; |
|
| 111 | 111 | |
| 112 | - if (! $sortorder) $sortorder="DESC"; |
|
| 113 | - if (! $sortfield) $sortfield="f.datef"; |
|
| 112 | + if (! $sortorder) $sortorder="DESC"; |
|
| 113 | + if (! $sortfield) $sortfield="f.datef"; |
|
| 114 | 114 | } |
| 115 | 115 | else { |
| 116 | - print '<tr><td class="titlefield">'.$langs->trans('ChooseProduct/Service').'</td>'; |
|
| 117 | - print '<td class="maxwidthonsmartphone" colspan="4">'; |
|
| 118 | - print $form->select_produits('','id','',20,0,1,2,'',1, array(), 0, 'All'); |
|
| 119 | - print '</td></tr>'; |
|
| 116 | + print '<tr><td class="titlefield">'.$langs->trans('ChooseProduct/Service').'</td>'; |
|
| 117 | + print '<td class="maxwidthonsmartphone" colspan="4">'; |
|
| 118 | + print $form->select_produits('','id','',20,0,1,2,'',1, array(), 0, 'All'); |
|
| 119 | + print '</td></tr>'; |
|
| 120 | 120 | } |
| 121 | 121 | |
| 122 | 122 | // Categories |
@@ -156,16 +156,16 @@ discard block |
||
| 156 | 156 | |
| 157 | 157 | // Margin Rate |
| 158 | 158 | if (! empty($conf->global->DISPLAY_MARGIN_RATES)) { |
| 159 | - print '<tr><td>'.$langs->trans("MarginRate").'</td><td colspan="4">'; |
|
| 160 | - print '<span id="marginRate"></span>'; // set by jquery (see below) |
|
| 161 | - print '</td></tr>'; |
|
| 159 | + print '<tr><td>'.$langs->trans("MarginRate").'</td><td colspan="4">'; |
|
| 160 | + print '<span id="marginRate"></span>'; // set by jquery (see below) |
|
| 161 | + print '</td></tr>'; |
|
| 162 | 162 | } |
| 163 | 163 | |
| 164 | 164 | // Mark Rate |
| 165 | 165 | if (! empty($conf->global->DISPLAY_MARK_RATES)) { |
| 166 | - print '<tr><td>'.$langs->trans("MarkRate").'</td><td colspan="4">'; |
|
| 167 | - print '<span id="markRate"></span>'; // set by jquery (see below) |
|
| 168 | - print '</td></tr>'; |
|
| 166 | + print '<tr><td>'.$langs->trans("MarkRate").'</td><td colspan="4">'; |
|
| 167 | + print '<span id="markRate"></span>'; // set by jquery (see below) |
|
| 168 | + print '</td></tr>'; |
|
| 169 | 169 | } |
| 170 | 170 | |
| 171 | 171 | print "</table>"; |
@@ -186,24 +186,24 @@ discard block |
||
| 186 | 186 | $sql.= ", ".MAIN_DB_PREFIX."facturedet as d"; |
| 187 | 187 | $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON p.rowid = d.fk_product"; |
| 188 | 188 | if (! empty($TSelectedCats)) { |
| 189 | - $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie_product as cp ON cp.fk_product=p.rowid'; |
|
| 189 | + $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie_product as cp ON cp.fk_product=p.rowid'; |
|
| 190 | 190 | } |
| 191 | 191 | $sql.= " WHERE f.fk_soc = s.rowid"; |
| 192 | 192 | $sql.= ' AND f.entity IN ('.getEntity('invoice').')'; |
| 193 | 193 | $sql.= " AND f.fk_statut > 0"; |
| 194 | 194 | $sql.= " AND d.fk_facture = f.rowid"; |
| 195 | 195 | if ($id > 0) |
| 196 | - $sql.= " AND d.fk_product =".$id; |
|
| 196 | + $sql.= " AND d.fk_product =".$id; |
|
| 197 | 197 | if (! empty($TSelectedCats)) { |
| 198 | - $sql .= ' AND cp.fk_categorie IN ('.implode(',', $TSelectedCats) . ')'; |
|
| 198 | + $sql .= ' AND cp.fk_categorie IN ('.implode(',', $TSelectedCats) . ')'; |
|
| 199 | 199 | } |
| 200 | 200 | if (!empty($startdate)) |
| 201 | - $sql.= " AND f.datef >= '".$db->idate($startdate)."'"; |
|
| 201 | + $sql.= " AND f.datef >= '".$db->idate($startdate)."'"; |
|
| 202 | 202 | if (!empty($enddate)) |
| 203 | - $sql.= " AND f.datef <= '".$db->idate($enddate)."'"; |
|
| 203 | + $sql.= " AND f.datef <= '".$db->idate($enddate)."'"; |
|
| 204 | 204 | $sql .= " AND d.buy_price_ht IS NOT NULL"; |
| 205 | 205 | if (isset($conf->global->ForceBuyingPriceIfNull) && $conf->global->ForceBuyingPriceIfNull == 1) |
| 206 | - $sql .= " AND d.buy_price_ht <> 0"; |
|
| 206 | + $sql .= " AND d.buy_price_ht <> 0"; |
|
| 207 | 207 | if ($id > 0) $sql.= " GROUP BY p.label, p.rowid, p.fk_product_type, p.ref, p.entity, d.fk_product, f.rowid, f.ref, f.total, f.datef, f.paye, f.fk_statut"; |
| 208 | 208 | else $sql.= " GROUP BY p.label, p.rowid, p.fk_product_type, p.ref, p.entity"; |
| 209 | 209 | $sql.=$db->order($sortfield,$sortorder); |
@@ -214,137 +214,137 @@ discard block |
||
| 214 | 214 | $result = $db->query($sql); |
| 215 | 215 | if ($result) |
| 216 | 216 | { |
| 217 | - $num = $db->num_rows($result); |
|
| 217 | + $num = $db->num_rows($result); |
|
| 218 | 218 | |
| 219 | - print '<br>'; |
|
| 220 | - print_barre_liste($langs->trans("MarginDetails"), $page, $_SERVER["PHP_SELF"], "&id=".$id, $sortfield, $sortorder, '', $num, $num, '', 0, '', '', 0, 1); |
|
| 219 | + print '<br>'; |
|
| 220 | + print_barre_liste($langs->trans("MarginDetails"), $page, $_SERVER["PHP_SELF"], "&id=".$id, $sortfield, $sortorder, '', $num, $num, '', 0, '', '', 0, 1); |
|
| 221 | 221 | |
| 222 | - //var_dump($conf->global->MARGIN_TYPE); |
|
| 223 | - if ($conf->global->MARGIN_TYPE == "1") |
|
| 224 | - $labelcostprice='BuyingPrice'; |
|
| 225 | - else // value is 'costprice' or 'pmp' |
|
| 226 | - $labelcostprice='CostPrice'; |
|
| 222 | + //var_dump($conf->global->MARGIN_TYPE); |
|
| 223 | + if ($conf->global->MARGIN_TYPE == "1") |
|
| 224 | + $labelcostprice='BuyingPrice'; |
|
| 225 | + else // value is 'costprice' or 'pmp' |
|
| 226 | + $labelcostprice='CostPrice'; |
|
| 227 | 227 | |
| 228 | - $moreforfilter=''; |
|
| 228 | + $moreforfilter=''; |
|
| 229 | 229 | |
| 230 | - $i = 0; |
|
| 230 | + $i = 0; |
|
| 231 | 231 | print '<div class="div-table-responsive">'; |
| 232 | 232 | print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n"; |
| 233 | 233 | |
| 234 | - print '<tr class="liste_titre">'; |
|
| 235 | - if ($id > 0) { |
|
| 236 | - print_liste_field_titre("Invoice",$_SERVER["PHP_SELF"],"f.ref","","&id=".$id,'',$sortfield,$sortorder); |
|
| 237 | - print_liste_field_titre("DateInvoice",$_SERVER["PHP_SELF"],"f.datef","","&id=".$id,'align="center"',$sortfield,$sortorder); |
|
| 238 | - } |
|
| 239 | - else |
|
| 240 | - { |
|
| 241 | - print_liste_field_titre("ProductService",$_SERVER["PHP_SELF"],"p.ref","","&id=".$id,'',$sortfield,$sortorder); |
|
| 242 | - } |
|
| 243 | - print_liste_field_titre("SellingPrice",$_SERVER["PHP_SELF"],"selling_price","","&id=".$id,'align="right"',$sortfield,$sortorder); |
|
| 244 | - print_liste_field_titre($labelcostprice,$_SERVER["PHP_SELF"],"buying_price","","&id=".$id,'align="right"',$sortfield,$sortorder); |
|
| 245 | - print_liste_field_titre("Margin",$_SERVER["PHP_SELF"],"marge","","&id=".$id,'align="right"',$sortfield,$sortorder); |
|
| 246 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 247 | - print_liste_field_titre("MarginRate",$_SERVER["PHP_SELF"],"","","&id=".$id,'align="right"',$sortfield,$sortorder); |
|
| 248 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 249 | - print_liste_field_titre("MarkRate",$_SERVER["PHP_SELF"],"","","&id=".$id,'align="right"',$sortfield,$sortorder); |
|
| 250 | - print "</tr>\n"; |
|
| 251 | - |
|
| 252 | - $cumul_achat = 0; |
|
| 253 | - $cumul_vente = 0; |
|
| 254 | - $rounding = min($conf->global->MAIN_MAX_DECIMALS_UNIT,$conf->global->MAIN_MAX_DECIMALS_TOT); |
|
| 255 | - |
|
| 256 | - if ($num > 0) |
|
| 257 | - { |
|
| 258 | - while ($i < $num /*&& $i < $conf->liste_limit*/) |
|
| 259 | - { |
|
| 260 | - $objp = $db->fetch_object($result); |
|
| 261 | - $pa = $objp->buying_price; |
|
| 262 | - $pv = $objp->selling_price; |
|
| 263 | - $marge = $objp->marge; |
|
| 264 | - |
|
| 265 | - if ($marge < 0) |
|
| 266 | - { |
|
| 267 | - $marginRate = ($pa != 0)?-1*(100 * $marge / $pa):'' ; |
|
| 268 | - $markRate = ($pv != 0)?-1*(100 * $marge / $pv):'' ; |
|
| 269 | - } |
|
| 270 | - else |
|
| 271 | - { |
|
| 272 | - $marginRate = ($pa != 0)?(100 * $marge / $pa):'' ; |
|
| 273 | - $markRate = ($pv != 0)?(100 * $marge / $pv):'' ; |
|
| 274 | - } |
|
| 275 | - |
|
| 276 | - print '<tr class="oddeven">'; |
|
| 277 | - if ($id > 0) { |
|
| 278 | - print '<td>'; |
|
| 279 | - $invoicestatic->id=$objp->facid; |
|
| 280 | - $invoicestatic->ref=$objp->ref; |
|
| 281 | - print $invoicestatic->getNomUrl(1); |
|
| 282 | - print "</td>\n"; |
|
| 283 | - print "<td align=\"center\">"; |
|
| 284 | - print dol_print_date($db->jdate($objp->datef),'day')."</td>"; |
|
| 285 | - } |
|
| 286 | - else { |
|
| 287 | - print '<td>'; |
|
| 288 | - if ($objp->rowid > 0) |
|
| 289 | - { |
|
| 290 | - $product_static->type=$objp->fk_product_type; |
|
| 291 | - $product_static->id=$objp->rowid; |
|
| 292 | - $product_static->ref=$objp->ref; |
|
| 293 | - $product_static->label=$objp->label; |
|
| 294 | - $product_static->entity=$objp->pentity; |
|
| 295 | - $text=$product_static->getNomUrl(1); |
|
| 296 | - print $text.= ' - '.$objp->label; |
|
| 297 | - } |
|
| 298 | - else |
|
| 299 | - { |
|
| 300 | - print img_object('', 'product').' '.$langs->trans("NotPredefinedProducts"); |
|
| 301 | - } |
|
| 302 | - print "</td>\n"; |
|
| 303 | - //print "<td>".$product_static->getNomUrl(1)."</td>\n"; |
|
| 304 | - } |
|
| 305 | - print "<td align=\"right\">".price($pv, null, null, null, null, $rounding)."</td>\n"; |
|
| 306 | - print "<td align=\"right\">".price($pa, null, null, null, null, $rounding)."</td>\n"; |
|
| 307 | - print "<td align=\"right\">".price($marge, null, null, null, null, $rounding)."</td>\n"; |
|
| 308 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 309 | - print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 310 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 311 | - print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 312 | - print "</tr>\n"; |
|
| 313 | - |
|
| 314 | - $i++; |
|
| 315 | - $cumul_achat += $objp->buying_price; |
|
| 316 | - $cumul_vente += $objp->selling_price; |
|
| 317 | - } |
|
| 318 | - } |
|
| 319 | - |
|
| 320 | - // affichage totaux marges |
|
| 321 | - |
|
| 322 | - $totalMargin = $cumul_vente - $cumul_achat; |
|
| 323 | - |
|
| 324 | - $marginRate = ($cumul_achat != 0)?(100 * $totalMargin / $cumul_achat):''; |
|
| 325 | - $markRate = ($cumul_vente != 0)?(100 * $totalMargin / $cumul_vente):''; |
|
| 326 | - |
|
| 327 | - print '<tr class="liste_total">'; |
|
| 328 | - if ($id > 0) |
|
| 329 | - print '<td colspan=2>'; |
|
| 330 | - else |
|
| 331 | - print '<td>'; |
|
| 332 | - print $langs->trans('TotalMargin')."</td>"; |
|
| 333 | - print "<td align=\"right\">".price($cumul_vente, null, null, null, null, $rounding)."</td>\n"; |
|
| 334 | - print "<td align=\"right\">".price($cumul_achat, null, null, null, null, $rounding)."</td>\n"; |
|
| 335 | - print "<td align=\"right\">".price($totalMargin, null, null, null, null, $rounding)."</td>\n"; |
|
| 336 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 337 | - print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 338 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 339 | - print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 340 | - print "</tr>\n"; |
|
| 341 | - |
|
| 342 | - print "</table>"; |
|
| 343 | - print '</div>'; |
|
| 234 | + print '<tr class="liste_titre">'; |
|
| 235 | + if ($id > 0) { |
|
| 236 | + print_liste_field_titre("Invoice",$_SERVER["PHP_SELF"],"f.ref","","&id=".$id,'',$sortfield,$sortorder); |
|
| 237 | + print_liste_field_titre("DateInvoice",$_SERVER["PHP_SELF"],"f.datef","","&id=".$id,'align="center"',$sortfield,$sortorder); |
|
| 238 | + } |
|
| 239 | + else |
|
| 240 | + { |
|
| 241 | + print_liste_field_titre("ProductService",$_SERVER["PHP_SELF"],"p.ref","","&id=".$id,'',$sortfield,$sortorder); |
|
| 242 | + } |
|
| 243 | + print_liste_field_titre("SellingPrice",$_SERVER["PHP_SELF"],"selling_price","","&id=".$id,'align="right"',$sortfield,$sortorder); |
|
| 244 | + print_liste_field_titre($labelcostprice,$_SERVER["PHP_SELF"],"buying_price","","&id=".$id,'align="right"',$sortfield,$sortorder); |
|
| 245 | + print_liste_field_titre("Margin",$_SERVER["PHP_SELF"],"marge","","&id=".$id,'align="right"',$sortfield,$sortorder); |
|
| 246 | + if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 247 | + print_liste_field_titre("MarginRate",$_SERVER["PHP_SELF"],"","","&id=".$id,'align="right"',$sortfield,$sortorder); |
|
| 248 | + if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 249 | + print_liste_field_titre("MarkRate",$_SERVER["PHP_SELF"],"","","&id=".$id,'align="right"',$sortfield,$sortorder); |
|
| 250 | + print "</tr>\n"; |
|
| 251 | + |
|
| 252 | + $cumul_achat = 0; |
|
| 253 | + $cumul_vente = 0; |
|
| 254 | + $rounding = min($conf->global->MAIN_MAX_DECIMALS_UNIT,$conf->global->MAIN_MAX_DECIMALS_TOT); |
|
| 255 | + |
|
| 256 | + if ($num > 0) |
|
| 257 | + { |
|
| 258 | + while ($i < $num /*&& $i < $conf->liste_limit*/) |
|
| 259 | + { |
|
| 260 | + $objp = $db->fetch_object($result); |
|
| 261 | + $pa = $objp->buying_price; |
|
| 262 | + $pv = $objp->selling_price; |
|
| 263 | + $marge = $objp->marge; |
|
| 264 | + |
|
| 265 | + if ($marge < 0) |
|
| 266 | + { |
|
| 267 | + $marginRate = ($pa != 0)?-1*(100 * $marge / $pa):'' ; |
|
| 268 | + $markRate = ($pv != 0)?-1*(100 * $marge / $pv):'' ; |
|
| 269 | + } |
|
| 270 | + else |
|
| 271 | + { |
|
| 272 | + $marginRate = ($pa != 0)?(100 * $marge / $pa):'' ; |
|
| 273 | + $markRate = ($pv != 0)?(100 * $marge / $pv):'' ; |
|
| 274 | + } |
|
| 275 | + |
|
| 276 | + print '<tr class="oddeven">'; |
|
| 277 | + if ($id > 0) { |
|
| 278 | + print '<td>'; |
|
| 279 | + $invoicestatic->id=$objp->facid; |
|
| 280 | + $invoicestatic->ref=$objp->ref; |
|
| 281 | + print $invoicestatic->getNomUrl(1); |
|
| 282 | + print "</td>\n"; |
|
| 283 | + print "<td align=\"center\">"; |
|
| 284 | + print dol_print_date($db->jdate($objp->datef),'day')."</td>"; |
|
| 285 | + } |
|
| 286 | + else { |
|
| 287 | + print '<td>'; |
|
| 288 | + if ($objp->rowid > 0) |
|
| 289 | + { |
|
| 290 | + $product_static->type=$objp->fk_product_type; |
|
| 291 | + $product_static->id=$objp->rowid; |
|
| 292 | + $product_static->ref=$objp->ref; |
|
| 293 | + $product_static->label=$objp->label; |
|
| 294 | + $product_static->entity=$objp->pentity; |
|
| 295 | + $text=$product_static->getNomUrl(1); |
|
| 296 | + print $text.= ' - '.$objp->label; |
|
| 297 | + } |
|
| 298 | + else |
|
| 299 | + { |
|
| 300 | + print img_object('', 'product').' '.$langs->trans("NotPredefinedProducts"); |
|
| 301 | + } |
|
| 302 | + print "</td>\n"; |
|
| 303 | + //print "<td>".$product_static->getNomUrl(1)."</td>\n"; |
|
| 304 | + } |
|
| 305 | + print "<td align=\"right\">".price($pv, null, null, null, null, $rounding)."</td>\n"; |
|
| 306 | + print "<td align=\"right\">".price($pa, null, null, null, null, $rounding)."</td>\n"; |
|
| 307 | + print "<td align=\"right\">".price($marge, null, null, null, null, $rounding)."</td>\n"; |
|
| 308 | + if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 309 | + print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 310 | + if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 311 | + print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 312 | + print "</tr>\n"; |
|
| 313 | + |
|
| 314 | + $i++; |
|
| 315 | + $cumul_achat += $objp->buying_price; |
|
| 316 | + $cumul_vente += $objp->selling_price; |
|
| 317 | + } |
|
| 318 | + } |
|
| 319 | + |
|
| 320 | + // affichage totaux marges |
|
| 321 | + |
|
| 322 | + $totalMargin = $cumul_vente - $cumul_achat; |
|
| 323 | + |
|
| 324 | + $marginRate = ($cumul_achat != 0)?(100 * $totalMargin / $cumul_achat):''; |
|
| 325 | + $markRate = ($cumul_vente != 0)?(100 * $totalMargin / $cumul_vente):''; |
|
| 326 | + |
|
| 327 | + print '<tr class="liste_total">'; |
|
| 328 | + if ($id > 0) |
|
| 329 | + print '<td colspan=2>'; |
|
| 330 | + else |
|
| 331 | + print '<td>'; |
|
| 332 | + print $langs->trans('TotalMargin')."</td>"; |
|
| 333 | + print "<td align=\"right\">".price($cumul_vente, null, null, null, null, $rounding)."</td>\n"; |
|
| 334 | + print "<td align=\"right\">".price($cumul_achat, null, null, null, null, $rounding)."</td>\n"; |
|
| 335 | + print "<td align=\"right\">".price($totalMargin, null, null, null, null, $rounding)."</td>\n"; |
|
| 336 | + if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 337 | + print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 338 | + if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 339 | + print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 340 | + print "</tr>\n"; |
|
| 341 | + |
|
| 342 | + print "</table>"; |
|
| 343 | + print '</div>'; |
|
| 344 | 344 | } |
| 345 | 345 | else |
| 346 | 346 | { |
| 347 | - dol_print_error($db); |
|
| 347 | + dol_print_error($db); |
|
| 348 | 348 | } |
| 349 | 349 | $db->free($result); |
| 350 | 350 | |
@@ -40,7 +40,9 @@ discard block |
||
| 40 | 40 | // Security check |
| 41 | 41 | $fieldvalue = (! empty($id) ? $id : (! empty($ref) ? $ref : '')); |
| 42 | 42 | $fieldtype = (! empty($ref) ? 'ref' : 'rowid'); |
| 43 | -if (! empty($user->societe_id)) $socid=$user->societe_id; |
|
| 43 | +if (! empty($user->societe_id)) { |
|
| 44 | + $socid=$user->societe_id; |
|
| 45 | +} |
|
| 44 | 46 | $result=restrictedArea($user,'produit|service',$fieldvalue,'product&product','','',$fieldtype); |
| 45 | 47 | $result=restrictedArea($user,'margins'); |
| 46 | 48 | |
@@ -61,8 +63,7 @@ discard block |
||
| 61 | 63 | { |
| 62 | 64 | $sortfield="f.datef"; |
| 63 | 65 | $sortorder="DESC"; |
| 64 | - } |
|
| 65 | - else |
|
| 66 | + } else |
|
| 66 | 67 | { |
| 67 | 68 | $sortfield="p.ref"; |
| 68 | 69 | $sortorder="ASC"; |
@@ -71,10 +72,12 @@ discard block |
||
| 71 | 72 | |
| 72 | 73 | $startdate=$enddate=''; |
| 73 | 74 | |
| 74 | -if (!empty($_POST['startdatemonth'])) |
|
| 75 | +if (!empty($_POST['startdatemonth'])) { |
|
| 75 | 76 | $startdate = dol_mktime(0, 0, 0, $_POST['startdatemonth'], $_POST['startdateday'], $_POST['startdateyear']); |
| 76 | -if (!empty($_POST['enddatemonth'])) |
|
| 77 | +} |
|
| 78 | +if (!empty($_POST['enddatemonth'])) { |
|
| 77 | 79 | $enddate = dol_mktime(23, 59, 59, $_POST['enddatemonth'], $_POST['enddateday'], $_POST['enddateyear']); |
| 80 | +} |
|
| 78 | 81 | |
| 79 | 82 | |
| 80 | 83 | /* |
@@ -109,10 +112,13 @@ discard block |
||
| 109 | 112 | print $form->select_produits($id,'id','',20,0,1,2,'',1, array(), 0, 'All'); |
| 110 | 113 | print '</td></tr>'; |
| 111 | 114 | |
| 112 | - if (! $sortorder) $sortorder="DESC"; |
|
| 113 | - if (! $sortfield) $sortfield="f.datef"; |
|
| 114 | -} |
|
| 115 | -else { |
|
| 115 | + if (! $sortorder) { |
|
| 116 | + $sortorder="DESC"; |
|
| 117 | + } |
|
| 118 | + if (! $sortfield) { |
|
| 119 | + $sortfield="f.datef"; |
|
| 120 | + } |
|
| 121 | + } else { |
|
| 116 | 122 | print '<tr><td class="titlefield">'.$langs->trans('ChooseProduct/Service').'</td>'; |
| 117 | 123 | print '<td class="maxwidthonsmartphone" colspan="4">'; |
| 118 | 124 | print $form->select_produits('','id','',20,0,1,2,'',1, array(), 0, 'All'); |
@@ -175,8 +181,12 @@ discard block |
||
| 175 | 181 | print '</form>'; |
| 176 | 182 | |
| 177 | 183 | $sql = "SELECT p.label, p.rowid, p.fk_product_type, p.ref, p.entity as pentity,"; |
| 178 | -if ($id > 0) $sql.= " d.fk_product,"; |
|
| 179 | -if ($id > 0) $sql.= " f.rowid as facid, f.ref, f.total as total_ht, f.datef, f.paye, f.fk_statut as statut,"; |
|
| 184 | +if ($id > 0) { |
|
| 185 | + $sql.= " d.fk_product,"; |
|
| 186 | +} |
|
| 187 | +if ($id > 0) { |
|
| 188 | + $sql.= " f.rowid as facid, f.ref, f.total as total_ht, f.datef, f.paye, f.fk_statut as statut,"; |
|
| 189 | +} |
|
| 180 | 190 | $sql.= " SUM(d.total_ht) as selling_price,"; |
| 181 | 191 | // Note: qty and buy_price_ht is always positive (if not your database may be corrupted, you can update this) |
| 182 | 192 | $sql.= " SUM(".$db->ifsql('d.total_ht < 0','d.qty * d.buy_price_ht * -1','d.qty * d.buy_price_ht').") as buying_price,"; |
@@ -192,20 +202,27 @@ discard block |
||
| 192 | 202 | $sql.= ' AND f.entity IN ('.getEntity('invoice').')'; |
| 193 | 203 | $sql.= " AND f.fk_statut > 0"; |
| 194 | 204 | $sql.= " AND d.fk_facture = f.rowid"; |
| 195 | -if ($id > 0) |
|
| 205 | +if ($id > 0) { |
|
| 196 | 206 | $sql.= " AND d.fk_product =".$id; |
| 207 | +} |
|
| 197 | 208 | if (! empty($TSelectedCats)) { |
| 198 | 209 | $sql .= ' AND cp.fk_categorie IN ('.implode(',', $TSelectedCats) . ')'; |
| 199 | 210 | } |
| 200 | -if (!empty($startdate)) |
|
| 211 | +if (!empty($startdate)) { |
|
| 201 | 212 | $sql.= " AND f.datef >= '".$db->idate($startdate)."'"; |
| 202 | -if (!empty($enddate)) |
|
| 213 | +} |
|
| 214 | +if (!empty($enddate)) { |
|
| 203 | 215 | $sql.= " AND f.datef <= '".$db->idate($enddate)."'"; |
| 216 | +} |
|
| 204 | 217 | $sql .= " AND d.buy_price_ht IS NOT NULL"; |
| 205 | -if (isset($conf->global->ForceBuyingPriceIfNull) && $conf->global->ForceBuyingPriceIfNull == 1) |
|
| 218 | +if (isset($conf->global->ForceBuyingPriceIfNull) && $conf->global->ForceBuyingPriceIfNull == 1) { |
|
| 206 | 219 | $sql .= " AND d.buy_price_ht <> 0"; |
| 207 | -if ($id > 0) $sql.= " GROUP BY p.label, p.rowid, p.fk_product_type, p.ref, p.entity, d.fk_product, f.rowid, f.ref, f.total, f.datef, f.paye, f.fk_statut"; |
|
| 208 | -else $sql.= " GROUP BY p.label, p.rowid, p.fk_product_type, p.ref, p.entity"; |
|
| 220 | +} |
|
| 221 | +if ($id > 0) { |
|
| 222 | + $sql.= " GROUP BY p.label, p.rowid, p.fk_product_type, p.ref, p.entity, d.fk_product, f.rowid, f.ref, f.total, f.datef, f.paye, f.fk_statut"; |
|
| 223 | +} else { |
|
| 224 | + $sql.= " GROUP BY p.label, p.rowid, p.fk_product_type, p.ref, p.entity"; |
|
| 225 | +} |
|
| 209 | 226 | $sql.=$db->order($sortfield,$sortorder); |
| 210 | 227 | // TODO: calculate total to display then restore pagination |
| 211 | 228 | //$sql.= $db->plimit($conf->liste_limit +1, $offset); |
@@ -220,10 +237,12 @@ discard block |
||
| 220 | 237 | print_barre_liste($langs->trans("MarginDetails"), $page, $_SERVER["PHP_SELF"], "&id=".$id, $sortfield, $sortorder, '', $num, $num, '', 0, '', '', 0, 1); |
| 221 | 238 | |
| 222 | 239 | //var_dump($conf->global->MARGIN_TYPE); |
| 223 | - if ($conf->global->MARGIN_TYPE == "1") |
|
| 224 | - $labelcostprice='BuyingPrice'; |
|
| 225 | - else // value is 'costprice' or 'pmp' |
|
| 240 | + if ($conf->global->MARGIN_TYPE == "1") { |
|
| 241 | + $labelcostprice='BuyingPrice'; |
|
| 242 | + } else { |
|
| 243 | + // value is 'costprice' or 'pmp' |
|
| 226 | 244 | $labelcostprice='CostPrice'; |
| 245 | + } |
|
| 227 | 246 | |
| 228 | 247 | $moreforfilter=''; |
| 229 | 248 | |
@@ -235,18 +254,19 @@ discard block |
||
| 235 | 254 | if ($id > 0) { |
| 236 | 255 | print_liste_field_titre("Invoice",$_SERVER["PHP_SELF"],"f.ref","","&id=".$id,'',$sortfield,$sortorder); |
| 237 | 256 | print_liste_field_titre("DateInvoice",$_SERVER["PHP_SELF"],"f.datef","","&id=".$id,'align="center"',$sortfield,$sortorder); |
| 238 | - } |
|
| 239 | - else |
|
| 257 | + } else |
|
| 240 | 258 | { |
| 241 | 259 | print_liste_field_titre("ProductService",$_SERVER["PHP_SELF"],"p.ref","","&id=".$id,'',$sortfield,$sortorder); |
| 242 | 260 | } |
| 243 | 261 | print_liste_field_titre("SellingPrice",$_SERVER["PHP_SELF"],"selling_price","","&id=".$id,'align="right"',$sortfield,$sortorder); |
| 244 | 262 | print_liste_field_titre($labelcostprice,$_SERVER["PHP_SELF"],"buying_price","","&id=".$id,'align="right"',$sortfield,$sortorder); |
| 245 | 263 | print_liste_field_titre("Margin",$_SERVER["PHP_SELF"],"marge","","&id=".$id,'align="right"',$sortfield,$sortorder); |
| 246 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 247 | - print_liste_field_titre("MarginRate",$_SERVER["PHP_SELF"],"","","&id=".$id,'align="right"',$sortfield,$sortorder); |
|
| 248 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 249 | - print_liste_field_titre("MarkRate",$_SERVER["PHP_SELF"],"","","&id=".$id,'align="right"',$sortfield,$sortorder); |
|
| 264 | + if (! empty($conf->global->DISPLAY_MARGIN_RATES)) { |
|
| 265 | + print_liste_field_titre("MarginRate",$_SERVER["PHP_SELF"],"","","&id=".$id,'align="right"',$sortfield,$sortorder); |
|
| 266 | + } |
|
| 267 | + if (! empty($conf->global->DISPLAY_MARK_RATES)) { |
|
| 268 | + print_liste_field_titre("MarkRate",$_SERVER["PHP_SELF"],"","","&id=".$id,'align="right"',$sortfield,$sortorder); |
|
| 269 | + } |
|
| 250 | 270 | print "</tr>\n"; |
| 251 | 271 | |
| 252 | 272 | $cumul_achat = 0; |
@@ -266,8 +286,7 @@ discard block |
||
| 266 | 286 | { |
| 267 | 287 | $marginRate = ($pa != 0)?-1*(100 * $marge / $pa):'' ; |
| 268 | 288 | $markRate = ($pv != 0)?-1*(100 * $marge / $pv):'' ; |
| 269 | - } |
|
| 270 | - else |
|
| 289 | + } else |
|
| 271 | 290 | { |
| 272 | 291 | $marginRate = ($pa != 0)?(100 * $marge / $pa):'' ; |
| 273 | 292 | $markRate = ($pv != 0)?(100 * $marge / $pv):'' ; |
@@ -282,8 +301,7 @@ discard block |
||
| 282 | 301 | print "</td>\n"; |
| 283 | 302 | print "<td align=\"center\">"; |
| 284 | 303 | print dol_print_date($db->jdate($objp->datef),'day')."</td>"; |
| 285 | - } |
|
| 286 | - else { |
|
| 304 | + } else { |
|
| 287 | 305 | print '<td>'; |
| 288 | 306 | if ($objp->rowid > 0) |
| 289 | 307 | { |
@@ -294,8 +312,7 @@ discard block |
||
| 294 | 312 | $product_static->entity=$objp->pentity; |
| 295 | 313 | $text=$product_static->getNomUrl(1); |
| 296 | 314 | print $text.= ' - '.$objp->label; |
| 297 | - } |
|
| 298 | - else |
|
| 315 | + } else |
|
| 299 | 316 | { |
| 300 | 317 | print img_object('', 'product').' '.$langs->trans("NotPredefinedProducts"); |
| 301 | 318 | } |
@@ -305,10 +322,12 @@ discard block |
||
| 305 | 322 | print "<td align=\"right\">".price($pv, null, null, null, null, $rounding)."</td>\n"; |
| 306 | 323 | print "<td align=\"right\">".price($pa, null, null, null, null, $rounding)."</td>\n"; |
| 307 | 324 | print "<td align=\"right\">".price($marge, null, null, null, null, $rounding)."</td>\n"; |
| 308 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 309 | - print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 310 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 311 | - print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 325 | + if (! empty($conf->global->DISPLAY_MARGIN_RATES)) { |
|
| 326 | + print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 327 | + } |
|
| 328 | + if (! empty($conf->global->DISPLAY_MARK_RATES)) { |
|
| 329 | + print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 330 | + } |
|
| 312 | 331 | print "</tr>\n"; |
| 313 | 332 | |
| 314 | 333 | $i++; |
@@ -325,24 +344,26 @@ discard block |
||
| 325 | 344 | $markRate = ($cumul_vente != 0)?(100 * $totalMargin / $cumul_vente):''; |
| 326 | 345 | |
| 327 | 346 | print '<tr class="liste_total">'; |
| 328 | - if ($id > 0) |
|
| 329 | - print '<td colspan=2>'; |
|
| 330 | - else |
|
| 331 | - print '<td>'; |
|
| 347 | + if ($id > 0) { |
|
| 348 | + print '<td colspan=2>'; |
|
| 349 | + } else { |
|
| 350 | + print '<td>'; |
|
| 351 | + } |
|
| 332 | 352 | print $langs->trans('TotalMargin')."</td>"; |
| 333 | 353 | print "<td align=\"right\">".price($cumul_vente, null, null, null, null, $rounding)."</td>\n"; |
| 334 | 354 | print "<td align=\"right\">".price($cumul_achat, null, null, null, null, $rounding)."</td>\n"; |
| 335 | 355 | print "<td align=\"right\">".price($totalMargin, null, null, null, null, $rounding)."</td>\n"; |
| 336 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 337 | - print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 338 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 339 | - print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 356 | + if (! empty($conf->global->DISPLAY_MARGIN_RATES)) { |
|
| 357 | + print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 358 | + } |
|
| 359 | + if (! empty($conf->global->DISPLAY_MARK_RATES)) { |
|
| 360 | + print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 361 | + } |
|
| 340 | 362 | print "</tr>\n"; |
| 341 | 363 | |
| 342 | 364 | print "</table>"; |
| 343 | 365 | print '</div>'; |
| 344 | -} |
|
| 345 | -else |
|
| 366 | +} else |
|
| 346 | 367 | { |
| 347 | 368 | dol_print_error($db); |
| 348 | 369 | } |
@@ -25,7 +25,7 @@ discard block |
||
| 25 | 25 | |
| 26 | 26 | // Copyright (C) 2018 Alxarafe/Alixar <[email protected]> |
| 27 | 27 | defined('BASE_PATH') or die('Single entry point through the index.php of the main folder'); |
| 28 | -require DOL_BASE_PATH . '/main.inc.php'; |
|
| 28 | +require DOL_BASE_PATH.'/main.inc.php'; |
|
| 29 | 29 | |
| 30 | 30 | require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; |
| 31 | 31 | require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; |
@@ -37,48 +37,48 @@ discard block |
||
| 37 | 37 | |
| 38 | 38 | $id = GETPOST('id', 'int'); |
| 39 | 39 | $ref = GETPOST('ref', 'alpha'); |
| 40 | -$action=GETPOST('action','alpha'); |
|
| 41 | -$confirm=GETPOST('confirm','alpha'); |
|
| 42 | -$TSelectedCats=GETPOST('categories', 'array'); |
|
| 40 | +$action = GETPOST('action', 'alpha'); |
|
| 41 | +$confirm = GETPOST('confirm', 'alpha'); |
|
| 42 | +$TSelectedCats = GETPOST('categories', 'array'); |
|
| 43 | 43 | |
| 44 | 44 | // Security check |
| 45 | -$fieldvalue = (! empty($id) ? $id : (! empty($ref) ? $ref : '')); |
|
| 46 | -$fieldtype = (! empty($ref) ? 'ref' : 'rowid'); |
|
| 47 | -if (! empty($user->societe_id)) $socid=$user->societe_id; |
|
| 48 | -$result=restrictedArea($user,'produit|service',$fieldvalue,'product&product','','',$fieldtype); |
|
| 49 | -$result=restrictedArea($user,'margins'); |
|
| 45 | +$fieldvalue = (!empty($id) ? $id : (!empty($ref) ? $ref : '')); |
|
| 46 | +$fieldtype = (!empty($ref) ? 'ref' : 'rowid'); |
|
| 47 | +if (!empty($user->societe_id)) $socid = $user->societe_id; |
|
| 48 | +$result = restrictedArea($user, 'produit|service', $fieldvalue, 'product&product', '', '', $fieldtype); |
|
| 49 | +$result = restrictedArea($user, 'margins'); |
|
| 50 | 50 | |
| 51 | 51 | $mesg = ''; |
| 52 | 52 | |
| 53 | 53 | // Load variable for pagination |
| 54 | -$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit; |
|
| 55 | -$sortfield = GETPOST('sortfield','alpha'); |
|
| 56 | -$sortorder = GETPOST('sortorder','alpha'); |
|
| 57 | -$page = GETPOST('page','int'); |
|
| 54 | +$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; |
|
| 55 | +$sortfield = GETPOST('sortfield', 'alpha'); |
|
| 56 | +$sortorder = GETPOST('sortorder', 'alpha'); |
|
| 57 | +$page = GETPOST('page', 'int'); |
|
| 58 | 58 | if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 |
| 59 | 59 | $offset = $limit * $page; |
| 60 | 60 | $pageprev = $page - 1; |
| 61 | 61 | $pagenext = $page + 1; |
| 62 | -if (! $sortfield) |
|
| 62 | +if (!$sortfield) |
|
| 63 | 63 | { |
| 64 | 64 | if ($id > 0) |
| 65 | 65 | { |
| 66 | - $sortfield="f.datef"; |
|
| 67 | - $sortorder="DESC"; |
|
| 66 | + $sortfield = "f.datef"; |
|
| 67 | + $sortorder = "DESC"; |
|
| 68 | 68 | } |
| 69 | 69 | else |
| 70 | 70 | { |
| 71 | - $sortfield="p.ref"; |
|
| 72 | - $sortorder="ASC"; |
|
| 71 | + $sortfield = "p.ref"; |
|
| 72 | + $sortorder = "ASC"; |
|
| 73 | 73 | } |
| 74 | 74 | } |
| 75 | 75 | |
| 76 | -$startdate=$enddate=''; |
|
| 76 | +$startdate = $enddate = ''; |
|
| 77 | 77 | |
| 78 | 78 | if (!empty($_POST['startdatemonth'])) |
| 79 | - $startdate = dol_mktime(0, 0, 0, $_POST['startdatemonth'], $_POST['startdateday'], $_POST['startdateyear']); |
|
| 79 | + $startdate = dol_mktime(0, 0, 0, $_POST['startdatemonth'], $_POST['startdateday'], $_POST['startdateyear']); |
|
| 80 | 80 | if (!empty($_POST['enddatemonth'])) |
| 81 | - $enddate = dol_mktime(23, 59, 59, $_POST['enddatemonth'], $_POST['enddateday'], $_POST['enddateyear']); |
|
| 81 | + $enddate = dol_mktime(23, 59, 59, $_POST['enddatemonth'], $_POST['enddateday'], $_POST['enddateyear']); |
|
| 82 | 82 | |
| 83 | 83 | |
| 84 | 84 | /* |
@@ -86,19 +86,19 @@ discard block |
||
| 86 | 86 | */ |
| 87 | 87 | |
| 88 | 88 | $product_static = new Product($db); |
| 89 | -$invoicestatic=new Facture($db); |
|
| 89 | +$invoicestatic = new Facture($db); |
|
| 90 | 90 | |
| 91 | 91 | $form = new Form($db); |
| 92 | 92 | |
| 93 | -llxHeader('',$langs->trans("Margins").' - '.$langs->trans("Products")); |
|
| 93 | +llxHeader('', $langs->trans("Margins").' - '.$langs->trans("Products")); |
|
| 94 | 94 | |
| 95 | -$text=$langs->trans("Margins"); |
|
| 95 | +$text = $langs->trans("Margins"); |
|
| 96 | 96 | //print load_fiche_titre($text); |
| 97 | 97 | |
| 98 | 98 | // Show tabs |
| 99 | -$head=marges_prepare_head($user); |
|
| 100 | -$titre=$langs->trans("Margins"); |
|
| 101 | -$picto='margin'; |
|
| 99 | +$head = marges_prepare_head($user); |
|
| 100 | +$titre = $langs->trans("Margins"); |
|
| 101 | +$picto = 'margin'; |
|
| 102 | 102 | |
| 103 | 103 | print '<form method="post" name="sel" action="'.$_SERVER['PHP_SELF'].'">'; |
| 104 | 104 | |
@@ -110,16 +110,16 @@ discard block |
||
| 110 | 110 | |
| 111 | 111 | print '<tr><td class="titlefield">'.$langs->trans('ChooseProduct/Service').'</td>'; |
| 112 | 112 | print '<td class="maxwidthonsmartpone" colspan="4">'; |
| 113 | - print $form->select_produits($id,'id','',20,0,1,2,'',1, array(), 0, 'All'); |
|
| 113 | + print $form->select_produits($id, 'id', '', 20, 0, 1, 2, '', 1, array(), 0, 'All'); |
|
| 114 | 114 | print '</td></tr>'; |
| 115 | 115 | |
| 116 | - if (! $sortorder) $sortorder="DESC"; |
|
| 117 | - if (! $sortfield) $sortfield="f.datef"; |
|
| 116 | + if (!$sortorder) $sortorder = "DESC"; |
|
| 117 | + if (!$sortfield) $sortfield = "f.datef"; |
|
| 118 | 118 | } |
| 119 | 119 | else { |
| 120 | 120 | print '<tr><td class="titlefield">'.$langs->trans('ChooseProduct/Service').'</td>'; |
| 121 | 121 | print '<td class="maxwidthonsmartphone" colspan="4">'; |
| 122 | - print $form->select_produits('','id','',20,0,1,2,'',1, array(), 0, 'All'); |
|
| 122 | + print $form->select_produits('', 'id', '', 20, 0, 1, 2, '', 1, array(), 0, 'All'); |
|
| 123 | 123 | print '</td></tr>'; |
| 124 | 124 | } |
| 125 | 125 | |
@@ -159,14 +159,14 @@ discard block |
||
| 159 | 159 | print '</td></tr>'; |
| 160 | 160 | |
| 161 | 161 | // Margin Rate |
| 162 | -if (! empty($conf->global->DISPLAY_MARGIN_RATES)) { |
|
| 162 | +if (!empty($conf->global->DISPLAY_MARGIN_RATES)) { |
|
| 163 | 163 | print '<tr><td>'.$langs->trans("MarginRate").'</td><td colspan="4">'; |
| 164 | 164 | print '<span id="marginRate"></span>'; // set by jquery (see below) |
| 165 | 165 | print '</td></tr>'; |
| 166 | 166 | } |
| 167 | 167 | |
| 168 | 168 | // Mark Rate |
| 169 | -if (! empty($conf->global->DISPLAY_MARK_RATES)) { |
|
| 169 | +if (!empty($conf->global->DISPLAY_MARK_RATES)) { |
|
| 170 | 170 | print '<tr><td>'.$langs->trans("MarkRate").'</td><td colspan="4">'; |
| 171 | 171 | print '<span id="markRate"></span>'; // set by jquery (see below) |
| 172 | 172 | print '</td></tr>'; |
@@ -179,38 +179,38 @@ discard block |
||
| 179 | 179 | print '</form>'; |
| 180 | 180 | |
| 181 | 181 | $sql = "SELECT p.label, p.rowid, p.fk_product_type, p.ref, p.entity as pentity,"; |
| 182 | -if ($id > 0) $sql.= " d.fk_product,"; |
|
| 183 | -if ($id > 0) $sql.= " f.rowid as facid, f.ref, f.total as total_ht, f.datef, f.paye, f.fk_statut as statut,"; |
|
| 184 | -$sql.= " SUM(d.total_ht) as selling_price,"; |
|
| 182 | +if ($id > 0) $sql .= " d.fk_product,"; |
|
| 183 | +if ($id > 0) $sql .= " f.rowid as facid, f.ref, f.total as total_ht, f.datef, f.paye, f.fk_statut as statut,"; |
|
| 184 | +$sql .= " SUM(d.total_ht) as selling_price,"; |
|
| 185 | 185 | // Note: qty and buy_price_ht is always positive (if not your database may be corrupted, you can update this) |
| 186 | -$sql.= " SUM(".$db->ifsql('d.total_ht < 0','d.qty * d.buy_price_ht * -1','d.qty * d.buy_price_ht').") as buying_price,"; |
|
| 187 | -$sql.= " SUM(".$db->ifsql('d.total_ht < 0','-1 * (abs(d.total_ht) - (d.buy_price_ht * d.qty))','d.total_ht - (d.buy_price_ht * d.qty)').") as marge"; |
|
| 188 | -$sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; |
|
| 189 | -$sql.= ", ".MAIN_DB_PREFIX."facture as f"; |
|
| 190 | -$sql.= ", ".MAIN_DB_PREFIX."facturedet as d"; |
|
| 191 | -$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON p.rowid = d.fk_product"; |
|
| 192 | -if (! empty($TSelectedCats)) { |
|
| 193 | - $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie_product as cp ON cp.fk_product=p.rowid'; |
|
| 186 | +$sql .= " SUM(".$db->ifsql('d.total_ht < 0', 'd.qty * d.buy_price_ht * -1', 'd.qty * d.buy_price_ht').") as buying_price,"; |
|
| 187 | +$sql .= " SUM(".$db->ifsql('d.total_ht < 0', '-1 * (abs(d.total_ht) - (d.buy_price_ht * d.qty))', 'd.total_ht - (d.buy_price_ht * d.qty)').") as marge"; |
|
| 188 | +$sql .= " FROM ".MAIN_DB_PREFIX."societe as s"; |
|
| 189 | +$sql .= ", ".MAIN_DB_PREFIX."facture as f"; |
|
| 190 | +$sql .= ", ".MAIN_DB_PREFIX."facturedet as d"; |
|
| 191 | +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON p.rowid = d.fk_product"; |
|
| 192 | +if (!empty($TSelectedCats)) { |
|
| 193 | + $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie_product as cp ON cp.fk_product=p.rowid'; |
|
| 194 | 194 | } |
| 195 | -$sql.= " WHERE f.fk_soc = s.rowid"; |
|
| 196 | -$sql.= ' AND f.entity IN ('.getEntity('invoice').')'; |
|
| 197 | -$sql.= " AND f.fk_statut > 0"; |
|
| 198 | -$sql.= " AND d.fk_facture = f.rowid"; |
|
| 195 | +$sql .= " WHERE f.fk_soc = s.rowid"; |
|
| 196 | +$sql .= ' AND f.entity IN ('.getEntity('invoice').')'; |
|
| 197 | +$sql .= " AND f.fk_statut > 0"; |
|
| 198 | +$sql .= " AND d.fk_facture = f.rowid"; |
|
| 199 | 199 | if ($id > 0) |
| 200 | - $sql.= " AND d.fk_product =".$id; |
|
| 201 | -if (! empty($TSelectedCats)) { |
|
| 202 | - $sql .= ' AND cp.fk_categorie IN ('.implode(',', $TSelectedCats) . ')'; |
|
| 200 | + $sql .= " AND d.fk_product =".$id; |
|
| 201 | +if (!empty($TSelectedCats)) { |
|
| 202 | + $sql .= ' AND cp.fk_categorie IN ('.implode(',', $TSelectedCats).')'; |
|
| 203 | 203 | } |
| 204 | 204 | if (!empty($startdate)) |
| 205 | - $sql.= " AND f.datef >= '".$db->idate($startdate)."'"; |
|
| 205 | + $sql .= " AND f.datef >= '".$db->idate($startdate)."'"; |
|
| 206 | 206 | if (!empty($enddate)) |
| 207 | - $sql.= " AND f.datef <= '".$db->idate($enddate)."'"; |
|
| 207 | + $sql .= " AND f.datef <= '".$db->idate($enddate)."'"; |
|
| 208 | 208 | $sql .= " AND d.buy_price_ht IS NOT NULL"; |
| 209 | 209 | if (isset($conf->global->ForceBuyingPriceIfNull) && $conf->global->ForceBuyingPriceIfNull == 1) |
| 210 | 210 | $sql .= " AND d.buy_price_ht <> 0"; |
| 211 | -if ($id > 0) $sql.= " GROUP BY p.label, p.rowid, p.fk_product_type, p.ref, p.entity, d.fk_product, f.rowid, f.ref, f.total, f.datef, f.paye, f.fk_statut"; |
|
| 212 | -else $sql.= " GROUP BY p.label, p.rowid, p.fk_product_type, p.ref, p.entity"; |
|
| 213 | -$sql.=$db->order($sortfield,$sortorder); |
|
| 211 | +if ($id > 0) $sql .= " GROUP BY p.label, p.rowid, p.fk_product_type, p.ref, p.entity, d.fk_product, f.rowid, f.ref, f.total, f.datef, f.paye, f.fk_statut"; |
|
| 212 | +else $sql .= " GROUP BY p.label, p.rowid, p.fk_product_type, p.ref, p.entity"; |
|
| 213 | +$sql .= $db->order($sortfield, $sortorder); |
|
| 214 | 214 | // TODO: calculate total to display then restore pagination |
| 215 | 215 | //$sql.= $db->plimit($conf->liste_limit +1, $offset); |
| 216 | 216 | |
@@ -225,37 +225,37 @@ discard block |
||
| 225 | 225 | |
| 226 | 226 | //var_dump($conf->global->MARGIN_TYPE); |
| 227 | 227 | if ($conf->global->MARGIN_TYPE == "1") |
| 228 | - $labelcostprice='BuyingPrice'; |
|
| 228 | + $labelcostprice = 'BuyingPrice'; |
|
| 229 | 229 | else // value is 'costprice' or 'pmp' |
| 230 | - $labelcostprice='CostPrice'; |
|
| 230 | + $labelcostprice = 'CostPrice'; |
|
| 231 | 231 | |
| 232 | - $moreforfilter=''; |
|
| 232 | + $moreforfilter = ''; |
|
| 233 | 233 | |
| 234 | 234 | $i = 0; |
| 235 | 235 | print '<div class="div-table-responsive">'; |
| 236 | - print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n"; |
|
| 236 | + print '<table class="tagtable liste'.($moreforfilter ? " listwithfilterbefore" : "").'">'."\n"; |
|
| 237 | 237 | |
| 238 | 238 | print '<tr class="liste_titre">'; |
| 239 | 239 | if ($id > 0) { |
| 240 | - print_liste_field_titre("Invoice",$_SERVER["PHP_SELF"],"f.ref","","&id=".$id,'',$sortfield,$sortorder); |
|
| 241 | - print_liste_field_titre("DateInvoice",$_SERVER["PHP_SELF"],"f.datef","","&id=".$id,'align="center"',$sortfield,$sortorder); |
|
| 240 | + print_liste_field_titre("Invoice", $_SERVER["PHP_SELF"], "f.ref", "", "&id=".$id, '', $sortfield, $sortorder); |
|
| 241 | + print_liste_field_titre("DateInvoice", $_SERVER["PHP_SELF"], "f.datef", "", "&id=".$id, 'align="center"', $sortfield, $sortorder); |
|
| 242 | 242 | } |
| 243 | 243 | else |
| 244 | 244 | { |
| 245 | - print_liste_field_titre("ProductService",$_SERVER["PHP_SELF"],"p.ref","","&id=".$id,'',$sortfield,$sortorder); |
|
| 245 | + print_liste_field_titre("ProductService", $_SERVER["PHP_SELF"], "p.ref", "", "&id=".$id, '', $sortfield, $sortorder); |
|
| 246 | 246 | } |
| 247 | - print_liste_field_titre("SellingPrice",$_SERVER["PHP_SELF"],"selling_price","","&id=".$id,'align="right"',$sortfield,$sortorder); |
|
| 248 | - print_liste_field_titre($labelcostprice,$_SERVER["PHP_SELF"],"buying_price","","&id=".$id,'align="right"',$sortfield,$sortorder); |
|
| 249 | - print_liste_field_titre("Margin",$_SERVER["PHP_SELF"],"marge","","&id=".$id,'align="right"',$sortfield,$sortorder); |
|
| 250 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 251 | - print_liste_field_titre("MarginRate",$_SERVER["PHP_SELF"],"","","&id=".$id,'align="right"',$sortfield,$sortorder); |
|
| 252 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 253 | - print_liste_field_titre("MarkRate",$_SERVER["PHP_SELF"],"","","&id=".$id,'align="right"',$sortfield,$sortorder); |
|
| 247 | + print_liste_field_titre("SellingPrice", $_SERVER["PHP_SELF"], "selling_price", "", "&id=".$id, 'align="right"', $sortfield, $sortorder); |
|
| 248 | + print_liste_field_titre($labelcostprice, $_SERVER["PHP_SELF"], "buying_price", "", "&id=".$id, 'align="right"', $sortfield, $sortorder); |
|
| 249 | + print_liste_field_titre("Margin", $_SERVER["PHP_SELF"], "marge", "", "&id=".$id, 'align="right"', $sortfield, $sortorder); |
|
| 250 | + if (!empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 251 | + print_liste_field_titre("MarginRate", $_SERVER["PHP_SELF"], "", "", "&id=".$id, 'align="right"', $sortfield, $sortorder); |
|
| 252 | + if (!empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 253 | + print_liste_field_titre("MarkRate", $_SERVER["PHP_SELF"], "", "", "&id=".$id, 'align="right"', $sortfield, $sortorder); |
|
| 254 | 254 | print "</tr>\n"; |
| 255 | 255 | |
| 256 | 256 | $cumul_achat = 0; |
| 257 | 257 | $cumul_vente = 0; |
| 258 | - $rounding = min($conf->global->MAIN_MAX_DECIMALS_UNIT,$conf->global->MAIN_MAX_DECIMALS_TOT); |
|
| 258 | + $rounding = min($conf->global->MAIN_MAX_DECIMALS_UNIT, $conf->global->MAIN_MAX_DECIMALS_TOT); |
|
| 259 | 259 | |
| 260 | 260 | if ($num > 0) |
| 261 | 261 | { |
@@ -268,36 +268,36 @@ discard block |
||
| 268 | 268 | |
| 269 | 269 | if ($marge < 0) |
| 270 | 270 | { |
| 271 | - $marginRate = ($pa != 0)?-1*(100 * $marge / $pa):'' ; |
|
| 272 | - $markRate = ($pv != 0)?-1*(100 * $marge / $pv):'' ; |
|
| 271 | + $marginRate = ($pa != 0) ?-1 * (100 * $marge / $pa) : ''; |
|
| 272 | + $markRate = ($pv != 0) ?-1 * (100 * $marge / $pv) : ''; |
|
| 273 | 273 | } |
| 274 | 274 | else |
| 275 | 275 | { |
| 276 | - $marginRate = ($pa != 0)?(100 * $marge / $pa):'' ; |
|
| 277 | - $markRate = ($pv != 0)?(100 * $marge / $pv):'' ; |
|
| 276 | + $marginRate = ($pa != 0) ? (100 * $marge / $pa) : ''; |
|
| 277 | + $markRate = ($pv != 0) ? (100 * $marge / $pv) : ''; |
|
| 278 | 278 | } |
| 279 | 279 | |
| 280 | 280 | print '<tr class="oddeven">'; |
| 281 | 281 | if ($id > 0) { |
| 282 | 282 | print '<td>'; |
| 283 | - $invoicestatic->id=$objp->facid; |
|
| 284 | - $invoicestatic->ref=$objp->ref; |
|
| 283 | + $invoicestatic->id = $objp->facid; |
|
| 284 | + $invoicestatic->ref = $objp->ref; |
|
| 285 | 285 | print $invoicestatic->getNomUrl(1); |
| 286 | 286 | print "</td>\n"; |
| 287 | 287 | print "<td align=\"center\">"; |
| 288 | - print dol_print_date($db->jdate($objp->datef),'day')."</td>"; |
|
| 288 | + print dol_print_date($db->jdate($objp->datef), 'day')."</td>"; |
|
| 289 | 289 | } |
| 290 | 290 | else { |
| 291 | 291 | print '<td>'; |
| 292 | 292 | if ($objp->rowid > 0) |
| 293 | 293 | { |
| 294 | - $product_static->type=$objp->fk_product_type; |
|
| 295 | - $product_static->id=$objp->rowid; |
|
| 296 | - $product_static->ref=$objp->ref; |
|
| 297 | - $product_static->label=$objp->label; |
|
| 298 | - $product_static->entity=$objp->pentity; |
|
| 299 | - $text=$product_static->getNomUrl(1); |
|
| 300 | - print $text.= ' - '.$objp->label; |
|
| 294 | + $product_static->type = $objp->fk_product_type; |
|
| 295 | + $product_static->id = $objp->rowid; |
|
| 296 | + $product_static->ref = $objp->ref; |
|
| 297 | + $product_static->label = $objp->label; |
|
| 298 | + $product_static->entity = $objp->pentity; |
|
| 299 | + $text = $product_static->getNomUrl(1); |
|
| 300 | + print $text .= ' - '.$objp->label; |
|
| 301 | 301 | } |
| 302 | 302 | else |
| 303 | 303 | { |
@@ -309,10 +309,10 @@ discard block |
||
| 309 | 309 | print "<td align=\"right\">".price($pv, null, null, null, null, $rounding)."</td>\n"; |
| 310 | 310 | print "<td align=\"right\">".price($pa, null, null, null, null, $rounding)."</td>\n"; |
| 311 | 311 | print "<td align=\"right\">".price($marge, null, null, null, null, $rounding)."</td>\n"; |
| 312 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 313 | - print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 314 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 315 | - print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 312 | + if (!empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 313 | + print "<td align=\"right\">".(($marginRate === '') ? 'n/a' : price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 314 | + if (!empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 315 | + print "<td align=\"right\">".(($markRate === '') ? 'n/a' : price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 316 | 316 | print "</tr>\n"; |
| 317 | 317 | |
| 318 | 318 | $i++; |
@@ -325,8 +325,8 @@ discard block |
||
| 325 | 325 | |
| 326 | 326 | $totalMargin = $cumul_vente - $cumul_achat; |
| 327 | 327 | |
| 328 | - $marginRate = ($cumul_achat != 0)?(100 * $totalMargin / $cumul_achat):''; |
|
| 329 | - $markRate = ($cumul_vente != 0)?(100 * $totalMargin / $cumul_vente):''; |
|
| 328 | + $marginRate = ($cumul_achat != 0) ? (100 * $totalMargin / $cumul_achat) : ''; |
|
| 329 | + $markRate = ($cumul_vente != 0) ? (100 * $totalMargin / $cumul_vente) : ''; |
|
| 330 | 330 | |
| 331 | 331 | print '<tr class="liste_total">'; |
| 332 | 332 | if ($id > 0) |
@@ -337,10 +337,10 @@ discard block |
||
| 337 | 337 | print "<td align=\"right\">".price($cumul_vente, null, null, null, null, $rounding)."</td>\n"; |
| 338 | 338 | print "<td align=\"right\">".price($cumul_achat, null, null, null, null, $rounding)."</td>\n"; |
| 339 | 339 | print "<td align=\"right\">".price($totalMargin, null, null, null, null, $rounding)."</td>\n"; |
| 340 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 341 | - print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 342 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 343 | - print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 340 | + if (!empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 341 | + print "<td align=\"right\">".(($marginRate === '') ? 'n/a' : price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 342 | + if (!empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 343 | + print "<td align=\"right\">".(($markRate === '') ? 'n/a' : price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 344 | 344 | print "</tr>\n"; |
| 345 | 345 | |
| 346 | 346 | print "</table>"; |
@@ -362,8 +362,8 @@ discard block |
||
| 362 | 362 | }); |
| 363 | 363 | |
| 364 | 364 | $("#totalMargin").html("'.price($totalMargin, null, null, null, null, $rounding).'"); |
| 365 | - $("#marginRate").html("'.(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%").'"); |
|
| 366 | - $("#markRate").html("'.(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%").'"); |
|
| 365 | + $("#marginRate").html("'.(($marginRate === '') ? 'n/a' : price($marginRate, null, null, null, null, $rounding)."%").'"); |
|
| 366 | + $("#markRate").html("'.(($markRate === '') ? 'n/a' : price($markRate, null, null, null, null, $rounding)."%").'"); |
|
| 367 | 367 | |
| 368 | 368 | }); |
| 369 | 369 | </script> |
@@ -30,25 +30,25 @@ discard block |
||
| 30 | 30 | */ |
| 31 | 31 | function marges_admin_prepare_head() |
| 32 | 32 | { |
| 33 | - global $langs, $conf; |
|
| 33 | + global $langs, $conf; |
|
| 34 | 34 | |
| 35 | - $h = 0; |
|
| 36 | - $head = array(); |
|
| 35 | + $h = 0; |
|
| 36 | + $head = array(); |
|
| 37 | 37 | |
| 38 | - $head[$h][0] = DOL_URL_ROOT."/margin/admin/margin.php"; |
|
| 39 | - $head[$h][1] = $langs->trans("Parameters"); |
|
| 40 | - $head[$h][2] = 'parameters'; |
|
| 41 | - $h++; |
|
| 38 | + $head[$h][0] = DOL_URL_ROOT."/margin/admin/margin.php"; |
|
| 39 | + $head[$h][1] = $langs->trans("Parameters"); |
|
| 40 | + $head[$h][2] = 'parameters'; |
|
| 41 | + $h++; |
|
| 42 | 42 | |
| 43 | - // Show more tabs from modules |
|
| 44 | - // Entries must be declared in modules descriptor with line |
|
| 43 | + // Show more tabs from modules |
|
| 44 | + // Entries must be declared in modules descriptor with line |
|
| 45 | 45 | // $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab |
| 46 | 46 | // $this->tabs = array('entity:-tabname); to remove a tab |
| 47 | - complete_head_from_modules($conf,$langs,'',$head,$h,'margesadmin'); |
|
| 47 | + complete_head_from_modules($conf,$langs,'',$head,$h,'margesadmin'); |
|
| 48 | 48 | |
| 49 | - complete_head_from_modules($conf,$langs,'',$head,$h,'margesadmin','remove'); |
|
| 49 | + complete_head_from_modules($conf,$langs,'',$head,$h,'margesadmin','remove'); |
|
| 50 | 50 | |
| 51 | - return $head; |
|
| 51 | + return $head; |
|
| 52 | 52 | } |
| 53 | 53 | |
| 54 | 54 | /** |
@@ -58,45 +58,45 @@ discard block |
||
| 58 | 58 | */ |
| 59 | 59 | function marges_prepare_head() |
| 60 | 60 | { |
| 61 | - global $langs, $conf, $user; |
|
| 62 | - $langs->load("margins"); |
|
| 63 | - |
|
| 64 | - $h = 0; |
|
| 65 | - $head = array(); |
|
| 66 | - |
|
| 67 | - if ($user->rights->produit->lire) { |
|
| 68 | - $head[$h][0] = DOL_URL_ROOT."/margin/productMargins.php"; |
|
| 69 | - $head[$h][1] = $langs->trans("ProductMargins"); |
|
| 70 | - $head[$h][2] = 'productMargins'; |
|
| 71 | - $h++; |
|
| 72 | - } |
|
| 73 | - |
|
| 74 | - if ($user->rights->societe->lire) { |
|
| 75 | - $head[$h][0] = DOL_URL_ROOT."/margin/customerMargins.php"; |
|
| 76 | - $head[$h][1] = $langs->trans("CustomerMargins"); |
|
| 77 | - $head[$h][2] = 'customerMargins'; |
|
| 78 | - $h++; |
|
| 79 | - } |
|
| 80 | - |
|
| 81 | - if ($user->rights->margins->read->all) { |
|
| 82 | - $title = 'UserMargins'; |
|
| 83 | - } else { |
|
| 84 | - $title = 'SalesRepresentativeMargins'; |
|
| 85 | - } |
|
| 86 | - |
|
| 87 | - $head[$h][0] = DOL_URL_ROOT."/margin/agentMargins.php"; |
|
| 88 | - $head[$h][1] = $langs->trans($title); |
|
| 89 | - $head[$h][2] = 'agentMargins'; |
|
| 61 | + global $langs, $conf, $user; |
|
| 62 | + $langs->load("margins"); |
|
| 63 | + |
|
| 64 | + $h = 0; |
|
| 65 | + $head = array(); |
|
| 66 | + |
|
| 67 | + if ($user->rights->produit->lire) { |
|
| 68 | + $head[$h][0] = DOL_URL_ROOT."/margin/productMargins.php"; |
|
| 69 | + $head[$h][1] = $langs->trans("ProductMargins"); |
|
| 70 | + $head[$h][2] = 'productMargins'; |
|
| 71 | + $h++; |
|
| 72 | + } |
|
| 73 | + |
|
| 74 | + if ($user->rights->societe->lire) { |
|
| 75 | + $head[$h][0] = DOL_URL_ROOT."/margin/customerMargins.php"; |
|
| 76 | + $head[$h][1] = $langs->trans("CustomerMargins"); |
|
| 77 | + $head[$h][2] = 'customerMargins'; |
|
| 78 | + $h++; |
|
| 79 | + } |
|
| 80 | + |
|
| 81 | + if ($user->rights->margins->read->all) { |
|
| 82 | + $title = 'UserMargins'; |
|
| 83 | + } else { |
|
| 84 | + $title = 'SalesRepresentativeMargins'; |
|
| 85 | + } |
|
| 86 | + |
|
| 87 | + $head[$h][0] = DOL_URL_ROOT."/margin/agentMargins.php"; |
|
| 88 | + $head[$h][1] = $langs->trans($title); |
|
| 89 | + $head[$h][2] = 'agentMargins'; |
|
| 90 | 90 | |
| 91 | 91 | |
| 92 | - if ($user->rights->margins->creer) { |
|
| 93 | - $h++; |
|
| 94 | - $head[$h][0] = DOL_URL_ROOT."/margin/checkMargins.php"; |
|
| 95 | - $head[$h][1] = $langs->trans('CheckMargins'); |
|
| 96 | - $head[$h][2] = 'checkMargins'; |
|
| 97 | - } |
|
| 98 | - |
|
| 99 | - return $head; |
|
| 92 | + if ($user->rights->margins->creer) { |
|
| 93 | + $h++; |
|
| 94 | + $head[$h][0] = DOL_URL_ROOT."/margin/checkMargins.php"; |
|
| 95 | + $head[$h][1] = $langs->trans('CheckMargins'); |
|
| 96 | + $head[$h][2] = 'checkMargins'; |
|
| 97 | + } |
|
| 98 | + |
|
| 99 | + return $head; |
|
| 100 | 100 | } |
| 101 | 101 | |
| 102 | 102 | /** |
@@ -113,46 +113,46 @@ discard block |
||
| 113 | 113 | */ |
| 114 | 114 | function getMarginInfos($pvht, $remise_percent, $tva_tx, $localtax1_tx, $localtax2_tx, $fk_pa, $paht) |
| 115 | 115 | { |
| 116 | - global $db, $conf; |
|
| 117 | - |
|
| 118 | - $marge_tx_ret=''; |
|
| 119 | - $marque_tx_ret=''; |
|
| 120 | - |
|
| 121 | - if ($fk_pa > 0 && empty($paht)) { |
|
| 122 | - require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.product.class.php'; |
|
| 123 | - $product = new ProductFournisseur($db); |
|
| 124 | - if ($product->fetch_product_fournisseur_price($fk_pa)) |
|
| 125 | - { |
|
| 126 | - $paht_ret = $product->fourn_unitprice * (1 - $product->fourn_remise_percent / 100); |
|
| 127 | - } |
|
| 128 | - else |
|
| 129 | - { |
|
| 130 | - $paht_ret = $paht; |
|
| 131 | - } |
|
| 132 | - } |
|
| 133 | - else |
|
| 134 | - { |
|
| 135 | - $paht_ret = $paht; |
|
| 136 | - } |
|
| 137 | - |
|
| 138 | - // Calculate selling unit price including line discount |
|
| 139 | - // We don't use calculate_price, because this function is dedicated to calculation of total with accuracy of total. We need an accuracy of a unit price. |
|
| 140 | - // Also we must not apply rounding on non decimal rule defined by option MAIN_ROUNDING_RULE_TOT |
|
| 141 | - $pu_ht_remise = $pvht * (1 - ($remise_percent / 100)); |
|
| 142 | - $pu_ht_remise = price2num($pu_ht_remise, 'MU'); |
|
| 143 | - |
|
| 144 | - // calcul marge |
|
| 145 | - if ($pu_ht_remise < 0) |
|
| 146 | - $marge = -1 * (abs($pu_ht_remise) - $paht_ret); |
|
| 147 | - else |
|
| 148 | - $marge = $pu_ht_remise - $paht_ret; |
|
| 149 | - |
|
| 150 | - // calcul taux marge |
|
| 151 | - if ($paht_ret != 0) |
|
| 152 | - $marge_tx_ret = (100 * $marge) / $paht_ret; |
|
| 153 | - // calcul taux marque |
|
| 154 | - if ($pu_ht_remise != 0) |
|
| 155 | - $marque_tx_ret = (100 * $marge) / $pu_ht_remise; |
|
| 156 | - |
|
| 157 | - return array($paht_ret, $marge_tx_ret, $marque_tx_ret); |
|
| 116 | + global $db, $conf; |
|
| 117 | + |
|
| 118 | + $marge_tx_ret=''; |
|
| 119 | + $marque_tx_ret=''; |
|
| 120 | + |
|
| 121 | + if ($fk_pa > 0 && empty($paht)) { |
|
| 122 | + require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.product.class.php'; |
|
| 123 | + $product = new ProductFournisseur($db); |
|
| 124 | + if ($product->fetch_product_fournisseur_price($fk_pa)) |
|
| 125 | + { |
|
| 126 | + $paht_ret = $product->fourn_unitprice * (1 - $product->fourn_remise_percent / 100); |
|
| 127 | + } |
|
| 128 | + else |
|
| 129 | + { |
|
| 130 | + $paht_ret = $paht; |
|
| 131 | + } |
|
| 132 | + } |
|
| 133 | + else |
|
| 134 | + { |
|
| 135 | + $paht_ret = $paht; |
|
| 136 | + } |
|
| 137 | + |
|
| 138 | + // Calculate selling unit price including line discount |
|
| 139 | + // We don't use calculate_price, because this function is dedicated to calculation of total with accuracy of total. We need an accuracy of a unit price. |
|
| 140 | + // Also we must not apply rounding on non decimal rule defined by option MAIN_ROUNDING_RULE_TOT |
|
| 141 | + $pu_ht_remise = $pvht * (1 - ($remise_percent / 100)); |
|
| 142 | + $pu_ht_remise = price2num($pu_ht_remise, 'MU'); |
|
| 143 | + |
|
| 144 | + // calcul marge |
|
| 145 | + if ($pu_ht_remise < 0) |
|
| 146 | + $marge = -1 * (abs($pu_ht_remise) - $paht_ret); |
|
| 147 | + else |
|
| 148 | + $marge = $pu_ht_remise - $paht_ret; |
|
| 149 | + |
|
| 150 | + // calcul taux marge |
|
| 151 | + if ($paht_ret != 0) |
|
| 152 | + $marge_tx_ret = (100 * $marge) / $paht_ret; |
|
| 153 | + // calcul taux marque |
|
| 154 | + if ($pu_ht_remise != 0) |
|
| 155 | + $marque_tx_ret = (100 * $marge) / $pu_ht_remise; |
|
| 156 | + |
|
| 157 | + return array($paht_ret, $marge_tx_ret, $marque_tx_ret); |
|
| 158 | 158 | } |
@@ -44,9 +44,9 @@ discard block |
||
| 44 | 44 | // Entries must be declared in modules descriptor with line |
| 45 | 45 | // $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__'); to add new tab |
| 46 | 46 | // $this->tabs = array('entity:-tabname); to remove a tab |
| 47 | - complete_head_from_modules($conf,$langs,'',$head,$h,'margesadmin'); |
|
| 47 | + complete_head_from_modules($conf, $langs, '', $head, $h, 'margesadmin'); |
|
| 48 | 48 | |
| 49 | - complete_head_from_modules($conf,$langs,'',$head,$h,'margesadmin','remove'); |
|
| 49 | + complete_head_from_modules($conf, $langs, '', $head, $h, 'margesadmin', 'remove'); |
|
| 50 | 50 | |
| 51 | 51 | return $head; |
| 52 | 52 | } |
@@ -115,8 +115,8 @@ discard block |
||
| 115 | 115 | { |
| 116 | 116 | global $db, $conf; |
| 117 | 117 | |
| 118 | - $marge_tx_ret=''; |
|
| 119 | - $marque_tx_ret=''; |
|
| 118 | + $marge_tx_ret = ''; |
|
| 119 | + $marque_tx_ret = ''; |
|
| 120 | 120 | |
| 121 | 121 | if ($fk_pa > 0 && empty($paht)) { |
| 122 | 122 | require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.product.class.php'; |
@@ -124,13 +124,11 @@ discard block |
||
| 124 | 124 | if ($product->fetch_product_fournisseur_price($fk_pa)) |
| 125 | 125 | { |
| 126 | 126 | $paht_ret = $product->fourn_unitprice * (1 - $product->fourn_remise_percent / 100); |
| 127 | - } |
|
| 128 | - else |
|
| 127 | + } else |
|
| 129 | 128 | { |
| 130 | 129 | $paht_ret = $paht; |
| 131 | 130 | } |
| 132 | - } |
|
| 133 | - else |
|
| 131 | + } else |
|
| 134 | 132 | { |
| 135 | 133 | $paht_ret = $paht; |
| 136 | 134 | } |
@@ -142,17 +140,20 @@ discard block |
||
| 142 | 140 | $pu_ht_remise = price2num($pu_ht_remise, 'MU'); |
| 143 | 141 | |
| 144 | 142 | // calcul marge |
| 145 | - if ($pu_ht_remise < 0) |
|
| 146 | - $marge = -1 * (abs($pu_ht_remise) - $paht_ret); |
|
| 147 | - else |
|
| 148 | - $marge = $pu_ht_remise - $paht_ret; |
|
| 143 | + if ($pu_ht_remise < 0) { |
|
| 144 | + $marge = -1 * (abs($pu_ht_remise) - $paht_ret); |
|
| 145 | + } else { |
|
| 146 | + $marge = $pu_ht_remise - $paht_ret; |
|
| 147 | + } |
|
| 149 | 148 | |
| 150 | 149 | // calcul taux marge |
| 151 | - if ($paht_ret != 0) |
|
| 152 | - $marge_tx_ret = (100 * $marge) / $paht_ret; |
|
| 150 | + if ($paht_ret != 0) { |
|
| 151 | + $marge_tx_ret = (100 * $marge) / $paht_ret; |
|
| 152 | + } |
|
| 153 | 153 | // calcul taux marque |
| 154 | - if ($pu_ht_remise != 0) |
|
| 155 | - $marque_tx_ret = (100 * $marge) / $pu_ht_remise; |
|
| 154 | + if ($pu_ht_remise != 0) { |
|
| 155 | + $marque_tx_ret = (100 * $marge) / $pu_ht_remise; |
|
| 156 | + } |
|
| 156 | 157 | |
| 157 | 158 | return array($paht_ret, $marge_tx_ret, $marque_tx_ret); |
| 158 | 159 | } |
@@ -46,24 +46,24 @@ discard block |
||
| 46 | 46 | if (! $sortorder) $sortorder="ASC"; |
| 47 | 47 | if (! $sortfield) |
| 48 | 48 | { |
| 49 | - if ($agentid > 0) |
|
| 50 | - $sortfield="s.nom"; |
|
| 51 | - else |
|
| 52 | - $sortfield="u.lastname"; |
|
| 49 | + if ($agentid > 0) |
|
| 50 | + $sortfield="s.nom"; |
|
| 51 | + else |
|
| 52 | + $sortfield="u.lastname"; |
|
| 53 | 53 | } |
| 54 | 54 | |
| 55 | 55 | $startdate=$enddate=''; |
| 56 | 56 | |
| 57 | 57 | if (!empty($_POST['startdatemonth'])) |
| 58 | - $startdate = dol_mktime(0, 0, 0, $_POST['startdatemonth'], $_POST['startdateday'], $_POST['startdateyear']); |
|
| 58 | + $startdate = dol_mktime(0, 0, 0, $_POST['startdatemonth'], $_POST['startdateday'], $_POST['startdateyear']); |
|
| 59 | 59 | if (!empty($_POST['enddatemonth'])) |
| 60 | - $enddate = dol_mktime(23, 59, 59, $_POST['enddatemonth'], $_POST['enddateday'], $_POST['enddateyear']); |
|
| 60 | + $enddate = dol_mktime(23, 59, 59, $_POST['enddatemonth'], $_POST['enddateday'], $_POST['enddateyear']); |
|
| 61 | 61 | |
| 62 | 62 | // Security check |
| 63 | 63 | if ($user->rights->margins->read->all) { |
| 64 | - $agentid = GETPOST('agentid', 'int'); |
|
| 64 | + $agentid = GETPOST('agentid', 'int'); |
|
| 65 | 65 | } else { |
| 66 | - $agentid = $user->id; |
|
| 66 | + $agentid = $user->id; |
|
| 67 | 67 | } |
| 68 | 68 | $result=restrictedArea($user,'margins'); |
| 69 | 69 | |
@@ -143,22 +143,22 @@ discard block |
||
| 143 | 143 | $sql.= " AND sc.fk_soc = f.fk_soc"; |
| 144 | 144 | $sql.= " AND (d.product_type = 0 OR d.product_type = 1)"; |
| 145 | 145 | if (! empty($conf->global->AGENT_CONTACT_TYPE)) |
| 146 | - $sql.= " AND ((e.fk_socpeople IS NULL AND sc.fk_user = u.rowid) OR (e.fk_socpeople IS NOT NULL AND e.fk_socpeople = u.rowid))"; |
|
| 146 | + $sql.= " AND ((e.fk_socpeople IS NULL AND sc.fk_user = u.rowid) OR (e.fk_socpeople IS NOT NULL AND e.fk_socpeople = u.rowid))"; |
|
| 147 | 147 | else |
| 148 | - $sql .= " AND sc.fk_user = u.rowid"; |
|
| 148 | + $sql .= " AND sc.fk_user = u.rowid"; |
|
| 149 | 149 | $sql.= " AND f.fk_statut > 0"; |
| 150 | 150 | $sql.= ' AND s.entity IN ('.getEntity('societe').')'; |
| 151 | 151 | $sql.= " AND d.fk_facture = f.rowid"; |
| 152 | 152 | if ($agentid > 0) { |
| 153 | - if (! empty($conf->global->AGENT_CONTACT_TYPE)) |
|
| 154 | - $sql.= " AND ((e.fk_socpeople IS NULL AND sc.fk_user = ".$agentid.") OR (e.fk_socpeople IS NOT NULL AND e.fk_socpeople = ".$agentid."))"; |
|
| 155 | - else |
|
| 156 | - $sql .= " AND sc.fk_user = ".$agentid; |
|
| 153 | + if (! empty($conf->global->AGENT_CONTACT_TYPE)) |
|
| 154 | + $sql.= " AND ((e.fk_socpeople IS NULL AND sc.fk_user = ".$agentid.") OR (e.fk_socpeople IS NOT NULL AND e.fk_socpeople = ".$agentid."))"; |
|
| 155 | + else |
|
| 156 | + $sql .= " AND sc.fk_user = ".$agentid; |
|
| 157 | 157 | } |
| 158 | 158 | if (!empty($startdate)) |
| 159 | - $sql.= " AND f.datef >= '".$db->idate($startdate)."'"; |
|
| 159 | + $sql.= " AND f.datef >= '".$db->idate($startdate)."'"; |
|
| 160 | 160 | if (!empty($enddate)) |
| 161 | - $sql.= " AND f.datef <= '".$db->idate($enddate)."'"; |
|
| 161 | + $sql.= " AND f.datef <= '".$db->idate($enddate)."'"; |
|
| 162 | 162 | $sql .= " AND d.buy_price_ht IS NOT NULL"; |
| 163 | 163 | if (isset($conf->global->ForceBuyingPriceIfNull) && $conf->global->ForceBuyingPriceIfNull == 1) $sql .= " AND d.buy_price_ht <> 0"; |
| 164 | 164 | if ($agentid > 0) $sql.= " GROUP BY s.rowid, s.nom, s.code_client, s.client, u.rowid, u.login, u.lastname, u.firstname"; |
@@ -176,87 +176,87 @@ discard block |
||
| 176 | 176 | $result = $db->query($sql); |
| 177 | 177 | if ($result) |
| 178 | 178 | { |
| 179 | - $num = $db->num_rows($result); |
|
| 180 | - |
|
| 181 | - print '<br>'; |
|
| 182 | - print_barre_liste($langs->trans("MarginDetails"), $page, $_SERVER["PHP_SELF"], "", $sortfield, $sortorder, '', $num, $num, '', 0, '', '', 0, 1); |
|
| 183 | - |
|
| 184 | - if ($conf->global->MARGIN_TYPE == "1") |
|
| 185 | - $labelcostprice='BuyingPrice'; |
|
| 186 | - else // value is 'costprice' or 'pmp' |
|
| 187 | - $labelcostprice='CostPrice'; |
|
| 188 | - |
|
| 189 | - $i = 0; |
|
| 190 | - print "<table class=\"noborder\" width=\"100%\">"; |
|
| 191 | - |
|
| 192 | - print '<tr class="liste_titre">'; |
|
| 193 | - if ($agentid > 0) |
|
| 194 | - print_liste_field_titre("Customer",$_SERVER["PHP_SELF"],"s.nom","","&agentid=".$agentid,'',$sortfield,$sortorder); |
|
| 195 | - else |
|
| 196 | - print_liste_field_titre("SalesRepresentative",$_SERVER["PHP_SELF"],"u.lastname","","&agentid=".$agentid,'',$sortfield,$sortorder); |
|
| 197 | - |
|
| 198 | - print_liste_field_titre("SellingPrice",$_SERVER["PHP_SELF"],"selling_price","","&agentid=".$agentid,'align="right"',$sortfield,$sortorder); |
|
| 199 | - print_liste_field_titre($labelcostprice,$_SERVER["PHP_SELF"],"buying_price","","&agentid=".$agentid,'align="right"',$sortfield,$sortorder); |
|
| 200 | - print_liste_field_titre("Margin",$_SERVER["PHP_SELF"],"marge","","&agentid=".$agentid,'align="right"',$sortfield,$sortorder); |
|
| 201 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 202 | - print_liste_field_titre("MarginRate",$_SERVER["PHP_SELF"],"","","&agentid=".$agentid,'align="right"',$sortfield,$sortorder); |
|
| 203 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 204 | - print_liste_field_titre("MarkRate",$_SERVER["PHP_SELF"],"","","&agentid=".$agentid,'align="right"',$sortfield,$sortorder); |
|
| 205 | - print "</tr>\n"; |
|
| 206 | - |
|
| 207 | - $rounding = min($conf->global->MAIN_MAX_DECIMALS_UNIT,$conf->global->MAIN_MAX_DECIMALS_TOT); |
|
| 208 | - |
|
| 209 | - if ($num > 0) |
|
| 210 | - { |
|
| 211 | - |
|
| 212 | - while ($i < $num /*&& $i < $conf->liste_limit*/) |
|
| 213 | - { |
|
| 214 | - $objp = $db->fetch_object($result); |
|
| 215 | - |
|
| 216 | - $pa = $objp->buying_price; |
|
| 217 | - $pv = $objp->selling_price; |
|
| 218 | - $marge = $objp->marge; |
|
| 219 | - |
|
| 220 | - if ($marge < 0) |
|
| 221 | - { |
|
| 222 | - $marginRate = ($pa != 0)?-1*(100 * $marge / $pa):'' ; |
|
| 223 | - $markRate = ($pv != 0)?-1*(100 * $marge / $pv):'' ; |
|
| 224 | - } |
|
| 225 | - else |
|
| 226 | - { |
|
| 227 | - $marginRate = ($pa != 0)?(100 * $marge / $pa):'' ; |
|
| 228 | - $markRate = ($pv != 0)?(100 * $marge / $pv):'' ; |
|
| 229 | - } |
|
| 230 | - |
|
| 231 | - print '<tr class="oddeven">'; |
|
| 232 | - if ($agentid > 0) { |
|
| 233 | - $companystatic->id=$objp->socid; |
|
| 234 | - $companystatic->name=$objp->name; |
|
| 235 | - $companystatic->client=$objp->client; |
|
| 236 | - print "<td>".$companystatic->getNomUrl(1,'customer')."</td>\n"; |
|
| 237 | - } |
|
| 238 | - else { |
|
| 239 | - $userstatic->fetch($objp->agent); |
|
| 240 | - print "<td>".$userstatic->getFullName($langs,0,0,0)."</td>\n"; |
|
| 241 | - } |
|
| 242 | - |
|
| 243 | - print "<td align=\"right\">".price($pv, null, null, null, null, $rounding)."</td>\n"; |
|
| 244 | - print "<td align=\"right\">".price($pa, null, null, null, null, $rounding)."</td>\n"; |
|
| 245 | - print "<td align=\"right\">".price($marge, null, null, null, null, $rounding)."</td>\n"; |
|
| 246 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 247 | - print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 248 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 249 | - print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 250 | - print "</tr>\n"; |
|
| 251 | - |
|
| 252 | - $i++; |
|
| 253 | - } |
|
| 254 | - } |
|
| 255 | - print "</table>"; |
|
| 179 | + $num = $db->num_rows($result); |
|
| 180 | + |
|
| 181 | + print '<br>'; |
|
| 182 | + print_barre_liste($langs->trans("MarginDetails"), $page, $_SERVER["PHP_SELF"], "", $sortfield, $sortorder, '', $num, $num, '', 0, '', '', 0, 1); |
|
| 183 | + |
|
| 184 | + if ($conf->global->MARGIN_TYPE == "1") |
|
| 185 | + $labelcostprice='BuyingPrice'; |
|
| 186 | + else // value is 'costprice' or 'pmp' |
|
| 187 | + $labelcostprice='CostPrice'; |
|
| 188 | + |
|
| 189 | + $i = 0; |
|
| 190 | + print "<table class=\"noborder\" width=\"100%\">"; |
|
| 191 | + |
|
| 192 | + print '<tr class="liste_titre">'; |
|
| 193 | + if ($agentid > 0) |
|
| 194 | + print_liste_field_titre("Customer",$_SERVER["PHP_SELF"],"s.nom","","&agentid=".$agentid,'',$sortfield,$sortorder); |
|
| 195 | + else |
|
| 196 | + print_liste_field_titre("SalesRepresentative",$_SERVER["PHP_SELF"],"u.lastname","","&agentid=".$agentid,'',$sortfield,$sortorder); |
|
| 197 | + |
|
| 198 | + print_liste_field_titre("SellingPrice",$_SERVER["PHP_SELF"],"selling_price","","&agentid=".$agentid,'align="right"',$sortfield,$sortorder); |
|
| 199 | + print_liste_field_titre($labelcostprice,$_SERVER["PHP_SELF"],"buying_price","","&agentid=".$agentid,'align="right"',$sortfield,$sortorder); |
|
| 200 | + print_liste_field_titre("Margin",$_SERVER["PHP_SELF"],"marge","","&agentid=".$agentid,'align="right"',$sortfield,$sortorder); |
|
| 201 | + if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 202 | + print_liste_field_titre("MarginRate",$_SERVER["PHP_SELF"],"","","&agentid=".$agentid,'align="right"',$sortfield,$sortorder); |
|
| 203 | + if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 204 | + print_liste_field_titre("MarkRate",$_SERVER["PHP_SELF"],"","","&agentid=".$agentid,'align="right"',$sortfield,$sortorder); |
|
| 205 | + print "</tr>\n"; |
|
| 206 | + |
|
| 207 | + $rounding = min($conf->global->MAIN_MAX_DECIMALS_UNIT,$conf->global->MAIN_MAX_DECIMALS_TOT); |
|
| 208 | + |
|
| 209 | + if ($num > 0) |
|
| 210 | + { |
|
| 211 | + |
|
| 212 | + while ($i < $num /*&& $i < $conf->liste_limit*/) |
|
| 213 | + { |
|
| 214 | + $objp = $db->fetch_object($result); |
|
| 215 | + |
|
| 216 | + $pa = $objp->buying_price; |
|
| 217 | + $pv = $objp->selling_price; |
|
| 218 | + $marge = $objp->marge; |
|
| 219 | + |
|
| 220 | + if ($marge < 0) |
|
| 221 | + { |
|
| 222 | + $marginRate = ($pa != 0)?-1*(100 * $marge / $pa):'' ; |
|
| 223 | + $markRate = ($pv != 0)?-1*(100 * $marge / $pv):'' ; |
|
| 224 | + } |
|
| 225 | + else |
|
| 226 | + { |
|
| 227 | + $marginRate = ($pa != 0)?(100 * $marge / $pa):'' ; |
|
| 228 | + $markRate = ($pv != 0)?(100 * $marge / $pv):'' ; |
|
| 229 | + } |
|
| 230 | + |
|
| 231 | + print '<tr class="oddeven">'; |
|
| 232 | + if ($agentid > 0) { |
|
| 233 | + $companystatic->id=$objp->socid; |
|
| 234 | + $companystatic->name=$objp->name; |
|
| 235 | + $companystatic->client=$objp->client; |
|
| 236 | + print "<td>".$companystatic->getNomUrl(1,'customer')."</td>\n"; |
|
| 237 | + } |
|
| 238 | + else { |
|
| 239 | + $userstatic->fetch($objp->agent); |
|
| 240 | + print "<td>".$userstatic->getFullName($langs,0,0,0)."</td>\n"; |
|
| 241 | + } |
|
| 242 | + |
|
| 243 | + print "<td align=\"right\">".price($pv, null, null, null, null, $rounding)."</td>\n"; |
|
| 244 | + print "<td align=\"right\">".price($pa, null, null, null, null, $rounding)."</td>\n"; |
|
| 245 | + print "<td align=\"right\">".price($marge, null, null, null, null, $rounding)."</td>\n"; |
|
| 246 | + if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 247 | + print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 248 | + if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 249 | + print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 250 | + print "</tr>\n"; |
|
| 251 | + |
|
| 252 | + $i++; |
|
| 253 | + } |
|
| 254 | + } |
|
| 255 | + print "</table>"; |
|
| 256 | 256 | } |
| 257 | 257 | else |
| 258 | 258 | { |
| 259 | - dol_print_error($db); |
|
| 259 | + dol_print_error($db); |
|
| 260 | 260 | } |
| 261 | 261 | $db->free($result); |
| 262 | 262 | |
@@ -43,21 +43,26 @@ discard block |
||
| 43 | 43 | $offset = $limit * $page; |
| 44 | 44 | $pageprev = $page - 1; |
| 45 | 45 | $pagenext = $page + 1; |
| 46 | -if (! $sortorder) $sortorder="ASC"; |
|
| 46 | +if (! $sortorder) { |
|
| 47 | + $sortorder="ASC"; |
|
| 48 | +} |
|
| 47 | 49 | if (! $sortfield) |
| 48 | 50 | { |
| 49 | - if ($agentid > 0) |
|
| 50 | - $sortfield="s.nom"; |
|
| 51 | - else |
|
| 52 | - $sortfield="u.lastname"; |
|
| 53 | -} |
|
| 51 | + if ($agentid > 0) { |
|
| 52 | + $sortfield="s.nom"; |
|
| 53 | + } else { |
|
| 54 | + $sortfield="u.lastname"; |
|
| 55 | + } |
|
| 56 | + } |
|
| 54 | 57 | |
| 55 | 58 | $startdate=$enddate=''; |
| 56 | 59 | |
| 57 | -if (!empty($_POST['startdatemonth'])) |
|
| 60 | +if (!empty($_POST['startdatemonth'])) { |
|
| 58 | 61 | $startdate = dol_mktime(0, 0, 0, $_POST['startdatemonth'], $_POST['startdateday'], $_POST['startdateyear']); |
| 59 | -if (!empty($_POST['enddatemonth'])) |
|
| 62 | +} |
|
| 63 | +if (!empty($_POST['enddatemonth'])) { |
|
| 60 | 64 | $enddate = dol_mktime(23, 59, 59, $_POST['enddatemonth'], $_POST['enddateday'], $_POST['enddateyear']); |
| 65 | +} |
|
| 61 | 66 | |
| 62 | 67 | // Security check |
| 63 | 68 | if ($user->rights->margins->read->all) { |
@@ -126,7 +131,9 @@ discard block |
||
| 126 | 131 | print '</form>'; |
| 127 | 132 | |
| 128 | 133 | $sql = "SELECT"; |
| 129 | -if ($agentid > 0) $sql.= " s.rowid as socid, s.nom as name, s.code_client, s.client,"; |
|
| 134 | +if ($agentid > 0) { |
|
| 135 | + $sql.= " s.rowid as socid, s.nom as name, s.code_client, s.client,"; |
|
| 136 | +} |
|
| 130 | 137 | $sql.= " u.rowid as agent, u.login, u.lastname, u.firstname,"; |
| 131 | 138 | $sql.= " sum(d.total_ht) as selling_price,"; |
| 132 | 139 | // Note: qty and buy_price_ht is always positive (if not your database may be corrupted, you can update this) |
@@ -142,27 +149,36 @@ discard block |
||
| 142 | 149 | $sql.= ' AND f.entity IN ('.getEntity('invoice').')'; |
| 143 | 150 | $sql.= " AND sc.fk_soc = f.fk_soc"; |
| 144 | 151 | $sql.= " AND (d.product_type = 0 OR d.product_type = 1)"; |
| 145 | -if (! empty($conf->global->AGENT_CONTACT_TYPE)) |
|
| 152 | +if (! empty($conf->global->AGENT_CONTACT_TYPE)) { |
|
| 146 | 153 | $sql.= " AND ((e.fk_socpeople IS NULL AND sc.fk_user = u.rowid) OR (e.fk_socpeople IS NOT NULL AND e.fk_socpeople = u.rowid))"; |
| 147 | -else |
|
| 154 | +} else { |
|
| 148 | 155 | $sql .= " AND sc.fk_user = u.rowid"; |
| 156 | +} |
|
| 149 | 157 | $sql.= " AND f.fk_statut > 0"; |
| 150 | 158 | $sql.= ' AND s.entity IN ('.getEntity('societe').')'; |
| 151 | 159 | $sql.= " AND d.fk_facture = f.rowid"; |
| 152 | 160 | if ($agentid > 0) { |
| 153 | - if (! empty($conf->global->AGENT_CONTACT_TYPE)) |
|
| 154 | - $sql.= " AND ((e.fk_socpeople IS NULL AND sc.fk_user = ".$agentid.") OR (e.fk_socpeople IS NOT NULL AND e.fk_socpeople = ".$agentid."))"; |
|
| 155 | - else |
|
| 156 | - $sql .= " AND sc.fk_user = ".$agentid; |
|
| 157 | -} |
|
| 158 | -if (!empty($startdate)) |
|
| 161 | + if (! empty($conf->global->AGENT_CONTACT_TYPE)) { |
|
| 162 | + $sql.= " AND ((e.fk_socpeople IS NULL AND sc.fk_user = ".$agentid.") OR (e.fk_socpeople IS NOT NULL AND e.fk_socpeople = ".$agentid."))"; |
|
| 163 | + } else { |
|
| 164 | + $sql .= " AND sc.fk_user = ".$agentid; |
|
| 165 | + } |
|
| 166 | + } |
|
| 167 | +if (!empty($startdate)) { |
|
| 159 | 168 | $sql.= " AND f.datef >= '".$db->idate($startdate)."'"; |
| 160 | -if (!empty($enddate)) |
|
| 169 | +} |
|
| 170 | +if (!empty($enddate)) { |
|
| 161 | 171 | $sql.= " AND f.datef <= '".$db->idate($enddate)."'"; |
| 172 | +} |
|
| 162 | 173 | $sql .= " AND d.buy_price_ht IS NOT NULL"; |
| 163 | -if (isset($conf->global->ForceBuyingPriceIfNull) && $conf->global->ForceBuyingPriceIfNull == 1) $sql .= " AND d.buy_price_ht <> 0"; |
|
| 164 | -if ($agentid > 0) $sql.= " GROUP BY s.rowid, s.nom, s.code_client, s.client, u.rowid, u.login, u.lastname, u.firstname"; |
|
| 165 | -else $sql.= " GROUP BY u.rowid, u.login, u.lastname, u.firstname"; |
|
| 174 | +if (isset($conf->global->ForceBuyingPriceIfNull) && $conf->global->ForceBuyingPriceIfNull == 1) { |
|
| 175 | + $sql .= " AND d.buy_price_ht <> 0"; |
|
| 176 | +} |
|
| 177 | +if ($agentid > 0) { |
|
| 178 | + $sql.= " GROUP BY s.rowid, s.nom, s.code_client, s.client, u.rowid, u.login, u.lastname, u.firstname"; |
|
| 179 | +} else { |
|
| 180 | + $sql.= " GROUP BY u.rowid, u.login, u.lastname, u.firstname"; |
|
| 181 | +} |
|
| 166 | 182 | $sql.=$db->order($sortfield,$sortorder); |
| 167 | 183 | // TODO: calculate total to display then restore pagination |
| 168 | 184 | //$sql.= $db->plimit($conf->liste_limit +1, $offset); |
@@ -181,27 +197,32 @@ discard block |
||
| 181 | 197 | print '<br>'; |
| 182 | 198 | print_barre_liste($langs->trans("MarginDetails"), $page, $_SERVER["PHP_SELF"], "", $sortfield, $sortorder, '', $num, $num, '', 0, '', '', 0, 1); |
| 183 | 199 | |
| 184 | - if ($conf->global->MARGIN_TYPE == "1") |
|
| 185 | - $labelcostprice='BuyingPrice'; |
|
| 186 | - else // value is 'costprice' or 'pmp' |
|
| 200 | + if ($conf->global->MARGIN_TYPE == "1") { |
|
| 201 | + $labelcostprice='BuyingPrice'; |
|
| 202 | + } else { |
|
| 203 | + // value is 'costprice' or 'pmp' |
|
| 187 | 204 | $labelcostprice='CostPrice'; |
| 205 | + } |
|
| 188 | 206 | |
| 189 | 207 | $i = 0; |
| 190 | 208 | print "<table class=\"noborder\" width=\"100%\">"; |
| 191 | 209 | |
| 192 | 210 | print '<tr class="liste_titre">'; |
| 193 | - if ($agentid > 0) |
|
| 194 | - print_liste_field_titre("Customer",$_SERVER["PHP_SELF"],"s.nom","","&agentid=".$agentid,'',$sortfield,$sortorder); |
|
| 195 | - else |
|
| 196 | - print_liste_field_titre("SalesRepresentative",$_SERVER["PHP_SELF"],"u.lastname","","&agentid=".$agentid,'',$sortfield,$sortorder); |
|
| 211 | + if ($agentid > 0) { |
|
| 212 | + print_liste_field_titre("Customer",$_SERVER["PHP_SELF"],"s.nom","","&agentid=".$agentid,'',$sortfield,$sortorder); |
|
| 213 | + } else { |
|
| 214 | + print_liste_field_titre("SalesRepresentative",$_SERVER["PHP_SELF"],"u.lastname","","&agentid=".$agentid,'',$sortfield,$sortorder); |
|
| 215 | + } |
|
| 197 | 216 | |
| 198 | 217 | print_liste_field_titre("SellingPrice",$_SERVER["PHP_SELF"],"selling_price","","&agentid=".$agentid,'align="right"',$sortfield,$sortorder); |
| 199 | 218 | print_liste_field_titre($labelcostprice,$_SERVER["PHP_SELF"],"buying_price","","&agentid=".$agentid,'align="right"',$sortfield,$sortorder); |
| 200 | 219 | print_liste_field_titre("Margin",$_SERVER["PHP_SELF"],"marge","","&agentid=".$agentid,'align="right"',$sortfield,$sortorder); |
| 201 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 202 | - print_liste_field_titre("MarginRate",$_SERVER["PHP_SELF"],"","","&agentid=".$agentid,'align="right"',$sortfield,$sortorder); |
|
| 203 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 204 | - print_liste_field_titre("MarkRate",$_SERVER["PHP_SELF"],"","","&agentid=".$agentid,'align="right"',$sortfield,$sortorder); |
|
| 220 | + if (! empty($conf->global->DISPLAY_MARGIN_RATES)) { |
|
| 221 | + print_liste_field_titre("MarginRate",$_SERVER["PHP_SELF"],"","","&agentid=".$agentid,'align="right"',$sortfield,$sortorder); |
|
| 222 | + } |
|
| 223 | + if (! empty($conf->global->DISPLAY_MARK_RATES)) { |
|
| 224 | + print_liste_field_titre("MarkRate",$_SERVER["PHP_SELF"],"","","&agentid=".$agentid,'align="right"',$sortfield,$sortorder); |
|
| 225 | + } |
|
| 205 | 226 | print "</tr>\n"; |
| 206 | 227 | |
| 207 | 228 | $rounding = min($conf->global->MAIN_MAX_DECIMALS_UNIT,$conf->global->MAIN_MAX_DECIMALS_TOT); |
@@ -221,8 +242,7 @@ discard block |
||
| 221 | 242 | { |
| 222 | 243 | $marginRate = ($pa != 0)?-1*(100 * $marge / $pa):'' ; |
| 223 | 244 | $markRate = ($pv != 0)?-1*(100 * $marge / $pv):'' ; |
| 224 | - } |
|
| 225 | - else |
|
| 245 | + } else |
|
| 226 | 246 | { |
| 227 | 247 | $marginRate = ($pa != 0)?(100 * $marge / $pa):'' ; |
| 228 | 248 | $markRate = ($pv != 0)?(100 * $marge / $pv):'' ; |
@@ -234,8 +254,7 @@ discard block |
||
| 234 | 254 | $companystatic->name=$objp->name; |
| 235 | 255 | $companystatic->client=$objp->client; |
| 236 | 256 | print "<td>".$companystatic->getNomUrl(1,'customer')."</td>\n"; |
| 237 | - } |
|
| 238 | - else { |
|
| 257 | + } else { |
|
| 239 | 258 | $userstatic->fetch($objp->agent); |
| 240 | 259 | print "<td>".$userstatic->getFullName($langs,0,0,0)."</td>\n"; |
| 241 | 260 | } |
@@ -243,18 +262,19 @@ discard block |
||
| 243 | 262 | print "<td align=\"right\">".price($pv, null, null, null, null, $rounding)."</td>\n"; |
| 244 | 263 | print "<td align=\"right\">".price($pa, null, null, null, null, $rounding)."</td>\n"; |
| 245 | 264 | print "<td align=\"right\">".price($marge, null, null, null, null, $rounding)."</td>\n"; |
| 246 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 247 | - print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 248 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 249 | - print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 265 | + if (! empty($conf->global->DISPLAY_MARGIN_RATES)) { |
|
| 266 | + print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 267 | + } |
|
| 268 | + if (! empty($conf->global->DISPLAY_MARK_RATES)) { |
|
| 269 | + print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 270 | + } |
|
| 250 | 271 | print "</tr>\n"; |
| 251 | 272 | |
| 252 | 273 | $i++; |
| 253 | 274 | } |
| 254 | 275 | } |
| 255 | 276 | print "</table>"; |
| 256 | -} |
|
| 257 | -else |
|
| 277 | +} else |
|
| 258 | 278 | { |
| 259 | 279 | dol_print_error($db); |
| 260 | 280 | } |
@@ -26,7 +26,7 @@ discard block |
||
| 26 | 26 | |
| 27 | 27 | // Copyright (C) 2018 Alxarafe/Alixar <[email protected]> |
| 28 | 28 | defined('BASE_PATH') or die('Single entry point through the index.php of the main folder'); |
| 29 | -require DOL_BASE_PATH . '/main.inc.php'; |
|
| 29 | +require DOL_BASE_PATH.'/main.inc.php'; |
|
| 30 | 30 | |
| 31 | 31 | require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; |
| 32 | 32 | require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; |
@@ -39,29 +39,29 @@ discard block |
||
| 39 | 39 | $mesg = ''; |
| 40 | 40 | |
| 41 | 41 | // Load variable for pagination |
| 42 | -$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit; |
|
| 43 | -$sortfield = GETPOST('sortfield','alpha'); |
|
| 44 | -$sortorder = GETPOST('sortorder','alpha'); |
|
| 45 | -$page = GETPOST('page','int'); |
|
| 42 | +$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; |
|
| 43 | +$sortfield = GETPOST('sortfield', 'alpha'); |
|
| 44 | +$sortorder = GETPOST('sortorder', 'alpha'); |
|
| 45 | +$page = GETPOST('page', 'int'); |
|
| 46 | 46 | if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 |
| 47 | 47 | $offset = $limit * $page; |
| 48 | 48 | $pageprev = $page - 1; |
| 49 | 49 | $pagenext = $page + 1; |
| 50 | -if (! $sortorder) $sortorder="ASC"; |
|
| 51 | -if (! $sortfield) |
|
| 50 | +if (!$sortorder) $sortorder = "ASC"; |
|
| 51 | +if (!$sortfield) |
|
| 52 | 52 | { |
| 53 | 53 | if ($agentid > 0) |
| 54 | - $sortfield="s.nom"; |
|
| 54 | + $sortfield = "s.nom"; |
|
| 55 | 55 | else |
| 56 | - $sortfield="u.lastname"; |
|
| 56 | + $sortfield = "u.lastname"; |
|
| 57 | 57 | } |
| 58 | 58 | |
| 59 | -$startdate=$enddate=''; |
|
| 59 | +$startdate = $enddate = ''; |
|
| 60 | 60 | |
| 61 | 61 | if (!empty($_POST['startdatemonth'])) |
| 62 | - $startdate = dol_mktime(0, 0, 0, $_POST['startdatemonth'], $_POST['startdateday'], $_POST['startdateyear']); |
|
| 62 | + $startdate = dol_mktime(0, 0, 0, $_POST['startdatemonth'], $_POST['startdateday'], $_POST['startdateyear']); |
|
| 63 | 63 | if (!empty($_POST['enddatemonth'])) |
| 64 | - $enddate = dol_mktime(23, 59, 59, $_POST['enddatemonth'], $_POST['enddateday'], $_POST['enddateyear']); |
|
| 64 | + $enddate = dol_mktime(23, 59, 59, $_POST['enddatemonth'], $_POST['enddateday'], $_POST['enddateyear']); |
|
| 65 | 65 | |
| 66 | 66 | // Security check |
| 67 | 67 | if ($user->rights->margins->read->all) { |
@@ -69,7 +69,7 @@ discard block |
||
| 69 | 69 | } else { |
| 70 | 70 | $agentid = $user->id; |
| 71 | 71 | } |
| 72 | -$result=restrictedArea($user,'margins'); |
|
| 72 | +$result = restrictedArea($user, 'margins'); |
|
| 73 | 73 | |
| 74 | 74 | |
| 75 | 75 | /* |
@@ -86,19 +86,19 @@ discard block |
||
| 86 | 86 | |
| 87 | 87 | $userstatic = new User($db); |
| 88 | 88 | $companystatic = new Societe($db); |
| 89 | -$invoicestatic=new Facture($db); |
|
| 89 | +$invoicestatic = new Facture($db); |
|
| 90 | 90 | |
| 91 | 91 | $form = new Form($db); |
| 92 | 92 | |
| 93 | -llxHeader('',$langs->trans("Margins").' - '.$langs->trans("Agents")); |
|
| 93 | +llxHeader('', $langs->trans("Margins").' - '.$langs->trans("Agents")); |
|
| 94 | 94 | |
| 95 | -$text=$langs->trans("Margins"); |
|
| 95 | +$text = $langs->trans("Margins"); |
|
| 96 | 96 | //print load_fiche_titre($text); |
| 97 | 97 | |
| 98 | 98 | // Show tabs |
| 99 | -$head=marges_prepare_head($user); |
|
| 100 | -$titre=$langs->trans("Margins"); |
|
| 101 | -$picto='margin'; |
|
| 99 | +$head = marges_prepare_head($user); |
|
| 100 | +$titre = $langs->trans("Margins"); |
|
| 101 | +$picto = 'margin'; |
|
| 102 | 102 | |
| 103 | 103 | print '<form method="post" name="sel" action="'.$_SERVER['PHP_SELF'].'">'; |
| 104 | 104 | |
@@ -130,44 +130,44 @@ discard block |
||
| 130 | 130 | print '</form>'; |
| 131 | 131 | |
| 132 | 132 | $sql = "SELECT"; |
| 133 | -if ($agentid > 0) $sql.= " s.rowid as socid, s.nom as name, s.code_client, s.client,"; |
|
| 134 | -$sql.= " u.rowid as agent, u.login, u.lastname, u.firstname,"; |
|
| 135 | -$sql.= " sum(d.total_ht) as selling_price,"; |
|
| 133 | +if ($agentid > 0) $sql .= " s.rowid as socid, s.nom as name, s.code_client, s.client,"; |
|
| 134 | +$sql .= " u.rowid as agent, u.login, u.lastname, u.firstname,"; |
|
| 135 | +$sql .= " sum(d.total_ht) as selling_price,"; |
|
| 136 | 136 | // Note: qty and buy_price_ht is always positive (if not your database may be corrupted, you can update this) |
| 137 | -$sql.= " sum(".$db->ifsql('d.total_ht < 0','d.qty * d.buy_price_ht * -1','d.qty * d.buy_price_ht').") as buying_price,"; |
|
| 138 | -$sql.= " sum(".$db->ifsql('d.total_ht < 0','-1 * (abs(d.total_ht) - (d.buy_price_ht * d.qty))','d.total_ht - (d.buy_price_ht * d.qty)').") as marge" ; |
|
| 139 | -$sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; |
|
| 140 | -$sql.= ", ".MAIN_DB_PREFIX."facture as f"; |
|
| 141 | -$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_contact e ON e.element_id = f.rowid and e.statut = 4 and e.fk_c_type_contact = ".(empty($conf->global->AGENT_CONTACT_TYPE)?-1:$conf->global->AGENT_CONTACT_TYPE); |
|
| 142 | -$sql.= ", ".MAIN_DB_PREFIX."facturedet as d"; |
|
| 143 | -$sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; |
|
| 144 | -$sql.= ", ".MAIN_DB_PREFIX."user as u"; |
|
| 145 | -$sql.= " WHERE f.fk_soc = s.rowid"; |
|
| 146 | -$sql.= ' AND f.entity IN ('.getEntity('invoice').')'; |
|
| 147 | -$sql.= " AND sc.fk_soc = f.fk_soc"; |
|
| 148 | -$sql.= " AND (d.product_type = 0 OR d.product_type = 1)"; |
|
| 149 | -if (! empty($conf->global->AGENT_CONTACT_TYPE)) |
|
| 150 | - $sql.= " AND ((e.fk_socpeople IS NULL AND sc.fk_user = u.rowid) OR (e.fk_socpeople IS NOT NULL AND e.fk_socpeople = u.rowid))"; |
|
| 137 | +$sql .= " sum(".$db->ifsql('d.total_ht < 0', 'd.qty * d.buy_price_ht * -1', 'd.qty * d.buy_price_ht').") as buying_price,"; |
|
| 138 | +$sql .= " sum(".$db->ifsql('d.total_ht < 0', '-1 * (abs(d.total_ht) - (d.buy_price_ht * d.qty))', 'd.total_ht - (d.buy_price_ht * d.qty)').") as marge"; |
|
| 139 | +$sql .= " FROM ".MAIN_DB_PREFIX."societe as s"; |
|
| 140 | +$sql .= ", ".MAIN_DB_PREFIX."facture as f"; |
|
| 141 | +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."element_contact e ON e.element_id = f.rowid and e.statut = 4 and e.fk_c_type_contact = ".(empty($conf->global->AGENT_CONTACT_TYPE) ?-1 : $conf->global->AGENT_CONTACT_TYPE); |
|
| 142 | +$sql .= ", ".MAIN_DB_PREFIX."facturedet as d"; |
|
| 143 | +$sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; |
|
| 144 | +$sql .= ", ".MAIN_DB_PREFIX."user as u"; |
|
| 145 | +$sql .= " WHERE f.fk_soc = s.rowid"; |
|
| 146 | +$sql .= ' AND f.entity IN ('.getEntity('invoice').')'; |
|
| 147 | +$sql .= " AND sc.fk_soc = f.fk_soc"; |
|
| 148 | +$sql .= " AND (d.product_type = 0 OR d.product_type = 1)"; |
|
| 149 | +if (!empty($conf->global->AGENT_CONTACT_TYPE)) |
|
| 150 | + $sql .= " AND ((e.fk_socpeople IS NULL AND sc.fk_user = u.rowid) OR (e.fk_socpeople IS NOT NULL AND e.fk_socpeople = u.rowid))"; |
|
| 151 | 151 | else |
| 152 | 152 | $sql .= " AND sc.fk_user = u.rowid"; |
| 153 | -$sql.= " AND f.fk_statut > 0"; |
|
| 154 | -$sql.= ' AND s.entity IN ('.getEntity('societe').')'; |
|
| 155 | -$sql.= " AND d.fk_facture = f.rowid"; |
|
| 153 | +$sql .= " AND f.fk_statut > 0"; |
|
| 154 | +$sql .= ' AND s.entity IN ('.getEntity('societe').')'; |
|
| 155 | +$sql .= " AND d.fk_facture = f.rowid"; |
|
| 156 | 156 | if ($agentid > 0) { |
| 157 | - if (! empty($conf->global->AGENT_CONTACT_TYPE)) |
|
| 158 | - $sql.= " AND ((e.fk_socpeople IS NULL AND sc.fk_user = ".$agentid.") OR (e.fk_socpeople IS NOT NULL AND e.fk_socpeople = ".$agentid."))"; |
|
| 157 | + if (!empty($conf->global->AGENT_CONTACT_TYPE)) |
|
| 158 | + $sql .= " AND ((e.fk_socpeople IS NULL AND sc.fk_user = ".$agentid.") OR (e.fk_socpeople IS NOT NULL AND e.fk_socpeople = ".$agentid."))"; |
|
| 159 | 159 | else |
| 160 | 160 | $sql .= " AND sc.fk_user = ".$agentid; |
| 161 | 161 | } |
| 162 | 162 | if (!empty($startdate)) |
| 163 | - $sql.= " AND f.datef >= '".$db->idate($startdate)."'"; |
|
| 163 | + $sql .= " AND f.datef >= '".$db->idate($startdate)."'"; |
|
| 164 | 164 | if (!empty($enddate)) |
| 165 | - $sql.= " AND f.datef <= '".$db->idate($enddate)."'"; |
|
| 165 | + $sql .= " AND f.datef <= '".$db->idate($enddate)."'"; |
|
| 166 | 166 | $sql .= " AND d.buy_price_ht IS NOT NULL"; |
| 167 | 167 | if (isset($conf->global->ForceBuyingPriceIfNull) && $conf->global->ForceBuyingPriceIfNull == 1) $sql .= " AND d.buy_price_ht <> 0"; |
| 168 | -if ($agentid > 0) $sql.= " GROUP BY s.rowid, s.nom, s.code_client, s.client, u.rowid, u.login, u.lastname, u.firstname"; |
|
| 169 | -else $sql.= " GROUP BY u.rowid, u.login, u.lastname, u.firstname"; |
|
| 170 | -$sql.=$db->order($sortfield,$sortorder); |
|
| 168 | +if ($agentid > 0) $sql .= " GROUP BY s.rowid, s.nom, s.code_client, s.client, u.rowid, u.login, u.lastname, u.firstname"; |
|
| 169 | +else $sql .= " GROUP BY u.rowid, u.login, u.lastname, u.firstname"; |
|
| 170 | +$sql .= $db->order($sortfield, $sortorder); |
|
| 171 | 171 | // TODO: calculate total to display then restore pagination |
| 172 | 172 | //$sql.= $db->plimit($conf->liste_limit +1, $offset); |
| 173 | 173 | |
@@ -186,29 +186,29 @@ discard block |
||
| 186 | 186 | print_barre_liste($langs->trans("MarginDetails"), $page, $_SERVER["PHP_SELF"], "", $sortfield, $sortorder, '', $num, $num, '', 0, '', '', 0, 1); |
| 187 | 187 | |
| 188 | 188 | if ($conf->global->MARGIN_TYPE == "1") |
| 189 | - $labelcostprice='BuyingPrice'; |
|
| 189 | + $labelcostprice = 'BuyingPrice'; |
|
| 190 | 190 | else // value is 'costprice' or 'pmp' |
| 191 | - $labelcostprice='CostPrice'; |
|
| 191 | + $labelcostprice = 'CostPrice'; |
|
| 192 | 192 | |
| 193 | 193 | $i = 0; |
| 194 | 194 | print "<table class=\"noborder\" width=\"100%\">"; |
| 195 | 195 | |
| 196 | 196 | print '<tr class="liste_titre">'; |
| 197 | 197 | if ($agentid > 0) |
| 198 | - print_liste_field_titre("Customer",$_SERVER["PHP_SELF"],"s.nom","","&agentid=".$agentid,'',$sortfield,$sortorder); |
|
| 198 | + print_liste_field_titre("Customer", $_SERVER["PHP_SELF"], "s.nom", "", "&agentid=".$agentid, '', $sortfield, $sortorder); |
|
| 199 | 199 | else |
| 200 | - print_liste_field_titre("SalesRepresentative",$_SERVER["PHP_SELF"],"u.lastname","","&agentid=".$agentid,'',$sortfield,$sortorder); |
|
| 201 | - |
|
| 202 | - print_liste_field_titre("SellingPrice",$_SERVER["PHP_SELF"],"selling_price","","&agentid=".$agentid,'align="right"',$sortfield,$sortorder); |
|
| 203 | - print_liste_field_titre($labelcostprice,$_SERVER["PHP_SELF"],"buying_price","","&agentid=".$agentid,'align="right"',$sortfield,$sortorder); |
|
| 204 | - print_liste_field_titre("Margin",$_SERVER["PHP_SELF"],"marge","","&agentid=".$agentid,'align="right"',$sortfield,$sortorder); |
|
| 205 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 206 | - print_liste_field_titre("MarginRate",$_SERVER["PHP_SELF"],"","","&agentid=".$agentid,'align="right"',$sortfield,$sortorder); |
|
| 207 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 208 | - print_liste_field_titre("MarkRate",$_SERVER["PHP_SELF"],"","","&agentid=".$agentid,'align="right"',$sortfield,$sortorder); |
|
| 200 | + print_liste_field_titre("SalesRepresentative", $_SERVER["PHP_SELF"], "u.lastname", "", "&agentid=".$agentid, '', $sortfield, $sortorder); |
|
| 201 | + |
|
| 202 | + print_liste_field_titre("SellingPrice", $_SERVER["PHP_SELF"], "selling_price", "", "&agentid=".$agentid, 'align="right"', $sortfield, $sortorder); |
|
| 203 | + print_liste_field_titre($labelcostprice, $_SERVER["PHP_SELF"], "buying_price", "", "&agentid=".$agentid, 'align="right"', $sortfield, $sortorder); |
|
| 204 | + print_liste_field_titre("Margin", $_SERVER["PHP_SELF"], "marge", "", "&agentid=".$agentid, 'align="right"', $sortfield, $sortorder); |
|
| 205 | + if (!empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 206 | + print_liste_field_titre("MarginRate", $_SERVER["PHP_SELF"], "", "", "&agentid=".$agentid, 'align="right"', $sortfield, $sortorder); |
|
| 207 | + if (!empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 208 | + print_liste_field_titre("MarkRate", $_SERVER["PHP_SELF"], "", "", "&agentid=".$agentid, 'align="right"', $sortfield, $sortorder); |
|
| 209 | 209 | print "</tr>\n"; |
| 210 | 210 | |
| 211 | - $rounding = min($conf->global->MAIN_MAX_DECIMALS_UNIT,$conf->global->MAIN_MAX_DECIMALS_TOT); |
|
| 211 | + $rounding = min($conf->global->MAIN_MAX_DECIMALS_UNIT, $conf->global->MAIN_MAX_DECIMALS_TOT); |
|
| 212 | 212 | |
| 213 | 213 | if ($num > 0) |
| 214 | 214 | { |
@@ -223,34 +223,34 @@ discard block |
||
| 223 | 223 | |
| 224 | 224 | if ($marge < 0) |
| 225 | 225 | { |
| 226 | - $marginRate = ($pa != 0)?-1*(100 * $marge / $pa):'' ; |
|
| 227 | - $markRate = ($pv != 0)?-1*(100 * $marge / $pv):'' ; |
|
| 226 | + $marginRate = ($pa != 0) ?-1 * (100 * $marge / $pa) : ''; |
|
| 227 | + $markRate = ($pv != 0) ?-1 * (100 * $marge / $pv) : ''; |
|
| 228 | 228 | } |
| 229 | 229 | else |
| 230 | 230 | { |
| 231 | - $marginRate = ($pa != 0)?(100 * $marge / $pa):'' ; |
|
| 232 | - $markRate = ($pv != 0)?(100 * $marge / $pv):'' ; |
|
| 231 | + $marginRate = ($pa != 0) ? (100 * $marge / $pa) : ''; |
|
| 232 | + $markRate = ($pv != 0) ? (100 * $marge / $pv) : ''; |
|
| 233 | 233 | } |
| 234 | 234 | |
| 235 | 235 | print '<tr class="oddeven">'; |
| 236 | 236 | if ($agentid > 0) { |
| 237 | - $companystatic->id=$objp->socid; |
|
| 238 | - $companystatic->name=$objp->name; |
|
| 239 | - $companystatic->client=$objp->client; |
|
| 240 | - print "<td>".$companystatic->getNomUrl(1,'customer')."</td>\n"; |
|
| 237 | + $companystatic->id = $objp->socid; |
|
| 238 | + $companystatic->name = $objp->name; |
|
| 239 | + $companystatic->client = $objp->client; |
|
| 240 | + print "<td>".$companystatic->getNomUrl(1, 'customer')."</td>\n"; |
|
| 241 | 241 | } |
| 242 | 242 | else { |
| 243 | 243 | $userstatic->fetch($objp->agent); |
| 244 | - print "<td>".$userstatic->getFullName($langs,0,0,0)."</td>\n"; |
|
| 244 | + print "<td>".$userstatic->getFullName($langs, 0, 0, 0)."</td>\n"; |
|
| 245 | 245 | } |
| 246 | 246 | |
| 247 | 247 | print "<td align=\"right\">".price($pv, null, null, null, null, $rounding)."</td>\n"; |
| 248 | 248 | print "<td align=\"right\">".price($pa, null, null, null, null, $rounding)."</td>\n"; |
| 249 | 249 | print "<td align=\"right\">".price($marge, null, null, null, null, $rounding)."</td>\n"; |
| 250 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 251 | - print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 252 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 253 | - print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 250 | + if (!empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 251 | + print "<td align=\"right\">".(($marginRate === '') ? 'n/a' : price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 252 | + if (!empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 253 | + print "<td align=\"right\">".(($markRate === '') ? 'n/a' : price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 254 | 254 | print "</tr>\n"; |
| 255 | 255 | |
| 256 | 256 | $i++; |
@@ -67,32 +67,32 @@ discard block |
||
| 67 | 67 | $result = $object->fetch($id, $ref); |
| 68 | 68 | |
| 69 | 69 | $title = $langs->trans('ProductServiceCard'); |
| 70 | - $helpurl = ''; |
|
| 71 | - $shortlabel = dol_trunc($object->label,16); |
|
| 72 | - if (GETPOST("type") == '0' || ($object->type == Product::TYPE_PRODUCT)) |
|
| 73 | - { |
|
| 74 | - $title = $langs->trans('Product')." ". $shortlabel ." - ".$langs->trans('Card'); |
|
| 75 | - $helpurl='EN:Module_Products|FR:Module_Produits|ES:Módulo_Productos'; |
|
| 76 | - } |
|
| 77 | - if (GETPOST("type") == '1' || ($object->type == Product::TYPE_SERVICE)) |
|
| 78 | - { |
|
| 79 | - $title = $langs->trans('Service')." ". $shortlabel ." - ".$langs->trans('Card'); |
|
| 80 | - $helpurl='EN:Module_Services_En|FR:Module_Services|ES:Módulo_Servicios'; |
|
| 81 | - } |
|
| 82 | - |
|
| 83 | - llxHeader('', $title, $helpurl); |
|
| 84 | - |
|
| 85 | - /* |
|
| 70 | + $helpurl = ''; |
|
| 71 | + $shortlabel = dol_trunc($object->label,16); |
|
| 72 | + if (GETPOST("type") == '0' || ($object->type == Product::TYPE_PRODUCT)) |
|
| 73 | + { |
|
| 74 | + $title = $langs->trans('Product')." ". $shortlabel ." - ".$langs->trans('Card'); |
|
| 75 | + $helpurl='EN:Module_Products|FR:Module_Produits|ES:Módulo_Productos'; |
|
| 76 | + } |
|
| 77 | + if (GETPOST("type") == '1' || ($object->type == Product::TYPE_SERVICE)) |
|
| 78 | + { |
|
| 79 | + $title = $langs->trans('Service')." ". $shortlabel ." - ".$langs->trans('Card'); |
|
| 80 | + $helpurl='EN:Module_Services_En|FR:Module_Services|ES:Módulo_Servicios'; |
|
| 81 | + } |
|
| 82 | + |
|
| 83 | + llxHeader('', $title, $helpurl); |
|
| 84 | + |
|
| 85 | + /* |
|
| 86 | 86 | * En mode visu |
| 87 | 87 | */ |
| 88 | - if ($result > 0) |
|
| 89 | - { |
|
| 90 | - $head=product_prepare_head($object); |
|
| 91 | - $titre=$langs->trans("CardProduct".$object->type); |
|
| 92 | - $picto=($object->type== Product::TYPE_SERVICE?'service':'product'); |
|
| 93 | - dol_fiche_head($head, 'margin', $titre, -1, $picto); |
|
| 88 | + if ($result > 0) |
|
| 89 | + { |
|
| 90 | + $head=product_prepare_head($object); |
|
| 91 | + $titre=$langs->trans("CardProduct".$object->type); |
|
| 92 | + $picto=($object->type== Product::TYPE_SERVICE?'service':'product'); |
|
| 93 | + dol_fiche_head($head, 'margin', $titre, -1, $picto); |
|
| 94 | 94 | |
| 95 | - $linkback = '<a href="'.DOL_URL_ROOT.'/product/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>'; |
|
| 95 | + $linkback = '<a href="'.DOL_URL_ROOT.'/product/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>'; |
|
| 96 | 96 | |
| 97 | 97 | dol_banner_tab($object, 'ref', $linkback, ($user->societe_id?0:1), 'ref'); |
| 98 | 98 | |
@@ -102,31 +102,31 @@ discard block |
||
| 102 | 102 | print '<div class="underbanner clearboth"></div>'; |
| 103 | 103 | print '<table class="border tableforfield" width="100%">'; |
| 104 | 104 | |
| 105 | - // Total Margin |
|
| 106 | - print '<tr><td class="titlefield">'.$langs->trans("TotalMargin").'</td><td colspan="3">'; |
|
| 107 | - print '<span id="totalMargin"></span>'; // set by jquery (see below) |
|
| 108 | - print '</td></tr>'; |
|
| 105 | + // Total Margin |
|
| 106 | + print '<tr><td class="titlefield">'.$langs->trans("TotalMargin").'</td><td colspan="3">'; |
|
| 107 | + print '<span id="totalMargin"></span>'; // set by jquery (see below) |
|
| 108 | + print '</td></tr>'; |
|
| 109 | 109 | |
| 110 | - // Margin Rate |
|
| 111 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) { |
|
| 112 | - print '<tr><td>'.$langs->trans("MarginRate").'</td><td colspan="3">'; |
|
| 113 | - print '<span id="marginRate"></span>'; // set by jquery (see below) |
|
| 114 | - print '</td></tr>'; |
|
| 115 | - } |
|
| 110 | + // Margin Rate |
|
| 111 | + if (! empty($conf->global->DISPLAY_MARGIN_RATES)) { |
|
| 112 | + print '<tr><td>'.$langs->trans("MarginRate").'</td><td colspan="3">'; |
|
| 113 | + print '<span id="marginRate"></span>'; // set by jquery (see below) |
|
| 114 | + print '</td></tr>'; |
|
| 115 | + } |
|
| 116 | 116 | |
| 117 | - // Mark Rate |
|
| 118 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) { |
|
| 119 | - print '<tr><td>'.$langs->trans("MarkRate").'</td><td colspan="3">'; |
|
| 120 | - print '<span id="markRate"></span>'; // set by jquery (see below) |
|
| 121 | - print '</td></tr>'; |
|
| 122 | - } |
|
| 117 | + // Mark Rate |
|
| 118 | + if (! empty($conf->global->DISPLAY_MARK_RATES)) { |
|
| 119 | + print '<tr><td>'.$langs->trans("MarkRate").'</td><td colspan="3">'; |
|
| 120 | + print '<span id="markRate"></span>'; // set by jquery (see below) |
|
| 121 | + print '</td></tr>'; |
|
| 122 | + } |
|
| 123 | 123 | |
| 124 | - print "</table>"; |
|
| 124 | + print "</table>"; |
|
| 125 | 125 | |
| 126 | 126 | print '</div>'; |
| 127 | 127 | print '<div style="clear:both"></div>'; |
| 128 | 128 | |
| 129 | - dol_fiche_end(); |
|
| 129 | + dol_fiche_end(); |
|
| 130 | 130 | |
| 131 | 131 | |
| 132 | 132 | if ($user->rights->facture->lire) { |
@@ -193,8 +193,8 @@ discard block |
||
| 193 | 193 | while ($i < $num /*&& $i < $conf->liste_limit*/) { |
| 194 | 194 | $objp = $db->fetch_object($result); |
| 195 | 195 | |
| 196 | - $marginRate = ($objp->buying_price != 0)?(100 * $objp->marge / $objp->buying_price):'' ; |
|
| 197 | - $markRate = ($objp->selling_price != 0)?(100 * $objp->marge / $objp->selling_price):'' ; |
|
| 196 | + $marginRate = ($objp->buying_price != 0)?(100 * $objp->marge / $objp->buying_price):'' ; |
|
| 197 | + $markRate = ($objp->selling_price != 0)?(100 * $objp->marge / $objp->selling_price):'' ; |
|
| 198 | 198 | |
| 199 | 199 | print '<tr class="oddeven">'; |
| 200 | 200 | print '<td>'; |
@@ -204,17 +204,17 @@ discard block |
||
| 204 | 204 | print "</td>\n"; |
| 205 | 205 | print '<td><a href="'.DOL_URL_ROOT.'/comm/card.php?socid='.$objp->socid.'">'.img_object($langs->trans("ShowCompany"),"company").' '.dol_trunc($objp->name,44).'</a></td>'; |
| 206 | 206 | print "<td>".$objp->code_client."</td>\n"; |
| 207 | - print "<td align=\"center\">"; |
|
| 208 | - print dol_print_date($db->jdate($objp->datef),'day')."</td>"; |
|
| 209 | - print "<td align=\"right\">".price($objp->selling_price, null, null, null, null, $rounding)."</td>\n"; |
|
| 210 | - print "<td align=\"right\">".price($objp->buying_price, null, null, null, null, $rounding)."</td>\n"; |
|
| 211 | - print "<td align=\"right\">".price($objp->qty, null, null, null, null, $rounding)."</td>\n"; |
|
| 212 | - print "<td align=\"right\">".price($objp->marge, null, null, null, null, $rounding)."</td>\n"; |
|
| 213 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 214 | - print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 215 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 216 | - print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 217 | - print '<td align="right">'.$invoicestatic->LibStatut($objp->paye,$objp->statut,5).'</td>'; |
|
| 207 | + print "<td align=\"center\">"; |
|
| 208 | + print dol_print_date($db->jdate($objp->datef),'day')."</td>"; |
|
| 209 | + print "<td align=\"right\">".price($objp->selling_price, null, null, null, null, $rounding)."</td>\n"; |
|
| 210 | + print "<td align=\"right\">".price($objp->buying_price, null, null, null, null, $rounding)."</td>\n"; |
|
| 211 | + print "<td align=\"right\">".price($objp->qty, null, null, null, null, $rounding)."</td>\n"; |
|
| 212 | + print "<td align=\"right\">".price($objp->marge, null, null, null, null, $rounding)."</td>\n"; |
|
| 213 | + if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 214 | + print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 215 | + if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 216 | + print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 217 | + print '<td align="right">'.$invoicestatic->LibStatut($objp->paye,$objp->statut,5).'</td>'; |
|
| 218 | 218 | print "</tr>\n"; |
| 219 | 219 | $i++; |
| 220 | 220 | $cumul_achat += $objp->buying_price; |
@@ -36,7 +36,9 @@ discard block |
||
| 36 | 36 | // Security check |
| 37 | 37 | $fieldvalue = (! empty($id) ? $id : (! empty($ref) ? $ref : '')); |
| 38 | 38 | $fieldtype = (! empty($ref) ? 'ref' : 'rowid'); |
| 39 | -if (! empty($user->societe_id)) $socid=$user->societe_id; |
|
| 39 | +if (! empty($user->societe_id)) { |
|
| 40 | + $socid=$user->societe_id; |
|
| 41 | +} |
|
| 40 | 42 | $result=restrictedArea($user,'produit|service',$fieldvalue,'product&product','','',$fieldtype); |
| 41 | 43 | |
| 42 | 44 | $object = new Product($db); |
@@ -50,8 +52,12 @@ discard block |
||
| 50 | 52 | $offset = $conf->liste_limit * $page; |
| 51 | 53 | $pageprev = $page - 1; |
| 52 | 54 | $pagenext = $page + 1; |
| 53 | -if (! $sortorder) $sortorder="DESC"; |
|
| 54 | -if (! $sortfield) $sortfield="f.datef"; |
|
| 55 | +if (! $sortorder) { |
|
| 56 | + $sortorder="DESC"; |
|
| 57 | +} |
|
| 58 | +if (! $sortfield) { |
|
| 59 | + $sortfield="f.datef"; |
|
| 60 | +} |
|
| 55 | 61 | |
| 56 | 62 | |
| 57 | 63 | /* |
@@ -133,7 +139,9 @@ discard block |
||
| 133 | 139 | $sql = "SELECT s.nom as name, s.rowid as socid, s.code_client,"; |
| 134 | 140 | $sql.= " f.rowid as facid, f.ref, f.total as total_ht,"; |
| 135 | 141 | $sql.= " f.datef, f.paye, f.fk_statut as statut, f.type,"; |
| 136 | - if (!$user->rights->societe->client->voir && !$socid) $sql.= " sc.fk_soc, sc.fk_user,"; |
|
| 142 | + if (!$user->rights->societe->client->voir && !$socid) { |
|
| 143 | + $sql.= " sc.fk_soc, sc.fk_user,"; |
|
| 144 | + } |
|
| 137 | 145 | $sql.= " sum(d.total_ht) as selling_price,"; // may be negative or positive |
| 138 | 146 | $sql.= " IF(f.type = 2, -1, 1) * sum(d.qty) as qty,"; // not always positive in case of Credit note |
| 139 | 147 | $sql.= " IF(f.type = 2, -1, 1) * sum(d.qty * d.buy_price_ht) as buying_price,"; // not always positive in case of Credit note |
@@ -141,18 +149,28 @@ discard block |
||
| 141 | 149 | $sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; |
| 142 | 150 | $sql.= ", ".MAIN_DB_PREFIX."facture as f"; |
| 143 | 151 | $sql.= ", ".MAIN_DB_PREFIX."facturedet as d"; |
| 144 | - if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; |
|
| 152 | + if (!$user->rights->societe->client->voir && !$socid) { |
|
| 153 | + $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; |
|
| 154 | + } |
|
| 145 | 155 | $sql.= " WHERE f.fk_soc = s.rowid"; |
| 146 | 156 | $sql.= " AND f.fk_statut > 0"; |
| 147 | 157 | $sql.= " AND s.entity = ".$conf->entity; |
| 148 | 158 | $sql.= " AND d.fk_facture = f.rowid"; |
| 149 | 159 | $sql.= " AND d.fk_product =".$object->id; |
| 150 | - if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; |
|
| 151 | - if (! empty($socid)) $sql.= " AND f.fk_soc = $socid"; |
|
| 160 | + if (!$user->rights->societe->client->voir && !$socid) { |
|
| 161 | + $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; |
|
| 162 | + } |
|
| 163 | + if (! empty($socid)) { |
|
| 164 | + $sql.= " AND f.fk_soc = $socid"; |
|
| 165 | + } |
|
| 152 | 166 | $sql .= " AND d.buy_price_ht IS NOT NULL"; |
| 153 | - if (isset($conf->global->ForceBuyingPriceIfNull) && $conf->global->ForceBuyingPriceIfNull == 1) $sql .= " AND d.buy_price_ht <> 0"; |
|
| 167 | + if (isset($conf->global->ForceBuyingPriceIfNull) && $conf->global->ForceBuyingPriceIfNull == 1) { |
|
| 168 | + $sql .= " AND d.buy_price_ht <> 0"; |
|
| 169 | + } |
|
| 154 | 170 | $sql.= " GROUP BY s.nom, s.rowid, s.code_client, f.rowid, f.ref, f.total, f.datef, f.paye, f.fk_statut, f.type"; |
| 155 | - if (!$user->rights->societe->client->voir && !$socid) $sql.= ", sc.fk_soc, sc.fk_user"; |
|
| 171 | + if (!$user->rights->societe->client->voir && !$socid) { |
|
| 172 | + $sql.= ", sc.fk_soc, sc.fk_user"; |
|
| 173 | + } |
|
| 156 | 174 | $sql.= $db->order($sortfield,$sortorder); |
| 157 | 175 | // TODO: calculate total to display then restore pagination |
| 158 | 176 | //$sql.= $db->plimit($conf->liste_limit +1, $offset); |
@@ -177,10 +195,12 @@ discard block |
||
| 177 | 195 | print_liste_field_titre("BuyingPrice",$_SERVER["PHP_SELF"],"buying_price","","&id=".$object->id,'align="right"',$sortfield,$sortorder); |
| 178 | 196 | print_liste_field_titre("Qty",$_SERVER["PHP_SELF"],"d.qty","","&id=".$object->id,'align="right"',$sortfield,$sortorder); |
| 179 | 197 | print_liste_field_titre("Margin",$_SERVER["PHP_SELF"],"marge","","&id=".$object->id,'align="right"',$sortfield,$sortorder); |
| 180 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 181 | - print_liste_field_titre("MarginRate",$_SERVER["PHP_SELF"],"","","&id=".$object->id,'align="right"',$sortfield,$sortorder); |
|
| 182 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 183 | - print_liste_field_titre("MarkRate",$_SERVER["PHP_SELF"],"","","&id=".$object->id,'align="right"',$sortfield,$sortorder); |
|
| 198 | + if (! empty($conf->global->DISPLAY_MARGIN_RATES)) { |
|
| 199 | + print_liste_field_titre("MarginRate",$_SERVER["PHP_SELF"],"","","&id=".$object->id,'align="right"',$sortfield,$sortorder); |
|
| 200 | + } |
|
| 201 | + if (! empty($conf->global->DISPLAY_MARK_RATES)) { |
|
| 202 | + print_liste_field_titre("MarkRate",$_SERVER["PHP_SELF"],"","","&id=".$object->id,'align="right"',$sortfield,$sortorder); |
|
| 203 | + } |
|
| 184 | 204 | print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"f.paye,f.fk_statut","","&id=".$object->id,'align="right"',$sortfield,$sortorder); |
| 185 | 205 | print "</tr>\n"; |
| 186 | 206 | |
@@ -210,10 +230,12 @@ discard block |
||
| 210 | 230 | print "<td align=\"right\">".price($objp->buying_price, null, null, null, null, $rounding)."</td>\n"; |
| 211 | 231 | print "<td align=\"right\">".price($objp->qty, null, null, null, null, $rounding)."</td>\n"; |
| 212 | 232 | print "<td align=\"right\">".price($objp->marge, null, null, null, null, $rounding)."</td>\n"; |
| 213 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 214 | - print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 215 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 216 | - print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 233 | + if (! empty($conf->global->DISPLAY_MARGIN_RATES)) { |
|
| 234 | + print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 235 | + } |
|
| 236 | + if (! empty($conf->global->DISPLAY_MARK_RATES)) { |
|
| 237 | + print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 238 | + } |
|
| 217 | 239 | print '<td align="right">'.$invoicestatic->LibStatut($objp->paye,$objp->statut,5).'</td>'; |
| 218 | 240 | print "</tr>\n"; |
| 219 | 241 | $i++; |
@@ -230,8 +252,7 @@ discard block |
||
| 230 | 252 | { |
| 231 | 253 | $marginRate = ($cumul_achat != 0)?-1*(100 * $totalMargin / $cumul_achat):''; |
| 232 | 254 | $markRate = ($cumul_vente != 0)?-1*(100 * $totalMargin / $cumul_vente):''; |
| 233 | - } |
|
| 234 | - else |
|
| 255 | + } else |
|
| 235 | 256 | { |
| 236 | 257 | $marginRate = ($cumul_achat != 0)?(100 * $totalMargin / $cumul_achat):''; |
| 237 | 258 | $markRate = ($cumul_vente != 0)?(100 * $totalMargin / $cumul_vente):''; |
@@ -242,10 +263,12 @@ discard block |
||
| 242 | 263 | print '<td align="right">'.price($cumul_achat, null, null, null, null, $rounding)."</td>\n"; |
| 243 | 264 | print '<td align="right">'.price($cumul_qty, null, null, null, null, $rounding)."</td>\n"; |
| 244 | 265 | print '<td align="right">'.price($totalMargin, null, null, null, null, $rounding)."</td>\n"; |
| 245 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 246 | - print '<td align="right">'.(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 247 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 248 | - print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 266 | + if (! empty($conf->global->DISPLAY_MARGIN_RATES)) { |
|
| 267 | + print '<td align="right">'.(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 268 | + } |
|
| 269 | + if (! empty($conf->global->DISPLAY_MARK_RATES)) { |
|
| 270 | + print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 271 | + } |
|
| 249 | 272 | print '<td align="right"> </td>'; |
| 250 | 273 | print "</tr>\n"; |
| 251 | 274 | print "</table>"; |
@@ -24,7 +24,7 @@ discard block |
||
| 24 | 24 | |
| 25 | 25 | // Copyright (C) 2018 Alxarafe/Alixar <[email protected]> |
| 26 | 26 | defined('BASE_PATH') or die('Single entry point through the index.php of the main folder'); |
| 27 | -require DOL_BASE_PATH . '/main.inc.php'; |
|
| 27 | +require DOL_BASE_PATH.'/main.inc.php'; |
|
| 28 | 28 | require_once DOL_DOCUMENT_ROOT.'/core/lib/product.lib.php'; |
| 29 | 29 | require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; |
| 30 | 30 | require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; |
@@ -33,54 +33,54 @@ discard block |
||
| 33 | 33 | |
| 34 | 34 | $id = GETPOST('id', 'int'); |
| 35 | 35 | $ref = GETPOST('ref', 'alpha'); |
| 36 | -$action=GETPOST('action','alpha'); |
|
| 37 | -$confirm=GETPOST('confirm','alpha'); |
|
| 36 | +$action = GETPOST('action', 'alpha'); |
|
| 37 | +$confirm = GETPOST('confirm', 'alpha'); |
|
| 38 | 38 | |
| 39 | 39 | // Security check |
| 40 | -$fieldvalue = (! empty($id) ? $id : (! empty($ref) ? $ref : '')); |
|
| 41 | -$fieldtype = (! empty($ref) ? 'ref' : 'rowid'); |
|
| 42 | -if (! empty($user->societe_id)) $socid=$user->societe_id; |
|
| 43 | -$result=restrictedArea($user,'produit|service',$fieldvalue,'product&product','','',$fieldtype); |
|
| 40 | +$fieldvalue = (!empty($id) ? $id : (!empty($ref) ? $ref : '')); |
|
| 41 | +$fieldtype = (!empty($ref) ? 'ref' : 'rowid'); |
|
| 42 | +if (!empty($user->societe_id)) $socid = $user->societe_id; |
|
| 43 | +$result = restrictedArea($user, 'produit|service', $fieldvalue, 'product&product', '', '', $fieldtype); |
|
| 44 | 44 | |
| 45 | 45 | $object = new Product($db); |
| 46 | 46 | |
| 47 | 47 | $mesg = ''; |
| 48 | 48 | |
| 49 | -$sortfield = GETPOST("sortfield",'alpha'); |
|
| 50 | -$sortorder = GETPOST("sortorder",'alpha'); |
|
| 51 | -$page = GETPOST("page",'int'); |
|
| 49 | +$sortfield = GETPOST("sortfield", 'alpha'); |
|
| 50 | +$sortorder = GETPOST("sortorder", 'alpha'); |
|
| 51 | +$page = GETPOST("page", 'int'); |
|
| 52 | 52 | if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 |
| 53 | 53 | $offset = $conf->liste_limit * $page; |
| 54 | 54 | $pageprev = $page - 1; |
| 55 | 55 | $pagenext = $page + 1; |
| 56 | -if (! $sortorder) $sortorder="DESC"; |
|
| 57 | -if (! $sortfield) $sortfield="f.datef"; |
|
| 56 | +if (!$sortorder) $sortorder = "DESC"; |
|
| 57 | +if (!$sortfield) $sortfield = "f.datef"; |
|
| 58 | 58 | |
| 59 | 59 | |
| 60 | 60 | /* |
| 61 | 61 | * View |
| 62 | 62 | */ |
| 63 | 63 | |
| 64 | -$invoicestatic=new Facture($db); |
|
| 64 | +$invoicestatic = new Facture($db); |
|
| 65 | 65 | |
| 66 | 66 | $form = new Form($db); |
| 67 | 67 | |
| 68 | -if ($id > 0 || ! empty($ref)) |
|
| 68 | +if ($id > 0 || !empty($ref)) |
|
| 69 | 69 | { |
| 70 | 70 | $result = $object->fetch($id, $ref); |
| 71 | 71 | |
| 72 | 72 | $title = $langs->trans('ProductServiceCard'); |
| 73 | 73 | $helpurl = ''; |
| 74 | - $shortlabel = dol_trunc($object->label,16); |
|
| 74 | + $shortlabel = dol_trunc($object->label, 16); |
|
| 75 | 75 | if (GETPOST("type") == '0' || ($object->type == Product::TYPE_PRODUCT)) |
| 76 | 76 | { |
| 77 | - $title = $langs->trans('Product')." ". $shortlabel ." - ".$langs->trans('Card'); |
|
| 78 | - $helpurl='EN:Module_Products|FR:Module_Produits|ES:Módulo_Productos'; |
|
| 77 | + $title = $langs->trans('Product')." ".$shortlabel." - ".$langs->trans('Card'); |
|
| 78 | + $helpurl = 'EN:Module_Products|FR:Module_Produits|ES:Módulo_Productos'; |
|
| 79 | 79 | } |
| 80 | 80 | if (GETPOST("type") == '1' || ($object->type == Product::TYPE_SERVICE)) |
| 81 | 81 | { |
| 82 | - $title = $langs->trans('Service')." ". $shortlabel ." - ".$langs->trans('Card'); |
|
| 83 | - $helpurl='EN:Module_Services_En|FR:Module_Services|ES:Módulo_Servicios'; |
|
| 82 | + $title = $langs->trans('Service')." ".$shortlabel." - ".$langs->trans('Card'); |
|
| 83 | + $helpurl = 'EN:Module_Services_En|FR:Module_Services|ES:Módulo_Servicios'; |
|
| 84 | 84 | } |
| 85 | 85 | |
| 86 | 86 | llxHeader('', $title, $helpurl); |
@@ -90,14 +90,14 @@ discard block |
||
| 90 | 90 | */ |
| 91 | 91 | if ($result > 0) |
| 92 | 92 | { |
| 93 | - $head=product_prepare_head($object); |
|
| 94 | - $titre=$langs->trans("CardProduct".$object->type); |
|
| 95 | - $picto=($object->type== Product::TYPE_SERVICE?'service':'product'); |
|
| 93 | + $head = product_prepare_head($object); |
|
| 94 | + $titre = $langs->trans("CardProduct".$object->type); |
|
| 95 | + $picto = ($object->type == Product::TYPE_SERVICE ? 'service' : 'product'); |
|
| 96 | 96 | dol_fiche_head($head, 'margin', $titre, -1, $picto); |
| 97 | 97 | |
| 98 | 98 | $linkback = '<a href="'.DOL_URL_ROOT.'/product/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>'; |
| 99 | 99 | |
| 100 | - dol_banner_tab($object, 'ref', $linkback, ($user->societe_id?0:1), 'ref'); |
|
| 100 | + dol_banner_tab($object, 'ref', $linkback, ($user->societe_id ? 0 : 1), 'ref'); |
|
| 101 | 101 | |
| 102 | 102 | |
| 103 | 103 | print '<div class="fichecenter">'; |
@@ -111,14 +111,14 @@ discard block |
||
| 111 | 111 | print '</td></tr>'; |
| 112 | 112 | |
| 113 | 113 | // Margin Rate |
| 114 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) { |
|
| 114 | + if (!empty($conf->global->DISPLAY_MARGIN_RATES)) { |
|
| 115 | 115 | print '<tr><td>'.$langs->trans("MarginRate").'</td><td colspan="3">'; |
| 116 | 116 | print '<span id="marginRate"></span>'; // set by jquery (see below) |
| 117 | 117 | print '</td></tr>'; |
| 118 | 118 | } |
| 119 | 119 | |
| 120 | 120 | // Mark Rate |
| 121 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) { |
|
| 121 | + if (!empty($conf->global->DISPLAY_MARK_RATES)) { |
|
| 122 | 122 | print '<tr><td>'.$langs->trans("MarkRate").'</td><td colspan="3">'; |
| 123 | 123 | print '<span id="markRate"></span>'; // set by jquery (see below) |
| 124 | 124 | print '</td></tr>'; |
@@ -134,29 +134,29 @@ discard block |
||
| 134 | 134 | |
| 135 | 135 | if ($user->rights->facture->lire) { |
| 136 | 136 | $sql = "SELECT s.nom as name, s.rowid as socid, s.code_client,"; |
| 137 | - $sql.= " f.rowid as facid, f.ref, f.total as total_ht,"; |
|
| 138 | - $sql.= " f.datef, f.paye, f.fk_statut as statut, f.type,"; |
|
| 139 | - if (!$user->rights->societe->client->voir && !$socid) $sql.= " sc.fk_soc, sc.fk_user,"; |
|
| 140 | - $sql.= " sum(d.total_ht) as selling_price,"; // may be negative or positive |
|
| 141 | - $sql.= " IF(f.type = 2, -1, 1) * sum(d.qty) as qty,"; // not always positive in case of Credit note |
|
| 142 | - $sql.= " IF(f.type = 2, -1, 1) * sum(d.qty * d.buy_price_ht) as buying_price,"; // not always positive in case of Credit note |
|
| 143 | - $sql.= " IF(f.type = 2, -1, 1) * sum(abs(d.total_ht) - (d.buy_price_ht * d.qty)) as marge" ; // not always positive in case of Credit note |
|
| 144 | - $sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; |
|
| 145 | - $sql.= ", ".MAIN_DB_PREFIX."facture as f"; |
|
| 146 | - $sql.= ", ".MAIN_DB_PREFIX."facturedet as d"; |
|
| 147 | - if (!$user->rights->societe->client->voir && !$socid) $sql.= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; |
|
| 148 | - $sql.= " WHERE f.fk_soc = s.rowid"; |
|
| 149 | - $sql.= " AND f.fk_statut > 0"; |
|
| 150 | - $sql.= " AND s.entity = ".$conf->entity; |
|
| 151 | - $sql.= " AND d.fk_facture = f.rowid"; |
|
| 152 | - $sql.= " AND d.fk_product =".$object->id; |
|
| 153 | - if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; |
|
| 154 | - if (! empty($socid)) $sql.= " AND f.fk_soc = $socid"; |
|
| 137 | + $sql .= " f.rowid as facid, f.ref, f.total as total_ht,"; |
|
| 138 | + $sql .= " f.datef, f.paye, f.fk_statut as statut, f.type,"; |
|
| 139 | + if (!$user->rights->societe->client->voir && !$socid) $sql .= " sc.fk_soc, sc.fk_user,"; |
|
| 140 | + $sql .= " sum(d.total_ht) as selling_price,"; // may be negative or positive |
|
| 141 | + $sql .= " IF(f.type = 2, -1, 1) * sum(d.qty) as qty,"; // not always positive in case of Credit note |
|
| 142 | + $sql .= " IF(f.type = 2, -1, 1) * sum(d.qty * d.buy_price_ht) as buying_price,"; // not always positive in case of Credit note |
|
| 143 | + $sql .= " IF(f.type = 2, -1, 1) * sum(abs(d.total_ht) - (d.buy_price_ht * d.qty)) as marge"; // not always positive in case of Credit note |
|
| 144 | + $sql .= " FROM ".MAIN_DB_PREFIX."societe as s"; |
|
| 145 | + $sql .= ", ".MAIN_DB_PREFIX."facture as f"; |
|
| 146 | + $sql .= ", ".MAIN_DB_PREFIX."facturedet as d"; |
|
| 147 | + if (!$user->rights->societe->client->voir && !$socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; |
|
| 148 | + $sql .= " WHERE f.fk_soc = s.rowid"; |
|
| 149 | + $sql .= " AND f.fk_statut > 0"; |
|
| 150 | + $sql .= " AND s.entity = ".$conf->entity; |
|
| 151 | + $sql .= " AND d.fk_facture = f.rowid"; |
|
| 152 | + $sql .= " AND d.fk_product =".$object->id; |
|
| 153 | + if (!$user->rights->societe->client->voir && !$socid) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id; |
|
| 154 | + if (!empty($socid)) $sql .= " AND f.fk_soc = $socid"; |
|
| 155 | 155 | $sql .= " AND d.buy_price_ht IS NOT NULL"; |
| 156 | 156 | if (isset($conf->global->ForceBuyingPriceIfNull) && $conf->global->ForceBuyingPriceIfNull == 1) $sql .= " AND d.buy_price_ht <> 0"; |
| 157 | - $sql.= " GROUP BY s.nom, s.rowid, s.code_client, f.rowid, f.ref, f.total, f.datef, f.paye, f.fk_statut, f.type"; |
|
| 158 | - if (!$user->rights->societe->client->voir && !$socid) $sql.= ", sc.fk_soc, sc.fk_user"; |
|
| 159 | - $sql.= $db->order($sortfield,$sortorder); |
|
| 157 | + $sql .= " GROUP BY s.nom, s.rowid, s.code_client, f.rowid, f.ref, f.total, f.datef, f.paye, f.fk_statut, f.type"; |
|
| 158 | + if (!$user->rights->societe->client->voir && !$socid) $sql .= ", sc.fk_soc, sc.fk_user"; |
|
| 159 | + $sql .= $db->order($sortfield, $sortorder); |
|
| 160 | 160 | // TODO: calculate total to display then restore pagination |
| 161 | 161 | //$sql.= $db->plimit($conf->liste_limit +1, $offset); |
| 162 | 162 | dol_syslog('margin:tabs:productMargins.php', LOG_DEBUG); |
@@ -164,7 +164,7 @@ discard block |
||
| 164 | 164 | if ($result) { |
| 165 | 165 | $num = $db->num_rows($result); |
| 166 | 166 | |
| 167 | - print_barre_liste($langs->trans("MarginDetails"),$page,$_SERVER["PHP_SELF"],"&id=$object->id",$sortfield,$sortorder,'',0,0,''); |
|
| 167 | + print_barre_liste($langs->trans("MarginDetails"), $page, $_SERVER["PHP_SELF"], "&id=$object->id", $sortfield, $sortorder, '', 0, 0, ''); |
|
| 168 | 168 | |
| 169 | 169 | $i = 0; |
| 170 | 170 | |
@@ -172,52 +172,52 @@ discard block |
||
| 172 | 172 | print '<table class="noborder" width="100%">'; |
| 173 | 173 | |
| 174 | 174 | print '<tr class="liste_titre">'; |
| 175 | - print_liste_field_titre("Invoice",$_SERVER["PHP_SELF"],"f.ref","","&id=".$object->id,'',$sortfield,$sortorder); |
|
| 176 | - print_liste_field_titre("Company",$_SERVER["PHP_SELF"],"s.nom","","&id=".$object->id,'',$sortfield,$sortorder); |
|
| 177 | - print_liste_field_titre("CustomerCode",$_SERVER["PHP_SELF"],"s.code_client","","&id=".$object->id,'',$sortfield,$sortorder); |
|
| 178 | - print_liste_field_titre("DateInvoice",$_SERVER["PHP_SELF"],"f.datef","","&id=".$object->id,'align="center"',$sortfield,$sortorder); |
|
| 179 | - print_liste_field_titre("SellingPrice",$_SERVER["PHP_SELF"],"selling_price","","&id=".$object->id,'align="right"',$sortfield,$sortorder); |
|
| 180 | - print_liste_field_titre("BuyingPrice",$_SERVER["PHP_SELF"],"buying_price","","&id=".$object->id,'align="right"',$sortfield,$sortorder); |
|
| 181 | - print_liste_field_titre("Qty",$_SERVER["PHP_SELF"],"d.qty","","&id=".$object->id,'align="right"',$sortfield,$sortorder); |
|
| 182 | - print_liste_field_titre("Margin",$_SERVER["PHP_SELF"],"marge","","&id=".$object->id,'align="right"',$sortfield,$sortorder); |
|
| 183 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 184 | - print_liste_field_titre("MarginRate",$_SERVER["PHP_SELF"],"","","&id=".$object->id,'align="right"',$sortfield,$sortorder); |
|
| 185 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 186 | - print_liste_field_titre("MarkRate",$_SERVER["PHP_SELF"],"","","&id=".$object->id,'align="right"',$sortfield,$sortorder); |
|
| 187 | - print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"f.paye,f.fk_statut","","&id=".$object->id,'align="right"',$sortfield,$sortorder); |
|
| 175 | + print_liste_field_titre("Invoice", $_SERVER["PHP_SELF"], "f.ref", "", "&id=".$object->id, '', $sortfield, $sortorder); |
|
| 176 | + print_liste_field_titre("Company", $_SERVER["PHP_SELF"], "s.nom", "", "&id=".$object->id, '', $sortfield, $sortorder); |
|
| 177 | + print_liste_field_titre("CustomerCode", $_SERVER["PHP_SELF"], "s.code_client", "", "&id=".$object->id, '', $sortfield, $sortorder); |
|
| 178 | + print_liste_field_titre("DateInvoice", $_SERVER["PHP_SELF"], "f.datef", "", "&id=".$object->id, 'align="center"', $sortfield, $sortorder); |
|
| 179 | + print_liste_field_titre("SellingPrice", $_SERVER["PHP_SELF"], "selling_price", "", "&id=".$object->id, 'align="right"', $sortfield, $sortorder); |
|
| 180 | + print_liste_field_titre("BuyingPrice", $_SERVER["PHP_SELF"], "buying_price", "", "&id=".$object->id, 'align="right"', $sortfield, $sortorder); |
|
| 181 | + print_liste_field_titre("Qty", $_SERVER["PHP_SELF"], "d.qty", "", "&id=".$object->id, 'align="right"', $sortfield, $sortorder); |
|
| 182 | + print_liste_field_titre("Margin", $_SERVER["PHP_SELF"], "marge", "", "&id=".$object->id, 'align="right"', $sortfield, $sortorder); |
|
| 183 | + if (!empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 184 | + print_liste_field_titre("MarginRate", $_SERVER["PHP_SELF"], "", "", "&id=".$object->id, 'align="right"', $sortfield, $sortorder); |
|
| 185 | + if (!empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 186 | + print_liste_field_titre("MarkRate", $_SERVER["PHP_SELF"], "", "", "&id=".$object->id, 'align="right"', $sortfield, $sortorder); |
|
| 187 | + print_liste_field_titre("Status", $_SERVER["PHP_SELF"], "f.paye,f.fk_statut", "", "&id=".$object->id, 'align="right"', $sortfield, $sortorder); |
|
| 188 | 188 | print "</tr>\n"; |
| 189 | 189 | |
| 190 | 190 | $cumul_achat = 0; |
| 191 | 191 | $cumul_vente = 0; |
| 192 | 192 | $cumul_qty = 0; |
| 193 | - $rounding = min($conf->global->MAIN_MAX_DECIMALS_UNIT,$conf->global->MAIN_MAX_DECIMALS_TOT); |
|
| 193 | + $rounding = min($conf->global->MAIN_MAX_DECIMALS_UNIT, $conf->global->MAIN_MAX_DECIMALS_TOT); |
|
| 194 | 194 | |
| 195 | 195 | if ($num > 0) { |
| 196 | 196 | while ($i < $num /*&& $i < $conf->liste_limit*/) { |
| 197 | 197 | $objp = $db->fetch_object($result); |
| 198 | 198 | |
| 199 | - $marginRate = ($objp->buying_price != 0)?(100 * $objp->marge / $objp->buying_price):'' ; |
|
| 200 | - $markRate = ($objp->selling_price != 0)?(100 * $objp->marge / $objp->selling_price):'' ; |
|
| 199 | + $marginRate = ($objp->buying_price != 0) ? (100 * $objp->marge / $objp->buying_price) : ''; |
|
| 200 | + $markRate = ($objp->selling_price != 0) ? (100 * $objp->marge / $objp->selling_price) : ''; |
|
| 201 | 201 | |
| 202 | 202 | print '<tr class="oddeven">'; |
| 203 | 203 | print '<td>'; |
| 204 | - $invoicestatic->id=$objp->facid; |
|
| 205 | - $invoicestatic->ref=$objp->ref; |
|
| 204 | + $invoicestatic->id = $objp->facid; |
|
| 205 | + $invoicestatic->ref = $objp->ref; |
|
| 206 | 206 | print $invoicestatic->getNomUrl(1); |
| 207 | 207 | print "</td>\n"; |
| 208 | - print '<td><a href="'.DOL_URL_ROOT.'/comm/card.php?socid='.$objp->socid.'">'.img_object($langs->trans("ShowCompany"),"company").' '.dol_trunc($objp->name,44).'</a></td>'; |
|
| 208 | + print '<td><a href="'.DOL_URL_ROOT.'/comm/card.php?socid='.$objp->socid.'">'.img_object($langs->trans("ShowCompany"), "company").' '.dol_trunc($objp->name, 44).'</a></td>'; |
|
| 209 | 209 | print "<td>".$objp->code_client."</td>\n"; |
| 210 | 210 | print "<td align=\"center\">"; |
| 211 | - print dol_print_date($db->jdate($objp->datef),'day')."</td>"; |
|
| 211 | + print dol_print_date($db->jdate($objp->datef), 'day')."</td>"; |
|
| 212 | 212 | print "<td align=\"right\">".price($objp->selling_price, null, null, null, null, $rounding)."</td>\n"; |
| 213 | 213 | print "<td align=\"right\">".price($objp->buying_price, null, null, null, null, $rounding)."</td>\n"; |
| 214 | 214 | print "<td align=\"right\">".price($objp->qty, null, null, null, null, $rounding)."</td>\n"; |
| 215 | 215 | print "<td align=\"right\">".price($objp->marge, null, null, null, null, $rounding)."</td>\n"; |
| 216 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 217 | - print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 218 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 219 | - print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 220 | - print '<td align="right">'.$invoicestatic->LibStatut($objp->paye,$objp->statut,5).'</td>'; |
|
| 216 | + if (!empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 217 | + print "<td align=\"right\">".(($marginRate === '') ? 'n/a' : price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 218 | + if (!empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 219 | + print "<td align=\"right\">".(($markRate === '') ? 'n/a' : price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 220 | + print '<td align="right">'.$invoicestatic->LibStatut($objp->paye, $objp->statut, 5).'</td>'; |
|
| 221 | 221 | print "</tr>\n"; |
| 222 | 222 | $i++; |
| 223 | 223 | $cumul_achat += $objp->buying_price; |
@@ -231,13 +231,13 @@ discard block |
||
| 231 | 231 | $totalMargin = $cumul_vente - $cumul_achat; |
| 232 | 232 | if ($totalMargin < 0) |
| 233 | 233 | { |
| 234 | - $marginRate = ($cumul_achat != 0)?-1*(100 * $totalMargin / $cumul_achat):''; |
|
| 235 | - $markRate = ($cumul_vente != 0)?-1*(100 * $totalMargin / $cumul_vente):''; |
|
| 234 | + $marginRate = ($cumul_achat != 0) ?-1 * (100 * $totalMargin / $cumul_achat) : ''; |
|
| 235 | + $markRate = ($cumul_vente != 0) ?-1 * (100 * $totalMargin / $cumul_vente) : ''; |
|
| 236 | 236 | } |
| 237 | 237 | else |
| 238 | 238 | { |
| 239 | - $marginRate = ($cumul_achat != 0)?(100 * $totalMargin / $cumul_achat):''; |
|
| 240 | - $markRate = ($cumul_vente != 0)?(100 * $totalMargin / $cumul_vente):''; |
|
| 239 | + $marginRate = ($cumul_achat != 0) ? (100 * $totalMargin / $cumul_achat) : ''; |
|
| 240 | + $markRate = ($cumul_vente != 0) ? (100 * $totalMargin / $cumul_vente) : ''; |
|
| 241 | 241 | } |
| 242 | 242 | print '<tr class="liste_total">'; |
| 243 | 243 | print '<td colspan=4>'.$langs->trans('TotalMargin')."</td>"; |
@@ -245,10 +245,10 @@ discard block |
||
| 245 | 245 | print '<td align="right">'.price($cumul_achat, null, null, null, null, $rounding)."</td>\n"; |
| 246 | 246 | print '<td align="right">'.price($cumul_qty, null, null, null, null, $rounding)."</td>\n"; |
| 247 | 247 | print '<td align="right">'.price($totalMargin, null, null, null, null, $rounding)."</td>\n"; |
| 248 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 249 | - print '<td align="right">'.(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 250 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 251 | - print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 248 | + if (!empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 249 | + print '<td align="right">'.(($marginRate === '') ? 'n/a' : price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 250 | + if (!empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 251 | + print "<td align=\"right\">".(($markRate === '') ? 'n/a' : price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 252 | 252 | print '<td align="right"> </td>'; |
| 253 | 253 | print "</tr>\n"; |
| 254 | 254 | print "</table>"; |
@@ -267,8 +267,8 @@ discard block |
||
| 267 | 267 | <script type="text/javascript"> |
| 268 | 268 | $(document).ready(function() { |
| 269 | 269 | $("#totalMargin").html("'. price($totalMargin, null, null, null, null, $rounding).'"); |
| 270 | - $("#marginRate").html("'.(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%").'"); |
|
| 271 | - $("#markRate").html("'.(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%").'"); |
|
| 270 | + $("#marginRate").html("'.(($marginRate === '') ? 'n/a' : price($marginRate, null, null, null, null, $rounding)."%").'"); |
|
| 271 | + $("#markRate").html("'.(($markRate === '') ? 'n/a' : price($markRate, null, null, null, null, $rounding)."%").'"); |
|
| 272 | 272 | }); |
| 273 | 273 | </script> |
| 274 | 274 | '; |
@@ -122,16 +122,16 @@ discard block |
||
| 122 | 122 | |
| 123 | 123 | // Margin Rate |
| 124 | 124 | if (! empty($conf->global->DISPLAY_MARGIN_RATES)) { |
| 125 | - print '<tr><td>'.$langs->trans("MarginRate").'</td><td colspan="3">'; |
|
| 126 | - print '<span id="marginRate"></span>'; // set by jquery (see below) |
|
| 127 | - print '</td></tr>'; |
|
| 125 | + print '<tr><td>'.$langs->trans("MarginRate").'</td><td colspan="3">'; |
|
| 126 | + print '<span id="marginRate"></span>'; // set by jquery (see below) |
|
| 127 | + print '</td></tr>'; |
|
| 128 | 128 | } |
| 129 | 129 | |
| 130 | 130 | // Mark Rate |
| 131 | 131 | if (! empty($conf->global->DISPLAY_MARK_RATES)) { |
| 132 | - print '<tr><td>'.$langs->trans("MarkRate").'</td><td colspan="3">'; |
|
| 133 | - print '<span id="markRate"></span>'; // set by jquery (see below) |
|
| 134 | - print '</td></tr>'; |
|
| 132 | + print '<tr><td>'.$langs->trans("MarkRate").'</td><td colspan="3">'; |
|
| 133 | + print '<span id="markRate"></span>'; // set by jquery (see below) |
|
| 134 | + print '</td></tr>'; |
|
| 135 | 135 | } |
| 136 | 136 | |
| 137 | 137 | print "</table>"; |
@@ -168,99 +168,99 @@ discard block |
||
| 168 | 168 | $result = $db->query($sql); |
| 169 | 169 | if ($result) |
| 170 | 170 | { |
| 171 | - $num = $db->num_rows($result); |
|
| 172 | - |
|
| 173 | - print_barre_liste($langs->trans("MarginDetails"),$page,$_SERVER["PHP_SELF"],"&socid=".$object->id,$sortfield,$sortorder,'',0,0,''); |
|
| 174 | - |
|
| 175 | - $i = 0; |
|
| 176 | - print '<div class="div-table-responsive">'; // You can use div-table-responsive-no-min if you dont need reserved height for your table |
|
| 177 | - print "<table class=\"noborder\" width=\"100%\">"; |
|
| 178 | - |
|
| 179 | - print '<tr class="liste_titre">'; |
|
| 180 | - print_liste_field_titre("Invoice",$_SERVER["PHP_SELF"],"f.ref","","&socid=".$_REQUEST["socid"],'',$sortfield,$sortorder); |
|
| 181 | - print_liste_field_titre("DateInvoice",$_SERVER["PHP_SELF"],"f.datef","","&socid=".$_REQUEST["socid"],'align="center"',$sortfield,$sortorder); |
|
| 182 | - print_liste_field_titre("SoldAmount",$_SERVER["PHP_SELF"],"selling_price","","&socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder); |
|
| 183 | - print_liste_field_titre("PurchasedAmount",$_SERVER["PHP_SELF"],"buying_price","","&socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder); |
|
| 184 | - print_liste_field_titre("Margin",$_SERVER["PHP_SELF"],"marge","","&socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder); |
|
| 185 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 186 | - print_liste_field_titre("MarginRate",$_SERVER["PHP_SELF"],"","","&socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder); |
|
| 187 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 188 | - print_liste_field_titre("MarkRate",$_SERVER["PHP_SELF"],"","","&socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder); |
|
| 189 | - print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"f.paye,f.fk_statut","","&socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder); |
|
| 190 | - print "</tr>\n"; |
|
| 191 | - |
|
| 192 | - $cumul_achat = 0; |
|
| 193 | - $cumul_vente = 0; |
|
| 194 | - |
|
| 195 | - $rounding = min($conf->global->MAIN_MAX_DECIMALS_UNIT,$conf->global->MAIN_MAX_DECIMALS_TOT); |
|
| 196 | - |
|
| 197 | - if ($num > 0) |
|
| 198 | - { |
|
| 199 | - while ($i < $num /*&& $i < $conf->liste_limit*/) |
|
| 200 | - { |
|
| 201 | - $objp = $db->fetch_object($result); |
|
| 202 | - |
|
| 203 | - $marginRate = ($objp->buying_price != 0)?(100 * $objp->marge / $objp->buying_price):'' ; |
|
| 204 | - $markRate = ($objp->selling_price != 0)?(100 * $objp->marge / $objp->selling_price):'' ; |
|
| 205 | - |
|
| 206 | - $sign = ''; |
|
| 207 | - if ($objp->type == Facture::TYPE_CREDIT_NOTE){ |
|
| 208 | - $sign = '-'; |
|
| 209 | - } |
|
| 210 | - |
|
| 211 | - print '<tr class="oddeven">'; |
|
| 212 | - print '<td>'; |
|
| 213 | - $invoicestatic->id=$objp->facid; |
|
| 214 | - $invoicestatic->ref=$objp->ref; |
|
| 215 | - print $invoicestatic->getNomUrl(1); |
|
| 216 | - print "</td>\n"; |
|
| 217 | - print "<td align=\"center\">"; |
|
| 218 | - print dol_print_date($db->jdate($objp->datef),'day')."</td>"; |
|
| 219 | - print "<td align=\"right\">".price($objp->selling_price, null, null, null, null, $rounding)."</td>\n"; |
|
| 220 | - print "<td align=\"right\">".price(($objp->type == 2 ? -1 : 1) * $objp->buying_price, null, null, null, null, $rounding)."</td>\n"; |
|
| 221 | - print "<td align=\"right\">".$sign.price($objp->marge, null, null, null, null, $rounding)."</td>\n"; |
|
| 222 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 223 | - print "<td align=\"right\">".(($marginRate === '')?'n/a':$sign.price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 224 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 225 | - print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 226 | - print '<td align="right">'.$invoicestatic->LibStatut($objp->paye,$objp->statut,5).'</td>'; |
|
| 227 | - print "</tr>\n"; |
|
| 228 | - $i++; |
|
| 229 | - $cumul_vente += $objp->selling_price; |
|
| 230 | - $cumul_achat += ($objp->type == 2 ? -1 : 1) * $objp->buying_price; |
|
| 231 | - } |
|
| 232 | - } |
|
| 233 | - |
|
| 234 | - // affichage totaux marges |
|
| 235 | - |
|
| 236 | - $totalMargin = $cumul_vente - $cumul_achat; |
|
| 237 | - if ($totalMargin < 0) |
|
| 238 | - { |
|
| 239 | - $marginRate = ($cumul_achat != 0)?-1*(100 * $totalMargin / $cumul_achat):''; |
|
| 240 | - $markRate = ($cumul_vente != 0)?-1*(100 * $totalMargin / $cumul_vente):''; |
|
| 241 | - } |
|
| 242 | - else |
|
| 243 | - { |
|
| 244 | - $marginRate = ($cumul_achat != 0)?(100 * $totalMargin / $cumul_achat):''; |
|
| 245 | - $markRate = ($cumul_vente != 0)?(100 * $totalMargin / $cumul_vente):''; |
|
| 246 | - } |
|
| 247 | - |
|
| 248 | - // Total |
|
| 249 | - print '<tr class="liste_total">'; |
|
| 250 | - print '<td colspan=2>'.$langs->trans('TotalMargin')."</td>"; |
|
| 251 | - print "<td align=\"right\">".price($cumul_vente, null, null, null, null, $rounding)."</td>\n"; |
|
| 252 | - print "<td align=\"right\">".price($cumul_achat, null, null, null, null, $rounding)."</td>\n"; |
|
| 253 | - print "<td align=\"right\">".price($totalMargin, null, null, null, null, $rounding)."</td>\n"; |
|
| 254 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 255 | - print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 256 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 257 | - print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 258 | - print '<td align="right"> </td>'; |
|
| 259 | - print "</tr>\n"; |
|
| 171 | + $num = $db->num_rows($result); |
|
| 172 | + |
|
| 173 | + print_barre_liste($langs->trans("MarginDetails"),$page,$_SERVER["PHP_SELF"],"&socid=".$object->id,$sortfield,$sortorder,'',0,0,''); |
|
| 174 | + |
|
| 175 | + $i = 0; |
|
| 176 | + print '<div class="div-table-responsive">'; // You can use div-table-responsive-no-min if you dont need reserved height for your table |
|
| 177 | + print "<table class=\"noborder\" width=\"100%\">"; |
|
| 178 | + |
|
| 179 | + print '<tr class="liste_titre">'; |
|
| 180 | + print_liste_field_titre("Invoice",$_SERVER["PHP_SELF"],"f.ref","","&socid=".$_REQUEST["socid"],'',$sortfield,$sortorder); |
|
| 181 | + print_liste_field_titre("DateInvoice",$_SERVER["PHP_SELF"],"f.datef","","&socid=".$_REQUEST["socid"],'align="center"',$sortfield,$sortorder); |
|
| 182 | + print_liste_field_titre("SoldAmount",$_SERVER["PHP_SELF"],"selling_price","","&socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder); |
|
| 183 | + print_liste_field_titre("PurchasedAmount",$_SERVER["PHP_SELF"],"buying_price","","&socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder); |
|
| 184 | + print_liste_field_titre("Margin",$_SERVER["PHP_SELF"],"marge","","&socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder); |
|
| 185 | + if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 186 | + print_liste_field_titre("MarginRate",$_SERVER["PHP_SELF"],"","","&socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder); |
|
| 187 | + if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 188 | + print_liste_field_titre("MarkRate",$_SERVER["PHP_SELF"],"","","&socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder); |
|
| 189 | + print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"f.paye,f.fk_statut","","&socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder); |
|
| 190 | + print "</tr>\n"; |
|
| 191 | + |
|
| 192 | + $cumul_achat = 0; |
|
| 193 | + $cumul_vente = 0; |
|
| 194 | + |
|
| 195 | + $rounding = min($conf->global->MAIN_MAX_DECIMALS_UNIT,$conf->global->MAIN_MAX_DECIMALS_TOT); |
|
| 196 | + |
|
| 197 | + if ($num > 0) |
|
| 198 | + { |
|
| 199 | + while ($i < $num /*&& $i < $conf->liste_limit*/) |
|
| 200 | + { |
|
| 201 | + $objp = $db->fetch_object($result); |
|
| 202 | + |
|
| 203 | + $marginRate = ($objp->buying_price != 0)?(100 * $objp->marge / $objp->buying_price):'' ; |
|
| 204 | + $markRate = ($objp->selling_price != 0)?(100 * $objp->marge / $objp->selling_price):'' ; |
|
| 205 | + |
|
| 206 | + $sign = ''; |
|
| 207 | + if ($objp->type == Facture::TYPE_CREDIT_NOTE){ |
|
| 208 | + $sign = '-'; |
|
| 209 | + } |
|
| 210 | + |
|
| 211 | + print '<tr class="oddeven">'; |
|
| 212 | + print '<td>'; |
|
| 213 | + $invoicestatic->id=$objp->facid; |
|
| 214 | + $invoicestatic->ref=$objp->ref; |
|
| 215 | + print $invoicestatic->getNomUrl(1); |
|
| 216 | + print "</td>\n"; |
|
| 217 | + print "<td align=\"center\">"; |
|
| 218 | + print dol_print_date($db->jdate($objp->datef),'day')."</td>"; |
|
| 219 | + print "<td align=\"right\">".price($objp->selling_price, null, null, null, null, $rounding)."</td>\n"; |
|
| 220 | + print "<td align=\"right\">".price(($objp->type == 2 ? -1 : 1) * $objp->buying_price, null, null, null, null, $rounding)."</td>\n"; |
|
| 221 | + print "<td align=\"right\">".$sign.price($objp->marge, null, null, null, null, $rounding)."</td>\n"; |
|
| 222 | + if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 223 | + print "<td align=\"right\">".(($marginRate === '')?'n/a':$sign.price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 224 | + if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 225 | + print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 226 | + print '<td align="right">'.$invoicestatic->LibStatut($objp->paye,$objp->statut,5).'</td>'; |
|
| 227 | + print "</tr>\n"; |
|
| 228 | + $i++; |
|
| 229 | + $cumul_vente += $objp->selling_price; |
|
| 230 | + $cumul_achat += ($objp->type == 2 ? -1 : 1) * $objp->buying_price; |
|
| 231 | + } |
|
| 232 | + } |
|
| 233 | + |
|
| 234 | + // affichage totaux marges |
|
| 235 | + |
|
| 236 | + $totalMargin = $cumul_vente - $cumul_achat; |
|
| 237 | + if ($totalMargin < 0) |
|
| 238 | + { |
|
| 239 | + $marginRate = ($cumul_achat != 0)?-1*(100 * $totalMargin / $cumul_achat):''; |
|
| 240 | + $markRate = ($cumul_vente != 0)?-1*(100 * $totalMargin / $cumul_vente):''; |
|
| 241 | + } |
|
| 242 | + else |
|
| 243 | + { |
|
| 244 | + $marginRate = ($cumul_achat != 0)?(100 * $totalMargin / $cumul_achat):''; |
|
| 245 | + $markRate = ($cumul_vente != 0)?(100 * $totalMargin / $cumul_vente):''; |
|
| 246 | + } |
|
| 247 | + |
|
| 248 | + // Total |
|
| 249 | + print '<tr class="liste_total">'; |
|
| 250 | + print '<td colspan=2>'.$langs->trans('TotalMargin')."</td>"; |
|
| 251 | + print "<td align=\"right\">".price($cumul_vente, null, null, null, null, $rounding)."</td>\n"; |
|
| 252 | + print "<td align=\"right\">".price($cumul_achat, null, null, null, null, $rounding)."</td>\n"; |
|
| 253 | + print "<td align=\"right\">".price($totalMargin, null, null, null, null, $rounding)."</td>\n"; |
|
| 254 | + if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 255 | + print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 256 | + if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 257 | + print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 258 | + print '<td align="right"> </td>'; |
|
| 259 | + print "</tr>\n"; |
|
| 260 | 260 | } |
| 261 | 261 | else |
| 262 | 262 | { |
| 263 | - dol_print_error($db); |
|
| 263 | + dol_print_error($db); |
|
| 264 | 264 | } |
| 265 | 265 | print "</table>"; |
| 266 | 266 | print '</div>'; |
@@ -270,7 +270,7 @@ discard block |
||
| 270 | 270 | } |
| 271 | 271 | else |
| 272 | 272 | { |
| 273 | - dol_print_error('', 'Parameter socid not defined'); |
|
| 273 | + dol_print_error('', 'Parameter socid not defined'); |
|
| 274 | 274 | } |
| 275 | 275 | |
| 276 | 276 | |
@@ -30,7 +30,9 @@ discard block |
||
| 30 | 30 | |
| 31 | 31 | // Security check |
| 32 | 32 | $socid = GETPOST('socid','int'); |
| 33 | -if (! empty($user->societe_id)) $socid=$user->societe_id; |
|
| 33 | +if (! empty($user->societe_id)) { |
|
| 34 | + $socid=$user->societe_id; |
|
| 35 | +} |
|
| 34 | 36 | $result = restrictedArea($user, 'societe','',''); |
| 35 | 37 | |
| 36 | 38 | |
@@ -43,11 +45,17 @@ discard block |
||
| 43 | 45 | $offset = $conf->liste_limit * $page; |
| 44 | 46 | $pageprev = $page - 1; |
| 45 | 47 | $pagenext = $page + 1; |
| 46 | -if (! $sortorder) $sortorder="DESC"; |
|
| 47 | -if (! $sortfield) $sortfield="f.datef"; |
|
| 48 | +if (! $sortorder) { |
|
| 49 | + $sortorder="DESC"; |
|
| 50 | +} |
|
| 51 | +if (! $sortfield) { |
|
| 52 | + $sortfield="f.datef"; |
|
| 53 | +} |
|
| 48 | 54 | |
| 49 | 55 | $object = new Societe($db); |
| 50 | -if ($socid > 0) $object->fetch($socid); |
|
| 56 | +if ($socid > 0) { |
|
| 57 | + $object->fetch($socid); |
|
| 58 | +} |
|
| 51 | 59 | |
| 52 | 60 | // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context |
| 53 | 61 | $hookmanager->initHooks(array('thirdpartymargins','globalcard')); |
@@ -59,7 +67,9 @@ discard block |
||
| 59 | 67 | |
| 60 | 68 | $parameters=array('id'=>$socid); |
| 61 | 69 | $reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks |
| 62 | -if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); |
|
| 70 | +if ($reshook < 0) { |
|
| 71 | + setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); |
|
| 72 | +} |
|
| 63 | 73 | |
| 64 | 74 | |
| 65 | 75 | |
@@ -71,7 +81,9 @@ discard block |
||
| 71 | 81 | $form = new Form($db); |
| 72 | 82 | |
| 73 | 83 | $title=$langs->trans("ThirdParty").' - '.$langs->trans("Margins"); |
| 74 | -if (! empty($conf->global->MAIN_HTML_TITLE) && preg_match('/thirdpartynameonly/',$conf->global->MAIN_HTML_TITLE) && $object->name) $title=$object->name.' - '.$langs->trans("Files"); |
|
| 84 | +if (! empty($conf->global->MAIN_HTML_TITLE) && preg_match('/thirdpartynameonly/',$conf->global->MAIN_HTML_TITLE) && $object->name) { |
|
| 85 | + $title=$object->name.' - '.$langs->trans("Files"); |
|
| 86 | +} |
|
| 75 | 87 | $help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; |
| 76 | 88 | llxHeader('',$title,$help_url); |
| 77 | 89 | |
@@ -102,7 +114,9 @@ discard block |
||
| 102 | 114 | print '<tr><td class="titlefield">'; |
| 103 | 115 | print $langs->trans('CustomerCode').'</td><td colspan="3">'; |
| 104 | 116 | print $object->code_client; |
| 105 | - if ($object->check_codeclient() <> 0) print ' <font class="error">('.$langs->trans("WrongCustomerCode").')</font>'; |
|
| 117 | + if ($object->check_codeclient() <> 0) { |
|
| 118 | + print ' <font class="error">('.$langs->trans("WrongCustomerCode").')</font>'; |
|
| 119 | + } |
|
| 106 | 120 | print '</td></tr>'; |
| 107 | 121 | } |
| 108 | 122 | |
@@ -111,7 +125,9 @@ discard block |
||
| 111 | 125 | print '<tr><td class="titlefield">'; |
| 112 | 126 | print $langs->trans('SupplierCode').'</td><td colspan="3">'; |
| 113 | 127 | print $object->code_fournisseur; |
| 114 | - if ($object->check_codefournisseur() <> 0) print ' <font class="error">('.$langs->trans("WrongSupplierCode").')</font>'; |
|
| 128 | + if ($object->check_codefournisseur() <> 0) { |
|
| 129 | + print ' <font class="error">('.$langs->trans("WrongSupplierCode").')</font>'; |
|
| 130 | + } |
|
| 115 | 131 | print '</td></tr>'; |
| 116 | 132 | } |
| 117 | 133 | |
@@ -158,7 +174,9 @@ discard block |
||
| 158 | 174 | $sql.= " AND d.fk_facture = f.rowid"; |
| 159 | 175 | $sql.= " AND f.fk_soc = $socid"; |
| 160 | 176 | $sql.= " AND d.buy_price_ht IS NOT NULL"; |
| 161 | - if (isset($conf->global->ForceBuyingPriceIfNull) && $conf->global->ForceBuyingPriceIfNull == 1) $sql .= " AND d.buy_price_ht <> 0"; |
|
| 177 | + if (isset($conf->global->ForceBuyingPriceIfNull) && $conf->global->ForceBuyingPriceIfNull == 1) { |
|
| 178 | + $sql .= " AND d.buy_price_ht <> 0"; |
|
| 179 | + } |
|
| 162 | 180 | $sql.= " GROUP BY s.nom, s.rowid, s.code_client, f.rowid, f.ref, f.total, f.datef, f.paye, f.fk_statut, f.type"; |
| 163 | 181 | $sql.= $db->order($sortfield,$sortorder); |
| 164 | 182 | // TODO: calculate total to display then restore pagination |
@@ -182,10 +200,12 @@ discard block |
||
| 182 | 200 | print_liste_field_titre("SoldAmount",$_SERVER["PHP_SELF"],"selling_price","","&socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder); |
| 183 | 201 | print_liste_field_titre("PurchasedAmount",$_SERVER["PHP_SELF"],"buying_price","","&socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder); |
| 184 | 202 | print_liste_field_titre("Margin",$_SERVER["PHP_SELF"],"marge","","&socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder); |
| 185 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 186 | - print_liste_field_titre("MarginRate",$_SERVER["PHP_SELF"],"","","&socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder); |
|
| 187 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 188 | - print_liste_field_titre("MarkRate",$_SERVER["PHP_SELF"],"","","&socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder); |
|
| 203 | + if (! empty($conf->global->DISPLAY_MARGIN_RATES)) { |
|
| 204 | + print_liste_field_titre("MarginRate",$_SERVER["PHP_SELF"],"","","&socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder); |
|
| 205 | + } |
|
| 206 | + if (! empty($conf->global->DISPLAY_MARK_RATES)) { |
|
| 207 | + print_liste_field_titre("MarkRate",$_SERVER["PHP_SELF"],"","","&socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder); |
|
| 208 | + } |
|
| 189 | 209 | print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"f.paye,f.fk_statut","","&socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder); |
| 190 | 210 | print "</tr>\n"; |
| 191 | 211 | |
@@ -219,10 +239,12 @@ discard block |
||
| 219 | 239 | print "<td align=\"right\">".price($objp->selling_price, null, null, null, null, $rounding)."</td>\n"; |
| 220 | 240 | print "<td align=\"right\">".price(($objp->type == 2 ? -1 : 1) * $objp->buying_price, null, null, null, null, $rounding)."</td>\n"; |
| 221 | 241 | print "<td align=\"right\">".$sign.price($objp->marge, null, null, null, null, $rounding)."</td>\n"; |
| 222 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 223 | - print "<td align=\"right\">".(($marginRate === '')?'n/a':$sign.price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 224 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 225 | - print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 242 | + if (! empty($conf->global->DISPLAY_MARGIN_RATES)) { |
|
| 243 | + print "<td align=\"right\">".(($marginRate === '')?'n/a':$sign.price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 244 | + } |
|
| 245 | + if (! empty($conf->global->DISPLAY_MARK_RATES)) { |
|
| 246 | + print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 247 | + } |
|
| 226 | 248 | print '<td align="right">'.$invoicestatic->LibStatut($objp->paye,$objp->statut,5).'</td>'; |
| 227 | 249 | print "</tr>\n"; |
| 228 | 250 | $i++; |
@@ -238,8 +260,7 @@ discard block |
||
| 238 | 260 | { |
| 239 | 261 | $marginRate = ($cumul_achat != 0)?-1*(100 * $totalMargin / $cumul_achat):''; |
| 240 | 262 | $markRate = ($cumul_vente != 0)?-1*(100 * $totalMargin / $cumul_vente):''; |
| 241 | - } |
|
| 242 | - else |
|
| 263 | + } else |
|
| 243 | 264 | { |
| 244 | 265 | $marginRate = ($cumul_achat != 0)?(100 * $totalMargin / $cumul_achat):''; |
| 245 | 266 | $markRate = ($cumul_vente != 0)?(100 * $totalMargin / $cumul_vente):''; |
@@ -251,14 +272,15 @@ discard block |
||
| 251 | 272 | print "<td align=\"right\">".price($cumul_vente, null, null, null, null, $rounding)."</td>\n"; |
| 252 | 273 | print "<td align=\"right\">".price($cumul_achat, null, null, null, null, $rounding)."</td>\n"; |
| 253 | 274 | print "<td align=\"right\">".price($totalMargin, null, null, null, null, $rounding)."</td>\n"; |
| 254 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 255 | - print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 256 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 257 | - print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 275 | + if (! empty($conf->global->DISPLAY_MARGIN_RATES)) { |
|
| 276 | + print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 277 | + } |
|
| 278 | + if (! empty($conf->global->DISPLAY_MARK_RATES)) { |
|
| 279 | + print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 280 | + } |
|
| 258 | 281 | print '<td align="right"> </td>'; |
| 259 | 282 | print "</tr>\n"; |
| 260 | - } |
|
| 261 | - else |
|
| 283 | + } else |
|
| 262 | 284 | { |
| 263 | 285 | dol_print_error($db); |
| 264 | 286 | } |
@@ -267,8 +289,7 @@ discard block |
||
| 267 | 289 | |
| 268 | 290 | print '<br>'; |
| 269 | 291 | $db->free($result); |
| 270 | -} |
|
| 271 | -else |
|
| 292 | +} else |
|
| 272 | 293 | { |
| 273 | 294 | dol_print_error('', 'Parameter socid not defined'); |
| 274 | 295 | } |
@@ -25,7 +25,7 @@ discard block |
||
| 25 | 25 | |
| 26 | 26 | // Copyright (C) 2018 Alxarafe/Alixar <[email protected]> |
| 27 | 27 | defined('BASE_PATH') or die('Single entry point through the index.php of the main folder'); |
| 28 | -require DOL_BASE_PATH . '/main.inc.php'; |
|
| 28 | +require DOL_BASE_PATH.'/main.inc.php'; |
|
| 29 | 29 | require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; |
| 30 | 30 | require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; |
| 31 | 31 | require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; |
@@ -33,36 +33,36 @@ discard block |
||
| 33 | 33 | $langs->loadLangs(array("companies", "bills", "products", "margins")); |
| 34 | 34 | |
| 35 | 35 | // Security check |
| 36 | -$socid = GETPOST('socid','int'); |
|
| 37 | -if (! empty($user->societe_id)) $socid=$user->societe_id; |
|
| 38 | -$result = restrictedArea($user, 'societe','',''); |
|
| 36 | +$socid = GETPOST('socid', 'int'); |
|
| 37 | +if (!empty($user->societe_id)) $socid = $user->societe_id; |
|
| 38 | +$result = restrictedArea($user, 'societe', '', ''); |
|
| 39 | 39 | |
| 40 | 40 | |
| 41 | 41 | $mesg = ''; |
| 42 | 42 | |
| 43 | -$sortfield = GETPOST("sortfield",'alpha'); |
|
| 44 | -$sortorder = GETPOST("sortorder",'alpha'); |
|
| 45 | -$page = GETPOST("page",'int'); |
|
| 43 | +$sortfield = GETPOST("sortfield", 'alpha'); |
|
| 44 | +$sortorder = GETPOST("sortorder", 'alpha'); |
|
| 45 | +$page = GETPOST("page", 'int'); |
|
| 46 | 46 | if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 |
| 47 | 47 | $offset = $conf->liste_limit * $page; |
| 48 | 48 | $pageprev = $page - 1; |
| 49 | 49 | $pagenext = $page + 1; |
| 50 | -if (! $sortorder) $sortorder="DESC"; |
|
| 51 | -if (! $sortfield) $sortfield="f.datef"; |
|
| 50 | +if (!$sortorder) $sortorder = "DESC"; |
|
| 51 | +if (!$sortfield) $sortfield = "f.datef"; |
|
| 52 | 52 | |
| 53 | 53 | $object = new Societe($db); |
| 54 | 54 | if ($socid > 0) $object->fetch($socid); |
| 55 | 55 | |
| 56 | 56 | // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context |
| 57 | -$hookmanager->initHooks(array('thirdpartymargins','globalcard')); |
|
| 57 | +$hookmanager->initHooks(array('thirdpartymargins', 'globalcard')); |
|
| 58 | 58 | |
| 59 | 59 | |
| 60 | 60 | /* |
| 61 | 61 | * Actions |
| 62 | 62 | */ |
| 63 | 63 | |
| 64 | -$parameters=array('id'=>$socid); |
|
| 65 | -$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks |
|
| 64 | +$parameters = array('id'=>$socid); |
|
| 65 | +$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks |
|
| 66 | 66 | if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); |
| 67 | 67 | |
| 68 | 68 | |
@@ -71,13 +71,13 @@ discard block |
||
| 71 | 71 | * View |
| 72 | 72 | */ |
| 73 | 73 | |
| 74 | -$invoicestatic=new Facture($db); |
|
| 74 | +$invoicestatic = new Facture($db); |
|
| 75 | 75 | $form = new Form($db); |
| 76 | 76 | |
| 77 | -$title=$langs->trans("ThirdParty").' - '.$langs->trans("Margins"); |
|
| 78 | -if (! empty($conf->global->MAIN_HTML_TITLE) && preg_match('/thirdpartynameonly/',$conf->global->MAIN_HTML_TITLE) && $object->name) $title=$object->name.' - '.$langs->trans("Files"); |
|
| 79 | -$help_url='EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; |
|
| 80 | -llxHeader('',$title,$help_url); |
|
| 77 | +$title = $langs->trans("ThirdParty").' - '.$langs->trans("Margins"); |
|
| 78 | +if (!empty($conf->global->MAIN_HTML_TITLE) && preg_match('/thirdpartynameonly/', $conf->global->MAIN_HTML_TITLE) && $object->name) $title = $object->name.' - '.$langs->trans("Files"); |
|
| 79 | +$help_url = 'EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; |
|
| 80 | +llxHeader('', $title, $help_url); |
|
| 81 | 81 | |
| 82 | 82 | if ($socid > 0) |
| 83 | 83 | { |
@@ -93,9 +93,9 @@ discard block |
||
| 93 | 93 | dol_fiche_head($head, 'margin', $langs->trans("ThirdParty"), -1, 'company'); |
| 94 | 94 | |
| 95 | 95 | // $linkback = '<a href="'.DOL_URL_ROOT.'/societe/list.php?restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>'; |
| 96 | - $linkback = '<a href="' . BASE_URI . '?controller=societe&method=list&restore_lastsearch_values=1">' . $langs->trans("BackToList") . '</a>'; |
|
| 96 | + $linkback = '<a href="'.BASE_URI.'?controller=societe&method=list&restore_lastsearch_values=1">'.$langs->trans("BackToList").'</a>'; |
|
| 97 | 97 | |
| 98 | - dol_banner_tab($object, 'socid', $linkback, ($user->societe_id?0:1), 'rowid', 'nom'); |
|
| 98 | + dol_banner_tab($object, 'socid', $linkback, ($user->societe_id ? 0 : 1), 'rowid', 'nom'); |
|
| 99 | 99 | |
| 100 | 100 | print '<div class="fichecenter">'; |
| 101 | 101 | |
@@ -111,7 +111,7 @@ discard block |
||
| 111 | 111 | print '</td></tr>'; |
| 112 | 112 | } |
| 113 | 113 | |
| 114 | - if (! empty($conf->fournisseur->enabled) && $object->fournisseur && ! empty($user->rights->fournisseur->lire)) |
|
| 114 | + if (!empty($conf->fournisseur->enabled) && $object->fournisseur && !empty($user->rights->fournisseur->lire)) |
|
| 115 | 115 | { |
| 116 | 116 | print '<tr><td class="titlefield">'; |
| 117 | 117 | print $langs->trans('SupplierCode').'</td><td colspan="3">'; |
@@ -126,14 +126,14 @@ discard block |
||
| 126 | 126 | print '</td></tr>'; |
| 127 | 127 | |
| 128 | 128 | // Margin Rate |
| 129 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) { |
|
| 129 | + if (!empty($conf->global->DISPLAY_MARGIN_RATES)) { |
|
| 130 | 130 | print '<tr><td>'.$langs->trans("MarginRate").'</td><td colspan="3">'; |
| 131 | 131 | print '<span id="marginRate"></span>'; // set by jquery (see below) |
| 132 | 132 | print '</td></tr>'; |
| 133 | 133 | } |
| 134 | 134 | |
| 135 | 135 | // Mark Rate |
| 136 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) { |
|
| 136 | + if (!empty($conf->global->DISPLAY_MARK_RATES)) { |
|
| 137 | 137 | print '<tr><td>'.$langs->trans("MarkRate").'</td><td colspan="3">'; |
| 138 | 138 | print '<span id="markRate"></span>'; // set by jquery (see below) |
| 139 | 139 | print '</td></tr>'; |
@@ -149,23 +149,23 @@ discard block |
||
| 149 | 149 | print '<br>'; |
| 150 | 150 | |
| 151 | 151 | $sql = "SELECT distinct s.nom, s.rowid as socid, s.code_client,"; |
| 152 | - $sql.= " f.rowid as facid, f.ref, f.total as total_ht,"; |
|
| 153 | - $sql.= " f.datef, f.paye, f.fk_statut as statut, f.type,"; |
|
| 154 | - $sql.= " sum(d.total_ht) as selling_price,"; // may be negative or positive |
|
| 155 | - $sql.= " sum(d.qty * d.buy_price_ht) as buying_price,"; // always positive |
|
| 156 | - $sql.= " sum(abs(d.total_ht) - (d.buy_price_ht * d.qty)) as marge"; // always positive |
|
| 157 | - $sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; |
|
| 158 | - $sql.= ", ".MAIN_DB_PREFIX."facture as f"; |
|
| 159 | - $sql.= ", ".MAIN_DB_PREFIX."facturedet as d"; |
|
| 160 | - $sql.= " WHERE f.fk_soc = s.rowid"; |
|
| 161 | - $sql.= " AND f.fk_statut > 0"; |
|
| 162 | - $sql.= " AND f.entity = ".$conf->entity; |
|
| 163 | - $sql.= " AND d.fk_facture = f.rowid"; |
|
| 164 | - $sql.= " AND f.fk_soc = $socid"; |
|
| 165 | - $sql.= " AND d.buy_price_ht IS NOT NULL"; |
|
| 152 | + $sql .= " f.rowid as facid, f.ref, f.total as total_ht,"; |
|
| 153 | + $sql .= " f.datef, f.paye, f.fk_statut as statut, f.type,"; |
|
| 154 | + $sql .= " sum(d.total_ht) as selling_price,"; // may be negative or positive |
|
| 155 | + $sql .= " sum(d.qty * d.buy_price_ht) as buying_price,"; // always positive |
|
| 156 | + $sql .= " sum(abs(d.total_ht) - (d.buy_price_ht * d.qty)) as marge"; // always positive |
|
| 157 | + $sql .= " FROM ".MAIN_DB_PREFIX."societe as s"; |
|
| 158 | + $sql .= ", ".MAIN_DB_PREFIX."facture as f"; |
|
| 159 | + $sql .= ", ".MAIN_DB_PREFIX."facturedet as d"; |
|
| 160 | + $sql .= " WHERE f.fk_soc = s.rowid"; |
|
| 161 | + $sql .= " AND f.fk_statut > 0"; |
|
| 162 | + $sql .= " AND f.entity = ".$conf->entity; |
|
| 163 | + $sql .= " AND d.fk_facture = f.rowid"; |
|
| 164 | + $sql .= " AND f.fk_soc = $socid"; |
|
| 165 | + $sql .= " AND d.buy_price_ht IS NOT NULL"; |
|
| 166 | 166 | if (isset($conf->global->ForceBuyingPriceIfNull) && $conf->global->ForceBuyingPriceIfNull == 1) $sql .= " AND d.buy_price_ht <> 0"; |
| 167 | - $sql.= " GROUP BY s.nom, s.rowid, s.code_client, f.rowid, f.ref, f.total, f.datef, f.paye, f.fk_statut, f.type"; |
|
| 168 | - $sql.= $db->order($sortfield,$sortorder); |
|
| 167 | + $sql .= " GROUP BY s.nom, s.rowid, s.code_client, f.rowid, f.ref, f.total, f.datef, f.paye, f.fk_statut, f.type"; |
|
| 168 | + $sql .= $db->order($sortfield, $sortorder); |
|
| 169 | 169 | // TODO: calculate total to display then restore pagination |
| 170 | 170 | //$sql.= $db->plimit($conf->liste_limit +1, $offset); |
| 171 | 171 | |
@@ -175,29 +175,29 @@ discard block |
||
| 175 | 175 | { |
| 176 | 176 | $num = $db->num_rows($result); |
| 177 | 177 | |
| 178 | - print_barre_liste($langs->trans("MarginDetails"),$page,$_SERVER["PHP_SELF"],"&socid=".$object->id,$sortfield,$sortorder,'',0,0,''); |
|
| 178 | + print_barre_liste($langs->trans("MarginDetails"), $page, $_SERVER["PHP_SELF"], "&socid=".$object->id, $sortfield, $sortorder, '', 0, 0, ''); |
|
| 179 | 179 | |
| 180 | 180 | $i = 0; |
| 181 | - print '<div class="div-table-responsive">'; // You can use div-table-responsive-no-min if you dont need reserved height for your table |
|
| 181 | + print '<div class="div-table-responsive">'; // You can use div-table-responsive-no-min if you dont need reserved height for your table |
|
| 182 | 182 | print "<table class=\"noborder\" width=\"100%\">"; |
| 183 | 183 | |
| 184 | 184 | print '<tr class="liste_titre">'; |
| 185 | - print_liste_field_titre("Invoice",$_SERVER["PHP_SELF"],"f.ref","","&socid=".$_REQUEST["socid"],'',$sortfield,$sortorder); |
|
| 186 | - print_liste_field_titre("DateInvoice",$_SERVER["PHP_SELF"],"f.datef","","&socid=".$_REQUEST["socid"],'align="center"',$sortfield,$sortorder); |
|
| 187 | - print_liste_field_titre("SoldAmount",$_SERVER["PHP_SELF"],"selling_price","","&socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder); |
|
| 188 | - print_liste_field_titre("PurchasedAmount",$_SERVER["PHP_SELF"],"buying_price","","&socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder); |
|
| 189 | - print_liste_field_titre("Margin",$_SERVER["PHP_SELF"],"marge","","&socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder); |
|
| 190 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 191 | - print_liste_field_titre("MarginRate",$_SERVER["PHP_SELF"],"","","&socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder); |
|
| 192 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 193 | - print_liste_field_titre("MarkRate",$_SERVER["PHP_SELF"],"","","&socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder); |
|
| 194 | - print_liste_field_titre("Status",$_SERVER["PHP_SELF"],"f.paye,f.fk_statut","","&socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder); |
|
| 185 | + print_liste_field_titre("Invoice", $_SERVER["PHP_SELF"], "f.ref", "", "&socid=".$_REQUEST["socid"], '', $sortfield, $sortorder); |
|
| 186 | + print_liste_field_titre("DateInvoice", $_SERVER["PHP_SELF"], "f.datef", "", "&socid=".$_REQUEST["socid"], 'align="center"', $sortfield, $sortorder); |
|
| 187 | + print_liste_field_titre("SoldAmount", $_SERVER["PHP_SELF"], "selling_price", "", "&socid=".$_REQUEST["socid"], 'align="right"', $sortfield, $sortorder); |
|
| 188 | + print_liste_field_titre("PurchasedAmount", $_SERVER["PHP_SELF"], "buying_price", "", "&socid=".$_REQUEST["socid"], 'align="right"', $sortfield, $sortorder); |
|
| 189 | + print_liste_field_titre("Margin", $_SERVER["PHP_SELF"], "marge", "", "&socid=".$_REQUEST["socid"], 'align="right"', $sortfield, $sortorder); |
|
| 190 | + if (!empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 191 | + print_liste_field_titre("MarginRate", $_SERVER["PHP_SELF"], "", "", "&socid=".$_REQUEST["socid"], 'align="right"', $sortfield, $sortorder); |
|
| 192 | + if (!empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 193 | + print_liste_field_titre("MarkRate", $_SERVER["PHP_SELF"], "", "", "&socid=".$_REQUEST["socid"], 'align="right"', $sortfield, $sortorder); |
|
| 194 | + print_liste_field_titre("Status", $_SERVER["PHP_SELF"], "f.paye,f.fk_statut", "", "&socid=".$_REQUEST["socid"], 'align="right"', $sortfield, $sortorder); |
|
| 195 | 195 | print "</tr>\n"; |
| 196 | 196 | |
| 197 | 197 | $cumul_achat = 0; |
| 198 | 198 | $cumul_vente = 0; |
| 199 | 199 | |
| 200 | - $rounding = min($conf->global->MAIN_MAX_DECIMALS_UNIT,$conf->global->MAIN_MAX_DECIMALS_TOT); |
|
| 200 | + $rounding = min($conf->global->MAIN_MAX_DECIMALS_UNIT, $conf->global->MAIN_MAX_DECIMALS_TOT); |
|
| 201 | 201 | |
| 202 | 202 | if ($num > 0) |
| 203 | 203 | { |
@@ -205,30 +205,30 @@ discard block |
||
| 205 | 205 | { |
| 206 | 206 | $objp = $db->fetch_object($result); |
| 207 | 207 | |
| 208 | - $marginRate = ($objp->buying_price != 0)?(100 * $objp->marge / $objp->buying_price):'' ; |
|
| 209 | - $markRate = ($objp->selling_price != 0)?(100 * $objp->marge / $objp->selling_price):'' ; |
|
| 208 | + $marginRate = ($objp->buying_price != 0) ? (100 * $objp->marge / $objp->buying_price) : ''; |
|
| 209 | + $markRate = ($objp->selling_price != 0) ? (100 * $objp->marge / $objp->selling_price) : ''; |
|
| 210 | 210 | |
| 211 | 211 | $sign = ''; |
| 212 | - if ($objp->type == Facture::TYPE_CREDIT_NOTE){ |
|
| 212 | + if ($objp->type == Facture::TYPE_CREDIT_NOTE) { |
|
| 213 | 213 | $sign = '-'; |
| 214 | 214 | } |
| 215 | 215 | |
| 216 | 216 | print '<tr class="oddeven">'; |
| 217 | 217 | print '<td>'; |
| 218 | - $invoicestatic->id=$objp->facid; |
|
| 219 | - $invoicestatic->ref=$objp->ref; |
|
| 218 | + $invoicestatic->id = $objp->facid; |
|
| 219 | + $invoicestatic->ref = $objp->ref; |
|
| 220 | 220 | print $invoicestatic->getNomUrl(1); |
| 221 | 221 | print "</td>\n"; |
| 222 | 222 | print "<td align=\"center\">"; |
| 223 | - print dol_print_date($db->jdate($objp->datef),'day')."</td>"; |
|
| 223 | + print dol_print_date($db->jdate($objp->datef), 'day')."</td>"; |
|
| 224 | 224 | print "<td align=\"right\">".price($objp->selling_price, null, null, null, null, $rounding)."</td>\n"; |
| 225 | 225 | print "<td align=\"right\">".price(($objp->type == 2 ? -1 : 1) * $objp->buying_price, null, null, null, null, $rounding)."</td>\n"; |
| 226 | 226 | print "<td align=\"right\">".$sign.price($objp->marge, null, null, null, null, $rounding)."</td>\n"; |
| 227 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 228 | - print "<td align=\"right\">".(($marginRate === '')?'n/a':$sign.price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 229 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 230 | - print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 231 | - print '<td align="right">'.$invoicestatic->LibStatut($objp->paye,$objp->statut,5).'</td>'; |
|
| 227 | + if (!empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 228 | + print "<td align=\"right\">".(($marginRate === '') ? 'n/a' : $sign.price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 229 | + if (!empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 230 | + print "<td align=\"right\">".(($markRate === '') ? 'n/a' : price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 231 | + print '<td align="right">'.$invoicestatic->LibStatut($objp->paye, $objp->statut, 5).'</td>'; |
|
| 232 | 232 | print "</tr>\n"; |
| 233 | 233 | $i++; |
| 234 | 234 | $cumul_vente += $objp->selling_price; |
@@ -241,13 +241,13 @@ discard block |
||
| 241 | 241 | $totalMargin = $cumul_vente - $cumul_achat; |
| 242 | 242 | if ($totalMargin < 0) |
| 243 | 243 | { |
| 244 | - $marginRate = ($cumul_achat != 0)?-1*(100 * $totalMargin / $cumul_achat):''; |
|
| 245 | - $markRate = ($cumul_vente != 0)?-1*(100 * $totalMargin / $cumul_vente):''; |
|
| 244 | + $marginRate = ($cumul_achat != 0) ?-1 * (100 * $totalMargin / $cumul_achat) : ''; |
|
| 245 | + $markRate = ($cumul_vente != 0) ?-1 * (100 * $totalMargin / $cumul_vente) : ''; |
|
| 246 | 246 | } |
| 247 | 247 | else |
| 248 | 248 | { |
| 249 | - $marginRate = ($cumul_achat != 0)?(100 * $totalMargin / $cumul_achat):''; |
|
| 250 | - $markRate = ($cumul_vente != 0)?(100 * $totalMargin / $cumul_vente):''; |
|
| 249 | + $marginRate = ($cumul_achat != 0) ? (100 * $totalMargin / $cumul_achat) : ''; |
|
| 250 | + $markRate = ($cumul_vente != 0) ? (100 * $totalMargin / $cumul_vente) : ''; |
|
| 251 | 251 | } |
| 252 | 252 | |
| 253 | 253 | // Total |
@@ -256,10 +256,10 @@ discard block |
||
| 256 | 256 | print "<td align=\"right\">".price($cumul_vente, null, null, null, null, $rounding)."</td>\n"; |
| 257 | 257 | print "<td align=\"right\">".price($cumul_achat, null, null, null, null, $rounding)."</td>\n"; |
| 258 | 258 | print "<td align=\"right\">".price($totalMargin, null, null, null, null, $rounding)."</td>\n"; |
| 259 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 260 | - print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 261 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 262 | - print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 259 | + if (!empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 260 | + print "<td align=\"right\">".(($marginRate === '') ? 'n/a' : price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 261 | + if (!empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 262 | + print "<td align=\"right\">".(($markRate === '') ? 'n/a' : price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 263 | 263 | print '<td align="right"> </td>'; |
| 264 | 264 | print "</tr>\n"; |
| 265 | 265 | } |
@@ -283,8 +283,8 @@ discard block |
||
| 283 | 283 | <script type="text/javascript"> |
| 284 | 284 | $(document).ready(function() { |
| 285 | 285 | $("#totalMargin").html("'. price($totalMargin, null, null, null, null, $rounding).'"); |
| 286 | - $("#marginRate").html("'.(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%").'"); |
|
| 287 | - $("#markRate").html("'.(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%").'"); |
|
| 286 | + $("#marginRate").html("'.(($marginRate === '') ? 'n/a' : price($marginRate, null, null, null, null, $rounding)."%").'"); |
|
| 287 | + $("#markRate").html("'.(($markRate === '') ? 'n/a' : price($markRate, null, null, null, null, $rounding)."%").'"); |
|
| 288 | 288 | }); |
| 289 | 289 | </script> |
| 290 | 290 | '; |
@@ -71,7 +71,7 @@ discard block |
||
| 71 | 71 | { |
| 72 | 72 | if (dolibarr_set_const($db, 'MARGIN_METHODE_FOR_DISCOUNT', $_POST['MARGIN_METHODE_FOR_DISCOUNT'], 'chaine', 0, '', $conf->entity) > 0) |
| 73 | 73 | { |
| 74 | - setEventMessages($langs->trans("RecordModifiedSuccessfully"), null, 'mesgs'); |
|
| 74 | + setEventMessages($langs->trans("RecordModifiedSuccessfully"), null, 'mesgs'); |
|
| 75 | 75 | } |
| 76 | 76 | else |
| 77 | 77 | { |
@@ -83,7 +83,7 @@ discard block |
||
| 83 | 83 | { |
| 84 | 84 | if (dolibarr_set_const($db, 'MARGIN_TYPE', $_POST['MARGIN_TYPE'], 'chaine', 0, '', $conf->entity) > 0) |
| 85 | 85 | { |
| 86 | - setEventMessages($langs->trans("RecordModifiedSuccessfully"), null, 'mesgs'); |
|
| 86 | + setEventMessages($langs->trans("RecordModifiedSuccessfully"), null, 'mesgs'); |
|
| 87 | 87 | } |
| 88 | 88 | else |
| 89 | 89 | { |
@@ -95,7 +95,7 @@ discard block |
||
| 95 | 95 | { |
| 96 | 96 | if (dolibarr_set_const($db, 'AGENT_CONTACT_TYPE', $_POST['AGENT_CONTACT_TYPE'], 'chaine', 0, '', $conf->entity) > 0) |
| 97 | 97 | { |
| 98 | - setEventMessages($langs->trans("RecordModifiedSuccessfully"), null, 'mesgs'); |
|
| 98 | + setEventMessages($langs->trans("RecordModifiedSuccessfully"), null, 'mesgs'); |
|
| 99 | 99 | } |
| 100 | 100 | else |
| 101 | 101 | { |
@@ -137,7 +137,7 @@ discard block |
||
| 137 | 137 | print '<td>'; |
| 138 | 138 | print ' <input type="radio" name="MARGIN_TYPE" value="1" '; |
| 139 | 139 | if (isset($conf->global->MARGIN_TYPE) && $conf->global->MARGIN_TYPE == '1') |
| 140 | - print 'checked '; |
|
| 140 | + print 'checked '; |
|
| 141 | 141 | print '/> '; |
| 142 | 142 | print $langs->trans('MargeType1'); |
| 143 | 143 | print '<br>'; |
@@ -165,18 +165,18 @@ discard block |
||
| 165 | 165 | print '<td colspan="2" align="center">'; |
| 166 | 166 | if (! empty($conf->use_javascript_ajax)) |
| 167 | 167 | { |
| 168 | - print ajax_constantonoff('DISPLAY_MARGIN_RATES'); |
|
| 168 | + print ajax_constantonoff('DISPLAY_MARGIN_RATES'); |
|
| 169 | 169 | } |
| 170 | 170 | else |
| 171 | 171 | { |
| 172 | - if (empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 173 | - { |
|
| 174 | - print '<a href="'.$_SERVER['PHP_SELF'].'?action=set_DISPLAY_MARGIN_RATES">'.img_picto($langs->trans("Disabled"),'off').'</a>'; |
|
| 175 | - } |
|
| 176 | - else |
|
| 177 | - { |
|
| 178 | - print '<a href="'.$_SERVER['PHP_SELF'].'?action=del_DISPLAY_MARGIN_RATES">'.img_picto($langs->trans("Enabled"),'on').'</a>'; |
|
| 179 | - } |
|
| 172 | + if (empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 173 | + { |
|
| 174 | + print '<a href="'.$_SERVER['PHP_SELF'].'?action=set_DISPLAY_MARGIN_RATES">'.img_picto($langs->trans("Disabled"),'off').'</a>'; |
|
| 175 | + } |
|
| 176 | + else |
|
| 177 | + { |
|
| 178 | + print '<a href="'.$_SERVER['PHP_SELF'].'?action=del_DISPLAY_MARGIN_RATES">'.img_picto($langs->trans("Enabled"),'on').'</a>'; |
|
| 179 | + } |
|
| 180 | 180 | } |
| 181 | 181 | print '</td>'; |
| 182 | 182 | print '<td>'.$langs->trans('MarginRate').' = '.$langs->trans('Margin').' / '.$langs->trans('BuyingPrice').'</td>'; |
@@ -188,18 +188,18 @@ discard block |
||
| 188 | 188 | print '<td colspan="2" align="center">'; |
| 189 | 189 | if (! empty($conf->use_javascript_ajax)) |
| 190 | 190 | { |
| 191 | - print ajax_constantonoff('DISPLAY_MARK_RATES'); |
|
| 191 | + print ajax_constantonoff('DISPLAY_MARK_RATES'); |
|
| 192 | 192 | } |
| 193 | 193 | else |
| 194 | 194 | { |
| 195 | - if (empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 196 | - { |
|
| 197 | - print '<a href="'.$_SERVER['PHP_SELF'].'?action=set_DISPLAY_MARK_RATES">'.img_picto($langs->trans("Disabled"),'off').'</a>'; |
|
| 198 | - } |
|
| 199 | - else |
|
| 200 | - { |
|
| 201 | - print '<a href="'.$_SERVER['PHP_SELF'].'?action=del_DISPLAY_MARK_RATES">'.img_picto($langs->trans("Enabled"),'on').'</a>'; |
|
| 202 | - } |
|
| 195 | + if (empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 196 | + { |
|
| 197 | + print '<a href="'.$_SERVER['PHP_SELF'].'?action=set_DISPLAY_MARK_RATES">'.img_picto($langs->trans("Disabled"),'off').'</a>'; |
|
| 198 | + } |
|
| 199 | + else |
|
| 200 | + { |
|
| 201 | + print '<a href="'.$_SERVER['PHP_SELF'].'?action=del_DISPLAY_MARK_RATES">'.img_picto($langs->trans("Enabled"),'on').'</a>'; |
|
| 202 | + } |
|
| 203 | 203 | } |
| 204 | 204 | print '</td>'; |
| 205 | 205 | print '<td>'.$langs->trans('MarkRate').' = '.$langs->trans('Margin').' / '.$langs->trans('SellingPrice').'</td>'; |
@@ -211,18 +211,18 @@ discard block |
||
| 211 | 211 | print '<td colspan="2" align="center">'; |
| 212 | 212 | if (! empty($conf->use_javascript_ajax)) |
| 213 | 213 | { |
| 214 | - print ajax_constantonoff('ForceBuyingPriceIfNull'); |
|
| 214 | + print ajax_constantonoff('ForceBuyingPriceIfNull'); |
|
| 215 | 215 | } |
| 216 | 216 | else |
| 217 | 217 | { |
| 218 | - if (empty($conf->global->ForceBuyingPriceIfNull)) |
|
| 219 | - { |
|
| 220 | - print '<a href="'.$_SERVER['PHP_SELF'].'?action=set_ForceBuyingPriceIfNull">'.img_picto($langs->trans("Disabled"),'off').'</a>'; |
|
| 221 | - } |
|
| 222 | - else |
|
| 223 | - { |
|
| 224 | - print '<a href="'.$_SERVER['PHP_SELF'].'?action=del_ForceBuyingPriceIfNull">'.img_picto($langs->trans("Enabled"),'on').'</a>'; |
|
| 225 | - } |
|
| 218 | + if (empty($conf->global->ForceBuyingPriceIfNull)) |
|
| 219 | + { |
|
| 220 | + print '<a href="'.$_SERVER['PHP_SELF'].'?action=set_ForceBuyingPriceIfNull">'.img_picto($langs->trans("Disabled"),'off').'</a>'; |
|
| 221 | + } |
|
| 222 | + else |
|
| 223 | + { |
|
| 224 | + print '<a href="'.$_SERVER['PHP_SELF'].'?action=del_ForceBuyingPriceIfNull">'.img_picto($langs->trans("Enabled"),'on').'</a>'; |
|
| 225 | + } |
|
| 226 | 226 | } |
| 227 | 227 | print '</td>'; |
| 228 | 228 | print '<td>'.$langs->trans('ForceBuyingPriceIfNullDetails').'</td>'; |
@@ -230,9 +230,9 @@ discard block |
||
| 230 | 230 | |
| 231 | 231 | // GLOBAL DISCOUNT MANAGEMENT |
| 232 | 232 | $methods = array( |
| 233 | - 1 => $langs->trans('UseDiscountAsProduct'), |
|
| 234 | - 2 => $langs->trans('UseDiscountAsService'), |
|
| 235 | - 3 => $langs->trans('UseDiscountOnTotal') |
|
| 233 | + 1 => $langs->trans('UseDiscountAsProduct'), |
|
| 234 | + 2 => $langs->trans('UseDiscountAsService'), |
|
| 235 | + 3 => $langs->trans('UseDiscountOnTotal') |
|
| 236 | 236 | ); |
| 237 | 237 | |
| 238 | 238 | |
@@ -31,17 +31,17 @@ discard block |
||
| 31 | 31 | |
| 32 | 32 | $langs->loadLangs(array("admin", "bills", "margins", "stocks")); |
| 33 | 33 | |
| 34 | -if (! $user->admin) accessforbidden(); |
|
| 34 | +if (!$user->admin) accessforbidden(); |
|
| 35 | 35 | |
| 36 | -$action=GETPOST('action','alpha'); |
|
| 36 | +$action = GETPOST('action', 'alpha'); |
|
| 37 | 37 | |
| 38 | 38 | |
| 39 | 39 | /* |
| 40 | 40 | * Action |
| 41 | 41 | */ |
| 42 | -if (preg_match('/set_([a-z0-9_\-]+)/i',$action,$reg)) |
|
| 42 | +if (preg_match('/set_([a-z0-9_\-]+)/i', $action, $reg)) |
|
| 43 | 43 | { |
| 44 | - $code=$reg[1]; |
|
| 44 | + $code = $reg[1]; |
|
| 45 | 45 | if (dolibarr_set_const($db, $code, 1, 'yesno', 0, '', $conf->entity) > 0) |
| 46 | 46 | { |
| 47 | 47 | header("Location: ".$_SERVER["PHP_SELF"]); |
@@ -53,9 +53,9 @@ discard block |
||
| 53 | 53 | } |
| 54 | 54 | } |
| 55 | 55 | |
| 56 | -if (preg_match('/del_([a-z0-9_\-]+)/i',$action,$reg)) |
|
| 56 | +if (preg_match('/del_([a-z0-9_\-]+)/i', $action, $reg)) |
|
| 57 | 57 | { |
| 58 | - $code=$reg[1]; |
|
| 58 | + $code = $reg[1]; |
|
| 59 | 59 | if (dolibarr_del_const($db, $code, $conf->entity) > 0) |
| 60 | 60 | { |
| 61 | 61 | header("Location: ".$_SERVER["PHP_SELF"]); |
@@ -107,18 +107,18 @@ discard block |
||
| 107 | 107 | * View |
| 108 | 108 | */ |
| 109 | 109 | |
| 110 | -llxHeader('',$langs->trans("margesSetup")); |
|
| 110 | +llxHeader('', $langs->trans("margesSetup")); |
|
| 111 | 111 | |
| 112 | 112 | |
| 113 | -$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>'; |
|
| 114 | -print load_fiche_titre($langs->trans("margesSetup"),$linkback,'title_setup'); |
|
| 113 | +$linkback = '<a href="'.DOL_URL_ROOT.'/admin/modules.php?restore_lastsearch_values=1">'.$langs->trans("BackToModuleList").'</a>'; |
|
| 114 | +print load_fiche_titre($langs->trans("margesSetup"), $linkback, 'title_setup'); |
|
| 115 | 115 | |
| 116 | 116 | |
| 117 | 117 | $head = marges_admin_prepare_head(); |
| 118 | 118 | |
| 119 | 119 | dol_fiche_head($head, 'parameters', $langs->trans("Margins"), -1, 'margin'); |
| 120 | 120 | |
| 121 | -print load_fiche_titre($langs->trans("MemberMainOptions"),'',''); |
|
| 121 | +print load_fiche_titre($langs->trans("MemberMainOptions"), '', ''); |
|
| 122 | 122 | print '<table class="noborder" width="100%">'; |
| 123 | 123 | print '<tr class="liste_titre">'; |
| 124 | 124 | print '<td width=300>'.$langs->trans("Description").'</td>'; |
@@ -163,7 +163,7 @@ discard block |
||
| 163 | 163 | print '<tr class="oddeven">'; |
| 164 | 164 | print '<td>'.$langs->trans("DisplayMarginRates").'</td>'; |
| 165 | 165 | print '<td colspan="2" align="center">'; |
| 166 | -if (! empty($conf->use_javascript_ajax)) |
|
| 166 | +if (!empty($conf->use_javascript_ajax)) |
|
| 167 | 167 | { |
| 168 | 168 | print ajax_constantonoff('DISPLAY_MARGIN_RATES'); |
| 169 | 169 | } |
@@ -171,11 +171,11 @@ discard block |
||
| 171 | 171 | { |
| 172 | 172 | if (empty($conf->global->DISPLAY_MARGIN_RATES)) |
| 173 | 173 | { |
| 174 | - print '<a href="'.$_SERVER['PHP_SELF'].'?action=set_DISPLAY_MARGIN_RATES">'.img_picto($langs->trans("Disabled"),'off').'</a>'; |
|
| 174 | + print '<a href="'.$_SERVER['PHP_SELF'].'?action=set_DISPLAY_MARGIN_RATES">'.img_picto($langs->trans("Disabled"), 'off').'</a>'; |
|
| 175 | 175 | } |
| 176 | 176 | else |
| 177 | 177 | { |
| 178 | - print '<a href="'.$_SERVER['PHP_SELF'].'?action=del_DISPLAY_MARGIN_RATES">'.img_picto($langs->trans("Enabled"),'on').'</a>'; |
|
| 178 | + print '<a href="'.$_SERVER['PHP_SELF'].'?action=del_DISPLAY_MARGIN_RATES">'.img_picto($langs->trans("Enabled"), 'on').'</a>'; |
|
| 179 | 179 | } |
| 180 | 180 | } |
| 181 | 181 | print '</td>'; |
@@ -186,7 +186,7 @@ discard block |
||
| 186 | 186 | print '<tr class="oddeven">'; |
| 187 | 187 | print '<td>'.$langs->trans("DisplayMarkRates").'</td>'; |
| 188 | 188 | print '<td colspan="2" align="center">'; |
| 189 | -if (! empty($conf->use_javascript_ajax)) |
|
| 189 | +if (!empty($conf->use_javascript_ajax)) |
|
| 190 | 190 | { |
| 191 | 191 | print ajax_constantonoff('DISPLAY_MARK_RATES'); |
| 192 | 192 | } |
@@ -194,11 +194,11 @@ discard block |
||
| 194 | 194 | { |
| 195 | 195 | if (empty($conf->global->DISPLAY_MARK_RATES)) |
| 196 | 196 | { |
| 197 | - print '<a href="'.$_SERVER['PHP_SELF'].'?action=set_DISPLAY_MARK_RATES">'.img_picto($langs->trans("Disabled"),'off').'</a>'; |
|
| 197 | + print '<a href="'.$_SERVER['PHP_SELF'].'?action=set_DISPLAY_MARK_RATES">'.img_picto($langs->trans("Disabled"), 'off').'</a>'; |
|
| 198 | 198 | } |
| 199 | 199 | else |
| 200 | 200 | { |
| 201 | - print '<a href="'.$_SERVER['PHP_SELF'].'?action=del_DISPLAY_MARK_RATES">'.img_picto($langs->trans("Enabled"),'on').'</a>'; |
|
| 201 | + print '<a href="'.$_SERVER['PHP_SELF'].'?action=del_DISPLAY_MARK_RATES">'.img_picto($langs->trans("Enabled"), 'on').'</a>'; |
|
| 202 | 202 | } |
| 203 | 203 | } |
| 204 | 204 | print '</td>'; |
@@ -209,7 +209,7 @@ discard block |
||
| 209 | 209 | print '<tr class="oddeven">'; |
| 210 | 210 | print '<td>'.$langs->trans("ForceBuyingPriceIfNull").'</td>'; |
| 211 | 211 | print '<td colspan="2" align="center">'; |
| 212 | -if (! empty($conf->use_javascript_ajax)) |
|
| 212 | +if (!empty($conf->use_javascript_ajax)) |
|
| 213 | 213 | { |
| 214 | 214 | print ajax_constantonoff('ForceBuyingPriceIfNull'); |
| 215 | 215 | } |
@@ -217,11 +217,11 @@ discard block |
||
| 217 | 217 | { |
| 218 | 218 | if (empty($conf->global->ForceBuyingPriceIfNull)) |
| 219 | 219 | { |
| 220 | - print '<a href="'.$_SERVER['PHP_SELF'].'?action=set_ForceBuyingPriceIfNull">'.img_picto($langs->trans("Disabled"),'off').'</a>'; |
|
| 220 | + print '<a href="'.$_SERVER['PHP_SELF'].'?action=set_ForceBuyingPriceIfNull">'.img_picto($langs->trans("Disabled"), 'off').'</a>'; |
|
| 221 | 221 | } |
| 222 | 222 | else |
| 223 | 223 | { |
| 224 | - print '<a href="'.$_SERVER['PHP_SELF'].'?action=del_ForceBuyingPriceIfNull">'.img_picto($langs->trans("Enabled"),'on').'</a>'; |
|
| 224 | + print '<a href="'.$_SERVER['PHP_SELF'].'?action=del_ForceBuyingPriceIfNull">'.img_picto($langs->trans("Enabled"), 'on').'</a>'; |
|
| 225 | 225 | } |
| 226 | 226 | } |
| 227 | 227 | print '</td>'; |
@@ -260,7 +260,7 @@ discard block |
||
| 260 | 260 | print '<td align="left">'; |
| 261 | 261 | $formcompany = new FormCompany($db); |
| 262 | 262 | $facture = new Facture($db); |
| 263 | -print $formcompany->selectTypeContact($facture, $conf->global->AGENT_CONTACT_TYPE, "AGENT_CONTACT_TYPE","internal","code",1); |
|
| 263 | +print $formcompany->selectTypeContact($facture, $conf->global->AGENT_CONTACT_TYPE, "AGENT_CONTACT_TYPE", "internal", "code", 1); |
|
| 264 | 264 | print '</td>'; |
| 265 | 265 | print '<td>'; |
| 266 | 266 | print '<input type="submit" class="button" value="'.$langs->trans("Modify").'">'; |
@@ -31,7 +31,9 @@ discard block |
||
| 31 | 31 | |
| 32 | 32 | $langs->loadLangs(array("admin", "bills", "margins", "stocks")); |
| 33 | 33 | |
| 34 | -if (! $user->admin) accessforbidden(); |
|
| 34 | +if (! $user->admin) { |
|
| 35 | + accessforbidden(); |
|
| 36 | +} |
|
| 35 | 37 | |
| 36 | 38 | $action=GETPOST('action','alpha'); |
| 37 | 39 | |
@@ -46,8 +48,7 @@ discard block |
||
| 46 | 48 | { |
| 47 | 49 | header("Location: ".$_SERVER["PHP_SELF"]); |
| 48 | 50 | exit; |
| 49 | - } |
|
| 50 | - else |
|
| 51 | + } else |
|
| 51 | 52 | { |
| 52 | 53 | dol_print_error($db); |
| 53 | 54 | } |
@@ -60,8 +61,7 @@ discard block |
||
| 60 | 61 | { |
| 61 | 62 | header("Location: ".$_SERVER["PHP_SELF"]); |
| 62 | 63 | exit; |
| 63 | - } |
|
| 64 | - else |
|
| 64 | + } else |
|
| 65 | 65 | { |
| 66 | 66 | dol_print_error($db); |
| 67 | 67 | } |
@@ -72,8 +72,7 @@ discard block |
||
| 72 | 72 | if (dolibarr_set_const($db, 'MARGIN_METHODE_FOR_DISCOUNT', $_POST['MARGIN_METHODE_FOR_DISCOUNT'], 'chaine', 0, '', $conf->entity) > 0) |
| 73 | 73 | { |
| 74 | 74 | setEventMessages($langs->trans("RecordModifiedSuccessfully"), null, 'mesgs'); |
| 75 | - } |
|
| 76 | - else |
|
| 75 | + } else |
|
| 77 | 76 | { |
| 78 | 77 | dol_print_error($db); |
| 79 | 78 | } |
@@ -84,8 +83,7 @@ discard block |
||
| 84 | 83 | if (dolibarr_set_const($db, 'MARGIN_TYPE', $_POST['MARGIN_TYPE'], 'chaine', 0, '', $conf->entity) > 0) |
| 85 | 84 | { |
| 86 | 85 | setEventMessages($langs->trans("RecordModifiedSuccessfully"), null, 'mesgs'); |
| 87 | - } |
|
| 88 | - else |
|
| 86 | + } else |
|
| 89 | 87 | { |
| 90 | 88 | dol_print_error($db); |
| 91 | 89 | } |
@@ -96,8 +94,7 @@ discard block |
||
| 96 | 94 | if (dolibarr_set_const($db, 'AGENT_CONTACT_TYPE', $_POST['AGENT_CONTACT_TYPE'], 'chaine', 0, '', $conf->entity) > 0) |
| 97 | 95 | { |
| 98 | 96 | setEventMessages($langs->trans("RecordModifiedSuccessfully"), null, 'mesgs'); |
| 99 | - } |
|
| 100 | - else |
|
| 97 | + } else |
|
| 101 | 98 | { |
| 102 | 99 | dol_print_error($db); |
| 103 | 100 | } |
@@ -136,18 +133,23 @@ discard block |
||
| 136 | 133 | print '<td>'.$langs->trans("MARGIN_TYPE").'</td>'; |
| 137 | 134 | print '<td>'; |
| 138 | 135 | print ' <input type="radio" name="MARGIN_TYPE" value="1" '; |
| 139 | -if (isset($conf->global->MARGIN_TYPE) && $conf->global->MARGIN_TYPE == '1') |
|
| 136 | +if (isset($conf->global->MARGIN_TYPE) && $conf->global->MARGIN_TYPE == '1') { |
|
| 140 | 137 | print 'checked '; |
| 138 | +} |
|
| 141 | 139 | print '/> '; |
| 142 | 140 | print $langs->trans('MargeType1'); |
| 143 | 141 | print '<br>'; |
| 144 | 142 | print ' <input type="radio" name="MARGIN_TYPE" value="pmp" '; |
| 145 | -if (isset($conf->global->MARGIN_TYPE) && $conf->global->MARGIN_TYPE == 'pmp') print 'checked '; |
|
| 143 | +if (isset($conf->global->MARGIN_TYPE) && $conf->global->MARGIN_TYPE == 'pmp') { |
|
| 144 | + print 'checked '; |
|
| 145 | +} |
|
| 146 | 146 | print '/> '; |
| 147 | 147 | print $langs->trans('MargeType2'); |
| 148 | 148 | print '<br>'; |
| 149 | 149 | print ' <input type="radio" name="MARGIN_TYPE" value="costprice" '; |
| 150 | -if (isset($conf->global->MARGIN_TYPE) && $conf->global->MARGIN_TYPE == 'costprice') print 'checked '; |
|
| 150 | +if (isset($conf->global->MARGIN_TYPE) && $conf->global->MARGIN_TYPE == 'costprice') { |
|
| 151 | + print 'checked '; |
|
| 152 | +} |
|
| 151 | 153 | print '/> '; |
| 152 | 154 | print $langs->trans('MargeType3'); |
| 153 | 155 | print '</td>'; |
@@ -166,14 +168,12 @@ discard block |
||
| 166 | 168 | if (! empty($conf->use_javascript_ajax)) |
| 167 | 169 | { |
| 168 | 170 | print ajax_constantonoff('DISPLAY_MARGIN_RATES'); |
| 169 | -} |
|
| 170 | -else |
|
| 171 | +} else |
|
| 171 | 172 | { |
| 172 | 173 | if (empty($conf->global->DISPLAY_MARGIN_RATES)) |
| 173 | 174 | { |
| 174 | 175 | print '<a href="'.$_SERVER['PHP_SELF'].'?action=set_DISPLAY_MARGIN_RATES">'.img_picto($langs->trans("Disabled"),'off').'</a>'; |
| 175 | - } |
|
| 176 | - else |
|
| 176 | + } else |
|
| 177 | 177 | { |
| 178 | 178 | print '<a href="'.$_SERVER['PHP_SELF'].'?action=del_DISPLAY_MARGIN_RATES">'.img_picto($langs->trans("Enabled"),'on').'</a>'; |
| 179 | 179 | } |
@@ -189,14 +189,12 @@ discard block |
||
| 189 | 189 | if (! empty($conf->use_javascript_ajax)) |
| 190 | 190 | { |
| 191 | 191 | print ajax_constantonoff('DISPLAY_MARK_RATES'); |
| 192 | -} |
|
| 193 | -else |
|
| 192 | +} else |
|
| 194 | 193 | { |
| 195 | 194 | if (empty($conf->global->DISPLAY_MARK_RATES)) |
| 196 | 195 | { |
| 197 | 196 | print '<a href="'.$_SERVER['PHP_SELF'].'?action=set_DISPLAY_MARK_RATES">'.img_picto($langs->trans("Disabled"),'off').'</a>'; |
| 198 | - } |
|
| 199 | - else |
|
| 197 | + } else |
|
| 200 | 198 | { |
| 201 | 199 | print '<a href="'.$_SERVER['PHP_SELF'].'?action=del_DISPLAY_MARK_RATES">'.img_picto($langs->trans("Enabled"),'on').'</a>'; |
| 202 | 200 | } |
@@ -212,14 +210,12 @@ discard block |
||
| 212 | 210 | if (! empty($conf->use_javascript_ajax)) |
| 213 | 211 | { |
| 214 | 212 | print ajax_constantonoff('ForceBuyingPriceIfNull'); |
| 215 | -} |
|
| 216 | -else |
|
| 213 | +} else |
|
| 217 | 214 | { |
| 218 | 215 | if (empty($conf->global->ForceBuyingPriceIfNull)) |
| 219 | 216 | { |
| 220 | 217 | print '<a href="'.$_SERVER['PHP_SELF'].'?action=set_ForceBuyingPriceIfNull">'.img_picto($langs->trans("Disabled"),'off').'</a>'; |
| 221 | - } |
|
| 222 | - else |
|
| 218 | + } else |
|
| 223 | 219 | { |
| 224 | 220 | print '<a href="'.$_SERVER['PHP_SELF'].'?action=del_ForceBuyingPriceIfNull">'.img_picto($langs->trans("Enabled"),'on').'</a>'; |
| 225 | 221 | } |
@@ -58,9 +58,9 @@ discard block |
||
| 58 | 58 | $startdate=$enddate=''; |
| 59 | 59 | |
| 60 | 60 | if (!empty($_POST['startdatemonth'])) |
| 61 | - $startdate = dol_mktime(0, 0, 0, $_POST['startdatemonth'], $_POST['startdateday'], $_POST['startdateyear']); |
|
| 61 | + $startdate = dol_mktime(0, 0, 0, $_POST['startdatemonth'], $_POST['startdateday'], $_POST['startdateyear']); |
|
| 62 | 62 | if (!empty($_POST['enddatemonth'])) |
| 63 | - $enddate = dol_mktime(23, 59, 59, $_POST['enddatemonth'], $_POST['enddateday'], $_POST['enddateyear']); |
|
| 63 | + $enddate = dol_mktime(23, 59, 59, $_POST['enddatemonth'], $_POST['enddateday'], $_POST['enddateyear']); |
|
| 64 | 64 | |
| 65 | 65 | |
| 66 | 66 | /* |
@@ -92,28 +92,28 @@ discard block |
||
| 92 | 92 | $client = false; |
| 93 | 93 | if ($socid > 0) { |
| 94 | 94 | |
| 95 | - $soc = new Societe($db); |
|
| 96 | - $soc->fetch($socid); |
|
| 97 | - |
|
| 98 | - if ($soc->client) |
|
| 99 | - { |
|
| 100 | - print '<tr><td class="titlefield">'.$langs->trans('ThirdPartyName').'</td>'; |
|
| 101 | - print '<td class="maxwidthonsmartphone" colspan="4">'; |
|
| 102 | - print $form->select_company($socid, 'socid', 'client=1 OR client=3', 1, 0, 0); |
|
| 103 | - //$form->form_thirdparty($_SERVER['PHP_SELF'].'?socid='.$socid,$socid,'socid','client=1 OR client=3',1,0,1); |
|
| 104 | - print '</td></tr>'; |
|
| 105 | - |
|
| 106 | - $client = true; |
|
| 107 | - if (! $sortorder) $sortorder="DESC"; |
|
| 108 | - if (! $sortfield) $sortfield="f.datef"; |
|
| 109 | - } |
|
| 95 | + $soc = new Societe($db); |
|
| 96 | + $soc->fetch($socid); |
|
| 97 | + |
|
| 98 | + if ($soc->client) |
|
| 99 | + { |
|
| 100 | + print '<tr><td class="titlefield">'.$langs->trans('ThirdPartyName').'</td>'; |
|
| 101 | + print '<td class="maxwidthonsmartphone" colspan="4">'; |
|
| 102 | + print $form->select_company($socid, 'socid', 'client=1 OR client=3', 1, 0, 0); |
|
| 103 | + //$form->form_thirdparty($_SERVER['PHP_SELF'].'?socid='.$socid,$socid,'socid','client=1 OR client=3',1,0,1); |
|
| 104 | + print '</td></tr>'; |
|
| 105 | + |
|
| 106 | + $client = true; |
|
| 107 | + if (! $sortorder) $sortorder="DESC"; |
|
| 108 | + if (! $sortfield) $sortfield="f.datef"; |
|
| 109 | + } |
|
| 110 | 110 | } |
| 111 | 111 | else { |
| 112 | - print '<tr><td class="titlefield">'.$langs->trans('ThirdPartyName').'</td>'; |
|
| 113 | - print '<td class="maxwidthonsmartphone" colspan="4">'; |
|
| 114 | - print $form->select_company(null, 'socid', 'client=1 OR client=3', 1, 0, 0); |
|
| 115 | - //$form->form_thirdparty($_SERVER['PHP_SELF'],null,'socid','client=1 OR client=3',1,0,1); |
|
| 116 | - print '</td></tr>'; |
|
| 112 | + print '<tr><td class="titlefield">'.$langs->trans('ThirdPartyName').'</td>'; |
|
| 113 | + print '<td class="maxwidthonsmartphone" colspan="4">'; |
|
| 114 | + print $form->select_company(null, 'socid', 'client=1 OR client=3', 1, 0, 0); |
|
| 115 | + //$form->form_thirdparty($_SERVER['PHP_SELF'],null,'socid','client=1 OR client=3',1,0,1); |
|
| 116 | + print '</td></tr>'; |
|
| 117 | 117 | } |
| 118 | 118 | |
| 119 | 119 | $sortfield = GETPOST("sortfield",'alpha'); |
@@ -121,16 +121,16 @@ discard block |
||
| 121 | 121 | if (! $sortorder) $sortorder="ASC"; |
| 122 | 122 | if (! $sortfield) |
| 123 | 123 | { |
| 124 | - if ($client) |
|
| 125 | - { |
|
| 126 | - $sortfield="f.datef"; |
|
| 127 | - $sortorder="DESC"; |
|
| 128 | - } |
|
| 129 | - else |
|
| 130 | - { |
|
| 131 | - $sortfield="s.nom"; |
|
| 132 | - $sortorder="ASC"; |
|
| 133 | - } |
|
| 124 | + if ($client) |
|
| 125 | + { |
|
| 126 | + $sortfield="f.datef"; |
|
| 127 | + $sortorder="DESC"; |
|
| 128 | + } |
|
| 129 | + else |
|
| 130 | + { |
|
| 131 | + $sortfield="s.nom"; |
|
| 132 | + $sortorder="ASC"; |
|
| 133 | + } |
|
| 134 | 134 | } |
| 135 | 135 | |
| 136 | 136 | // Products |
@@ -138,7 +138,7 @@ discard block |
||
| 138 | 138 | |
| 139 | 139 | $TProducts = array(); |
| 140 | 140 | foreach($TRes as $prod) { |
| 141 | - $TProducts[$prod['key']] = $prod['label']; |
|
| 141 | + $TProducts[$prod['key']] = $prod['label']; |
|
| 142 | 142 | } |
| 143 | 143 | |
| 144 | 144 | print '<tr><td class="titlefield">'.$langs->trans('ChooseProduct/Service').'</td>'; |
@@ -182,16 +182,16 @@ discard block |
||
| 182 | 182 | |
| 183 | 183 | // Margin Rate |
| 184 | 184 | if (! empty($conf->global->DISPLAY_MARGIN_RATES)) { |
| 185 | - print '<tr><td>'.$langs->trans("MarginRate").'</td><td colspan="4">'; |
|
| 186 | - print '<span id="marginRate"></span>'; // set by jquery (see below) |
|
| 187 | - print '</td></tr>'; |
|
| 185 | + print '<tr><td>'.$langs->trans("MarginRate").'</td><td colspan="4">'; |
|
| 186 | + print '<span id="marginRate"></span>'; // set by jquery (see below) |
|
| 187 | + print '</td></tr>'; |
|
| 188 | 188 | } |
| 189 | 189 | |
| 190 | 190 | // Mark Rate |
| 191 | 191 | if (! empty($conf->global->DISPLAY_MARK_RATES)) { |
| 192 | - print '<tr><td>'.$langs->trans("MarkRate").'</td><td colspan="4">'; |
|
| 193 | - print '<span id="markRate"></span>'; // set by jquery (see below) |
|
| 194 | - print '</td></tr>'; |
|
| 192 | + print '<tr><td>'.$langs->trans("MarkRate").'</td><td colspan="4">'; |
|
| 193 | + print '<span id="markRate"></span>'; // set by jquery (see below) |
|
| 194 | + print '</td></tr>'; |
|
| 195 | 195 | } |
| 196 | 196 | |
| 197 | 197 | print "</table>"; |
@@ -211,7 +211,7 @@ discard block |
||
| 211 | 211 | $sql.= ", ".MAIN_DB_PREFIX."facture as f"; |
| 212 | 212 | $sql.= ", ".MAIN_DB_PREFIX."facturedet as d"; |
| 213 | 213 | if(! empty($TSelectedCats)) { |
| 214 | - $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie_product as cp ON cp.fk_product=d.fk_product'; |
|
| 214 | + $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie_product as cp ON cp.fk_product=d.fk_product'; |
|
| 215 | 215 | } |
| 216 | 216 | |
| 217 | 217 | if (! $user->rights->societe->client->voir && ! $socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; |
@@ -223,10 +223,10 @@ discard block |
||
| 223 | 223 | $sql.= " AND d.fk_facture = f.rowid"; |
| 224 | 224 | $sql.= " AND (d.product_type = 0 OR d.product_type = 1)"; |
| 225 | 225 | if(! empty($TSelectedProducts)) { |
| 226 | - $sql .= ' AND d.fk_product IN ('.implode(',', $TSelectedProducts) . ')'; |
|
| 226 | + $sql .= ' AND d.fk_product IN ('.implode(',', $TSelectedProducts) . ')'; |
|
| 227 | 227 | } |
| 228 | 228 | if(! empty($TSelectedCats)) { |
| 229 | - $sql .= ' AND cp.fk_categorie IN ('.implode(',', $TSelectedCats) . ')'; |
|
| 229 | + $sql .= ' AND cp.fk_categorie IN ('.implode(',', $TSelectedCats) . ')'; |
|
| 230 | 230 | } |
| 231 | 231 | if (!empty($startdate)) |
| 232 | 232 | $sql.= " AND f.datef >= '".$db->idate($startdate)."'"; |
@@ -245,127 +245,127 @@ discard block |
||
| 245 | 245 | $result = $db->query($sql); |
| 246 | 246 | if ($result) |
| 247 | 247 | { |
| 248 | - $num = $db->num_rows($result); |
|
| 249 | - |
|
| 250 | - print '<br>'; |
|
| 251 | - print_barre_liste($langs->trans("MarginDetails"), $page, $_SERVER["PHP_SELF"], "", $sortfield, $sortorder, '', $num, $num, '', 0, '', '', 0, 1); |
|
| 252 | - |
|
| 253 | - if ($conf->global->MARGIN_TYPE == "1") |
|
| 254 | - $labelcostprice='BuyingPrice'; |
|
| 255 | - else // value is 'costprice' or 'pmp' |
|
| 256 | - $labelcostprice='CostPrice'; |
|
| 257 | - |
|
| 258 | - $i = 0; |
|
| 259 | - print "<table class=\"noborder\" width=\"100%\">"; |
|
| 260 | - |
|
| 261 | - print '<tr class="liste_titre">'; |
|
| 262 | - if (! empty($client)) { |
|
| 263 | - print_liste_field_titre("Invoice",$_SERVER["PHP_SELF"],"f.ref","","&socid=".$socid,'',$sortfield,$sortorder); |
|
| 264 | - print_liste_field_titre("DateInvoice",$_SERVER["PHP_SELF"],"f.datef","","&socid=".$socid,'align="center"',$sortfield,$sortorder); |
|
| 265 | - } |
|
| 266 | - else |
|
| 267 | - print_liste_field_titre("Customer",$_SERVER["PHP_SELF"],"s.nom","","&socid=".$socid,'',$sortfield,$sortorder); |
|
| 268 | - print_liste_field_titre("SellingPrice",$_SERVER["PHP_SELF"],"selling_price","","&socid=".$socid,'align="right"',$sortfield,$sortorder); |
|
| 269 | - print_liste_field_titre($labelcostprice,$_SERVER["PHP_SELF"],"buying_price","","&socid=".$socid,'align="right"',$sortfield,$sortorder); |
|
| 270 | - print_liste_field_titre("Margin",$_SERVER["PHP_SELF"],"marge","","&socid=".$socid,'align="right"',$sortfield,$sortorder); |
|
| 271 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 272 | - print_liste_field_titre("MarginRate",$_SERVER["PHP_SELF"],"","","&socid=".$socid,'align="right"',$sortfield,$sortorder); |
|
| 273 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 274 | - print_liste_field_titre("MarkRate",$_SERVER["PHP_SELF"],"","","&socid=".$socid,'align="right"',$sortfield,$sortorder); |
|
| 275 | - print "</tr>\n"; |
|
| 276 | - |
|
| 277 | - $cumul_achat = 0; |
|
| 278 | - $cumul_vente = 0; |
|
| 279 | - |
|
| 280 | - $rounding = min($conf->global->MAIN_MAX_DECIMALS_UNIT,$conf->global->MAIN_MAX_DECIMALS_TOT); |
|
| 281 | - |
|
| 282 | - if ($num > 0) |
|
| 283 | - { |
|
| 284 | - while ($i < $num /*&& $i < $conf->liste_limit*/) |
|
| 285 | - { |
|
| 286 | - $objp = $db->fetch_object($result); |
|
| 287 | - |
|
| 288 | - $pa = $objp->buying_price; |
|
| 289 | - $pv = $objp->selling_price; |
|
| 290 | - $marge = $objp->marge; |
|
| 291 | - |
|
| 292 | - if ($marge < 0) |
|
| 293 | - { |
|
| 294 | - $marginRate = ($pa != 0)?-1*(100 * $marge / $pa):'' ; |
|
| 295 | - $markRate = ($pv != 0)?-1*(100 * $marge / $pv):'' ; |
|
| 296 | - } |
|
| 297 | - else |
|
| 298 | - { |
|
| 299 | - $marginRate = ($pa != 0)?(100 * $marge / $pa):'' ; |
|
| 300 | - $markRate = ($pv != 0)?(100 * $marge / $pv):'' ; |
|
| 301 | - } |
|
| 302 | - |
|
| 303 | - print '<tr class="oddeven">'; |
|
| 304 | - if ($client) { |
|
| 305 | - print '<td>'; |
|
| 306 | - $invoicestatic->id=$objp->facid; |
|
| 307 | - $invoicestatic->ref=$objp->ref; |
|
| 308 | - print $invoicestatic->getNomUrl(1); |
|
| 309 | - print "</td>\n"; |
|
| 310 | - print "<td align=\"center\">"; |
|
| 311 | - print dol_print_date($db->jdate($objp->datef),'day')."</td>"; |
|
| 312 | - } |
|
| 313 | - else { |
|
| 314 | - $companystatic->id=$objp->socid; |
|
| 315 | - $companystatic->name=$objp->name; |
|
| 316 | - $companystatic->client=$objp->client; |
|
| 317 | - print "<td>".$companystatic->getNomUrl(1,'margin')."</td>\n"; |
|
| 318 | - } |
|
| 319 | - |
|
| 320 | - print "<td align=\"right\">".price($pv, null, null, null, null, $rounding)."</td>\n"; |
|
| 321 | - print "<td align=\"right\">".price($pa, null, null, null, null, $rounding)."</td>\n"; |
|
| 322 | - print "<td align=\"right\">".price($marge, null, null, null, null, $rounding)."</td>\n"; |
|
| 323 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 324 | - print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 325 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 326 | - print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 327 | - print "</tr>\n"; |
|
| 328 | - |
|
| 329 | - $i++; |
|
| 330 | - $cumul_achat += $objp->buying_price; |
|
| 331 | - $cumul_vente += $objp->selling_price; |
|
| 332 | - } |
|
| 333 | - } |
|
| 334 | - |
|
| 335 | - // affichage totaux marges |
|
| 336 | - |
|
| 337 | - $totalMargin = $cumul_vente - $cumul_achat; |
|
| 338 | - /*if ($totalMargin < 0) |
|
| 248 | + $num = $db->num_rows($result); |
|
| 249 | + |
|
| 250 | + print '<br>'; |
|
| 251 | + print_barre_liste($langs->trans("MarginDetails"), $page, $_SERVER["PHP_SELF"], "", $sortfield, $sortorder, '', $num, $num, '', 0, '', '', 0, 1); |
|
| 252 | + |
|
| 253 | + if ($conf->global->MARGIN_TYPE == "1") |
|
| 254 | + $labelcostprice='BuyingPrice'; |
|
| 255 | + else // value is 'costprice' or 'pmp' |
|
| 256 | + $labelcostprice='CostPrice'; |
|
| 257 | + |
|
| 258 | + $i = 0; |
|
| 259 | + print "<table class=\"noborder\" width=\"100%\">"; |
|
| 260 | + |
|
| 261 | + print '<tr class="liste_titre">'; |
|
| 262 | + if (! empty($client)) { |
|
| 263 | + print_liste_field_titre("Invoice",$_SERVER["PHP_SELF"],"f.ref","","&socid=".$socid,'',$sortfield,$sortorder); |
|
| 264 | + print_liste_field_titre("DateInvoice",$_SERVER["PHP_SELF"],"f.datef","","&socid=".$socid,'align="center"',$sortfield,$sortorder); |
|
| 265 | + } |
|
| 266 | + else |
|
| 267 | + print_liste_field_titre("Customer",$_SERVER["PHP_SELF"],"s.nom","","&socid=".$socid,'',$sortfield,$sortorder); |
|
| 268 | + print_liste_field_titre("SellingPrice",$_SERVER["PHP_SELF"],"selling_price","","&socid=".$socid,'align="right"',$sortfield,$sortorder); |
|
| 269 | + print_liste_field_titre($labelcostprice,$_SERVER["PHP_SELF"],"buying_price","","&socid=".$socid,'align="right"',$sortfield,$sortorder); |
|
| 270 | + print_liste_field_titre("Margin",$_SERVER["PHP_SELF"],"marge","","&socid=".$socid,'align="right"',$sortfield,$sortorder); |
|
| 271 | + if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 272 | + print_liste_field_titre("MarginRate",$_SERVER["PHP_SELF"],"","","&socid=".$socid,'align="right"',$sortfield,$sortorder); |
|
| 273 | + if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 274 | + print_liste_field_titre("MarkRate",$_SERVER["PHP_SELF"],"","","&socid=".$socid,'align="right"',$sortfield,$sortorder); |
|
| 275 | + print "</tr>\n"; |
|
| 276 | + |
|
| 277 | + $cumul_achat = 0; |
|
| 278 | + $cumul_vente = 0; |
|
| 279 | + |
|
| 280 | + $rounding = min($conf->global->MAIN_MAX_DECIMALS_UNIT,$conf->global->MAIN_MAX_DECIMALS_TOT); |
|
| 281 | + |
|
| 282 | + if ($num > 0) |
|
| 283 | + { |
|
| 284 | + while ($i < $num /*&& $i < $conf->liste_limit*/) |
|
| 285 | + { |
|
| 286 | + $objp = $db->fetch_object($result); |
|
| 287 | + |
|
| 288 | + $pa = $objp->buying_price; |
|
| 289 | + $pv = $objp->selling_price; |
|
| 290 | + $marge = $objp->marge; |
|
| 291 | + |
|
| 292 | + if ($marge < 0) |
|
| 293 | + { |
|
| 294 | + $marginRate = ($pa != 0)?-1*(100 * $marge / $pa):'' ; |
|
| 295 | + $markRate = ($pv != 0)?-1*(100 * $marge / $pv):'' ; |
|
| 296 | + } |
|
| 297 | + else |
|
| 298 | + { |
|
| 299 | + $marginRate = ($pa != 0)?(100 * $marge / $pa):'' ; |
|
| 300 | + $markRate = ($pv != 0)?(100 * $marge / $pv):'' ; |
|
| 301 | + } |
|
| 302 | + |
|
| 303 | + print '<tr class="oddeven">'; |
|
| 304 | + if ($client) { |
|
| 305 | + print '<td>'; |
|
| 306 | + $invoicestatic->id=$objp->facid; |
|
| 307 | + $invoicestatic->ref=$objp->ref; |
|
| 308 | + print $invoicestatic->getNomUrl(1); |
|
| 309 | + print "</td>\n"; |
|
| 310 | + print "<td align=\"center\">"; |
|
| 311 | + print dol_print_date($db->jdate($objp->datef),'day')."</td>"; |
|
| 312 | + } |
|
| 313 | + else { |
|
| 314 | + $companystatic->id=$objp->socid; |
|
| 315 | + $companystatic->name=$objp->name; |
|
| 316 | + $companystatic->client=$objp->client; |
|
| 317 | + print "<td>".$companystatic->getNomUrl(1,'margin')."</td>\n"; |
|
| 318 | + } |
|
| 319 | + |
|
| 320 | + print "<td align=\"right\">".price($pv, null, null, null, null, $rounding)."</td>\n"; |
|
| 321 | + print "<td align=\"right\">".price($pa, null, null, null, null, $rounding)."</td>\n"; |
|
| 322 | + print "<td align=\"right\">".price($marge, null, null, null, null, $rounding)."</td>\n"; |
|
| 323 | + if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 324 | + print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 325 | + if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 326 | + print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 327 | + print "</tr>\n"; |
|
| 328 | + |
|
| 329 | + $i++; |
|
| 330 | + $cumul_achat += $objp->buying_price; |
|
| 331 | + $cumul_vente += $objp->selling_price; |
|
| 332 | + } |
|
| 333 | + } |
|
| 334 | + |
|
| 335 | + // affichage totaux marges |
|
| 336 | + |
|
| 337 | + $totalMargin = $cumul_vente - $cumul_achat; |
|
| 338 | + /*if ($totalMargin < 0) |
|
| 339 | 339 | { |
| 340 | 340 | $marginRate = ($cumul_achat != 0)?-1*(100 * $totalMargin / $cumul_achat):''; |
| 341 | 341 | $markRate = ($cumul_vente != 0)?-1*(100 * $totalMargin / $cumul_vente):''; |
| 342 | 342 | } |
| 343 | 343 | else |
| 344 | 344 | {*/ |
| 345 | - $marginRate = ($cumul_achat != 0)?(100 * $totalMargin / $cumul_achat):''; |
|
| 346 | - $markRate = ($cumul_vente != 0)?(100 * $totalMargin / $cumul_vente):''; |
|
| 347 | - //} |
|
| 348 | - |
|
| 349 | - print '<tr class="liste_total">'; |
|
| 350 | - if ($client) |
|
| 351 | - print '<td colspan=2>'; |
|
| 352 | - else |
|
| 353 | - print '<td>'; |
|
| 354 | - print $langs->trans('TotalMargin')."</td>"; |
|
| 355 | - print "<td align=\"right\">".price($cumul_vente, null, null, null, null, $rounding)."</td>\n"; |
|
| 356 | - print "<td align=\"right\">".price($cumul_achat, null, null, null, null, $rounding)."</td>\n"; |
|
| 357 | - print "<td align=\"right\">".price($totalMargin, null, null, null, null, $rounding)."</td>\n"; |
|
| 358 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 359 | - print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 360 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 361 | - print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 362 | - print "</tr>\n"; |
|
| 363 | - |
|
| 364 | - print "</table>"; |
|
| 345 | + $marginRate = ($cumul_achat != 0)?(100 * $totalMargin / $cumul_achat):''; |
|
| 346 | + $markRate = ($cumul_vente != 0)?(100 * $totalMargin / $cumul_vente):''; |
|
| 347 | + //} |
|
| 348 | + |
|
| 349 | + print '<tr class="liste_total">'; |
|
| 350 | + if ($client) |
|
| 351 | + print '<td colspan=2>'; |
|
| 352 | + else |
|
| 353 | + print '<td>'; |
|
| 354 | + print $langs->trans('TotalMargin')."</td>"; |
|
| 355 | + print "<td align=\"right\">".price($cumul_vente, null, null, null, null, $rounding)."</td>\n"; |
|
| 356 | + print "<td align=\"right\">".price($cumul_achat, null, null, null, null, $rounding)."</td>\n"; |
|
| 357 | + print "<td align=\"right\">".price($totalMargin, null, null, null, null, $rounding)."</td>\n"; |
|
| 358 | + if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 359 | + print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 360 | + if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 361 | + print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 362 | + print "</tr>\n"; |
|
| 363 | + |
|
| 364 | + print "</table>"; |
|
| 365 | 365 | } |
| 366 | 366 | else |
| 367 | 367 | { |
| 368 | - dol_print_error($db); |
|
| 368 | + dol_print_error($db); |
|
| 369 | 369 | } |
| 370 | 370 | $db->free($result); |
| 371 | 371 | |
@@ -36,7 +36,9 @@ discard block |
||
| 36 | 36 | $TSelectedProducts = GETPOST('products', 'array'); |
| 37 | 37 | $TSelectedCats = GETPOST('categories', 'array'); |
| 38 | 38 | |
| 39 | -if (! empty($user->societe_id)) $socid=$user->societe_id; |
|
| 39 | +if (! empty($user->societe_id)) { |
|
| 40 | + $socid=$user->societe_id; |
|
| 41 | +} |
|
| 40 | 42 | $result = restrictedArea($user, 'societe','',''); |
| 41 | 43 | $result = restrictedArea($user,'margins'); |
| 42 | 44 | |
@@ -52,15 +54,22 @@ discard block |
||
| 52 | 54 | $offset = $limit * $page; |
| 53 | 55 | $pageprev = $page - 1; |
| 54 | 56 | $pagenext = $page + 1; |
| 55 | -if (! $sortfield) $sortfield="s.nom"; // Set here default search field |
|
| 56 | -if (! $sortorder) $sortorder="ASC"; |
|
| 57 | +if (! $sortfield) { |
|
| 58 | + $sortfield="s.nom"; |
|
| 59 | +} |
|
| 60 | +// Set here default search field |
|
| 61 | +if (! $sortorder) { |
|
| 62 | + $sortorder="ASC"; |
|
| 63 | +} |
|
| 57 | 64 | |
| 58 | 65 | $startdate=$enddate=''; |
| 59 | 66 | |
| 60 | -if (!empty($_POST['startdatemonth'])) |
|
| 67 | +if (!empty($_POST['startdatemonth'])) { |
|
| 61 | 68 | $startdate = dol_mktime(0, 0, 0, $_POST['startdatemonth'], $_POST['startdateday'], $_POST['startdateyear']); |
| 62 | -if (!empty($_POST['enddatemonth'])) |
|
| 69 | +} |
|
| 70 | +if (!empty($_POST['enddatemonth'])) { |
|
| 63 | 71 | $enddate = dol_mktime(23, 59, 59, $_POST['enddatemonth'], $_POST['enddateday'], $_POST['enddateyear']); |
| 72 | +} |
|
| 64 | 73 | |
| 65 | 74 | |
| 66 | 75 | /* |
@@ -104,11 +113,14 @@ discard block |
||
| 104 | 113 | print '</td></tr>'; |
| 105 | 114 | |
| 106 | 115 | $client = true; |
| 107 | - if (! $sortorder) $sortorder="DESC"; |
|
| 108 | - if (! $sortfield) $sortfield="f.datef"; |
|
| 116 | + if (! $sortorder) { |
|
| 117 | + $sortorder="DESC"; |
|
| 118 | + } |
|
| 119 | + if (! $sortfield) { |
|
| 120 | + $sortfield="f.datef"; |
|
| 121 | + } |
|
| 109 | 122 | } |
| 110 | -} |
|
| 111 | -else { |
|
| 123 | +} else { |
|
| 112 | 124 | print '<tr><td class="titlefield">'.$langs->trans('ThirdPartyName').'</td>'; |
| 113 | 125 | print '<td class="maxwidthonsmartphone" colspan="4">'; |
| 114 | 126 | print $form->select_company(null, 'socid', 'client=1 OR client=3', 1, 0, 0); |
@@ -118,15 +130,16 @@ discard block |
||
| 118 | 130 | |
| 119 | 131 | $sortfield = GETPOST("sortfield",'alpha'); |
| 120 | 132 | $sortorder = GETPOST("sortorder",'alpha'); |
| 121 | -if (! $sortorder) $sortorder="ASC"; |
|
| 133 | +if (! $sortorder) { |
|
| 134 | + $sortorder="ASC"; |
|
| 135 | +} |
|
| 122 | 136 | if (! $sortfield) |
| 123 | 137 | { |
| 124 | 138 | if ($client) |
| 125 | 139 | { |
| 126 | 140 | $sortfield="f.datef"; |
| 127 | 141 | $sortorder="DESC"; |
| 128 | - } |
|
| 129 | - else |
|
| 142 | + } else |
|
| 130 | 143 | { |
| 131 | 144 | $sortfield="s.nom"; |
| 132 | 145 | $sortorder="ASC"; |
@@ -202,7 +215,9 @@ discard block |
||
| 202 | 215 | |
| 203 | 216 | $sql = "SELECT"; |
| 204 | 217 | $sql.= " s.rowid as socid, s.nom as name, s.code_client, s.client,"; |
| 205 | -if ($client) $sql.= " f.rowid as facid, f.ref, f.total as total_ht, f.datef, f.paye, f.fk_statut as statut,"; |
|
| 218 | +if ($client) { |
|
| 219 | + $sql.= " f.rowid as facid, f.ref, f.total as total_ht, f.datef, f.paye, f.fk_statut as statut,"; |
|
| 220 | +} |
|
| 206 | 221 | $sql.= " sum(d.total_ht) as selling_price,"; |
| 207 | 222 | // Note: qty and buy_price_ht is always positive (if not, your database may be corrupted, you can update this) |
| 208 | 223 | $sql.= " sum(".$db->ifsql('d.total_ht < 0','d.qty * d.buy_price_ht * -1','d.qty * d.buy_price_ht').") as buying_price,"; |
@@ -214,10 +229,16 @@ discard block |
||
| 214 | 229 | $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie_product as cp ON cp.fk_product=d.fk_product'; |
| 215 | 230 | } |
| 216 | 231 | |
| 217 | -if (! $user->rights->societe->client->voir && ! $socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; |
|
| 232 | +if (! $user->rights->societe->client->voir && ! $socid) { |
|
| 233 | + $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; |
|
| 234 | +} |
|
| 218 | 235 | $sql.= " WHERE f.fk_soc = s.rowid"; |
| 219 | -if ($socid > 0) $sql.= ' AND s.rowid = '.$socid; |
|
| 220 | -if (!$user->rights->societe->client->voir && ! $socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; |
|
| 236 | +if ($socid > 0) { |
|
| 237 | + $sql.= ' AND s.rowid = '.$socid; |
|
| 238 | +} |
|
| 239 | +if (!$user->rights->societe->client->voir && ! $socid) { |
|
| 240 | + $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; |
|
| 241 | +} |
|
| 221 | 242 | $sql.= " AND f.fk_statut > 0"; |
| 222 | 243 | $sql.= ' AND s.entity IN ('.getEntity('societe').')'; |
| 223 | 244 | $sql.= " AND d.fk_facture = f.rowid"; |
@@ -228,15 +249,21 @@ discard block |
||
| 228 | 249 | if(! empty($TSelectedCats)) { |
| 229 | 250 | $sql .= ' AND cp.fk_categorie IN ('.implode(',', $TSelectedCats) . ')'; |
| 230 | 251 | } |
| 231 | -if (!empty($startdate)) |
|
| 232 | -$sql.= " AND f.datef >= '".$db->idate($startdate)."'"; |
|
| 233 | -if (!empty($enddate)) |
|
| 234 | -$sql.= " AND f.datef <= '".$db->idate($enddate)."'"; |
|
| 252 | +if (!empty($startdate)) { |
|
| 253 | + $sql.= " AND f.datef >= '".$db->idate($startdate)."'"; |
|
| 254 | +} |
|
| 255 | +if (!empty($enddate)) { |
|
| 256 | + $sql.= " AND f.datef <= '".$db->idate($enddate)."'"; |
|
| 257 | +} |
|
| 235 | 258 | $sql .= " AND d.buy_price_ht IS NOT NULL"; |
| 236 | -if (isset($conf->global->ForceBuyingPriceIfNull) && $conf->global->ForceBuyingPriceIfNull == 1) |
|
| 237 | -$sql .= " AND d.buy_price_ht <> 0"; |
|
| 238 | -if ($client) $sql.= " GROUP BY s.rowid, s.nom, s.code_client, s.client, f.rowid, f.ref, f.total, f.datef, f.paye, f.fk_statut"; |
|
| 239 | -else $sql.= " GROUP BY s.rowid, s.nom, s.code_client, s.client"; |
|
| 259 | +if (isset($conf->global->ForceBuyingPriceIfNull) && $conf->global->ForceBuyingPriceIfNull == 1) { |
|
| 260 | + $sql .= " AND d.buy_price_ht <> 0"; |
|
| 261 | +} |
|
| 262 | +if ($client) { |
|
| 263 | + $sql.= " GROUP BY s.rowid, s.nom, s.code_client, s.client, f.rowid, f.ref, f.total, f.datef, f.paye, f.fk_statut"; |
|
| 264 | +} else { |
|
| 265 | + $sql.= " GROUP BY s.rowid, s.nom, s.code_client, s.client"; |
|
| 266 | +} |
|
| 240 | 267 | $sql.=$db->order($sortfield,$sortorder); |
| 241 | 268 | // TODO: calculate total to display then restore pagination |
| 242 | 269 | //$sql.= $db->plimit($conf->liste_limit +1, $offset); |
@@ -250,10 +277,12 @@ discard block |
||
| 250 | 277 | print '<br>'; |
| 251 | 278 | print_barre_liste($langs->trans("MarginDetails"), $page, $_SERVER["PHP_SELF"], "", $sortfield, $sortorder, '', $num, $num, '', 0, '', '', 0, 1); |
| 252 | 279 | |
| 253 | - if ($conf->global->MARGIN_TYPE == "1") |
|
| 254 | - $labelcostprice='BuyingPrice'; |
|
| 255 | - else // value is 'costprice' or 'pmp' |
|
| 280 | + if ($conf->global->MARGIN_TYPE == "1") { |
|
| 281 | + $labelcostprice='BuyingPrice'; |
|
| 282 | + } else { |
|
| 283 | + // value is 'costprice' or 'pmp' |
|
| 256 | 284 | $labelcostprice='CostPrice'; |
| 285 | + } |
|
| 257 | 286 | |
| 258 | 287 | $i = 0; |
| 259 | 288 | print "<table class=\"noborder\" width=\"100%\">"; |
@@ -262,16 +291,18 @@ discard block |
||
| 262 | 291 | if (! empty($client)) { |
| 263 | 292 | print_liste_field_titre("Invoice",$_SERVER["PHP_SELF"],"f.ref","","&socid=".$socid,'',$sortfield,$sortorder); |
| 264 | 293 | print_liste_field_titre("DateInvoice",$_SERVER["PHP_SELF"],"f.datef","","&socid=".$socid,'align="center"',$sortfield,$sortorder); |
| 294 | + } else { |
|
| 295 | + print_liste_field_titre("Customer",$_SERVER["PHP_SELF"],"s.nom","","&socid=".$socid,'',$sortfield,$sortorder); |
|
| 265 | 296 | } |
| 266 | - else |
|
| 267 | - print_liste_field_titre("Customer",$_SERVER["PHP_SELF"],"s.nom","","&socid=".$socid,'',$sortfield,$sortorder); |
|
| 268 | 297 | print_liste_field_titre("SellingPrice",$_SERVER["PHP_SELF"],"selling_price","","&socid=".$socid,'align="right"',$sortfield,$sortorder); |
| 269 | 298 | print_liste_field_titre($labelcostprice,$_SERVER["PHP_SELF"],"buying_price","","&socid=".$socid,'align="right"',$sortfield,$sortorder); |
| 270 | 299 | print_liste_field_titre("Margin",$_SERVER["PHP_SELF"],"marge","","&socid=".$socid,'align="right"',$sortfield,$sortorder); |
| 271 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 272 | - print_liste_field_titre("MarginRate",$_SERVER["PHP_SELF"],"","","&socid=".$socid,'align="right"',$sortfield,$sortorder); |
|
| 273 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 274 | - print_liste_field_titre("MarkRate",$_SERVER["PHP_SELF"],"","","&socid=".$socid,'align="right"',$sortfield,$sortorder); |
|
| 300 | + if (! empty($conf->global->DISPLAY_MARGIN_RATES)) { |
|
| 301 | + print_liste_field_titre("MarginRate",$_SERVER["PHP_SELF"],"","","&socid=".$socid,'align="right"',$sortfield,$sortorder); |
|
| 302 | + } |
|
| 303 | + if (! empty($conf->global->DISPLAY_MARK_RATES)) { |
|
| 304 | + print_liste_field_titre("MarkRate",$_SERVER["PHP_SELF"],"","","&socid=".$socid,'align="right"',$sortfield,$sortorder); |
|
| 305 | + } |
|
| 275 | 306 | print "</tr>\n"; |
| 276 | 307 | |
| 277 | 308 | $cumul_achat = 0; |
@@ -293,8 +324,7 @@ discard block |
||
| 293 | 324 | { |
| 294 | 325 | $marginRate = ($pa != 0)?-1*(100 * $marge / $pa):'' ; |
| 295 | 326 | $markRate = ($pv != 0)?-1*(100 * $marge / $pv):'' ; |
| 296 | - } |
|
| 297 | - else |
|
| 327 | + } else |
|
| 298 | 328 | { |
| 299 | 329 | $marginRate = ($pa != 0)?(100 * $marge / $pa):'' ; |
| 300 | 330 | $markRate = ($pv != 0)?(100 * $marge / $pv):'' ; |
@@ -309,8 +339,7 @@ discard block |
||
| 309 | 339 | print "</td>\n"; |
| 310 | 340 | print "<td align=\"center\">"; |
| 311 | 341 | print dol_print_date($db->jdate($objp->datef),'day')."</td>"; |
| 312 | - } |
|
| 313 | - else { |
|
| 342 | + } else { |
|
| 314 | 343 | $companystatic->id=$objp->socid; |
| 315 | 344 | $companystatic->name=$objp->name; |
| 316 | 345 | $companystatic->client=$objp->client; |
@@ -320,10 +349,12 @@ discard block |
||
| 320 | 349 | print "<td align=\"right\">".price($pv, null, null, null, null, $rounding)."</td>\n"; |
| 321 | 350 | print "<td align=\"right\">".price($pa, null, null, null, null, $rounding)."</td>\n"; |
| 322 | 351 | print "<td align=\"right\">".price($marge, null, null, null, null, $rounding)."</td>\n"; |
| 323 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 324 | - print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 325 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 326 | - print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 352 | + if (! empty($conf->global->DISPLAY_MARGIN_RATES)) { |
|
| 353 | + print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 354 | + } |
|
| 355 | + if (! empty($conf->global->DISPLAY_MARK_RATES)) { |
|
| 356 | + print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 357 | + } |
|
| 327 | 358 | print "</tr>\n"; |
| 328 | 359 | |
| 329 | 360 | $i++; |
@@ -347,23 +378,25 @@ discard block |
||
| 347 | 378 | //} |
| 348 | 379 | |
| 349 | 380 | print '<tr class="liste_total">'; |
| 350 | - if ($client) |
|
| 351 | - print '<td colspan=2>'; |
|
| 352 | - else |
|
| 353 | - print '<td>'; |
|
| 381 | + if ($client) { |
|
| 382 | + print '<td colspan=2>'; |
|
| 383 | + } else { |
|
| 384 | + print '<td>'; |
|
| 385 | + } |
|
| 354 | 386 | print $langs->trans('TotalMargin')."</td>"; |
| 355 | 387 | print "<td align=\"right\">".price($cumul_vente, null, null, null, null, $rounding)."</td>\n"; |
| 356 | 388 | print "<td align=\"right\">".price($cumul_achat, null, null, null, null, $rounding)."</td>\n"; |
| 357 | 389 | print "<td align=\"right\">".price($totalMargin, null, null, null, null, $rounding)."</td>\n"; |
| 358 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 359 | - print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 360 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 361 | - print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 390 | + if (! empty($conf->global->DISPLAY_MARGIN_RATES)) { |
|
| 391 | + print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 392 | + } |
|
| 393 | + if (! empty($conf->global->DISPLAY_MARK_RATES)) { |
|
| 394 | + print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 395 | + } |
|
| 362 | 396 | print "</tr>\n"; |
| 363 | 397 | |
| 364 | 398 | print "</table>"; |
| 365 | -} |
|
| 366 | -else |
|
| 399 | +} else |
|
| 367 | 400 | { |
| 368 | 401 | dol_print_error($db); |
| 369 | 402 | } |
@@ -25,7 +25,7 @@ discard block |
||
| 25 | 25 | |
| 26 | 26 | // Copyright (C) 2018 Alxarafe/Alixar <[email protected]> |
| 27 | 27 | defined('BASE_PATH') or die('Single entry point through the index.php of the main folder'); |
| 28 | -require DOL_BASE_PATH . '/main.inc.php'; |
|
| 28 | +require DOL_BASE_PATH.'/main.inc.php'; |
|
| 29 | 29 | |
| 30 | 30 | require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; |
| 31 | 31 | require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; |
@@ -36,35 +36,35 @@ discard block |
||
| 36 | 36 | $langs->loadLangs(array('companies', 'bills', 'products', 'margins')); |
| 37 | 37 | |
| 38 | 38 | // Security check |
| 39 | -$socid = GETPOST('socid','int'); |
|
| 39 | +$socid = GETPOST('socid', 'int'); |
|
| 40 | 40 | $TSelectedProducts = GETPOST('products', 'array'); |
| 41 | 41 | $TSelectedCats = GETPOST('categories', 'array'); |
| 42 | 42 | |
| 43 | -if (! empty($user->societe_id)) $socid=$user->societe_id; |
|
| 44 | -$result = restrictedArea($user, 'societe','',''); |
|
| 45 | -$result = restrictedArea($user,'margins'); |
|
| 43 | +if (!empty($user->societe_id)) $socid = $user->societe_id; |
|
| 44 | +$result = restrictedArea($user, 'societe', '', ''); |
|
| 45 | +$result = restrictedArea($user, 'margins'); |
|
| 46 | 46 | |
| 47 | 47 | |
| 48 | 48 | $mesg = ''; |
| 49 | 49 | |
| 50 | 50 | // Load variable for pagination |
| 51 | -$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit; |
|
| 52 | -$sortfield = GETPOST('sortfield','alpha'); |
|
| 53 | -$sortorder = GETPOST('sortorder','alpha'); |
|
| 54 | -$page = GETPOST('page','int'); |
|
| 51 | +$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; |
|
| 52 | +$sortfield = GETPOST('sortfield', 'alpha'); |
|
| 53 | +$sortorder = GETPOST('sortorder', 'alpha'); |
|
| 54 | +$page = GETPOST('page', 'int'); |
|
| 55 | 55 | if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 |
| 56 | 56 | $offset = $limit * $page; |
| 57 | 57 | $pageprev = $page - 1; |
| 58 | 58 | $pagenext = $page + 1; |
| 59 | -if (! $sortfield) $sortfield="s.nom"; // Set here default search field |
|
| 60 | -if (! $sortorder) $sortorder="ASC"; |
|
| 59 | +if (!$sortfield) $sortfield = "s.nom"; // Set here default search field |
|
| 60 | +if (!$sortorder) $sortorder = "ASC"; |
|
| 61 | 61 | |
| 62 | -$startdate=$enddate=''; |
|
| 62 | +$startdate = $enddate = ''; |
|
| 63 | 63 | |
| 64 | 64 | if (!empty($_POST['startdatemonth'])) |
| 65 | - $startdate = dol_mktime(0, 0, 0, $_POST['startdatemonth'], $_POST['startdateday'], $_POST['startdateyear']); |
|
| 65 | + $startdate = dol_mktime(0, 0, 0, $_POST['startdatemonth'], $_POST['startdateday'], $_POST['startdateyear']); |
|
| 66 | 66 | if (!empty($_POST['enddatemonth'])) |
| 67 | - $enddate = dol_mktime(23, 59, 59, $_POST['enddatemonth'], $_POST['enddateday'], $_POST['enddateyear']); |
|
| 67 | + $enddate = dol_mktime(23, 59, 59, $_POST['enddatemonth'], $_POST['enddateday'], $_POST['enddateyear']); |
|
| 68 | 68 | |
| 69 | 69 | |
| 70 | 70 | /* |
@@ -72,19 +72,19 @@ discard block |
||
| 72 | 72 | */ |
| 73 | 73 | |
| 74 | 74 | $companystatic = new Societe($db); |
| 75 | -$invoicestatic=new Facture($db); |
|
| 75 | +$invoicestatic = new Facture($db); |
|
| 76 | 76 | |
| 77 | 77 | $form = new Form($db); |
| 78 | 78 | |
| 79 | -llxHeader('',$langs->trans("Margins").' - '.$langs->trans("Clients")); |
|
| 79 | +llxHeader('', $langs->trans("Margins").' - '.$langs->trans("Clients")); |
|
| 80 | 80 | |
| 81 | -$text=$langs->trans("Margins"); |
|
| 81 | +$text = $langs->trans("Margins"); |
|
| 82 | 82 | //print load_fiche_titre($text); |
| 83 | 83 | |
| 84 | 84 | // Show tabs |
| 85 | -$head=marges_prepare_head($user); |
|
| 86 | -$titre=$langs->trans("Margins"); |
|
| 87 | -$picto='margin'; |
|
| 85 | +$head = marges_prepare_head($user); |
|
| 86 | +$titre = $langs->trans("Margins"); |
|
| 87 | +$picto = 'margin'; |
|
| 88 | 88 | |
| 89 | 89 | |
| 90 | 90 | print '<form method="post" name="sel" action="'.$_SERVER['PHP_SELF'].'">'; |
@@ -108,8 +108,8 @@ discard block |
||
| 108 | 108 | print '</td></tr>'; |
| 109 | 109 | |
| 110 | 110 | $client = true; |
| 111 | - if (! $sortorder) $sortorder="DESC"; |
|
| 112 | - if (! $sortfield) $sortfield="f.datef"; |
|
| 111 | + if (!$sortorder) $sortorder = "DESC"; |
|
| 112 | + if (!$sortfield) $sortfield = "f.datef"; |
|
| 113 | 113 | } |
| 114 | 114 | } |
| 115 | 115 | else { |
@@ -120,28 +120,28 @@ discard block |
||
| 120 | 120 | print '</td></tr>'; |
| 121 | 121 | } |
| 122 | 122 | |
| 123 | -$sortfield = GETPOST("sortfield",'alpha'); |
|
| 124 | -$sortorder = GETPOST("sortorder",'alpha'); |
|
| 125 | -if (! $sortorder) $sortorder="ASC"; |
|
| 126 | -if (! $sortfield) |
|
| 123 | +$sortfield = GETPOST("sortfield", 'alpha'); |
|
| 124 | +$sortorder = GETPOST("sortorder", 'alpha'); |
|
| 125 | +if (!$sortorder) $sortorder = "ASC"; |
|
| 126 | +if (!$sortfield) |
|
| 127 | 127 | { |
| 128 | 128 | if ($client) |
| 129 | 129 | { |
| 130 | - $sortfield="f.datef"; |
|
| 131 | - $sortorder="DESC"; |
|
| 130 | + $sortfield = "f.datef"; |
|
| 131 | + $sortorder = "DESC"; |
|
| 132 | 132 | } |
| 133 | 133 | else |
| 134 | 134 | { |
| 135 | - $sortfield="s.nom"; |
|
| 136 | - $sortorder="ASC"; |
|
| 135 | + $sortfield = "s.nom"; |
|
| 136 | + $sortorder = "ASC"; |
|
| 137 | 137 | } |
| 138 | 138 | } |
| 139 | 139 | |
| 140 | 140 | // Products |
| 141 | -$TRes = $form->select_produits_list('','','',20,0,'',1,2,1,0,'', 1); |
|
| 141 | +$TRes = $form->select_produits_list('', '', '', 20, 0, '', 1, 2, 1, 0, '', 1); |
|
| 142 | 142 | |
| 143 | 143 | $TProducts = array(); |
| 144 | -foreach($TRes as $prod) { |
|
| 144 | +foreach ($TRes as $prod) { |
|
| 145 | 145 | $TProducts[$prod['key']] = $prod['label']; |
| 146 | 146 | } |
| 147 | 147 | |
@@ -185,14 +185,14 @@ discard block |
||
| 185 | 185 | print '</td></tr>'; |
| 186 | 186 | |
| 187 | 187 | // Margin Rate |
| 188 | -if (! empty($conf->global->DISPLAY_MARGIN_RATES)) { |
|
| 188 | +if (!empty($conf->global->DISPLAY_MARGIN_RATES)) { |
|
| 189 | 189 | print '<tr><td>'.$langs->trans("MarginRate").'</td><td colspan="4">'; |
| 190 | 190 | print '<span id="marginRate"></span>'; // set by jquery (see below) |
| 191 | 191 | print '</td></tr>'; |
| 192 | 192 | } |
| 193 | 193 | |
| 194 | 194 | // Mark Rate |
| 195 | -if (! empty($conf->global->DISPLAY_MARK_RATES)) { |
|
| 195 | +if (!empty($conf->global->DISPLAY_MARK_RATES)) { |
|
| 196 | 196 | print '<tr><td>'.$langs->trans("MarkRate").'</td><td colspan="4">'; |
| 197 | 197 | print '<span id="markRate"></span>'; // set by jquery (see below) |
| 198 | 198 | print '</td></tr>'; |
@@ -205,43 +205,43 @@ discard block |
||
| 205 | 205 | print '</form>'; |
| 206 | 206 | |
| 207 | 207 | $sql = "SELECT"; |
| 208 | -$sql.= " s.rowid as socid, s.nom as name, s.code_client, s.client,"; |
|
| 209 | -if ($client) $sql.= " f.rowid as facid, f.ref, f.total as total_ht, f.datef, f.paye, f.fk_statut as statut,"; |
|
| 210 | -$sql.= " sum(d.total_ht) as selling_price,"; |
|
| 208 | +$sql .= " s.rowid as socid, s.nom as name, s.code_client, s.client,"; |
|
| 209 | +if ($client) $sql .= " f.rowid as facid, f.ref, f.total as total_ht, f.datef, f.paye, f.fk_statut as statut,"; |
|
| 210 | +$sql .= " sum(d.total_ht) as selling_price,"; |
|
| 211 | 211 | // Note: qty and buy_price_ht is always positive (if not, your database may be corrupted, you can update this) |
| 212 | -$sql.= " sum(".$db->ifsql('d.total_ht < 0','d.qty * d.buy_price_ht * -1','d.qty * d.buy_price_ht').") as buying_price,"; |
|
| 213 | -$sql.= " sum(".$db->ifsql('d.total_ht < 0','-1 * (abs(d.total_ht) - (d.buy_price_ht * d.qty))','d.total_ht - (d.buy_price_ht * d.qty)').") as marge"; |
|
| 214 | -$sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; |
|
| 215 | -$sql.= ", ".MAIN_DB_PREFIX."facture as f"; |
|
| 216 | -$sql.= ", ".MAIN_DB_PREFIX."facturedet as d"; |
|
| 217 | -if(! empty($TSelectedCats)) { |
|
| 212 | +$sql .= " sum(".$db->ifsql('d.total_ht < 0', 'd.qty * d.buy_price_ht * -1', 'd.qty * d.buy_price_ht').") as buying_price,"; |
|
| 213 | +$sql .= " sum(".$db->ifsql('d.total_ht < 0', '-1 * (abs(d.total_ht) - (d.buy_price_ht * d.qty))', 'd.total_ht - (d.buy_price_ht * d.qty)').") as marge"; |
|
| 214 | +$sql .= " FROM ".MAIN_DB_PREFIX."societe as s"; |
|
| 215 | +$sql .= ", ".MAIN_DB_PREFIX."facture as f"; |
|
| 216 | +$sql .= ", ".MAIN_DB_PREFIX."facturedet as d"; |
|
| 217 | +if (!empty($TSelectedCats)) { |
|
| 218 | 218 | $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie_product as cp ON cp.fk_product=d.fk_product'; |
| 219 | 219 | } |
| 220 | 220 | |
| 221 | -if (! $user->rights->societe->client->voir && ! $socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; |
|
| 222 | -$sql.= " WHERE f.fk_soc = s.rowid"; |
|
| 223 | -if ($socid > 0) $sql.= ' AND s.rowid = '.$socid; |
|
| 224 | -if (!$user->rights->societe->client->voir && ! $socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id; |
|
| 225 | -$sql.= " AND f.fk_statut > 0"; |
|
| 226 | -$sql.= ' AND s.entity IN ('.getEntity('societe').')'; |
|
| 227 | -$sql.= " AND d.fk_facture = f.rowid"; |
|
| 228 | -$sql.= " AND (d.product_type = 0 OR d.product_type = 1)"; |
|
| 229 | -if(! empty($TSelectedProducts)) { |
|
| 230 | - $sql .= ' AND d.fk_product IN ('.implode(',', $TSelectedProducts) . ')'; |
|
| 221 | +if (!$user->rights->societe->client->voir && !$socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc"; |
|
| 222 | +$sql .= " WHERE f.fk_soc = s.rowid"; |
|
| 223 | +if ($socid > 0) $sql .= ' AND s.rowid = '.$socid; |
|
| 224 | +if (!$user->rights->societe->client->voir && !$socid) $sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id; |
|
| 225 | +$sql .= " AND f.fk_statut > 0"; |
|
| 226 | +$sql .= ' AND s.entity IN ('.getEntity('societe').')'; |
|
| 227 | +$sql .= " AND d.fk_facture = f.rowid"; |
|
| 228 | +$sql .= " AND (d.product_type = 0 OR d.product_type = 1)"; |
|
| 229 | +if (!empty($TSelectedProducts)) { |
|
| 230 | + $sql .= ' AND d.fk_product IN ('.implode(',', $TSelectedProducts).')'; |
|
| 231 | 231 | } |
| 232 | -if(! empty($TSelectedCats)) { |
|
| 233 | - $sql .= ' AND cp.fk_categorie IN ('.implode(',', $TSelectedCats) . ')'; |
|
| 232 | +if (!empty($TSelectedCats)) { |
|
| 233 | + $sql .= ' AND cp.fk_categorie IN ('.implode(',', $TSelectedCats).')'; |
|
| 234 | 234 | } |
| 235 | 235 | if (!empty($startdate)) |
| 236 | -$sql.= " AND f.datef >= '".$db->idate($startdate)."'"; |
|
| 236 | +$sql .= " AND f.datef >= '".$db->idate($startdate)."'"; |
|
| 237 | 237 | if (!empty($enddate)) |
| 238 | -$sql.= " AND f.datef <= '".$db->idate($enddate)."'"; |
|
| 238 | +$sql .= " AND f.datef <= '".$db->idate($enddate)."'"; |
|
| 239 | 239 | $sql .= " AND d.buy_price_ht IS NOT NULL"; |
| 240 | 240 | if (isset($conf->global->ForceBuyingPriceIfNull) && $conf->global->ForceBuyingPriceIfNull == 1) |
| 241 | 241 | $sql .= " AND d.buy_price_ht <> 0"; |
| 242 | -if ($client) $sql.= " GROUP BY s.rowid, s.nom, s.code_client, s.client, f.rowid, f.ref, f.total, f.datef, f.paye, f.fk_statut"; |
|
| 243 | -else $sql.= " GROUP BY s.rowid, s.nom, s.code_client, s.client"; |
|
| 244 | -$sql.=$db->order($sortfield,$sortorder); |
|
| 242 | +if ($client) $sql .= " GROUP BY s.rowid, s.nom, s.code_client, s.client, f.rowid, f.ref, f.total, f.datef, f.paye, f.fk_statut"; |
|
| 243 | +else $sql .= " GROUP BY s.rowid, s.nom, s.code_client, s.client"; |
|
| 244 | +$sql .= $db->order($sortfield, $sortorder); |
|
| 245 | 245 | // TODO: calculate total to display then restore pagination |
| 246 | 246 | //$sql.= $db->plimit($conf->liste_limit +1, $offset); |
| 247 | 247 | |
@@ -255,33 +255,33 @@ discard block |
||
| 255 | 255 | print_barre_liste($langs->trans("MarginDetails"), $page, $_SERVER["PHP_SELF"], "", $sortfield, $sortorder, '', $num, $num, '', 0, '', '', 0, 1); |
| 256 | 256 | |
| 257 | 257 | if ($conf->global->MARGIN_TYPE == "1") |
| 258 | - $labelcostprice='BuyingPrice'; |
|
| 258 | + $labelcostprice = 'BuyingPrice'; |
|
| 259 | 259 | else // value is 'costprice' or 'pmp' |
| 260 | - $labelcostprice='CostPrice'; |
|
| 260 | + $labelcostprice = 'CostPrice'; |
|
| 261 | 261 | |
| 262 | 262 | $i = 0; |
| 263 | 263 | print "<table class=\"noborder\" width=\"100%\">"; |
| 264 | 264 | |
| 265 | 265 | print '<tr class="liste_titre">'; |
| 266 | - if (! empty($client)) { |
|
| 267 | - print_liste_field_titre("Invoice",$_SERVER["PHP_SELF"],"f.ref","","&socid=".$socid,'',$sortfield,$sortorder); |
|
| 268 | - print_liste_field_titre("DateInvoice",$_SERVER["PHP_SELF"],"f.datef","","&socid=".$socid,'align="center"',$sortfield,$sortorder); |
|
| 266 | + if (!empty($client)) { |
|
| 267 | + print_liste_field_titre("Invoice", $_SERVER["PHP_SELF"], "f.ref", "", "&socid=".$socid, '', $sortfield, $sortorder); |
|
| 268 | + print_liste_field_titre("DateInvoice", $_SERVER["PHP_SELF"], "f.datef", "", "&socid=".$socid, 'align="center"', $sortfield, $sortorder); |
|
| 269 | 269 | } |
| 270 | 270 | else |
| 271 | - print_liste_field_titre("Customer",$_SERVER["PHP_SELF"],"s.nom","","&socid=".$socid,'',$sortfield,$sortorder); |
|
| 272 | - print_liste_field_titre("SellingPrice",$_SERVER["PHP_SELF"],"selling_price","","&socid=".$socid,'align="right"',$sortfield,$sortorder); |
|
| 273 | - print_liste_field_titre($labelcostprice,$_SERVER["PHP_SELF"],"buying_price","","&socid=".$socid,'align="right"',$sortfield,$sortorder); |
|
| 274 | - print_liste_field_titre("Margin",$_SERVER["PHP_SELF"],"marge","","&socid=".$socid,'align="right"',$sortfield,$sortorder); |
|
| 275 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 276 | - print_liste_field_titre("MarginRate",$_SERVER["PHP_SELF"],"","","&socid=".$socid,'align="right"',$sortfield,$sortorder); |
|
| 277 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 278 | - print_liste_field_titre("MarkRate",$_SERVER["PHP_SELF"],"","","&socid=".$socid,'align="right"',$sortfield,$sortorder); |
|
| 271 | + print_liste_field_titre("Customer", $_SERVER["PHP_SELF"], "s.nom", "", "&socid=".$socid, '', $sortfield, $sortorder); |
|
| 272 | + print_liste_field_titre("SellingPrice", $_SERVER["PHP_SELF"], "selling_price", "", "&socid=".$socid, 'align="right"', $sortfield, $sortorder); |
|
| 273 | + print_liste_field_titre($labelcostprice, $_SERVER["PHP_SELF"], "buying_price", "", "&socid=".$socid, 'align="right"', $sortfield, $sortorder); |
|
| 274 | + print_liste_field_titre("Margin", $_SERVER["PHP_SELF"], "marge", "", "&socid=".$socid, 'align="right"', $sortfield, $sortorder); |
|
| 275 | + if (!empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 276 | + print_liste_field_titre("MarginRate", $_SERVER["PHP_SELF"], "", "", "&socid=".$socid, 'align="right"', $sortfield, $sortorder); |
|
| 277 | + if (!empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 278 | + print_liste_field_titre("MarkRate", $_SERVER["PHP_SELF"], "", "", "&socid=".$socid, 'align="right"', $sortfield, $sortorder); |
|
| 279 | 279 | print "</tr>\n"; |
| 280 | 280 | |
| 281 | 281 | $cumul_achat = 0; |
| 282 | 282 | $cumul_vente = 0; |
| 283 | 283 | |
| 284 | - $rounding = min($conf->global->MAIN_MAX_DECIMALS_UNIT,$conf->global->MAIN_MAX_DECIMALS_TOT); |
|
| 284 | + $rounding = min($conf->global->MAIN_MAX_DECIMALS_UNIT, $conf->global->MAIN_MAX_DECIMALS_TOT); |
|
| 285 | 285 | |
| 286 | 286 | if ($num > 0) |
| 287 | 287 | { |
@@ -295,39 +295,39 @@ discard block |
||
| 295 | 295 | |
| 296 | 296 | if ($marge < 0) |
| 297 | 297 | { |
| 298 | - $marginRate = ($pa != 0)?-1*(100 * $marge / $pa):'' ; |
|
| 299 | - $markRate = ($pv != 0)?-1*(100 * $marge / $pv):'' ; |
|
| 298 | + $marginRate = ($pa != 0) ?-1 * (100 * $marge / $pa) : ''; |
|
| 299 | + $markRate = ($pv != 0) ?-1 * (100 * $marge / $pv) : ''; |
|
| 300 | 300 | } |
| 301 | 301 | else |
| 302 | 302 | { |
| 303 | - $marginRate = ($pa != 0)?(100 * $marge / $pa):'' ; |
|
| 304 | - $markRate = ($pv != 0)?(100 * $marge / $pv):'' ; |
|
| 303 | + $marginRate = ($pa != 0) ? (100 * $marge / $pa) : ''; |
|
| 304 | + $markRate = ($pv != 0) ? (100 * $marge / $pv) : ''; |
|
| 305 | 305 | } |
| 306 | 306 | |
| 307 | 307 | print '<tr class="oddeven">'; |
| 308 | 308 | if ($client) { |
| 309 | 309 | print '<td>'; |
| 310 | - $invoicestatic->id=$objp->facid; |
|
| 311 | - $invoicestatic->ref=$objp->ref; |
|
| 310 | + $invoicestatic->id = $objp->facid; |
|
| 311 | + $invoicestatic->ref = $objp->ref; |
|
| 312 | 312 | print $invoicestatic->getNomUrl(1); |
| 313 | 313 | print "</td>\n"; |
| 314 | 314 | print "<td align=\"center\">"; |
| 315 | - print dol_print_date($db->jdate($objp->datef),'day')."</td>"; |
|
| 315 | + print dol_print_date($db->jdate($objp->datef), 'day')."</td>"; |
|
| 316 | 316 | } |
| 317 | 317 | else { |
| 318 | - $companystatic->id=$objp->socid; |
|
| 319 | - $companystatic->name=$objp->name; |
|
| 320 | - $companystatic->client=$objp->client; |
|
| 321 | - print "<td>".$companystatic->getNomUrl(1,'margin')."</td>\n"; |
|
| 318 | + $companystatic->id = $objp->socid; |
|
| 319 | + $companystatic->name = $objp->name; |
|
| 320 | + $companystatic->client = $objp->client; |
|
| 321 | + print "<td>".$companystatic->getNomUrl(1, 'margin')."</td>\n"; |
|
| 322 | 322 | } |
| 323 | 323 | |
| 324 | 324 | print "<td align=\"right\">".price($pv, null, null, null, null, $rounding)."</td>\n"; |
| 325 | 325 | print "<td align=\"right\">".price($pa, null, null, null, null, $rounding)."</td>\n"; |
| 326 | 326 | print "<td align=\"right\">".price($marge, null, null, null, null, $rounding)."</td>\n"; |
| 327 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 328 | - print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 329 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 330 | - print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 327 | + if (!empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 328 | + print "<td align=\"right\">".(($marginRate === '') ? 'n/a' : price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 329 | + if (!empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 330 | + print "<td align=\"right\">".(($markRate === '') ? 'n/a' : price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 331 | 331 | print "</tr>\n"; |
| 332 | 332 | |
| 333 | 333 | $i++; |
@@ -346,8 +346,8 @@ discard block |
||
| 346 | 346 | } |
| 347 | 347 | else |
| 348 | 348 | {*/ |
| 349 | - $marginRate = ($cumul_achat != 0)?(100 * $totalMargin / $cumul_achat):''; |
|
| 350 | - $markRate = ($cumul_vente != 0)?(100 * $totalMargin / $cumul_vente):''; |
|
| 349 | + $marginRate = ($cumul_achat != 0) ? (100 * $totalMargin / $cumul_achat) : ''; |
|
| 350 | + $markRate = ($cumul_vente != 0) ? (100 * $totalMargin / $cumul_vente) : ''; |
|
| 351 | 351 | //} |
| 352 | 352 | |
| 353 | 353 | print '<tr class="liste_total">'; |
@@ -359,10 +359,10 @@ discard block |
||
| 359 | 359 | print "<td align=\"right\">".price($cumul_vente, null, null, null, null, $rounding)."</td>\n"; |
| 360 | 360 | print "<td align=\"right\">".price($cumul_achat, null, null, null, null, $rounding)."</td>\n"; |
| 361 | 361 | print "<td align=\"right\">".price($totalMargin, null, null, null, null, $rounding)."</td>\n"; |
| 362 | - if (! empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 363 | - print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 364 | - if (! empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 365 | - print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 362 | + if (!empty($conf->global->DISPLAY_MARGIN_RATES)) |
|
| 363 | + print "<td align=\"right\">".(($marginRate === '') ? 'n/a' : price($marginRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 364 | + if (!empty($conf->global->DISPLAY_MARK_RATES)) |
|
| 365 | + print "<td align=\"right\">".(($markRate === '') ? 'n/a' : price($markRate, null, null, null, null, $rounding)."%")."</td>\n"; |
|
| 366 | 366 | print "</tr>\n"; |
| 367 | 367 | |
| 368 | 368 | print "</table>"; |
@@ -381,8 +381,8 @@ discard block |
||
| 381 | 381 | });*/ |
| 382 | 382 | |
| 383 | 383 | $("#totalMargin").html("'.price($totalMargin, null, null, null, null, $rounding).'"); |
| 384 | - $("#marginRate").html("'.(($marginRate === '')?'n/a':price($marginRate, null, null, null, null, $rounding)."%").'"); |
|
| 385 | - $("#markRate").html("'.(($markRate === '')?'n/a':price($markRate, null, null, null, null, $rounding)."%").'"); |
|
| 384 | + $("#marginRate").html("'.(($marginRate === '') ? 'n/a' : price($marginRate, null, null, null, null, $rounding)."%").'"); |
|
| 385 | + $("#markRate").html("'.(($markRate === '') ? 'n/a' : price($markRate, null, null, null, null, $rounding)."%").'"); |
|
| 386 | 386 | }); |
| 387 | 387 | </script> |
| 388 | 388 | '; |
@@ -201,115 +201,115 @@ |
||
| 201 | 201 | $nbtotalofrecords = ''; |
| 202 | 202 | if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { |
| 203 | 203 | |
| 204 | - dol_syslog(__FILE__, LOG_DEBUG); |
|
| 205 | - $result = $db->query($sql); |
|
| 206 | - $nbtotalofrecords = $db->num_rows($result); |
|
| 207 | - if (($page * $limit) > $nbtotalofrecords) // if total resultset is smaller then paging size (filtering), goto and load page 0 |
|
| 208 | - { |
|
| 209 | - $page = 0; |
|
| 210 | - $offset = 0; |
|
| 211 | - } |
|
| 204 | + dol_syslog(__FILE__, LOG_DEBUG); |
|
| 205 | + $result = $db->query($sql); |
|
| 206 | + $nbtotalofrecords = $db->num_rows($result); |
|
| 207 | + if (($page * $limit) > $nbtotalofrecords) // if total resultset is smaller then paging size (filtering), goto and load page 0 |
|
| 208 | + { |
|
| 209 | + $page = 0; |
|
| 210 | + $offset = 0; |
|
| 211 | + } |
|
| 212 | 212 | } |
| 213 | 213 | |
| 214 | 214 | $sql .= $db->plimit($limit+1, $offset); |
| 215 | 215 | |
| 216 | 216 | $result = $db->query($sql); |
| 217 | 217 | if ($result) { |
| 218 | - $num = $db->num_rows($result); |
|
| 218 | + $num = $db->num_rows($result); |
|
| 219 | 219 | |
| 220 | - print '<br>'; |
|
| 221 | - print_barre_liste($langs->trans("MarginDetails"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, '', 0, '', '', $limit); |
|
| 220 | + print '<br>'; |
|
| 221 | + print_barre_liste($langs->trans("MarginDetails"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, '', 0, '', '', $limit); |
|
| 222 | 222 | |
| 223 | - if ($conf->global->MARGIN_TYPE == "1") |
|
| 224 | - $labelcostprice='BuyingPrice'; |
|
| 225 | - else // value is 'costprice' or 'pmp' |
|
| 226 | - $labelcostprice='CostPrice'; |
|
| 223 | + if ($conf->global->MARGIN_TYPE == "1") |
|
| 224 | + $labelcostprice='BuyingPrice'; |
|
| 225 | + else // value is 'costprice' or 'pmp' |
|
| 226 | + $labelcostprice='CostPrice'; |
|
| 227 | 227 | |
| 228 | - $moreforfilter=''; |
|
| 228 | + $moreforfilter=''; |
|
| 229 | 229 | |
| 230 | - $varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage; |
|
| 231 | - //$selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields |
|
| 232 | - //if ($massactionbutton) $selectedfields.=$form->showCheckAddButtons('checkforselect', 1); |
|
| 233 | - $selectedfields=''; |
|
| 230 | + $varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage; |
|
| 231 | + //$selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields |
|
| 232 | + //if ($massactionbutton) $selectedfields.=$form->showCheckAddButtons('checkforselect', 1); |
|
| 233 | + $selectedfields=''; |
|
| 234 | 234 | |
| 235 | 235 | print '<div class="div-table-responsive">'; |
| 236 | 236 | print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n"; |
| 237 | 237 | |
| 238 | - print '<tr class="liste_titre liste_titre_search">'; |
|
| 239 | - print '<td><input type="text" name="search_ref" value="'.dol_escape_htmltag($search_ref).'"></td>'; |
|
| 240 | - print '<td></td>'; |
|
| 241 | - print '<td></td>'; |
|
| 242 | - print '<td></td>'; |
|
| 243 | - print '<td></td>'; |
|
| 244 | - print '<td></td>'; |
|
| 238 | + print '<tr class="liste_titre liste_titre_search">'; |
|
| 239 | + print '<td><input type="text" name="search_ref" value="'.dol_escape_htmltag($search_ref).'"></td>'; |
|
| 240 | + print '<td></td>'; |
|
| 241 | + print '<td></td>'; |
|
| 242 | + print '<td></td>'; |
|
| 243 | + print '<td></td>'; |
|
| 244 | + print '<td></td>'; |
|
| 245 | 245 | print '<td class="liste_titre" align="middle">'; |
| 246 | 246 | $searchpitco=$form->showFilterButtons(); |
| 247 | 247 | print $searchpitco; |
| 248 | 248 | print '</td>'; |
| 249 | - print "</tr>\n"; |
|
| 250 | - |
|
| 251 | - print '<tr class="liste_titre">'; |
|
| 252 | - print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "f.ref", "", $param, '', $sortfield, $sortorder); |
|
| 253 | - print_liste_field_titre("Description", $_SERVER["PHP_SELF"], "", "", $param, 'width=20%', $sortfield, $sortorder); |
|
| 254 | - print_liste_field_titre("UnitPriceHT", $_SERVER["PHP_SELF"], "d.subprice", "", $param, 'align="right"', $sortfield, $sortorder); |
|
| 255 | - print_liste_field_titre($labelcostprice, $_SERVER["PHP_SELF"], "d.buy_price_ht", "", $param, 'align="right"', $sortfield, $sortorder); |
|
| 256 | - print_liste_field_titre("Qty", $_SERVER["PHP_SELF"], "d.qty", "", $param, 'align="right"', $sortfield, $sortorder); |
|
| 257 | - print_liste_field_titre("AmountTTC", $_SERVER["PHP_SELF"], "d.total_ht", "", $param, 'align="right"', $sortfield, $sortorder); |
|
| 258 | - print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'',$param,'align="center"',$sortfield,$sortorder,'maxwidthsearch '); |
|
| 259 | - print "</tr>\n"; |
|
| 249 | + print "</tr>\n"; |
|
| 250 | + |
|
| 251 | + print '<tr class="liste_titre">'; |
|
| 252 | + print_liste_field_titre("Ref", $_SERVER["PHP_SELF"], "f.ref", "", $param, '', $sortfield, $sortorder); |
|
| 253 | + print_liste_field_titre("Description", $_SERVER["PHP_SELF"], "", "", $param, 'width=20%', $sortfield, $sortorder); |
|
| 254 | + print_liste_field_titre("UnitPriceHT", $_SERVER["PHP_SELF"], "d.subprice", "", $param, 'align="right"', $sortfield, $sortorder); |
|
| 255 | + print_liste_field_titre($labelcostprice, $_SERVER["PHP_SELF"], "d.buy_price_ht", "", $param, 'align="right"', $sortfield, $sortorder); |
|
| 256 | + print_liste_field_titre("Qty", $_SERVER["PHP_SELF"], "d.qty", "", $param, 'align="right"', $sortfield, $sortorder); |
|
| 257 | + print_liste_field_titre("AmountTTC", $_SERVER["PHP_SELF"], "d.total_ht", "", $param, 'align="right"', $sortfield, $sortorder); |
|
| 258 | + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'',$param,'align="center"',$sortfield,$sortorder,'maxwidthsearch '); |
|
| 259 | + print "</tr>\n"; |
|
| 260 | 260 | |
| 261 | 261 | $i=0; |
| 262 | - while ($i < min($num, $limit)) |
|
| 263 | - { |
|
| 264 | - $objp = $db->fetch_object($result); |
|
| 265 | - |
|
| 266 | - print '<tr class="oddeven">'; |
|
| 267 | - print '<td>'; |
|
| 268 | - $result_inner = $invoicestatic->fetch($objp->invoiceid); |
|
| 269 | - if ($result_inner < 0) { |
|
| 270 | - setEventMessages($invoicestatic->error, null, 'errors'); |
|
| 271 | - } else { |
|
| 272 | - print $invoicestatic->getNomUrl(1); |
|
| 273 | - } |
|
| 274 | - print '</td>'; |
|
| 275 | - print '<td>'; |
|
| 276 | - if (! empty($objp->fk_product)) { |
|
| 277 | - $result_inner = $productstatic->fetch($objp->fk_product); |
|
| 278 | - if ($result_inner < 0) { |
|
| 279 | - setEventMessages($productstatic->error, null, 'errors'); |
|
| 280 | - } else { |
|
| 281 | - print $productstatic->getNomUrl(1); |
|
| 282 | - } |
|
| 283 | - } else { |
|
| 284 | - print $objp->label; |
|
| 285 | - print ' '; |
|
| 286 | - print $objp->description; |
|
| 287 | - } |
|
| 288 | - print '</td>'; |
|
| 289 | - print '<td align="right">'; |
|
| 290 | - print price($objp->subprice); |
|
| 291 | - print '</td>'; |
|
| 292 | - print '<td align="right">'; |
|
| 293 | - print '<input type="text" name="buyingprice_' . $objp->invoicedetid . '" id="buyingprice_' . $objp->invoicedetid . '" size="6" value="' . price($objp->buy_price_ht) . '" class="right flat">'; |
|
| 294 | - print '</td>'; |
|
| 295 | - print '<td align="right">'; |
|
| 296 | - print $objp->qty; |
|
| 297 | - print '</td>'; |
|
| 298 | - print '<td align="right">'; |
|
| 299 | - print price($objp->total_ht); |
|
| 300 | - print '</td>'; |
|
| 301 | - print '<td></td>'; |
|
| 302 | - |
|
| 303 | - print "</tr>\n"; |
|
| 304 | - |
|
| 305 | - $i ++; |
|
| 306 | - } |
|
| 307 | - |
|
| 308 | - print "</table>"; |
|
| 309 | - |
|
| 310 | - print "</div>"; |
|
| 262 | + while ($i < min($num, $limit)) |
|
| 263 | + { |
|
| 264 | + $objp = $db->fetch_object($result); |
|
| 265 | + |
|
| 266 | + print '<tr class="oddeven">'; |
|
| 267 | + print '<td>'; |
|
| 268 | + $result_inner = $invoicestatic->fetch($objp->invoiceid); |
|
| 269 | + if ($result_inner < 0) { |
|
| 270 | + setEventMessages($invoicestatic->error, null, 'errors'); |
|
| 271 | + } else { |
|
| 272 | + print $invoicestatic->getNomUrl(1); |
|
| 273 | + } |
|
| 274 | + print '</td>'; |
|
| 275 | + print '<td>'; |
|
| 276 | + if (! empty($objp->fk_product)) { |
|
| 277 | + $result_inner = $productstatic->fetch($objp->fk_product); |
|
| 278 | + if ($result_inner < 0) { |
|
| 279 | + setEventMessages($productstatic->error, null, 'errors'); |
|
| 280 | + } else { |
|
| 281 | + print $productstatic->getNomUrl(1); |
|
| 282 | + } |
|
| 283 | + } else { |
|
| 284 | + print $objp->label; |
|
| 285 | + print ' '; |
|
| 286 | + print $objp->description; |
|
| 287 | + } |
|
| 288 | + print '</td>'; |
|
| 289 | + print '<td align="right">'; |
|
| 290 | + print price($objp->subprice); |
|
| 291 | + print '</td>'; |
|
| 292 | + print '<td align="right">'; |
|
| 293 | + print '<input type="text" name="buyingprice_' . $objp->invoicedetid . '" id="buyingprice_' . $objp->invoicedetid . '" size="6" value="' . price($objp->buy_price_ht) . '" class="right flat">'; |
|
| 294 | + print '</td>'; |
|
| 295 | + print '<td align="right">'; |
|
| 296 | + print $objp->qty; |
|
| 297 | + print '</td>'; |
|
| 298 | + print '<td align="right">'; |
|
| 299 | + print price($objp->total_ht); |
|
| 300 | + print '</td>'; |
|
| 301 | + print '<td></td>'; |
|
| 302 | + |
|
| 303 | + print "</tr>\n"; |
|
| 304 | + |
|
| 305 | + $i ++; |
|
| 306 | + } |
|
| 307 | + |
|
| 308 | + print "</table>"; |
|
| 309 | + |
|
| 310 | + print "</div>"; |
|
| 311 | 311 | } else { |
| 312 | - dol_print_error($db); |
|
| 312 | + dol_print_error($db); |
|
| 313 | 313 | } |
| 314 | 314 | |
| 315 | 315 | |
@@ -48,8 +48,12 @@ discard block |
||
| 48 | 48 | $offset = $limit * $page; |
| 49 | 49 | $pageprev = $page - 1; |
| 50 | 50 | $pagenext = $page + 1; |
| 51 | -if (! $sortorder) $sortorder = "DESC"; |
|
| 52 | -if (! $sortfield) $sortfield = 'f.ref'; |
|
| 51 | +if (! $sortorder) { |
|
| 52 | + $sortorder = "DESC"; |
|
| 53 | +} |
|
| 54 | +if (! $sortfield) { |
|
| 55 | + $sortfield = 'f.ref'; |
|
| 56 | +} |
|
| 53 | 57 | |
| 54 | 58 | $startdate = $enddate = ''; |
| 55 | 59 | |
@@ -78,7 +82,9 @@ discard block |
||
| 78 | 82 | |
| 79 | 83 | $parameters=array(); |
| 80 | 84 | $reshook=$hookmanager->executeHooks('doActions',$parameters, $object, $action); // Note that $action and $object may have been modified by some hooks |
| 81 | -if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); |
|
| 85 | +if ($reshook < 0) { |
|
| 86 | + setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); |
|
| 87 | +} |
|
| 82 | 88 | |
| 83 | 89 | if (empty($reshook)) |
| 84 | 90 | { |
@@ -108,9 +114,11 @@ discard block |
||
| 108 | 114 | } |
| 109 | 115 | |
| 110 | 116 | // Purge search criteria |
| 111 | - if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') || GETPOST('button_removefilter','alpha')) // All tests are required to be compatible with all browsers |
|
| 117 | + if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') || GETPOST('button_removefilter','alpha')) { |
|
| 118 | + // All tests are required to be compatible with all browsers |
|
| 112 | 119 | { |
| 113 | 120 | $search_ref=''; |
| 121 | + } |
|
| 114 | 122 | $search_array_options=array(); |
| 115 | 123 | } |
| 116 | 124 | |
@@ -146,12 +154,24 @@ discard block |
||
| 146 | 154 | // print_fiche_titre($text); |
| 147 | 155 | |
| 148 | 156 | $param=''; |
| 149 | -if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage; |
|
| 150 | -if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit; |
|
| 151 | -if ($search_ref != '') $param.='&search_ref='.urlencode($search_ref); |
|
| 152 | -if (! empty($startdate)) $param .= '&startdatemonth=' . GETPOST('startdatemonth', 'int') . '&startdateday=' . GETPOST('startdateday', 'int') . '&startdateyear=' . GETPOST('startdateyear', 'int'); |
|
| 153 | -if (! empty($enddate)) $param .= '&enddatemonth=' . GETPOST('enddatemonth', 'int') . '&enddateday=' . GETPOST('enddateday', 'int') . '&enddateyear=' . GETPOST('enddateyear', 'int'); |
|
| 154 | -if ($optioncss != '') $param.='&optioncss='.$optioncss; |
|
| 157 | +if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) { |
|
| 158 | + $param.='&contextpage='.$contextpage; |
|
| 159 | +} |
|
| 160 | +if ($limit > 0 && $limit != $conf->liste_limit) { |
|
| 161 | + $param.='&limit='.$limit; |
|
| 162 | +} |
|
| 163 | +if ($search_ref != '') { |
|
| 164 | + $param.='&search_ref='.urlencode($search_ref); |
|
| 165 | +} |
|
| 166 | +if (! empty($startdate)) { |
|
| 167 | + $param .= '&startdatemonth=' . GETPOST('startdatemonth', 'int') . '&startdateday=' . GETPOST('startdateday', 'int') . '&startdateyear=' . GETPOST('startdateyear', 'int'); |
|
| 168 | +} |
|
| 169 | +if (! empty($enddate)) { |
|
| 170 | + $param .= '&enddatemonth=' . GETPOST('enddatemonth', 'int') . '&enddateday=' . GETPOST('enddateday', 'int') . '&enddateyear=' . GETPOST('enddateyear', 'int'); |
|
| 171 | +} |
|
| 172 | +if ($optioncss != '') { |
|
| 173 | + $param.='&optioncss='.$optioncss; |
|
| 174 | +} |
|
| 155 | 175 | |
| 156 | 176 | // Show tabs |
| 157 | 177 | $head = marges_prepare_head($user); |
@@ -192,9 +212,15 @@ discard block |
||
| 192 | 212 | $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON d.fk_product = p.rowid"; |
| 193 | 213 | $sql .= " WHERE f.fk_statut > 0"; |
| 194 | 214 | $sql .= " AND f.entity IN (" . getEntity('invoice') . ") "; |
| 195 | -if (! empty($startdate)) $sql .= " AND f.datef >= '" . $db->idate($startdate) . "'"; |
|
| 196 | -if (! empty($enddate)) $sql .= " AND f.datef <= '" . $db->idate($enddate) . "'"; |
|
| 197 | -if ($search_ref) $sql.=natural_search('f.ref', $search_ref); |
|
| 215 | +if (! empty($startdate)) { |
|
| 216 | + $sql .= " AND f.datef >= '" . $db->idate($startdate) . "'"; |
|
| 217 | +} |
|
| 218 | +if (! empty($enddate)) { |
|
| 219 | + $sql .= " AND f.datef <= '" . $db->idate($enddate) . "'"; |
|
| 220 | +} |
|
| 221 | +if ($search_ref) { |
|
| 222 | + $sql.=natural_search('f.ref', $search_ref); |
|
| 223 | +} |
|
| 198 | 224 | $sql .= " AND d.buy_price_ht IS NOT NULL"; |
| 199 | 225 | $sql .= $db->order($sortfield, $sortorder); |
| 200 | 226 | |
@@ -204,9 +230,11 @@ discard block |
||
| 204 | 230 | dol_syslog(__FILE__, LOG_DEBUG); |
| 205 | 231 | $result = $db->query($sql); |
| 206 | 232 | $nbtotalofrecords = $db->num_rows($result); |
| 207 | - if (($page * $limit) > $nbtotalofrecords) // if total resultset is smaller then paging size (filtering), goto and load page 0 |
|
| 233 | + if (($page * $limit) > $nbtotalofrecords) { |
|
| 234 | + // if total resultset is smaller then paging size (filtering), goto and load page 0 |
|
| 208 | 235 | { |
| 209 | 236 | $page = 0; |
| 237 | + } |
|
| 210 | 238 | $offset = 0; |
| 211 | 239 | } |
| 212 | 240 | } |
@@ -220,10 +248,12 @@ discard block |
||
| 220 | 248 | print '<br>'; |
| 221 | 249 | print_barre_liste($langs->trans("MarginDetails"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, '', 0, '', '', $limit); |
| 222 | 250 | |
| 223 | - if ($conf->global->MARGIN_TYPE == "1") |
|
| 224 | - $labelcostprice='BuyingPrice'; |
|
| 225 | - else // value is 'costprice' or 'pmp' |
|
| 251 | + if ($conf->global->MARGIN_TYPE == "1") { |
|
| 252 | + $labelcostprice='BuyingPrice'; |
|
| 253 | + } else { |
|
| 254 | + // value is 'costprice' or 'pmp' |
|
| 226 | 255 | $labelcostprice='CostPrice'; |
| 256 | + } |
|
| 227 | 257 | |
| 228 | 258 | $moreforfilter=''; |
| 229 | 259 | |
@@ -26,44 +26,44 @@ discard block |
||
| 26 | 26 | |
| 27 | 27 | // Copyright (C) 2018 Alxarafe/Alixar <[email protected]> |
| 28 | 28 | defined('BASE_PATH') or die('Single entry point through the index.php of the main folder'); |
| 29 | -require DOL_BASE_PATH . '/main.inc.php'; |
|
| 29 | +require DOL_BASE_PATH.'/main.inc.php'; |
|
| 30 | 30 | |
| 31 | -require_once DOL_DOCUMENT_ROOT . '/core/lib/company.lib.php'; |
|
| 32 | -require_once DOL_DOCUMENT_ROOT . '/compta/facture/class/facture.class.php'; |
|
| 33 | -require_once DOL_DOCUMENT_ROOT . '/product/class/product.class.php'; |
|
| 34 | -require_once DOL_DOCUMENT_ROOT . '/margin/lib/margins.lib.php'; |
|
| 31 | +require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php'; |
|
| 32 | +require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; |
|
| 33 | +require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; |
|
| 34 | +require_once DOL_DOCUMENT_ROOT.'/margin/lib/margins.lib.php'; |
|
| 35 | 35 | |
| 36 | 36 | // Load translation files required by the page |
| 37 | 37 | $langs->loadLangs(array('companies', 'bills', 'products', 'margins')); |
| 38 | 38 | |
| 39 | -$action = GETPOST('action','alpha'); |
|
| 40 | -$massaction = GETPOST('massaction','alpha'); |
|
| 39 | +$action = GETPOST('action', 'alpha'); |
|
| 40 | +$massaction = GETPOST('massaction', 'alpha'); |
|
| 41 | 41 | $toselect = GETPOST('toselect', 'array'); |
| 42 | -$contextpage= GETPOST('contextpage','aZ')?GETPOST('contextpage','aZ'):'margindetail'; // To manage different context of search |
|
| 43 | -$backtopage = GETPOST('backtopage','alpha'); |
|
| 44 | -$optioncss = GETPOST('optioncss','alpha'); |
|
| 42 | +$contextpage = GETPOST('contextpage', 'aZ') ?GETPOST('contextpage', 'aZ') : 'margindetail'; // To manage different context of search |
|
| 43 | +$backtopage = GETPOST('backtopage', 'alpha'); |
|
| 44 | +$optioncss = GETPOST('optioncss', 'alpha'); |
|
| 45 | 45 | |
| 46 | 46 | // Load variable for pagination |
| 47 | -$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit; |
|
| 48 | -$sortfield = GETPOST('sortfield','alpha'); |
|
| 49 | -$sortorder = GETPOST('sortorder','alpha'); |
|
| 50 | -$page = GETPOST('page','int'); |
|
| 47 | +$limit = GETPOST('limit', 'int') ?GETPOST('limit', 'int') : $conf->liste_limit; |
|
| 48 | +$sortfield = GETPOST('sortfield', 'alpha'); |
|
| 49 | +$sortorder = GETPOST('sortorder', 'alpha'); |
|
| 50 | +$page = GETPOST('page', 'int'); |
|
| 51 | 51 | if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 |
| 52 | 52 | $offset = $limit * $page; |
| 53 | 53 | $pageprev = $page - 1; |
| 54 | 54 | $pagenext = $page + 1; |
| 55 | -if (! $sortorder) $sortorder = "DESC"; |
|
| 56 | -if (! $sortfield) $sortfield = 'f.ref'; |
|
| 55 | +if (!$sortorder) $sortorder = "DESC"; |
|
| 56 | +if (!$sortfield) $sortfield = 'f.ref'; |
|
| 57 | 57 | |
| 58 | 58 | $startdate = $enddate = ''; |
| 59 | 59 | |
| 60 | 60 | $startdate = dol_mktime(0, 0, 0, GETPOST('startdatemonth', 'int'), GETPOST('startdateday', 'int'), GETPOST('startdateyear', 'int')); |
| 61 | 61 | $enddate = dol_mktime(23, 59, 59, GETPOST('enddatemonth', 'int'), GETPOST('enddateday', 'int'), GETPOST('enddateyear', 'int')); |
| 62 | 62 | |
| 63 | -$search_ref = GETPOST('search_ref','alpha'); |
|
| 63 | +$search_ref = GETPOST('search_ref', 'alpha'); |
|
| 64 | 64 | |
| 65 | 65 | // Security check |
| 66 | -$result=restrictedArea($user,'margins'); |
|
| 66 | +$result = restrictedArea($user, 'margins'); |
|
| 67 | 67 | |
| 68 | 68 | // Both test are required to be compatible with all browsers |
| 69 | 69 | if (GETPOST("button_search_x") || GETPOST("button_search")) { |
@@ -77,11 +77,11 @@ discard block |
||
| 77 | 77 | * Actions |
| 78 | 78 | */ |
| 79 | 79 | |
| 80 | -if (GETPOST('cancel','alpha')) { $action='list'; $massaction=''; } |
|
| 81 | -if (! GETPOST('confirmmassaction','alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction=''; } |
|
| 80 | +if (GETPOST('cancel', 'alpha')) { $action = 'list'; $massaction = ''; } |
|
| 81 | +if (!GETPOST('confirmmassaction', 'alpha') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction = ''; } |
|
| 82 | 82 | |
| 83 | -$parameters=array(); |
|
| 84 | -$reshook=$hookmanager->executeHooks('doActions',$parameters, $object, $action); // Note that $action and $object may have been modified by some hooks |
|
| 83 | +$parameters = array(); |
|
| 84 | +$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks |
|
| 85 | 85 | if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); |
| 86 | 86 | |
| 87 | 87 | if (empty($reshook)) |
@@ -92,15 +92,15 @@ discard block |
||
| 92 | 92 | if ($action == 'update') { |
| 93 | 93 | $datapost = $_POST; |
| 94 | 94 | |
| 95 | - foreach ( $datapost as $key => $value ) { |
|
| 95 | + foreach ($datapost as $key => $value) { |
|
| 96 | 96 | if (strpos($key, 'buyingprice_') !== false) { |
| 97 | 97 | $tmp_array = explode('_', $key); |
| 98 | 98 | if (count($tmp_array) > 0) { |
| 99 | 99 | $invoicedet_id = $tmp_array[1]; |
| 100 | - if (! empty($invoicedet_id)) { |
|
| 101 | - $sql = 'UPDATE ' . MAIN_DB_PREFIX . 'facturedet'; |
|
| 102 | - $sql .= ' SET buy_price_ht=\'' . price2num($value) . '\''; |
|
| 103 | - $sql .= ' WHERE rowid=' . $invoicedet_id; |
|
| 100 | + if (!empty($invoicedet_id)) { |
|
| 101 | + $sql = 'UPDATE '.MAIN_DB_PREFIX.'facturedet'; |
|
| 102 | + $sql .= ' SET buy_price_ht=\''.price2num($value).'\''; |
|
| 103 | + $sql .= ' WHERE rowid='.$invoicedet_id; |
|
| 104 | 104 | $result = $db->query($sql); |
| 105 | 105 | if (!$result) { |
| 106 | 106 | setEventMessages($db->lasterror, null, 'errors'); |
@@ -112,10 +112,10 @@ discard block |
||
| 112 | 112 | } |
| 113 | 113 | |
| 114 | 114 | // Purge search criteria |
| 115 | - if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') || GETPOST('button_removefilter','alpha')) // All tests are required to be compatible with all browsers |
|
| 115 | + if (GETPOST('button_removefilter_x', 'alpha') || GETPOST('button_removefilter.x', 'alpha') || GETPOST('button_removefilter', 'alpha')) // All tests are required to be compatible with all browsers |
|
| 116 | 116 | { |
| 117 | - $search_ref=''; |
|
| 118 | - $search_array_options=array(); |
|
| 117 | + $search_ref = ''; |
|
| 118 | + $search_array_options = array(); |
|
| 119 | 119 | } |
| 120 | 120 | |
| 121 | 121 | // Mass actions |
@@ -149,34 +149,34 @@ discard block |
||
| 149 | 149 | |
| 150 | 150 | // print_fiche_titre($text); |
| 151 | 151 | |
| 152 | -$param=''; |
|
| 153 | -if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage; |
|
| 154 | -if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit; |
|
| 155 | -if ($search_ref != '') $param.='&search_ref='.urlencode($search_ref); |
|
| 156 | -if (! empty($startdate)) $param .= '&startdatemonth=' . GETPOST('startdatemonth', 'int') . '&startdateday=' . GETPOST('startdateday', 'int') . '&startdateyear=' . GETPOST('startdateyear', 'int'); |
|
| 157 | -if (! empty($enddate)) $param .= '&enddatemonth=' . GETPOST('enddatemonth', 'int') . '&enddateday=' . GETPOST('enddateday', 'int') . '&enddateyear=' . GETPOST('enddateyear', 'int'); |
|
| 158 | -if ($optioncss != '') $param.='&optioncss='.$optioncss; |
|
| 152 | +$param = ''; |
|
| 153 | +if (!empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param .= '&contextpage='.$contextpage; |
|
| 154 | +if ($limit > 0 && $limit != $conf->liste_limit) $param .= '&limit='.$limit; |
|
| 155 | +if ($search_ref != '') $param .= '&search_ref='.urlencode($search_ref); |
|
| 156 | +if (!empty($startdate)) $param .= '&startdatemonth='.GETPOST('startdatemonth', 'int').'&startdateday='.GETPOST('startdateday', 'int').'&startdateyear='.GETPOST('startdateyear', 'int'); |
|
| 157 | +if (!empty($enddate)) $param .= '&enddatemonth='.GETPOST('enddatemonth', 'int').'&enddateday='.GETPOST('enddateday', 'int').'&enddateyear='.GETPOST('enddateyear', 'int'); |
|
| 158 | +if ($optioncss != '') $param .= '&optioncss='.$optioncss; |
|
| 159 | 159 | |
| 160 | 160 | // Show tabs |
| 161 | 161 | $head = marges_prepare_head($user); |
| 162 | 162 | $picto = 'margin'; |
| 163 | 163 | |
| 164 | -print '<form method="post" name="sel" action="' . $_SERVER['PHP_SELF'] . '">'; |
|
| 164 | +print '<form method="post" name="sel" action="'.$_SERVER['PHP_SELF'].'">'; |
|
| 165 | 165 | |
| 166 | 166 | dol_fiche_head($head, $langs->trans('checkMargins'), $title, 0, $picto); |
| 167 | 167 | |
| 168 | 168 | print '<table class="border" width="100%">'; |
| 169 | 169 | |
| 170 | -print '<tr><td class="titlefield">' . $langs->trans('DateStart') . ' (' . $langs->trans("DateValidation") . ')</td>'; |
|
| 170 | +print '<tr><td class="titlefield">'.$langs->trans('DateStart').' ('.$langs->trans("DateValidation").')</td>'; |
|
| 171 | 171 | print '<td>'; |
| 172 | 172 | print $form->selectDate($startdate, 'startdate', '', '', 1, "sel", 1, 1); |
| 173 | 173 | print '</td>'; |
| 174 | -print '<td>' . $langs->trans('DateEnd') . ' (' . $langs->trans("DateValidation") . ')</td>'; |
|
| 174 | +print '<td>'.$langs->trans('DateEnd').' ('.$langs->trans("DateValidation").')</td>'; |
|
| 175 | 175 | print '<td>'; |
| 176 | 176 | print $form->selectDate($enddate, 'enddate', '', '', 1, "sel", 1, 1); |
| 177 | 177 | print '</td>'; |
| 178 | 178 | print '<td style="text-align: center;">'; |
| 179 | -print '<input type="submit" class="button" value="' . dol_escape_htmltag($langs->trans('Refresh')) . '" name="button_search" />'; |
|
| 179 | +print '<input type="submit" class="button" value="'.dol_escape_htmltag($langs->trans('Refresh')).'" name="button_search" />'; |
|
| 180 | 180 | print '</td>'; |
| 181 | 181 | print '</tr>'; |
| 182 | 182 | print "</table>"; |
@@ -184,21 +184,21 @@ discard block |
||
| 184 | 184 | dol_fiche_end(); |
| 185 | 185 | |
| 186 | 186 | |
| 187 | -$arrayfields=array(); |
|
| 188 | -$massactionbutton=''; |
|
| 187 | +$arrayfields = array(); |
|
| 188 | +$massactionbutton = ''; |
|
| 189 | 189 | |
| 190 | 190 | |
| 191 | 191 | $sql = "SELECT"; |
| 192 | 192 | $sql .= " f.ref, f.rowid as invoiceid, d.rowid as invoicedetid, d.buy_price_ht, d.total_ht, d.subprice, d.label, d.description , d.qty"; |
| 193 | 193 | $sql .= " ,d.fk_product"; |
| 194 | -$sql .= " FROM " . MAIN_DB_PREFIX . "facture as f "; |
|
| 195 | -$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "facturedet as d ON d.fk_facture = f.rowid"; |
|
| 196 | -$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product as p ON d.fk_product = p.rowid"; |
|
| 194 | +$sql .= " FROM ".MAIN_DB_PREFIX."facture as f "; |
|
| 195 | +$sql .= " INNER JOIN ".MAIN_DB_PREFIX."facturedet as d ON d.fk_facture = f.rowid"; |
|
| 196 | +$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON d.fk_product = p.rowid"; |
|
| 197 | 197 | $sql .= " WHERE f.fk_statut > 0"; |
| 198 | -$sql .= " AND f.entity IN (" . getEntity('invoice') . ") "; |
|
| 199 | -if (! empty($startdate)) $sql .= " AND f.datef >= '" . $db->idate($startdate) . "'"; |
|
| 200 | -if (! empty($enddate)) $sql .= " AND f.datef <= '" . $db->idate($enddate) . "'"; |
|
| 201 | -if ($search_ref) $sql.=natural_search('f.ref', $search_ref); |
|
| 198 | +$sql .= " AND f.entity IN (".getEntity('invoice').") "; |
|
| 199 | +if (!empty($startdate)) $sql .= " AND f.datef >= '".$db->idate($startdate)."'"; |
|
| 200 | +if (!empty($enddate)) $sql .= " AND f.datef <= '".$db->idate($enddate)."'"; |
|
| 201 | +if ($search_ref) $sql .= natural_search('f.ref', $search_ref); |
|
| 202 | 202 | $sql .= " AND d.buy_price_ht IS NOT NULL"; |
| 203 | 203 | $sql .= $db->order($sortfield, $sortorder); |
| 204 | 204 | |
@@ -215,7 +215,7 @@ discard block |
||
| 215 | 215 | } |
| 216 | 216 | } |
| 217 | 217 | |
| 218 | -$sql .= $db->plimit($limit+1, $offset); |
|
| 218 | +$sql .= $db->plimit($limit + 1, $offset); |
|
| 219 | 219 | |
| 220 | 220 | $result = $db->query($sql); |
| 221 | 221 | if ($result) { |
@@ -225,19 +225,19 @@ discard block |
||
| 225 | 225 | print_barre_liste($langs->trans("MarginDetails"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, '', 0, '', '', $limit); |
| 226 | 226 | |
| 227 | 227 | if ($conf->global->MARGIN_TYPE == "1") |
| 228 | - $labelcostprice='BuyingPrice'; |
|
| 228 | + $labelcostprice = 'BuyingPrice'; |
|
| 229 | 229 | else // value is 'costprice' or 'pmp' |
| 230 | - $labelcostprice='CostPrice'; |
|
| 230 | + $labelcostprice = 'CostPrice'; |
|
| 231 | 231 | |
| 232 | - $moreforfilter=''; |
|
| 232 | + $moreforfilter = ''; |
|
| 233 | 233 | |
| 234 | - $varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage; |
|
| 234 | + $varpage = empty($contextpage) ? $_SERVER["PHP_SELF"] : $contextpage; |
|
| 235 | 235 | //$selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields |
| 236 | 236 | //if ($massactionbutton) $selectedfields.=$form->showCheckAddButtons('checkforselect', 1); |
| 237 | - $selectedfields=''; |
|
| 237 | + $selectedfields = ''; |
|
| 238 | 238 | |
| 239 | 239 | print '<div class="div-table-responsive">'; |
| 240 | - print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n"; |
|
| 240 | + print '<table class="tagtable liste'.($moreforfilter ? " listwithfilterbefore" : "").'">'."\n"; |
|
| 241 | 241 | |
| 242 | 242 | print '<tr class="liste_titre liste_titre_search">'; |
| 243 | 243 | print '<td><input type="text" name="search_ref" value="'.dol_escape_htmltag($search_ref).'"></td>'; |
@@ -247,7 +247,7 @@ discard block |
||
| 247 | 247 | print '<td></td>'; |
| 248 | 248 | print '<td></td>'; |
| 249 | 249 | print '<td class="liste_titre" align="middle">'; |
| 250 | - $searchpitco=$form->showFilterButtons(); |
|
| 250 | + $searchpitco = $form->showFilterButtons(); |
|
| 251 | 251 | print $searchpitco; |
| 252 | 252 | print '</td>'; |
| 253 | 253 | print "</tr>\n"; |
@@ -259,10 +259,10 @@ discard block |
||
| 259 | 259 | print_liste_field_titre($labelcostprice, $_SERVER["PHP_SELF"], "d.buy_price_ht", "", $param, 'align="right"', $sortfield, $sortorder); |
| 260 | 260 | print_liste_field_titre("Qty", $_SERVER["PHP_SELF"], "d.qty", "", $param, 'align="right"', $sortfield, $sortorder); |
| 261 | 261 | print_liste_field_titre("AmountTTC", $_SERVER["PHP_SELF"], "d.total_ht", "", $param, 'align="right"', $sortfield, $sortorder); |
| 262 | - print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'',$param,'align="center"',$sortfield,$sortorder,'maxwidthsearch '); |
|
| 262 | + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"], "", '', $param, 'align="center"', $sortfield, $sortorder, 'maxwidthsearch '); |
|
| 263 | 263 | print "</tr>\n"; |
| 264 | 264 | |
| 265 | - $i=0; |
|
| 265 | + $i = 0; |
|
| 266 | 266 | while ($i < min($num, $limit)) |
| 267 | 267 | { |
| 268 | 268 | $objp = $db->fetch_object($result); |
@@ -277,7 +277,7 @@ discard block |
||
| 277 | 277 | } |
| 278 | 278 | print '</td>'; |
| 279 | 279 | print '<td>'; |
| 280 | - if (! empty($objp->fk_product)) { |
|
| 280 | + if (!empty($objp->fk_product)) { |
|
| 281 | 281 | $result_inner = $productstatic->fetch($objp->fk_product); |
| 282 | 282 | if ($result_inner < 0) { |
| 283 | 283 | setEventMessages($productstatic->error, null, 'errors'); |
@@ -294,7 +294,7 @@ discard block |
||
| 294 | 294 | print price($objp->subprice); |
| 295 | 295 | print '</td>'; |
| 296 | 296 | print '<td align="right">'; |
| 297 | - print '<input type="text" name="buyingprice_' . $objp->invoicedetid . '" id="buyingprice_' . $objp->invoicedetid . '" size="6" value="' . price($objp->buy_price_ht) . '" class="right flat">'; |
|
| 297 | + print '<input type="text" name="buyingprice_'.$objp->invoicedetid.'" id="buyingprice_'.$objp->invoicedetid.'" size="6" value="'.price($objp->buy_price_ht).'" class="right flat">'; |
|
| 298 | 298 | print '</td>'; |
| 299 | 299 | print '<td align="right">'; |
| 300 | 300 | print $objp->qty; |
@@ -306,7 +306,7 @@ discard block |
||
| 306 | 306 | |
| 307 | 307 | print "</tr>\n"; |
| 308 | 308 | |
| 309 | - $i ++; |
|
| 309 | + $i++; |
|
| 310 | 310 | } |
| 311 | 311 | |
| 312 | 312 | print "</table>"; |
@@ -317,8 +317,8 @@ discard block |
||
| 317 | 317 | } |
| 318 | 318 | |
| 319 | 319 | |
| 320 | -print '<div class="center">' . "\n"; |
|
| 321 | -print '<input type="submit" class="button" name="button_updatemagins" id="button_updatemagins" value="' . $langs->trans("Update") . '">'; |
|
| 320 | +print '<div class="center">'."\n"; |
|
| 321 | +print '<input type="submit" class="button" name="button_updatemagins" id="button_updatemagins" value="'.$langs->trans("Update").'">'; |
|
| 322 | 322 | print '</div>'; |
| 323 | 323 | |
| 324 | 324 | print '</form>'; |
@@ -29,29 +29,29 @@ |
||
| 29 | 29 | |
| 30 | 30 | if ($action == 'update' && is_array($arrayofparameters)) |
| 31 | 31 | { |
| 32 | - $db->begin(); |
|
| 32 | + $db->begin(); |
|
| 33 | 33 | |
| 34 | - $ok=true; |
|
| 35 | - foreach($arrayofparameters as $key => $val) |
|
| 36 | - { |
|
| 37 | - $result=dolibarr_set_const($db,$key,GETPOST($key, 'alpha'),'chaine',0,'',$conf->entity); |
|
| 38 | - if ($result < 0) |
|
| 39 | - { |
|
| 40 | - $ok=false; |
|
| 41 | - break; |
|
| 42 | - } |
|
| 43 | - } |
|
| 34 | + $ok=true; |
|
| 35 | + foreach($arrayofparameters as $key => $val) |
|
| 36 | + { |
|
| 37 | + $result=dolibarr_set_const($db,$key,GETPOST($key, 'alpha'),'chaine',0,'',$conf->entity); |
|
| 38 | + if ($result < 0) |
|
| 39 | + { |
|
| 40 | + $ok=false; |
|
| 41 | + break; |
|
| 42 | + } |
|
| 43 | + } |
|
| 44 | 44 | |
| 45 | - if (! $error) |
|
| 46 | - { |
|
| 47 | - $db->commit(); |
|
| 48 | - if (empty($nomessageinupdate)) setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); |
|
| 49 | - } |
|
| 50 | - else |
|
| 51 | - { |
|
| 52 | - $db->rollback(); |
|
| 53 | - if (empty($nomessageinupdate)) setEventMessages($langs->trans("SetupNotSaved"), null, 'errors'); |
|
| 54 | - } |
|
| 45 | + if (! $error) |
|
| 46 | + { |
|
| 47 | + $db->commit(); |
|
| 48 | + if (empty($nomessageinupdate)) setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); |
|
| 49 | + } |
|
| 50 | + else |
|
| 51 | + { |
|
| 52 | + $db->rollback(); |
|
| 53 | + if (empty($nomessageinupdate)) setEventMessages($langs->trans("SetupNotSaved"), null, 'errors'); |
|
| 54 | + } |
|
| 55 | 55 | } |
| 56 | 56 | |
| 57 | 57 | // Define constants for submodules that contains parameters (forms with param1, param2, ... and value1, value2, ...) |
@@ -31,18 +31,18 @@ discard block |
||
| 31 | 31 | { |
| 32 | 32 | $db->begin(); |
| 33 | 33 | |
| 34 | - $ok=true; |
|
| 35 | - foreach($arrayofparameters as $key => $val) |
|
| 34 | + $ok = true; |
|
| 35 | + foreach ($arrayofparameters as $key => $val) |
|
| 36 | 36 | { |
| 37 | - $result=dolibarr_set_const($db,$key,GETPOST($key, 'alpha'),'chaine',0,'',$conf->entity); |
|
| 37 | + $result = dolibarr_set_const($db, $key, GETPOST($key, 'alpha'), 'chaine', 0, '', $conf->entity); |
|
| 38 | 38 | if ($result < 0) |
| 39 | 39 | { |
| 40 | - $ok=false; |
|
| 40 | + $ok = false; |
|
| 41 | 41 | break; |
| 42 | 42 | } |
| 43 | 43 | } |
| 44 | 44 | |
| 45 | - if (! $error) |
|
| 45 | + if (!$error) |
|
| 46 | 46 | { |
| 47 | 47 | $db->commit(); |
| 48 | 48 | if (empty($nomessageinupdate)) setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); |
@@ -62,38 +62,38 @@ discard block |
||
| 62 | 62 | // Process common param fields |
| 63 | 63 | if (is_array($_POST)) |
| 64 | 64 | { |
| 65 | - foreach($_POST as $key => $val) |
|
| 65 | + foreach ($_POST as $key => $val) |
|
| 66 | 66 | { |
| 67 | 67 | if (preg_match('/^param(\d*)$/', $key, $reg)) // Works for POST['param'], POST['param1'], POST['param2'], ... |
| 68 | 68 | { |
| 69 | - $param=GETPOST("param".$reg[1],'alpha'); |
|
| 70 | - $value=GETPOST("value".$reg[1],'alpha'); |
|
| 69 | + $param = GETPOST("param".$reg[1], 'alpha'); |
|
| 70 | + $value = GETPOST("value".$reg[1], 'alpha'); |
|
| 71 | 71 | if ($param) |
| 72 | 72 | { |
| 73 | - $res = dolibarr_set_const($db,$param,$value,'chaine',0,'',$conf->entity); |
|
| 74 | - if (! $res > 0) $error++; |
|
| 73 | + $res = dolibarr_set_const($db, $param, $value, 'chaine', 0, '', $conf->entity); |
|
| 74 | + if (!$res > 0) $error++; |
|
| 75 | 75 | } |
| 76 | 76 | } |
| 77 | 77 | } |
| 78 | 78 | } |
| 79 | 79 | |
| 80 | 80 | // Process upload fields |
| 81 | - if (GETPOST('upload','alpha') && GETPOST('keyforuploaddir','aZ09')) |
|
| 81 | + if (GETPOST('upload', 'alpha') && GETPOST('keyforuploaddir', 'aZ09')) |
|
| 82 | 82 | { |
| 83 | 83 | include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; |
| 84 | - $keyforuploaddir=GETPOST('keyforuploaddir','aZ09'); |
|
| 85 | - $listofdir=explode(',',preg_replace('/[\r\n]+/',',',trim($conf->global->$keyforuploaddir))); |
|
| 86 | - foreach($listofdir as $key=>$tmpdir) |
|
| 84 | + $keyforuploaddir = GETPOST('keyforuploaddir', 'aZ09'); |
|
| 85 | + $listofdir = explode(',', preg_replace('/[\r\n]+/', ',', trim($conf->global->$keyforuploaddir))); |
|
| 86 | + foreach ($listofdir as $key=>$tmpdir) |
|
| 87 | 87 | { |
| 88 | - $tmpdir=trim($tmpdir); |
|
| 89 | - $tmpdir=preg_replace('/DOL_DATA_ROOT/',DOL_DATA_ROOT,$tmpdir); |
|
| 90 | - if (! $tmpdir) { |
|
| 88 | + $tmpdir = trim($tmpdir); |
|
| 89 | + $tmpdir = preg_replace('/DOL_DATA_ROOT/', DOL_DATA_ROOT, $tmpdir); |
|
| 90 | + if (!$tmpdir) { |
|
| 91 | 91 | unset($listofdir[$key]); continue; |
| 92 | 92 | } |
| 93 | - if (! is_dir($tmpdir)) $texttitle.=img_warning($langs->trans("ErrorDirNotFound",$tmpdir),0); |
|
| 93 | + if (!is_dir($tmpdir)) $texttitle .= img_warning($langs->trans("ErrorDirNotFound", $tmpdir), 0); |
|
| 94 | 94 | else |
| 95 | 95 | { |
| 96 | - $upload_dir=$tmpdir; |
|
| 96 | + $upload_dir = $tmpdir; |
|
| 97 | 97 | } |
| 98 | 98 | } |
| 99 | 99 | if ($upload_dir) |
@@ -103,7 +103,7 @@ discard block |
||
| 103 | 103 | } |
| 104 | 104 | } |
| 105 | 105 | |
| 106 | - if (! $error) |
|
| 106 | + if (!$error) |
|
| 107 | 107 | { |
| 108 | 108 | $db->commit(); |
| 109 | 109 | if (empty($nomessageinsetmoduleoptions)) setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); |
@@ -45,12 +45,15 @@ discard block |
||
| 45 | 45 | if (! $error) |
| 46 | 46 | { |
| 47 | 47 | $db->commit(); |
| 48 | - if (empty($nomessageinupdate)) setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); |
|
| 49 | - } |
|
| 50 | - else |
|
| 48 | + if (empty($nomessageinupdate)) { |
|
| 49 | + setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); |
|
| 50 | + } |
|
| 51 | + } else |
|
| 51 | 52 | { |
| 52 | 53 | $db->rollback(); |
| 53 | - if (empty($nomessageinupdate)) setEventMessages($langs->trans("SetupNotSaved"), null, 'errors'); |
|
| 54 | + if (empty($nomessageinupdate)) { |
|
| 55 | + setEventMessages($langs->trans("SetupNotSaved"), null, 'errors'); |
|
| 56 | + } |
|
| 54 | 57 | } |
| 55 | 58 | } |
| 56 | 59 | |
@@ -64,14 +67,18 @@ discard block |
||
| 64 | 67 | { |
| 65 | 68 | foreach($_POST as $key => $val) |
| 66 | 69 | { |
| 67 | - if (preg_match('/^param(\d*)$/', $key, $reg)) // Works for POST['param'], POST['param1'], POST['param2'], ... |
|
| 70 | + if (preg_match('/^param(\d*)$/', $key, $reg)) { |
|
| 71 | + // Works for POST['param'], POST['param1'], POST['param2'], ... |
|
| 68 | 72 | { |
| 69 | 73 | $param=GETPOST("param".$reg[1],'alpha'); |
| 74 | + } |
|
| 70 | 75 | $value=GETPOST("value".$reg[1],'alpha'); |
| 71 | 76 | if ($param) |
| 72 | 77 | { |
| 73 | 78 | $res = dolibarr_set_const($db,$param,$value,'chaine',0,'',$conf->entity); |
| 74 | - if (! $res > 0) $error++; |
|
| 79 | + if (! $res > 0) { |
|
| 80 | + $error++; |
|
| 81 | + } |
|
| 75 | 82 | } |
| 76 | 83 | } |
| 77 | 84 | } |
@@ -90,8 +97,9 @@ discard block |
||
| 90 | 97 | if (! $tmpdir) { |
| 91 | 98 | unset($listofdir[$key]); continue; |
| 92 | 99 | } |
| 93 | - if (! is_dir($tmpdir)) $texttitle.=img_warning($langs->trans("ErrorDirNotFound",$tmpdir),0); |
|
| 94 | - else |
|
| 100 | + if (! is_dir($tmpdir)) { |
|
| 101 | + $texttitle.=img_warning($langs->trans("ErrorDirNotFound",$tmpdir),0); |
|
| 102 | + } else |
|
| 95 | 103 | { |
| 96 | 104 | $upload_dir=$tmpdir; |
| 97 | 105 | } |
@@ -99,19 +107,24 @@ discard block |
||
| 99 | 107 | if ($upload_dir) |
| 100 | 108 | { |
| 101 | 109 | $result = dol_add_file_process($upload_dir, 0, 1, 'uploadfile', ''); |
| 102 | - if ($result <= 0) $error++; |
|
| 110 | + if ($result <= 0) { |
|
| 111 | + $error++; |
|
| 112 | + } |
|
| 103 | 113 | } |
| 104 | 114 | } |
| 105 | 115 | |
| 106 | 116 | if (! $error) |
| 107 | 117 | { |
| 108 | 118 | $db->commit(); |
| 109 | - if (empty($nomessageinsetmoduleoptions)) setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); |
|
| 110 | - } |
|
| 111 | - else |
|
| 119 | + if (empty($nomessageinsetmoduleoptions)) { |
|
| 120 | + setEventMessages($langs->trans("SetupSaved"), null, 'mesgs'); |
|
| 121 | + } |
|
| 122 | + } else |
|
| 112 | 123 | { |
| 113 | 124 | $db->rollback(); |
| 114 | - if (empty($nomessageinsetmoduleoptions)) setEventMessages($langs->trans("SetupNotSaved"), null, 'errors'); |
|
| 125 | + if (empty($nomessageinsetmoduleoptions)) { |
|
| 126 | + setEventMessages($langs->trans("SetupNotSaved"), null, 'errors'); |
|
| 127 | + } |
|
| 115 | 128 | } |
| 116 | 129 | } |
| 117 | 130 | |