Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        public string EditDecaissement(DecaissementDTO decaissementDTO)
        {
            Dictionary <string, object> dictionnaire = new Dictionary <string, object>();
            var date_compta    = DateTime.Parse(decaissementDTO.date_compta, new System.Globalization.CultureInfo("fr-FR"));
            var date_operation = DateTime.Parse(decaissementDTO.date_operation, new System.Globalization.CultureInfo("fr-FR"));
            var date_valeur    = DateTime.Parse(decaissementDTO.date_valeur, new System.Globalization.CultureInfo("fr-FR"));

            dictionnaire.Add("id", decaissementDTO.id);
            dictionnaire.Add("operation", decaissementDTO.operation);
            dictionnaire.Add("compte", decaissementDTO.compte);
            dictionnaire.Add("banque", decaissementDTO.banque);
            dictionnaire.Add("mode_paiement", decaissementDTO.mode_paiement);
            dictionnaire.Add("date_compta", date_compta.ToString("dd/MM/yyyy"));
            dictionnaire.Add("date_operation", date_operation.ToString("dd/MM/yyyy"));
            dictionnaire.Add("date_valeur", date_valeur.ToString("dd/MM/yyyy"));
            dictionnaire.Add("montant_ttc", decaissementDTO.montant_ttc);
            dictionnaire.Add("tva_deductible", decaissementDTO.tva_deductible);
            dictionnaire.Add("montant_ht", decaissementDTO.montant_ht);
            dictionnaire.Add("versement_tva", decaissementDTO.versement_tva);
            dictionnaire.Add("id_sous_classification", decaissementDTO.id_sous_classification);
            dictionnaire.Add("details", decaissementDTO.details);
            dictionnaire.Add("facture_verifie", decaissementDTO.facture_verifie);
            dictionnaire.Add("mois_valeur", decaissementDTO.mois_valeur);
            dictionnaire.Add("transfert_compte", decaissementDTO.transfert_compte);
            return(sqlManager.ExecProcedure("EditDecaissement", dictionnaire));
        }
Ejemplo n.º 4
0
        public string ValidateDecaissement(DecaissementDTO decaissementDTO)
        {
            Dictionary <string, object> dictionnaire = new Dictionary <string, object>();

            dictionnaire.Add("id_sous_classification", decaissementDTO.id_sous_classification);
            dictionnaire.Add("id_decaissement", decaissementDTO.id);
            dictionnaire.Add("mois_valeur", decaissementDTO.mois_valeur);
            dictionnaire.Add("tva_deductible", decaissementDTO.tva_deductible);
            dictionnaire.Add("montant_ht", decaissementDTO.montant_ht);
            dictionnaire.Add("versement_tva", decaissementDTO.versement_tva);
            return(sqlManager.ExecProcedure("ValidateDecaissement", dictionnaire));
        }
Ejemplo n.º 5
0
        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"));
        }
Ejemplo n.º 6
0
        public string SaveDraftDecaissement(DecaissementDTO decaissementDTO)
        {
            Dictionary <string, object> dictionnaire = new Dictionary <string, object>();

            dictionnaire.Add("operation", decaissementDTO.operation);
            dictionnaire.Add("compte", decaissementDTO.compte);
            dictionnaire.Add("banque", decaissementDTO.banque);
            dictionnaire.Add("mode_paiement", decaissementDTO.mode_paiement);
            dictionnaire.Add("date_compta", decaissementDTO.date_compta);
            dictionnaire.Add("date_operation", decaissementDTO.date_operation);
            dictionnaire.Add("date_valeur", decaissementDTO.date_valeur);
            dictionnaire.Add("montant_ttc", decaissementDTO.montant_ttc);
            if (dictionnaire["montant_ttc"] != null)
            {
                dictionnaire["montant_ttc"] = ((string)decaissementDTO.montant_ttc).Split(',')[0].Replace(" ", "").Replace("€", "").Replace("-", "").Trim();
            }
            return(sqlManager.ExecProcedure("SaveDraftDecaissement", dictionnaire));
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        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('.', ',')));
        }
Ejemplo n.º 9
0
        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)
            });
        }