protected override void New()
        {
            Entity.CustomerProductUnit item = (Entity.CustomerProductUnit)request.TransactionEntityList[0];

            if (CustomerProductUnitCache.Instance.Exists(item))
            {
                throw new Exception("Item already exists");
            }

            SpCall call = new SpCall("DAT.CUSTOMER_PRODUCT_UNIT_INSERT");

            call.SetBigInt("@CUSTOMER_ID", item.Customer.Id);
            call.SetBigInt("@PRODUCT_ID", item.Product.Id);
            call.SetBigInt("@UNIT_ID", item.Unit.Id);
            call.SetDateTime("@CREATE_DATE", DateTime.Now);
            call.SetVarchar("@CREATE_USER", Context.UserName);
            item.Id = db.ExecuteScalar <long>(call);
            response.TransactionResult = item;
        }
        protected override void Update()
        {
            Entity.CustomerProductUnit item = (Entity.CustomerProductUnit)request.TransactionEntityList[0];

            if (CustomerProductUnitCache.Instance.Exists(item))
            {
                throw new Exception("Item already exists");
            }

            SpCall call = new SpCall("DAT.CUSTOMER_PRODUCT_UNIT_UPDATE");

            call.SetBigInt("@ID", item.Id);
            call.SetBigInt("@CUSTOMER_ID", item.Customer.Id);
            call.SetBigInt("@PRODUCT_ID", item.Product.Id);
            call.SetBigInt("@UNIT_ID", item.Unit.Id);
            call.SetDateTime("@UPDATE_DATE", DateTime.Now);
            call.SetVarchar("@UPDATE_USER", Context.UserName);
            db.ExecuteNonQuery(call);
            Context.TransactionObject = item;
        }