package nc.ui.pu.m25.action;

import java.awt.event.ActionEvent;

import nc.bs.framework.common.NCLocator;
import nc.itf.arap.payablebill.IPayablebillItf;
import nc.itf.scmpub.reference.uap.group.SysInitGroupQuery;
import nc.ui.pubapp.pub.common.context.PFlowContext;
import nc.ui.pubapp.uif2app.actions.pflow.ScriptPFlowAction;
import nc.ui.scmpub.action.SCMActionInitializer;
import nc.ui.uif2.UIState;
import nc.vo.ml.NCLangRes4VoTransl;
import nc.vo.pu.m25.entity.InvoiceVO;
import nc.vo.pu.m25.enumeration.InvoiceBillAction;
import nc.vo.pu.m25.env.InvoiceUIToBSEnv;
import nc.vo.pub.AggregatedValueObject;
import nc.vo.pub.lang.UFBoolean;
import nc.vo.pubapp.pattern.exception.ExceptionUtils;
import nc.vo.pubapp.pflow.PfUserObject; import org.apache.commons.lang.ArrayUtils; public class InvoiceCancelSendApAction
extends ScriptPFlowAction
{
private static final long serialVersionUID = 4553662148501234750L; public InvoiceCancelSendApAction()
{
SCMActionInitializer.initializeAction(this, "CancelToAP");
} public void doAction(ActionEvent e)
throws Exception
{
if (!SysInitGroupQuery.isAPEnabled()) {
ExceptionUtils.wrappBusinessException(NCLangRes4VoTransl.getNCLangRes().getStrByID("4004050_0", "04004050-0001"));
}
super.doAction(e); //add by@陈志锋 2015-12-26 取消应付单时更新中间表状态字段 begin
InvoiceVO vo = (InvoiceVO)getModel().getSelectedData();
Object[] vos = getModel().getSelectedOperaDatas();
IPayablebillItf itf = NCLocator.getInstance().lookup(IPayablebillItf.class);
for (int i = 0; i < vos.length; i++) {
InvoiceVO objVO = (InvoiceVO) vos[i];
if(objVO != null){
String pk = objVO.getParent().getPrimaryKey();
itf.deteleInfoMiddle(pk);
}
}
//add by@陈志锋 2015-12-26 取消应付单时更新中间表状态字段 end } protected void beforeCheck(Object vo)
{
super.beforeCheck(vo);
} protected void fillUpContext(PFlowContext context)
{
super.fillUpContext(context);
AggregatedValueObject[] vos = context.getBillVos();
if (ArrayUtils.isEmpty(vos)) {
return;
}
PfUserObject[] usrObjs = new PfUserObject[vos.length];
PfUserObject usrObj = new PfUserObject();
InvoiceUIToBSEnv env = new InvoiceUIToBSEnv();
env.setTrigger(InvoiceBillAction.CANCELSENDAP);
env.setBManual(UFBoolean.TRUE);
usrObj.setUserObject(env);
for (int i = 0; i < usrObjs.length; i++) {
usrObjs[i] = usrObj;
}
context.setUserObjs(usrObjs);
} protected boolean isActionEnable()
{
boolean isEnable = true;
isEnable &= ((UIState.NOT_EDIT == getModel().getUiState()) && (null != getModel().getSelectedData()));
if (isEnable)
{
InvoiceVO vo = (InvoiceVO)getModel().getSelectedData();
Object[] vos = getModel().getSelectedOperaDatas(); isEnable &= ((vo.getParentVO().getBapflag().booleanValue()) || ((null != vos) && (1 < vos.length)));
}
return isEnable;
}
}

  

InvoiceCancelSendApAction的更多相关文章

随机推荐

  1. CA1060

    Move P/Invokes to NativeMethods class 规则描述: 平台调用服务访问非托管代码. 平台调用方法(使用了System.Runtime.InteropServices. ...

  2. C# Asp.net中的AOP框架 Microsoft.CCI, Mono.Cecil, Typemock Open-AOP API, PostSharp -摘自网络 (可以利用反射 Attribute 进行面向切面编程 可以用在记录整个方法的Log方面)

    Both Microsoft.CCI and Mono.Cecil are low-level, and don't validate produced assemblies. It takes lo ...

  3. Linux下用hostapd架无线AP

    Published by 荒野无灯 on 2011-10-08 00:56:02 under 服务器/MySQL Tags: 路由,无线AP,hostapd 34452 views 本文将介绍在lin ...

  4. A Tour of Go Methods continued

    In fact, you can define a method on any type you define in your package, not just structs. You canno ...

  5. hdoj 5194 DZY Loves Balls【规律&&gcd】

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5194 题意:给你n个黑球,m个白球,每次从中随机抽取一个,如果抽到黑球记为1如果抽出来白球记为0,让你 ...

  6. configparser

    configparser configparser模块是python中用来处理类似于windows的ini格式文件, 一个ini文件的格式 [section] key = value

  7. C#实现异步编程的两个简单机制(异步委托&定时器)及Thread实现多线程

    创建线程的常用方法:异步委托.定时器.Thread类 理解程序.进程.线程三者之间的区别:简而言之,一个程序至少有一个进程,一个进程至少有一个线程进程就是在内存中运行的程序(即运行着的程序):一个进程 ...

  8. CentOS6.5安装telnet

    原文地址:http://www.cnblogs.com/zhongshengzhen/ 1.检查是否已经安装telnet [root@localhost ~]# rpm -qa | grep teln ...

  9. 使用JavaScript实现分页效果

    应公司需求,有时需要制作静态页面网站,而一旦涉及到文章的分页,实现起来非常麻烦,自己又刚入门,对js不是很熟悉,所以就拿来练练手. 首先页面结构如下,分别展示数据跟分页: <!DOCTYPE h ...

  10. C#-获取datagriview选中行中某一列的值

    获取选中行中某一列的值: int index = dg_Product.CurrentRow.Index; //取得选中行的索引 txt_ProductId.Text = dg_Product.Row ...