-
Notifications
You must be signed in to change notification settings - Fork 1
/
counterparty.go
178 lines (163 loc) · 8.72 KB
/
counterparty.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
package novapost
type (
CounterpartyRequest struct {
FirstName string
MiddleName string
LastName string
Phone string
Email string
CounterpartyType string
EDRPOU string
CounterpartyProperty string
CityRef string
}
Counterparty struct {
Ref string
Description string
FirstName string
MiddleName string
LastName string
Counterparty string
OwnershipForm string
OwnershipFormDescription string
EDRPOU string
CounterpartyType string
ContactPerson Response[ContactPerson]
}
)
// SaveCounterparty Створити Контрагента
//
// Приватна особа: https://developers.novaposhta.ua/view/model/a28f4b04-8512-11ec-8ced-005056b2dbe1/method/0ae5dd75-8a5f-11ec-8ced-005056b2dbe1
//
// Третя особа: https://developers.novaposhta.ua/view/model/a28f4b04-8512-11ec-8ced-005056b2dbe1/method/b0fdf818-8a8e-11ec-8ced-005056b2dbe1
//
// Організація: https://developers.novaposhta.ua/view/model/a28f4b04-8512-11ec-8ced-005056b2dbe1/method/bc3c44c7-8a8a-11ec-8ced-005056b2dbe1
//
// Дані по отримувачу вносяться виключно Українською мовою.
//
// Рекомендовано проводити оновлення довідника один раз на місяць.
func (c *Client) SaveCounterparty(req CounterpartyRequest) (*Response[Counterparty], error) {
return RawRequest[Counterparty](c, CounterpartyModel, "save", req)
}
// UpdateCounterparty Оновити дані Контрагента
//
// Метод «update», працює в моделі «Counterparty», цей метод використовується для оновлення/внесення змін в дані
// контрагента отримувача.
func (c *Client) UpdateCounterparty(req CounterpartyRequest) (*Response[Counterparty], error) {
return RawRequest[Counterparty](c, CounterpartyModel, "update", req)
}
// DeleteCounterparty Видалити Контрагента одержувача
//
// Метод «delete», працює в моделі «Counterparty», цей метод використовується для видалення контрагента отримувача. Для
// видалення контрагента відправника необхідно звертатися до Вашого менеджера
func (c *Client) DeleteCounterparty(ref Ref) (*Response[Ref], error) {
return RawRequest[Ref](c, CounterpartyModel, "delete", ref)
}
type CounterpartyAddressRequest struct {
Ref string
CounterpartyProperty string
}
// GetCounterpartyAddresses Завантажити список адрес Контрагентів
//
// Метод «getCounterpartyAddresses», працює в моделі «Counterparty», цей метод завантажує список контрагентів
// відправників/отримувачів.
//
// Необхідно зберігати копію довідника на стороні клієнта та підтримувати його в актуальному стані.
//
// Рекомендовано проводити оновлення довідників раз на місяць.
func (c *Client) GetCounterpartyAddresses(req CounterpartyAddressRequest) (*Response[RefDescription], error) {
return RawRequest[RefDescription](c, CounterpartyModel, "getCounterpartyAddresses", req)
}
type (
DebtorParams struct {
AgreementId int
BlockedStatus int
PaymTermId string
PastDueDebts float64
}
Vbf struct {
Vbf int `xml:"vbf" json:"vbf"`
}
CounterpartyOptions struct {
DebtorParams []DebtorParams `xml:"debtorParams>item"`
PrintMarkingAllowedTypes Vbf
AddressDocumentDelivery bool
AfterpaymentType bool
BackwardDeliverySubtypesDocuments bool
BlockInternationalSenderLKK bool
CalculationByFactualWeight bool
CanAfterpaymentOnGoodsCost bool
CanCreditDocuments bool
CanEWTransporter bool
CanForwardingService bool
CanNonCashPayment bool
CanPayTheThirdPerson bool
CanSameDayDelivery bool
CanSameDayDeliveryStandart bool
CanSentFromPostomat bool
CanSignedDocuments bool
CarCall bool
CreditDocuments bool
CustomerReturn bool
DayCustomerReturn bool
DeliveryByHand bool
DescentFromFloor bool
FillingWarranty bool
HaveMoneyWallets bool
HideDeliveryCost bool
InternationalDelivery bool
InternationalDeliveryServiceType bool
LoyaltyProgram bool
MainCounterparty bool
PickupService bool
SecurePayment bool
Services bool
ShowDeliveryByHand bool
SignedDocuments bool
TransferPricingConditions bool
}
)
// GetCounterpartyOptions Завантажити параметри Контрагента
//
// Метод «getCounterpartyOptions», працює в моделі «Counterparty», цей метод використовується для отримання параметрів
// контрагента відправника в розрізі можливостей замовлення додаткових послуг, з розділу: «Формування запиту на створення
// ЕН із додатковими послугами» Замовити посслуги можливо через особистого менеджера.
func (c *Client) GetCounterpartyOptions(ref Ref) (*Response[CounterpartyOptions], error) {
return RawRequest[CounterpartyOptions](c, CounterpartyModel, "getCounterpartyOptions", ref)
}
type CounterpartyContactPersonRequest struct {
Ref string
Page int
}
// GetCounterpartyContactPersons Завантажити список контактних осіб Контрагента
//
// Метод «getCounterpartyContactPersons», працює в моделі «Counterparty», цей метод завантажує список контактних осіб
// контрагентів.
//
// Якщо в методі більше ніж 100 контактних осіб контрагентів, необхідно використовувати параметр «Page»
//
// Копію довідника необхідно зберігати на стороні клієнта та підтримувати його в актуальному стані.
//
// Рекомендовано проводити оновлення довідників раз на день.
func (c *Client) GetCounterpartyContactPersons(req CounterpartyContactPersonRequest) (*Response[ContactPerson], error) {
return RawRequest[ContactPerson](c, CounterpartyModel, "getCounterpartyContactPersons", req)
}
type CounterpartiesRequest struct {
CounterpartyProperty string
Page int
}
// GetCounterparties Завантажити список контрагентів відправників / одержувачів / третя особа
// Метод «getCounterparties», працює в моделі «Counterparty», цей метод завантажує список контрагентів відправників,
// отримувачі та третіх осіб.
//
// Якщо в методі більше ніж 100 контрагентів відправників або отримувачів, необхідно використовувати параметр «Page».
//
// Якщо в запит додати параметр «FindByString» (пошук по рядкам) та у властивостях вказати назву контрагента (Талісман),
// який необхідно знайти, то отримаємо запит за допомогою якого у довіднику знайдеться необхідний контрагент.
//
// Копію довідника необхідно зберігати на сторні клієнта та підтримувати його в актуальному стані.
//
// Рекомендовано проводити оновлення довідників раз на день.
func (c *Client) GetCounterparties(req CounterpartiesRequest) (*Response[Counterparty], error) {
return RawRequest[Counterparty](c, CounterpartyModel, "getCounterparties", req)
}