public void Exec(Model.Local.Customer Customer, out List <String> log_out) { //logs.Add("Client ps " + Customer.Pre_Id.ToString() + " / sage " + Customer.Sag_Id.ToString()); try { //if (Core.Global.GetConfig().ModuleAECCustomerOutstandingActif && Core.Global.ExistAECCustomerOutstandingModule()) { //logs.Add("module encours actif"); Model.Sage.F_COMPTETRepository F_COMPTETRepository = new Model.Sage.F_COMPTETRepository(); Model.Prestashop.PsCustomerRepository PsCustomerRepository = new Model.Prestashop.PsCustomerRepository(); if (!F_COMPTETRepository.ExistId(Customer.Sag_Id)) { logs.Add("BO10- Client Sage introuvable à partir du l'identifiant " + Customer.Sag_Id.ToString() + " !"); } else if (!PsCustomerRepository.ExistCustomer((uint)Customer.Pre_Id)) { logs.Add("BO11- Client PrestaShop introuvable à partir de l'identifiant " + Customer.Pre_Id.ToString() + " !"); } else { //logs.Add("données client récupérées"); List <string> log = new List <string>(); try { DateTime DebutExo = new DateTime(1900, 01, 01); DateTime FinExo = new DateTime(1900, 01, 01); if (current_exercice(out DebutExo, out FinExo)) { //logs.Add("Exercice " + DebutExo.ToShortDateString() + " / " + FinExo.Date.ToShortDateString()); if (ParametrePortefeuille == Core.Parametres.P_BaseEncours.NonDefini) { read_param_portefeuille(); } //logs.Add("Paramètre portefeuille " + ParametrePortefeuille.ToString()); Model.Sage.F_COMPTET F_COMPTET = F_COMPTETRepository.Read(Customer.Sag_Id); Decimal EncoursAutorise = (F_COMPTET.CT_Encours != null) ? F_COMPTET.CT_Encours.Value : 0; Decimal SoldeComptable, Portefeuille; LoadControleEncours(F_COMPTET, DebutExo, FinExo, out SoldeComptable, out Portefeuille); //logs.Add("client : " + F_COMPTET.CT_Num //+ " / type encours : " + F_COMPTET.EtatControleEncours.ToString() //+ " / autorisé : " + EncoursAutorise //+ " / solde comptable : " + SoldeComptable //+ " / portefeuille : " + Portefeuille); #region Saisie PrestaShop Model.Prestashop.PsCustomer PsCustomer = PsCustomerRepository.ReadCustomer((uint)Customer.Pre_Id); PsCustomer.OutstandingAllowAmount = EncoursAutorise; PsCustomerRepository.Save(); Model.Prestashop.PsAECBalanceOutstandingRepository PsAECBalanceOutstandingRepository = new Model.Prestashop.PsAECBalanceOutstandingRepository(); Model.Prestashop.PsAEcBalanceOutstanding encours_client; if (PsAECBalanceOutstandingRepository.ExistCustomer(PsCustomer.IDCustomer)) { encours_client = PsAECBalanceOutstandingRepository.ReadCustomer(PsCustomer.IDCustomer); encours_client.SageOutstanding = SoldeComptable; encours_client.SageWallet = Portefeuille; encours_client.OutstandingAllowAmount = EncoursAutorise; switch (F_COMPTET.EtatControleEncours) { case PRESTACONNECT.Model.Sage.P_CRISQUE._Enum_R_Type.Livraison: encours_client.Oversee = 0; encours_client.AccountLocked = 0; break; case PRESTACONNECT.Model.Sage.P_CRISQUE._Enum_R_Type.Surveillance: encours_client.Oversee = 1; encours_client.AccountLocked = 0; break; case PRESTACONNECT.Model.Sage.P_CRISQUE._Enum_R_Type.Blocage: encours_client.Oversee = 0; encours_client.AccountLocked = 1; break; } PsAECBalanceOutstandingRepository.Save(); } else { encours_client = new Model.Prestashop.PsAEcBalanceOutstanding() { IDCustomer = PsCustomer.IDCustomer, SageOutstanding = SoldeComptable, SageWallet = Portefeuille, OutstandingAllowAmount = EncoursAutorise, }; switch (F_COMPTET.EtatControleEncours) { case PRESTACONNECT.Model.Sage.P_CRISQUE._Enum_R_Type.Livraison: encours_client.Oversee = 0; encours_client.AccountLocked = 0; break; case PRESTACONNECT.Model.Sage.P_CRISQUE._Enum_R_Type.Surveillance: encours_client.Oversee = 1; encours_client.AccountLocked = 0; break; case PRESTACONNECT.Model.Sage.P_CRISQUE._Enum_R_Type.Blocage: encours_client.Oversee = 0; encours_client.AccountLocked = 1; break; } PsAECBalanceOutstandingRepository.Add(encours_client); } #endregion } } catch (Exception ex) { log.Add("BO02- Erreur calcul suivi comptable : " + ex.ToString()); } if (log.Count > 0) { logs.AddRange(log); } } } } catch (Exception ex) { Core.Error.SendMailError("BO01- Une erreur est survenue : " + ex.ToString()); } finally { log_out = logs; } }
public void Exec(Model.Local.Customer Customer, out List <String> log_out) { logs = new List <string>(); //logs.Add("Client ps " + Customer.Pre_Id.ToString() + " / sage " + Customer.Sag_Id.ToString()); try { if (Core.Global.GetConfig().ModuleAECCustomerOutstandingActif&& Core.Global.ExistAECCustomerOutstandingModule()) { //logs.Add("module encours actif"); Model.Sage.F_COMPTETRepository F_COMPTETRepository = new Model.Sage.F_COMPTETRepository(); Model.Prestashop.PsCustomerRepository PsCustomerRepository = new Model.Prestashop.PsCustomerRepository(); if (!F_COMPTETRepository.ExistId(Customer.Sag_Id)) { logs.Add("TEC10- Client Sage introuvable à partir du l'identifiant " + Customer.Sag_Id.ToString() + " !"); } else if (!PsCustomerRepository.ExistCustomer((uint)Customer.Pre_Id)) { logs.Add("TEC11- Client PrestaShop introuvable à partir de l'identifiant " + Customer.Pre_Id.ToString() + " !"); } else { //logs.Add("données client récupérées"); List <string> log = new List <string>(); if (current_exercice(out DebutExo, out FinExo)) { //logs.Add("Exercice " + DebutExo.ToShortDateString() + " / " + FinExo.Date.ToShortDateString()); if (ParametrePortefeuille == Core.Parametres.P_BaseEncours.NonDefini) { read_param_portefeuille(); } //logs.Add("Paramètre portefeuille " + ParametrePortefeuille.ToString()); Model.Sage.F_COMPTET F_COMPTET = F_COMPTETRepository.Read(Customer.Sag_Id); Decimal EncoursAutorise = 0; Decimal EncoursUtilise; LoadControleEncours(F_COMPTET, out EncoursUtilise); //logs.Add("client : " + F_COMPTET.CT_Num //+ " / type encours " + F_COMPTET.EtatControleEncours.ToString() //+ " / autorisé " + EncoursAutorise //+ " / utilisé " + EncoursUtilise); switch (F_COMPTET.EtatControleEncours) { case PRESTACONNECT.Model.Sage.P_CRISQUE._Enum_R_Type.Livraison: EncoursAutorise = (F_COMPTET.CT_Encours != null) ? F_COMPTET.CT_Encours.Value : 0; break; case PRESTACONNECT.Model.Sage.P_CRISQUE._Enum_R_Type.Surveillance: case PRESTACONNECT.Model.Sage.P_CRISQUE._Enum_R_Type.Blocage: if (F_COMPTET.CT_ControlEnc == (short)ABSTRACTION_SAGE.F_COMPTET.Obj._Enum_CT_ControlEnc.Compte_Bloque) { EncoursAutorise = 0; } else { EncoursAutorise = (F_COMPTET.CT_Encours != null) ? F_COMPTET.CT_Encours.Value : 0; } break; } #region Saisie PrestaShop Model.Prestashop.PsCustomer PsCustomer = PsCustomerRepository.ReadCustomer((uint)Customer.Pre_Id); PsCustomer.OutstandingAllowAmount = EncoursAutorise; PsCustomerRepository.Save(); Model.Prestashop.PsAECCustomerOutstandingRepository PsAECCustomerOutstandingRepository = new Model.Prestashop.PsAECCustomerOutstandingRepository(); Model.Prestashop.PsAEcCustomerOutstanding encours_client; if (PsAECCustomerOutstandingRepository.ExistCustomer(PsCustomer.IDCustomer)) { encours_client = PsAECCustomerOutstandingRepository.ReadCustomer(PsCustomer.IDCustomer); encours_client.EncoursActuelSage = EncoursUtilise; PsAECCustomerOutstandingRepository.Save(); } else { PsAECCustomerOutstandingRepository.Add(new Model.Prestashop.PsAEcCustomerOutstanding() { IDCustomer = PsCustomer.IDCustomer, EncoursActuelSage = EncoursUtilise, }); if (log != null && log.Count > 0) { logs.AddRange(log); } } #endregion } if (log.Count > 0) { logs.AddRange(log); } } } } catch (Exception ex) { Core.Error.SendMailError("TEC01- Une erreur est survenue : " + ex.ToString()); } finally { log_out = logs; } }