private void GetReceiptHCompleted(Object sender, GetReceiptHCompletedEventArgs e)
        {
            try
            {
                objReceiptH = e.Result;
                if (DialogCloseFlg == geDialogCloseFlg.Yes & win != null)
                {
                    win.Close();
                    win = null;
                }

                if (objReceiptH != null)
                {
                    if (objReceiptH._message != "" && objReceiptH._message != null)
                    {
                        // 認証失敗
                        ExMessageBox.Show(objReceiptH._message);
                        objPerent.DataSelect((int)geWebServiceCallKbn.GetReceiptListH, (object)objReceiptH);
                    }
                    else
                    {
                        // 認証成功
                        objPerent.DataSelect((int)geWebServiceCallKbn.GetReceiptListH, (object)objReceiptH);
                    }
                }
                else
                {
                    objPerent.DataSelect((int)geWebServiceCallKbn.GetReceiptListH, null);
                }

            }
            catch (Exception ex)
            {
                this.ProcessingDlgClose();
                ExMessageBox.Show(CLASS_NM + ".GetReceiptHCompleted" + Environment.NewLine + ex.ToString(), "エラー確認");
            }
            finally
            {
                if (DialogCloseFlg == geDialogCloseFlg.Yes & win != null)
                {
                    win.Close();
                    win = null;
                }
            }
        }
 private void UpdateReceipt(int type, long ReceiptNo, EntityReceiptH entityH, ObservableCollection<EntityReceiptD> entityD, EntityReceiptH before_entityH)
 {
     try
     {
         svcReceiptClient svc = new svcReceiptClient();
         svc.UpdateReceiptCompleted += new EventHandler<UpdateReceiptCompletedEventArgs>(this.UpdateReceiptCompleted);
         svc.UpdateReceiptAsync(Common.gstrSessionString, type, ReceiptNo, entityH, entityD, before_entityH);
     }
     catch (Exception ex)
     {
         this.ProcessingDlgClose();
         ExMessageBox.Show(CLASS_NM + ".UpdateReceipt" + Environment.NewLine + ex.ToString(), "エラー確認");
     }
 }
 private void GetReceiptH(long ReceiptNo)
 {
     try
     {
         objReceiptH = null;   // 初期化
         svcReceiptClient svc = new svcReceiptClient();
         svc.GetReceiptHCompleted += new EventHandler<GetReceiptHCompletedEventArgs>(this.GetReceiptHCompleted);
         svc.GetReceiptHAsync(Common.gstrSessionString, ReceiptNo);
     }
     catch (Exception ex)
     {
         this.ProcessingDlgClose();
         ExMessageBox.Show(CLASS_NM + ".GetReceiptH" + Environment.NewLine + ex.ToString(), "エラー確認");
     }
 }
        // データ取得コールバック呼出
        public override void DataSelect(int intKbn, object objList)
        {
            switch ((ExWebService.geWebServiceCallKbn)intKbn)
            {
                #region 入金

                // ヘッダ
                case _GetHeadWebServiceCallKbn:
                    // 更新
                    if (objList != null)    
                    {
                        _entityH = (EntityReceiptH)objList;

                        // エラー発生時
                        if (_entityH._message != "" && _entityH._message != null)
                        {
                            webService.ProcessingDlgClose();
                            this.utlNo.txtID.Text = "";
                            return;
                        } 

                        // バインド反映
                        SetBinding();

                        // 明細データ取得
                        GetDetailData(_entityH._id);
                    }
                    // 新規
                    else
                    {
                        //// 明細追加
                        //this.btnF7_Click(null, null);

                        //this.dg.ItemsSource = _entityListD;
                        //webService.ProcessingDlgClose();
                        //this.utlFunctionKey.gFunctionKeyEnable = Utl_FunctionKey.geFunctionKeyEnable.New;
                        //this.utlNo.txtID_IsReadOnly = true;

                        webService.ProcessingDlgClose();
                        this.utlFunctionKey.gFunctionKeyEnable = Utl_FunctionKey.geFunctionKeyEnable.New;
                        SetDatePickerNotEnabled();
                        this.utlNo.txtID_IsReadOnly = false;
                    }
                    ExBackgroundWorker.DoWork_Focus(this.datReceiptYmd, 10);
                    break;
                // 明細
                case _GetDetailWebServiceCallKbn:
                    // 2回設定がかかりエラーになる為
                    try
                    {
                        this.dg.ItemsSource = null;
                    }
                    catch
                    {
                        return;
                    }

                    if (objList != null)
                    {
                        _entityListD = (ObservableCollection<EntityReceiptD>)objList;
                    }
                    else 
                    {
                        _entityListD = null;
                    }

                    // 明細追加
                    this.btnF7_Click(null, null);

                    this.dg.ItemsSource = _entityListD;

                    // 前回情報保持
                    ConvertBeforeData(_entityH, _before_entityH);

                    if (_entityH._lock_flg == 0)
                    {
                        this.utlFunctionKey.gFunctionKeyEnable = Utl_FunctionKey.geFunctionKeyEnable.Upd;
                        SetDatePickerNotEnabled();
                    }
                    else
                    {
                        this.utlFunctionKey.gFunctionKeyEnable = Utl_FunctionKey.geFunctionKeyEnable.Sel;
                        SetDatePickerNotEnabled();
                    }

                    // 明細再計算
                    DetailSumPrice();

                    // 請求番号指定時、請求先は変更不可
                    if (!string.IsNullOrEmpty(this.utlInvoiceNo.txtID.Text.Trim()))
                    {
                        this.utlInvoice.txtID.IsEnabled = false;
                    }

                    ExBackgroundWorker.DoWork_Focus(this.datReceiptYmd, 10);
                    this.utlNo.txtID_IsReadOnly = true;
                    //this.utlNo.IsEnabled = false;
                    break;

                #endregion

                #region 請求入金

                // 請求入金
                case ExWebService.geWebServiceCallKbn.GetInvocieReceipt:
                    // 更新
                    if (objList != null)
                    {
                        _entityInvoiceReceipt = (EntityInvoiceReceipt)objList;

                        // エラー発生時
                        if (_entityInvoiceReceipt.message != "" && _entityInvoiceReceipt.message != null)
                        {
                            webService.ProcessingDlgClose();
                            this.utlInvoiceNo.txtID.Text = "";

                            _entityH._invoice_no = 0;
                            _entityH._invoice_kbn = 0;
                            _entityH._invoice_kbn_nm = "";
                            _entityH._summing_up_group_id = "";
                            _entityH._summing_up_group_nm = "";
                            _entityH._invoice_yyyymmdd = "";
                            _entityH._collect_plan_day = "";
                            _entityH._invoice_price = 0;
                            _entityH._before_receipt_price = 0;

                            DetailSumPrice();

                            this.utlInvoice.txtID.IsEnabled = true;
                            ExBackgroundWorker.DoWork_Focus(this.utlInvoiceNo.txtID, 10);
                            return;
                        }

                        // 2回設定がかかりエラーになる為
                        try
                        {
                            this.dg.ItemsSource = null;
                        }
                        catch
                        {
                            return;
                        }

                        _entityH._invoice_no = _entityInvoiceReceipt._no;

                        this.utlInvoice.txtID.Text = _entityInvoiceReceipt._invoice_id;
                        _entityH._invoice_id = _entityInvoiceReceipt._invoice_id;
                        _entityH._invoice_name = _entityInvoiceReceipt._invoice_nm;
                        _entityH._invoice_kbn = _entityInvoiceReceipt._invoice_kbn;
                        _entityH._invoice_kbn_nm = _entityInvoiceReceipt._invoice_kbn_nm;
                        _entityH._summing_up_group_id = _entityInvoiceReceipt._summing_up_group_id;
                        _entityH._summing_up_group_nm = _entityInvoiceReceipt._summing_up_group_nm;
                        _entityH._invoice_yyyymmdd = _entityInvoiceReceipt._invoice_yyyymmdd;
                        _entityH._collect_plan_day = _entityInvoiceReceipt._collect_plan_day;
                        _entityH._invoice_price = _entityInvoiceReceipt._invoice_price;
                        _entityH._before_receipt_price = _entityInvoiceReceipt._before_receipt_price;
                        _entityH._before_credit_price = _entityInvoiceReceipt._credit_price;
                        _entityH._credit_price = _entityInvoiceReceipt._credit_price;
                        _entityH._receipt_division_id = _entityInvoiceReceipt._receipt_division_id;
                        _entityH._receipt_division_nm = _entityInvoiceReceipt._receipt_division_nm;

                        // バインド反映
                        SetBinding();

                        // 前回情報保持
                        ConvertBeforeData(_entityH, _before_entityH);

                        _entityListD = null;
                        _entityListD = new ObservableCollection<EntityReceiptD>();
                        EntityReceiptD entity = new EntityReceiptD();
                        entity._rec_no = 1;
                        entity._receipt_division_id = this._entityH._receipt_division_id;
                        entity._receipt_division_nm = this._entityH._receipt_division_nm;
                        _entityListD.Add(entity);

                        DetailSumPrice();
                        this._entityListD[0]._price = ExCast.zCDbl(this.txtInvoiceZanPrice.Text);
                        this._entityListD[0]._receipt_division_id = _entityH._receipt_division_id;
                        this._entityListD[0]._receipt_division_nm = _entityH._receipt_division_nm;
                        this.dg.ItemsSource = null;
                        this.dg.ItemsSource = this._entityListD;
                        DetailSumPrice();

                        // 請求番号指定時、請求先は変更不可
                        this.utlInvoice.txtID.IsEnabled = false;

                        ExBackgroundWorker.DoWork_Focus(this.txtMemo, 10);


                    }
                    else
                    {
                        MessageBox.Show("請求番号:" + this.utlInvoiceNo.txtID.Text + " は存在しません。");
                        webService.ProcessingDlgClose();
                        this.utlInvoiceNo.txtID.Text = "";

                        _entityH._invoice_no = 0;
                        _entityH._invoice_kbn = 0;
                        _entityH._invoice_kbn_nm = "";
                        _entityH._summing_up_group_id = "";
                        _entityH._summing_up_group_nm = "";
                        _entityH._invoice_yyyymmdd = "";
                        _entityH._collect_plan_day = "";
                        _entityH._invoice_price = 0;
                        _entityH._before_receipt_price = 0;

                        DetailSumPrice();

                        ExBackgroundWorker.DoWork_Focus(this.utlInvoiceNo.txtID, 10);
                        this.utlInvoice.txtID.IsEnabled = true;
                    }
                    break;

                #endregion

                default:
                    break;
            }
        }
        private void SetBinding()
        {
            if (_entityH == null)
            {
                _entityH = new EntityReceiptH();
            }

            if (_entityListD == null)
            {
                _entityListD = new ObservableCollection<EntityReceiptD>();
            }

            // マスタコントロールPropertyChanged
            _entityH.PropertyChanged += this.utlInvoice.MstID_Changed;
            _entityH.PropertyChanged += this.utlPerson.MstID_Changed;
            _entityH.PropertyChanged += this.utlReceiptDivision.MstID_Changed;
            _entityH.PropertyChanged += this.utlSummingUp.MstID_Changed;
            _entityH.PropertyChanged += this._PropertyChanged;
            this.utlInvoice.ParentData = _entityH;
            this.utlPerson.ParentData = _entityH;

            NumberConverter nmConvDecm0 = new NumberConverter();
            NumberConverter nmConvDecm2 = new NumberConverter();
            nmConvDecm2.DecimalPlaces = 2;

            #region Bind

            // バインド
            Binding BindingReceiptYmd = new Binding("_receipt_ymd");
            BindingReceiptYmd.Mode = BindingMode.TwoWay;
            BindingReceiptYmd.Source = _entityH;
            this.datReceiptYmd.SetBinding(DatePicker.SelectedDateProperty, BindingReceiptYmd);

            if (string.IsNullOrEmpty(_entityH._receipt_ymd))
            {
                _entityH._receipt_ymd = DateTime.Now.ToString("yyyy/MM/dd");
            }
            
            Binding BindingPersonId = new Binding("_person_id");
            BindingPersonId.Mode = BindingMode.TwoWay;
            BindingPersonId.Source = _entityH;
            this.utlPerson.txtID.SetBinding(TextBox.TextProperty, BindingPersonId);

            Binding BindingPersonNm = new Binding("_person_name");
            BindingPersonNm.Mode = BindingMode.TwoWay;
            BindingPersonNm.Source = _entityH;
            this.utlPerson.txtNm.SetBinding(TextBox.TextProperty, BindingPersonNm);

            if (_entityH._person_id == 0)
            {
                // デフォルト担当の設定
                this.utlPerson.txtID.Text = Common.gintDefaultPersonId.ToString();
                _entityH._person_id = Common.gintDefaultPersonId;
                this.utlPerson.MstID_Changed(null, new PropertyChangedEventArgs("_person_id"));
            }

            Binding BindingInvoiceNo = new Binding("_invoice_no");
            BindingInvoiceNo.Mode = BindingMode.TwoWay;
            BindingInvoiceNo.Source = _entityH;
            this.utlInvoiceNo.txtID.SetBinding(TextBox.TextProperty, BindingInvoiceNo);

            Binding BindingCollectPlanYmd = new Binding("_collect_plan_day");
            BindingCollectPlanYmd.Mode = BindingMode.TwoWay;
            BindingCollectPlanYmd.Source = _entityH;
            this.datCollectPlanYmd.SetBinding(DatePicker.SelectedDateProperty, BindingCollectPlanYmd);

            Binding BindingInvoiceCloseYmd = new Binding("_invoice_yyyymmdd");
            BindingInvoiceCloseYmd.Mode = BindingMode.TwoWay;
            BindingInvoiceCloseYmd.Source = _entityH;
            this.datInvoiceCloseYmd.SetBinding(DatePicker.SelectedDateProperty, BindingInvoiceCloseYmd);

            Binding BindingInvoiceKbnNm = new Binding("_invoice_kbn_nm");
            BindingInvoiceKbnNm.Mode = BindingMode.TwoWay;
            BindingInvoiceKbnNm.Source = _entityH;
            this.txtInvoiceKbn.SetBinding(TextBox.TextProperty, BindingInvoiceKbnNm);

            Binding BindingInvoiceId = new Binding("_invoice_id");
            BindingInvoiceId.Mode = BindingMode.TwoWay;
            BindingInvoiceId.Source = _entityH;
            this.utlInvoice.txtID.SetBinding(TextBox.TextProperty, BindingInvoiceId);

            Binding BindingInvoiceNm = new Binding("_invoice_name");
            BindingInvoiceNm.Mode = BindingMode.TwoWay;
            BindingInvoiceNm.Source = _entityH;
            this.utlInvoice.txtNm.SetBinding(TextBox.TextProperty, BindingInvoiceNm);

            Binding BindingReceiptDivisionId = new Binding("_receipt_division_id");
            BindingReceiptDivisionId.Mode = BindingMode.TwoWay;
            BindingReceiptDivisionId.Source = _entityH;
            this.utlReceiptDivision.txtID.SetBinding(TextBox.TextProperty, BindingReceiptDivisionId);

            Binding BindingReceiptDivisionNm = new Binding("_receipt_division_nm");
            BindingReceiptDivisionNm.Mode = BindingMode.TwoWay;
            BindingReceiptDivisionNm.Source = _entityH;
            this.utlReceiptDivision.txtNm.SetBinding(TextBox.TextProperty, BindingReceiptDivisionNm);

            Binding BindingSummingUpId = new Binding("_summing_up_group_id");
            BindingSummingUpId.Mode = BindingMode.TwoWay;
            BindingSummingUpId.Source = _entityH;
            this.utlSummingUp.txtID.SetBinding(TextBox.TextProperty, BindingSummingUpId);

            Binding BindingSummingUpNm = new Binding("_summing_up_group_nm");
            BindingSummingUpNm.Mode = BindingMode.TwoWay;
            BindingSummingUpNm.Source = _entityH;
            this.utlSummingUp.txtNm.SetBinding(TextBox.TextProperty, BindingSummingUpNm);

            Binding BindingMemo = new Binding("_memo");
            BindingMemo.Mode = BindingMode.TwoWay;
            BindingMemo.Source = _entityH;
            this.txtMemo.SetBinding(TextBox.TextProperty, BindingMemo);

            Binding BindingInvoicePrice = new Binding("_invoice_price");
            BindingInvoicePrice.Mode = BindingMode.TwoWay;
            BindingInvoicePrice.Source = _entityH;
            this.txtInvoicePrice.SetBinding(TextBox.TextProperty, BindingInvoicePrice);

            Binding BindingBeforeReceipPrice = new Binding("_before_receipt_price");
            BindingBeforeReceipPrice.Mode = BindingMode.TwoWay;
            BindingBeforeReceipPrice.Source = _entityH;
            this.txtReceipBeforePrice.SetBinding(TextBox.TextProperty, BindingBeforeReceipPrice);

            Binding BindingSumPrice = new Binding("_sum_price");
            BindingSumPrice.Mode = BindingMode.TwoWay;
            BindingSumPrice.Source = _entityH;
            this.txtPrice.SetBinding(TextBox.TextProperty, BindingSumPrice);

            Binding BindingCreditPrice = new Binding("_credit_price");
            BindingCreditPrice.Mode = BindingMode.TwoWay;
            BindingCreditPrice.Source = _entityH;
            this.txtCreditPrice.SetBinding(TextBox.TextProperty, BindingCreditPrice);

            DetailSumInvoicePrice();

            #endregion

            this.utlInvoiceNo.txtID.SetZeroToNullString();
            this.utlInvoice.txtID.SetZeroToNullString();
            this.utlPerson.txtID.SetZeroToNullString();

            this.utlInvoiceNo.txtID.OnFormatString();
            this.utlInvoice.txtID.OnFormatString();
            this.utlReceiptDivision.txtID.OnFormatString();
            this.utlSummingUp.txtID.OnFormatString();
        }
        private void ConvertBeforeData(EntityReceiptH _prm_entityH,
                                       EntityReceiptH _prm_before_entityH)
        {
            #region Set Entity Detail

            //for (int i = 0; i <= _prm_entityListD.Count - 1; i++)
            //{
            //    _prm_before_entityListD.Clear();

            //    EntityReceiptD _entityD = new EntityReceiptD();

            //    _entityD._id = _prm_entityListD[i]._id;
            //    _entityD._rec_no = _prm_entityListD[i]._rec_no;
            //    _entityD._receipt_division_id = _prm_entityListD[i]._receipt_division_id;
            //    _entityD._receipt_division_nm = _prm_entityListD[i]._receipt_division_nm;
            //    _entityD._bill_site_day = _prm_entityListD[i]._bill_site_day;
            //    _entityD._price = _prm_entityListD[i]._price;
            //    _entityD._memo = _prm_entityListD[i]._memo;
            //    _entityD._lock_flg = _prm_entityListD[i]._lock_flg;
            //    _entityD._message = _prm_entityListD[i]._message;

            //    _prm_before_entityListD.Add(_entityD);
            //}

            #endregion

            #region Set Entity Head

            _prm_before_entityH._id = _prm_entityH._id;
            _prm_before_entityH._no = _prm_entityH._no;
            _prm_before_entityH._invoice_id = _prm_entityH._invoice_id;
            _prm_before_entityH._invoice_name = _prm_entityH._invoice_name;
            _prm_before_entityH._invoice_yyyymmdd = _prm_entityH._invoice_yyyymmdd;
            _prm_before_entityH._summing_up_day = _prm_entityH._summing_up_day;
            _prm_before_entityH._person_id = _prm_entityH._person_id;
            _prm_before_entityH._person_name = _prm_entityH._person_name;
            _prm_before_entityH._receipt_ymd = _prm_entityH._receipt_ymd;
            _prm_before_entityH._sum_price = _prm_entityH._sum_price;
            _prm_before_entityH._credit_price = _prm_entityH._credit_price;
            _prm_before_entityH._before_credit_price = _prm_entityH._before_credit_price;
            _prm_before_entityH._invoice_close_flg = _prm_entityH._invoice_close_flg;
            _prm_before_entityH._memo = _prm_entityH._memo;
            _prm_before_entityH._update_flg = _prm_entityH._update_flg;
            _prm_before_entityH._update_person_id = _prm_entityH._update_person_id;
            _prm_before_entityH._update_person_nm = _prm_entityH._update_person_nm;
            _prm_before_entityH._update_date = _prm_entityH._update_date;
            _prm_before_entityH._update_time = _prm_entityH._update_time;
            _prm_before_entityH._lock_flg = _prm_entityH._lock_flg;
            _prm_before_entityH._message = _prm_entityH._message;

            #endregion
        }
        // F2ボタン(クリア) クリック
        public override void btnF2_Click(object sender, RoutedEventArgs e)
        {
            this.utlFunctionKey.gFunctionKeyEnable = Utl_FunctionKey.geFunctionKeyEnable.Init;
            SetDatePickerNotEnabled();

            // 先頭選択
            this.dg.SelectedFirst();

            // ヘッダ初期化
            _entityH = null;
            SetBinding();

            // 明細初期化
            _entityListD = null;
            _entityListD = new ObservableCollection<EntityReceiptD>();

            // 明細追加
            Common.gblnDesynchronizeLock = false;
            this.btnF7_Click(null, null);

            this.dg.ItemsSource = _entityListD;

            this.utlFunctionKey.gFunctionKeyEnable = Utl_FunctionKey.geFunctionKeyEnable.Init;
            SetDatePickerNotEnabled();

            this.utlNo.txtID_IsReadOnly = false;
            //this.utlNo.IsEnabled = true;
            this.utlNo.txtID.Text = "";
            ExBackgroundWorker.DoWork_Focus(this.utlNo.txtID, 10);

            // ロック解除
            DataPgLock.gLockPg(PG_NM, "", (int)DataPgLock.geLockType.UnLock);

            Common.gblnDesynchronizeLock = false;
        }