public void ValidateDecaissement() { var decDAO = new DecaissementDAO(sqlManager); DecaissementDTO DTOTmp = new DecaissementDTO() { banque = "BNP", date_compta = "25/02/2019", date_operation = "26/02/2019", date_valeur = "27/02/2019", mode_paiement = "AUCUN", montant_ht = "1000", montant_ttc = "1200.12", operation = "unitTestDecaissement1" }; decDAO.SaveDraftDecaissement(DTOTmp); var resultNotValidated = JsonConvert.DeserializeObject <List <DecaissementDTO> >(decDAO.GetDraftDecaissement()); var resultValidated = JsonConvert.DeserializeObject <List <DecaissementDTO> >(decDAO.GetValidatedDecaissements()); Assert.IsTrue(resultNotValidated.Count > 0); Assert.IsTrue(resultValidated.Count == 0); DTOTmp.id = resultNotValidated[0].id; decDAO.ValidateDecaissement(DTOTmp); resultValidated = JsonConvert.DeserializeObject <List <DecaissementDTO> >(decDAO.GetValidatedDecaissements()); //ne devrait pas pouvoir valider un decaissement sans sous classif Assert.IsTrue(resultValidated.Count == 0); var listClassif = JsonConvert.DeserializeObject <Dictionary <string, List <SousClassificationDTO> > >( new ClassificationDAO(sqlManager).GetClassification()); DTOTmp.id_sous_classification = listClassif["ADMINISTRATIF"][1].id; DTOTmp.mois_valeur = "2"; decDAO.ValidateDecaissement(DTOTmp); resultValidated = JsonConvert.DeserializeObject <List <DecaissementDTO> >(decDAO.GetValidatedDecaissements()); Assert.IsTrue(resultValidated.Count == 1); }
public async Task <HttpResponseMessage> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequestMessage req, ILogger log) { string json; dynamic data = await req.Content.ReadAsAsync <object>(); try { json = new DecaissementDAO(sqlManager).SaveDraftDecaissement(new DecaissementDTO() { operation = data?.operation, compte = data?.compte, banque = data?.banque, mode_paiement = data?.mode_paiement, date_compta = data?.date_compta, date_operation = data?.date_operation, date_valeur = data?.date_valeur, montant_ttc = data?.montant_ttc } ); } catch (SqlException e) { return(new HttpResponseMessage(HttpStatusCode.Conflict) { Content = new StringContent(e.ToString()) }); } return(new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(json) }); }
public void GetDraftDecaissementTest() { var decDAO = new DecaissementDAO(sqlManager); DecaissementDTO DTOTmp = new DecaissementDTO() { banque = "BNP", date_compta = "25/02/2019", date_operation = "26/02/2019", date_valeur = "27/02/2019", mode_paiement = "AUCUN", montant_ht = "1000", montant_ttc = "1200.12", operation = "unitTestDecaissement1" }; decDAO.SaveDraftDecaissement(DTOTmp); var result = JsonConvert.DeserializeObject <List <ExpectedDraftDecaissement> > (decDAO.GetDraftDecaissement()); Assert.IsTrue(result[0].banque == DTOTmp.banque); Assert.IsTrue(Convert.ToDateTime(result[0].date_compta) == Convert.ToDateTime(DTOTmp.date_compta)); Assert.IsTrue(Convert.ToDateTime(result[0].date_operation) == Convert.ToDateTime(DTOTmp.date_operation)); Assert.IsTrue(Convert.ToDateTime(result[0].date_valeur) == Convert.ToDateTime(DTOTmp.date_valeur)); Assert.IsTrue(result[0].mode_paiement == DTOTmp.mode_paiement); Assert.IsTrue(Double.Parse(result[0].montant_ttc.Replace('.', ',')) == Double.Parse(DTOTmp.montant_ttc.Replace('.', ','))); Assert.IsTrue(result[0].operation == DTOTmp.operation); }
public async Task <HttpResponseMessage> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequestMessage req, ILogger log) { log.LogInformation("C# HTTP trigger function processed a request."); string retour = ""; try { retour = new DecaissementDAO(sqlManager).GetValidatedDecaissements(); } catch (Exception e) { return(new HttpResponseMessage(HttpStatusCode.InternalServerError) { Content = new StringContent(e.Message) }); } return(new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(retour) }); }
public async Task <HttpResponseMessage> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequestMessage req, ILogger log) { dynamic data = await req.Content.ReadAsAsync <object>(); if (data?.id == null) { return(new HttpResponseMessage(HttpStatusCode.BadRequest) { Content = new StringContent("Missing parameter : 'id'") }); } string retour = ""; try { retour = new DecaissementDAO(sqlManager).DeleteDecaissement((data?.id).ToString()); } catch (Exception e) { return(new HttpResponseMessage(HttpStatusCode.InternalServerError) { Content = new StringContent(e.Message) }); } return(new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(retour) }); }
public async Task <HttpResponseMessage> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequestMessage req, ILogger log) { log.LogInformation("C# HTTP trigger function processed a request."); Dictionary <string, object> dictionnaire = new Dictionary <string, object>(); string json; dynamic data = await req.Content.ReadAsAsync <object>(); dictionnaire.Add("id_decaissement", data?.id_decaissement); dictionnaire.Add("id_sous_classification", data?.id_sous_classification); dictionnaire.Add("mois_valeur", data?.mois_valeur); dictionnaire.Add("tva_deductible", data?.tva_deductible); dictionnaire.Add("montant_ht", data?.montant_ht); dictionnaire.Add("versement_tva", data?.versement_tva); string errorList = ""; foreach (var item in dictionnaire) { if (item.Value == null) { errorList += item.Key + " "; } } if (errorList != "") { return(new HttpResponseMessage(HttpStatusCode.BadRequest) { Content = new StringContent("erreur : parametres " + errorList + " manquant") }); } try { json = new DecaissementDAO(sqlManager).ValidateDecaissement(new DecaissementDTO() { id = data?.id_decaissement, id_sous_classification = data?.id_sous_classification, mois_valeur = data?.mois_valeur, tva_deductible = data?.tva_deductible, montant_ht = data?.montant_ht, versement_tva = data?.versement_tva }); } catch (Exception e) { return(new HttpResponseMessage(HttpStatusCode.Conflict) { Content = new StringContent(e.ToString()) }); } return(new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(json) }); }
public void EditDecaissementTest() { var decDAO = new DecaissementDAO(sqlManager); DecaissementDTO DTOTmp1 = new DecaissementDTO() { banque = "BNP", date_compta = "25/02/2019", date_operation = "26/02/2019", date_valeur = "27/02/2019", mode_paiement = "AUCUN", montant_ht = "1000", montant_ttc = "1200.12", operation = "unitTestDecaissement1" }; DecaissementDTO DTOTmp2 = new DecaissementDTO() { banque = "HSBC", date_compta = "25/5/2019", date_operation = "3/02/2019", date_valeur = "27/02/2017", mode_paiement = "CHQ", montant_ttc = "3", operation = "unitTestDecaissement2" }; decDAO.SaveDraftDecaissement(DTOTmp1); var result = JsonConvert.DeserializeObject <List <ExpectedDraftDecaissement> >(decDAO.GetDraftDecaissement()); DTOTmp2.id = result[0].id; decDAO.EditDecaissement(DTOTmp2); result = JsonConvert.DeserializeObject <List <ExpectedDraftDecaissement> >(decDAO.GetDraftDecaissement()); Assert.IsTrue(result[0].banque == DTOTmp2.banque); Assert.IsTrue(Convert.ToDateTime(result[0].date_compta) == Convert.ToDateTime(DTOTmp2.date_compta)); Assert.IsTrue(Convert.ToDateTime(result[0].date_operation) == Convert.ToDateTime(DTOTmp2.date_operation)); Assert.IsTrue(Convert.ToDateTime(result[0].date_valeur) == Convert.ToDateTime(DTOTmp2.date_valeur)); Assert.IsTrue(result[0].mode_paiement == DTOTmp2.mode_paiement); Assert.IsTrue(Double.Parse(result[0].montant_ttc.Replace('.', ',')) == Double.Parse(DTOTmp2.montant_ttc.Replace('.', ','))); Assert.IsTrue(result[0].operation == DTOTmp2.operation); Assert.IsTrue(result[0].compte.Equals("compte 1 HSBC")); DTOTmp2.banque = "BNP"; DTOTmp2.compte = "compte 2 BNP"; decDAO.EditDecaissement(DTOTmp2); result = JsonConvert.DeserializeObject <List <ExpectedDraftDecaissement> >(decDAO.GetDraftDecaissement()); Assert.IsTrue(result[0].compte.Equals("compte 2 BNP")); }
public void DeleteDecaissementTest() { var decDAO = new DecaissementDAO(sqlManager); DecaissementDTO DTOTmp = new DecaissementDTO() { banque = "BNP", date_compta = "25/02/2019", date_operation = "26/02/2019", date_valeur = "27/02/2019", mode_paiement = "AUCUN", montant_ht = "1000", montant_ttc = "1200.12", operation = "unitTestDecaissement1" }; decDAO.SaveDraftDecaissement(DTOTmp); var result = JsonConvert.DeserializeObject <List <ExpectedDraftDecaissement> >(decDAO.GetDraftDecaissement()); Assert.IsTrue(result.Count == 1); decDAO.DeleteDecaissement(result[0].id); result = JsonConvert.DeserializeObject <List <ExpectedDraftDecaissement> >(decDAO.GetDraftDecaissement()); Assert.IsTrue(result.Count == 0); }
public void GetAllAccountPositionAtDate() { var decaissementDAO = new DecaissementDAO(sqlManager); var encaissementDAO = new EncaissementDAO(sqlManager); var compteDAO = new CompteDAO(sqlManager); var classificationDAO = new ClassificationDAO(sqlManager); var resultPosition = GetTotalPosition(compteDAO); //on s'assure qu'au début, la position est à zero Assert.AreEqual(0, resultPosition); string retour = encaissementDAO.SaveEncaissement(new EncaissementDTO() { banque = "BNP", compte = "compte 2 BNP", total_ttc = "12", date_reglement = "02/06/2019" }); resultPosition = GetTotalPosition(compteDAO); Assert.AreEqual(12, resultPosition); //on fait un deuxieme encaissement dans un autre compte retour = encaissementDAO.SaveEncaissement(new EncaissementDTO() { banque = "HSBC", total_ttc = "13", date_reglement = "02/06/2019" }); resultPosition = GetTotalPosition(compteDAO); Assert.AreEqual(25, resultPosition); //on fait un troisieme encaissement, mais en 2020 pour etre sur qu'il n'est pas comptabilisé retour = encaissementDAO.SaveEncaissement(new EncaissementDTO() { banque = "BPOP", total_ttc = "11", date_reglement = "01/01/2020" }); resultPosition = GetTotalPosition(compteDAO); Assert.AreEqual(25, resultPosition); string retour1 = decaissementDAO.SaveDraftDecaissement(new DecaissementDTO() { operation = "test", banque = "BNP", montant_ttc = "9.5", date_operation = "05/06/2019", date_compta = "05/06/2019", date_valeur = "05/06/2019", facture_verifie = "1"//ne devrai pas etre pris en compte }); retour = JsonConvert.DeserializeObject <List <ExpectedReturn> >(retour1)[0].retour; //on s'assure qu'un decaissement non validé n'est pas pris en compte resultPosition = GetTotalPosition(compteDAO); Assert.AreEqual(25, resultPosition); string idSousCLass = ""; var dicoRetour = JsonConvert.DeserializeObject <Dictionary <string, List <SousClassificationDTO> > >( classificationDAO.GetClassification()); foreach (var item in dicoRetour) { idSousCLass = item.Value[0].id; break; } Assert.AreEqual(25, resultPosition); var retour2 = decaissementDAO.ValidateDecaissement(new DecaissementDTO() { id = retour, id_sous_classification = idSousCLass, mois_valeur = "6" }); var resultValidated = JsonConvert.DeserializeObject <List <DecaissementDTO> >(decaissementDAO.GetValidatedDecaissements()); Assert.IsTrue(resultValidated.Count == 1); resultPosition = GetTotalPosition(compteDAO); Assert.AreEqual(15.5, resultPosition); }
public void GetPositionPeriode() { var decaissementDAO = new DecaissementDAO(sqlManager); var encaissementDAO = new EncaissementDAO(sqlManager); var compteDAO = new CompteDAO(sqlManager); //on s'assure qu'au début, la position est à zero string retour = compteDAO.GetTotalPositionAtInterval(DateTime.Now.ToString("dd/MM/yyyy"), DateTime.Now.ToString("dd/MM/yyyy"), "annee"); var resultPosition = JsonConvert.DeserializeObject <List <ExpectedPositionInterval> >(retour); Assert.AreEqual(0, double.Parse(resultPosition[0].position.Replace('.', ','))); //on enregistre un decaissement non validé var decaissement1 = new DecaissementDTO() { banque = "BNP", date_compta = "20/02/2019", date_valeur = "20/02/2019", date_operation = "20/02/2019", mode_paiement = "CHQ", operation = "unitTestDec1", montant_ttc = "12.2" }; decaissementDAO.SaveDraftDecaissement(decaissement1); retour = decaissementDAO.GetDraftDecaissement(); var resultDecaissement = JsonConvert.DeserializeObject <List <DecaissementDTO> >( decaissementDAO.GetDraftDecaissement()); decaissement1.id = resultDecaissement[0].id; var listClassif = JsonConvert.DeserializeObject <Dictionary <string, List <SousClassificationDTO> > >( new ClassificationDAO(sqlManager).GetClassification()); decaissement1.id_sous_classification = listClassif["ADMINISTRATIF"][1].id; decaissement1.mois_valeur = "2"; //on valide le decaissement decaissementDAO.ValidateDecaissement(decaissement1); retour = compteDAO.GetTotalPositionAtInterval("07/06/2019", "07/06/2019", "jours"); resultPosition = JsonConvert.DeserializeObject <List <ExpectedPositionInterval> >(retour); //on s'assure que la postition après le decaissement as bien changé Assert.AreEqual(-12.2, double.Parse(resultPosition[0].position.Replace('.', ','))); retour = compteDAO.GetTotalPositionAtInterval("13/01/2019", "13/01/2019", "jours"); resultPosition = JsonConvert.DeserializeObject <List <ExpectedPositionInterval> >(retour); //on s'assure que la position AVANT le decaissement reste inchangé Assert.AreEqual(0, double.Parse(resultPosition[0].position.Replace('.', ','))); var encaissement = new EncaissementDTO() { banque = "HSBC", compte = "compte 1 HSBC", mode_paiement = "CHQ", total_ttc = "20", societe = "UNO", date_reglement = "14/05/2019" }; encaissementDAO.SaveEncaissement(encaissement); retour = compteDAO.GetTotalPositionAtInterval("07/06/2019", "07/06/2019", "jours"); resultPosition = JsonConvert.DeserializeObject <List <ExpectedPositionInterval> >(retour); //on s'assure que la position prend en compte les encaissement et decaissement meme sur différentes banque/compte Assert.AreEqual(7.8, double.Parse(resultPosition[0].position.Replace('.', ','))); encaissement = new EncaissementDTO() { banque = "HSBC", compte = "compte 1 HSBC", mode_paiement = "CHQ", total_ttc = "20", societe = "UNO", date_reglement = "14/05/2017" }; encaissementDAO.SaveEncaissement(encaissement); retour = compteDAO.GetTotalPositionAtInterval("07/06/2018", "07/06/2018", "jours"); resultPosition = JsonConvert.DeserializeObject <List <ExpectedPositionInterval> >(retour); //on s'assure que la position prend en compte l'encaissement en 2018 et ignore les mouvements ulterieurs Assert.AreEqual(20, double.Parse(resultPosition[0].position.Replace('.', ','))); retour = compteDAO.GetTotalPositionAtInterval("07/06/2019", "07/06/2019", "jours"); resultPosition = JsonConvert.DeserializeObject <List <ExpectedPositionInterval> >(retour); //on s'assure que la position prend en compte tout les mouvements, peut importe le compte ou l'année Assert.AreEqual(27.8, double.Parse(resultPosition[0].position.Replace('.', ','))); }
public async Task <HttpResponseMessage> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequestMessage req, ILogger log) { string json; dynamic data = await req.Content.ReadAsAsync <object>(); try { DecaissementDTO decaissementDTO = new DecaissementDTO() { id = data?.id, banque = data?.banque, compte = data?.compte, date_compta = data?.date_compta, date_operation = data?.date_operation, date_valeur = data?.date_valeur, details = data?.details, facture_verifie = data?.facture_verifie, id_sous_classification = data?.id_sousclassification, mode_paiement = data?.mode_paiement, mois_valeur = data?.mois_valeur, montant_ht = data?.montant_ht, montant_ttc = data?.montant_ttc, operation = data?.operation, transfert_compte = data?.transfert_compte, tva_deductible = data?.tva_deductible, versement_tva = data?.versement_tva }; if (decaissementDTO.montant_ttc != null) { decaissementDTO.montant_ttc = decaissementDTO.montant_ttc.Replace("€", "").Replace(",", "").Trim(); } if (decaissementDTO.tva_deductible != null) { decaissementDTO.tva_deductible = decaissementDTO.tva_deductible.Replace("€", "").Replace(",", "").Trim(); } if (decaissementDTO.montant_ht != null) { decaissementDTO.montant_ht = decaissementDTO.montant_ht.Replace("€", "").Replace(",", "").Trim(); } if (decaissementDTO.versement_tva != null) { decaissementDTO.versement_tva = decaissementDTO.versement_tva.Replace("€", "").Replace(",", "").Trim(); } if (decaissementDTO.transfert_compte != null) { decaissementDTO.transfert_compte = decaissementDTO.transfert_compte.Replace("€", "").Replace(",", "").Trim(); } json = new DecaissementDAO(sqlManager).EditDecaissement(decaissementDTO); } catch (SqlException e) { return(new HttpResponseMessage(HttpStatusCode.Conflict) { Content = new StringContent(e.ToString()) }); } return(new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(json) }); }