hive_sales_sync_costarica/models/docr/sale.py
Marvin Vallecillo a2663d15be First commit
2024-07-17 04:19:28 -06:00

67 lines
2.5 KiB
Python

from .coupon import SaleCouponModel
from .items import ItemModel
from .payment import PaymentModel
from orm import fields, model
class SaleModel(model.Model):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.customer = fields.FixedValue(value=3475)
self.vendor = fields.FixedValue(value=587)
self.uuid = fields.ThisModelValue(db_column='OrderUUID')
self.branch = fields.ThisModelValue(db_column='Location_Code')
self.pos = fields.NullValue()
self.order_num = fields.ThisModelValue(db_column='Order_Number')
self.doc_type = fields.FixedValue(value=4)
self.generated_dt = fields.ThisModelDateTimeValue(db_column='Added')
self.shift_dt = fields.ThisModelDateTimeValue(db_column='Order_Date')
self.cost = fields.ThisModelDecimalValue(
db_column='OrderIdealFoodCost', decimal_places=4
)
self.net_amt = fields.ThisModelDecimalValue(
db_column='SubTotal', decimal_places=4
)
self.tax_amt = fields.ThisModelDecimalValue(
db_column='Sales_Tax1', decimal_places=4
)
self.total_amt = fields.ThisModelDecimalValue(
db_column='OrderFinalPrice', decimal_places=4
)
self.discounts_amt = fields.ThisModelDecimalValue(
db_column='OrderLineDiscountAmt', decimal_places=4
)
self.official_doc = fields.One2OneValue(
db_column='ReceiptNumber',
db_table='GovernmentReceipt.dbo.ReceiptHistory',
join=(
('Order_Number', 'OrderNumber'),
('Order_Date', 'OrderDate'),
('Location_Code', 'LocationCode')
),
raise_not_found_error=False
)
self.delivery_channel = fields.One2OneValue(
db_column='Description',
db_table='pos.dbo.ServiceMethods',
join=(
('Location_Code', 'Location_Code'),
('Order_Type_Code', 'ServiceMethodCode')
)
)
self.payments = PaymentModel(
['Location_Code', 'Order_Date', 'Order_Number']
)
self.items = ItemModel(
['Location_Code', 'Order_Date', 'Order_Number']
)
self.discounts = SaleCouponModel(
['Location_Code', 'Order_Date', 'Order_Number'],
raise_not_found_error=False
)
class Conf:
db_table = 'pos.dbo.Orders'
filters = ('Location_Code', 'Order_Date', 'Order_Number')
log_table = 'pos.dbo.hive_sales'