/// <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); }
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); }
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); }
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(); }
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); }