یکی از مهمترین بخشهای سیستمهای اطلاعات مدیریت ارتباط بین دادهها و محاسبه پذیربودن آنها است. در اودوو هم این امکان فراهم شده. میخواهم بدانم که در اودوو ۱۸ این کار چگونه انجام میشود؟
1 پاسخ
Odoo روشها و راهکارهای محاسباتی را ارائه می دهد که به محاسبه از برخی فیلدهای دیگر کمک می کند. درست مانند تعریف هر فیلد معمولی دیگری به همراه سایر پارامترها یک پارامتر جدید برای تعیین تابع محاسبه اضافه شده است. فیلدهای محاسبه شده می تواند مستقیماً ذخیره شود و مستقیماً از پایگاه داده بازیابی شود.
در این رابطه دکوراتورهای @api.depends به محاسبه کمک میکند تا دقیقا مشخص شود که محاسبات باید بر اساس چه دادههایی انجام شود. دکوراتورهایی که برای این کارها استفاده میشوند محدود هستند. در اینجا اشارهای به این موضوع میکنم تا در ادامه مطالعههای خودتون راحتر بتونید مطالب رو دنبال کنید:
@api.constrains
با استفاده از دکوراتور میتونیم شرطهایی رو روی فیلدها تعیین کنیم. مثلا اینکه فرمت یک متن باید خاص باشد و یا اینکه یه رابطهای با فیلد دیگه باید داشته باشه. سادهترین حالت فرض کنید که یک فیلد در صورتی که فیلد دیگری تیک خورده باشد اجباری است.
@api.depends
فیلدهای مستقیم و یا غیر مستقیم را تعیین میکند که محاسبات یک فیلد دیگر به انها نیاز دارد. مثلا برای محاسبه سود باید قیمت فروش و قیمت خرید کالا موجود باشد. این فیلدها را با استفاده از این دکوراتور تعیین میکنید.
@api.onchange
برای مدیریت دادهها در فرم استفاده میشود. مثلا در یک فرم با تغییر یک فیلد سایر فیلدها باید به روز شود. نکته: رکوردهایی که وارد میشود همگی مجازی است. در مورد استفاده از این دکوریتور خیلی باید مراقب باشید. همواره به یاد داشته باشید که این دکوریتور روی فرم کار میکند.