-- Drop unique constraint lama (house_type, day) agar bisa support multi effective_date ALTER TABLE house_depreciation_standards DROP CONSTRAINT house_depreciation_standards_house_type_day_unique; -- Unique baru: (house_type, day, effective_date) -- NULL dianggap distinct di PostgreSQL → row lama (effective_date NULL) tidak konflik dengan row baru ALTER TABLE house_depreciation_standards ADD CONSTRAINT house_depreciation_standards_house_type_day_eff_unique UNIQUE (house_type, day, effective_date); -- Tambah kolom multiplication_percentage (nilai dari baris ke-3 Excel "Depresiasi 25 week.xlsx") ALTER TABLE house_depreciation_standards ADD COLUMN multiplication_percentage numeric(20,15) NOT NULL DEFAULT 0; -- Isi multiplication_percentage untuk semua row existing (effective_date IS NULL) -- Value diambil dari row 3 Excel: kolom A=day1 s/d TL=day532 UPDATE house_depreciation_standards AS hds SET multiplication_percentage = v.val FROM (VALUES (1,0.997742664),(2,0.997737557),(3,0.997732426),(4,0.997727273),(5,0.997722096), (6,0.997716895),(7,0.99771167),(8,0.997706422),(9,0.997701149),(10,0.997695853), (11,0.997690531),(12,0.9977),(13,0.997679814),(14,0.997674419),(15,0.998), (16,0.997997998),(17,0.997993982),(18,0.99798995),(19,0.997985901),(20,0.997981837), (21,0.997977755),(22,0.997635934),(23,0.997630332),(24,0.997624703),(25,0.997619048), (26,0.997613365),(27,0.997607656),(28,0.997601918),(29,0.997596154),(30,0.997590361), (31,0.997584541),(32,0.997578692),(33,0.997572816),(34,0.99756691),(35,0.997560976), (36,0.997555012),(37,0.99754902),(38,0.997542998),(39,0.997536946),(40,0.997530864), (41,0.997524752),(42,0.99751861),(43,0.997867804),(44,0.997863248),(45,0.997858672), (46,0.997854077),(47,0.997849462),(48,0.997844828),(49,0.997840173),(50,0.997474747), (51,0.997468354),(52,0.997461929),(53,0.997455471),(54,0.99744898),(55,0.997442455), (56,0.997435897),(57,0.997429306),(58,0.99742268),(59,0.997416021),(60,0.997409326), (61,0.997402597),(62,0.997395833),(63,0.997389034),(64,0.997756171),(65,0.997751124), (66,0.997746056),(67,0.997740964),(68,0.997735849),(69,0.997730711),(70,0.99772555), (71,0.997340426),(72,0.997333333),(73,0.997326203),(74,0.997319035),(75,0.997311828), (76,0.997304582),(77,0.9972973),(78,0.99767712),(79,0.99767171),(80,0.99766628), (81,0.99766082),(82,0.99765533),(83,0.99764982),(84,0.997644287),(85,0.997245179), (86,0.997237569),(87,0.997229917),(88,0.997222222),(89,0.997214485),(90,0.997206704), (91,0.99719888),(92,0.997191011),(93,0.997183099),(94,0.997175141),(95,0.997167139), (96,0.997159091),(97,0.997150997),(98,0.997142857),(99,0.997544003),(100,0.997537957), (101,0.99753188),(102,0.997525773),(103,0.997519636),(104,0.997513469),(105,0.99750727), (106,0.997084548),(107,0.997076023),(108,0.997067449),(109,0.997058824),(110,0.997050147), (111,0.99704142),(112,0.997032641),(113,0.99744898),(114,0.997442455),(115,0.997435897), (116,0.997429306),(117,0.99742268),(118,0.997416021),(119,0.997409326),(120,0.996969697), (121,0.996960486),(122,0.99695122),(123,0.996941896),(124,0.996932515),(125,0.996923077), (126,0.99691358),(127,0.997346307),(128,0.997339246),(129,0.997332148),(130,0.997325011), (131,0.997317836),(132,0.997310623),(133,0.997303371),(134,0.996845426),(135,0.996835443), (136,0.996825397),(137,0.996815287),(138,0.996805112),(139,0.996794872),(140,0.996784566), (141,0.997235023),(142,0.997227357),(143,0.997219648),(144,0.997211896),(145,0.997204101), (146,0.997196262),(147,0.997188379),(148,0.996710526),(149,0.99669967),(150,0.996688742), (151,0.996677741),(152,0.996666667),(153,0.996655518),(154,0.996644295),(155,0.997113997), (156,0.997105644),(157,0.997097242),(158,0.997088792),(159,0.997080292),(160,0.997071742), (161,0.997063142),(162,0.997054492),(163,0.99704579),(164,0.997037037),(165,0.997028232), (166,0.997019374),(167,0.997010463),(168,0.997001499),(169,0.996491228),(170,0.996478873), (171,0.996466431),(172,0.996453901),(173,0.996441281),(174,0.996428571),(175,0.996415771), (176,0.996916752),(177,0.996907216),(178,0.996897622),(179,0.996887967),(180,0.996878252), (181,0.996868476),(182,0.996858639),(183,0.996848739),(184,0.996838778),(185,0.996828753), (186,0.996818664),(187,0.996808511),(188,0.996798292),(189,0.996788009),(190,0.996240602), (191,0.996226415),(192,0.996212121),(193,0.996197719),(194,0.996183206),(195,0.996168582), (196,0.996153846),(197,0.996690568),(198,0.996679579),(199,0.996668517),(200,0.996657382), (201,0.996646171),(202,0.996634885),(203,0.996623523),(204,0.996612084),(205,0.996600567), (206,0.996588971),(207,0.996577296),(208,0.996565541),(209,0.996553705),(210,0.996541787), (211,0.996529786),(212,0.996517702),(213,0.996505533),(214,0.996493279),(215,0.996480938), (216,0.996468511),(217,0.996455995),(218,0.996443391),(219,0.996430696),(220,0.99641791), (221,0.996405033),(222,0.996392063),(223,0.996378998),(224,0.996365839),(225,0.995744681), (226,0.995726496),(227,0.995708155),(228,0.995689655),(229,0.995670996),(230,0.995652174), (231,0.995633188),(232,0.996240602),(233,0.996226415),(234,0.996212121),(235,0.996197719), (236,0.996183206),(237,0.996168582),(238,0.996153846),(239,0.9961389960),(240,0.996124031), (241,0.996108949),(242,0.99609375),(243,0.996078431),(244,0.996062992),(245,0.996047431), (246,0.996031746),(247,0.996015936),(248,0.996),(249,0.995983936),(250,0.995967742), (251,0.995951417),(252,0.995934959),(253,0.995918367),(254,0.995901639),(255,0.995884774), (256,0.995867769),(257,0.995850622),(258,0.995833333),(259,0.9958158999),(260,0.995798319), (261,0.995780591),(262,0.995762712),(263,0.995744681),(264,0.995726496),(265,0.995708155), (266,0.995689655),(267,0.995670996),(268,0.995652174),(269,0.995633188),(270,0.995614035), (271,0.995594714),(272,0.995575221),(273,0.995555556),(274,0.995535714),(275,0.995515695), (276,0.995495495),(277,0.995475113),(278,0.995454545),(279,0.99543379),(280,0.995412844), (281,0.995391705),(282,0.99537037),(283,0.995348837),(284,0.995327103),(285,0.995305164), (286,0.995282919),(287,0.995260664),(288,0.996031746),(289,0.996015936),(290,0.996), (291,0.995983936),(292,0.995967742),(293,0.995951417),(294,0.995934959),(295,0.995102041), (296,0.995077933),(297,0.995053586),(298,0.995028998),(299,0.995004163),(300,0.994979079), (301,0.994953743),(302,0.994928149),(303,0.994902294),(304,0.994876174),(305,0.994849785), (306,0.994823123),(307,0.994796184),(308,0.994768963),(309,0.994741455),(310,0.994713656), (311,0.994685562),(312,0.994657168),(313,0.994628469),(314,0.99459946),(315,0.994570136), (316,0.994540491),(317,0.994510522),(318,0.994480221),(319,0.994449584),(320,0.994418605), (321,0.994387278),(322,0.994355597),(323,0.995269631),(324,0.995247148),(325,0.995224451), (326,0.995201536),(327,0.995178399),(328,0.995155039),(329,0.995131451),(330,0.994129159), (331,0.994094488),(332,0.994059406),(333,0.994023904),(334,0.993987976),(335,0.993951613), (336,0.993914807),(337,0.994897959),(338,0.994871795),(339,0.994845361),(340,0.994818653), (341,0.994791667),(342,0.994764398),(343,0.994736842),(344,0.993650794),(345,0.993610224), (346,0.993569132),(347,0.993527508),(348,0.993484342),(349,0.993442623),(350,0.99339934), (351,0.993355482),(352,0.993311037),(353,0.993265993),(354,0.993220339),(355,0.993174061), (356,0.993127148),(357,0.993079585),(358,0.994192799),(359,0.994158879),(360,0.994124559), (361,0.994089835),(362,0.994054697),(363,0.994019139),(364,0.993983153),(365,0.992736077), (366,0.992682927),(367,0.992628993),(368,0.992574257),(369,0.992518703),(370,0.992462312), (371,0.992405063),(372,0.993622449),(373,0.993581515),(374,0.993540052),(375,0.993498049), (376,0.993455497),(377,0.993412385),(378,0.9933687),(379,0.993324433),(380,0.99327957), (381,0.9932341),(382,0.993188011),(383,0.993141289),(384,0.993093923),(385,0.993045897), (386,0.991596639),(387,0.991525424),(388,0.991452991),(389,0.99137931),(390,0.991304348), (391,0.99122807),(392,0.991150442),(393,0.992559524),(394,0.992503748),(395,0.99244713), (396,0.99238965),(397,0.992331288),(398,0.992272025),(399,0.992211838),(400,0.992150706), (401,0.992088608),(402,0.992025518),(403,0.991961415),(404,0.991896272),(405,0.991830065), (406,0.991762768),(407,0.991694352),(408,0.991624791),(409,0.991554054),(410,0.991482112), (411,0.991408935),(412,0.991334489),(413,0.991258741),(414,0.989417989),(415,0.989304813), (416,0.989189189),(417,0.989071038),(418,0.988950276),(419,0.988826816),(420,0.988700565), (421,0.99047619),(422,0.990384615),(423,0.990291262),(424,0.990196078),(425,0.99009901), (426,0.99),(427,0.98989899),(428,0.989795918),(429,0.989690722),(430,0.989583333), (431,0.989473684),(432,0.989361702),(433,0.989247312),(434,0.989130435),(435,0.989010989), (436,0.988888889),(437,0.988764045),(438,0.988636364),(439,0.988505747),(440,0.988372093), (441,0.988235294),(442,0.988095238),(443,0.987951807),(444,0.987804878),(445,0.987654321), (446,0.9875),(447,0.987341772),(448,0.987179487),(449,0.987012987),(450,0.986842105), (451,0.986666667),(452,0.986486486),(453,0.98630137),(454,0.986111111),(455,0.985915493), (456,0.985714286),(457,0.985507246),(458,0.985294118),(459,0.985074627),(460,0.984848485), (461,0.984615385),(462,0.984375),(463,0.987301587),(464,0.987138264),(465,0.986970684), (466,0.98679868),(467,0.986622074),(468,0.986440678),(469,0.986254296),(470,0.982578397), (471,0.982269504),(472,0.981949458),(473,0.981617647),(474,0.981273408),(475,0.980916031), (476,0.980544747),(477,0.98015873),(478,0.979757085),(479,0.979338843),(480,0.978902954), (481,0.978448276),(482,0.977973568),(483,0.977477477),(484,0.976958525),(485,0.976415094), (486,0.975845411),(487,0.975247525),(488,0.974619289),(489,0.973958333),(490,0.973262032), (491,0.978021978),(492,0.97752809),(493,0.977011494),(494,0.976470588),(495,0.975903614), (496,0.975308642),(497,0.974683544),(498,0.967532468),(499,0.966442953),(500,0.965277778), (501,0.964028777),(502,0.962686567),(503,0.96124031),(504,0.959677419),(505,0.966386555), (506,0.965217391),(507,0.963963964),(508,0.962616822),(509,0.961165049),(510,0.95959596), (511,0.957894737),(512,0.945054945),(513,0.941860465),(514,0.938271605),(515,0.934210526), (516,0.929577465),(517,0.924242424),(518,0.918032787),(519,0.928571429),(520,0.923076923), (521,0.916666667),(522,0.909090909),(523,0.9),(524,0.888888889),(525,0.875), (526,0.857142857),(527,0.833333333),(528,0.8),(529,0.75),(530,0.666666667), (531,0.5),(532,9.11e-12) ) AS v(day_num, val) WHERE hds.day = v.day_num; -- Insert open_house baru dengan effective_date 2026-05-20 -- multiplication_percentage diambil dari row existing (sudah di-UPDATE di step sebelumnya) INSERT INTO house_depreciation_standards (house_type, day, effective_date, depreciation_percent, standard_week, name, multiplication_percentage) SELECT 'open_house'::house_type_enum, day, '2026-05-20'::date, depreciation_percent, 25, 'Standard Open House Week 25', multiplication_percentage FROM ( SELECT DISTINCT ON (day) day, depreciation_percent, multiplication_percentage FROM house_depreciation_standards WHERE house_type = 'open_house' ORDER BY day, effective_date DESC NULLS LAST ) effective_open_house; -- Insert close_house baru: depreciation_percent dari open_house, multiplication_percentage dari Excel row 8 (close_house) INSERT INTO house_depreciation_standards (house_type, day, effective_date, depreciation_percent, standard_week, name, multiplication_percentage) SELECT 'close_house'::house_type_enum, oh.day, '2026-05-20'::date, oh.depreciation_percent, 25, 'Standard Close House Week 25', ch.val FROM ( SELECT DISTINCT ON (day) day, depreciation_percent FROM house_depreciation_standards WHERE house_type = 'open_house' ORDER BY day, effective_date DESC NULLS LAST ) oh JOIN (VALUES (1,0.9981),(2,0.9981),(3,0.9981),(4,0.9981),(5,0.9981), (6,0.9981),(7,0.9981),(8,0.9978),(9,0.9978),(10,0.9978), (11,0.9978),(12,0.9978),(13,0.9978),(14,0.9978),(15,0.9978), (16,0.9978),(17,0.9978),(18,0.9978),(19,0.9978),(20,0.9978), (21,0.9978),(22,0.9981),(23,0.9981),(24,0.9981),(25,0.9981), (26,0.9981),(27,0.9981),(28,0.9981),(29,0.9978),(30,0.9978), (31,0.9978),(32,0.9978),(33,0.9978),(34,0.9978),(35,0.9978), (36,0.9978),(37,0.9978),(38,0.9978),(39,0.9978),(40,0.9978), (41,0.9978),(42,0.9978),(43,0.9978),(44,0.9978),(45,0.9978), (46,0.9978),(47,0.9978),(48,0.9978),(49,0.9978),(50,0.9981), (51,0.9981),(52,0.9981),(53,0.9981),(54,0.9981),(55,0.9981), (56,0.9981),(57,0.9978),(58,0.9978),(59,0.9978),(60,0.9978), (61,0.9978),(62,0.9978),(63,0.9978),(64,0.9978),(65,0.9978), (66,0.9977),(67,0.9977),(68,0.9977),(69,0.9977),(70,0.9977), (71,0.9973),(72,0.9973),(73,0.9973),(74,0.9973),(75,0.9973), (76,0.9973),(77,0.9973),(78,0.9977),(79,0.9977),(80,0.9977), (81,0.9977),(82,0.9977),(83,0.9976),(84,0.9976),(85,0.9972), (86,0.9972),(87,0.9972),(88,0.9972),(89,0.9972),(90,0.9972), (91,0.9972),(92,0.9972),(93,0.9972),(94,0.9972),(95,0.9972), (96,0.9972),(97,0.9972),(98,0.9971),(99,0.9975),(100,0.9975), (101,0.9975),(102,0.9975),(103,0.9975),(104,0.9975),(105,0.9975), (106,0.9971),(107,0.9971),(108,0.9971),(109,0.9971),(110,0.9971), (111,0.997),(112,0.997),(113,0.9974),(114,0.9974),(115,0.9974), (116,0.9974),(117,0.9974),(118,0.9974),(119,0.9974),(120,0.997), (121,0.997),(122,0.997),(123,0.9969),(124,0.9969),(125,0.9969), (126,0.9969),(127,0.9973),(128,0.9973),(129,0.9973),(130,0.9973), (131,0.9973),(132,0.9973),(133,0.9973),(134,0.9968),(135,0.9968), (136,0.9968),(137,0.9968),(138,0.9968),(139,0.9968),(140,0.9968), (141,0.9972),(142,0.9972),(143,0.9972),(144,0.9972),(145,0.9972), (146,0.9972),(147,0.9972),(148,0.9967),(149,0.9967),(150,0.9967), (151,0.9967),(152,0.9967),(153,0.9967),(154,0.9966),(155,0.9971), (156,0.9971),(157,0.9971),(158,0.9971),(159,0.9971),(160,0.9971), (161,0.9971),(162,0.9971),(163,0.997),(164,0.997),(165,0.997), (166,0.997),(167,0.997),(168,0.997),(169,0.9965),(170,0.9965), (171,0.9965),(172,0.9965),(173,0.9964),(174,0.9964),(175,0.9964), (176,0.9969),(177,0.9969),(178,0.9969),(179,0.9969),(180,0.9969), (181,0.9969),(182,0.9969),(183,0.9968),(184,0.9968),(185,0.9968), (186,0.9968),(187,0.9968),(188,0.9968),(189,0.9968),(190,0.9962), (191,0.9962),(192,0.9962),(193,0.9962),(194,0.9962),(195,0.9962), (196,0.9962),(197,0.9967),(198,0.9967),(199,0.9967),(200,0.9967), (201,0.9966),(202,0.9966),(203,0.9966),(204,0.9966),(205,0.9966), (206,0.9966),(207,0.9966),(208,0.9966),(209,0.9966),(210,0.9965), (211,0.9965),(212,0.9965),(213,0.9965),(214,0.9965),(215,0.9965), (216,0.9965),(217,0.9965),(218,0.9964),(219,0.9964),(220,0.9964), (221,0.9964),(222,0.9964),(223,0.9964),(224,0.9964),(225,0.9957), (226,0.9957),(227,0.9957),(228,0.9957),(229,0.9957),(230,0.9957), (231,0.9956),(232,0.9962),(233,0.9962),(234,0.9962),(235,0.9962), (236,0.9962),(237,0.9962),(238,0.9962),(239,0.9961),(240,0.9961), (241,0.9961),(242,0.9961),(243,0.9961),(244,0.9961),(245,0.996), (246,0.996),(247,0.996),(248,0.996),(249,0.996),(250,0.996), (251,0.996),(252,0.9959),(253,0.9959),(254,0.9959),(255,0.9959), (256,0.9959),(257,0.9959),(258,0.9958),(259,0.9958),(260,0.9958), (261,0.9958),(262,0.9958),(263,0.9957),(264,0.9957),(265,0.9957), (266,0.9957),(267,0.9957),(268,0.9957),(269,0.9956),(270,0.9956), (271,0.9956),(272,0.9956),(273,0.9956),(274,0.9955),(275,0.9955), (276,0.9955),(277,0.9955),(278,0.9955),(279,0.9954),(280,0.9954), (281,0.9954),(282,0.9954),(283,0.9953),(284,0.9953),(285,0.9953), (286,0.9953),(287,0.9953),(288,0.996),(289,0.996),(290,0.996), (291,0.996),(292,0.996),(293,0.996),(294,0.9959),(295,0.9951), (296,0.9951),(297,0.9951),(298,0.995),(299,0.995),(300,0.995), (301,0.995),(302,0.9949),(303,0.9949),(304,0.9949),(305,0.9948), (306,0.9948),(307,0.9948),(308,0.9948),(309,0.9947),(310,0.9947), (311,0.9947),(312,0.9947),(313,0.9946),(314,0.9946),(315,0.9946), (316,0.9945),(317,0.9945),(318,0.9945),(319,0.9944),(320,0.9944), (321,0.9944),(322,0.9944),(323,0.9953),(324,0.9952),(325,0.9952), (326,0.9952),(327,0.9952),(328,0.9952),(329,0.9951),(330,0.9941), (331,0.9941),(332,0.9941),(333,0.994),(334,0.994),(335,0.994), (336,0.9939),(337,0.9949),(338,0.9949),(339,0.9948),(340,0.9948), (341,0.9948),(342,0.9948),(343,0.9947),(344,0.9937),(345,0.9936), (346,0.9936),(347,0.9935),(348,0.9935),(349,0.9934),(350,0.9934), (351,0.9934),(352,0.9933),(353,0.9933),(354,0.9932),(355,0.9932), (356,0.9931),(357,0.9931),(358,0.9942),(359,0.9942),(360,0.9941), (361,0.9941),(362,0.9941),(363,0.994),(364,0.994),(365,0.9927), (366,0.9927),(367,0.9926),(368,0.9926),(369,0.9925),(370,0.9925), (371,0.9924),(372,0.9936),(373,0.9936),(374,0.9935),(375,0.9935), (376,0.9935),(377,0.9934),(378,0.9934),(379,0.9933),(380,0.9933), (381,0.9932),(382,0.9932),(383,0.9931),(384,0.9931),(385,0.993), (386,0.9916),(387,0.9915),(388,0.9915),(389,0.9914),(390,0.9913), (391,0.9912),(392,0.9912),(393,0.9926),(394,0.9925),(395,0.9924), (396,0.9924),(397,0.9923),(398,0.9923),(399,0.9922),(400,0.9922), (401,0.9921),(402,0.992),(403,0.992),(404,0.9919),(405,0.9918), (406,0.9918),(407,0.9917),(408,0.9916),(409,0.9916),(410,0.9915), (411,0.9914),(412,0.9913),(413,0.9913),(414,0.9894),(415,0.9893), (416,0.9892),(417,0.9891),(418,0.989),(419,0.9888),(420,0.9887), (421,0.9905),(422,0.9904),(423,0.9903),(424,0.9902),(425,0.9901), (426,0.99),(427,0.9899),(428,0.9898),(429,0.9897),(430,0.9896), (431,0.9895),(432,0.9894),(433,0.9892),(434,0.9891),(435,0.989), (436,0.9889),(437,0.9888),(438,0.9886),(439,0.9885),(440,0.9884), (441,0.9882),(442,0.9881),(443,0.988),(444,0.9878),(445,0.9877), (446,0.9875),(447,0.9873),(448,0.9872),(449,0.987),(450,0.9868), (451,0.9867),(452,0.9865),(453,0.9863),(454,0.9861),(455,0.9859), (456,0.9857),(457,0.9855),(458,0.9853),(459,0.9851),(460,0.9848), (461,0.9846),(462,0.9844),(463,0.9873),(464,0.9871),(465,0.987), (466,0.9868),(467,0.9866),(468,0.9864),(469,0.9863),(470,0.9826), (471,0.9823),(472,0.9819),(473,0.9816),(474,0.9813),(475,0.9809), (476,0.9805),(477,0.9802),(478,0.9798),(479,0.9793),(480,0.9789), (481,0.9784),(482,0.978),(483,0.9775),(484,0.977),(485,0.9764), (486,0.9758),(487,0.9752),(488,0.9746),(489,0.974),(490,0.9733), (491,0.978),(492,0.9775),(493,0.977),(494,0.9765),(495,0.9759), (496,0.9753),(497,0.9747),(498,0.9675),(499,0.9664),(500,0.9653), (501,0.964),(502,0.9627),(503,0.9612),(504,0.9597),(505,0.9664), (506,0.9652),(507,0.964),(508,0.9626),(509,0.9612),(510,0.9596), (511,0.9579),(512,0.9451),(513,0.9419),(514,0.9383),(515,0.9342), (516,0.9296),(517,0.9242),(518,0.918),(519,0.9286),(520,0.9231), (521,0.9167),(522,0.9091),(523,0.9),(524,0.8889),(525,0.875), (526,0.8571),(527,0.8333),(528,0.8),(529,0.75),(530,0.6667), (531,0.5),(532,0) ) AS ch(day, val) ON oh.day = ch.day; -- Invalidate snapshot cache depreciation agar recompute dengan standard baru DELETE FROM farm_depreciation_snapshots;