using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TMPro; using System; using UnityEngine.Rendering; public class PRICE : MonoBehaviour { public static void Calprice() { if(_P.ListSwitch[Pref.SHOW_PRICE]){ //rint("-----------------------------PASSE Calprice()-----------------------"); CalpriceNow(); } } public static void CalpriceNow() { //print("calculate now ==="+SceneModeManager.Scene); CameraAround.Show(); _G.PriceTotal=CalpriceByItems(); Get.o2("DASH/PriceShow","PS").GetComponent().text = _G.PriceTotal; Camera.main.GetComponent().Hide(); } public static float Caldoor(int nO) { //print("_G.OBJs[nO][25] ==="+_G.OBJs[nO][25] ); float price = 0; string[] code = _G.OBJs[nO][25].Split('_'); int cl = code.Length; for (int i = 2; i < code.Length; i += 4) { //print("code[i] ==="+code[i] ); if (code[i] == "p") { float w = DOIT.ConvertStringToNumber(code[i + 1]); float h = DOIT.ConvertStringToNumber(code[i + 2]); price += ((w * h) / 144) * _P.DF; } if (code[i] == "t") { float w = DOIT.ConvertStringToNumber(code[i + 1]); float h = DOIT.ConvertStringToNumber(code[i + 2]); price += ((w * h) / 144) * _P.DD; price += ((w * h) / 144) * _P.DR1; } } return price; } public static float Callength(int nO) { float price = 0; if (_G.OBJs[nO][4] == "B1") price += _P.CB * DOIT.ConvertStringToNumber(_G.OBJs[nO][6]) / 12; if (_G.OBJs[nO][4] == "W1") price += _P.CW * DOIT.ConvertStringToNumber(_G.OBJs[nO][6]) / 12; if (_G.OBJs[nO][4] == "T1") price += _P.CT * DOIT.ConvertStringToNumber(_G.OBJs[nO][6]) / 12; if (_G.OBJs[nO][4] == "B2") price += _P.CCB * (DOIT.ConvertStringToNumber(_G.OBJs[nO][6]) + DOIT.ConvertStringToNumber(_G.OBJs[nO][8])) / 12; if (_G.OBJs[nO][4] == "B3") price += _P.CCB * (DOIT.ConvertStringToNumber(_G.OBJs[nO][6]) + DOIT.ConvertStringToNumber(_G.OBJs[nO][8])) / 12; if (_G.OBJs[nO][4] == "B4") price += _P.CCB * (DOIT.ConvertStringToNumber(_G.OBJs[nO][6]) + DOIT.ConvertStringToNumber(_G.OBJs[nO][8])) / 12; if (_G.OBJs[nO][4] == "B5") price += _P.CCB * (DOIT.ConvertStringToNumber(_G.OBJs[nO][6]) + DOIT.ConvertStringToNumber(_G.OBJs[nO][8])) / 12; if (_G.OBJs[nO][4] == "B9") price += _P.CCB * (DOIT.ConvertStringToNumber(_G.OBJs[nO][6]) + DOIT.ConvertStringToNumber(_G.OBJs[nO][8])) / 12; if (_G.OBJs[nO][4] == "B10") price += _P.CCB * (DOIT.ConvertStringToNumber(_G.OBJs[nO][6]) + DOIT.ConvertStringToNumber(_G.OBJs[nO][8])) / 12; if (_G.OBJs[nO][4] == "W2") price += _P.CCW * (DOIT.ConvertStringToNumber(_G.OBJs[nO][6]) + DOIT.ConvertStringToNumber(_G.OBJs[nO][8])) / 12; if (_G.OBJs[nO][4] == "W3") price += _P.CCW * (DOIT.ConvertStringToNumber(_G.OBJs[nO][6]) + DOIT.ConvertStringToNumber(_G.OBJs[nO][8])) / 12; if (_G.OBJs[nO][4] == "W4") price += _P.CCW * (DOIT.ConvertStringToNumber(_G.OBJs[nO][6]) + DOIT.ConvertStringToNumber(_G.OBJs[nO][8])) / 12; if (_G.OBJs[nO][4] == "W5") price += _P.CCW * (DOIT.ConvertStringToNumber(_G.OBJs[nO][6]) + DOIT.ConvertStringToNumber(_G.OBJs[nO][8])) / 12; if (_G.OBJs[nO][4] == "W9") price += _P.CCW * (DOIT.ConvertStringToNumber(_G.OBJs[nO][6]) + DOIT.ConvertStringToNumber(_G.OBJs[nO][8])) / 12; if (_G.OBJs[nO][4] == "W10") price += _P.CCW * (DOIT.ConvertStringToNumber(_G.OBJs[nO][6]) + DOIT.ConvertStringToNumber(_G.OBJs[nO][8])) / 12; return price; } public static string CalpriceToHere() { //_G.SM = "calcule"; CameraAround.Show(); _G.price = 0; float Price = 0; List CABSint = DOLIST.CABLISTint(); //DOORS foreach (int nO in CABSint) { Price += Caldoor(nO);// //print("Price door===" + Caldoor(nO)); } //CASES foreach (int nO in CABSint) { Price += Callength(nO); //print("Price door===" + Callength(nO)); } //KICKS /* Dictionary KICKdict = MakeList.KICKLISTQTY(); foreach (KeyValuePair pair in KICKdict) { float qty = Mathf.Ceil(pair.Value / _P.MKL); Price += _P.MK * qty; } //PANELS Dictionary PNLdict = MakeList.PNLLISTQTY(); foreach (KeyValuePair pair in PNLdict) { //Qty int IN_ = pair.Key.IndexOf("_"); int INM = pair.Key.IndexOf("/"); int SS=INM-IN_; string sizes = pair.Key.Substring(IN_ + 1, SS-1); int inW = sizes.IndexOf("W"); int inH = sizes.IndexOf("H"); int inD = sizes.IndexOf("D"); string Ds = sizes.Substring(inD + 1, sizes.Length - inD - 1); float D = DOIT.ConvertStringToNumber(Ds); float H = DOIT.ConvertStringToNumber(sizes.Substring(inH + 1, inD - inH - 1)); float Asq = D * H / 144; float priceU = _P.P12; float T = DOIT.ConvertStringToNumber(sizes.Substring(1, inH - 1)); if (T >= 0.5) priceU = _P.P12; if (T >= 0.625) priceU = _P.P58; if (T >= 0.75) priceU = _P.P34; if (T >= 1) priceU = _P.P1; if (T >= 1.5) priceU = _P.P112; if (T >= 2) priceU = _P.P2; Price += priceU * Asq; } //OGEE Dictionary OGEEdict = MakeList.OGEELISTQTY(); foreach (KeyValuePair pair in OGEEdict) { float qty = Mathf.Ceil(pair.Value / _P.MOL); Price += _P.MO * qty; } //UNDER Dictionary UNDERdict = MakeList.UNDERLISTQTY(); foreach (KeyValuePair pair in UNDERdict) { float qty = Mathf.Ceil(pair.Value / _P.MUL); Price += _P.MU * qty; } //HEAD Dictionary HEADdict = MakeList.HEADLISTQTY(); foreach (KeyValuePair pair in HEADdict) { float qty = Mathf.Ceil(pair.Value / _P.MHL); Price += _P.MH * qty; } //FILLER Dictionary FILLERdict = MakeList.FILLERQTY(); foreach (KeyValuePair pair in FILLERdict) { float qty = Mathf.Ceil(pair.Value / _P.FIL); Price += _P.FI * qty; } //OPTIONS if (_P.O1p != 0) { Price += _P.O1p * _P.O1q; } if (_P.O2p != 0) { Price += _P.O2p * _P.O2q; } if (_P.O3p != 0) { Price += _P.O3p * _P.O3q; } if (_P.O4p != 0) { Price += _P.O4p * _P.O4q; } if (_P.O5p != 0) { Price += _P.O5p * _P.O5q; }*/ _G.price += Price; _G.price *= 3; Camera.main.GetComponent().Hide(); return _G.price.ToString("F2") + "$"; } public static void CalpriceThis(int nO) { //DOOR float Price = 0; if (_G.OBJs[nO][2] == "Cabinet") { Price += Caldoor(nO) * 3; //CABINET Price += Callength(nO) * 3; _G.price += Price; //PANEL GameObject PNL = GameObject.Find("HIDER").transform.Find("CONTROL").gameObject; PNL.transform.Find("PRICE").gameObject.GetComponent().text = Price.ToString("C") + "$"; } } public static string CalpriceByItems(){ float pricetotal=0; string Color_ID="nodoor"; List CABSint = DOLIST.CABLISTint(); string PriceColumn= ""; if (Get.PreferenceBool("STORE_SELECTION")) { PriceColumn = _G.StoreZone; } foreach (int ADN in CABSint) { //CABINET---------------------------------------------------- if(_G.OBJs[ADN][61]!="nodoor") {Color_ID =_G.OBJs[ADN][61].Split("?")[1] ; } string PriceCode_ID=""; if (!Get.PreferenceBool("CABINET_DOOR_RECIPE")) { PriceCode_ID = UIT.GetCabinetPriceID(_G.OBJs[ADN][1],_G.OBJs[ADN][61].Split("?")[0],Color_ID); } //BOX---------------------------------------------------- if (Get.PreferenceBool("CABINET_DOOR_RECIPE")) { string DoorID=_G.OBJs[ADN][61].Split("?")[0]; if(_G.OBJs[ADN][61]!="nodoor") if (Get.PreferenceBool("DOOR_BY_GROUP"))PriceColumn = UIT.Value(Library.Door,DoorID,Header.Group); PriceCode_ID=UIT.Value(Library.Cabinet,_G.OBJs[ADN][1],Header.Box_ID); //if(PriceCode_ID==_G.OBJs[ADN][1])PriceCode_ID } string Price = UIT.Value(Header.Price,PriceCode_ID,Header.Price +PriceColumn); if (Price != "N/A" && Price != _G.OBJs[ADN][1]) pricetotal += DOIT.ConvertStringToNumber(Price); //print("Price from price===Cab====="+Price); //PANEL ON CAB----------------------------------------------------- string DoorUniqueName=UIT.Value(Library.Door,_G.OBJs[ADN][61].Split("?")[0],Header.Unique_Name); string[] ListofSides=_G.OBJs[ADN][81].Split("_"); foreach(string Recover in ListofSides) { if(Recover!="0"){ //print("Recover===="+Recover);//3?1?0.625 string[] code=Recover.Split("?"); Price=UIT.GetPanelPrice(code[0],code[1]).Replace("$","").Replace(" ",""); if(Price!="N/A" && Price!="")pricetotal += DOIT.ConvertStringToNumber(Price);// //print("Price from price===Panel on Cab====+"+Price); } } //DOORS------------------------------------------------------- if(Get.PreferenceBool("CABINET_DOOR_RECIPE")) { pricetotal += FromDoorRecipe(ADN); } //DRAWERS------------------------------------------------------- if(Get.PreferenceBool("CABINET_DRAWER_RECIPE")) { pricetotal += FromDrawerRecipe(ADN); } } //DRAWER------------------------------------------------------- //Panel------------------------------------------------------- List PANELint = DOLIST.PNLLISTinSCENE(); foreach (int nO in PANELint) { print("_G.OBJs[nO][61])==============="+_G.OBJs[nO][61]);//_G.OBJs[nO][61])===============?1 if(_G.OBJs[nO][61][..1]=="?")_G.OBJs[nO][61]="1"+_G.OBJs[nO][61]; string Price=UIT.GetPanelPrice(_G.OBJs[nO][1],_G.OBJs[nO][61]).Replace("$","").Replace(" ",""); if(Price!="N/A" && Price!="")pricetotal += DOIT.ConvertStringToNumber(Price);// } //Molding---------------------------------------------------- Dictionary FILLERdict = MakeList.FILLERQTY(CABSint); pricetotal+=CalculateMolding(FILLERdict); Dictionary KICKdict = MakeList.KICKLISTQTY(CABSint); pricetotal+=CalculateMolding(KICKdict); Dictionary FASCIADict= MakeList.FASCIAQTY(); pricetotal+=CalculateMolding(FASCIADict); Dictionary OGEEdict= MakeList.OGEELISTQTY(); pricetotal+=CalculateMolding(OGEEdict); Dictionary VALANCEdict= MakeList.VALANCELISTQTY(); pricetotal+=CalculateMolding(VALANCEdict); //Items Added foreach (KeyValuePair pair in _G.LibraryItems) { float Qty =pair.Value; string UniquePrice=UIT.Value(Library.Price,pair.Key,Header.Price +_G.StoreZone);//GetItemPrice(pair.Key); float Pricetotal=DOIT.ConvertStringToNumber(UniquePrice)*Qty; Pricetotal=Mathf.Round(Pricetotal * 100f) / 100f; pricetotal+=Pricetotal; } return pricetotal.ToString("F2")+"$"; } public static float CalculateMolding(Dictionary Moldingdict){ float Priceplus=0; string Code_ID; //string Variant_ID; string Color_ID; string PriceColumn= ""; if (Get.PreferenceBool("STORE_SELECTION")) { PriceColumn = _G.StoreZone; } foreach (KeyValuePair pair in Moldingdict) { //From Panel List string[] CODE = pair.Key.Split('?'); //Index int indCode_ID=UIT.Ind(Library.Price,Header.Code_ID); //int indVariant_ID=UIT.Ind(Library.Price,Header.Variant_ID); int indColor_ID=UIT.Ind(Library.Price,Header.Color_ID); int indEcommerce_ID=UIT.Ind(Library.Price,Header.Ecommerce_ID); string MoldingUniqueName=UIT.Value(Library.Molding,CODE[0],Header.Unique_Name).Trim(); string ColorUniqueName=UIT.Value(Library.CabTexture,CODE[1],Header.Unique_Name).Trim(); string Category = UIT.Value(Library.Molding,CODE[0],Header.Category).Trim(); //Lenght of molding string LenghtOfOneString=UIT.Value(Library.Molding,CODE[0],Header.Wide); if(Category=="Filler"){LenghtOfOneString=UIT.Value(Library.Molding,CODE[0],Header.Height);} if (LenghtOfOneString.Split("_").Length > 1) { LenghtOfOneString=LenghtOfOneString.Split("_")[1]; } if (_P.ListSwitch["FILLER_BY_ITEMS"]){LenghtOfOneString="1";} float LenghtOfOne=DOIT.ConvertStringToNumber(LenghtOfOneString); float qty=Mathf.Ceil(pair.Value/LenghtOfOne); string Price_ID = UIT.GetMoldingPriceCode_ID(MoldingUniqueName, ColorUniqueName); if(_P.ListSwitch["MOLDING_BY_MODEL_COLOR"]){ MoldingUniqueName=UIT.GetMoldingPriceCode_ID(MoldingUniqueName,ColorUniqueName); } if (Get.PreferenceBool("MOLDING_BY_GROUP")) { Price_ID = UIT.Value(Library.Molding, CODE[0],Header.Unique_Name);//BASE PriceColumn = UIT.Value(Library.Door, CODE[2], Header.Group); } string price = UIT.Value(Library.Price,Price_ID,Header.Price+PriceColumn); float AddPrice=DOIT.ConvertStringToNumber(price)*qty; Priceplus+=AddPrice; print("AddtoURLMolding========"+pair.Value+" LenghtOfOne======"+LenghtOfOne+" qty===="+qty+" Category===="+Category+" AddPrice===== "+AddPrice); } return Priceplus; } //GET PRICES public static float FromBox(int ADN) { float Addprice = 0; if (Get.PreferenceBool("CABINET_DOOR_RECIPE")) { string Group = ""; string DoorID=_G.OBJs[ADN][61].Split("?")[0]; if (_G.OBJs[ADN][61] != "nodoor" && Get.PreferenceBool("DOOR_BY_GROUP")) { Group = UIT.Value(Library.Door,DoorID,Header.Group); } string PriceCode_ID = UIT.Value(Library.Cabinet,_G.OBJs[ADN][1],Header.Box_ID); string Price=UIT.Value(Header.Price,PriceCode_ID,Header.Price + Group); if(Price!="N/A" && Price!="")Addprice += DOIT.ConvertStringToNumber(Price); } return Addprice; } public static float FromDoorRecipe(int ADN) { float Addprice=0; if(_G.OBJs[ADN][61]!="nodoor") { string DoorRecipe = UIT.Value(Library.Cabinet, _G.OBJs[ADN][1], Header.Door_Recipe).Replace("X", "x"); string[] Door_recipe = DoorRecipe.Split("_"); string DoorUniqueName=UIT.Value(Library.Door,_G.OBJs[ADN][61].Split("?")[0],Header.Unique_Name); foreach(string Item in Door_recipe) { int Qty=int.Parse(Item.Split("x")[0]); string PriceCode_ID=Item.Split("x")[1]+"-"+DoorUniqueName; string Group = ""; if (Get.PreferenceBool("DOOR_BY_GROUP")) { string DoorID=_G.OBJs[ADN][61].Split("?")[0]; Group = UIT.Value(Library.Door,DoorID,Header.Group); PriceCode_ID=Item.Split("x")[1]; } string Price=UIT.Value(Header.Price,PriceCode_ID,Header.Price + Group); if(Price!="N/A" && Price!="")Addprice += DOIT.ConvertStringToNumber(Price)*Qty; } } return Addprice; } public static float FromDrawerRecipe(int ADN) { float Addprice=0; if(_G.OBJs[ADN][61]!="nodoor") { string Group = ""; if (Get.PreferenceBool("DOOR_BY_GROUP")) { string DoorID=_G.OBJs[ADN][61].Split("?")[0]; if(DoorID=="nodoor")Group="1"; Group = UIT.Value(Library.Door,DoorID,Header.Group); } string DrawerRecipe = UIT.Value(Library.Cabinet, _G.OBJs[ADN][1], Header.Drawer_Recipe+Group).Replace("X", "x");//2xSAKAD15D bool isDrawer=DrawerRecipe !=_G.OBJs[ADN][1]; print("DrawerRecipe===="+DrawerRecipe);//DrawerRecipe====AB18 if (!string.IsNullOrEmpty(DrawerRecipe) && isDrawer) { string[] DrawersRecipe = DrawerRecipe.Split("+"); foreach(string Item in DrawersRecipe) { int Qty=int.Parse(Item.Split("x")[0]); string PriceCode_ID=Item.Split("x")[1]; string Price=UIT.Value(Header.Price,PriceCode_ID,Header.Price + Group); print("Price from price===Door on Cab====+"+Price); if(Price!="N/A" && Price!="")Addprice += DOIT.ConvertStringToNumber(Price)*Qty; } } } return Addprice; } }