ms-salesforce-api 2.24.0.dev2__tar.gz → 2.24.0.dev4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/PKG-INFO +1 -1
  2. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/account/constants.py +38 -35
  3. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/account/dto/AccountDTO.py +13 -0
  4. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/account/export_data/Bigquery.py +3 -0
  5. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/lead/constants.py +11 -10
  6. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/lead/dto/LeadDTO.py +4 -0
  7. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/lead/export_data/Bigquery.py +1 -0
  8. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/opportunity/__init__.py +0 -7
  9. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/opportunity/constants.py +2 -0
  10. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/opportunity/dto/OpportunityDTO.py +8 -0
  11. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/opportunity/export_data/Bigquery.py +3 -1
  12. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/project/__init__.py +1 -1
  13. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/project/constants.py +78 -81
  14. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/project/dto/OpportunityDTO.py +10 -14
  15. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/project/dto/ProjectLineItemDTO.py +4 -4
  16. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/project/export_data/Bigquery.py +6 -6
  17. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/pyproject.toml +1 -1
  18. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/LICENSE +0 -0
  19. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/README.md +0 -0
  20. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/__init__.py +0 -0
  21. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/Auth.py +0 -0
  22. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/JWTGenerator.py +0 -0
  23. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/SalesforceQueryExecutor.py +0 -0
  24. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/__init__.py +0 -0
  25. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/__tests__/__init__.py +0 -0
  26. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/__tests__/test_Auth.py +0 -0
  27. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/__tests__/test_JWTGenerator.py +0 -0
  28. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/__tests__/test_SalesforceRequester.py +0 -0
  29. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/__init__.py +0 -0
  30. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/account/__init__.py +0 -0
  31. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/account/dto/__init__.py +0 -0
  32. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/account/export_data/__init__.py +0 -0
  33. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/contact/__init__.py +0 -0
  34. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/contact/constants.py +0 -0
  35. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/contact/dto/ContactDTO.py +0 -0
  36. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/contact/dto/__init__.py +0 -0
  37. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/contact/export_data/Bigquery.py +0 -0
  38. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/contact/export_data/__init__.py +0 -0
  39. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/lead/__init__.py +0 -0
  40. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/lead/dto/__init__.py +0 -0
  41. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/lead/export_data/__init__.py +0 -0
  42. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/opportunity/dto/__init__.py +0 -0
  43. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/opportunity/export_data/CloudSQL.py +0 -0
  44. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/opportunity/export_data/__init__.py +0 -0
  45. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/opportunity/export_data/__tests__/__init__.py +0 -0
  46. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/opportunity/export_data/__tests__/test_CloudSQL.py +0 -0
  47. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/opportunity/helpers.py +0 -0
  48. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/opportunity_contact_role/__init__.py +0 -0
  49. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/opportunity_contact_role/constants.py +0 -0
  50. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/opportunity_contact_role/dto/OpportunityContactDTO.py +0 -0
  51. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/opportunity_contact_role/dto/__init__.py +0 -0
  52. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/opportunity_contact_role/export_data/Bigquery.py +0 -0
  53. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/opportunity_contact_role/export_data/__init__.py +0 -0
  54. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/opportunity_history/__init__.py +0 -0
  55. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/opportunity_history/constants.py +0 -0
  56. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/opportunity_history/dto/OpportunityDTO.py +0 -0
  57. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/opportunity_history/dto/__init__.py +0 -0
  58. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/opportunity_history/export_data/Bigquery.py +0 -0
  59. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/opportunity_history/export_data/__init__.py +0 -0
  60. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/product/__init__.py +0 -0
  61. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/product/__tests__/__init__.py +0 -0
  62. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/product/__tests__/test_Product.py +0 -0
  63. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/product/constants.py +0 -0
  64. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/product/dto/ProductDTO.py +0 -0
  65. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/product/dto/__init__.py +0 -0
  66. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/product/export_data/Bigquery.py +0 -0
  67. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/product/export_data/__init__.py +0 -0
  68. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/profit_center/__init__.py +0 -0
  69. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/profit_center/__tests__/__init__.py +0 -0
  70. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/profit_center/__tests__/test_ProfitCenter.py +0 -0
  71. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/profit_center/constants.py +0 -0
  72. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/profit_center/dto/ProfitCenterDTO.py +0 -0
  73. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/profit_center/dto/__init__.py +0 -0
  74. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/profit_center/export_data/Bigquery.py +0 -0
  75. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/profit_center/export_data/__init__.py +0 -0
  76. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/project/__tests__/__init__.py +0 -0
  77. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/project/__tests__/test_Project.py +0 -0
  78. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/project/dto/BillingLineDTO.py +0 -0
  79. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/project/dto/__init__.py +0 -0
  80. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/project/export_data/CloudSQL.py +0 -0
  81. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/project/export_data/__init__.py +0 -0
  82. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/project/export_data/__tests__/__init__.py +0 -0
  83. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/api/project/export_data/__tests__/test_CloudSQL.py +0 -0
  84. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/helpers/__init__.py +0 -0
  85. {ms_salesforce_api-2.24.0.dev2 → ms_salesforce_api-2.24.0.dev4}/ms_salesforce_api/salesforce/helpers/string.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ms-salesforce-api
3
- Version: 2.24.0.dev2
3
+ Version: 2.24.0.dev4
4
4
  Summary: Python library used to extract data from Salesforce API and migrate it to Bigquery and Postgres.
5
5
  Author: Making Science
6
6
  Requires-Python: >=3.8.1,<4.0.0
@@ -1,52 +1,55 @@
1
1
  DEFAULT_PROJECT_ACCOUNT_QUERY = """
2
2
  SELECT
3
- Industry,
4
3
  Accelerator__c,
5
- Id,
6
- Name,
7
- Key_Account__c,
8
- MS_Customer_Account_Assigment_Group__c,
9
- MS_Customer_Tax_Category__c,
10
- MS_Customer_Tax_Classification__c,
11
- TXT_SAPId__c,
12
- ms_Business_Function__c,
13
- ms_TAX_id_Type__c,
14
- CurrencyISOCode,
15
- CreatedDate,
16
- Tier__c,
17
- PEC_Email__c,
18
- Phone,
19
- Fax,
20
- Website,
21
- CIF__c,
22
- BillingCountryCode,
23
- Business_Name__c,
24
4
  BillingAddress,
25
5
  BillingCity,
6
+ BillingCountryCode,
26
7
  BillingPostalCode,
27
- BillingStreet,
28
- LKP_MSCompanyInvoicing__r.PCK_Prefix__c,
29
- LKP_MSCompanyInvoicing__r.TXT_BusinessName__c,
30
- Payment_Terms__c,
31
8
  BillingStateCode,
32
- MAIL_Invoicing__c,
33
- Invoicing_Email__c,
9
+ BillingStreet,
34
10
  BQ_CustomerGroupId__c,
35
11
  BQ_CustomerSubgroupId__c,
36
- LKP_CustomerSubgroup__r.LKP_CustomerGroup__r.Name,
37
- LKP_CustomerSubgroup__r.LKP_CustomerGroup__r.DT_Start__c,
12
+ Business_Name__c,
13
+ CIF__c,
14
+ CreatedDate,
15
+ CurrencyISOCode,
16
+ Fax,
17
+ Id,
18
+ Industry,
19
+ Invoicing_Email__c,
20
+ Key_Account__c,
21
+ LKP_CustomerSubgroup__r.DT_End__c,
22
+ LKP_CustomerSubgroup__r.DT_Start__c,
38
23
  LKP_CustomerSubgroup__r.LKP_CustomerGroup__r.DT_End__c,
39
- LKP_CustomerSubgroup__r.LKP_CustomerGroup__r.TXT_BQId__c,
40
- LKP_CustomerSubgroup__r.LKP_CustomerGroup__r.PCK_Type__c,
41
- LKP_CustomerSubgroup__r.LKP_CustomerGroup__r.MAIL_Supervisor__c,
24
+ LKP_CustomerSubgroup__r.LKP_CustomerGroup__r.DT_Start__c,
42
25
  LKP_CustomerSubgroup__r.LKP_CustomerGroup__r.MAIL_Owner__c,
26
+ LKP_CustomerSubgroup__r.LKP_CustomerGroup__r.MAIL_Supervisor__c,
27
+ LKP_CustomerSubgroup__r.LKP_CustomerGroup__r.Name,
28
+ LKP_CustomerSubgroup__r.LKP_CustomerGroup__r.PCK_Type__c,
29
+ LKP_CustomerSubgroup__r.LKP_CustomerGroup__r.TXT_BQId__c,
30
+ LKP_CustomerSubgroup__r.MAIL_Owner__c,
43
31
  LKP_CustomerSubgroup__r.Name,
44
- LKP_CustomerSubgroup__r.DT_Start__c,
45
- LKP_CustomerSubgroup__r.DT_End__c,
46
32
  LKP_CustomerSubgroup__r.TXT_BQId__c,
47
- LKP_CustomerSubgroup__r.MAIL_Owner__c,
33
+ LKP_MSCompanyInvoicing__r.PCK_Prefix__c,
34
+ LKP_MSCompanyInvoicing__r.TXT_BusinessName__c,
35
+ MAIL_Invoicing__c,
36
+ ms_Business_Function__c,
37
+ MS_Customer_Account_Assigment_Group__c,
38
+ MS_Customer_Tax_Category__c,
39
+ MS_Customer_Tax_Classification__c,
40
+ ms_TAX_id_Type__c,
41
+ Name,
48
42
  Owner.Email,
49
- Type
43
+ ToLabel(Payment_Method__c),
44
+ ToLabel(Payment_Terms__c),
45
+ PEC_Email__c,
46
+ Phone,
47
+ Risk_Assessment__c,
48
+ Risk_Assessment_Date__c,
49
+ Tier__c,
50
+ TXT_SAPId__c,
51
+ Type,
52
+ Website
50
53
  FROM
51
54
  Account
52
55
  """
@@ -53,6 +53,9 @@ class AccountDTO(object):
53
53
  owner_email,
54
54
  type,
55
55
  industry,
56
+ payment_method,
57
+ risk_assessment,
58
+ risk_assessment_date,
56
59
  ):
57
60
  self.id = id
58
61
  self.accelerator = accelerator
@@ -105,6 +108,9 @@ class AccountDTO(object):
105
108
  self.owner_email = owner_email
106
109
  self.type = type
107
110
  self.industry = industry
111
+ self.payment_method = payment_method
112
+ self.risk_assessment = risk_assessment
113
+ self.risk_assessment_date = risk_assessment_date
108
114
 
109
115
  @staticmethod
110
116
  def from_salesforce_record(record):
@@ -294,6 +300,7 @@ class AccountDTO(object):
294
300
  lkp_company_invoicing_business_name=_get_company_invoicing_business_name(), # noqa: E501
295
301
  lkp_company_invoicing_country=_get_company_invoicing_country(),
296
302
  payment_terms=normalize_value(record["Payment_Terms__c"]),
303
+ payment_method=normalize_value(record["Payment_Method__c"]),
297
304
  billing_state_code=normalize_value(record["BillingStateCode"]),
298
305
  mail_invoincing=normalize_value(record["MAIL_Invoicing__c"]),
299
306
  invoincing_email=normalize_value(record["Invoicing_Email__c"]),
@@ -320,6 +327,9 @@ class AccountDTO(object):
320
327
  owner_email=normalize_value(_get_owner_email()),
321
328
  type=normalize_value(record["Type"]),
322
329
  industry=normalize_value(record["Industry"]),
330
+
331
+ risk_assessment=normalize_value(record["Risk_Assessment__c"]),
332
+ risk_assessment_date=normalize_value(record["Risk_Assessment_Date__c"]),
323
333
  )
324
334
 
325
335
  def to_dict(self):
@@ -371,4 +381,7 @@ class AccountDTO(object):
371
381
  "owner_email": self.owner_email,
372
382
  "type": self.type,
373
383
  "industry": self.industry,
384
+ "payment_method": self.payment_method,
385
+ "risk_assessment": self.risk_assessment,
386
+ "risk_assessment_date": self.risk_assessment_date,
374
387
  }
@@ -72,6 +72,9 @@ class BigQueryExporter:
72
72
  "owner_email": "STRING",
73
73
  "type": "STRING",
74
74
  "industry": "STRING",
75
+ "payment_method": "STRING",
76
+ "risk_assessment": "STRING",
77
+ "risk_assessment_date": "STRING",
75
78
  },
76
79
  }
77
80
 
@@ -1,45 +1,46 @@
1
1
  DEFAULT_LEAD_QUERY = """
2
2
  SELECT
3
- Id,
3
+ CreatedDate,
4
4
  Account__c,
5
5
  Account_Fiscal_Name__c,
6
- LKP_AccountManager__c,
7
6
  Address,
8
7
  Billing_Address__c,
9
8
  Company,
10
9
  Contact__c,
10
+ Correo_electr_nico_solicitante__c,
11
11
  Description,
12
- PCK_Division__c,
13
12
  Email,
14
13
  EventAttendance__c,
15
14
  EventName__c,
16
- Primera_Interaccion_Humana__c,
17
15
  First_Meeting__c,
18
16
  HasEvents__c,
19
17
  Help_from_NB_Team_requested__c,
20
- MonthlyAdvInvestingAmount__c,
18
+ Id,
21
19
  Industry,
22
20
  Invoicing_Email__c,
23
21
  Jira_Task__c,
24
22
  JiraTaskId__c,
25
- RecordTypeId,
26
- LeadSource,
27
23
  Lead_Source_Description__c,
28
- Status,
24
+ LeadSource,
25
+ LKP_AccountManager__c,
29
26
  Market_Scope__c,
30
27
  Meeting__c,
31
28
  Mensaje__c,
32
29
  MobilePhone,
30
+ MonthlyAdvInvestingAmount__c,
33
31
  Name,
34
32
  Next_Steps__c,
35
33
  Opportunity_Description__c,
36
34
  Opportunity_Name_Short__c,
37
- Correo_electr_nico_solicitante__c,
38
35
  Origin__c,
36
+ PCK_Division__c,
39
37
  Primary_Campaign_Source__c,
40
- Servicios_Asociados__c,
38
+ Primera_Interaccion_Humana__c,
39
+ RecordTypeId,
41
40
  Risk_Assessment__c,
42
41
  Risk_Assessment_Date__c,
42
+ Servicios_Asociados__c,
43
+ Status,
43
44
  Title,
44
45
  Website
45
46
  FROM
@@ -46,6 +46,7 @@ class LeadDTO(object):
46
46
  risk_assessment_date,
47
47
  title,
48
48
  website,
49
+ created_date,
49
50
  ):
50
51
  self.id = id
51
52
  self.account = account
@@ -89,6 +90,7 @@ class LeadDTO(object):
89
90
  self.risk_assessment_date = risk_assessment_date
90
91
  self.title = title
91
92
  self.website = website
93
+ self.created_date = created_date
92
94
 
93
95
  @staticmethod
94
96
  def from_salesforce_record(record):
@@ -184,6 +186,7 @@ class LeadDTO(object):
184
186
  ),
185
187
  title=normalize_value(record["Title"]),
186
188
  website=normalize_value(record["Website"]),
189
+ created_date=normalize_value(record["CreatedDate"]),
187
190
  )
188
191
 
189
192
  def to_dict(self):
@@ -230,4 +233,5 @@ class LeadDTO(object):
230
233
  "risk_assessment_date": self.risk_assessment_date,
231
234
  "title": self.title,
232
235
  "website": self.website,
236
+ "created_date": self.created_date,
233
237
  }
@@ -68,6 +68,7 @@ class BigQueryExporter:
68
68
  "risk_assessment_date": "STRING",
69
69
  "title": "STRING",
70
70
  "website": "STRING",
71
+ "created_date": "STRING",
71
72
  },
72
73
  }
73
74
 
@@ -48,10 +48,3 @@ class Opportunity(SalesforceQueryExecutor):
48
48
  ]
49
49
 
50
50
  return opportunities_list
51
- try:
52
- pass
53
- except Exception as e:
54
- logging.error(
55
- f"[ERROR - get_all]: Failed to get all opportunities: {e}"
56
- )
57
- return []
@@ -1,5 +1,6 @@
1
1
  DEFAULT_ALL_OPPORTUNITIES_QUERY = """
2
2
  SELECT
3
+ TXT_BillingInfo__c,
3
4
  Account_Billing_Country__c,
4
5
  PCK_Division__c,
5
6
  TECH_Out_of_report__c,
@@ -76,6 +77,7 @@ SELECT
76
77
  TotalOpportunityQuantity,
77
78
  TXT_Comments__c,
78
79
  Year_Created__c,
80
+ LKP_ParentOpportunity__c,
79
81
  (
80
82
  SELECT
81
83
  Description,
@@ -210,6 +210,8 @@ class OpportunityDTO(object):
210
210
  project_status,
211
211
  pck_division,
212
212
  out_of_report,
213
+ billing_info,
214
+ parent_opportunity,
213
215
  ):
214
216
  self.opportunity_id = opportunity_id
215
217
  self.account_billing_country = account_billing_country
@@ -290,6 +292,8 @@ class OpportunityDTO(object):
290
292
  self.project_status = project_status
291
293
  self.pck_division = pck_division
292
294
  self.out_of_report = out_of_report
295
+ self.billing_info = billing_info
296
+ self.parent_opportunity = parent_opportunity
293
297
 
294
298
  @staticmethod
295
299
  def from_salesforce_record(record):
@@ -510,6 +514,8 @@ class OpportunityDTO(object):
510
514
  project_status=record["PCK_ProjectStatus__c"],
511
515
  pck_division=record["PCK_Division__c"],
512
516
  out_of_report=record["TECH_Out_of_report__c"],
517
+ billing_info=record["TXT_BillingInfo__c"],
518
+ parent_opportunity=record["LKP_ParentOpportunity__c"],
513
519
  )
514
520
 
515
521
  def to_dict(self):
@@ -593,5 +599,7 @@ class OpportunityDTO(object):
593
599
  "project_status": self.project_status,
594
600
  "pck_division": self.pck_division,
595
601
  "out_of_report": self.out_of_report,
602
+ "billing_info": self.billing_info,
603
+ "parent_opportunity": self.parent_opportunity,
596
604
 
597
605
  }
@@ -24,7 +24,7 @@ class BigQueryExporter:
24
24
  )
25
25
  self.batch_size = 200
26
26
  self.schemas = {
27
- "all_opportunity": {
27
+ "all_opportunity_new": {
28
28
  "opportunity_id": "STRING",
29
29
  "account_billing_country": "STRING",
30
30
  "account_owner": "STRING",
@@ -103,6 +103,8 @@ class BigQueryExporter:
103
103
  "project_status": "STRING",
104
104
  "pck_division": "STRING",
105
105
  "out_of_report": "STRING",
106
+ "billing_info": "STRING",
107
+ "parent_opportunity": "STRING",
106
108
  },
107
109
  "opportunity_line_item": {
108
110
  "opportunity_id": "STRING",
@@ -85,7 +85,7 @@ class Project(SalesforceQueryExecutor):
85
85
  billing_line_dto = (
86
86
  BillingLineDTO.from_salesforce_record(
87
87
  record,
88
- opportunity.project_code,
88
+ opportunity.projectcode,
89
89
  )
90
90
  )
91
91
 
@@ -1,116 +1,113 @@
1
1
  DEFAULT_PROJECT_OPPORTUNITY_QUERY = """
2
2
  SELECT
3
- RU_TotalAmount__c,
4
- CurrencyIsoCode,
5
- LKP_MSCompanyInvoicing__r.PCK_Prefix__c,
6
- Operation_Coordinator__r.Name,
7
- Operation_Coordinator_Sub__r.Name,
8
- CreatedDate,
9
- LastModifiedDate,
10
- Opportunity__r.Opportunity_Name_Short__c,
11
- Opportunity__r.StageName,
12
- Opportunity__r.LeadSource,
13
- Name,
14
- Id,
15
- DT_ProjectStartDate__c,
16
- Operation_Coordinator__r.Controller__c,
17
- Operation_Coordinator_Sub__r.Controller_SUB__c,
18
- LKP_ProfitCenter__r.TXT_ProfitCenter__c,
19
- LKP_CostCenter__r.Name,
20
- Opportunity__r.Probability,
21
- Opportunity__r.Tier_Short__c,
22
- Opportunity__r.JiraComponentURL__c,
23
3
  Autorenewal__c,
24
4
  Comments__c,
5
+ CreatedDate,
6
+ CurrencyIsoCode,
25
7
  End_Date__c,
8
+ Id,
26
9
  International_Departments__c,
10
+ LastModifiedDate,
11
+ LKP_CostCenter__r.Name,
12
+ LKP_MSCompanyInvoicing__r.PCK_Prefix__c,
27
13
  LKP_OpportunityExtension__c,
14
+ LKP_ProfitCenter__c,
15
+ LKP_ProfitCenter__r.TXT_ProfitCenter__c,
28
16
  Maintenance_project__c,
29
17
  MS_Project_Id__c,
18
+ Name,
30
19
  Operation_Coordinator__c,
20
+ Operation_Coordinator__r.Controller__c,
21
+ Operation_Coordinator__r.Name,
31
22
  Operation_Coordinator_Sub__c,
23
+ Operation_Coordinator_Sub__r.Controller_SUB__c,
24
+ Operation_Coordinator_Sub__r.Name,
32
25
  Opportunity__c,
26
+ Opportunity__r.FRM_ProjectCode__c,
27
+ Opportunity__r.JiraComponentURL__c,
28
+ Opportunity__r.LeadSource,
29
+ Opportunity__r.Opportunity_Name_Short__c,
30
+ Opportunity__r.Probability,
31
+ Opportunity__r.StageName,
32
+ Opportunity__r.Tier_Short__c,
33
33
  Periodicity__c,
34
- LKP_ProfitCenter__c,
35
34
  Project_Account__c,
36
- Quote__c,
37
- Revenue_Details__c,
38
- Tolabel(PCK_ProjectStatus__c),
39
- DT_ProjectEndDate__c,
40
- TXT_InternalComment__c,
41
- TXT_RejectionReason__c,
42
- ProjectID__c,
43
- Project_Account__r.Id,
44
- Project_Account__r.Name,
45
- Project_Account__r.MS_Customer_Account_Assigment_Group__c,
46
- Project_Account__r.MS_Customer_Tax_Category__c,
47
- Project_Account__r.MS_Customer_Tax_Classification__c,
48
- Project_Account__r.TXT_SAPId__c,
49
- Project_Account__r.ms_Business_Function__c,
50
- Project_Account__r.ms_TAX_id_Type__c,
51
- Project_Account__r.CurrencyISOCode,
52
- Project_Account__r.CreatedDate,
53
- Project_Account__r.Tier__c,
54
- Project_Account__r.PEC_Email__c,
55
- Project_Account__r.Phone,
56
- Project_Account__r.Fax,
57
- Project_Account__r.Website,
58
- Project_Account__r.CIF__c,
59
- Project_Account__r.BillingCountryCode,
60
- Project_Account__r.Business_Name__c,
61
35
  Project_Account__r.BillingAddress,
62
36
  Project_Account__r.BillingCity,
37
+ Project_Account__r.BillingCountryCode,
63
38
  Project_Account__r.BillingPostalCode,
64
- Project_Account__r.BillingStreet,
65
- Project_Account__r.LKP_MSCompanyInvoicing__r.PCK_Prefix__c,
66
- Project_Account__r.LKP_MSCompanyInvoicing__r.TXT_BusinessName__c,
67
- Project_Account__r.Payment_Terms__c,
68
39
  Project_Account__r.BillingStateCode,
69
- Project_Account__r.MAIL_Invoicing__c,
70
- Project_Account__r.Invoicing_Email__c,
71
-
40
+ Project_Account__r.BillingStreet,
72
41
  Project_Account__r.BQ_CustomerGroupId__c,
73
42
  Project_Account__r.BQ_CustomerSubgroupId__c,
74
- Project_Account__r.LKP_CustomerSubgroup__r.LKP_CustomerGroup__r.Name,
75
- Project_Account__r.LKP_CustomerSubgroup__r.LKP_CustomerGroup__r.Id,
76
- Project_Account__r.LKP_CustomerSubgroup__r.LKP_CustomerGroup__r.DT_Start__c,
43
+ Project_Account__r.Business_Name__c,
44
+ Project_Account__r.CIF__c,
45
+ Project_Account__r.CreatedDate,
46
+ Project_Account__r.CurrencyISOCode,
47
+ Project_Account__r.Fax,
48
+ Project_Account__r.Id,
49
+ Project_Account__r.Invoicing_Email__c,
50
+ Project_Account__r.LKP_CustomerSubgroup__r.DT_End__c,
51
+ Project_Account__r.LKP_CustomerSubgroup__r.DT_Start__c,
52
+ Project_Account__r.LKP_CustomerSubgroup__r.Id,
77
53
  Project_Account__r.LKP_CustomerSubgroup__r.LKP_CustomerGroup__r.DT_End__c,
78
- Project_Account__r.LKP_CustomerSubgroup__r.LKP_CustomerGroup__r.TXT_BQId__c,
79
- Project_Account__r.LKP_CustomerSubgroup__r.LKP_CustomerGroup__r.PCK_Type__c,
80
- Project_Account__r.LKP_CustomerSubgroup__r.LKP_CustomerGroup__r.MAIL_Supervisor__c,
54
+ Project_Account__r.LKP_CustomerSubgroup__r.LKP_CustomerGroup__r.DT_Start__c,
55
+ Project_Account__r.LKP_CustomerSubgroup__r.LKP_CustomerGroup__r.Id,
81
56
  Project_Account__r.LKP_CustomerSubgroup__r.LKP_CustomerGroup__r.MAIL_Owner__c,
82
-
83
- Project_Account__r.LKP_CustomerSubgroup__r.Id,
57
+ Project_Account__r.LKP_CustomerSubgroup__r.LKP_CustomerGroup__r.MAIL_Supervisor__c,
58
+ Project_Account__r.LKP_CustomerSubgroup__r.LKP_CustomerGroup__r.Name,
59
+ Project_Account__r.LKP_CustomerSubgroup__r.LKP_CustomerGroup__r.PCK_Type__c,
60
+ Project_Account__r.LKP_CustomerSubgroup__r.LKP_CustomerGroup__r.TXT_BQId__c,
61
+ Project_Account__r.LKP_CustomerSubgroup__r.MAIL_Owner__c,
84
62
  Project_Account__r.LKP_CustomerSubgroup__r.Name,
85
- Project_Account__r.LKP_CustomerSubgroup__r.DT_Start__c,
86
- Project_Account__r.LKP_CustomerSubgroup__r.DT_End__c,
87
63
  Project_Account__r.LKP_CustomerSubgroup__r.TXT_BQId__c,
88
- Project_Account__r.LKP_CustomerSubgroup__r.MAIL_Owner__c,
64
+ Project_Account__r.LKP_MSCompanyInvoicing__r.PCK_Prefix__c,
65
+ Project_Account__r.LKP_MSCompanyInvoicing__r.TXT_BusinessName__c,
66
+ Project_Account__r.MAIL_Invoicing__c,
67
+ Project_Account__r.ms_Business_Function__c,
68
+ Project_Account__r.MS_Customer_Account_Assigment_Group__c,
69
+ Project_Account__r.MS_Customer_Tax_Category__c,
70
+ Project_Account__r.MS_Customer_Tax_Classification__c,
71
+ Project_Account__r.ms_TAX_id_Type__c,
72
+ Project_Account__r.Name,
73
+ Project_Account__r.Payment_Terms__c,
74
+ Project_Account__r.PEC_Email__c,
75
+ Project_Account__r.Phone,
76
+ Project_Account__r.Tier__c,
77
+ Project_Account__r.TXT_SAPId__c,
78
+ Project_Account__r.Website,
79
+ Quote__c,
80
+ Revenue_Details__c,
81
+ RU_TotalAmount__c,
82
+ Start_Date__c,
83
+ ToLabel(Status__c),
84
+ TXT_InternalComment__c,
85
+ TXT_RejectionReason__c,
89
86
  (
90
87
  SELECT
91
- Id,
88
+ Business_Unit__c,
89
+ Country__c,
92
90
  CreatedDate,
93
- LastModifiedDate,
91
+ Department__c,
94
92
  Duration_months__c,
95
- ProductNew__r.Name,
96
- Starting_Date__c,
97
- ProductNew__r.LKP_ProfitCenter__r.TXT_ProfitCenter__c,
93
+ Effort__c,
94
+ End_Date__c,
95
+ Ending_Date__c,
96
+ Id,
97
+ LastModifiedDate,
98
98
  LKP_CostCenter__r.Name,
99
- Business_Unit__c,
99
+ MS_PLI_Name__c,
100
+ ProductNew__r.LKP_ProfitCenter__r.TXT_ProfitCenter__c,
101
+ ProductNew__r.Name,
102
+ Project__r.Opportunity__r.FRM_ProjectCode__c,
100
103
  Quantity__c,
101
- UnitPrice__c,
102
- Total_Price__c,
103
- Ending_Date__c,
104
- Department__c,
105
- Sales_Order_Item__c,
106
- End_Date__c,
107
104
  Revenue_Type__c,
108
- Effort__c,
109
- Total_Billing_Amount_Billing_Lines__c,
110
- MS_PLI_Name__c,
105
+ Sales_Order_Item__c,
111
106
  SapNetAmount__c,
112
- Country__c,
113
- MS_Project_Code__c
107
+ Starting_Date__c,
108
+ Total_Billing_Amount_Billing_Lines__c,
109
+ Total_Price__c,
110
+ UnitPrice__c
114
111
  FROM
115
112
  Project_Line_Items__r
116
113
  )
@@ -23,7 +23,6 @@ class OpportunityDTO(object):
23
23
  stage,
24
24
  account_billing_country,
25
25
  lead_source,
26
- project_code,
27
26
  project_id,
28
27
  project_name,
29
28
  project_start_date,
@@ -34,6 +33,7 @@ class OpportunityDTO(object):
34
33
  project_tier,
35
34
  jira_task_url,
36
35
  opportunity_percentage,
36
+ opportunity_project_code,
37
37
  account_assigment_group,
38
38
  account_tax_category,
39
39
  account_tax_classification,
@@ -93,7 +93,6 @@ class OpportunityDTO(object):
93
93
  status,
94
94
  internal_comment,
95
95
  rejection_reason,
96
- projectid,
97
96
  quote,
98
97
  billing_lines=[],
99
98
  project_line_items=[],
@@ -112,7 +111,6 @@ class OpportunityDTO(object):
112
111
  self.stage = stage
113
112
  self.account_billing_country = account_billing_country
114
113
  self.lead_source = lead_source
115
- self.project_code = project_code
116
114
  self.project_id = project_id
117
115
  self.project_name = project_name
118
116
  self.project_start_date = project_start_date
@@ -122,6 +120,7 @@ class OpportunityDTO(object):
122
120
  self.cost_center = cost_center
123
121
  self.project_tier = project_tier
124
122
  self.jira_task_url = jira_task_url
123
+ self.opportunity_project_code = opportunity_project_code
125
124
  self.opportunity_percentage = opportunity_percentage
126
125
  self.billing_lines = billing_lines
127
126
  self.project_line_items = project_line_items
@@ -186,7 +185,6 @@ class OpportunityDTO(object):
186
185
  self.status = status
187
186
  self.internal_comment = internal_comment
188
187
  self.rejection_reason = rejection_reason
189
- self.projectid = projectid
190
188
  self.quote = quote
191
189
 
192
190
  @staticmethod
@@ -546,6 +544,12 @@ class OpportunityDTO(object):
546
544
  except (TypeError, KeyError):
547
545
  return ""
548
546
 
547
+ def _get_opportunity_project_code():
548
+ try:
549
+ return normalize_value(record["Opportunity__r"]["FRM_ProjectCode__c"])
550
+ except (TypeError, KeyError):
551
+ return ""
552
+
549
553
  def _get_group_name():
550
554
  try:
551
555
  return record["Project_Account__r"]["LKP_CustomerSubgroup__r"][
@@ -778,12 +782,6 @@ class OpportunityDTO(object):
778
782
  except KeyError:
779
783
  return ""
780
784
 
781
- def _get_projectid():
782
- try:
783
- return record["ProjectID__c"]
784
- except KeyError:
785
- return ""
786
-
787
785
  def _parse_created_date(created_date):
788
786
  try:
789
787
  dt = datetime.strptime(
@@ -810,7 +808,6 @@ class OpportunityDTO(object):
810
808
  stage=_get_stage(),
811
809
  account_billing_country=_get_account_billing_country(),
812
810
  lead_source=_get_lead_source(),
813
- project_code=record["FRM_MSProjectCode__c"],
814
811
  project_id=record["Id"],
815
812
  project_name=record["Name"],
816
813
  project_start_date=record["Start_Date__c"],
@@ -821,6 +818,7 @@ class OpportunityDTO(object):
821
818
  project_tier=_get_project_tier(),
822
819
  jira_task_url=_get_jira_task_url(),
823
820
  opportunity_percentage=_get_opportunity_percentage(),
821
+ opportunity_project_code=_get_opportunity_project_code(),
824
822
  project_line_items=project_line_items,
825
823
  account_assigment_group=_get_account_assigment_group(),
826
824
  account_tax_category=_get_account_tax_category(),
@@ -881,7 +879,6 @@ class OpportunityDTO(object):
881
879
  status=_get_status(),
882
880
  internal_comment=_get_internal_comment(),
883
881
  rejection_reason=_get_rejection_reason(),
884
- projectid=_get_projectid(),
885
882
  quote=_get_quote(),
886
883
  )
887
884
 
@@ -900,7 +897,6 @@ class OpportunityDTO(object):
900
897
  "opportunity_name": self.opportunity_name,
901
898
  # "stage": self.stage,
902
899
  # "lead_source": self.lead_source,
903
- "project_code": self.project_code,
904
900
  "project_id": self.project_id,
905
901
  "project_name": self.project_name,
906
902
  "project_start_date": self.project_start_date,
@@ -978,6 +974,6 @@ class OpportunityDTO(object):
978
974
  "status": self.status,
979
975
  # "internal_comment": self.internal_comment,
980
976
  # "rejection_reason": self.rejection_reason,
981
- "projectid": self.projectid,
982
977
  "quote": self.quote,
978
+ "opportunity_project_code": self.opportunity_project_code,
983
979
  }
@@ -16,8 +16,8 @@ class ProjectLineItemDTO:
16
16
  effort,
17
17
  ms_pli_name,
18
18
  country,
19
- project_code,
20
19
  project_id,
20
+ opportunity_project_code,
21
21
  ):
22
22
  self.id = id
23
23
  self.created_date = created_date
@@ -31,8 +31,8 @@ class ProjectLineItemDTO:
31
31
  self.effort = effort
32
32
  self.ms_pli_name = ms_pli_name
33
33
  self.country = country
34
- self.project_code = project_code
35
34
  self.project_id = project_id
35
+ self.opportunity_project_code = opportunity_project_code
36
36
 
37
37
  @classmethod
38
38
  def from_salesforce_record(cls, record, project_id):
@@ -67,8 +67,8 @@ class ProjectLineItemDTO:
67
67
  effort=record.get("Effort__c"),
68
68
  ms_pli_name=record.get("MS_PLI_Name__c"),
69
69
  country=record.get("Country__c"),
70
- project_code=record.get("MS_Project_Code__c"),
71
70
  project_id=project_id,
71
+ opportunity_project_code=record.get("Project__r", {}).get("Opportunity__r", {}).get("FRM_ProjectCode__c"),
72
72
  )
73
73
 
74
74
  def to_dict(self):
@@ -86,5 +86,5 @@ class ProjectLineItemDTO:
86
86
  "total_price": self.total_price,
87
87
  "unit_price": self.unit_price,
88
88
  "project_id": self.project_id,
89
- "ms_project_code": self.project_code,
89
+ "opportunity_project_code": self.opportunity_project_code,
90
90
  }
@@ -28,7 +28,7 @@ class BigQueryExporter:
28
28
  "amount": "FLOAT",
29
29
  "controller_email": "STRING",
30
30
  "controller_sub_email": "STRING",
31
- "cost_center": "INTEGER",
31
+ "cost_center": "STRING",
32
32
  "created_at": "TIMESTAMP",
33
33
  "currency": "STRING",
34
34
  "invoicing_country_code": "STRING",
@@ -40,7 +40,6 @@ class BigQueryExporter:
40
40
  "opportunity_name": "STRING",
41
41
  # "opportunity_percentage": "FLOAT",
42
42
  "profit_center": "INTEGER",
43
- "project_code": "STRING",
44
43
  "project_id": "STRING",
45
44
  "project_name": "STRING",
46
45
  "project_start_date": "DATE",
@@ -67,6 +66,7 @@ class BigQueryExporter:
67
66
  # "rejection_reason": "STRING",
68
67
  "projectid": "STRING",
69
68
  "quote": "STRING",
69
+ "opportunity_project_code": "STRING",
70
70
  },
71
71
  "billing_lines": {
72
72
  "billing_amount": "FLOAT",
@@ -99,11 +99,11 @@ class BigQueryExporter:
99
99
  "product_name": "STRING",
100
100
  "project_id": "STRING",
101
101
  "project_code": "STRING",
102
- "ms_project_code": "STRING",
103
102
  "quantity": "FLOAT",
104
103
  "starting_date": "DATE",
105
104
  "total_price": "FLOAT",
106
105
  "unit_price": "FLOAT",
106
+ "opportunity_project_code": "STRING",
107
107
  },
108
108
  "accounts": {
109
109
  "assigment_group": "INTEGER",
@@ -130,7 +130,7 @@ class BigQueryExporter:
130
130
  "phone": "STRING",
131
131
  "project_id": "STRING",
132
132
  "project_code": "STRING",
133
- "sap_id": "INTEGER",
133
+ "sap_id": "STRING",
134
134
  "tax_category": "STRING",
135
135
  "tax_classification": "INTEGER",
136
136
  "tax_id_type": "STRING",
@@ -201,11 +201,11 @@ class BigQueryExporter:
201
201
  # Store account data
202
202
  opportunity_account_data = {
203
203
  "project_id": opportunity["project_id"],
204
- "project_code": opportunity["project_code"],
204
+ "project_code": opportunity["projectcode"],
205
205
  }
206
206
  opportunity_group_data = {
207
207
  "project_id": opportunity["project_id"],
208
- "project_code": opportunity["project_code"],
208
+ "project_code": opportunity["projectcode"],
209
209
  }
210
210
  opportunity_subgroup_data = {}
211
211
  opportunity_copy = opportunity.copy()
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "ms-salesforce-api"
3
- version = "2.24.0.dev2"
3
+ version = "2.24.0.dev4"
4
4
  description = "Python library used to extract data from Salesforce API and migrate it to Bigquery and Postgres."
5
5
  authors = ["Making Science"]
6
6
  readme = "README.md"