par
franck85 » 03 sept. 2009, 09:41
En fait j'ai du mal expliquer la règle de calcul des commissions:
- on prend en référence le CA total du commercial pour définir la tranche min / max qui sera prise en compte pour déterminer le taux à appliquer
ex: si CA total du commercial = 5000 en RVF + 6000 en RVA + 19000 en GMS ( les 3 types de contact ), on est dans la tranche 20000 à 49999.99 donc on applique respectivement 4%, 6% et 3% à chacun des dossiers de vente
Il faudrait donc une étape intermédiaire ou on calcul le CA total du commercial
CA CA total taux CA com
49 13 30 10 10900062 5990.50 27621.00 0.04 * 5990.50 = 239.62
49 13 30 20 10900067 6066.30 27621.00 0.06 * 6066.30 = 363.98
49 13 30 20 10900068 9573.50 27621.00 0.06 * 9573.50 = 574.41
49 13 30 20 10900071 5990.50 27621.00 0.06 * 5990.50 = 359.43
^ ^ ^
TOTAL 27621.00 -> pour id_type_contact = 10 taux_com 0.04
-> pour id_type_contact = 20 taux_com 0.06
- Il n'y a plus les "NULL" qui déterminaient le CA total catégorie / total commercial / total agence et total général
- Idéalement, pour le total agence il y a aussi un calcul spécifique de commission
( table taux_com où id_type_contact=0 )
Voici la table reelle et complète taux_com
--
-- Structure de la table `taux_com`
--
CREATE TABLE IF NOT EXISTS `taux_com` (
`id_taux_com` smallint(4) unsigned NOT NULL,
`id_fonction` tinyint(3) unsigned NOT NULL,
`id_type_contact` tinyint(3) unsigned NOT NULL,
`seuil_min_com` decimal(15,2) unsigned NOT NULL,
`seuil_max_com` decimal(15,2) unsigned NOT NULL,
`taux_com` decimal(3,3) unsigned NOT NULL,
PRIMARY KEY (`id_taux_com`),
KEY `id_fonction` (`id_fonction`),
KEY `id_type_contact` (`id_type_contact`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
--
-- Contenu de la table `taux_com`
--
INSERT INTO `taux_com` (`id_taux_com`, `id_fonction`, `id_type_contact`, `seuil_min_com`, `seuil_max_com`, `taux_com`) VALUES
(340, 20, 10, 70000.00, 99999.99, 0.070),
(330, 20, 10, 50000.00, 69999.99, 0.060),
(320, 20, 10, 20000.00, 49999.99, 0.050),
(310, 20, 10, 10000.00, 19999.99, 0.020),
(300, 20, 10, 0.00, 9999.99, 0.000),
(240, 30, 30, 100000.00, 9999999999999.99, 0.060),
(230, 30, 30, 70000.00, 99999.99, 0.050),
(220, 30, 30, 50000.00, 69999.99, 0.040),
(210, 30, 30, 20000.00, 49999.99, 0.030),
(200, 30, 30, 0.00, 19999.99, 0.000),
(150, 30, 20, 100000.00, 9999999999999.99, 0.090),
(140, 30, 20, 70000.00, 99999.99, 0.080),
(130, 30, 20, 50000.00, 69999.99, 0.070),
(120, 30, 20, 20000.00, 49999.99, 0.060),
(110, 30, 20, 10000.00, 19999.99, 0.030),
(100, 30, 20, 0.00, 9999.99, 0.000),
(60, 30, 10, 100000.00, 9999999999999.99, 0.070),
(50, 30, 10, 70000.00, 99999.99, 0.060),
(40, 30, 10, 50000.00, 69999.99, 0.050),
(30, 30, 10, 20000.00, 49999.99, 0.040),
(20, 30, 10, 10000.00, 19999.99, 0.020),
(10, 30, 10, 0.00, 9999.99, 0.000),
(350, 20, 10, 100000.00, 9999999999999.99, 0.080),
(400, 20, 20, 0.00, 9999.99, 0.000),
(410, 20, 20, 10000.00, 19999.99, 0.020),
(420, 20, 20, 20000.00, 49999.99, 0.050),
(430, 20, 20, 50000.00, 69999.99, 0.060),
(440, 20, 20, 70000.00, 99999.99, 0.070),
(450, 20, 20, 100000.00, 9999999999999.99, 0.080),
(500, 20, 30, 0.00, 9999.99, 0.000),
(510, 20, 30, 10000.00, 19999.99, 0.020),
(520, 20, 30, 20000.00, 49999.99, 0.050),
(530, 20, 30, 50000.00, 69999.99, 0.060),
(540, 20, 30, 70000.00, 99999.99, 0.070),
(550, 20, 30, 100000.00, 9999999999999.99, 0.080),
(600, 20, 0, 0.00, 49999.99, 0.000),
(610, 20, 0, 50000.00, 99999.99, 0.010),
(620, 20, 0, 100000.00, 199999.99, 0.015),
(630, 20, 0, 200000.00, 9999999999999.99, 0.020);
Pas toujours évident à expliquer tout ça, merci pour votre aide
En fait j'ai du mal expliquer la règle de calcul des commissions:
- on prend en référence le CA total du commercial pour définir la tranche min / max qui sera prise en compte pour déterminer le taux à appliquer
ex: si CA total du commercial = 5000 en RVF + 6000 en RVA + 19000 en GMS ( les 3 types de contact ), on est dans la tranche 20000 à 49999.99 donc on applique respectivement 4%, 6% et 3% à chacun des dossiers de vente
Il faudrait donc une étape intermédiaire ou on calcul le CA total du commercial
[html]
CA CA total taux CA com
49 13 30 10 10900062 5990.50 27621.00 0.04 * 5990.50 = 239.62
49 13 30 20 10900067 6066.30 27621.00 0.06 * 6066.30 = 363.98
49 13 30 20 10900068 9573.50 27621.00 0.06 * 9573.50 = 574.41
49 13 30 20 10900071 5990.50 27621.00 0.06 * 5990.50 = 359.43
^ ^ ^
TOTAL 27621.00 -> pour id_type_contact = 10 taux_com 0.04
-> pour id_type_contact = 20 taux_com 0.06
[/html]
- Il n'y a plus les "NULL" qui déterminaient le CA total catégorie / total commercial / total agence et total général
- Idéalement, pour le total agence il y a aussi un calcul spécifique de commission
( table taux_com où id_type_contact=0 )
Voici la table reelle et complète taux_com
[sql]
--
-- Structure de la table `taux_com`
--
CREATE TABLE IF NOT EXISTS `taux_com` (
`id_taux_com` smallint(4) unsigned NOT NULL,
`id_fonction` tinyint(3) unsigned NOT NULL,
`id_type_contact` tinyint(3) unsigned NOT NULL,
`seuil_min_com` decimal(15,2) unsigned NOT NULL,
`seuil_max_com` decimal(15,2) unsigned NOT NULL,
`taux_com` decimal(3,3) unsigned NOT NULL,
PRIMARY KEY (`id_taux_com`),
KEY `id_fonction` (`id_fonction`),
KEY `id_type_contact` (`id_type_contact`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
--
-- Contenu de la table `taux_com`
--
INSERT INTO `taux_com` (`id_taux_com`, `id_fonction`, `id_type_contact`, `seuil_min_com`, `seuil_max_com`, `taux_com`) VALUES
(340, 20, 10, 70000.00, 99999.99, 0.070),
(330, 20, 10, 50000.00, 69999.99, 0.060),
(320, 20, 10, 20000.00, 49999.99, 0.050),
(310, 20, 10, 10000.00, 19999.99, 0.020),
(300, 20, 10, 0.00, 9999.99, 0.000),
(240, 30, 30, 100000.00, 9999999999999.99, 0.060),
(230, 30, 30, 70000.00, 99999.99, 0.050),
(220, 30, 30, 50000.00, 69999.99, 0.040),
(210, 30, 30, 20000.00, 49999.99, 0.030),
(200, 30, 30, 0.00, 19999.99, 0.000),
(150, 30, 20, 100000.00, 9999999999999.99, 0.090),
(140, 30, 20, 70000.00, 99999.99, 0.080),
(130, 30, 20, 50000.00, 69999.99, 0.070),
(120, 30, 20, 20000.00, 49999.99, 0.060),
(110, 30, 20, 10000.00, 19999.99, 0.030),
(100, 30, 20, 0.00, 9999.99, 0.000),
(60, 30, 10, 100000.00, 9999999999999.99, 0.070),
(50, 30, 10, 70000.00, 99999.99, 0.060),
(40, 30, 10, 50000.00, 69999.99, 0.050),
(30, 30, 10, 20000.00, 49999.99, 0.040),
(20, 30, 10, 10000.00, 19999.99, 0.020),
(10, 30, 10, 0.00, 9999.99, 0.000),
(350, 20, 10, 100000.00, 9999999999999.99, 0.080),
(400, 20, 20, 0.00, 9999.99, 0.000),
(410, 20, 20, 10000.00, 19999.99, 0.020),
(420, 20, 20, 20000.00, 49999.99, 0.050),
(430, 20, 20, 50000.00, 69999.99, 0.060),
(440, 20, 20, 70000.00, 99999.99, 0.070),
(450, 20, 20, 100000.00, 9999999999999.99, 0.080),
(500, 20, 30, 0.00, 9999.99, 0.000),
(510, 20, 30, 10000.00, 19999.99, 0.020),
(520, 20, 30, 20000.00, 49999.99, 0.050),
(530, 20, 30, 50000.00, 69999.99, 0.060),
(540, 20, 30, 70000.00, 99999.99, 0.070),
(550, 20, 30, 100000.00, 9999999999999.99, 0.080),
(600, 20, 0, 0.00, 49999.99, 0.000),
(610, 20, 0, 50000.00, 99999.99, 0.010),
(620, 20, 0, 100000.00, 199999.99, 0.015),
(630, 20, 0, 200000.00, 9999999999999.99, 0.020);
[/sql]
Pas toujours évident à expliquer tout ça, merci pour votre aide