mirror of
https://github.com/bringout/oca-ocb-sale.git
synced 2026-04-27 02:52:04 +02:00
Initial commit: Sale packages
This commit is contained in:
commit
14e3d26998
6469 changed files with 2479670 additions and 0 deletions
|
|
@ -0,0 +1,83 @@
|
|||
odoo.define('pos_sale.models', function (require) {
|
||||
"use strict";
|
||||
|
||||
var { Order, Orderline } = require('point_of_sale.models');
|
||||
const Registries = require('point_of_sale.Registries');
|
||||
|
||||
|
||||
const PosSaleOrder = (Order) => class PosSaleOrder extends Order {
|
||||
//@override
|
||||
select_orderline(orderline) {
|
||||
super.select_orderline(...arguments);
|
||||
if (orderline && orderline.product.id === this.pos.config.down_payment_product_id[0]) {
|
||||
this.pos.numpadMode = 'price';
|
||||
}
|
||||
}
|
||||
//@override
|
||||
_get_ignored_product_ids_total_discount() {
|
||||
const productIds = super._get_ignored_product_ids_total_discount(...arguments);
|
||||
productIds.push(this.pos.config.down_payment_product_id[0]);
|
||||
return productIds;
|
||||
}
|
||||
}
|
||||
Registries.Model.extend(Order, PosSaleOrder);
|
||||
|
||||
const PosSaleOrderline = (Orderline) => class PosSaleOrderline extends Orderline {
|
||||
constructor(obj, options) {
|
||||
super(...arguments);
|
||||
// It is possible that this orderline is initialized using `init_from_JSON`,
|
||||
// meaning, it is loaded from localStorage or from export_for_ui. This means
|
||||
// that some fields has already been assigned. Therefore, we only set the options
|
||||
// when the original value is falsy.
|
||||
this.sale_order_origin_id = this.sale_order_origin_id || options.sale_order_origin_id;
|
||||
this.sale_order_line_id = this.sale_order_line_id || options.sale_order_line_id;
|
||||
this.down_payment_details = this.down_payment_details || options.down_payment_details;
|
||||
this.customerNote = this.customerNote || options.customer_note;
|
||||
}
|
||||
init_from_JSON(json) {
|
||||
super.init_from_JSON(...arguments);
|
||||
this.sale_order_origin_id = json.sale_order_origin_id;
|
||||
this.sale_order_line_id = json.sale_order_line_id;
|
||||
this.down_payment_details = json.down_payment_details && JSON.parse(json.down_payment_details);
|
||||
}
|
||||
export_as_JSON() {
|
||||
const json = super.export_as_JSON(...arguments);
|
||||
json.sale_order_origin_id = this.sale_order_origin_id;
|
||||
json.sale_order_line_id = this.sale_order_line_id;
|
||||
json.down_payment_details = this.down_payment_details && JSON.stringify(this.down_payment_details);
|
||||
return json;
|
||||
}
|
||||
get_sale_order(){
|
||||
if(this.sale_order_origin_id) {
|
||||
let value = {
|
||||
'name': this.sale_order_origin_id.name,
|
||||
'details': this.down_payment_details || false
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
export_for_printing() {
|
||||
var json = super.export_for_printing(...arguments);
|
||||
json.down_payment_details = this.down_payment_details;
|
||||
if (this.sale_order_origin_id) {
|
||||
json.so_reference = this.sale_order_origin_id.name;
|
||||
}
|
||||
return json;
|
||||
}
|
||||
/**
|
||||
* Set quantity based on the give sale order line.
|
||||
* @param {'sale.order.line'} saleOrderLine
|
||||
*/
|
||||
setQuantityFromSOL(saleOrderLine) {
|
||||
if (this.product.type === 'service' && !['sent', 'draft'].includes(this.sale_order_origin_id.state)) {
|
||||
this.set_quantity(saleOrderLine.qty_to_invoice);
|
||||
} else {
|
||||
this.set_quantity(saleOrderLine.product_uom_qty - Math.max(saleOrderLine.qty_delivered, saleOrderLine.qty_invoiced));
|
||||
}
|
||||
}
|
||||
}
|
||||
Registries.Model.extend(Orderline, PosSaleOrderline);
|
||||
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue