SELECT b.*
FROM beneficiaireprime p
INNER JOIN beneficiaire b ON (p.idBeneficiaire=b.id) AND (p.idPolice=b.idPolice)
WHERE p.idPolice=149 AND b.nomBeneficiaire LIKE "%AVENANT%"


SELECT * FROM emission WHERE idPolice=82 AND codeTypeAvenant="QTM"

SELECT * FROM police WHERE id=202


SELECT * FROM quittance WHERE idPolice=82 AND codeTypeAvenant="QTM"


SELECT * FROM police WHERE libellePolice LIKE "%MAVI%"

SELECT id,codeTypeContrat,libellePolice FROM police WHERE (id=121) LIMIT 1;



SELECT fn_accessoire_prime("vitalis",105551260,82)  -- ACCESSOIRES GESTIONNAIRE


SELECT fn_accessoire_garant("vitalis",'GNA',21806806,82)  -- ACCESSOIRES GESTIONNAIRE





UPDATE police SET codeTypeContrat="P" WHERE (id=196);


SELECT codeTypeContrat,
e.primeNette,e.primeNetteStat,fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice) AS accessoireGarant,
fn_accessoire_prime("vitalis",primeNette,e.idPolice) AS accessoireGestion,
e.accessoireIntermediaire,
(fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire) AS accessoire,
(CASE WHEN p.codeTypeContrat="G" THEN ROUND(((e.accessoire+e.primeNette)*3)/100,0) ELSE ROUND(((e.accessoire+e.primeNette)*8)/100,0)  END ) AS taxe,
(CASE WHEN p.codeTypeContrat="G" 
THEN ROUND((((fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire)+e.primeNette)*3)/100,0) 
+(e.primeNette+(fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire))
ELSE ROUND((((fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire)+e.primeNette)*8)/100,0)  
+(e.primeNette+(fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire))
END ) AS primeTtcInitial,
(CASE WHEN p.codeTypeContrat="G" 
THEN ROUND((((fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire)+e.primeNette)*3)/100,0) 
+ROUND((e.primeNette+(fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire)),0)
ELSE ROUND((((fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire)+e.primeNette)*8)/100,0)  
+ROUND((e.primeNette+(fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire)),0)
END ) AS primeTtc
FROM  emission e
INNER JOIN police p ON (p.id=e.idPolice)
WHERE e.idPolice=168 AND e.codeTypeAvenant="QTM";


SELECT * FROM  beneficiaire 
WHERE idPolice=   202   AND nomBeneficiaire LIKE "%AVENANT%" ;

SELECT * FROM  beneficiaireprime 
WHERE idPolice=   202   AND idBeneficiaire=26684 ;  -- 1324824


UPDATE  emission 
SET primeNette=12043850,primeHt=12043850
WHERE idPolice= 202 ;

UPDATE  quittance 
SET primeNette=12043850,primeHt=12043850
WHERE idPolice=  202 ;

UPDATE  beneficiaireprime 
SET primeNette=12043850,primeHt=12043850
WHERE idPolice=  202 AND idBeneficiaire=26684 ;

UPDATE  beneficiaire
SET primeNette=12043850,primeHt=12043850
WHERE idPolice=  202  AND id=26684 ;



-- 1-- Emission
UPDATE  emission e
INNER JOIN police p ON (p.id=e.idPolice)
SET e.primeNetteStat=e.primeNette,e.accessoireGarant=fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice),
e.accessoireGestion=fn_accessoire_prime("vitalis",primeNette,e.idPolice),
e.accessoireIntermediaire=0,
e.accessoire=(fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire),
e.taxe= (CASE WHEN p.codeTypeContrat="G" THEN ROUND(((e.accessoire+e.primeNette)*3)/100,0) ELSE ROUND(((e.accessoire+e.primeNette)*8)/100,0)  END ),
e.primeTtcInitial=
(CASE WHEN p.codeTypeContrat="G" 
THEN ROUND((((fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire)+e.primeNette)*3)/100,0) 
+(e.primeNette+(fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire))
ELSE ROUND((((fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire)+e.primeNette)*8)/100,0)  
+(e.primeNette+(fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire))END ),
e.primeTtc=
(CASE WHEN p.codeTypeContrat="G" 
THEN ROUND((((fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire)+e.primeNette)*3)/100,0) 
+(e.primeNette+(fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire))
ELSE ROUND((((fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire)+e.primeNette)*8)/100,0)  
+(e.primeNette+(fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire))END )
WHERE e.idPolice= 202
AND e.codeTypeAvenant="QTM"; 


-- 2 -- quittance
UPDATE  quittance e
INNER JOIN police p ON (p.id=e.idPolice)
SET e.primeNetteStat=e.primeNette,e.accessoireGarant=fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice),
e.accessoireGestion=fn_accessoire_prime("vitalis",primeNette,e.idPolice),
e.accessoireIntermediaire=0,
e.accessoire=(fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire),
e.taxe= (CASE WHEN p.codeTypeContrat="G" THEN ROUND(((e.accessoire+e.primeNette)*3)/100,0) ELSE ROUND(((e.accessoire+e.primeNette)*8)/100,0)  END ),
e.primeTtcInitial=
(CASE WHEN p.codeTypeContrat="G" 
THEN ROUND((((fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire)+e.primeNette)*3)/100,0) 
+(e.primeNette+(fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire))
ELSE ROUND((((fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire)+e.primeNette)*8)/100,0)  
+(e.primeNette+(fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire))END ),
e.primeTtc=
(CASE WHEN p.codeTypeContrat="G" 
THEN ROUND((((fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire)+e.primeNette)*3)/100,0) 
+(e.primeNette+(fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire))
ELSE ROUND((((fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire)+e.primeNette)*8)/100,0)  
+(e.primeNette+(fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire))END )
WHERE e.idPolice= 202
AND e.codeTypeAvenant="QTM"; 

-- 3-- BENEFICIAIRE PRIME
UPDATE  beneficiaireprime e
INNER JOIN police p ON (p.id=e.idPolice)
SET e.primeNetteStat=e.primeNette,e.accessoireGarant=fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice),
e.accessoireGestion=fn_accessoire_prime("vitalis",primeNette,e.idPolice),
e.accessoireIntermediaire=0,
e.accessoire=(fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire),
e.taxe= (CASE WHEN p.codeTypeContrat="G" THEN ROUND(((e.accessoire+e.primeNette)*3)/100,0) ELSE ROUND(((e.accessoire+e.primeNette)*8)/100,0)  END ),
e.primeTtc=
(CASE WHEN p.codeTypeContrat="G" 
THEN ROUND((((fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire)+e.primeNette)*3)/100,0) 
+(e.primeNette+(fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire))
ELSE ROUND((((fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire)+e.primeNette)*8)/100,0)  
+(e.primeNette+(fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire))END )
WHERE e.idPolice= 202 AND idBeneficiaire=26684 ;


-- 4-- BENEFICIAIRE 
UPDATE  beneficiaire e
INNER JOIN police p ON (p.id=e.idPolice)
SET e.primeNetteStat=e.primeNette,e.accessoireGarant=fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice),
e.accessoireGestion=fn_accessoire_prime("vitalis",primeNette,e.idPolice),
e.accessoireIntermediaire=0,
e.accessoire=(fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire),
e.taxe= (CASE WHEN p.codeTypeContrat="G" THEN ROUND(((e.accessoire+e.primeNette)*3)/100,0) ELSE ROUND(((e.accessoire+e.primeNette)*8)/100,0)  END ),
e.primeTtc=
(CASE WHEN p.codeTypeContrat="G" 
THEN ROUND((((fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire)+e.primeNette)*3)/100,0) 
+(e.primeNette+(fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire))
ELSE ROUND((((fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire)+e.primeNette)*8)/100,0)  
+(e.primeNette+(fn_accessoire_garant("vitalis",p.codeGcAssureur,primeNette,e.idPolice)+fn_accessoire_prime("vitalis",primeNette,e.idPolice)+e.accessoireIntermediaire))END )
WHERE e.idPolice= 202 AND e.id=26684
AND nomBeneficiaire LIKE "%AVENANT%";

