Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }