private void tbutSimulate_Click(object sender, EventArgs e) { int transactionLineID = Convert.ToInt32(dgvMaterial.Rows[dgvMaterial.CurrentRow.Index].Cells["transactionlineid"].Value.ToString()); var mat = HeadModel.Materials.Where(i => i.TransactionLineID == transactionLineID).First(); ReshearHead.SetMaterialRemain(mat); int cutLineID = Convert.ToInt32(dgvFinishGood.Rows[dgvFinishGood.CurrentRow.Index].Cells["lineid"].Value.ToString()); var cut = HeadModel.CuttingDesign.Where(i => i.LineID == cutLineID).First(); SimulateReshearModel sim = new SimulateReshearModel(); sim.WorkOrderID = HeadModel.WorkOrderID; sim.MaterialTransLineID = transactionLineID; sim.CuttingLineID = cutLineID; sim.OptionNum = 1; sim.WidthSuggsQty = mat.Width / cut.Width; sim.WidthActualQty = sim.WidthSuggsQty; sim.WidthSuggsRemain = ReshearHead.RemainWidthOpt1 - (sim.WidthSuggsQty * cut.Width); sim.WidthActualRemain = ReshearHead.RemainWidthOpt1 - (sim.WidthActualQty * cut.Width); sim.LengthSuggsQty = mat.Length / cut.Length; sim.LengthActualQty = sim.LengthSuggsQty; sim.LengthSuggsRemain = ReshearHead.RemainLengthOpt1 - (sim.LengthSuggsQty * cut.Length); sim.LengthActualRemain = ReshearHead.RemainLengthOpt1 - (sim.LengthActualQty * cut.Length); var result = _repo.SaveReshearSimulation(epiSession, sim).Where(i => i.OptionNum == 1); ListOption1Grid(result); ListOption1QtyGrid(result); ReshearHead.SetMaterialRemain(mat); SimulateReshearModel simll = new SimulateReshearModel(); simll.WorkOrderID = HeadModel.WorkOrderID; simll.MaterialTransLineID = transactionLineID; simll.CuttingLineID = cutLineID; simll.OptionNum = 2; simll.WidthSuggsQty = mat.Width / cut.Length; simll.WidthActualQty = mat.Width / cut.Length; simll.WidthSuggsRemain = ReshearHead.RemainWidthOpt1 - (simll.WidthSuggsQty * cut.Length); simll.WidthActualRemain = ReshearHead.RemainWidthOpt1 - (simll.WidthActualQty * cut.Length); simll.LengthSuggsQty = mat.Length / cut.Width; simll.LengthActualQty = mat.Length / cut.Width; simll.LengthSuggsRemain = ReshearHead.RemainLengthOpt1 - (simll.LengthSuggsQty * cut.Width); simll.LengthActualRemain = ReshearHead.RemainLengthOpt1 - (simll.LengthActualQty * cut.Width); var resultLen = _repo.SaveReshearSimulation(epiSession, simll).Where(i => i.OptionNum == 2); ListOption2rid(resultLen); ListOption2QtyGrid(resultLen); }
public IEnumerable<SimulateReshearModel> SaveReshearSimulation(SessionInfo _session, SimulateReshearModel model) { string sql = string.Format(@"IF NOT EXISTS ( SELECT * FROM ucc_pln_ReShearSimulation (NOLOCK) WHERE WorkOrderID = {0} AND MaterialTransLineID = {1} AND CuttingLineID = {2} AND OptionNum = {3} ) BEGIN INSERT INTO ucc_pln_ReShearSimulation (WorkOrderID ,MaterialTransLineID ,CuttingLineID ,OptionNum ,WidthSuggsQty ,WidthActualQty ,WidthSuggsRemain ,WidthActualRemain ,LengthSuggsQty ,LengthActualQty ,LengthSuggsRemain ,LengthActualRemain ,SelectedFlag ,CreationDate ,LastUpdateDate ,CreatedBy ,UpdatedBy ,Quantity) VALUES ({0} --<WorkOrderID, bigint,> ,{1} --<MaterialTransLineID, bigint,> ,{2} --<CuttingLineID, bigint,> ,{3} --<OptionNum, int,> ,{4} --<WidthSuggsQty, decimal(20,9),> ,{5} --<WidthActualQty, decimal(20,9),> ,{6} --<WidthSuggsRemain, decimal(20,9),> ,{7} --<WidthActualRemain, decimal(20,9),> ,{8} --<LengthSuggsQty, decimal(20,9),> ,{9} --<LengthActualQty, decimal(20,9),> ,{10} --<LengthSuggsRemain, decimal(20,9),> ,{11} --<LengthActualRemain, decimal(20,9),> ,{12} --<SelectedFlag, int,> ,GETDATE() --<CreationDate, datetime,> ,GETDATE() --<LastUpdateDate, datetime,> ,N'{13}' --<CreatedBy, nvarchar(45),> ,N'{13}' --<UpdatedBy, nvarchar(45),> ,N'{14}' --<Quantity, decimal(20,9),> ) END ELSE BEGIN UPDATE ucc_pln_ReShearSimulation SET WorkOrderID = {0} --<WorkOrderID, bigint,> ,MaterialTransLineID = {1} --<MaterialTransLineID, bigint,> ,CuttingLineID = {2} --<CuttingLineID, bigint,> ,OptionNum = {3} --<OptionNum, int,> ,WidthSuggsQty = {4} --<WidthSuggsQty, decimal(20,9),> ,WidthActualQty = {5} --<WidthActualQty, decimal(20,9),> ,WidthSuggsRemain = {6} --<WidthSuggsRemain, decimal(20,9),> ,WidthActualRemain = {7} --<WidthActualRemain, decimal(20,9),> ,LengthSuggsQty = {8} --<LengthSuggsQty, decimal(20,9),> ,LengthActualQty = {9} --<LengthActualQty, decimal(20,9),> ,LengthSuggsRemain = {10} --<LengthSuggsRemain, decimal(20,9),> ,LengthActualRemain = {11} --<LengthActualRemain, decimal(20,9),> ,SelectedFlag = {12} --<SelectedFlag, int,> ,LastUpdateDate = GETDATE() --<LastUpdateDate, datetime,> ,UpdatedBy = N'{13}' --<UpdatedBy, nvarchar(45),> ,Quantity = {14} --<Quantity, decimal(20,9),> WHERE WorkOrderID = {0} AND MaterialTransLineID = {1} AND CuttingLineID = {2} AND OptionNum = {3} END" + Environment.NewLine , model.WorkOrderID , model.MaterialTransLineID , model.CuttingLineID , model.OptionNum , model.WidthSuggsQty , model.WidthActualQty , model.WidthSuggsRemain , model.WidthActualRemain , model.LengthSuggsQty , model.LengthActualQty , model.LengthSuggsRemain , model.LengthActualRemain , model.SelectedFlag , _session.UserID , model.Quantity ); //Update PartLot.CheckBox01 = 1 to change status has already used. /* sql += string.Format(@"UPDATE PartLot SET CheckBox01 = 1, ShortChar05 = N'{2}', Date03 = CONVERT(DATETIME, '{3}',103), Number08 = 2 WHERE PartNum = N'{0}' AND LotNum = N'{1}'" , model.MCSSNo, model.SerialNo, model.WorkOrderNum, model.WorkDate.ToString("dd/MM/yyyy hh:mm:ss")); */ Repository.Instance.ExecuteWithTransaction(sql, "Add Sim RS"); return GetReshearSimulation(model.WorkOrderID); }