public static int MucLNhuanTheoSLuong(string maSo, int soLuong = 0) { int result = 0; //tỉ lệ lợi nhuận trên doanh thu if (soLuong == 0 || string.IsNullOrEmpty(maSo)) { return(0); } ///dãy số lượng: 9;19;29;39 .. là các giới hạn khi đó số lượng rơi vào các khoảng ///giới hạn này ví dụ 1 rơi vô 1-> 9; 10/11/12 rơi vô 10 ->19; để đạt mục tiêu ///thiết lập 10 trang là LN này, 20 trang là lợi nhuận; b; 30 trang là lợi nhuận z var daySoLuongS = LoiNhuanTheoSoLuongBDO.LayTheoID(maSo).DAY_SO_LUONG.Split(';'); //string var dayLoiNhuanS = LoiNhuanTheoSoLuongBDO.LayTheoID(maSo).DAY_LOI_NHUAN.Split(';'); //string // if (daySoLuongS == null || dayLoiNhuanS == null) { return(0); } // var soLuongMax = int.Parse(daySoLuongS[daySoLuongS.Length - 1]); //Xử lý item cuối vì nó không có khoảng thêm var soLuongCheck = 0; //Dùng để lấy tỉ lệ mà thôi if (soLuong > soLuongMax) { soLuongCheck = soLuongMax; //Để giới hạn việc rôi vào khoảng lớn nhất } else { soLuongCheck = soLuong; } //Xem khoảng số lượng rớt vô đâu rồi lấy giá ở đó tính var tmpI = 0; var soBatDau = 1; for (int i = 0; i < daySoLuongS.Length; i++) { if (soLuongCheck >= soBatDau && soLuongCheck <= int.Parse(daySoLuongS[i])) { tmpI = i; break; } soBatDau = int.Parse(daySoLuongS[i]) + 1; } result = int.Parse(dayLoiNhuanS[tmpI]); return(result); }
public static LoiNhuanTheoSoLuongBDO LayTheoID(string maSo) { var nguon = LoiNhuanTheoSoLuongBDO.LayTatCa().Where(x => x.MA_SO == maSo).Select(x => new LoiNhuanTheoSoLuongBDO { MA_SO = x.MA_SO, TEN = x.TEN, DAY_SO_LUONG = x.DAY_SO_LUONG, DAY_LOI_NHUAN = x.DAY_LOI_NHUAN, DON_VI_SO_LUONG = x.DON_VI_SO_LUONG, THU_TU = x.THU_TU } ).SingleOrDefault(); return(nguon); }
public CauHinhTinhGiaCuon(string sku_SanPham, int idKhoCuon, int idSoLuongCuon, int idRuot, int idGiayRuot) { this.SKU_SanPham = sku_SanPham; var khoCuonBDO = KhoCuonBDO.LayTheoID(idKhoCuon, this.SKU_SanPham); var soConTrenTo = khoCuonBDO.SO_CON_TR_TO_CHAY; this.MaToInAp = khoCuonBDO.MA_TO_IN_AP; //mức lợi nhuận in theo số trang this.MucLoiNhuanIn_TheoSoTrang_PCT = LoiNhuanTheoSoLuongBDO.MucLNhuanTheoSLuong(khoCuonBDO.MA_LOI_NHUAN_THEO_TRANG); // var giayRuotBDO = GiayRuotBDO.LayTheoID(idGiayRuot, this.SKU_SanPham); this.MaGiayAp = giayRuotBDO.MA_GIAY_AP; //tính tổng số tờ chạy và số trang var soLuongCuonBDO = SoLuongCuonBDO.LayTheoID(idSoLuongCuon, this.SKU_SanPham); var soCuon = soLuongCuonBDO.SO_LUONG; var soToChayBuHao = soLuongCuonBDO.SO_TO_CHAY_BU_HAO; this.MucLoiNhuanInThanhPham_PCT = soLuongCuonBDO.MUC_LOI_NHUAN_IN_TP; var ruotCuonBDO = RuotCuonBDO.LayTheoID(idRuot, this.SKU_SanPham); //so trang; this.SoTrangTong = ruotCuonBDO.SO_TRANG * soCuon; //end sotrang int soToTheoSoCuon = (ruotCuonBDO.SO_TRANG * soCuon) / 2; //Chan //Tính tiếp tổng tờ chạy int soToChay = 0; if (soToTheoSoCuon % soConTrenTo > 0)//Chia bị dư { soToChay = soToTheoSoCuon / soConTrenTo + 1 + soToChayBuHao; } else { soToChay = soToTheoSoCuon / soConTrenTo + soToChayBuHao; } this.SoToChayTong = soToChay; //--- var toInDigiBDO = ToInDigiBDO.LayTheoID(khoCuonBDO.MA_TO_IN_AP); _cauHinhIn = new CauHinhIn(toInDigiBDO.BHR, toInDigiBDO.TOC_DO, 2, toInDigiBDO.THOI_GIAN_CHUAN_BI, toInDigiBDO.PHI_CLICK); }