仅当$ bean-> status更改时,逻辑钩子才会触发

时间:2020-09-11 10:23:52

标签: php hook sugarcrm suitecrm

我想实现一个将发票状态更改为“已验证”时触发的Sugar逻辑挂钩。
这是我的逻辑钩子:

<?php
$hook_version = 1; 
$hook_array = Array(); 
$hook_array['after_save'] = Array(); 
$hook_array['after_save'][] = Array(1, 'status invoices Changes', '/var/www/html/suitecrm/modules/AOS_Invoices/AOS_LogicHooks.php','AOS_LogicHooks', 'statusInvoicesChanges'); 
?>

这是我的动作课:
<?php class AOS_LogicHooks {
 public function statusInvoicesChanges (SugarBean $bean, $event, $arguments){
if($bean->status == 'Validated' && $bean->fetched_row->status <> $bean->status){ 
$GLOBALS['log']->fatal("Status has been changed");
}}}
?>  


我想念什么?

1 个答案:

答案 0 :(得分:1)

我们都犯了一个简单的错误,读取的行是一个数组,因此您不能将内容作为属性访问。

我刚刚测试了一下,效果很好!看看:

```@(Html.Kendo().Grid(Model.SpecificRequirementList)
                                    .Name("SpecificationRequirementDetails")
                                            .Columns(columns =>
                                            {
                                                columns.Bound(p => p.Id).Visible(false);
                                                columns.Bound(p => p.SpecificRequirement).Title("Specific Requirements").HtmlAttributes(new { style = "text-align:left;", @title = "#= SpecificRequirement#" }).Width("10%");
                                                columns.Bound(p => p.Description).Title("Description").Width("10%").HtmlAttributes(new { style = "text-align:left;", @title = "#= Description#" }).Width("10%");
                                                //columns.ForeignKey(o => o.Uom, Model.UomCollection, "Value", "Text").Title("UOM").HeaderHtmlAttributes(new { style = "text-align: left" }).Width(50).Visible(true);
                                                columns.ForeignKey(p => p.Uom, (System.Collections.IEnumerable)ViewBag.MyList, "Value", "Text").Width(60);
                                                columns.Bound(p => p.Modifiedby).Title("Modified By").Width("5%").HtmlAttributes(new { style = "text-align:left;", @title = "#= Modifiedby#" }).Width("5%");
                                                columns.Bound(p => p.ModifiedOn).Title("Modified On").Width("5%").HtmlAttributes(new { style = "text-align:left;", @title = "#= ModifiedOn#" }).Width("5%");
                                                columns.Bound(p => p.Active).Title("Active").Width(20).ClientTemplate("<input type='checkbox'  class='clscheckdactive'   id='checkedActive' name='checkedActive' # if (Active=='Y') { #checked='checked'# } else {Active=='N'}# disabled='true' value= '#= Id #'  />")
                                                 .Filterable(false);
                                            })
                                                                          .Selectable()
                                                                          .Navigatable()
                                                                          .Scrollable()
                                                                           .Filterable(KendoConfig.FilterConfiguration)
                                                                          .Editable(e => e.Mode(GridEditMode.InCell).Enabled(true))
                                                                          .Reorderable(reorder => reorder.Columns(true))
                                                                           .Resizable(resize => resize.Columns(true))
                                                                          .DataSource(dataSource => dataSource
                                                                            .Ajax()
                                                                            .Batch(true)
                                                                            //.PageSize(20)
                                                                            .Model(model =>
                                                                            {
                                                                                model.Id(p => p.Id);
                                                                                model.Field(p => p.SpecificRequirement).Editable(true);
                                                                                model.Field(p => p.Description).Editable(true);
                                                                                model.Field(p => p.Active).Editable(false);
                                                                                model.Field(p => p.Modifiedby).Editable(false);
                                                                                model.Field(p => p.ModifiedOn).Editable(false);
                                                                            })
                                                .Read(read => read.Action("GetSpecificationRequirements", "SpecificRequirement"))
                                                                    )
                                                                    .Events(e => e.DataBound("onDataboundRequirementsGrid").Edit("OnEditGrid"))
)```