示例#1
0
        public async Task <IHttpActionResult> GetDetails(string id)
        {
            var _ParentUnitCode = _service.GetParentUnitCode();
            var result          = new TransferObj <NvXuatKhacVm.Dto>();
            var temp            = new NvXuatKhacVm.Dto();
            var phieu           = _service.FindById(id);

            if (phieu != null)
            {
                temp = Mapper.Map <NvVatTuChungTu, NvXuatKhacVm.Dto>(phieu);
                var chiTietPhieu = _service.UnitOfWork.Repository <NvVatTuChungTuChiTiet>().DbSet.Where(x => x.MaChungTuPk == phieu.MaChungTuPk).ToList();
                temp.DataDetails = Mapper.Map <List <NvVatTuChungTuChiTiet>, List <NvXuatKhacVm.DtoDetail> >(chiTietPhieu);
                temp.DataDetails.ForEach(
                    x =>
                {
                    x.CalcResult();
                    x.GiaVon = x.GiaVon;
                }
                    );
                if (phieu.TrangThai != 10)
                {
                    decimal sum = 0;
                    List <NvXuatKhacVm.DtoDetail> listDetails = new List <NvXuatKhacVm.DtoDetail>();
                    var     unitCode  = _service.GetCurrentUnitCode();
                    var     ky        = CurrentSetting.GetKhoaSo(unitCode);
                    var     tableName = ProcedureCollection.GetTableName(ky.Year, ky.Period);
                    var     MaKho     = temp.MaKhoXuat;
                    decimal giaVon    = 0;
                    //string kyKeToan = _servicePeriod.GetKyKeToan((DateTime)phieu.NgayCT);
                    foreach (var value in temp.DataDetails)
                    {
                        var sp   = _service.UnitOfWork.Repository <MdMerchandisePrice>().DbSet.Where(x => x.MaVatTu.Equals(value.MaHang) && x.MaDonVi.StartsWith(_ParentUnitCode)).FirstOrDefault();
                        var item = _service.UnitOfWork.Repository <MdMerchandise>().DbSet.Where(x => x.MaVatTu.Equals(value.MaHang) && x.UnitCode.StartsWith(_ParentUnitCode)).FirstOrDefault();

                        if (sp != null)
                        {
                            value.TyLeVATVao = sp.TyLeVatVao;
                        }
                        if (item != null)
                        {
                            value.TenHang = item.TenHang;
                        }
                        List <MdMerchandiseVm.DataXNT> data = ProcedureCollection.GetDataInventoryByCondition(unitCode, MaKho, value.MaHang, tableName, _ParentUnitCode);
                        if (data.Count > 0)
                        {
                            decimal.TryParse(value.GiaVon.ToString(), out giaVon);
                            value.DonGia     = giaVon;
                            value.TyLeVATRa  = data[0].TyLeVATRa;
                            value.TyLeVATVao = data[0].TyLeVATVao;
                            value.ThanhTien  = value.DonGia * value.SoLuong;
                            sum += (decimal)value.ThanhTien;
                        }
                        listDetails.Add(value);
                    }
                    temp.DataDetails = listDetails;
                    var tyLe = _service.UnitOfWork.Repository <MdTax>().DbSet.Where(x => x.MaLoaiThue == temp.VAT).Select(x => x.TaxRate).FirstOrDefault();
                    if (tyLe != null)
                    {
                        temp.TienVat = sum * (tyLe / 100);
                    }
                    else
                    {
                        temp.TienVat = 0;
                    }

                    temp.ThanhTienTruocVat = sum;
                    temp.ThanhTienSauVat   = temp.ThanhTienTruocVat + temp.TienVat;
                }
                result.Data   = temp;
                result.Status = true;
                return(Ok(result));
            }
            return(NotFound());
        }
示例#2
0
        public NvXuatKhacVm.ReportModel CreateReport(string id)
        {
            var     _ParentUnitCode = GetParentUnitCode();
            var     result          = new NvXuatKhacVm.ReportModel();
            decimal sum             = 0;
            var     exsit           = FindById(id);

            if (exsit != null)
            {
                result = Mapper.Map <NvVatTuChungTu, NvXuatKhacVm.ReportModel>(exsit);
                var nhanvien = UnitOfWork.Repository <AU_NGUOIDUNG>().DbSet.Where(x => x.Username == exsit.ICreateBy).FirstOrDefault();
                if (nhanvien != null)
                {
                    result.NameNhanVienCreate = nhanvien.TenNhanVien != null ? nhanvien.TenNhanVien : "";
                }
                var detailData = UnitOfWork.Repository <NvVatTuChungTuChiTiet>().DbSet.Where(x => x.MaChungTuPk == exsit.MaChungTuPk).ToList();
                result.DataReportDetails = Mapper.Map <List <NvVatTuChungTuChiTiet>, List <NvXuatKhacVm.ReportDetailModel> >(detailData);
                var sup = UnitOfWork.Repository <MdSupplier>().DbSet.FirstOrDefault(x => x.MaNCC == result.MaKhachHang);
                var cus = UnitOfWork.Repository <MdCustomer>().DbSet.FirstOrDefault(x => x.MaKH == result.MaKhachHang);
                if (sup != null)
                {
                    result.TenKhachHang    = sup.TenNCC;
                    result.DiaChiKhachHang = sup.DiaChi;
                }
                else if (cus != null)
                {
                    result.TenKhachHang    = cus.TenKH;
                    result.DiaChiKhachHang = cus.DiaChi;
                }
                var typeR = UnitOfWork.Repository <MdTypeReason>().DbSet.FirstOrDefault(x => x.MaLyDo == result.MaLyDo);
                if (typeR != null)
                {
                    result.TenLyDo = typeR.TenLyDo;
                }
                if (exsit.TrangThai != 10)
                {
                    List <NvXuatKhacVm.DtoDetail> listDetails = new List <NvXuatKhacVm.DtoDetail>();
                    var ky        = CurrentSetting.GetKhoaSo(exsit.UnitCode);
                    var tableName = ProcedureCollection.GetTableName(ky.Year, ky.Period);
                    var MaKho     = exsit.MaKhoXuat;
                    //string kyKeToan = _servicePeriod.GetKyKeToan((DateTime)phieu.NgayCT);
                    foreach (var value in result.DataReportDetails)
                    {
                        List <MdMerchandiseVm.DataXNT> data = ProcedureCollection.GetDataInventoryByCondition(exsit.UnitCode, MaKho, value.MaHang, tableName, _ParentUnitCode);
                        value.GiaVon    = value.GiaVon;
                        value.DonGia    = value.GiaVon;
                        value.ThanhTien = value.DonGia * value.SoLuong;
                        sum            += (decimal)value.ThanhTien;
                    }
                    var tyLe = UnitOfWork.Repository <MdTax>().DbSet.Where(x => x.MaLoaiThue == exsit.VAT).Select(x => x.TaxRate).FirstOrDefault();
                    if (tyLe != null)
                    {
                        result.TienVat = sum * (tyLe / 100);
                    }
                    else
                    {
                        result.TienVat = 0;
                    }

                    result.ThanhTienTruocVat = sum;
                    result.ThanhTienSauVat   = result.ThanhTienTruocVat + result.TienVat;
                }
                var warehouses      = UnitOfWork.Repository <MdWareHouse>().DbSet;
                var exportWareHouse = warehouses.FirstOrDefault(x => x.MaKho == result.MaKhoXuat);
                result.TenKhoXuat = exportWareHouse != null ? exportWareHouse.TenKho : "";
            }
            var unitCode   = GetCurrentUnitCode();
            var createDate = DateTime.Now;

            result.CreateDay   = createDate.Day;
            result.CreateMonth = createDate.Month;
            result.CreateYear  = createDate.Year;
            result.TenDonVi    = CurrentSetting.GetUnitName(unitCode);
            result.DiaChiDonVi = CurrentSetting.GetUnitAddress(unitCode);
            //GetNhanVien
            if (HttpContext.Current != null && HttpContext.Current.User is ClaimsPrincipal)
            {
                var currentUser = (HttpContext.Current.User as ClaimsPrincipal);
                var name        = currentUser.Identity.Name;
                var nhanVien    = UnitOfWork.Repository <AU_NGUOIDUNG>().DbSet.Where(x => x.Username == name).FirstOrDefault();
                if (nhanVien != null)
                {
                    result.Username = nhanVien.TenNhanVien;
                }
                else
                {
                    result.Username = "******";
                }
            }

            return(result);
        }