erpnext-queue-client 2.0.0-beta.0 → 2.0.0-beta.2

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 (68) hide show
  1. package/dist/client.js +1 -4
  2. package/dist/constants.d.ts +1 -1
  3. package/dist/constants.js +4 -4
  4. package/dist/erpnext/doctypeResourceRequest.d.ts +1 -1
  5. package/dist/erpnext/doctypeSubmittableResourceRequest.d.ts +56 -16
  6. package/dist/erpnext/doctypeSubmittableResourceRequest.js +10 -8
  7. package/dist/erpnext/doctypes/address.d.ts +18 -18
  8. package/dist/erpnext/doctypes/contact.d.ts +18 -18
  9. package/dist/erpnext/doctypes/deliveryNote.d.ts +44 -33
  10. package/dist/erpnext/doctypes/item.d.ts +49 -49
  11. package/dist/erpnext/doctypes/paymentEntry.d.ts +820 -0
  12. package/dist/erpnext/doctypes/paymentEntry.js +72 -0
  13. package/dist/erpnext/doctypes/productBundle.d.ts +16 -16
  14. package/dist/erpnext/doctypes/purchaseInvoice.d.ts +99 -99
  15. package/dist/erpnext/doctypes/purchaseReceipt.d.ts +48 -49
  16. package/dist/erpnext/doctypes/salesInvoice.d.ts +2205 -2203
  17. package/dist/erpnext/doctypes/servicecase.d.ts +56 -56
  18. package/dist/erpnext/doctypes/shipment.d.ts +76 -44
  19. package/dist/erpnext/doctypes/stock.d.ts +2 -0
  20. package/dist/erpnext/doctypes/stock.js +19 -3
  21. package/dist/erpnext/model/ConsolidatedCustomsInvoice.d.ts +321 -0
  22. package/dist/erpnext/model/ConsolidatedCustomsInvoice.js +83 -0
  23. package/dist/erpnext/model/DeliveryNote.d.ts +3 -0
  24. package/dist/erpnext/model/DeliveryNote.js +1 -0
  25. package/dist/erpnext/model/DispatchRun.d.ts +3 -3
  26. package/dist/erpnext/model/DispatchRun.js +1 -1
  27. package/dist/erpnext/model/DocTypeHelpers.d.ts +26 -7
  28. package/dist/erpnext/model/DocTypeHelpers.js +0 -8
  29. package/dist/erpnext/model/ERPNextDocTypeMeta.d.ts +28 -15
  30. package/dist/erpnext/model/ERPNextDocTypeMeta.js +12 -7
  31. package/dist/erpnext/model/FulfillmentStation.d.ts +3 -0
  32. package/dist/erpnext/model/FulfillmentStation.js +1 -0
  33. package/dist/erpnext/model/Item.d.ts +35 -25
  34. package/dist/erpnext/model/ItemTaxTemplate.d.ts +57 -0
  35. package/dist/erpnext/model/ItemTaxTemplate.js +25 -0
  36. package/dist/erpnext/model/PaymentEntry.d.ts +183 -16
  37. package/dist/erpnext/model/PaymentEntry.js +6 -1
  38. package/dist/erpnext/model/PurchaseInvoice.d.ts +49 -47
  39. package/dist/erpnext/model/PurchaseInvoice.js +0 -1
  40. package/dist/erpnext/model/PurchaseOrder.d.ts +10 -10
  41. package/dist/erpnext/model/Receipt.d.ts +2 -2
  42. package/dist/erpnext/model/ReceiptDraft.d.ts +0 -3
  43. package/dist/erpnext/model/ReceiptDraft.js +0 -1
  44. package/dist/erpnext/model/SalesInvoice.d.ts +1530 -1526
  45. package/dist/erpnext/model/SalesInvoice.js +182 -178
  46. package/dist/erpnext/model/SalesOrder.d.ts +778 -748
  47. package/dist/erpnext/model/SalesOrder.js +151 -149
  48. package/dist/erpnext/model/Servicecase.d.ts +30 -30
  49. package/dist/erpnext/model/Servicecase.js +8 -1
  50. package/dist/erpnext/model/ServiceportalProductConfiguration.d.ts +128 -3
  51. package/dist/erpnext/model/ServiceportalProductConfiguration.js +34 -2
  52. package/dist/erpnext/model/Shipment.d.ts +14 -0
  53. package/dist/erpnext/model/Shipment.js +14 -1
  54. package/dist/erpnext/model/ShippingFees.d.ts +36 -0
  55. package/dist/erpnext/model/ShippingFees.js +18 -0
  56. package/dist/erpnext/model/ShippingProvider.d.ts +2 -2
  57. package/dist/erpnext/model/Stock.d.ts +6 -6
  58. package/dist/erpnext/model/StockEntry.d.ts +2 -2
  59. package/dist/erpnext/model/TaxCategory.d.ts +20 -0
  60. package/dist/erpnext/model/TaxCategory.js +16 -0
  61. package/dist/erpnext/resourceRequest.d.ts +1 -1
  62. package/dist/erpnext/resourceRequest.js +11 -5
  63. package/dist/index.d.ts +8 -2
  64. package/dist/index.js +9 -2
  65. package/dist/index.test.js +104 -70
  66. package/dist/utils/zodContextOptionals.js +7 -4
  67. package/dist/utils/zodUtils.js +14 -2
  68. package/package.json +7 -2
@@ -10,141 +10,145 @@ const DocTypeHelpers_1 = require("./DocTypeHelpers");
10
10
  exports.SalesInvoiceItem = zod_1.z
11
11
  .object({
12
12
  // Core Item Information
13
- barcode: zod_1.z.string().optional(),
13
+ barcode: zod_1.z.string().optional().nullable(),
14
14
  has_item_scanned: Boolean_1.ERPNextBoolean,
15
15
  item_code: zod_1.z.string().min(1, "Item Code is required"),
16
- customer_item_code: zod_1.z.string().optional(),
16
+ customer_item_code: zod_1.z.string().optional().nullable(),
17
17
  item_name: zod_1.z.string().min(1, "Item Name is required"),
18
- description: zod_1.z.string().optional(),
19
- image: zod_1.z.string().optional(),
20
- item_group: zod_1.z.string().optional(),
21
- brand: zod_1.z.string().optional(),
18
+ description: zod_1.z.string().optional().nullable(),
19
+ image: zod_1.z.string().optional().nullable(),
20
+ item_group: zod_1.z.string().optional().nullable(),
21
+ brand: zod_1.z.string().optional().nullable(),
22
22
  // Quantity and UOM
23
23
  qty: zod_1.z.number().positive("Quantity must be positive"),
24
- stock_uom: zod_1.z.string().optional(),
24
+ stock_uom: zod_1.z.string().optional().nullable(),
25
25
  uom: zod_1.z.string().min(1, "UOM is required"),
26
- conversion_factor: zod_1.z.number().optional(),
27
- stock_qty: zod_1.z.number().optional(),
26
+ conversion_factor: zod_1.z.number().optional().nullable(),
27
+ stock_qty: zod_1.z.number().optional().nullable(),
28
28
  // Pricing
29
- price_list_rate: zod_1.z.number().optional(),
30
- base_price_list_rate: zod_1.z.number().optional(),
29
+ price_list_rate: zod_1.z.number().optional().nullable(),
30
+ base_price_list_rate: zod_1.z.number().optional().nullable(),
31
31
  // Discount and Margin
32
- margin_type: zod_1.z.enum(["", "Percentage", "Amount"]).optional(),
33
- margin_rate_or_amount: zod_1.z.number().optional(),
34
- rate_with_margin: zod_1.z.number().optional(),
35
- discount_percentage: zod_1.z.number().optional(),
36
- discount_amount: zod_1.z.number().optional(),
37
- base_rate_with_margin: zod_1.z.number().optional(),
32
+ margin_type: zod_1.z.enum(["", "Percentage", "Amount"]).optional().nullable(),
33
+ margin_rate_or_amount: zod_1.z.number().optional().nullable(),
34
+ rate_with_margin: zod_1.z.number().optional().nullable(),
35
+ discount_percentage: zod_1.z.number().optional().nullable(),
36
+ discount_amount: zod_1.z.number().optional().nullable(),
37
+ base_rate_with_margin: zod_1.z.number().optional().nullable(),
38
38
  // Rate and Amount
39
- rate: zod_1.z.number().min(1, "Rate is required"),
40
- amount: zod_1.z.number().optional(),
41
- base_rate: zod_1.z.number().optional(),
42
- base_amount: zod_1.z.number().optional(),
43
- item_tax_template: zod_1.z.string().optional(),
39
+ rate: zod_1.z.number(),
40
+ amount: zod_1.z.number().optional().nullable(),
41
+ base_rate: zod_1.z.number().optional().nullable(),
42
+ base_amount: zod_1.z.number().optional().nullable(),
43
+ item_tax_template: zod_1.z.string().optional().nullable(),
44
44
  // Pricing Rules
45
- pricing_rules: zod_1.z.string().optional(),
46
- stock_uom_rate: zod_1.z.number().optional(),
45
+ pricing_rules: zod_1.z.string().optional().nullable(),
46
+ stock_uom_rate: zod_1.z.number().optional().nullable(),
47
47
  is_free_item: Boolean_1.ERPNextBoolean,
48
48
  grant_commission: Boolean_1.ERPNextBoolean,
49
49
  // Net Amounts
50
- net_rate: zod_1.z.number().optional(),
51
- net_amount: zod_1.z.number().optional(),
52
- base_net_rate: zod_1.z.number().optional(),
53
- base_net_amount: zod_1.z.number().optional(),
50
+ net_rate: zod_1.z.number().optional().nullable(),
51
+ net_amount: zod_1.z.number().optional().nullable(),
52
+ base_net_rate: zod_1.z.number().optional().nullable(),
53
+ base_net_amount: zod_1.z.number().optional().nullable(),
54
54
  // Drop Ship
55
55
  delivered_by_supplier: Boolean_1.ERPNextBoolean,
56
56
  // Weight
57
- weight_per_unit: zod_1.z.number().optional(),
58
- total_weight: zod_1.z.number().optional(),
59
- weight_uom: zod_1.z.string().optional(),
57
+ weight_per_unit: zod_1.z.number().optional().nullable(),
58
+ total_weight: zod_1.z.number().optional().nullable(),
59
+ weight_uom: zod_1.z.string().optional().nullable(),
60
60
  // Warehouse and Stock
61
- warehouse: zod_1.z.string().optional(),
62
- target_warehouse: zod_1.z.string().optional(),
63
- quality_inspection: zod_1.z.string().optional(),
64
- serial_no: zod_1.z.string().optional(),
65
- batch_no: zod_1.z.string().optional(),
61
+ warehouse: zod_1.z.string().optional().nullable(),
62
+ target_warehouse: zod_1.z.string().optional().nullable(),
63
+ quality_inspection: zod_1.z.string().optional().nullable(),
64
+ serial_no: zod_1.z.string().optional().nullable(),
65
+ batch_no: zod_1.z.string().optional().nullable(),
66
66
  allow_zero_valuation_rate: Boolean_1.ERPNextBoolean,
67
- incoming_rate: zod_1.z.number().optional(),
68
- item_tax_rate: zod_1.z.string().optional(),
69
- actual_batch_qty: zod_1.z.number().optional(),
70
- actual_qty: zod_1.z.number().optional(),
67
+ incoming_rate: zod_1.z.number().optional().nullable(),
68
+ item_tax_rate: zod_1.z.string().optional().nullable(),
69
+ actual_batch_qty: zod_1.z.number().optional().nullable(),
70
+ actual_qty: zod_1.z.number().optional().nullable(),
71
71
  // References
72
- sales_order: zod_1.z.string().optional(),
73
- so_detail: zod_1.z.string().optional(),
74
- delivery_note: zod_1.z.string().optional(),
75
- dn_detail: zod_1.z.string().optional(),
76
- delivered_qty: zod_1.z.number().optional(),
77
- sales_invoice_item: zod_1.z.string().optional(),
72
+ sales_order: zod_1.z.string().optional().nullable(),
73
+ so_detail: zod_1.z.string().optional().nullable(),
74
+ delivery_note: zod_1.z.string().optional().nullable(),
75
+ dn_detail: zod_1.z.string().optional().nullable(),
76
+ delivered_qty: zod_1.z.number().optional().nullable(),
77
+ sales_invoice_item: zod_1.z.string().optional().nullable(),
78
78
  // Accounting
79
79
  income_account: zod_1.z.string().min(1, "Income Account is required"),
80
- expense_account: zod_1.z.string().optional(),
81
- cost_center: zod_1.z.string().optional(),
82
- discount_account: zod_1.z.string().optional(),
80
+ expense_account: zod_1.z.string().optional().nullable(),
81
+ cost_center: zod_1.z.string().optional().nullable(),
82
+ discount_account: zod_1.z.string().optional().nullable(),
83
83
  // Deferred Revenue
84
84
  enable_deferred_revenue: Boolean_1.ERPNextBoolean,
85
- deferred_revenue_account: zod_1.z.string().optional(),
86
- service_start_date: zod_1.z.string().optional(), // Date string
87
- service_stop_date: zod_1.z.string().optional(), // Date string
88
- service_end_date: zod_1.z.string().optional(), // Date string
85
+ deferred_revenue_account: zod_1.z.string().optional().nullable(),
86
+ service_start_date: zod_1.z.string().optional().nullable(), // Date string
87
+ service_stop_date: zod_1.z.string().optional().nullable(), // Date string
88
+ service_end_date: zod_1.z.string().optional().nullable(), // Date string
89
89
  // Fixed Assets
90
90
  is_fixed_asset: Boolean_1.ERPNextBoolean,
91
- asset: zod_1.z.string().optional(),
92
- finance_book: zod_1.z.string().optional(),
91
+ asset: zod_1.z.string().optional().nullable(),
92
+ finance_book: zod_1.z.string().optional().nullable(),
93
93
  // Additional
94
- project: zod_1.z.string().optional(),
94
+ project: zod_1.z.string().optional().nullable(),
95
95
  page_break: Boolean_1.ERPNextBoolean,
96
96
  use_serial_batch_fields: Boolean_1.ERPNextBoolean,
97
- serial_and_batch_bundle: zod_1.z.string().optional(),
97
+ serial_and_batch_bundle: zod_1.z.string().optional().nullable(),
98
98
  // Internal Transfer
99
- purchase_order: zod_1.z.string().optional(),
100
- purchase_order_item: zod_1.z.string().optional(),
99
+ purchase_order: zod_1.z.string().optional().nullable(),
100
+ purchase_order_item: zod_1.z.string().optional().nullable(),
101
101
  })
102
102
  .describe("Sales Invoice Item");
103
103
  // Sales Invoice Advance Schema
104
- exports.SalesInvoiceAdvance = zod_1.z.object({
104
+ exports.SalesInvoiceAdvance = zod_1.z
105
+ .object({
105
106
  doctype: zod_1.z.literal("Sales Invoice Advance"),
106
107
  reference_type: zod_1.z.string(),
107
108
  reference_name: zod_1.z.string(),
108
- reference_row: zod_1.z.string().optional(),
109
+ reference_row: zod_1.z.string().optional().nullable(),
109
110
  advance_amount: zod_1.z.number(),
110
- allocated_amount: zod_1.z.number().optional(),
111
- remarks: zod_1.z.string().optional(),
112
- });
111
+ allocated_amount: zod_1.z.number().optional().nullable(),
112
+ remarks: zod_1.z.string().optional().nullable(),
113
+ })
114
+ .describe("Sales Invoice Advance");
113
115
  // Sales Invoice Payment Schema
114
- exports.SalesInvoicePayment = zod_1.z.object({
116
+ exports.SalesInvoicePayment = zod_1.z
117
+ .object({
115
118
  mode_of_payment: zod_1.z.string(),
116
119
  amount: zod_1.z.number(),
117
- base_amount: zod_1.z.number().optional(),
118
- account: zod_1.z.string().optional(),
119
- reference_no: zod_1.z.string().optional(),
120
- clearance_date: zod_1.z.string().optional(), // Date string
121
- });
120
+ base_amount: zod_1.z.number().optional().nullable(),
121
+ account: zod_1.z.string().optional().nullable(),
122
+ reference_no: zod_1.z.string().optional().nullable(),
123
+ clearance_date: zod_1.z.string().optional().nullable(), // Date string
124
+ })
125
+ .describe("Sales Invoice Payment");
122
126
  // Main Sales Invoice Schema
123
127
  exports.SalesInvoice = zod_1.z
124
128
  .object({
125
129
  // Document Info
126
130
  custom_invoice_no: zod_1.z.string(),
127
131
  naming_series: (0, zodContextOptionals_1.optionalForInput)(zod_1.z.enum(["INV-.#", "INV-.#-GS"]).default("INV-.#")),
128
- title: zod_1.z.string().optional(),
129
- amended_from: zod_1.z.string().optional(),
132
+ title: zod_1.z.string().optional().nullable(),
133
+ amended_from: zod_1.z.string().optional().nullable(),
130
134
  // Customer Information
131
135
  customer: zod_1.z.string().min(1, "Customer is required"),
132
- customer_name: zod_1.z.string().optional(),
133
- tax_id: zod_1.z.string().optional(),
134
- company_tax_id: zod_1.z.string().optional(),
136
+ customer_name: zod_1.z.string().optional().nullable(),
137
+ tax_id: zod_1.z.string().optional().nullable(),
138
+ company_tax_id: zod_1.z.string().optional().nullable(),
135
139
  // Dates
136
140
  posting_date: zod_1.z.string().min(1, "Posting Date is required"), // Date string
137
- posting_time: zod_1.z.string().optional(), // Time string
141
+ posting_time: zod_1.z.string().optional().nullable(), // Time string
138
142
  set_posting_time: Boolean_1.ERPNextBoolean,
139
- due_date: zod_1.z.string().optional(), // Date string
143
+ due_date: zod_1.z.string().optional().nullable(), // Date string
140
144
  // Company
141
145
  company: zod_1.z.string().min(1, "Company is required"),
142
146
  // POS
143
147
  is_pos: Boolean_1.ERPNextBoolean,
144
- pos_profile: zod_1.z.string().optional(),
148
+ pos_profile: zod_1.z.string().optional().nullable(),
145
149
  // Return Information
146
150
  is_return: Boolean_1.ERPNextBoolean,
147
- return_against: zod_1.z.string().optional(),
151
+ return_against: zod_1.z.string().optional().nullable(),
148
152
  is_debit_note: Boolean_1.ERPNextBoolean,
149
153
  update_outstanding_for_self: Boolean_1.ERPNextBoolean,
150
154
  update_billed_amount_in_sales_order: Boolean_1.ERPNextBoolean,
@@ -155,141 +159,141 @@ exports.SalesInvoice = zod_1.z
155
159
  currency: zod_1.z.string().min(1, "Currency is required"),
156
160
  conversion_rate: (0, zodContextOptionals_1.optionalForInput)(zod_1.z.number().min(0).default(1)),
157
161
  selling_price_list: zod_1.z.string().min(1, "Selling Price List is required"),
158
- price_list_currency: zod_1.z.string().optional(),
162
+ price_list_currency: zod_1.z.string().optional().nullable(),
159
163
  plc_conversion_rate: (0, zodContextOptionals_1.optionalForInput)(zod_1.z.number().min(0).default(1)),
160
164
  ignore_pricing_rule: Boolean_1.ERPNextBoolean,
161
165
  // Stock Management
162
166
  update_stock: Boolean_1.ERPNextBoolean,
163
- scan_barcode: zod_1.z.string().optional(),
164
- set_warehouse: zod_1.z.string().optional(),
165
- set_target_warehouse: zod_1.z.string().optional(),
167
+ scan_barcode: zod_1.z.string().optional().nullable(),
168
+ set_warehouse: zod_1.z.string().optional().nullable(),
169
+ set_target_warehouse: zod_1.z.string().optional().nullable(),
166
170
  // Items
167
171
  items: zod_1.z.array(exports.SalesInvoiceItem).min(1, "At least one item is required"),
168
172
  // Totals
169
- total_qty: zod_1.z.number().optional(),
170
- total_net_weight: zod_1.z.number().optional(),
171
- base_total: zod_1.z.number().optional(),
172
- base_net_total: zod_1.z.number().optional(),
173
- total: zod_1.z.number().optional(),
174
- net_total: zod_1.z.number().optional(),
173
+ total_qty: zod_1.z.number().optional().nullable(),
174
+ total_net_weight: zod_1.z.number().optional().nullable(),
175
+ base_total: zod_1.z.number().optional().nullable(),
176
+ base_net_total: zod_1.z.number().optional().nullable(),
177
+ total: zod_1.z.number().optional().nullable(),
178
+ net_total: zod_1.z.number().optional().nullable(),
175
179
  // Taxes
176
- tax_category: zod_1.z.string().optional(),
177
- taxes_and_charges: zod_1.z.string().optional(),
178
- shipping_rule: zod_1.z.string().optional(),
179
- incoterm: zod_1.z.string().optional(),
180
- named_place: zod_1.z.string().optional(),
181
- taxes: zod_1.z.array(SalesTaxesAndCharges_1.SalesTaxesAndCharges).optional(),
182
- base_total_taxes_and_charges: zod_1.z.number().optional(),
183
- total_taxes_and_charges: zod_1.z.number().optional(),
184
- other_charges_calculation: zod_1.z.string().optional(),
180
+ tax_category: zod_1.z.string().optional().nullable(),
181
+ taxes_and_charges: zod_1.z.string().optional().nullable(),
182
+ shipping_rule: zod_1.z.string().optional().nullable(),
183
+ incoterm: zod_1.z.string().optional().nullable(),
184
+ named_place: zod_1.z.string().optional().nullable(),
185
+ taxes: zod_1.z.array(SalesTaxesAndCharges_1.SalesTaxesAndCharges).optional().nullable(),
186
+ base_total_taxes_and_charges: zod_1.z.number().optional().nullable(),
187
+ total_taxes_and_charges: zod_1.z.number().optional().nullable(),
188
+ other_charges_calculation: zod_1.z.string().optional().nullable(),
185
189
  // Grand Total
186
- base_grand_total: zod_1.z.number().optional(),
187
- base_rounding_adjustment: zod_1.z.number().optional(),
188
- base_rounded_total: zod_1.z.number().optional(),
189
- base_in_words: zod_1.z.string().optional(),
190
- grand_total: zod_1.z.number().optional(),
191
- rounding_adjustment: zod_1.z.number().optional(),
192
- rounded_total: zod_1.z.number().optional(),
193
- in_words: zod_1.z.string().optional(),
190
+ base_grand_total: zod_1.z.number().optional().nullable(),
191
+ base_rounding_adjustment: zod_1.z.number().optional().nullable(),
192
+ base_rounded_total: zod_1.z.number().optional().nullable(),
193
+ base_in_words: zod_1.z.string().optional().nullable(),
194
+ grand_total: zod_1.z.number().optional().nullable(),
195
+ rounding_adjustment: zod_1.z.number().optional().nullable(),
196
+ rounded_total: zod_1.z.number().optional().nullable(),
197
+ in_words: zod_1.z.string().optional().nullable(),
194
198
  disable_rounded_total: Boolean_1.ERPNextBoolean,
195
199
  use_company_roundoff_cost_center: Boolean_1.ERPNextBoolean,
196
200
  // Additional Discount
197
201
  apply_discount_on: (0, zodContextOptionals_1.optionalForInput)(zod_1.z.enum(["", "Grand Total", "Net Total"]).default("Grand Total")),
198
- base_discount_amount: zod_1.z.number().optional(),
199
- additional_discount_percentage: zod_1.z.number().optional(),
200
- discount_amount: zod_1.z.number().optional(),
201
- coupon_code: zod_1.z.string().optional(),
202
+ base_discount_amount: zod_1.z.number().optional().nullable(),
203
+ additional_discount_percentage: zod_1.z.number().optional().nullable(),
204
+ discount_amount: zod_1.z.number().optional().nullable(),
205
+ coupon_code: zod_1.z.string().optional().nullable(),
202
206
  is_cash_or_non_trade_discount: Boolean_1.ERPNextBoolean,
203
- additional_discount_account: zod_1.z.string().optional(),
207
+ additional_discount_account: zod_1.z.string().optional().nullable(),
204
208
  // Pricing Rules
205
- pricing_rules: zod_1.z.array(zod_1.z.any()).optional(),
209
+ pricing_rules: zod_1.z.array(zod_1.z.any()).optional().nullable(),
206
210
  // Packing
207
- packed_items: zod_1.z.array(zod_1.z.any()).optional(),
211
+ packed_items: zod_1.z.array(zod_1.z.any()).optional().nullable(),
208
212
  // Time Sheets
209
- timesheets: zod_1.z.array(zod_1.z.any()).optional(),
210
- total_billing_hours: zod_1.z.number().optional(),
211
- total_billing_amount: zod_1.z.number().optional(),
213
+ timesheets: zod_1.z.array(zod_1.z.any()).optional().nullable(),
214
+ total_billing_hours: zod_1.z.number().optional().nullable(),
215
+ total_billing_amount: zod_1.z.number().optional().nullable(),
212
216
  // Addresses
213
- customer_address: zod_1.z.string().optional(),
214
- address_display: zod_1.z.string().optional(),
215
- contact_person: zod_1.z.string().optional(),
216
- contact_display: zod_1.z.string().optional(),
217
- contact_mobile: zod_1.z.string().optional(),
218
- contact_email: zod_1.z.string().optional(),
219
- territory: zod_1.z.string().optional(),
220
- shipping_address_name: zod_1.z.string().optional(),
221
- shipping_address: zod_1.z.string().optional(),
222
- dispatch_address_name: zod_1.z.string().optional(),
223
- dispatch_address: zod_1.z.string().optional(),
224
- company_address: zod_1.z.string().optional(),
225
- company_address_display: zod_1.z.string().optional(),
217
+ customer_address: zod_1.z.string().optional().nullable(),
218
+ address_display: zod_1.z.string().optional().nullable(),
219
+ contact_person: zod_1.z.string().optional().nullable(),
220
+ contact_display: zod_1.z.string().optional().nullable(),
221
+ contact_mobile: zod_1.z.string().optional().nullable(),
222
+ contact_email: zod_1.z.string().optional().nullable(),
223
+ territory: zod_1.z.string().optional().nullable(),
224
+ shipping_address_name: zod_1.z.string().optional().nullable(),
225
+ shipping_address: zod_1.z.string().optional().nullable(),
226
+ dispatch_address_name: zod_1.z.string().optional().nullable(),
227
+ dispatch_address: zod_1.z.string().optional().nullable(),
228
+ company_address: zod_1.z.string().optional().nullable(),
229
+ company_address_display: zod_1.z.string().optional().nullable(),
226
230
  // Customer PO Details
227
- po_no: zod_1.z.string().optional(),
228
- po_date: zod_1.z.string().optional(), // Date string
231
+ po_no: zod_1.z.string().optional().nullable(),
232
+ po_date: zod_1.z.string().optional().nullable(), // Date string
229
233
  // Payment Terms
230
234
  ignore_default_payment_terms_template: Boolean_1.ERPNextBoolean,
231
- payment_terms_template: zod_1.z.string().optional(),
232
- payment_schedule: zod_1.z.array(zod_1.z.any()).optional(),
235
+ payment_terms_template: zod_1.z.string().optional().nullable(),
236
+ payment_schedule: zod_1.z.array(zod_1.z.any()).optional().nullable(),
233
237
  // Terms and Conditions
234
- tc_name: zod_1.z.string().optional(),
235
- terms: zod_1.z.string().optional(),
238
+ tc_name: zod_1.z.string().optional().nullable(),
239
+ terms: zod_1.z.string().optional().nullable(),
236
240
  // Payments (POS)
237
- cash_bank_account: zod_1.z.string().optional(),
238
- payments: zod_1.z.array(exports.SalesInvoicePayment).optional(),
239
- base_paid_amount: zod_1.z.number().optional(),
240
- paid_amount: zod_1.z.number().optional(),
241
- base_change_amount: zod_1.z.number().optional(),
242
- change_amount: zod_1.z.number().optional(),
243
- account_for_change_amount: zod_1.z.string().optional(),
241
+ cash_bank_account: zod_1.z.string().optional().nullable(),
242
+ payments: zod_1.z.array(exports.SalesInvoicePayment).optional().nullable(),
243
+ base_paid_amount: zod_1.z.number().optional().nullable(),
244
+ paid_amount: zod_1.z.number().optional().nullable(),
245
+ base_change_amount: zod_1.z.number().optional().nullable(),
246
+ change_amount: zod_1.z.number().optional().nullable(),
247
+ account_for_change_amount: zod_1.z.string().optional().nullable(),
244
248
  // Advances
245
249
  allocate_advances_automatically: Boolean_1.ERPNextBoolean,
246
250
  only_include_allocated_payments: Boolean_1.ERPNextBoolean,
247
- advances: zod_1.z.array(exports.SalesInvoiceAdvance).optional(),
251
+ advances: zod_1.z.array(exports.SalesInvoiceAdvance).optional().nullable(),
248
252
  // Write Off
249
- write_off_amount: zod_1.z.number().optional(),
250
- base_write_off_amount: zod_1.z.number().optional(),
253
+ write_off_amount: zod_1.z.number().optional().nullable(),
254
+ base_write_off_amount: zod_1.z.number().optional().nullable(),
251
255
  write_off_outstanding_amount_automatically: Boolean_1.ERPNextBoolean,
252
- write_off_account: zod_1.z.string().optional(),
253
- write_off_cost_center: zod_1.z.string().optional(),
256
+ write_off_account: zod_1.z.string().optional().nullable(),
257
+ write_off_cost_center: zod_1.z.string().optional().nullable(),
254
258
  // Loyalty
255
259
  redeem_loyalty_points: Boolean_1.ERPNextBoolean,
256
- loyalty_points: zod_1.z.number().optional(),
257
- loyalty_amount: zod_1.z.number().optional(),
258
- loyalty_program: zod_1.z.string().optional(),
260
+ loyalty_points: zod_1.z.number().optional().nullable(),
261
+ loyalty_amount: zod_1.z.number().optional().nullable(),
262
+ loyalty_program: zod_1.z.string().optional().nullable(),
259
263
  dont_create_loyalty_points: Boolean_1.ERPNextBoolean,
260
- loyalty_redemption_account: zod_1.z.string().optional(),
261
- loyalty_redemption_cost_center: zod_1.z.string().optional(),
264
+ loyalty_redemption_account: zod_1.z.string().optional().nullable(),
265
+ loyalty_redemption_cost_center: zod_1.z.string().optional().nullable(),
262
266
  // Outstanding
263
- total_advance: zod_1.z.number().optional(),
264
- outstanding_amount: zod_1.z.number().optional(),
267
+ total_advance: zod_1.z.number().optional().nullable(),
268
+ outstanding_amount: zod_1.z.number().optional().nullable(),
265
269
  // Accounting
266
- cost_center: zod_1.z.string().optional(),
267
- project: zod_1.z.string().optional(),
270
+ cost_center: zod_1.z.string().optional().nullable(),
271
+ project: zod_1.z.string().optional().nullable(),
268
272
  debit_to: zod_1.z.string().min(1, "Debit To Account is required"),
269
- party_account_currency: zod_1.z.string().optional(),
273
+ party_account_currency: zod_1.z.string().optional().nullable(),
270
274
  is_opening: (0, zodContextOptionals_1.optionalForInput)(zod_1.z.enum(["No", "Yes"]).default("No")),
271
- unrealized_profit_loss_account: zod_1.z.string().optional(),
272
- against_income_account: zod_1.z.string().optional(),
275
+ unrealized_profit_loss_account: zod_1.z.string().optional().nullable(),
276
+ against_income_account: zod_1.z.string().optional().nullable(),
273
277
  // Internal Customer
274
278
  is_internal_customer: Boolean_1.ERPNextBoolean,
275
- represents_company: zod_1.z.string().optional(),
279
+ represents_company: zod_1.z.string().optional().nullable(),
276
280
  // Sales Commission
277
- sales_partner: zod_1.z.string().optional(),
278
- amount_eligible_for_commission: zod_1.z.number().optional(),
279
- commission_rate: zod_1.z.number().optional(),
280
- total_commission: zod_1.z.number().optional(),
281
- sales_team: zod_1.z.array(zod_1.z.any()).optional(),
281
+ sales_partner: zod_1.z.string().optional().nullable(),
282
+ amount_eligible_for_commission: zod_1.z.number().optional().nullable(),
283
+ commission_rate: zod_1.z.number().optional().nullable(),
284
+ total_commission: zod_1.z.number().optional().nullable(),
285
+ sales_team: zod_1.z.array(zod_1.z.any()).optional().nullable(),
282
286
  // Printing
283
- letter_head: zod_1.z.string().optional(),
287
+ letter_head: zod_1.z.string().optional().nullable(),
284
288
  group_same_items: Boolean_1.ERPNextBoolean,
285
- select_print_heading: zod_1.z.string().optional(),
286
- language: zod_1.z.string().optional(),
289
+ select_print_heading: zod_1.z.string().optional().nullable(),
290
+ language: zod_1.z.string().optional().nullable(),
287
291
  // Subscription
288
- subscription: zod_1.z.string().optional(),
289
- from_date: zod_1.z.string().optional(), // Date string
290
- to_date: zod_1.z.string().optional(), // Date string
291
- auto_repeat: zod_1.z.string().optional(),
292
- update_auto_repeat_reference: zod_1.z.string().optional(),
292
+ subscription: zod_1.z.string().optional().nullable(),
293
+ from_date: zod_1.z.string().optional().nullable(), // Date string
294
+ to_date: zod_1.z.string().optional().nullable(), // Date string
295
+ auto_repeat: zod_1.z.string().optional().nullable(),
296
+ update_auto_repeat_reference: zod_1.z.string().optional().nullable(),
293
297
  // Status
294
298
  status: (0, zodContextOptionals_1.optionalForInput)(zod_1.z
295
299
  .enum([
@@ -309,12 +313,12 @@ exports.SalesInvoice = zod_1.z
309
313
  ])
310
314
  .default("Draft")),
311
315
  // Additional Info
312
- source: zod_1.z.string().optional(),
313
- customer_group: zod_1.z.string().optional(),
316
+ source: zod_1.z.string().optional().nullable(),
317
+ customer_group: zod_1.z.string().optional().nullable(),
314
318
  is_discounted: Boolean_1.ERPNextBoolean,
315
- remarks: zod_1.z.string().optional(),
316
- campaign: zod_1.z.string().optional(),
317
- inter_company_invoice_reference: zod_1.z.string().optional(),
319
+ remarks: zod_1.z.string().optional().nullable(),
320
+ campaign: zod_1.z.string().optional().nullable(),
321
+ inter_company_invoice_reference: zod_1.z.string().optional().nullable(),
318
322
  // Other
319
323
  repost_required: Boolean_1.ERPNextBoolean,
320
324
  })