You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Aucma.Scada/Aucma.Scada.UI/viewModel/AssemblyPlan/QuantityIssuedViewModel.cs

155 lines
5.3 KiB
C#

using Aucma.Scada.Business;
using Aucma.Scada.Model.domain;
using GalaSoft.MvvmLight;
using GalaSoft.MvvmLight.Command;
using HighWayIot.Config;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Input;
namespace Aucma.Scada.UI.viewModel.AssemblyPlan
{
public class QuantityIssuedViewModel : ViewModelBase
{
private AssemblyPlanBusiness assemblyPlanBusiness = AssemblyPlanBusiness.Instance;
private AppConfig appConfig = AppConfig.Instance;
public QuantityIssuedViewModel(ProductPlanInfo productPlanInfo)
{
PlanInfoTransmitCommand = new RelayCommand(PlanInfoTransmit);
ClearTransmitAmountCommand = new RelayCommand(ClearTransmitAmount);
KeypadButtonCommand = new RelayCommand<object>(obj => KeypadButton(obj));
CloseWindowCommand = new RelayCommand<object>(t => CloseWindow(t));
PlanInfo = productPlanInfo;
}
private ProductPlanInfo _PlanInfo = new ProductPlanInfo();
public ProductPlanInfo PlanInfo
{
get { return _PlanInfo; }
set { _PlanInfo = value; RaisePropertyChanged(nameof(PlanInfo)); }
}
private string _TransmitAmount = string.Empty;
public string TransmitAmount
{
get { return _TransmitAmount; }
set { _TransmitAmount = value; RaisePropertyChanged(nameof(TransmitAmount)); }
}
public RelayCommand PlanInfoTransmitCommand { get; set; }
public RelayCommand ClearTransmitAmountCommand { get; set; }
public RelayCommand<object> KeypadButtonCommand { get;set; }
public RelayCommand<object> CloseWindowCommand { get; set; }
private void PlanInfoTransmit()
{
var productPlanInfo = _PlanInfo;
if(productPlanInfo != null)
{ // 8302501428 shell 8301501047 liner 8301501067
var materialType = productPlanInfo.materialCode;
bool shellResult = assemblyPlanBusiness.JudgmentStock(productPlanInfo, Convert.ToInt32(_TransmitAmount), appConfig.shellMaterialType,appConfig.shellStoreCode);
if (!shellResult)
{
MessageBox.Show("计划下达失败,箱壳物料库存不足", "提示", MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.OK, MessageBoxOptions.DefaultDesktopOnly);
return;
}
bool linerResult = assemblyPlanBusiness.JudgmentStock(productPlanInfo, Convert.ToInt32(_TransmitAmount), appConfig.linerMaterialType, appConfig.linerStoreCode);
if (!linerResult)
{
MessageBox.Show("计划下达失败,内胆物料库存不足", "提示", MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.OK, MessageBoxOptions.DefaultDesktopOnly);
return;
}
//if (!shellResult && !linerResult)
//{
// MessageBox.Show("计划下达失败,箱壳、内胆物料库存不足");
// return;
//}else if(!shellResult || !linerResult)
//{
// if (!shellResult)
// {
// MessageBox.Show("计划下达失败,箱壳物料库存不足");
// return;
// }
// else if (!linerResult)
// {
// MessageBox.Show("计划下达失败,内胆物料库存不足");
// return;
// }
//}
}
else
{
MessageBox.Show("生产计划获取失败,加载为空", "提示", MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.OK, MessageBoxOptions.DefaultDesktopOnly);
return;
}
bool result = assemblyPlanBusiness.PlanTransmitByProductPlan(_PlanInfo.planCode, Convert.ToInt32(_TransmitAmount));
if (result)
{
MessageBox.Show("执行计划维护成功", "提示", MessageBoxButton.OK, MessageBoxImage.Information, MessageBoxResult.OK, MessageBoxOptions.DefaultDesktopOnly);
}
}
private void ClearTransmitAmount()
{
string amount = _TransmitAmount.ToString();
if(amount.Length > 0)
{
TransmitAmount = amount.Substring(0, amount.Length - 1);
}
}
private async Task KeypadButton(object obj)
{
await Task.Run(() =>
{
try
{
Application.Current.Dispatcher.Invoke(() =>
{
var info = obj as string;
TransmitAmount += info;
});
}
catch (Exception ex)
{
}
});
}
private void CloseWindow(object parameter)
{
var window = parameter as Window;
if (window != null)
{
window.Close();
}
}
}
}