query("SELECT id,code FROM ecmproducts WHERE deleted='0' AND product_active='1'"); $i = 0; while ($p = $products->fetch_object()) { $i++; echo $i.': '.$p->code.PHP_EOL; //last year $lyr = $db->query(" SELECT sum( CASE WHEN i.type!='correct' THEN CASE WHEN i.currency_value is null or i.currency_value='' or i.currency_value=0 THEN ii.total_netto ELSE ii.total_netto*i.currency_value END ELSE CASE WHEN i.currency_value is null or i.currency_value='' or i.currency_value=0 THEN ii.total_netto-ii.old_total_netto ELSE (ii.total_netto-ii.old_total_netto)*i.currency_value END END ) as sales, sum( CASE WHEN i.type!='correct' THEN ii.quantity ELSE quantity_corrected END ) as qty, sum( CASE WHEN i.type!='correct' THEN ii.price_purchase*quantity ELSE ii.price_purchase*quantity_corrected END ) as cost FROM ecminvoiceoutitems AS ii INNER JOIN ecminvoiceouts AS i ON i.id=ii.ecminvoiceout_id WHERE YEAR(i.register_date) = '".(date("Y")-1)."' AND i.deleted=0 AND i.canceled=0 AND ii.deleted='0' AND ii.ecmproduct_id = '".$p->id."' GROUP BY ii.ecmproduct_id "); $ly = $lyr->fetch_object(); //update $margin = 0; if ($ly->sales > 0) $margin = (($ly->sales - $ly->cost) / $ly->sales)*100; $db->query("UPDATE ecmproducts SET last_year_margin='$margin', last_year_qty='".$ly->qty."', last_year_val='".$ly->sales."', last_year_cost='".$ly->cost."' WHERE id='".$p->id."'"); //this year sale $tyr = $db->query(" SELECT sum( CASE WHEN i.type!='correct' THEN CASE WHEN i.currency_value is null or i.currency_value='' or i.currency_value=0 THEN ii.total_netto ELSE ii.total_netto*i.currency_value END ELSE CASE WHEN i.currency_value is null or i.currency_value='' or i.currency_value=0 THEN ii.total_netto-ii.old_total_netto ELSE (ii.total_netto-ii.old_total_netto)*i.currency_value END END ) as sales, sum( CASE WHEN i.type!='correct' THEN ii.quantity ELSE ii.quantity_corrected END ) as qty, sum( CASE WHEN i.type!='correct' THEN ii.price_purchase*quantity ELSE ii.price_purchase*quantity_corrected END ) as cost FROM ecminvoiceoutitems AS ii INNER JOIN ecminvoiceouts AS i ON i.id=ii.ecminvoiceout_id WHERE YEAR(i.register_date) = '".(date("Y"))."' AND i.deleted=0 AND i.canceled=0 AND ii.deleted='0' AND ii.ecmproduct_id = '".$p->id."' "); $ty = $tyr->fetch_object(); //update $margin = 0; if ($ty->sales > 0) $margin = (($ty->sales - $ty->cost) / $ty->sales)*100; $db->query("UPDATE ecmproducts SET this_year_margin='$margin', this_year_qty='".$ty->qty."', this_year_val='".$ty->sales."', this_year_cost='".$ty->cost."' WHERE id='".$p->id."'"); //q1 $q1r = $db->query(" SELECT sum( CASE WHEN i.type!='correct' THEN CASE WHEN i.currency_value is null or i.currency_value='' or i.currency_value=0 THEN ii.total_netto ELSE ii.total_netto*i.currency_value END ELSE CASE WHEN i.currency_value is null or i.currency_value='' or i.currency_value=0 THEN ii.total_netto-ii.old_total_netto ELSE (ii.total_netto-ii.old_total_netto)*i.currency_value END END ) as sales, sum( CASE WHEN i.type!='correct' THEN ii.quantity ELSE quantity_corrected END ) as qty, sum( CASE WHEN i.type!='correct' THEN ii.price_purchase*quantity ELSE ii.price_purchase*quantity_corrected END ) as cost FROM ecminvoiceoutitems AS ii INNER JOIN ecminvoiceouts AS i ON i.id=ii.ecminvoiceout_id WHERE YEAR(i.register_date) = '".(date("Y"))."' AND MONTH(i.register_date) IN ('1', '2', '3') AND i.deleted=0 AND i.canceled=0 AND ii.deleted='0' AND ii.ecmproduct_id = '".$p->id."' "); $q1 = $q1r->fetch_object(); //update $margin = 0; if ($q1->sales > 0) $margin = (($q1->sales - $q1->cost) / $q1->sales)*100; $db->query("UPDATE ecmproducts SET q1_margin='$margin', q1_qty='".$q1->qty."', q1_val='".$q1->sales."', q1_cost='".$q1->cost."' WHERE id='".$p->id."'"); //q2 $q2r = $db->query(" SELECT sum( CASE WHEN i.type!='correct' THEN CASE WHEN i.currency_value is null or i.currency_value='' or i.currency_value=0 THEN ii.total_netto ELSE ii.total_netto*i.currency_value END ELSE CASE WHEN i.currency_value is null or i.currency_value='' or i.currency_value=0 THEN ii.total_netto-ii.old_total_netto ELSE (ii.total_netto-ii.old_total_netto)*i.currency_value END END ) as sales, sum( CASE WHEN i.type!='correct' THEN ii.quantity ELSE quantity_corrected END ) as qty, sum( CASE WHEN i.type!='correct' THEN ii.price_purchase*quantity ELSE ii.price_purchase*quantity_corrected END ) as cost FROM ecminvoiceoutitems AS ii INNER JOIN ecminvoiceouts AS i ON i.id=ii.ecminvoiceout_id WHERE YEAR(i.register_date) = '".(date("Y"))."' AND MONTH(i.register_date) IN ('4', '5', '6') AND i.deleted=0 AND i.canceled=0 AND ii.deleted='0' AND ii.ecmproduct_id = '".$p->id."' "); $q2 = $q2r->fetch_object(); //update $margin = 0; if ($q2->sales > 0) $margin = (($q2->sales - $q2->cost) / $q2->sales)*100; $db->query("UPDATE ecmproducts SET q2_margin='$margin', q2_qty='".$q2->qty."', q2_val='".$q2->sales."', q2_cost='".$q2->cost."' WHERE id='".$p->id."'"); //q3 $q3r = $db->query(" SELECT sum( CASE WHEN i.type!='correct' THEN CASE WHEN i.currency_value is null or i.currency_value='' or i.currency_value=0 THEN ii.total_netto ELSE ii.total_netto*i.currency_value END ELSE CASE WHEN i.currency_value is null or i.currency_value='' or i.currency_value=0 THEN ii.total_netto-ii.old_total_netto ELSE (ii.total_netto-ii.old_total_netto)*i.currency_value END END ) as sales, sum( CASE WHEN i.type!='correct' THEN ii.quantity ELSE quantity_corrected END ) as qty, sum( CASE WHEN i.type!='correct' THEN ii.price_purchase*quantity ELSE ii.price_purchase*quantity_corrected END ) as cost FROM ecminvoiceoutitems AS ii INNER JOIN ecminvoiceouts AS i ON i.id=ii.ecminvoiceout_id WHERE YEAR(i.register_date) = '".(date("Y"))."' AND MONTH(i.register_date) IN ('7', '8', '9') AND i.deleted=0 AND i.canceled=0 AND ii.deleted='0' AND ii.ecmproduct_id = '".$p->id."' "); $q3 = $q3r->fetch_object(); //update $margin = 0; if ($q3->sales > 0) $margin = (($q3->sales - $q3->cost) / $q3->sales)*100; $db->query("UPDATE ecmproducts SET q3_margin='$margin', q3_qty='".$q3->qty."', q3_val='".$q3->sales."', q3_cost='".$q3->cost."' WHERE id='".$p->id."'"); //q4 $q4r = $db->query(" SELECT sum( CASE WHEN i.type!='correct' THEN CASE WHEN i.currency_value is null or i.currency_value='' or i.currency_value=0 THEN ii.total_netto ELSE ii.total_netto*i.currency_value END ELSE CASE WHEN i.currency_value is null or i.currency_value='' or i.currency_value=0 THEN ii.total_netto-ii.old_total_netto ELSE (ii.total_netto-ii.old_total_netto)*i.currency_value END END ) as sales, sum( CASE WHEN i.type!='correct' THEN ii.quantity ELSE quantity_corrected END ) as qty, sum( CASE WHEN i.type!='correct' THEN ii.price_purchase*quantity ELSE ii.price_purchase*quantity_corrected END ) as cost FROM ecminvoiceoutitems AS ii INNER JOIN ecminvoiceouts AS i ON i.id=ii.ecminvoiceout_id WHERE YEAR(i.register_date) = '".(date("Y"))."' AND MONTH(i.register_date) IN ('10', '11', '12') AND i.deleted=0 AND i.canceled=0 AND ii.deleted='0' AND ii.ecmproduct_id = '".$p->id."' "); $q4 = $q4r->fetch_object(); //update $margin = 0; if ($q4->sales > 0) $margin = (($q4->sales - $q4->cost) / $q4->sales)*100; $db->query("UPDATE ecmproducts SET q4_margin='$margin', q4_qty='".$q4->qty."', q4_val='".$q4->sales."', q4_cost='".$q4->cost."' WHERE id='".$p->id."'"); //this month $tmr = $db->query(" SELECT sum( CASE WHEN i.type!='correct' THEN CASE WHEN i.currency_value is null or i.currency_value='' or i.currency_value=0 THEN ii.total_netto ELSE ii.total_netto*i.currency_value END ELSE CASE WHEN i.currency_value is null or i.currency_value='' or i.currency_value=0 THEN ii.total_netto-ii.old_total_netto ELSE (ii.total_netto-ii.old_total_netto)*i.currency_value END END ) as sales, sum( CASE WHEN i.type!='correct' THEN ii.quantity ELSE quantity_corrected END ) as qty, sum( CASE WHEN i.type!='correct' THEN ii.price_purchase*quantity ELSE ii.price_purchase*quantity_corrected END ) as cost FROM ecminvoiceoutitems AS ii INNER JOIN ecminvoiceouts AS i ON i.id=ii.ecminvoiceout_id WHERE YEAR(i.register_date) = '".(date("Y"))."' AND MONTH(i.register_date) = '".(date('m'))."' AND i.deleted=0 AND i.canceled=0 AND ii.deleted='0' AND ii.ecmproduct_id = '".$p->id."' "); $tm = $tmr->fetch_object(); //update $margin = 0; if ($tm->sales > 0) $margin = (($tm->sales - $tm->cost) / $tm->sales)*100; $db->query("UPDATE ecmproducts SET this_month_margin='$margin', this_month_qty='".$tm->qty."', this_month_val='".$tm->sales."', this_month_cost='".$tm->cost."' WHERE id='".$p->id."'"); //last month $last_month = date("m")-1; if ($last_month == 0) $last_month=12; $lmr = $db->query(" SELECT sum( CASE WHEN i.type!='correct' THEN CASE WHEN i.currency_value is null or i.currency_value='' or i.currency_value=0 THEN ii.total_netto ELSE ii.total_netto*i.currency_value END ELSE CASE WHEN i.currency_value is null or i.currency_value='' or i.currency_value=0 THEN ii.total_netto-ii.old_total_netto ELSE (ii.total_netto-ii.old_total_netto)*i.currency_value END END ) as sales, sum( CASE WHEN i.type!='correct' THEN ii.quantity ELSE quantity_corrected END ) as qty, sum( CASE WHEN i.type!='correct' THEN ii.price_purchase*quantity ELSE ii.price_purchase*quantity_corrected END ) as cost FROM ecminvoiceoutitems AS ii INNER JOIN ecminvoiceouts AS i ON i.id=ii.ecminvoiceout_id WHERE YEAR(i.register_date) = '".(date("Y"))."' AND MONTH(i.register_date) = '$last_month' AND i.deleted=0 AND i.canceled=0 AND ii.deleted='0' AND ii.ecmproduct_id = '".$p->id."' "); $lm = $lmr->fetch_object(); //update $margin=0; if ($lm->cost>0) $margin = (($lm->sales - $lm->cost) / $lm->sales); $db->query("UPDATE ecmproducts SET last_month_margin = '$margin', last_month_qty='".$lm->qty."', last_month_val='".$lm->sales."', last_month_cost='".$lm->cost."' WHERE id='".$p->id."'"); //laaast //q1 $last_q1r = $db->query(" SELECT sum( CASE WHEN i.type!='correct' THEN CASE WHEN i.currency_value is null or i.currency_value='' or i.currency_value=0 THEN ii.total_netto ELSE ii.total_netto*i.currency_value END ELSE CASE WHEN i.currency_value is null or i.currency_value='' or i.currency_value=0 THEN ii.total_netto-ii.old_total_netto ELSE (ii.total_netto-ii.old_total_netto)*i.currency_value END END ) as sales, sum( CASE WHEN i.type!='correct' THEN ii.quantity ELSE quantity_corrected END ) as qty, sum( CASE WHEN i.type!='correct' THEN ii.price_purchase*quantity ELSE ii.price_purchase*quantity_corrected END ) as cost FROM ecminvoiceoutitems AS ii INNER JOIN ecminvoiceouts AS i ON i.id=ii.ecminvoiceout_id WHERE YEAR(i.register_date) = '".(date("Y")-1)."' AND MONTH(i.register_date) IN ('1', '2', '3') AND i.deleted=0 AND i.canceled=0 AND ii.deleted='0' AND ii.ecmproduct_id = '".$p->id."' "); $last_q1 = $last_q1r->fetch_object(); //update $margin = 0; if ($last_q1->sales > 0) $margin = (($last_q1->sales - $last_q1->cost) / $last_q1->sales)*100; $db->query("UPDATE ecmproducts SET last_q1_margin='$margin', last_q1_qty='".$last_q1->qty."', last_q1_val='".$last_q1->sales."', last_q1_cost='".$last_q1->cost."' WHERE id='".$p->id."'"); //last_q2 $last_q2r = $db->query(" SELECT sum( CASE WHEN i.type!='correct' THEN CASE WHEN i.currency_value is null or i.currency_value='' or i.currency_value=0 THEN ii.total_netto ELSE ii.total_netto*i.currency_value END ELSE CASE WHEN i.currency_value is null or i.currency_value='' or i.currency_value=0 THEN ii.total_netto-ii.old_total_netto ELSE (ii.total_netto-ii.old_total_netto)*i.currency_value END END ) as sales, sum( CASE WHEN i.type!='correct' THEN ii.quantity ELSE quantity_corrected END ) as qty, sum( CASE WHEN i.type!='correct' THEN ii.price_purchase*quantity ELSE ii.price_purchase*quantity_corrected END ) as cost FROM ecminvoiceoutitems AS ii INNER JOIN ecminvoiceouts AS i ON i.id=ii.ecminvoiceout_id WHERE YEAR(i.register_date) = '".(date("Y")-1)."' AND MONTH(i.register_date) IN ('4', '5', '6') AND i.deleted=0 AND i.canceled=0 AND ii.deleted='0' AND ii.ecmproduct_id = '".$p->id."' "); $last_q2 = $last_q2r->fetch_object(); //update $margin = 0; if ($last_q2->sales > 0) $margin = (($last_q2->sales - $last_q2->cost) / $last_q2->sales)*100; $db->query("UPDATE ecmproducts SET last_q2_margin='$margin', last_q2_qty='".$last_q2->qty."', last_q2_val='".$last_q2->sales."', last_q2_cost='".$last_q2->cost."' WHERE id='".$p->id."'"); //last_q3 $last_q3r = $db->query(" SELECT sum( CASE WHEN i.type!='correct' THEN CASE WHEN i.currency_value is null or i.currency_value='' or i.currency_value=0 THEN ii.total_netto ELSE ii.total_netto*i.currency_value END ELSE CASE WHEN i.currency_value is null or i.currency_value='' or i.currency_value=0 THEN ii.total_netto-ii.old_total_netto ELSE (ii.total_netto-ii.old_total_netto)*i.currency_value END END ) as sales, sum( CASE WHEN i.type!='correct' THEN ii.quantity ELSE quantity_corrected END ) as qty, sum( CASE WHEN i.type!='correct' THEN ii.price_purchase*quantity ELSE ii.price_purchase*quantity_corrected END ) as cost FROM ecminvoiceoutitems AS ii INNER JOIN ecminvoiceouts AS i ON i.id=ii.ecminvoiceout_id WHERE YEAR(i.register_date) = '".(date("Y")-1)."' AND MONTH(i.register_date) IN ('7', '8', '9') AND i.deleted=0 AND i.canceled=0 AND ii.deleted='0' AND ii.ecmproduct_id = '".$p->id."' "); $last_q3 = $last_q3r->fetch_object(); //update $margin = 0; if ($last_q3->sales > 0) $margin = (($last_q3->sales - $last_q3->cost) / $last_q3->sales)*100; $db->query("UPDATE ecmproducts SET last_q3_margin='$margin', last_q3_qty='".$last_q3->qty."', last_q3_val='".$last_q3->sales."', last_q3_cost='".$last_q3->cost."' WHERE id='".$p->id."'"); //last_q4 $last_q4r = $db->query(" SELECT sum( CASE WHEN i.type!='correct' THEN CASE WHEN i.currency_value is null or i.currency_value='' or i.currency_value=0 THEN ii.total_netto ELSE ii.total_netto*i.currency_value END ELSE CASE WHEN i.currency_value is null or i.currency_value='' or i.currency_value=0 THEN ii.total_netto-ii.old_total_netto ELSE (ii.total_netto-ii.old_total_netto)*i.currency_value END END ) as sales, sum( CASE WHEN i.type!='correct' THEN ii.quantity ELSE quantity_corrected END ) as qty, sum( CASE WHEN i.type!='correct' THEN ii.price_purchase*quantity ELSE ii.price_purchase*quantity_corrected END ) as cost FROM ecminvoiceoutitems AS ii INNER JOIN ecminvoiceouts AS i ON i.id=ii.ecminvoiceout_id WHERE YEAR(i.register_date) = '".(date("Y")-1)."' AND MONTH(i.register_date) IN ('10', '11', '12') AND i.deleted=0 AND i.canceled=0 AND ii.deleted='0' AND ii.ecmproduct_id = '".$p->id."' "); $last_q4 = $last_q4r->fetch_object(); //update $margin = 0; if ($last_q4->sales > 0) $margin = (($last_q4->sales - $last_q4->cost) / $last_q4->sales)*100; $db->query("UPDATE ecmproducts SET last_q4_margin='$margin', last_q4_qty='".$last_q4->qty."', last_q4_val='".$last_q4->sales."', last_q4_cost='".$last_q4->cost."' WHERE id='".$p->id."'"); } ?>