mirror of
https://github.com/bringout/oca-ocb-sale.git
synced 2026-04-27 15:32:04 +02:00
19.0 vanilla
This commit is contained in:
parent
79f83631d5
commit
73afc09215
6267 changed files with 1534193 additions and 1130106 deletions
|
|
@ -0,0 +1,11 @@
|
|||
import { PosConfig } from "@point_of_sale/../tests/unit/data/pos_config.data";
|
||||
|
||||
PosConfig._records = PosConfig._records.map((config) => {
|
||||
if (config.id === 1) {
|
||||
return {
|
||||
...config,
|
||||
down_payment_product_id: 105,
|
||||
};
|
||||
}
|
||||
return config;
|
||||
});
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
import { patch } from "@web/core/utils/patch";
|
||||
import { PosOrderLine } from "@point_of_sale/../tests/unit/data/pos_order_line.data";
|
||||
|
||||
patch(PosOrderLine.prototype, {
|
||||
_load_pos_data_fields() {
|
||||
return [
|
||||
...super._load_pos_data_fields(),
|
||||
"sale_order_origin_id",
|
||||
"sale_order_line_id",
|
||||
"down_payment_details",
|
||||
"settled_order_id",
|
||||
"settled_invoice_id",
|
||||
];
|
||||
},
|
||||
});
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
import { patch } from "@web/core/utils/patch";
|
||||
import { PosSession } from "@point_of_sale/../tests/unit/data/pos_session.data";
|
||||
|
||||
patch(PosSession.prototype, {
|
||||
_load_pos_data_models() {
|
||||
return [...super._load_pos_data_models(), "sale.order", "sale.order.line"];
|
||||
},
|
||||
});
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
import { ProductProduct } from "@point_of_sale/../tests/unit/data/product_product.data";
|
||||
|
||||
ProductProduct._records = [
|
||||
...ProductProduct._records,
|
||||
{
|
||||
id: 105,
|
||||
product_tmpl_id: 105,
|
||||
lst_price: 0,
|
||||
standard_price: 0,
|
||||
display_name: "Down Payment (POS)",
|
||||
product_tag_ids: [],
|
||||
barcode: false,
|
||||
default_code: false,
|
||||
product_template_attribute_value_ids: [],
|
||||
product_template_variant_value_ids: [],
|
||||
},
|
||||
];
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
import { patch } from "@web/core/utils/patch";
|
||||
import { ProductTemplate } from "@point_of_sale/../tests/unit/data/product_template.data";
|
||||
|
||||
patch(ProductTemplate.prototype, {
|
||||
_load_pos_data_fields() {
|
||||
return [...super._load_pos_data_fields(), "sale_line_warn_msg", "invoice_policy"];
|
||||
},
|
||||
});
|
||||
|
||||
ProductTemplate._records = [
|
||||
...ProductTemplate._records,
|
||||
{
|
||||
id: 105,
|
||||
display_name: "Down Payment (POS)",
|
||||
standard_price: 0,
|
||||
categ_id: false,
|
||||
pos_categ_ids: [],
|
||||
taxes_id: [],
|
||||
barcode: false,
|
||||
name: "Down Payment (POS)",
|
||||
list_price: 0,
|
||||
is_favorite: false,
|
||||
default_code: false,
|
||||
to_weight: false,
|
||||
uom_id: 1,
|
||||
description_sale: false,
|
||||
description: false,
|
||||
tracking: "none",
|
||||
type: "service",
|
||||
service_tracking: "no",
|
||||
is_storable: false,
|
||||
write_date: "2025-07-03 17:04:14",
|
||||
color: 0,
|
||||
pos_sequence: 5,
|
||||
available_in_pos: true,
|
||||
attribute_line_ids: [],
|
||||
active: true,
|
||||
image_128: false,
|
||||
sequence: 1,
|
||||
combo_ids: [],
|
||||
product_variant_ids: [7],
|
||||
public_description: false,
|
||||
pos_optional_product_ids: [],
|
||||
product_tag_ids: [],
|
||||
},
|
||||
];
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
import { patch } from "@web/core/utils/patch";
|
||||
import { ResPartner as MailResPartner } from "@mail/../tests/mock_server/mock_models/res_partner";
|
||||
|
||||
patch(MailResPartner.prototype, {
|
||||
_load_pos_data_fields() {
|
||||
return [...super._load_pos_data_fields(), "sale_warn_msg"];
|
||||
},
|
||||
});
|
||||
|
|
@ -0,0 +1,69 @@
|
|||
import { patch } from "@web/core/utils/patch";
|
||||
import { hootPosModels } from "@point_of_sale/../tests/unit/data/generate_model_definitions";
|
||||
import { models } from "@web/../tests/web_test_helpers";
|
||||
|
||||
export class SaleOrder extends models.ServerModel {
|
||||
_name = "sale.order";
|
||||
|
||||
_load_pos_data_fields() {
|
||||
return [
|
||||
"name",
|
||||
"state",
|
||||
"user_id",
|
||||
"order_line",
|
||||
"partner_id",
|
||||
"pricelist_id",
|
||||
"fiscal_position_id",
|
||||
"amount_total",
|
||||
"amount_untaxed",
|
||||
"amount_unpaid",
|
||||
"picking_ids",
|
||||
"partner_shipping_id",
|
||||
"partner_invoice_id",
|
||||
"date_order",
|
||||
"write_date",
|
||||
];
|
||||
}
|
||||
|
||||
_records = [
|
||||
{
|
||||
id: 1,
|
||||
name: "S00001",
|
||||
state: "sale",
|
||||
order_line: [1, 2],
|
||||
partner_id: 3,
|
||||
pricelist_id: 1,
|
||||
fiscal_position_id: 1,
|
||||
amount_total: 650,
|
||||
amount_untaxed: 500,
|
||||
amount_unpaid: 650,
|
||||
partner_shipping_id: 3,
|
||||
partner_invoice_id: 3,
|
||||
date_order: "2025-07-03 17:04:14",
|
||||
write_date: "2025-07-03 17:04:14",
|
||||
},
|
||||
];
|
||||
|
||||
async load_sale_order_from_pos(id, config_id) {
|
||||
const order = this.env["sale.order"].find((order) => order.id === id);
|
||||
const orderLines = this.env["sale.order.line"].filter((line) =>
|
||||
order.order_line.includes(line.id)
|
||||
);
|
||||
const partner = this.env["res.partner"].find((partner) => partner.id === order.partner_id);
|
||||
const productProducts = this.env["product.product"].filter((product) =>
|
||||
orderLines.map((line) => line.product_id).includes(product.id)
|
||||
);
|
||||
const productTemplates = this.env["product.template"].filter((template) =>
|
||||
productProducts.map((p) => p.product_tmpl_id).includes(template.id)
|
||||
);
|
||||
return {
|
||||
"sale.order": [order],
|
||||
"sale.order.line": orderLines,
|
||||
"res.partner": [partner],
|
||||
"product.product": productProducts,
|
||||
"product.template": productTemplates,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
patch(hootPosModels, [...hootPosModels, SaleOrder]);
|
||||
|
|
@ -0,0 +1,83 @@
|
|||
import { patch } from "@web/core/utils/patch";
|
||||
import { hootPosModels } from "@point_of_sale/../tests/unit/data/generate_model_definitions";
|
||||
import { models, MockServer } from "@web/../tests/web_test_helpers";
|
||||
|
||||
export class SaleOrderLine extends models.ServerModel {
|
||||
_name = "sale.order.line";
|
||||
|
||||
_load_pos_data_fields() {
|
||||
return [
|
||||
"discount",
|
||||
"display_name",
|
||||
"price_total",
|
||||
"price_unit",
|
||||
"product_id",
|
||||
"product_uom_qty",
|
||||
"qty_delivered",
|
||||
"qty_invoiced",
|
||||
"qty_to_invoice",
|
||||
"display_type",
|
||||
"name",
|
||||
"tax_ids",
|
||||
"is_downpayment",
|
||||
"extra_tax_data",
|
||||
"write_date",
|
||||
"is_repair_line",
|
||||
];
|
||||
}
|
||||
|
||||
_records = [
|
||||
{
|
||||
id: 1,
|
||||
display_name: "Product 1",
|
||||
product_id: 5,
|
||||
product_uom_qty: 5,
|
||||
price_unit: 100,
|
||||
price_total: 500,
|
||||
discount: 0,
|
||||
qty_delivered: 0,
|
||||
qty_invoiced: 0,
|
||||
qty_to_invoice: 5,
|
||||
display_type: false,
|
||||
name: "Product 1",
|
||||
tax_ids: [],
|
||||
is_downpayment: false,
|
||||
extra_tax_data: {},
|
||||
write_date: "2025-07-03 17:04:14",
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
display_name: "Product 2",
|
||||
product_id: 6,
|
||||
product_uom_qty: 3,
|
||||
price_unit: 50,
|
||||
price_total: 150,
|
||||
discount: 0,
|
||||
qty_delivered: 0,
|
||||
qty_invoiced: 0,
|
||||
qty_to_invoice: 3,
|
||||
display_type: false,
|
||||
name: "Product 2",
|
||||
tax_ids: [],
|
||||
is_downpayment: false,
|
||||
extra_tax_data: {},
|
||||
write_date: "2025-07-03 17:04:14",
|
||||
},
|
||||
];
|
||||
|
||||
async read_converted(ids) {
|
||||
const model = MockServer.env[this._name];
|
||||
const posFields = model._load_pos_data_fields();
|
||||
const records = model.search_read(
|
||||
[["id", "in", ids]],
|
||||
posFields,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false
|
||||
);
|
||||
return records;
|
||||
}
|
||||
}
|
||||
|
||||
patch(hootPosModels, [...hootPosModels, SaleOrderLine]);
|
||||
Loading…
Add table
Add a link
Reference in a new issue