Esempio n. 1
0
        /// <summary>
        /// Lấy giá sản phẩm cuốn
        /// </summary>
        /// <param name="sizeId">ID của bảng KHỔ SẢN PHẨM CUỐN</param>
        /// <param name="quantityId">ID của bảng SỐ LƯỢNG CUỐN</param>
        /// <param name="coverId">ID của bảng BÌA</param>
        /// <param name="bookStyleId">ID của bảng ĐÓNG CUỐN</param>
        /// <param name="blockId">ID của bảng RUỘT</param>
        /// <param name="paperId">ID của bảng GIẤY IN CUỐN</param>
        /// <param name="shipTimeId">ID của bảng THỜI GIAN GIAO</param>
        /// <returns></returns>
        public decimal?GetPriceOfBookProduct(string sizeId, string quantityId, string coverId, string bookStyleId, string blockId, string paperId, string shipTimeId)
        {
            /**
             * Kiểm tra chứng thực
             */

            if (!AuthenticateViaAuthorizationHeader())
            {
                return(null);
            }

            /**
             * Tính giá
             */

            var parameters = new Dictionary <string, object>();

            parameters.Add("ID_KHO_SAN_PHAM", sizeId);
            parameters.Add("ID_SO_LUONG_CUON", quantityId);
            parameters.Add("ID_BIA", coverId);
            parameters.Add("ID_DONG_CUON", bookStyleId);
            parameters.Add("ID_RUOT", blockId);
            parameters.Add("ID_GIAY_IN_RUOT", paperId);
            parameters.Add("ID_THOI_GIAN_GIAO", shipTimeId);
            //--Dz- lay SKU SP
            var sku_SanPham = RestDbExecutor.ExecuteScalar("SELECT SKU_SAN_PHAM FROM BIA_SPC WHERE ID = @ID_BIA", parameters);
            //--dz-end
            var GIA_BIA_RAW        = RestDbExecutor.ExecuteScalar("SELECT DON_GIA FROM GIA_BIA_SPC WHERE ID_KHO_SAN_PHAM = @ID_KHO_SAN_PHAM AND ID_SO_LUONG_CUON = @ID_SO_LUONG_CUON AND ID_BIA = @ID_BIA", parameters);
            var GIA_DONG_CUON_RAW  = RestDbExecutor.ExecuteScalar("SELECT DON_GIA FROM GIA_DONG_CUON_SPC WHERE ID_KHO_SAN_PHAM = @ID_KHO_SAN_PHAM AND ID_SO_LUONG_CUON = @ID_SO_LUONG_CUON AND ID_DONG_CUON = @ID_DONG_CUON", parameters);
            var GIA_IN_RUOT_RAW    = RestDbExecutor.ExecuteScalar("SELECT DON_GIA FROM GIA_IN_RUOT_SPC WHERE ID_KHO_SAN_PHAM = @ID_KHO_SAN_PHAM AND ID_SO_LUONG_CUON = @ID_SO_LUONG_CUON AND ID_RUOT = @ID_RUOT", parameters);
            var GIAY_GIAY_RUOT_RAW = RestDbExecutor.ExecuteScalar("SELECT DON_GIA FROM GIA_GIAY_RUOT_SPC WHERE ID_KHO_SAN_PHAM = @ID_KHO_SAN_PHAM AND ID_SO_LUONG_CUON = @ID_SO_LUONG_CUON AND ID_RUOT = @ID_RUOT AND ID_GIAY_IN_RUOT = @ID_GIAY_IN_RUOT", parameters);
            var PHAN_TRAM_GIA_RAW  = RestDbExecutor.ExecuteScalar("SELECT PHAN_TRAM_GIA FROM GIA_THOI_GIAN_GIAO_SPC WHERE ID_KHO_SAN_PHAM = @ID_KHO_SAN_PHAM AND ID_SO_LUONG_CUON = @ID_SO_LUONG_CUON AND ID_THOI_GIAN_GIAO = @ID_THOI_GIAN_GIAO", parameters);

            var GIA_BIA        = GIA_BIA_RAW != DBNull.Value ? Convert.ToDecimal(GIA_BIA_RAW) : 0;
            var GIA_DONG_CUON  = GIA_IN_RUOT_RAW != DBNull.Value ? Convert.ToDecimal(GIA_DONG_CUON_RAW) : 0;
            var GIA_IN_RUOT    = GIA_IN_RUOT_RAW != DBNull.Value ? Convert.ToDecimal(GIA_IN_RUOT_RAW) : 0;
            var GIAY_GIAY_RUOT = GIAY_GIAY_RUOT_RAW != DBNull.Value ? Convert.ToDecimal(GIAY_GIAY_RUOT_RAW) : 0;
            var PHAN_TRAM_GIA  = PHAN_TRAM_GIA_RAW != DBNull.Value ? Convert.ToDecimal(PHAN_TRAM_GIA_RAW) : 0;

            //-Dzung-Tinh toan gia. chỉ sửa đoạn này để lồng vô
            var cauHinhInCuon    = new CauHinhTinhGiaCuon((string)sku_SanPham, int.Parse(sizeId), int.Parse(quantityId), int.Parse(blockId), int.Parse(paperId));
            var giaInGiayCanMang = TinhToanCuon.GiaIn(cauHinhInCuon) + TinhToanCuon.GiaGiayRuot(cauHinhInCuon) + TinhToanCuon.GiaCanMang(cauHinhInCuon);
            //--Dzung--end

            //var GIA_TONG1 = GIA_BIA + GIA_DONG_CUON + GIA_IN_RUOT + GIAY_GIAY_RUOT;
            var GIA_TONG1     = GIA_BIA + GIA_DONG_CUON + giaInGiayCanMang;
            var GIA_THOI_GIAN = GIA_TONG1 * (PHAN_TRAM_GIA / 100);

            var GIA_TONG = GIA_TONG1 + GIA_THOI_GIAN;


            /**
             * Hỗ trợ CORS
             */

            AllowCORS();

            return(GIA_TONG);
        }
Esempio n. 2
0
        public static decimal GiaIn(CauHinhTinhGiaCuon cauHinhTGCuon)
        {
            decimal ketQua = 0;

            var chiPhiIn = TinhPhi.PhiIn(cauHinhTGCuon.CHinhIn, cauHinhTGCuon.SoToChayTong);

            var mucLoiNhuanIn_TP = (double)cauHinhTGCuon.MucLoiNhuanInThanhPham_PCT / 100;

            //Tinh theo muc loi nhuan gop /doanh thu
            ketQua = chiPhiIn + chiPhiIn * (decimal)mucLoiNhuanIn_TP / (decimal)(1 - mucLoiNhuanIn_TP);

            return(ketQua);
        }
Esempio n. 3
0
        public static decimal GiaGiayRuot(CauHinhTinhGiaCuon cauHinhTGCuon)
        {
            decimal ketQua = 0;

            var soToChay = cauHinhTGCuon.SoToChayTong;


            var    giaGiayTonBDO   = GiaGiayTonBDO.LayTheoID(cauHinhTGCuon.MaGiayAp);
            double mucLoiNhuanGiay = (double)giaGiayTonBDO.MUC_LOI_NHUAN / 100;

            //Tinh theo muc loi nhuan gop /doanh thu
            ketQua  = giaGiayTonBDO.GIA_GIAY_TON_KHO + giaGiayTonBDO.GIA_GIAY_TON_KHO * (decimal)mucLoiNhuanGiay / (1 - (decimal)mucLoiNhuanGiay);
            ketQua *= soToChay;

            return(ketQua);
        }
Esempio n. 4
0
        static void Main(string[] args)
        {
            //Console.WriteLine("tổng record test: {0}", KhoCuonBDO.LayTatCa("MENU-LO-XO").Count());//OK
            //Console.WriteLine("tổng record test: {0}", KhoCuonBDO.LayTheoID(1, "MENU-LO-XO").TEN_KHO);//OK
            CauHinhTinhGiaCuon cHGiaCuon = new CauHinhTinhGiaCuon("MENU-LO-XO", 1, 1, 2, 1);

            Console.WriteLine("Tính giá in cuốn: {0}", TinhToanCuon.GiaIn(cHGiaCuon));//OK
            //Console.WriteLine("Tính giá cán màng: {0}", TinhPhi.GiaCanMang("MENU-LO-XO", 1, 1, 2, 1));//OK
            //var cauHinhTGCuon = new CauHinhTinhGiaCuon("CATALO-KIM",7, 6, 9, 3);
            //Console.WriteLine("Tính giá in: {0}", TinhToanCuon.GiaIn(cauHinhTGCuon));//OK
            //Console.WriteLine("Tính giá Giấy: {0}", TinhPhi.GiaGiayRuot(cauHinhTGCuon("MENU-LO-XO", 1, 1, 2, 1));
            //var cauHinhTGPHang = new CauHinhTinhGiaPhang("DANH-THIEP-THUONG", 1, 1, 1, 1);
            //Test tính giá Phẳng
            //Console.WriteLine("Tính giá in phẳng: {0}", TinhToanPhang.GiaIn(cauHinhTGPHang));//OK
            //Console.WriteLine("Tính cán màng phẳng: {0}", TinhToanPhang.GiaCanMang(cauHinhTGPHang, "CM-1"));//OK
            Console.ReadLine();
        }
Esempio n. 5
0
        public static decimal GiaCanMang(CauHinhTinhGiaCuon cauHinhTGCuon)
        {
            decimal ketQua = 0;


            var maGiayRuot = cauHinhTGCuon.MaGiayAp;

            //Xác định có màng cán không bằng cách kiểm tra 2 item cuối của mã giấy áp

            string[] maGiays = maGiayRuot.Split('-');
            if (maGiays[maGiays.Length - 1] != "CM") //mục cuối dùng
            {
                return(0);
            }
            //Có thì tìm mã tờ cán phủ
            string maToCanMang = "";

            foreach (var tcp in ToCanPhuBDO.LayTatCa())
            {
                if (tcp.MA_TO_CAN.Substring(0, 2) == "CM")
                {
                    maToCanMang = tcp.MA_TO_CAN;
                    break;
                }
            }


            var soToChay = cauHinhTGCuon.SoToChayTong;

            var toCanPhuBDO = ToCanPhuBDO.LayTheoID(maToCanMang);

            var cauHinhCan1 = new CauHinhCanPhu(toCanPhuBDO.BHR, toCanPhuBDO.TOC_DO_M2, 2, toCanPhuBDO.THOI_GIAN_CHUAN_BI);

            var chiPhiCanPhu = TinhPhi.PhiCanMang(cauHinhCan1, soToChay);
            //Tinh theo muc loi nhuan gop /doanh thu
            double mucLoiNhuanIn_TP = (double)cauHinhTGCuon.MucLoiNhuanInThanhPham_PCT / 100;

            ketQua = chiPhiCanPhu + (decimal)mucLoiNhuanIn_TP * chiPhiCanPhu / (1 - (decimal)mucLoiNhuanIn_TP);

            return(ketQua);
        }