精华内容
下载资源
问答
  • <br />企业信息管理系统(以下简称ERP)中的业务单据,在日常操作中不无避免的会发生各种各样的错误。在这里,我总结为以下三点: 1.  单据表头错误;如:供应商(或客户)或业务员选择错误等 2.  ...

    企业信息管理系统(以下简称ERP)中的业务单据,在日常操作中不无避免的会发生各种各样的错误。在这里,我总结为以下三点:

    1.         单据表头错误;如:供应商(或客户)或业务员选择错误等

    2.         单据条目数量录入错误;

    3.         单据条目单价错误;

    即然发生了错误,那就需要去纠正。至于采取什么样的纠错手法,不同的系统有不同的方法,也各自有各自优势。而处理方法无外乎统一反冲法或个个击破法。大型ERP系统一般都是采用统一反冲法,原因很简单:能用大型ERP系统的企业大部为大型企业或中型企业,这些企业的管理比较规范,对业务单据错误信息修改自然要求比较严格,不允许对原始单据直接修改,只可采用单据对冲做法。顾名思义,个个击破法即是对以上所列的3项错误,采用不同操作方式,分别进行修改,一般小型ERP系统采用居多,主要面向的用户为中小企业。这些企业一般财务要求不严格,重在错误处理简便,对数影响面越小越好,允许对原始单据直接修改。

    所谓要规范,便有失灵活;要灵活,便有失规范。对企业管理如此,对ERP系统更是如此。

    统一反冲法,一操作便知怎么个回事,至于系统程序实现也比较简单,这里就不再累述。在这里呢,就来谈一谈个个击破法的系统实现及功能操作应该如何处理。

    1.         单据表头错误处理;表头错误一般多为选错供应商(或客户)、业务员、归属部门,单据备注等。业务员、归属部门、单据备注错误修改系统实现比较简单,直接修改即可,不需要调整任何数据;而供应商(或客户)的修改,需要动一番手脚,因为牵涉到称客户往来账的调整。总体来说系统实现及功能操作还是比较简单的。

    2.         单据条目数量错误处理;所有业务单据涉及数量错误,一律采用单据反冲的手法,没有任何其它选择。主要原因还是在于系统系统实现机制(注:出库数量大于库存数量不允许单据过账的限制),采购进货及销售退货这些入库类单据还好说,碰到采购退货或销售出库这些出库单据就难以处理了,索性不如统一思想,采用一致做法单据反冲法。

    3.         单据条目单价错误处理;大部分系统(采用移动加权平均计算成本的系统)是不提供单价修改的功能,一旦单价的修改就需要重新计算该单据日期之后所有单据的成本。涉及数据量比较大(不同的数据库设计,会有所不同),如果业务量比较大的ERP系统更是难以控制重算过程中的突发事件。虽然难以实现,总归是有方法可以实现,这里就谈一谈如何实现业务单据条目单价修改。不同人,不同的系统可能有不同的做法。我所提倡的做法是:先修改单价,同时纠证供应商(或客户)对应的客户往来账款,然后重新入账本期所有单据;

    至于为什么要这样做,我给出以下解释:首先,修改单价与纠正客户往来账,只会对单一的单据和供应商(或客户)的往来账有所影响,单不会影响整套系统数据的准确性,唯一不准确的地方就是修改单据日期以后单据的成本存在微小的差异,总体来看还是正确的, 这时统计销售单据利润同样会有微小的差异。然后重新过入账本期所有单据,这一步操作影响面比较大,基本上本期的所有数据要重新计算,而且所有操作员要停止对系统的任何操作,一旦重算过程中出现错误,整套账就会错,所以执行这一步的时候要相当慎重。你可能会问,即然重算所有单据有这么大风险,为什么不只重算修改日期之后的单据,或者只重算对成本有影响的单据;主要是因为程序实现较前种情况复杂的多,要做大量的单据标示和数据推算,在程序执行效率、运算量方面依然不低于前面的做法。两利相权取其重,两害相权取其轻,自然要采用前者了。

     

     

    注:以上解决方案主是真对采用正规财务,并且用移动加权平均计算成本的管理系统

    展开全文
  • 2019独角兽企业重金招聘Python工程师标准>>> ...

    ERP系统中已入账业务单据如何修改

      企业信息管理系统(以下简称ERP)中的业务单据,在日常操作中不无避免的会发生各种各样的错误。在这里,总结为以下三点:

      1.单据表头错误;如:供应商(或客户)或业务员选择错误等

      2.单据条目数量录入错误;

      3.单据条目单价错误;

    即然发生了错误,那就需要去纠正。至于采取什么样的纠错手法,不同的系统有不同的方法,也各自有各自优势。而处理方法无外乎统一反冲法或个个击破法。 大型ERP系统一般都是采用统一反冲法,原因很简单:能用大型ERP系统的企业大部为大型企业或中型企业,这些企业的管理比较规范,对业务单据错误信息修 改自然要求比较严格,不允许对原始单据直接修改,只可采用单据对冲做法。顾名思义,个个击破法即是对以上所列的3项错误,采用不同操作方式,分别进行修 改,一般小型ERP系统采用居多,主要面向的用户为中小企业。这些企业一般财务要求不严格,重在错误处理简便,对数影响面越小越好,允许对原始单据直接修 改。

    更多资讯,请关注新浪微博@青岛一凌网集成有限公司

      所谓要规范,便有失灵活;要灵活,便有失规范。对企业管理如此,对ERP系统更是如此。

      统一反冲法,一操作便知怎么个回事,至于系统程序实现也比较简单,这里就不再累述。在这里呢,就来谈一谈个个击破法的系统实现及功能操作应该如何处理。

      1.单据表头错误处理;表头错误一般多为选错供应商(或客户)、业务员、归属部门,单据备注等。业务员、归属部门、单据备注错误修改系统实现比较简 单,直接修改即可,不需要调整任何数据;而供应商(或客户)的修改,需要动一番手脚,因为牵涉到称客户往来账的调整。总体来说系统实现及功能操作还是比较 简单的。

      2.单据条目数量错误处理;所有业务单据涉及数量错误,一律采用单据反冲的手法,没有任何其它选择。主要原因还是在于系统系统实现机制(注:出库数量 大于库存数量不允许单据过账的限制),采购进货及销售退货这些入库类单据还好说,碰到采购退货或销售出库这些出库单据就难以处理了,索性不如统一思想,采 用一致做法—单据反冲法。

      3.单据条目单价错误处理;大部分系统(采用移动加权平均计算成本的系统)是不提供单价修改的功能,一旦单价的修改就需要重新计算该单据日期之后所有 单据的成本。涉及数据量比较大(不同的数据库设计,会有所不同),如果业务量比较大的ERP系统更是难以控制重算过程中的突发事件。虽然难以实现,总归是 有方法可以实现,这里就谈一谈如何实现业务单据条目单价修改。不同人,不同的系统可能有不同的做法。我所提倡的做法是:先修改单价,同时纠证供应商(或客 户)对应的客户往来账款,然后重新入账本期所有单据;

      至于为什么要这样做,我给出以下解释:首先,修改单价与纠正客户往来账,只会对单一的单据和供应商(或客户)的往来账有所影响,单不会影响整套系统数 据的准确性,唯一不准确的地方就是修改单据日期以后单据的成本存在微小的差异,总体来看还是正确的,这时统计销售单据利润同样会有微小的差异。然后重新过 入账本期所有单据,这一步操作影响面比较大,基本上本期的所有数据要重新计算,而且所有操作员要停止对系统的任何操作,一旦重算过程中出现错误,整套账就 会错,所以执行这一步的时候要相当慎重。你可能会问,即然重算所有单据有这么大风险,为什么不只重算修改日期之后的单据,或者只重算对成本有影响的单据; 主要是因为程序实现较前种情况复杂的多,要做大量的单据标示和数据推算,在程序执行效率、运算量方面依然不低于前面的做法。两利相权取其重,两害相权取其 轻,自然要采用前者了。

    文章转载自一凌网SAAS平台  http://www.qdsaas.com/a/ERPqijianban/提供


    转载于:https://my.oschina.net/lingnet/blog/292486

    展开全文
  • 1.销售出库单设计界面如下: 要求实现功能点: 1界面本身和销售订单界面类似,比如一些初始值,可以实现选单,实现下推。 2审核的时候更改即时库存,并生成应收应收清单。 3反审核的时候判断应收清单是否有...

    1.销售出库单设计界面如下:

    要求实现功能点:

    1界面本身和销售订单界面类似,比如一些初始值,可以实现选单,实现下推。

    2审核的时候更改即时库存,并生成应收应收清单。

    3反审核的时候判断应收清单是否有相应的收款记录,如果没有,则回写即时库存审核前状态,并删除这条应收记录。

    客户端代码如下:

     /// <summary>
        /// 销售出库单
        /// </summary>
        class SaleChuku : SCMBaseBill
        {
            //控件声明定义
            private Jeez.Control.JeezUltraTextBox.JeezUltraTextBox txWLDW;//往来单位
            private Jeez.Control.JeezUltraTextBox.JeezUltraTextBox txOrg;//组织机构
            private Jeez.Control.JeezUltraTextBox.JeezUltraTextBox txDept;//部门
            private Jeez.Control.JeezUltraTextBox.JeezUltraTextBox txEmployee;//业务员
    
            private Jeez.Control.JeezUltraTextBox.JeezUltraTextBox txBibie;//币别
            private Jeez.Control.JeezNumberTextBox.JeezNumberTextBox txRat;//汇率
            private Jeez.Control.JeezCurrencyTextBox.JeezCurrencyTextBox txYBMoney;//原币金额
            private Jeez.Control.JeezCurrencyTextBox.JeezCurrencyTextBox txYBYF;//原币运费
    
            private Jeez.Control.JeezCurrencyTextBox.JeezCurrencyTextBox txRMBMoney;//人民币金额
            private Jeez.Control.JeezCurrencyTextBox.JeezCurrencyTextBox txRMBYF;//人民币运费
    
            private Jeez.Control.JeezUltraCalendarCombo.JeezUltraCalendarCombo dtDate;//日期
    
    
    
            private Jeez.Control.JeezGrid.JeezGrid gridZY;//明细grid
            private Jeez.Control.JeezUltraTabControl.JeezUltraTabControl pagecontrol1 = null;//下方页框控件
            private Jeez.Control.JeezGrid.JeezGrid gridKucun;//库存
            private Jeez.Control.JeezGrid.JeezGrid gridBaojiaHistory;//历史报价
            private bool isLoading = true;
            //定义几个初始化常见的值
            private static int BibieID = 0;//默认币别ID
            private static int WLDWID = 0;//默认往来单位ID
            private static bool IsNext = false;//是否下推,下推过来的数据,单价不参与计算
    
    
    
    
            /// <summary>
            /// 加载控件,以及控件相关事件定义
            /// </summary>
            /// <returns></returns>
            public override bool LoadUI()
            {
                bool b = base.LoadUI();
                if (b)
                {
                    txWLDW = base.GetControlByName("JeezTextBox5") as Jeez.Control.JeezUltraTextBox.JeezUltraTextBox;
                    txOrg = base.GetControlByName("JeezTextBox3") as Jeez.Control.JeezUltraTextBox.JeezUltraTextBox;
                    txDept = base.GetControlByName("JeezTextBox4") as Jeez.Control.JeezUltraTextBox.JeezUltraTextBox;
                    txEmployee = base.GetControlByName("JeezTextBox6") as Jeez.Control.JeezUltraTextBox.JeezUltraTextBox;
                    txBibie = base.GetControlByName("JeezTextBox8") as Jeez.Control.JeezUltraTextBox.JeezUltraTextBox;
    
                    txRat = base.GetControlByName("JeezNumberTextBox1") as Jeez.Control.JeezNumberTextBox.JeezNumberTextBox;
                    txYBMoney = base.GetControlByName("JeezCurrencyTextBox1") as Jeez.Control.JeezCurrencyTextBox.JeezCurrencyTextBox;
                    txYBYF = base.GetControlByName("JeezCurrencyTextBox2") as Jeez.Control.JeezCurrencyTextBox.JeezCurrencyTextBox;
                    txRMBMoney = base.GetControlByName("JeezCurrencyTextBox3") as Jeez.Control.JeezCurrencyTextBox.JeezCurrencyTextBox;
                    txRMBYF = base.GetControlByName("JeezCurrencyTextBox4") as Jeez.Control.JeezCurrencyTextBox.JeezCurrencyTextBox;
                    gridZY = base.GetControlByName("JeezGrid1") as Jeez.Control.JeezGrid.JeezGrid;
                    dtDate = base.GetControlByName("JeezCalendarCombo1") as Jeez.Control.JeezUltraCalendarCombo.JeezUltraCalendarCombo;
                    pagecontrol1 = base.GetControlByName("JeezTabControl1") as Jeez.Control.JeezUltraTabControl.JeezUltraTabControl;
                    gridKucun = base.GetControlByName("gridKucun") as Jeez.Control.JeezGrid.JeezGrid;
                    gridBaojiaHistory = base.GetControlByName("gridRefHistory") as Jeez.Control.JeezGrid.JeezGrid;
    
    
                }
                return b;
            }
    
            protected override void BillUI_Load(object sender, EventArgs e)
            {
                base.BillUI_Load(sender, e);
                if (this.entityobject == null)
                {
                    //装载报价单下推过来的数据
                    if (UserData != null && UserData is Hashtable)
                    {
                        this.gridZY.RowCount = 0;
                        Hashtable ht = UserData as Hashtable;
                        ArrayList arr = ht["DetailList"] as ArrayList;
                        EntityObjectFactory eof = EntityObjectFactory.GetInstance(objContext, EntityIDEnum.SaleOrderDetail);
                        int i = 0;
                        foreach (Hashtable htv in arr)
                        {
                            EntityObject eoChild = eof.FindObject(Convert.ToInt32(htv["DetailID"]));
    
                            this.gridZY.InsertRow(i);
                            this.gridZY.Rows[i].Cells["UpBillNo"].Value = eoChild.GetRelatedObject("SaleOrderID").GetProperty("BillNO");
                            EntityObject eoOrder = eoChild.GetRelatedObject("SaleOrderID");
                            if (eoOrder != null && i == 0)
                            {
                                //保证只执行一次
                                txOrg.Tag = eoOrder.GetRelatedObject("OrganizationID").PrimaryKeyValue;
                                txOrg.VALUE = eoOrder.GetRelatedObject("OrganizationID").ToString();
    
                                txDept.Tag = eoOrder.GetRelatedObject("DepartMentID").PrimaryKeyValue;
                                txDept.VALUE = eoOrder.GetRelatedObject("DepartMentID").ToString();
    
                                txWLDW.Tag = eoOrder.GetRelatedObject("RefUnitID").PrimaryKeyValue;
                                txWLDW.VALUE = eoOrder.GetRelatedObject("RefUnitID").ToString();
    
                                txEmployee.Tag = eoOrder.GetRelatedObject("EmployeeID").PrimaryKeyValue;
                                txEmployee.VALUE = eoOrder.GetRelatedObject("EmployeeID").ToString();
    
                                txBibie.Tag = eoOrder.GetRelatedObject("CurrencyID").PrimaryKeyValue;
                                txBibie.VALUE = eoOrder.GetRelatedObject("CurrencyID").ToString();
    
    
    
                                txRat.PropertyPage.Value = (decimal)eoOrder.GetProperty("Rate");
                                txYBMoney.PropertyPage.Value = (decimal)eoOrder.GetProperty("Amount");
                                txRMBMoney.PropertyPage.Value = (decimal)eoOrder.GetProperty("RAmount");
                             
                                  txYBYF.PropertyPage.Value = (decimal)eoOrder.GetProperty("YAmount");
                                txRMBYF.PropertyPage.Value = (decimal)eoOrder.GetProperty("RYAmount");
                              
    
                            }
    
                            this.gridZY.Rows[i].Cells["MatID"].Tag = eoChild.GetRelatedObject("MatID").PrimaryKeyValue;
                            this.gridZY.Rows[i].Cells["MatID"].Value = eoChild.GetRelatedObject("MatID").ToString();
    
                            this.gridZY.Rows[i].Cells["JiliangdanweiID"].Tag = eoChild.GetRelatedObject("JiliangdanweiID").PrimaryKeyValue;
                            this.gridZY.Rows[i].Cells["JiliangdanweiID"].Value = eoChild.GetRelatedObject("JiliangdanweiID").ToString();
    
                            this.gridZY.Rows[i].Cells["Danjia"].Value = eoChild.GetProperty("Danjia");
                            this.gridZY.Rows[i].Cells["UpMany"].Value = eoChild.GetProperty("Many");
                            this.gridZY.Rows[i].Cells["SMany"].Value = eoChild.GetProperty("SMany");
                            this.gridZY.Rows[i].Cells["Many"].Value = htv["Many"];
                            this.gridZY.Rows[i].Cells["RDanjia"].Value = eoChild.GetProperty("RDanjia");
    
    
                            this.gridZY.Rows[i].Cells["Amount"].Value = (decimal)eoChild.GetProperty("Danjia") * (decimal)htv["Many"]; ;
                            this.gridZY.Rows[i].Cells["RAmount"].Value = (decimal)eoChild.GetProperty("Danjia") * (decimal)htv["Many"] *(decimal)eoOrder.GetProperty("Rate"); 
                            this.gridZY.Rows[i].Cells["SaleOrderDetailID"].Value = eoChild.PrimaryKeyValue; 
    
                            this.gridZY.Rows[i].Cells["Date"].Value = eoChild.GetProperty("Date"); ;
    
                            i++;
                        }
                         
                        this.UserData = null;
                    }
                    else
                    {
                        InitByDefineOrder();
    
                    }
                }
            }
            /// <summary>
            /// 指定服务端调用的类
            /// </summary>
            /// <param name="ServerDllName"></param>
            /// <param name="ServerClassName"></param>
            protected override void SetInvokeBusiLogicName(out string ServerDllName, out string ServerClassName)
            {
                ServerDllName = "FolyerERPServer.dll";
                ServerClassName = "FolyerERPServer.FolyerERPServer_SCM.SaleChukuServer";
            }
            /// <summary>
            /// 设置默认值
            /// </summary>
            void InitByDefineOrder()
            {
                if (!Jeez.Common.UI.AccessControl.CheckACLWithNoMsg(EntityRightIDEnum.销售出库管理查看价格))
                {
    
                    this.gridZY.Rows.Band.Columns["Danjia"].Hidden = true;
                    this.gridZY.Rows.Band.Columns["Amount"].Hidden = true;
                    this.gridZY.Rows.Band.Columns["RDanjia"].Hidden = true;
                    this.gridZY.Rows.Band.Columns["RAmount"].Hidden = true;
                     
                    txRMBMoney.Visible = false;
                    txRMBYF.Visible = false;
                    txYBMoney.Visible = false;
                    txYBYF.Visible = false;
                }
                else
                {
                    this.gridZY.Rows.Band.Columns["Danjia"].Hidden = false;
                    this.gridZY.Rows.Band.Columns["Amount"].Hidden = false;
                    this.gridZY.Rows.Band.Columns["RDanjia"].Hidden = false;
                    this.gridZY.Rows.Band.Columns["RAmount"].Hidden = false;
    
                    
                    txRMBMoney.Visible = true;
                    txRMBYF.Visible = true;
                    txYBMoney.Visible = true;
                    txYBYF.Visible = true;
    
                }
    
            }
    
            protected override void LoadEntityDataToControl()
            {
                base.LoadEntityDataToControl();
                InitByDefineOrder();
            }
    
        }
    View Code

    服务端代码如下:

     /// <summary>
        /// 销售出库服务端类
        /// </summary>
        class SaleChukuServer : SCMBaseServer
        {
    
            protected override bool CheckValidate(EntityObject eo, bool IsCheck, ref string strMessage)
            {
                bool b = base.CheckValidate(eo, IsCheck, ref strMessage);
                if (b)
                {
                    if (IsCheck)
                    { 
                        //审核执行自己的业务逻辑扣库存动作,生成应收清单
                        //更新即时库存表数据
                        EntityObjectList eolDetail = eo.GetChildEntityObjects(EntityIDEnum.SaleChukuDetail);//明细物料
                        EntityObjectFactory eof = EntityObjectFactory.GetInstance(this.Context, EntityIDEnum.NowKucun);//库存 
                        foreach (EntityObject eoDetail in eolDetail)
                        {
    
                            EntityObject eoMalUpdate = eof.FindFirst("MatID={0} and WareHouseID={1} and JiliangdanweiID={2} ", eoDetail.GetProperty("MatID"), eoDetail.GetProperty("WareHouseID"), eoDetail.GetProperty("JiliangdanweiID"));
                            float currentQty = 0f;
                            float currentAmount = 0f;
                            if (eoMalUpdate != null)
                            {
                                currentQty = float.Parse(eoMalUpdate.GetProperty("Many").ToString());
                                currentAmount = float.Parse(eoMalUpdate.GetProperty("Amount").ToString());
                                if (currentQty >= float.Parse(eoDetail.GetProperty("Many").ToString()))
                                {
                                    eoMalUpdate.SetProperty("Many", currentQty - float.Parse(eoDetail.GetProperty("Many").ToString()));
                                    eoMalUpdate.SetProperty("Amount", currentAmount - float.Parse(eoDetail.GetProperty("Amount").ToString()));
                                    if ((currentQty - float.Parse(eoDetail.GetProperty("Many").ToString())) != 0)
                                        eoMalUpdate.SetProperty("Danjia", (currentAmount - float.Parse(eoDetail.GetProperty("Amount").ToString())) / (currentQty - float.Parse(eoDetail.GetProperty("Many").ToString())));
                                }
    
    
                            }
                            else
                            {
                                strMessage = string.Format("库存里面没有该物料{0},无法出库", eoDetail.GetRelatedObject("MatID").ToString());
                                return false; 
                            } 
                        }
    
                        //生成应收清单
                        EntityObjectFactory eofYingshou = EntityObjectFactory.GetInstance(Context, EntityIDEnum.Yingshou);
                        EntityObject eoYingshou = eofYingshou.CreateObject();
                        eoYingshou.SetProperty("OrganizationID", eo.GetProperty("OrganizationID"));
                        eoYingshou.SetProperty("BillNo", eo.GetProperty("BillNo"));
                        eoYingshou.SetProperty("BillID", eo.PrimaryKeyValue);
                        eoYingshou.SetProperty("BillName", "销售出库单");
                        eoYingshou.SetProperty("RefUnitID", eo.GetProperty("RefUnitID"));
                        eoYingshou.SetProperty("Amount", eo.GetProperty("Amount"));
                        eoYingshou.SetProperty("CurrencyID", eo.GetProperty("CurrencyID"));
                        eoYingshou.SetProperty("Rate", eo.GetProperty("Rate"));
                        eoYingshou.SetProperty("YAmount", 0m);
                        eoYingshou.SetProperty("WAmount", eo.GetProperty("Amount"));
                        eoYingshou.SetProperty("Description", "出库单审核自动产生");
                        eoYingshou.SetProperty("WAmount", eo.GetProperty("Amount"));
                        if (eo.GetRelatedObject("EmployeeID")!=null)
                        eoYingshou.SetProperty("EmployeeID", eo.GetRelatedObject("EmployeeID").GetProperty("Name"));
                        eoYingshou.SetProperty("Type", 0);
    
                        Context.SaveChanges();
    
                        return true;
    
                    }
                    else
                    {
                        //反审核执行自己业务逻辑,如果已经下推了,不允许反审核                    
                        if (!ERPServerFunc.IsNextBill(Context, eo, EntityIDEnum.SaleRukuDetail,EntityIDEnum.SaleChukuDetail, "SaleRukuID", "SaleChukuDetailID", ref strMessage))
                            return false;
    
                        if(!ERPServerFunc.IsExitPOPA(Context,eo,EntityIDEnum.Yingshou,"销售出库单",ref strMessage))
                            return false;
                        if (Convert.ToInt32(eo.GetProperty("UseFlag").ToString()) == 1)
                        {
                            strMessage = "库存已经有占用,不允许反审核,请先释放占用在反审核";
                            return false;
                        }
                        eo.SetProperty("UseFlag", 0);//反审核后恢复占用标识
                        Context.SaveChanges();
                    }
    
                }
                return b;
            }
    
    
            /// <summary>
            /// 更新价格,从单据上过来的
            /// </summary>
            public object UpadatePrice(int entiyID)
            {
                StringBuilder strResult = new StringBuilder();
    
                try
                {
                    //先获取当前传过来的id
                    EntityObjectFactory eofParent = EntityObjectFactory.GetInstance(this.Context, EntityIDEnum.SaleOrder);
                    EntityObject eoParent = eofParent.FindObject(entiyID);
    
                    EntityObjectList eolChildDetail = eoParent.GetChildEntityObjects(EntityIDEnum.SaleOrderDetail);
    
                    //获取销售价格表
                    EntityObjectFactory eofSalePrice = EntityObjectFactory.GetInstance(this.Context, EntityIDEnum.MatSalePrice);
                    int WLDWID = (int)eoParent.GetRelatedObject("RefUnitID").PrimaryKeyValue;
                    int BIBIEID = (int)eoParent.GetRelatedObject("CurrencyID").PrimaryKeyValue;
                    foreach (EntityObject eoChild in eolChildDetail)
                    {
                        int UnitID = (int)eoChild.GetRelatedObject("JiliangdanweiID").PrimaryKeyValue;
                        int MatID = (int)eoChild.GetRelatedObject("MatID").PrimaryKeyValue;
    
                        EntityObject eoSalePrice = eofSalePrice.FindFirst("RefUnitID={0} and CurrencyID={1} and JiliangdanweiID={2} and MatID={3}", WLDWID, BIBIEID, UnitID, MatID);
    
                        if (eoSalePrice == null)
                        {
                            //如果没有价格记录
                            //添加本次价格记录
                            eoSalePrice = eofSalePrice.CreateObject();
                            eoSalePrice.SetProperty("MatID", MatID);
                            eoSalePrice.SetProperty("RefUnitID", WLDWID);
                            eoSalePrice.SetProperty("jiliangdanweiID", UnitID);
                            eoSalePrice.SetProperty("CurrencyID", BIBIEID);
                            eoSalePrice.SetProperty("MinQty", 1.0m);
                            eoSalePrice.SetProperty("Date", eoParent.GetProperty("Date"));
                            eoSalePrice.SetProperty("Danjia", eoChild.GetProperty("Danjia"));
                            eoSalePrice.SetProperty("Description", string.Format("销售订单{0}更新而产生", eoParent.GetProperty("BillNo")));
                            strResult.AppendLine(string.Format(@"物料:{0}单位:{1}:币别:{2}价格更新成功!", eoSalePrice.GetRelatedObject("MatID").ToString(), eoSalePrice.GetRelatedObject("JiliangdanweiID").ToString(), eoSalePrice.GetRelatedObject("CurrencyID").ToString()));
    
                        }
                        else
                        {
                            strResult.AppendLine(string.Format(@"物料:{0}单位:{1}:币别:{2}价格已经存在,无法更新!", eoSalePrice.GetRelatedObject("MatID").ToString(), eoSalePrice.GetRelatedObject("JiliangdanweiID").ToString(), eoSalePrice.GetRelatedObject("CurrencyID").ToString()));
    
                        }
                    }
    
                    Context.SaveChanges();
                }
                catch (Exception ex)
                {
                    return ex.Message;
                }
                return strResult.ToString();
            }
    
            /// <summary>
            /// 更新价格,从一览表上过来的
            /// </summary>
            public object UpadatePrice(Hashtable ht)
            {
                StringBuilder strResult = new StringBuilder();
                try
                {
    
                    ArrayList arr = (ArrayList)ht["childID"];
                    int i = arr.Count; ;
                    for (int j = 0; j < i; j++)
                    {
                        //先获取当前传过来的id
                        int childID = Convert.ToInt32(arr[j].ToString());
    
                        EntityObject eoDetail = EntityObjectFactory.GetInstance(Context, EntityIDEnum.SaleOrderDetail).FindObject(childID);
    
                        //获取销售价格表
                        EntityObjectFactory eofSalePrice = EntityObjectFactory.GetInstance(this.Context, EntityIDEnum.MatSalePrice);
                        int WLDWID = (int)eoDetail.GetRelatedObject("SaleOrderID").GetRelatedObject("RefUnitID").PrimaryKeyValue;
                        int BIBIEID = (int)eoDetail.GetRelatedObject("SaleOrderID").GetRelatedObject("CurrencyID").PrimaryKeyValue;
    
                        int UnitID = (int)eoDetail.GetRelatedObject("JiliangdanweiID").PrimaryKeyValue;
                        int MatID = (int)eoDetail.GetRelatedObject("MatID").PrimaryKeyValue;
    
                        EntityObject eoSalePrice = eofSalePrice.FindFirst("RefUnitID={0} and CurrencyID={1} and JiliangdanweiID={2} and MatID={3}", WLDWID, BIBIEID, UnitID, MatID);
    
                        if (eoSalePrice == null)
                        {
                            //如果没有价格记录
                            //添加本次价格记录
                            eoSalePrice = eofSalePrice.CreateObject();
                            eoSalePrice.SetProperty("MatID", MatID);
                            eoSalePrice.SetProperty("RefUnitID", WLDWID);
                            eoSalePrice.SetProperty("jiliangdanweiID", UnitID);
                            eoSalePrice.SetProperty("CurrencyID", BIBIEID);
                            eoSalePrice.SetProperty("MinQty", 1.0m);
                            eoSalePrice.SetProperty("Date", eoDetail.GetRelatedObject("SaleBaojiaID").GetProperty("Date"));
                            eoSalePrice.SetProperty("Danjia", eoDetail.GetProperty("Danjia"));
                            eoSalePrice.SetProperty("Description", string.Format("销售报价单{0}更新而产生", eoDetail.GetRelatedObject("SaleBaojiaID").GetProperty("BillNo")));
                            strResult.AppendLine(string.Format(@"物料:{0}单位:{1}:币别:{2}价格更改成功!", eoSalePrice.GetRelatedObject("MatID").ToString(), eoSalePrice.GetRelatedObject("JiliangdanweiID").ToString(), eoSalePrice.GetRelatedObject("CurrencyID").ToString()));
    
                        }
                        else
                        {
                            strResult.AppendLine(string.Format(@"物料:{0}单位:{1}:币别:{2}价格已经存在,无法更新!", eoSalePrice.GetRelatedObject("MatID").ToString(), eoSalePrice.GetRelatedObject("JiliangdanweiID").ToString(), eoSalePrice.GetRelatedObject("CurrencyID").ToString()));
    
                        }
    
                    }
                    Context.SaveChanges();
                }
                catch (Exception ex)
                {
                    return ex.Message;
                }
    
                return strResult.ToString();
    
            }
    
    
            /// <summary>
            /// 占用库存,从单据上过来的
            /// </summary>
            public object UseKucun(int entiyID)
            {
    
                //先获取当前传过来的id
                EntityObjectFactory eofOrder = EntityObjectFactory.GetInstance(this.Context, EntityIDEnum.SaleChukuBill);
                EntityObject eoOrder = eofOrder.FindObject(entiyID);
                try
                {
                    if ((int)eoOrder.GetProperty("UseFlag") == 1)
                    {
                        return string.Format(@"销售出库单号:{0}库存已经占用,请不要重新占用!", eoOrder.GetProperty("BillNo"));
                    }
                    else if ((int)eoOrder.GetProperty("UseFlag") == 2)
                    {
                        return string.Format(@"销售出库单号:{0}库存释放占用,请不要重新占用!", eoOrder.GetProperty("BillNo"));
                    }
                    else
                    {
                        EntityObjectList eolChild = eoOrder.GetChildEntityObjects(EntityIDEnum.SaleChukuDetail);
    
                        //获取即时库存表
                        EntityObjectFactory eofKucun = EntityObjectFactory.GetInstance(this.Context, EntityIDEnum.NowKucun);
                        StringBuilder strResult = new StringBuilder();
                        foreach (EntityObject eoChild in eolChild)
                        {
    
                            int UnitID = (int)eoChild.GetRelatedObject("JiliangdanweiID").PrimaryKeyValue;
                            int MatID = (int)eoChild.GetRelatedObject("MatID").PrimaryKeyValue;
    
                            EntityObject eoKucun = eofKucun.FindFirst("JiliangdanweiID={0} and MatID={1}", UnitID, MatID);
    
                            if (eoKucun == null)
                            {
                                //如果没有库存记录
                                strResult.AppendLine(string.Format(@"{0}在库存中没有记录", eoChild.GetRelatedObject("MatID").ToString()));
    
                            }
                            else
                            {
                                decimal oldUseflag = (decimal)eoKucun.GetProperty("CUseMany");
                                eoKucun.SetProperty("CUseMany", oldUseflag + (decimal)eoChild.GetProperty("Many"));
    
                            }
                        }
                        if (strResult.ToString() == "")
                        {   //如果更新成功,则统一占用
                            eoOrder.SetProperty("UseFlag", 1);
                            Context.SaveChanges();
    
                        }
                        else
                        {
                            return strResult.ToString();
                        }
    
                    }
                }
                catch (Exception ex)
                {
                    return ex.Message;
                }
    
                return string.Format(@"销售出库单号:{0}库存占用成功!", eoOrder.GetProperty("BillNo"));
            }
            /// <summary>
            /// 占用库存,从一览表上过来的
            /// </summary>
            public object UseKucun(Hashtable ht)
            {
                StringBuilder strResult = new StringBuilder();
                try
                {
    
                    ArrayList arr = (ArrayList)ht["childID"];
                    int i = arr.Count; ;
                    for (int j = 0; j < i; j++)
                    {
                        //先获取当前传过来的id
                        int childID = Convert.ToInt32(arr[j].ToString());
                        EntityObject eoDetail = EntityObjectFactory.GetInstance(Context, EntityIDEnum.SaleChukuDetail).FindFirst("ID={0}", childID);
                        if (eoDetail != null)
                        {
                            string str = (string)UseKucun(Convert.ToInt32(eoDetail.GetProperty("SaleChukuID").ToString()));
                            strResult.AppendLine(str);
                        }
                    }
                }
                catch (Exception ex)
                {
                    return ex.Message;
                }
    
                return strResult.ToString();
    
            }
    
            /// <summary>
            /// 释放库存,从单据上过来的
            /// </summary>
            public object NoUseKucun(int entiyID)
            {
                //先获取当前传过来的id
                EntityObjectFactory eofOrder = EntityObjectFactory.GetInstance(this.Context, EntityIDEnum.SaleChukuBill);
                EntityObject eoOrder = eofOrder.FindObject(entiyID);
                try
                {
    
                    if ((int)eoOrder.GetProperty("UseFlag") == 2)
                    {
                        return string.Format(@"销售出库单{0}库存已经释放占用,请不要重新释放占用!", eoOrder.GetProperty("BillNo"));
                    }
                    else
                    {
                        EntityObjectList eolChild = eoOrder.GetChildEntityObjects(EntityIDEnum.SaleChukuDetail);
    
                        //获取即时库存表
                        EntityObjectFactory eofKucun = EntityObjectFactory.GetInstance(this.Context, EntityIDEnum.NowKucun);
                        StringBuilder strResult = new StringBuilder();
                        foreach (EntityObject eoChild in eolChild)
                        {
    
                            int UnitID = (int)eoChild.GetRelatedObject("JiliangdanweiID").PrimaryKeyValue;
                            int MatID = (int)eoChild.GetRelatedObject("MatID").PrimaryKeyValue;
    
                            EntityObject eoKucun = eofKucun.FindFirst("JiliangdanweiID={0} and MatID={1}", UnitID, MatID);
    
                            if (eoKucun == null)
                            {
                                //如果没有库存记录
                                strResult.AppendLine(string.Format(@"销售出库单{1}:{0}在库存中没有库存记录", eoChild.GetRelatedObject("MatID").ToString(), eoOrder.GetProperty("BillNo"))); ;
                                return strResult.ToString();
                            }
                            else
                            {
                                decimal oldUseflag = (decimal)eoKucun.GetProperty("CUseMany");
                                eoKucun.SetProperty("CUseMany", oldUseflag - (decimal)eoChild.GetProperty("Many"));
    
                            }
                        }
                        if (strResult.ToString() == "")
                        {   //如果更新成功,则统一释放占用
                            eoOrder.SetProperty("UseFlag", 2);
    
                            Context.SaveChanges();
                            // int aa = (int)eoOrder.GetProperty("UseFlag");
    
                        }
                        else
                        {
                            return strResult.ToString();
                        }
    
                    }
                }
                catch (Exception ex)
                {
                    return ex.Message;
                }
    
                return string.Format(@"销售出库单{0}库存释放占用成功!", eoOrder.GetProperty("BillNo"));
    
            }
    
            /// <summary>
            /// 释放库存,从单据上过来的
            /// </summary>
            public object NoUseKucun(Hashtable ht)
            {
                StringBuilder strResult = new StringBuilder();
                try
                {
    
                    ArrayList arr = (ArrayList)ht["childID"];
                    int i = arr.Count; ;
                    for (int j = 0; j < i; j++)
                    {
                        //先获取当前传过来的id
                        int childID = Convert.ToInt32(arr[j].ToString());
                        EntityObject eoDetail = EntityObjectFactory.GetInstance(Context, EntityIDEnum.SaleChukuDetail).FindFirst("ID={0}", childID);
                        if (eoDetail != null)
                        {
                            string str = (string)NoUseKucun(Convert.ToInt32(eoDetail.GetProperty("SaleChukuID").ToString()));
                            strResult.AppendLine(str);
                        }
                    }
                }
                catch (Exception ex)
                {
                    return ex.Message;
                }
    
                return strResult.ToString();
    
            }
        }
    View Code

    服务端公共方法类

     /// <summary>
        /// 服务端公共方法
        /// </summary>
        class ERPServerFunc
        {
            
            /// <summary>
            ///  判断当前单据是否有下推,如果没有下推,返回true
            /// </summary>
            /// <param name="Context">数据实体环境</param>
            /// <param name="eo">当前单据对象</param>
            /// <param name="NextEntityChildID">下推目标单据子表实体ID</param>
            /// <param name="ChildEntityID">当前单据对象子表实体ID</param>
            /// <param name="RefParent">下推目标单据子表和父表关联ID,ParentID</param>
            /// <param name="RefDetail">当前单据对象和下推单据对象子表的关联字段</param>
            /// <param name="strMesssage">返回信息值</param>
            /// <returns>返回true表示还未下推</returns>
            static public bool IsNextBill(ObjectContext Context, EntityObject eo, int NextEntityChildID, int ChildEntityID, string RefParent, string RefDetail, ref string strMesssage)
            {
                EntityObjectFactory eofNext = EntityObjectFactory.GetInstance(Context, NextEntityChildID);
                foreach (EntityObject eoChild in eo.GetChildEntityObjects(ChildEntityID))
                {
                    EntityObject eoNext = eofNext.FindFirst(string.Format(@"{0}={1}", RefDetail, (int)eoChild.PrimaryKeyValue));
                    if (eoNext != null)
                    {
                        strMesssage = string.Format(@"单据已经下推,不能反审核!先删除下推单据再反审核!下推单号:{0}", eoNext.GetRelatedObject(RefParent).GetProperty("BillNO"));
    
                        return false;
                    }
    
                }
                return true;
            }
     
            /// <summary>
            /// 判断是否存在应收应付已经产生收付款动作
            /// </summary>
            /// <param name="Context">数据实体环境</param>
            /// <param name="eo">当前单据对象</param>
            /// <param name="POPAEntityID">应收或应付实体ID</param>
            /// <param name="eoTableChineseName">当前单据中文名称</param>
            /// <param name="strMesssage">返回消息值</param>
            /// <returns></returns>
            static public bool IsExitPOPA(ObjectContext Context, EntityObject eo, int POPAEntityID,  string eoTableChineseName, ref string strMesssage)
            {
                EntityObjectFactory eofPOPA = EntityObjectFactory.GetInstance(Context, POPAEntityID);
                EntityObject eoPOPA = eofPOPA.FindFirst("BillNO={0} and BillID={1} and BillName={2} ",eo.GetProperty("BillNO"),eo.PrimaryKeyValue,eoTableChineseName);
                if(eoPOPA!=null)
                {
                    if ((decimal)eoPOPA.GetProperty("YAmount") > 0)
                    {
                        strMesssage = string.Format(@"单据已经产生应收应付并已经结算,不允许反审核");
    
                        return false;
                    }
                    else
                    {
                        eoPOPA.Delete();
                        strMesssage = string.Format(@"反审核成功,并且将单据审核时候产生的应收应付清单记录删除");
                        Context.SaveChanges();
                        return true;
                    }
    
                }
                return true;
            }
    
    
            //占用库存,释放库存,更新价格,变动库存,生成应收应付
        }
    View Code

     

     

     

    极致平台开发十大特点:

    1. 一个数据库下可以同时进行N套业务系统开发,开发出来的产品可以根据您客户的需要按模块界面组发布,客户想要啥模块就可以给啥模块。而且一个数据库下开发所有功能,当客户需要从你的人力资源增加客户关系管理模块的时候,你只要做个升级包就可以了。解决企业多个业务系统信息孤岛问题。
    2. 智能升级功能,当客户从A模块增加B模块的时候,您只需要做一个升级包即可,给客户升级后,客户原来录入的数据不会有影响,而且所有客户端都是智能感应智能升级,大大节省您的部署成本。
    3. 工作流套打报表均可以运行时候自定义,比如费用报销单,您100家客户就有一百种费用报销的流程,套打的格式,用我们平台您只需要设计好这个费用报销单,至于哪个客户走什么流程,完全可以让客户自己去定义,而不需要像传统开发那样,提前在开发中设置好,100个客户就维护100套代码。套打也是如此。
    4. 支持数据授权,当您开发多组织架构的系统的时候,我们只要业务单据引用组织机构即可,然后组织机构支持数据授权,这样就可以不需要编写任何一行代码就可以做到,组织与组织之间数据彼此隔离,我想给哪个用户看哪个组织的数据只要给这个用户这个组织的数据权限即可。
    5. 支持字段授权,对于一些表的核心字段对用户进行屏蔽直接利用我们平台的字段授权功能即可,比如职员薪酬字段进行字段授权,让有的用户在看职员信息的时候,自动隐藏薪酬的数据。这也是无需编写任何一行代码。
    6. 单据界面自动生成,我们开发的时候只要设计好实体,也就是传统开发所说的表结构即可,还可以设置哪些字段是必录,可见,不允许重复,在界面生成的时候,会自动生成一个界面,而且这个界面的增删改查是无需写一行代码的,您只要对您特有业务逻辑编码即可,相对传统开发,你代码量可以节省2/3,开发周期缩短2/3
    7.一次开发同时具有单机局域互联网三个版本,客户想要单机就给单机想要互联网版就给互联网版。 

    8.强大的公式引擎,让您可以灵活设计计算类的项目,比如工资,预算。

    9.包含强大的各种控件,比如文本控件支持F8调用,编码名称自动带出。Grid控件支持表头过滤,单元格融合,固定列,表格列,表格行各种公式汇总,复合表头,表格宽度可以自己随意调整,而且关闭后会自动记录之前的宽度。还支持表格列随意调整顺序。

    10.平台内置很多基础功能,比如权限管理,用户角色管理,还有实施的一些导入导出工具都能帮助客户大大提高一个项目验收进度。

     

    官网:www.jeez.com.cn
    平台介绍:www.jeez.com.cn/jbf  
    平台下载地址:http://www.jeez.com.cn/upfiles/jbfsetuppro.rar

    (下载即可有3个月免费试用)
    联系电话:13826519021 18988763421 QQ:180315586  420977542 (加我注明极致软件即可)

    平台销售经理:李先生 

    将互联网时代的管理软件做到极致!
    ==================================================================

     

     

     

    转载于:https://www.cnblogs.com/Jeez_JBF/p/ERP12.html

    展开全文
  • 1.采购入库单 借:原材料 贷:物质采购2.采购发票 借:物质采购 应交税金 贷:应付 3.付款单 借:应付 贷:现金/银行存款4.销售出库 借:主营业务成本 贷;库存商品5.销售发票 借:应收 贷:主营业务收入 应交税金6.收...
    1.采购入库单 借:原材料 贷:物质采购
    2.采购发票 借:物质采购 应交税金 贷:应付
    3.付款单 借:应付 贷:现金/银行存款

    4.销售出库 借:主营业务成本 贷;库存商品
    5.销售发票 借:应收 贷:主营业务收入 应交税金
    6.收款单 借:现金/银行存款 贷:应收

    7.原材料出库 借:基本生产成本 贷:原材料
    8.产成品入库 借:库存商品 贷:基本生产成本

    科目余额表:OACT
    明细账表:JDT1

    核心营销关系图:

    sbo_yingxiao.jpg

    SAP Business One与SAP的区别与联系:

    SAP Business One缩写为SBO,是SAP公司专门针对中小型企业开发的ERP软件,它和SAP R/3的联系在于:
    1. 都是SAP开发的ERP系统,他们的界面风格非常相似;
    2. 小型企业在发展壮大以后可以无缝升级为SAP R/3等高端系统;
    3. 大型企业可以在总部和重要工厂使用SAP R/3,而在小型工厂和分支机构采用SBO,这些系统之间可以无缝集成;
    4. SBO在功能上继承了SAP的主要特点,扩展性和灵活性较高,比如可以自定义流程、可以自定义扩展字段、自定义查询、自定义报表等等。
    SBO与SAP R/3的区别:
    1. SBO主要针对的用户就是小型的业务复杂程度较低的客户,所以功能比较简单,从大的模块上讲它有进销存、财务、生产(订单级)、人力资源、客户关系管理和系统管理,其中生产和人力资源非常简单。从小的功能流程上讲,它省略了复杂的业务流程,把整个企业的业务流程集中的简化为几个单据的处理过程,比如:采购和销售都省略了采购计划和销售计划,直接从订单开始,对于小企业而言,能够很好的实现业务流程的规范化;
    2. SBO与SAP R/3的技术架构完全不同,SBO是个两层结构的系统,便于维护和使用;
    3. SBO是个打包的系统,而不是我们通常见到SAP R/3那样组件化的系统,他的所有功能模块都是默认就有的,购买以后所以的模块就都有了,不能分模块购买,如果要增强它的功能,SAP和其他合作伙伴提供了许多叫做“附加项(ADD-ON)”的功能模块。所以不能一概而论的说SBO功能简单,不能做什么,它的系统扩展性还是很好的。
    4. SBO的一个中心设计思想就是要简单实用,所以它的定制、使用和实施都非常简单,一般一个项目2个月就可以完成了,一个具备基本的计算机操作技能的人能够很快的学会SBO的基本操作。

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23503339/viewspace-681824/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/23503339/viewspace-681824/

    展开全文
  • 在传统的仓库管理模式下,员工手里往往会拿着一大堆单据,然后根据单据上的商品编号、商品名称、数量和商品货位编号信息进行提货。由于缺少单据的整合,货物无法一次取货,需要第二次、第三次取货,不仅时间长,而且...
  • B端企业客户的管理模式大都极具个性化,尤其是报表和单据的格式最为复杂多样。因此,大型ERP系统必不可少的通用性功能:“自定义单据“来应对客户多变的业务需求;国内的用友和金蝶等等厂家ERP洽洽缺少这块,行业内...
  • SAP 在零售行业 (在没有生产业务的情况下) 其在企业里可能就成为了后台为财务记账及服务...这种情况我们的实施方通常选择仅跟财务记账有关的单据才从上游系统接口传输到SAP(如商品采购入库、批发销售出库、门店销售
  • 出库管理系统

    2019-09-18 09:54:23
    出库管理系统 要如何使用进销管理系统做进出库操作呢?进销存管理有三个重要模块组成:进货管理,出库管理,销售管理。现在还好多企业都是用笔记账。管理起来繁杂而混乱,手工管理进出库账单方式,累还慢。现在...
  • 仓库出库单软件

    2021-06-08 14:08:14
    仓库出库单软件 中小企业选择企业管理软件,国内的品牌都会考虑泛普软件,用友,8thManage这几个牌子;如果说性价比来说,我个人更偏好泛普软件的产品,比较它的产品功能多,而且操作简单,一点都不会比国际大品牌差...
  • 货物进出库软件

    2021-06-09 14:39:04
    货物进出库软件 没有绝对意义上的好与不好,只有相对的是否适合企业。 国内各类品牌也一搜一大把。 最重要的是选择适合自己的。 其他的还有一些自主研发都很优秀,能成立超过10年以上的软件厂商,都有属于自己某个...
  • 今天我们在这里简单讨论零售企业业务流程以及它和计算机管理信息系统的相互关系。在这里所列举的有关流程的一些基本原则对所有称之为流程的对象都有效。所以,对于财务流程、办公流程等方面的问题的思考,可以通过...
  • 结算组织与货主不为同一个组织才会生成内部交易单据。组织间结算基本的应用场景是: 当会计核算体系是利润中心...当然,因为内部单据视同普通业务单据,没有体系的概念,所以优先满足判断,如果发生内部交易的二个业务
  • 今晨送货单软件最好用的一款免费送货单打印软件,本软件根据市场需要结合企业自身特点量身订做的操作方便、功能完善功能强大个性化极强的送货系统管理系统。 系统集送货单管理,产品资料库管理,客户资料库管理,月...
  • 如果企业能有一款能够实现数据业务共享,在手机端处理业务和沟通协作的软件,对提升管理效率和降低运营成本都有十分大的作用。 金蝶精斗云规范企业业务流程,所有数据在手机上就能清晰了解 这一款软件就是金蝶精斗云...
  • 基础数据:计量单位、颜色列表、品牌列表、材料列表、入库类型、出库类型、区域列表、发票类别、来电类别、事务类别、业务类别、单据来源、安装要求、外协类别、拜访形式、拜访结果、提成角色、收提货要求、业务...
  • 企业有很多类型的出入库操作,比如:生产入库、采购入库、销售出库、领料出库、调拨入库、调拨出库、盘盈入库、盘亏出库等。企业信息化系统,针对如此繁多的出入库类型,如果每个类型都需要单独实现,则代码量比较大...
  • 干了十多年SAP顾问,聊聊从SAP最佳业务实践看企业管理  干了十多年的SAP实施顾问,经历了各种行业(机械、电力、石油、化工、制造、消费品等等)、各种企业(国企、外企、民营),也来聊聊SAP,大家有什么要问的?...
  • 1我们前面做了销售报价单后,我们需要做一个销售报价单的查询界面,也就是一览表...2.报价单上有的功能,一览表上同样要有,比如更新价格,下推订单,在单据下推的时候,我们是利用sql语句判断是否还有未下推完的数...
  • TestPlanEntry 测试计划副表 测试计划副表 75 ICTL_TestProject 测试计划方案 测试计划方案 76 ICTL_TestProjectBill 测试方案单据 测试方案单据 77 ICTL_Testspecimen 样本档案 样本档案 78 ICTL_...
  • 目录 一、全链路角度看仓库业务 二、仓储业务简介 仓库的管理系统, 指 仓库的一切活动 ,都被记录在了线上系统。...出库) 5. 仓库作业:拣选单 , 为了拣选效率更高,把一些相同属性包裹放在一个拣选.
  • 内销业务管理解决方案内销系统是以货物流为基础,以票据流为主线,以资金流为补充的3种数据流关于进货、库存、销售和财务的管理系统。它可以降低企业的库存,提高资金利用率和结算速度,实现管理的高效性、实时性、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,322
精华内容 528
关键字:

企业出库业务的单据是