예제 #1
0
        public void Update_status_in_of(crm.Indbetaling crm_indbetaling)
        {
            //todo byt ud med of_indbetaling_id
            int?of_indbetaling_id = crm_indbetaling.Nrq_of_id;

            if (of_indbetaling_id.HasValue == false)
            {
                return;
            }

            of.data.Payment of_indbetaling = _of_connection.Payment.Get(of_indbetaling_id.Value);

            //todo sæt status
            //string crm_status = crm_indbetaling.nrq_tekst;
            string crm_status = string.Empty;

            if (crm_status == of_indbetaling.State)
            {
                return;
            }

            of.data.Payment of_indbetaling_patch = new of.data.Payment()
            {
                Of_id = of_indbetaling_id,
                State = crm_status,
            };
            _of_connection.Payment.Patch(of_indbetaling_id.Value, of_indbetaling);
        }
예제 #2
0
        private void Create_or_update_associated_entities(crm.Indbetaling crm_indbetaling, of.data.Payment of_indbetaling)
        {
            if (of_indbetaling.Agreement_id.HasValue)
            {
                of.data.Agreement of_aftale = _of_connection.Agreement.Get(of_indbetaling.Agreement_id.Value);

                crm.Aftale crm_aftale = Create_or_update_one_aftale_in_crm(of_aftale);

                crm_indbetaling.Nrq_betalingsaftale = new EntityReference("new_indbetaling", crm_aftale.Id);

                //_tracingService.Trace($"connecting aftale {crm_aftale.Id} to indbetaling {crm_indbetaling.Id}");
            }
            else
            {
                //_tracingService.Trace($"no aftale on indbetaling {crm_indbetaling.Id}");
            }

            if (of_indbetaling.Contact_id.HasValue)
            {
                of.data.Contact of_contact = _of_connection.Contact.Get(of_indbetaling.Contact_id.Value);

                crm.Contact crm_contact = Create_or_update_one_contact_in_crm(of_indbetaling.Contact_id, of_contact);

                crm_indbetaling.Nrq_indbetaler = new EntityReference("contact", crm_contact.Id);

                //_tracingService.Trace($"connecting contact {crm_contact.Id} to indbetaling {crm_indbetaling.Id}");
            }
            else
            {
                //_tracingService.Trace($"no contact on indbetaling {crm_indbetaling.Id}");
            }

            crm_indbetaling.Set_indbetaling_type_from_of_project_id(of_indbetaling.Project_id);
        }
예제 #3
0
 public static void To_crm(crm.Indbetaling crm_indbetaling, of.data.Payment of_payment, ITracingService tracingService)
 {
     crm_indbetaling.Nrq_of_agreement_id = of_payment.Agreement_id;
     if (of_payment.Amount != null)
     {
         crm_indbetaling.New_amount = new Money((decimal)of_payment.Amount);
     }
     if (string.IsNullOrWhiteSpace(of_payment.Crm_id) == false)
     {
         crm_indbetaling.Id = Guid.Parse(of_payment.Crm_id);
     }
     if (string.IsNullOrWhiteSpace(of_payment.Amount_type) == false)
     {
         crm_indbetaling.Nrq_amountType.Select(of_payment.Amount_type, tracingService);
     }
     //crm_indbetaling.Nrq_FeeAmount = of_payment.fee_amount;
     crm_indbetaling.Nrq_of_contact_id             = of_payment.Contact_id;
     crm_indbetaling.Nrq_of_fundraising_project_id = of_payment.Project_id;
     crm_indbetaling.Nrq_of_id = of_payment.Of_id;
     //crm_indbetaling.Nrq_paymentDate = of_payment.Payment_ts_value;
     crm_indbetaling.Nrq_PaymentDueDate = of_payment.Payment_due_ts_value;
     crm_indbetaling.Nrq_PaymentGateway.Select(of_payment.Payment_gateway, tracingService);
     crm_indbetaling.Nrq_PaymentMedia.Select(of_payment.Payment_media, tracingService);
     crm_indbetaling.Nrq_PaymentType.Select(of_payment.Payment_media_type, tracingService);
     //crm_indbetaling.Nrq_BookkeeptinDate
     //crm_indbetaling.Nrq_ChargebackDate
 }
예제 #4
0
        private void Create_in_crm(crm.Indbetaling crm_indbetaling, of.data.Payment of_indbetaling)
        {
            Mapping.Indbetaling.To_crm(crm_indbetaling, of_indbetaling, _tracingService);

            Create_or_update_associated_entities(crm_indbetaling, of_indbetaling);

            crm_indbetaling.Create();
        }
        protected override void Execute(CodeActivityContext codeActivityContext)
        {
            Initialize(codeActivityContext);

            EntityReference aftaleEntityReference = IndbetalingEntityReference.Get <EntityReference>(codeActivityContext);

            crm.Indbetaling crm_indbetaling = new crm.Indbetaling(_service, _tracingService);
            crm_indbetaling.Get_by_reference(aftaleEntityReference);

            Maintain maintain = new Maintain(_service, _tracingService, _config, _of_connection);

            maintain.Update_status_in_of(crm_indbetaling);
        }
예제 #6
0
        private void Update_in_crm(crm.Indbetaling crm_indbetaling, of.data.Payment of_indbetaling)
        {
            List <string> parameters_to_update = Mapping.Indbetaling.Needs_update_in_crm(crm_indbetaling, of_indbetaling);

            if (parameters_to_update.Any() == false)
            {
                return;
            }

            Mapping.Indbetaling.To_crm(crm_indbetaling, of_indbetaling, _tracingService);

            Create_or_update_associated_entities(crm_indbetaling, of_indbetaling);

            crm_indbetaling.Update(parameters_to_update);
        }
예제 #7
0
        public void Create_or_update_one_indbetaling_in_crm(int of_indbetaling_id, of.data.Payment of_indbetaling)
        {
            crm.Indbetaling crm_indbetaling = new crm.Indbetaling(_service, _tracingService);

            crm_indbetaling.Get_by_of_id(of_indbetaling_id);

            if (crm_indbetaling.CrmEntity == null)
            {
                Create_in_crm(crm_indbetaling, of_indbetaling);
            }
            else
            {
                Update_in_crm(crm_indbetaling, of_indbetaling);
            }
        }
예제 #8
0
        public static List <string> Needs_update_in_of(crm.Indbetaling crm_indbetaling, of.data.Payment of_payment)
        {
            List <string> parameters = new List <string>();

            Mapping_update_helper.Add_if_unequal(parameters, "Agreement_id", crm_indbetaling.Nrq_of_agreement_id, of_payment.Agreement_id);
            Mapping_update_helper.Add_if_unequal(parameters, "Amount", (int?)crm_indbetaling.New_amount.Value, of_payment.Amount);
            Mapping_update_helper.Add_if_unequal(parameters, "Amount_type", crm_indbetaling.Nrq_amountType.SelectedValue, of_payment.Amount_type);
            //Mapping_update_helper.Add_if_unequal(parameters, "nrq_bookkeepingdate", crm_indbetaling.Nrq_BookkeepinDate, of_payment.);
            //Mapping_update_helper.Add_if_unequal(parameters, "nrq_chargebackdate", crm_indbetaling.Nrq_ChargebackDate, of_payment.Agreement_id);
            //Mapping_update_helper.Add_if_unequal(parameters, "nrq_feeamount", crm_indbetaling.Nrq_FeeAmount, of_payment.fee);
            Mapping_update_helper.Add_if_unequal(parameters, "Contact_id", crm_indbetaling.Nrq_of_contact_id, of_payment.Contact_id);
            Mapping_update_helper.Add_if_unequal(parameters, "Project_id", crm_indbetaling.Nrq_of_fundraising_project_id, of_payment.Project_id);
            //Mapping_update_helper.Add_if_unequal(parameters, "nrq_paymentdate", crm_indbetaling.Nrq_paymentDate, of_payment.Payment_ts_value);
            Mapping_update_helper.Add_if_unequal(parameters, "Payment_due_ts", crm_indbetaling.Nrq_PaymentDueDate, of_payment.Payment_due_ts_value);
            Mapping_update_helper.Add_if_unequal(parameters, "Payment_gateway", crm_indbetaling.Nrq_PaymentGateway.SelectedValue, of_payment.Payment_gateway);
            Mapping_update_helper.Add_if_unequal(parameters, "Payment_media", crm_indbetaling.Nrq_PaymentMedia.SelectedValue, of_payment.Payment_media);
            Mapping_update_helper.Add_if_unequal(parameters, "Payment_media_type", crm_indbetaling.Nrq_PaymentType.SelectedValue, of_payment.Payment_media_type);

            return(parameters);
        }
예제 #9
0
 //todo felter
 public static void To_of(crm.Indbetaling crm_indbetaling, of.data.Payment of_payment)
 {
     of_payment.Agreement_id = crm_indbetaling.Nrq_of_agreement_id;
     of_payment.Amount       = (int?)crm_indbetaling.New_amount.Value;
     of_payment.Contact_id   = crm_indbetaling.Nrq_of_contact_id;
     of_payment.Crm_id       = crm_indbetaling.Id.ToString().ToLower();
     of_payment.Currency     = "208";
     of_payment.Amount_type  = crm_indbetaling.Nrq_amountType.SelectedValue;
     //of_payment.Form_id
     //of_payment.Gateway_subscription_id
     //of_payment.Ocr
     //of_payment.Order_id
     of_payment.Payment_due_ts_value = crm_indbetaling.Nrq_PaymentDueDate;
     of_payment.Payment_gateway      = crm_indbetaling.Nrq_PaymentGateway.SelectedValue;
     of_payment.Payment_media        = crm_indbetaling.Nrq_PaymentMedia.SelectedValue;
     of_payment.Payment_media_type   = crm_indbetaling.Nrq_PaymentType.SelectedValue;
     of_payment.Of_id = crm_indbetaling.Nrq_of_id;
     //of_payment.Payment_method
     //of_payment.State
     //of_payment.Subscription_id = crm_indbetaling.
 }