private bool SaveData() { try { var orderNo = lblOrderNo.Text; var scaleWeight = lblWeight.Text.ToDecimal(); var refDocumentNo = ""; var refDocumentType = ""; string stockNo = ""; string transportNo = ""; int transportItem = 0; var truckId = cboTruckNo.SelectedValue.ToString().ToInt16(); string createBy = Helper.GetLocalIPAddress(); using (var db = new SlaughterhouseEntities()) { using (DbContextTransaction transaction = db.Database.BeginTransaction()) { try { refDocumentNo = orderNo; refDocumentType = Constants.SO; //update order var orderItem = db.orders_item.Where(p => p.order_no == orderNo && p.product_code == product.product_code).SingleOrDefault(); if (orderItem.order_qty - orderItem.unload_qty == 0) { throw new Exception("ไม่สามารถจ่ายได้!\rจำนวนจ่ายครบแล้ว"); } var transport = db.transports.Where(p => p.ref_document_no == orderNo).SingleOrDefault(); if (transport == null) { transportNo = Helper.GetDocGenerator(Constants.TP); transportItem = 1; } else { transportNo = transport.transport_no; transportItem = transport.transport_item.Count() + 1; } if (transport == null) { var trans = new transport { transport_no = transportNo, transport_date = DateTime.Today, ref_document_no = orderNo, truck_id = truckId, transport_flag = 0, create_at = DateTime.Now, create_by = createBy }; db.transports.Add(trans); } else { transport.truck_id = truckId; db.Entry(transport).State = EntityState.Modified; } //insert transport item var transItem = new transport_item { transport_no = transportNo, product_code = product.product_code, seq = transportItem, transport_qty = 1, transport_wgh = scaleWeight, stock_no = stockNo, lot_no = lotNo, truck_id = truckId, barcode_no = 0, bom_code = 0, create_at = DateTime.Now, create_by = createBy }; db.transport_item.Add(transItem); orderItem.unload_qty += 1; orderItem.unload_wgh += scaleWeight; orderItem.modified_at = DateTime.Now; orderItem.modified_by = createBy; db.Entry(orderItem).State = EntityState.Modified; db.SaveChanges(); transaction.Commit(); } catch (Exception) { transaction.Rollback(); throw; } } } return(true); } catch (Exception) { throw; } }
private bool SaveData() { try { var createBy = Helper.GetLocalIPAddress(); var orderNo = lblOrderNo.Text; var barcodeNo = txtBarcodeNo.Text.ToLong(); var truckId = cboTruckNo.SelectedValue.ToString().ToInt16(); string stockNo = ""; int stockItem = 0; string transportNo = ""; using (var db = new SlaughterhouseEntities()) { var barcode = db.barcodes.Find(barcodeNo); if (barcode == null) { throw new Exception("ไม่พบข้อมูลบาร์โค็ดนี้! \rหรือจ่ายออกแล้ว"); } //if (barcode.active == false) //{ // throw new Exception("ข้อมูลบาร์โค็ด จ่ายออกแล้ว!"); //} var orderItems = db.orders_item.Where(p => p.order_no == orderNo && p.product_code == barcode.product_code) .OrderBy(p => p.seq).SingleOrDefault(); if (orderItems == null) { throw new Exception("สินค้าไม่ตรง กับรายการสั่งขาย!"); } if (orderItems.unload_qty >= orderItems.order_qty) { throw new Exception("จ่ายสินค้า ครบแล้ว!"); } var transport = db.transports.Where(p => p.ref_document_no == orderNo).SingleOrDefault(); var transportGenrate = db.document_generate.Find(Constants.TP); if (transport == null) { var stockGenerate = db.document_generate.Find(Constants.STK); stockNo = Constants.STK + stockGenerate.running.ToString().PadLeft(10 - Constants.STK.Length, '0'); stockGenerate.running += 1; db.Entry(stockGenerate).State = EntityState.Modified; db.SaveChanges(); stockItem = 1; transportNo = Constants.TP + transportGenrate.running.ToString().PadLeft(10 - Constants.TP.Length, '0'); } else { transportNo = transport.transport_no; var transportItem = db.transport_item.Where(p => p.transport_no == transport.transport_no).ToList(); if (transportItem.Count == 0) { var stockGenerate = db.document_generate.Find(Constants.STK); stockNo = Constants.STK + stockGenerate.running.ToString().PadLeft(10 - Constants.STK.Length, '0'); stockGenerate.running += 1; db.Entry(stockGenerate).State = EntityState.Modified; db.SaveChanges(); transportNo = transport.transport_no; } else { stockNo = transportItem[0].stock_no; } stockItem = transportItem.Count + 1; //if (transport.transport_item.Count == 0) //{ // stockNo = Constants.STK + stockGenerate.running.ToString().PadLeft(10 - Constants.STK.Length, '0'); // transportNo = transport.transport_no; //} //else //{ // stockNo = transport.transport_item.Select(p => p.stock_no).First(); //} //stockItem = transport.transport_item.Count() + 1; } using (DbContextTransaction transaction = db.Database.BeginTransaction()) { try { //insert stock var stock = new stock { stock_date = productionDate, stock_no = stockNo, stock_item = stockItem, product_code = barcode.product_code, stock_qty = barcode.qty, stock_wgh = barcode.wgh, ref_document_no = orderNo, ref_document_type = Constants.SO, lot_no = barcode.lot_no, location_code = 0, barcode_no = barcode.barcode_no, transaction_type = 2, create_by = createBy }; db.stocks.Add(stock); //insert transport if (transport == null) { var trans = new transport { transport_no = transportNo, transport_date = DateTime.Today, truck_id = truckId, ref_document_no = orderNo, transport_flag = 0, create_at = DateTime.Now, create_by = createBy }; db.transports.Add(trans); //update transport running transportGenrate.running += 1; db.Entry(transportGenrate).State = EntityState.Modified; } //insert transport item var transItem = new transport_item { transport_no = transportNo, product_code = barcode.product_code, seq = stockItem, transport_qty = barcode.qty, transport_wgh = barcode.wgh, stock_no = stockNo, lot_no = barcode.lot_no, truck_id = truckId, barcode_no = barcode.barcode_no, bom_code = orderItems.bom_code, create_at = DateTime.Now, create_by = createBy }; db.transport_item.Add(transItem); //var genDoc = db.document_generate.Find(Constants.STK); //set unload orderItems.unload_qty += barcode.qty; orderItems.unload_wgh += barcode.wgh; orderItems.modified_by = createBy; orderItems.modified_at = DateTime.Now; db.Entry(orderItems).State = EntityState.Modified; //set barcode barcode.active = false; db.Entry(barcode).State = EntityState.Modified; //var barcodeHis = new barcode_history(); //barcodeHis.barcode_no = barcode.barcode_no; //barcodeHis.product_code = barcode.product_code; //barcodeHis.production_date = barcode.production_date; //barcodeHis.lot_no = barcode.lot_no; //barcodeHis.qty = barcode.qty; //barcodeHis.wgh = barcode.wgh; //barcodeHis.active = barcode.active; //barcodeHis.qrcode_image = barcode.qrcode_image; //barcodeHis.location_code = barcode.location_code; //barcodeHis.create_at = barcode.create_at; //barcodeHis.qrcode_image = barcode.qrcode_image; ////delete barcode //db.barcodes.Remove(barcode); db.SaveChanges(); transaction.Commit(); return(true); } catch (Exception) { transaction.Rollback(); throw; } } } } catch (Exception) { throw; } }
private bool SaveData() { try { var orderNo = lblOrderNo.Text; var scaleWeight = lblWeight.Text.ToDecimal(); var refDocumentNo = ""; var refDocumentType = ""; var transportNo = ""; var truckId = cboTruckNo.SelectedValue.ToString().ToInt16(); string createBy = Helper.GetLocalIPAddress(); using (var db = new SlaughterhouseEntities()) { var receiveItem = db.receive_item.Where(p => p.product_code == product.product_code && p.lot_no == lotNo && p.chill_qty == 0) .OrderBy(p => p.seq).Take(1).SingleOrDefault(); if (receiveItem == null) { LoadLotNo(); throw new Exception("ไม่พบ Lot No\rกรุณาเลือก Lot No ใหม่!"); } using (DbContextTransaction transaction = db.Database.BeginTransaction()) { try { int seq = 0; string stockNo = ""; int bomCode = 0; if (!string.IsNullOrEmpty(orderNo)) { refDocumentNo = orderNo; refDocumentType = Constants.SO; //update order var orderItem = db.orders_item.Where(p => p.order_no == orderNo && p.product_code == product.product_code).SingleOrDefault(); if (orderItem.order_qty - orderItem.unload_qty == 0) { throw new Exception("ไม่สามารถจ่ายได้!\rจำนวนจ่ายครบแล้ว"); } bomCode = orderItem.bom_code; //update production order orderItem.unload_qty += 1; orderItem.unload_wgh += scaleWeight; orderItem.modified_at = DateTime.Now; orderItem.modified_by = createBy; db.Entry(orderItem).State = EntityState.Modified; var transport = db.transports.Where(p => p.ref_document_no == orderNo).SingleOrDefault(); var transportGenrate = db.document_generate.Find(Constants.TP); if (transport == null) { transportNo = Constants.TP + transportGenrate.running.ToString().PadLeft(10 - Constants.TP.Length, '0'); //update transport running transportGenrate.running += 1; db.Entry(transportGenrate).State = EntityState.Modified; } else { transportNo = transport.transport_no; } } else { var issDoc = db.document_generate.Find(Constants.ISS);// (from p in db.document_generate where p.document_type == Constants.ISS select p).SingleOrDefault(); refDocumentNo = Constants.ISS + issDoc.running.ToString().PadLeft(10 - Constants.ISS.Length, '0'); refDocumentType = Constants.ISS; } var stockGenerate = db.document_generate.Find(Constants.STK); //check stock_item_running var stockItemRunning = db.stock_item_running.Where(p => p.doc_no.Equals(refDocumentNo)).SingleOrDefault(); if (stockItemRunning == null) { //get new stock doc no stockNo = Constants.STK + stockGenerate.running.ToString().PadLeft(10 - Constants.STK.Length, '0'); seq = 1; } else { stockNo = stockItemRunning.stock_no; seq = stockItemRunning.stock_item + 1; } if (!string.IsNullOrEmpty(orderNo)) { //update receive item receiveItem.transfer_qty = 1; receiveItem.transfer_wgh = scaleWeight; var transport = db.transports.Find(transportNo); if (transport == null) { var trans = new transport { transport_no = transportNo, transport_date = DateTime.Today, ref_document_no = orderNo, truck_id = truckId, transport_flag = 0, create_at = DateTime.Now, create_by = createBy }; db.transports.Add(trans); } else { transport.truck_id = truckId; db.Entry(transport).State = EntityState.Modified; } //insert transport item var transItem = new transport_item { transport_no = transportNo, product_code = product.product_code, seq = seq, transport_qty = 1, transport_wgh = scaleWeight, stock_no = stockNo, lot_no = lotNo, truck_id = truckId, barcode_no = 0, bom_code = bomCode, create_at = DateTime.Now, create_by = createBy }; db.transport_item.Add(transItem); } else { //var issued = db.issued_info.Where(p => p.issued_date == productionDate // && p.product_code == product.product_code // && p.lot_no == lotNo).SingleOrDefault(); var issuedInfo = db.issued_info.Find(productionDate, product.product_code, lotNo); if (issuedInfo == null) { var newIssued = new issued_info { issued_date = productionDate, product_code = product.product_code, lot_no = lotNo, issued_qty = 1, issued_wgh = scaleWeight, usage_qty = 0, usage_wgh = 0, active = true, create_at = DateTime.Now, create_by = createBy }; db.issued_info.Add(newIssued); } else { issuedInfo.issued_qty += 1; issuedInfo.issued_wgh += scaleWeight; issuedInfo.modified_at = DateTime.Now; issuedInfo.modified_by = createBy; db.Entry(issuedInfo).State = EntityState.Modified; } } //update receive item receiveItem.chill_qty = 1; receiveItem.chill_wgh = scaleWeight; receiveItem.modified_at = DateTime.Now; receiveItem.modified_by = createBy; db.Entry(receiveItem).State = EntityState.Modified; //insert stock var stock = new stock { stock_date = productionDate, stock_no = stockNo, stock_item = seq, product_code = product.product_code, stock_qty = 1, stock_wgh = scaleWeight, ref_document_no = refDocumentNo, ref_document_type = refDocumentType, lot_no = lotNo, location_code = 2, //ห้องเย็นเก็บหมุซีก barcode_no = 0, transaction_type = 2, create_by = createBy }; db.stocks.Add(stock); //รับหมูซีก เครื่องใน ไม่ต้อง update stock_item_running เพราะเริ่มตาม receive_item.seq if (stockItemRunning == null) { //insert stock_item_running var newStockItem = new stock_item_running { doc_no = refDocumentNo, stock_no = stockNo, stock_item = 1, create_by = createBy }; db.stock_item_running.Add(newStockItem); //update document_generate stockGenerate.running += 1; db.Entry(stockGenerate).State = EntityState.Modified; } else { //update stock_item_running stockItemRunning.stock_item += 1; db.Entry(stockItemRunning).State = EntityState.Modified; } db.SaveChanges(); transaction.Commit(); } catch (Exception) { transaction.Rollback(); throw; } } } return(true); } catch (Exception) { throw; } }