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