Ejemplo n.º 1
0
        private void PART_Editor_GotFocus(object sender, RoutedEventArgs e)
        {
            if (WarehouseCache == null)
            {
                return;
            }

            var selectedItem = dgProjectJournalLinePageGrid.SelectedItem as ProjectJournalLineLocal;

            if (selectedItem?._Warehouse != null)
            {
                var selected = (InvWarehouse)WarehouseCache.Get(selectedItem._Warehouse);
                setLocation(selected, selectedItem);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 快件保存
        /// </summary>
        /// <param name="model"></param>
        /// <param name="carrier"></param>
        /// <returns></returns>
        public Result <WishExpressModel> AddExpress(WishExpressModel model, int carrier)
        {
            var result = new Result <WishExpressModel> {
                HasError = false, Data = model
            };
            var carrierModel = EpcDal.Instance.GetCarrier(carrier.ToString(), model.Express.TrueWeight);

            if (carrierModel != null)
            {
                //替换产品号
                model.Express.ProductCode  = carrierModel.YanWenProductCode;
                model.Express.ServiceCode  = carrierModel.ServiceCode;
                model.Express.SupplierCode = carrierModel.SupplierCode;
            }
            //保存验证
            var varifyResult = VerifySave(new Result <WishExpressModel> {
                HasError = false, Data = model
            });

            if (varifyResult.HasError)
            {
                result.HasError = varifyResult.HasError;
                result.ErrorMsg = varifyResult.ErrorMsg;
                return(result);
            }
            varifyResult.Data.Express.SupplierWeight = varifyResult.Data.Express.TrueWeight;
            //note:调取打印分拣码
            var sortingCode = ExpressOperate.Instance.GetPrintSortingCode(model.Express);

            if (sortingCode.HasError)
            {
                result.HasError = true;
                result.ErrorMsg = sortingCode.ErrorMsg;
                return(result);
            }
            #region 验证中外运等产品是否计泡

            if (model.ProductVerify.IsGlobalWeight)
            {
                var resultGlobal = ExpressOperate.Instance.JudgeGlobal(model.ServiceVerify, model.Express);
                if (resultGlobal.HasError)
                {
                    result.HasError = true;
                    result.ErrorMsg = resultGlobal.ErrorMsg;
                    return(result);
                }
                model.ProductVerify.IsGlobalWeight = resultGlobal.Data;
            }

            #endregion

            #region 附加重量类

            //var resultConvertAdditionalWeight = ExpressOperate.Instance.ConvertAdditionalWeight(model.Express, model.ServiceVerify, model.ProductVerify);
            //if (resultConvertAdditionalWeight.HasError)
            //{
            //    result.HasError = true;
            //    result.ErrorMsg = resultConvertAdditionalWeight.ErrorMsg;
            //    return result;
            //}
            //model.ExpressAdditionalWeight = resultConvertAdditionalWeight.Data;
            #endregion

            varifyResult.Data.Express.PrintSortingCode = sortingCode.Data;
            varifyResult.Data.Express.AreaCode         = WarehouseCache.GetWarehouse(varifyResult.Data.Express.CompanyCode).AreaCode;
            result.Data = varifyResult.Data;
            //保存TMS临时表
            SaveTamExpressDal.Instance.InsertExpressReceiverCustom(varifyResult);
            result.DetailMsg = varifyResult.Data.Express.PrintSortingCode;
            return(result);
        }
Ejemplo n.º 3
0
        private void SelectedItem_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        {
            var rec = (ProjectJournalLineLocal)sender;

            switch (e.PropertyName)
            {
            case "Item":
                if (!rec.InsidePropChange)
                {
                    rec.InsidePropChange = true;
                    SetItem(rec);
                    getCostAndSales(rec);
                    rec.InsidePropChange = false;
                }
                break;

            case "Project":
                var pro = (Uniconta.DataModel.Project)ProjectCache.Get(rec._Project);
                if (pro != null)
                {
                    if (pro._Dim1 != null)
                    {
                        rec.Dimension1 = pro._Dim1;
                    }
                    if (pro._Dim2 != null)
                    {
                        rec.Dimension2 = pro._Dim2;
                    }
                    if (pro._Dim3 != null)
                    {
                        rec.Dimension3 = pro._Dim3;
                    }
                    if (pro._Dim4 != null)
                    {
                        rec.Dimension4 = pro._Dim4;
                    }
                    if (pro._Dim5 != null)
                    {
                        rec.Dimension5 = pro._Dim5;
                    }
                    rec.Invoiceable = pro._InvoiceAble;
                    getCostAndSales(rec);
                    TimePriceLookup?.GetEmployeePrice(rec);
                    setTask(pro, rec);
                }
                break;

            case "PrCategory":
                getCostAndSales(rec);
                SetInvoiceable(rec);
                break;

            case "Employee":
                if (rec._Employee != null)
                {
                    var emp = (Uniconta.DataModel.Employee)EmployeeCache?.Get(rec._Employee);
                    if (emp?._PayrollCategory != null)
                    {
                        rec.PayrollCategory = emp._PayrollCategory;
                    }
                    if (!rec.InsidePropChange)
                    {
                        rec.InsidePropChange = true;
                        TimePriceLookup?.GetEmployeePrice(rec);
                        PayrollCat(rec, true);     //rec.InsidePropChange = false; done inside method
                    }
                }
                break;

            case "PayrollCategory":
                if (rec._Employee != null && rec._PayrollCategory != null)
                {
                    if (!rec.InsidePropChange)
                    {
                        rec.InsidePropChange = true;
                        TimePriceLookup?.GetEmployeePrice(rec);
                        PayrollCat(rec, true);     //rec.InsidePropChange = false; done inside method
                    }
                }
                break;

            case "Warehouse":
                if (WarehouseCache != null)
                {
                    var selected = (InvWarehouse)WarehouseCache.Get(rec._Warehouse);
                    setLocation(selected, rec);
                }
                break;

            case "Location":
                if (string.IsNullOrEmpty(rec._Warehouse))
                {
                    rec._Location = null;
                }
                break;

            case "TimeFrom":
            case "TimeTo":
                if (rec._TimeTo >= rec._TimeFrom)
                {
                    rec.Qty = (rec._TimeTo - rec._TimeFrom) / 60d;
                }
                else
                {
                    rec.Qty = ((rec._TimeTo + 24 * 60) - rec._TimeFrom) / 60d;
                }
                break;

            case "Qty":
                UpdatePrice(rec);
                double tim;
                if (rec._TimeTo >= rec._TimeFrom)
                {
                    tim = (rec._TimeTo - rec._TimeFrom) / 60d;
                }
                else
                {
                    tim = ((rec._TimeTo + 24 * 60) - rec._TimeFrom) / 60d;
                }

                if (rec._Qty != tim)
                {
                    rec._TimeFrom = 0;
                    rec._TimeTo   = 0;
                }
                break;

            case "EAN":
                FindOnEAN(rec);
                break;

            case "SerieBatch":
                if (ItemsCache != null)
                {
                    if (rec._Item == null || rec._Item == string.Empty)
                    {
                        GetItemFromSerailNumber(rec);
                    }
                }
                break;

            case "Task":
                if (!rec.InsidePropChange)
                {
                    rec.InsidePropChange = true;
                    if (rec._Task != null && rec._Project != null)
                    {
                        var proj = (Uniconta.DataModel.Project)ProjectCache.Get(rec._Project);
                        var task = proj.FindTask(rec._Task);
                        if (task != null)
                        {
                            rec.WorkSpace       = task._WorkSpace;
                            rec.PayrollCategory = task._PayrollCategory != null ? task._PayrollCategory : rec.PayrollCategory;
                        }
                    }
                    rec.InsidePropChange = false;
                }
                break;

            case "WorkSpace":
                if (!rec.InsidePropChange)
                {
                    rec.InsidePropChange = true;
                    if (rec._Task != null && rec._Project != null)
                    {
                        var proj = (Uniconta.DataModel.Project)ProjectCache.Get(rec._Project);
                        var task = proj.FindTask(rec._Task);
                        if (task != null && task._WorkSpace != rec._WorkSpace)
                        {
                            rec.Task = null;
                        }
                    }
                    rec.InsidePropChange = false;
                }
                break;
            }
        }