Example #1
0
        public static decimal GiaCanMang(CauHinhTinhGiaPhang cauHinhTGPhang, string MA_CAN_MANG)
        {
            ///MA_CAN_MANG dạng: CM-2 đầu là cán màng, cột 2 là số mặt
            decimal ketQua = 0;

            //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[] maCanMangs = MA_CAN_MANG.Split('-');

            string aCM      = maCanMangs[0];
            int    soMatCan = int.Parse(maCanMangs[1]);//chắc chắn có giá trị

            //Có thì tìm mã tờ cán phủ
            var maToCanMang = ToCanPhuBDO.LayTatCa().Where(x => x.MA_TO_CAN.Substring(0, 2) == aCM).SingleOrDefault().MA_TO_CAN;

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

            if (string.IsNullOrEmpty(maToCanMang))
            {
                return(0); //thoát luôn nghĩa là không có mã
            }
            var soToChay = cauHinhTGPhang.SoToChayTong;

            var toCanPhuBDO = ToCanPhuBDO.LayTheoID(maToCanMang);

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

            var chiPhiCanPhu = TinhToan.PhiCanMang(cauHinhCan1, soToChay); //Dùng bên tính toán cuốn để khỏi double.
            //Tinh theo muc loi nhuan gop /doanh thu
            double mucLoiNhuanIn_TP = (double)cauHinhTGPhang.MucLoiNhuanIn_PCT / 100;

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

            return(ketQua);
        }
        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 = TinhToan.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);
        }