Ejemplo n.º 1
0
        public async Task <dynamic> capNhatTrangThaiDonDatHang(DonDatHangUpdateStatus item)
        {
            using (var connection = new SqlConnection(connectionstr))
            {
                IEnumerable <SanPhamSeriDDH> listSeri = null;
                string getDDH = "select * from CHITIETDONDATHANG WHERE MaDDH = " + item.MaDDH;
                listSeri = await connection.QueryAsync <SanPhamSeriDDH>(getDDH, commandType : CommandType.Text);

                if (item.TrangThai == -1)
                {
                    await connection.OpenAsync();

                    using (SqlTransaction transaction = connection.BeginTransaction())
                    {
                        string nhanVien = null;
                        if (item.MaNV != null)
                        {
                            nhanVien = item.MaNV.ToString();
                        }
                        //var transaction = connection.BeginTransaction();
                        try
                        {
                            var p = new DynamicParameters();
                            p.Add("@MaNV", nhanVien);
                            p.Add("@TrangThai", item.TrangThai);
                            p.Add("@NgayXuLy", item.NgayXuLy);
                            p.Add("@ID", item.MaDDH);
                            var updateDDH = @"DECLARE @TinhTrang INT
		                                SET @TinhTrang = (SELECT TinhTrang FROM DONDATHANG WHERE MaDDH=CONVERT(int, @ID))
			                                IF @TinhTrang = 1
				                                SET @TinhTrang = -1
                                        UPDATE dbo.DONDATHANG
                                            SET
		                                        MaNV=@MaNV,
		                                        TrangThai=@TrangThai, 
		                                        TinhTrang=@TinhTrang,
		                                        NgayXuLy = @NgayXuLy

                         WHERE MaDDH = @ID"; //item
                            connection.Execute(updateDDH, p, transaction);

                            //return listSeri
                            foreach (var itemSeri in listSeri)
                            {
                                var p2 = new DynamicParameters();
                                p2.Add("@MaSeri", itemSeri.MaSeri);
                                var updateSeriSP = @"UPDATE dbo.SANPHAM
                                    SET TrangThai= 1
                                    WHERE MaSeri= @MaSeri "; //item
                                connection.ExecuteScalar(updateSeriSP, p2, transaction);
                            }
                            transaction.Commit();
                        }
                        catch (Exception ex)
                        {
                            //Log the exception (ex)
                            //System.Diagnostics.Debug.WriteLine(ex);
                            try
                            {
                                transaction.Rollback();
                            }
                            catch (Exception ex2)
                            {
                                // Handle any errors that may have occurred
                                // on the server that would cause the rollback to fail, such as
                                // a closed connection.
                                // Log the exception ex2
                                var response = await tbl.TBLoi(ThongBaoLoi.Loi500, "Can not Rollback!");

                                return(response.Content);
                            }
                            var response2 = await tbl.TBLoi(ThongBaoLoi.Loi500, "Upadate status order fail");

                            return(response2.Content);
                        }
                    }
                }
                else
                {
                    var p = new DynamicParameters();
                    p.Add("@ID", item.MaDDH);
                    p.Add("@TrangThai", item.TrangThai);
                    p.Add("@MaNV", item.MaNV);
                    p.Add("@NgayXuLy", item.NgayXuLy);
                    connection.Query <string>("SP_CAPNHATTRANGTHAIDDH", p, commandType: CommandType.StoredProcedure);
                }
                object result = await this.chiTietDonDatHangAD(item.MaDDH);

                return(result);
            }
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> capNhatTrangThaiDonDatHang(DonDatHangUpdateStatus item)
        {
            dynamic result = await _donDatHangRepository.capNhatTrangThaiDonDatHang(item);

            return(Ok(result));
        }