Ejemplo n.º 1
0
        // For Estimate
        public static void SetCommodityToDetail(int i, EntityEstimateH entityH, ObservableCollection<EntityEstimateD> entityD, svcMstData.EntityMstData mst)
        {
            if (i == -1) return;

            svcMstData.EntityMstData _mst = mst;

            EntityBaseH entityBaseH = null;
            ObservableCollection<EntityBaseD> entityBaseD = null;

            ConvertFrom(entityH, ref entityBaseH, entityD, ref entityBaseD);

            _SetCommodityToDetail(i, ref entityBaseH, ref entityBaseD, _mst, eKbn.Sales);

            ConvertTo(entityBaseH, ref entityH, entityBaseD, ref entityD);

            // 明細計算
            CalcDetailNumber(i, entityH, entityD);
            CalcDetail(i, entityH, entityD);
        }
        public override void MstDataSelect(ExWebServiceMst.geWebServiceMstNmCallKbn intKbn, svcMstData.EntityMstData mst)
        {
            try
            {
                svcMstData.EntityMstData _mst = null;
                _mst = mst;

                switch (intKbn)
                {
                    case ExWebServiceMst.geWebServiceMstNmCallKbn.GetRecieptDivision:
                        if (DataForm.CurrentIndex == -1) return;

                        if (_mst == null) return;

                        // attribute20に選択された行が設定されてくる
                        if (string.IsNullOrEmpty(_mst.attribute20))
                        {
                            _entityListD[ExCast.zCInt(_mst.attribute20) + 1]._payment_cash_division_nm = "";
                            OnFormatAll();
                        }
                        else
                        {
                            if (_entityListD.Count >= ExCast.zCInt(_mst.attribute20) + 1)
                            {
                                _entityListD[ExCast.zCInt(_mst.attribute20)]._payment_cash_division_nm = mst.name;
                                OnFormatAll();
                            }
                        }
                        break;
                }
            }
            catch
            { 
            }

        }
        public override void MstDataSelect(ExWebServiceMst.geWebServiceMstNmCallKbn intKbn, svcMstData.EntityMstData mst)
        {
            try
            {
                svcMstData.EntityMstData _mst = null;
                _mst = mst;

                switch (intKbn)
                {
                    case ExWebServiceMst.geWebServiceMstNmCallKbn.GetCustomer:
                        // _PropertyChangedにて設定
                        break;
                    case ExWebServiceMst.geWebServiceMstNmCallKbn.GetCommodity:
                        if (Common.gblnDesynchronizeLock == false) return;
                        if (_mst == null) return;

                        // attribute20に選択された行が設定されてくる
                        if (string.IsNullOrEmpty(_mst.attribute20))
                        {
                            // 商品から明細へ
                            DataDetail.SetCommodityToDetail(dg.SelectedIndex, _entityH, _entityListD, _mst);
                            // 明細再計算
                            DataDetail.ReCalcDetail(_entityH, _entityListD);
                            // 明細フッターセット
                            SetDetailFooter();
                        }
                        else
                        {
                            if (_entityListD.Count >= ExCast.zCInt(_mst.attribute20) + 1)
                            {
                                // 商品から明細へ
                                DataDetail.SetCommodityToDetail(ExCast.zCInt(_mst.attribute20), _entityH, _entityListD, _mst);
                                // 明細再計算
                                DataDetail.ReCalcDetail(_entityH, _entityListD);
                                // 明細フッターセット
                                SetDetailFooter();                                      
                            }
                        }
                        break;
                }
            }
            finally
            {
                Common.gblnDesynchronizeLock = false;                
            }
        }
        public override void MstDataSelect(ExWebServiceMst.geWebServiceMstNmCallKbn intKbn, svcMstData.EntityMstData mst)
        {
            try
            {
                svcMstData.EntityMstData _mst = null;
                _mst = mst;

                switch (intKbn)
                {
                    case ExWebServiceMst.geWebServiceMstNmCallKbn.GetCommodity:
                        if (DataForm.CurrentIndex == -1) return;

                        if (_mst == null) return;

                        // attribute20に選択された行が設定されてくる
                        if (string.IsNullOrEmpty(_mst.attribute20))
                        {
                            // 商品から明細へ
                            DataDetail.SetCommodityToDetail(DataForm.CurrentIndex, this._entityH, this._entityListD, _mst);
                            OnFormatAll();
                        }
                        else
                        {
                            if (_entityListD.Count >= ExCast.zCInt(_mst.attribute20) + 1)
                            {
                                // 商品から明細へ
                                DataDetail.SetCommodityToDetail(ExCast.zCInt(_mst.attribute20), _entityH, _entityListD, _mst);
                                OnFormatAll();
                            }
                        }
                        break;
                }
            }
            catch
            { 
            }

        }
 public override void MstDataSelect(ExWebServiceMst.geWebServiceMstNmCallKbn intKbn, svcMstData.EntityMstData mst)
 {
     switch (intKbn)
     {
         case ExWebServiceMst.geWebServiceMstNmCallKbn.GetCustomer:
             if (!string.IsNullOrEmpty(this.utlCustomer.txtID.Text.Trim()) && !string.IsNullOrEmpty(this.utlCustomer.txtNm.Text.Trim()))
             {
                 if (this.utlFunctionKey.gFunctionKeyEnable == Utl_FunctionKey.geFunctionKeyEnable.InitKbn)
                 {
                     ExVisualTreeHelper.SetEnabled(this.MainDetail, true);
                     this.utlCustomer.txtID_IsReadOnly = true;
                     ExBackgroundWorker.DoWork_Focus(this.utlID.txtID, 10);
                     this.utlFunctionKey.gFunctionKeyEnable = Utl_FunctionKey.geFunctionKeyEnable.Init;
                 }
             }
             break;
     }
 }
Ejemplo n.º 6
0
        private static void SetInitCombo(ref svcMstData.EntityMstData entityD)
        {
            // コンボボックス初期選択
            List<string> lst;
            lst = MeiNameList.GetListMei(MeiNameList.geNameKbn.UNIT_ID);
            entityD.attribute1 = ExCast.zCStr(MeiNameList.GetID(MeiNameList.geNameKbn.UNIT_ID, lst[0]));

            lst = MeiNameList.GetListMei(MeiNameList.geNameKbn.TAX_DIVISION_ID);
            entityD.attribute5 = ExCast.zCStr(MeiNameList.GetID(MeiNameList.geNameKbn.TAX_DIVISION_ID, lst[0]));
        }
Ejemplo n.º 7
0
        private static void _SetCommodityToDetail(int i, ref EntityBaseH entityBaseH, ref ObservableCollection<EntityBaseD> entityBaseD, svcMstData.EntityMstData _mst, eKbn kbn)
        {
            // 初期化
            entityBaseD[i].commodity_name = "";       // 商品名
            entityBaseD[i].unit_id = 0;               // 単位ID
            entityBaseD[i].enter_number = 0;          // 入数
            entityBaseD[i].case_number = 1;           // ケース数
            entityBaseD[i].number = 0;                // 数量
            entityBaseD[i].tax_division_id = 0;       // 税区分
            entityBaseD[i].tax_division_nm = "";      // 税区分名
            entityBaseD[i].tax_percent = 0;           // 税率
            entityBaseD[i].unit_price = 0;            // 売上単価
            entityBaseD[i].sales_cost = 0;            // 売上原価
            entityBaseD[i].price = 0;                 // 金額
            entityBaseD[i].tax = 0;                   // 消費税
            entityBaseD[i].no_tax_price = 0;          // 税抜金額
            entityBaseD[i].profits = 0;               // 粗利
            entityBaseD[i].profits_percent = 0;       // 粗利率
            entityBaseD[i].inventory_number = 0;      // 現在庫

            if (_mst == null)
            {
                return;
            }
            else
            {
                if (_mst.id == "")
                {
                    SetInitCombo(ref _mst);
                    entityBaseD[i].case_number = 0;        // ケース数
                }
            }

            entityBaseD[i].commodity_name = _mst.name;                        // 商品名
            entityBaseD[i].enter_number = ExCast.zCInt(_mst.attribute2);      // 入数

            // 数量(単価)小数桁
            entityBaseD[i].number_decimal_digit = ExCast.zCInt(_mst.attribute3);
            entityBaseD[i].unit_decimal_digit = ExCast.zCInt(_mst.attribute4);

            // 単位ID
            entityBaseD[i].unit_id = ExCast.zCInt(_mst.attribute1);
            entityBaseD[i].unit_nm = MeiNameList.GetName(MeiNameList.geNameKbn.UNIT_ID, entityBaseD[i].unit_id);

            // 税区分
            entityBaseD[i].tax_division_id = ExCast.zCInt(_mst.attribute5);
            entityBaseD[i].tax_division_nm = MeiNameList.GetName(MeiNameList.geNameKbn.TAX_DIVISION_ID, entityBaseD[i].tax_division_id);

            // 税区分が課税で内訳が消費税の場合
            if (entityBaseD[i].tax_division_id == 1 && entityBaseD[i].breakdown_id == 5)
            {
                entityBaseD[i].tax_division_nm = "非課税";
                entityBaseD[i].tax_division_id = MeiNameList.GetID(MeiNameList.geNameKbn.TAX_DIVISION_ID, ExCast.zCStr(entityBaseD[i].tax_division_nm));
            }

            entityBaseD[i].tax_percent = 5;

            int _credit_rate = entityBaseH.credit_rate;
            if (_credit_rate == 0) _credit_rate = 100;

            // 上代税込
            entityBaseD[i].retail_price_before_tax = ExMath.zFloor(ExCast.zCDbl(_mst.attribute10) * _credit_rate / 100, entityBaseD[i].unit_decimal_digit);
            // 売上単価税込
            entityBaseD[i].sales_unit_price_before_tax = ExMath.zFloor(ExCast.zCDbl(_mst.attribute12) * _credit_rate / 100, entityBaseD[i].unit_decimal_digit);
            // 売上原価税込
            entityBaseD[i].sales_cost_price_before_tax = ExMath.zFloor(ExCast.zCDbl(_mst.attribute14) * _credit_rate / 100, entityBaseD[i].unit_decimal_digit);
            // 仕入単価税込
            entityBaseD[i].purchase_unit_price_before_tax = ExMath.zFloor(ExCast.zCDbl(_mst.attribute16) * _credit_rate / 100, entityBaseD[i].unit_decimal_digit);
            // 上代税抜
            entityBaseD[i].retail_price_skip_tax = ExMath.zFloor(ExCast.zCDbl(_mst.attribute9) * _credit_rate / 100, entityBaseD[i].unit_decimal_digit);
            // 売上単価税抜
            entityBaseD[i].sales_unit_price_skip_tax = ExMath.zFloor(ExCast.zCDbl(_mst.attribute11) * _credit_rate / 100, entityBaseD[i].unit_decimal_digit);
            // 売上原価税抜
            entityBaseD[i].sales_cost_price_skip_tax = ExMath.zFloor(ExCast.zCDbl(_mst.attribute13) * _credit_rate / 100, entityBaseD[i].unit_decimal_digit);
            // 仕入単価税抜
            entityBaseD[i].purchase_unit_price_skip_tax = ExMath.zFloor(ExCast.zCDbl(_mst.attribute15) * _credit_rate / 100, entityBaseD[i].unit_decimal_digit);

            // 在庫
            entityBaseD[i].inventory_management_division_id = ExCast.zCInt(_mst.attribute6);
            entityBaseD[i].inventory_number = ExCast.zCDbl(_mst.attribute8);

            // 単価設定
            // 税転換が内税で明細課税有りの場合
            if ((entityBaseH.tax_change_id == 4 || entityBaseH.tax_change_id == 5 || entityBaseH.tax_change_id == 6) && entityBaseD[i].tax_division_id == 1)
            {
                switch (entityBaseH.unit_kind_id)
                {
                    case 1:     // 上代税込
                        entityBaseD[i].unit_price = ExMath.zFloor(ExCast.zCDbl(entityBaseD[i].retail_price_before_tax) * _credit_rate / 100, entityBaseD[i].unit_decimal_digit);
                        break;
                    case 2:     // 売上単価税込
                        switch (kbn)
                        {
                            case eKbn.Purchase:
                                entityBaseD[i].unit_price = ExMath.zFloor(ExCast.zCDbl(entityBaseD[i].purchase_unit_price_before_tax) * _credit_rate / 100, entityBaseD[i].unit_decimal_digit);
                                break;
                            default:
                                entityBaseD[i].unit_price = ExMath.zFloor(ExCast.zCDbl(entityBaseD[i].sales_unit_price_before_tax) * _credit_rate / 100, entityBaseD[i].unit_decimal_digit);
                                break;
                        }
                        break;
                    case 3:     // 売上原価税込
                        entityBaseD[i].unit_price = ExMath.zFloor(ExCast.zCDbl(entityBaseD[i].sales_cost_price_before_tax) * _credit_rate / 100, entityBaseD[i].unit_decimal_digit);
                        break;
                    default:
                        switch (kbn)
                        {
                            case eKbn.Purchase:
                                entityBaseD[i].unit_price = ExMath.zFloor(ExCast.zCDbl(entityBaseD[i].purchase_unit_price_before_tax) * _credit_rate / 100, entityBaseD[i].unit_decimal_digit);
                                break;
                            default:
                                entityBaseD[i].unit_price = ExMath.zFloor(ExCast.zCDbl(entityBaseD[i].sales_unit_price_before_tax) * _credit_rate / 100, entityBaseD[i].unit_decimal_digit);
                                break;
                        }
                        break;
                }
                // 売上原価税込
                entityBaseD[i].sales_cost = entityBaseD[i].sales_cost_price_before_tax;
            }
            else
            {
                switch (entityBaseH.unit_kind_id)
                {
                    case 1:     // 上代税抜
                        entityBaseD[i].unit_price = ExMath.zFloor(ExCast.zCDbl(entityBaseD[i].retail_price_skip_tax) * _credit_rate / 100, entityBaseD[i].unit_decimal_digit);
                        break;
                    case 2:     // 売上単価税抜
                        switch (kbn)
                        {
                            case eKbn.Purchase:
                                entityBaseD[i].unit_price = ExMath.zFloor(ExCast.zCDbl(entityBaseD[i].purchase_unit_price_skip_tax) * _credit_rate / 100, entityBaseD[i].unit_decimal_digit);
                                break;
                            default:
                                entityBaseD[i].unit_price = ExMath.zFloor(ExCast.zCDbl(entityBaseD[i].sales_unit_price_skip_tax) * _credit_rate / 100, entityBaseD[i].unit_decimal_digit);
                                break;
                        }
                        break;
                    case 3:     // 売上原価税抜
                        entityBaseD[i].unit_price = ExMath.zFloor(ExCast.zCDbl(entityBaseD[i].sales_cost_price_skip_tax) * _credit_rate / 100, entityBaseD[i].unit_decimal_digit);
                        break;
                    default:
                        switch (kbn)
                        {
                            case eKbn.Purchase:
                                entityBaseD[i].unit_price = ExMath.zFloor(ExCast.zCDbl(entityBaseD[i].purchase_unit_price_skip_tax) * _credit_rate / 100, entityBaseD[i].unit_decimal_digit);
                                break;
                            default:
                                entityBaseD[i].unit_price = ExMath.zFloor(ExCast.zCDbl(entityBaseD[i].sales_unit_price_skip_tax) * _credit_rate / 100, entityBaseD[i].unit_decimal_digit);
                                break;
                        }
                        break;
                }
                // 売上原価税抜
                entityBaseD[i].sales_cost = entityBaseD[i].sales_cost_price_skip_tax;
            }

            // 返品時
            if (entityBaseD[i].breakdown_id == 6)
            {
                CalRedcDetail(entityBaseD[i]);
            }
        }
        public override void MstDataSelect(ExWebServiceMst.geWebServiceMstNmCallKbn intKbn, svcMstData.EntityMstData mst)
        {
            try
            {
                svcMstData.EntityMstData _mst = null;
                _mst = mst;

                switch (intKbn)
                {
                    case ExWebServiceMst.geWebServiceMstNmCallKbn.GetCustomer:
                        break;
                    case ExWebServiceMst.geWebServiceMstNmCallKbn.GetRecieptDivision:
                        if (Common.gblnDesynchronizeLock == false) return;
                        if (_mst == null) return;

                        if (string.IsNullOrEmpty(_mst.attribute20))
                        {
                            try
                            {
                                _entityListD[dg.SelectedIndex]._payment_cash_division_nm = _mst.name;
                            }
                            catch
                            { 
                            }
                        }
                        else
                        {
                            try
                            {
                                _entityListD[ExCast.zCInt(_mst.attribute20)]._payment_cash_division_nm = _mst.name;
                            }
                            catch
                            {
                            }
                        }
                        break;
                }
            }
            finally
            {
                Common.gblnDesynchronizeLock = false;
            }
        }