188 Commits

Author SHA1 Message Date
Annamaria Sassi 6411d247b4 - Modificato NavMenu
- Aggiornata ricerca stato in Offerte
2026-05-12 12:23:20 +02:00
Annamaria Sassi 6f621a29df Corretto gestione DataPager in BuyOrderList 2026-05-12 09:34:02 +02:00
Samuele Locatelli 780c2f42eb Buy Items: fix clone con evento tornato a parent
Template: fix display righe cancellabili/non cancellabili
2026-05-11 11:45:36 +02:00
Annamaria Sassi d3b2b9e329 Correzioni 2026-05-11 11:24:46 +02:00
Annamaria Sassi a8f1ff26be Modificate modali di eliminazione/conferma azioni 2026-05-07 16:18:33 +02:00
Annamaria Sassi f43647cd8d Conferma generazione fabbisogni da ordini da modale 2026-05-06 09:29:50 +02:00
Annamaria Sassi 65e3b9bbbc Conferma aggiornamento parametri/ricalcolo offerta tramite modale 2026-05-05 18:16:44 +02:00
Annamaria Sassi 8bf4afba99 Conferma eliminazione/clonazione per singolo template da modale 2026-05-05 17:15:36 +02:00
Annamaria Sassi a84c50adb0 Conferma eliminazione e clonazione template da lista tramite modale 2026-05-05 17:04:41 +02:00
Samuele Locatelli 39363279d7 Merge branch 'develop' of https://gitlab.steamware.net/etis/lux into develop 2026-05-05 11:27:22 +02:00
Samuele Locatelli 4db476b01f refresh 2026-05-05 11:26:29 +02:00
Samuele Locatelli cf2a7e8c26 Update EgwCoreLibs razor + altri nuget 2026-05-05 11:26:14 +02:00
Annamaria Sassi f953976c53 Aggiornata versione componente: configuratore serramenti 2026-04-30 17:43:28 +02:00
Annamaria Sassi 6f5f44de8e Selezione codGroup per report 2026-04-30 17:31:48 +02:00
Annamaria Sassi c455a2347f Aggiunto parametro codGroup nella sorgente dati dei report 2026-04-30 17:12:28 +02:00
Samuele Locatelli edca6ca957 update insomnia test 2026-04-30 15:00:26 +02:00
Samuele Locatelli 0e7e0aaed0 packages update
Update gestione generazione fabbisogni a livello di ordine
update metodo API x recupero filtrato x CodGroup
2026-04-30 11:50:24 +02:00
Annamaria Sassi 8525d81201 Correzioni 2026-04-28 18:47:30 +02:00
Annamaria Sassi 12b85c2572 Modificato MassEdit 2026-04-28 18:10:23 +02:00
Annamaria Sassi 1cdefe6af8 Aggiornata grafica modiali configurazioni 2026-04-28 18:09:33 +02:00
Annamaria Sassi a6c743d8b6 Correzioni icone bottoni 2026-04-28 18:08:45 +02:00
Annamaria Sassi 59249c189a Aggiunta descrizione selezione file report 2026-04-24 18:52:21 +02:00
Samuele Locatelli c865420e95 Aggiunti repository + servizi x reports in LUX UI 2026-04-24 17:42:49 +02:00
Samuele Locatelli a9acd2ca69 Commit ultime modifiche info file report 2026-04-24 16:12:43 +02:00
Samuele Locatelli e416f5c3d4 Update x gestione configurazione aprametri di traduzione nome da tipo file report 2026-04-24 15:57:49 +02:00
Annamaria Sassi fabfeb7a08 Aggiunta selezione template stampa offerte, ordini e ordini fornitore 2026-04-24 13:33:50 +02:00
Annamaria Sassi 1508a3dbbe Modificato nome salvataggio report 2026-04-24 09:04:26 +02:00
Annamaria Sassi 82d9ceed85 Aggiunti download a offerta e ordini 2026-04-23 17:58:38 +02:00
Annamaria Sassi 22a7aa4477 Fix btn stampa report 2026-04-23 16:12:43 +02:00
Samuele Locatelli d9c59a05a5 Bozza inserimento btn stampa report 2026-04-23 14:43:34 +02:00
Samuele Locatelli f4c7799859 Bozza link download pdf + fix displ BuyOrd 2026-04-23 12:23:08 +02:00
Samuele Locatelli e8201e9099 Fix ricerca fabbisogni componibile 2026-04-23 11:45:10 +02:00
Annamaria Sassi 879e515188 Aggiornata pagina BuyOrder 2026-04-23 10:58:33 +02:00
Annamaria Sassi fc3e4e7372 Aggiornato menù laterale 2026-04-23 10:44:56 +02:00
Annamaria Sassi 6c9e5f403f Creato report BuyOrder 2026-04-22 14:54:41 +02:00
Samuele Locatelli 9a2b7fbefe Aggiunta chiamata x record BuyOrder 2026-04-22 10:40:40 +02:00
Samuele Locatelli 301d597dff UPdate REST API test 2026-04-22 10:40:33 +02:00
Samuele Locatelli aaf27bbea7 Centralizzata gestione insert/update ordini 2026-04-22 10:30:29 +02:00
Samuele Locatelli 7521e64053 Update display BuyOrderRow 2026-04-22 09:55:58 +02:00
Samuele Locatelli 09fc6e601c Primo add buyOrder 2026-04-22 09:22:10 +02:00
Samuele Locatelli 46148de703 test positivo creazione ordini fornitore 2026-04-21 18:38:22 +02:00
Samuele Locatelli c2d1d20730 Update metodo repository x creazone
BuyOrder - BuyOrderRow - MatReq (link)
2026-04-21 18:19:05 +02:00
Samuele Locatelli f28649c58a Fix migrazione e metodo preliminare repository x insert nuovi ordini fornitore 2026-04-21 18:12:04 +02:00
Samuele Locatelli 3acf0fd545 Completata logica selezione righe fabbisogni x creazione BuyOrder 2026-04-21 16:39:30 +02:00
Samuele Locatelli 26a9feaf36 Fix display con nuovo blazor control 2026-04-21 15:31:51 +02:00
Annamaria Sassi ae81204ea6 Pagina BuyOrder: elenco Fabbisogni suddivisi per gruppo 2026-04-21 14:44:19 +02:00
Samuele Locatelli 6789b0403e Bozza pagina costruzione BuyOrder al fornitore 2026-04-21 12:26:27 +02:00
Annamaria Sassi 653504843e Correzioni interfaccia ordini 2026-04-21 11:45:15 +02:00
Annamaria Sassi 2062754086 Merge branch 'develop' of https://gitlab.steamware.net/etis/lux into develop 2026-04-21 10:19:24 +02:00
Annamaria Sassi 7087118de8 Aggiunti report MaterialReqOrd e MaterialReqOrdRow 2026-04-21 10:18:12 +02:00
Samuele Locatelli d05768c7eb Fix api x cache metodo ord/ordRow non esatti + update insomnia 2026-04-20 16:06:03 +02:00
Samuele Locatelli 7fe2bb284b Aggiunta metodi x recupero REST degli ordini fabbisogni 2026-04-17 18:06:25 +02:00
Samuele Locatelli 87f9e25692 Fix gestione Ferramenta (no ItemID...) 2026-04-17 17:52:28 +02:00
Samuele Locatelli e7d821bb68 Update migrations e struttura ext ref key 2026-04-17 17:40:38 +02:00
Samuele Locatelli 451275fbce Modifica ulteriore tracciato fabbisogni e review migrazioni relative 2026-04-17 17:09:47 +02:00
Samuele Locatelli b024f32740 Fix migrazione x gestione fabbisogni (iniziale) 2026-04-17 16:48:20 +02:00
Samuele Locatelli 0dfdbb67a4 Update struttura modelli con nuove info x rawItem (es barre) 2026-04-17 16:41:02 +02:00
Samuele Locatelli 13e17a28ae Fix ritorno BOM su Ordini 2026-04-17 12:35:21 +02:00
Samuele Locatelli da7cfb9668 Spostamento servizi warehouse + inserimento prime funzioni calcolo fabbisogni 2026-04-17 12:07:08 +02:00
Samuele Locatelli 863cb3d3a9 Bozza info x stato ordine (display fabbisogni presenti) 2026-04-17 10:13:28 +02:00
Samuele Locatelli 0b21a06a45 Aggiunta CI/CD x report server + relativo deploy 2026-04-17 09:42:32 +02:00
Samuele Locatelli e4beba61e2 Continuo implementazione repo fabbisogni 2026-04-17 09:40:10 +02:00
Samuele Locatelli 6d020b1201 Merge branch 'develop' of https://gitlab.steamware.net/etis/lux into develop 2026-04-17 09:39:24 +02:00
Samuele Locatelli c7005ec513 completo modifiche deploy 2026-04-17 09:38:25 +02:00
Samuele Locatelli 593ebfce5e Aggiunta publish profile x repSrv e primo test pubblicazione da VS2026 2026-04-17 09:38:10 +02:00
Samuele Locatelli 39a534b727 Aggiunta migration fabbisogni 2026-04-16 17:52:58 +02:00
Annamaria Sassi 9a68a597ec Aggiornato componente configuratore finestre 2026-04-16 16:22:40 +02:00
Annamaria Sassi d4cf7eebd2 Modificate interfacce Ordini, offerte e cataloghi 2026-04-16 16:09:08 +02:00
Samuele Locatelli 35eab707a4 Merge branch 'develop' of https://gitlab.steamware.net/etis/lux into develop 2026-04-14 17:42:51 +02:00
Samuele Locatelli c1a427f3a9 Aggiunta metodi repository x Fabbisogni (materialReq) 2026-04-14 17:42:16 +02:00
Annamaria Sassi e2e6bc48a0 Merge branch 'develop' of https://gitlab.steamware.net/etis/lux into develop 2026-04-14 15:50:12 +02:00
Annamaria Sassi c0b444d210 Modificato OfferReport 2026-04-14 15:48:17 +02:00
Samuele Locatelli 2b30e7e8bb Aggiunta migrazione x BuyOrder 2026-04-14 12:25:10 +02:00
Samuele Locatelli 0ff38c19a4 Completo repository BuyOrder + aggiungo repository BuyOrderRow 2026-04-14 12:06:29 +02:00
Samuele Locatelli ce4a42265e Bozza itnerfacce BuyOrder/OrderRow 2026-04-14 11:40:11 +02:00
Samuele Locatelli acf43e8f43 Implementazione interfaccia + repository x supplier 2026-04-14 11:40:01 +02:00
Samuele Locatelli 9a111d2b8a Aggiunta area BuyOrder
- spostato SUppliers
- creato order/OrderRow x acquisti
- migratoin + update DB
2026-04-14 11:24:01 +02:00
Samuele Locatelli 0742741b91 Prima versione con LUX download attivato! 2026-04-10 15:43:17 +02:00
Samuele Locatelli a66da619d8 Completata gestione hide menù come da js preparato da Annamaria 2026-04-10 14:55:28 +02:00
Annamaria Sassi 412f538867 - Modificati report di base
- Sidebar che collassa lateralmente
2026-04-10 09:31:53 +02:00
Samuele Locatelli 1f16e654ab Fix gestione report con check file tempalte 2026-04-09 15:01:57 +02:00
Samuele Locatelli 46b940f9a5 Update repository x dati navigazione ordini e template 2026-04-09 14:55:26 +02:00
Annamaria Sassi 0f9f5e0d9f Iniziato ad aggiungere report di Order e Template base 2026-04-09 14:38:35 +02:00
Samuele Locatelli 52f1bd94ef Update gestione ceck esistenza tipo report (da subfolder) 2026-04-09 12:18:23 +02:00
Samuele Locatelli f3bfe84fe3 Completata gestione report x preview con parametri dinamici 2026-04-09 11:34:04 +02:00
Samuele Locatelli 99f1936e87 Selezione template report da elenco attivata 2026-04-09 10:55:59 +02:00
Samuele Locatelli 29b8b2982d Prima bozza visualizzatore reports 2026-04-09 09:54:31 +02:00
Samuele Locatelli 0723f607ab Continuo implementazione viewer 2026-04-09 09:05:57 +02:00
Samuele Locatelli 479f652514 Update parziale apgina srv x view/export reports 2026-04-08 18:51:52 +02:00
Samuele Locatelli 9720ecf32e Fix edit preliminare report e configurazione con parametro edit completo 2026-04-08 18:34:44 +02:00
Annamaria Sassi 51ffd61a6c Aggiunta eliminazione offerta/ordine report 2026-04-08 17:53:28 +02:00
Samuele Locatelli 105e29f577 Update con refresh conteggio template disponibili 2026-04-08 17:26:21 +02:00
Samuele Locatelli 5ce82b0e19 Aggiunta metodi conteggio e lista file senza template nascosti + clone/copy template 2026-04-08 17:24:24 +02:00
Samuele Locatelli 3cfb050874 Update layout grafico MainLayout + footer + version 2026-04-08 16:47:13 +02:00
Samuele Locatelli f900437399 Aggiunta pipeline x compilazione ReportManager + deploy su IIS01 2026-04-08 16:28:22 +02:00
Samuele Locatelli 2707f9e023 Update file x pubblicazione 2026-04-08 16:25:43 +02:00
Samuele Locatelli fb38958765 Aggiunta conf XML x pubblicazione sito RepMan 2026-04-08 16:25:37 +02:00
Samuele Locatelli bccbc9c079 Continuo fix gestione editing report DevExpress 2026-04-08 15:59:40 +02:00
Samuele Locatelli be16a428f7 Update gestione elenco report 2026-04-07 18:39:46 +02:00
Samuele Locatelli 54e707ff08 Continuo implementazione report mgmt 2026-04-07 16:54:53 +02:00
Samuele Locatelli d8388b2746 implementazione preliminare repository x report 2026-04-07 16:54:42 +02:00
Samuele Locatelli ae21e4ba55 Update struttura dati + migrations 2026-04-07 16:54:31 +02:00
Samuele Locatelli 58359adc9b Continuo conf dei parametri webapp report 2026-04-07 16:04:55 +02:00
Samuele Locatelli 7f1a6ffc5f Aggiunta preliminare progetti gestioen report (Server e Manager) 2026-04-07 15:03:53 +02:00
Annamaria Sassi f317c9fd23 Nuovo test per passaggio sorgente dati 2026-04-07 14:36:24 +02:00
Annamaria Sassi b62a5c4c13 Merge branch 'develop' of https://gitlab.steamware.net/etis/lux into develop 2026-04-03 12:31:47 +02:00
Annamaria Sassi 4b41ed6dde - Gestito ReportDesign
- Importazione ReportDesign in ReportViewer
2026-04-03 12:31:42 +02:00
Samuele Locatelli 366e6adc94 Completo reorg helpers immagini da API 2026-04-02 15:48:02 +02:00
Samuele Locatelli e3fc22a553 Merge branch 'develop' of https://gitlab.steamware.net/etis/lux into develop 2026-04-02 15:08:04 +02:00
Samuele Locatelli 2dc5d2758e Continuo fix img:grafica Selling Item fixed 2026-04-02 15:07:59 +02:00
Annamaria Sassi 92c83da129 Aggiornata grafica preventivo 2026-04-02 09:42:07 +02:00
Samuele Locatelli 4c21b97bc9 Inizio fix templates img 2026-04-01 18:44:26 +02:00
Samuele Locatelli 3c4b697292 Merge branch 'develop' of https://gitlab.steamware.net/etis/lux into develop 2026-04-01 18:34:34 +02:00
Samuele Locatelli 9e75f7424f Ancora update metodo calcolo URL immagine semplificato (x offerte) 2026-04-01 18:34:31 +02:00
Annamaria Sassi d83bf57b0a Merge branch 'develop' of https://gitlab.steamware.net/etis/lux into develop 2026-04-01 17:59:54 +02:00
Annamaria Sassi 29762cd69c UPdate report con stampa PDF 2026-04-01 17:59:49 +02:00
Samuele Locatelli da13dbc417 Inizio semplificazione imgUrl in UI 2026-04-01 12:59:16 +02:00
Samuele Locatelli 328673f192 Fix calcolo IMG x report 2026-04-01 12:53:01 +02:00
Annamaria Sassi 050e698eed Merge branch 'develop' of https://gitlab.steamware.net/etis/lux into develop 2026-04-01 12:35:14 +02:00
Annamaria Sassi d6085b56ab Modificato grafica report 2026-04-01 12:35:10 +02:00
Samuele Locatelli fee246f3fe Prime immagini sistemate... 2026-04-01 12:34:05 +02:00
Samuele Locatelli 3977b5398f Merge branch 'develop' of https://gitlab.steamware.net/etis/lux into develop 2026-04-01 12:28:59 +02:00
Samuele Locatelli 0b04856907 Inizio modifica img cache x API 2026-04-01 12:28:57 +02:00
Samuele Locatelli ddb9bf4347 Inizio modifica servizio API x rotte img static 2026-04-01 12:27:46 +02:00
Annamaria Sassi 4328747e3e Aggiornati package usati 2026-04-01 11:59:22 +02:00
Samuele Locatelli 7a3d9bb81c fIX REPORT: FINALMENTE è DINAMICO! 2026-04-01 11:26:51 +02:00
Samuele Locatelli 194208fd89 Finto fix img url 2026-04-01 10:40:05 +02:00
Samuele Locatelli 8d3166dbe9 Update API x inserire URL immagine diretto + spostamento report e pulizia 2026-04-01 10:25:11 +02:00
Annamaria Sassi bdf4b6b8bd Merge branch 'develop' of https://gitlab.steamware.net/etis/lux into develop 2026-04-01 09:01:59 +02:00
Annamaria Sassi 79e1d71ce4 Gestione parametro in URL per Report 2026-04-01 09:01:55 +02:00
Samuele E. Locatelli (W11-AI) b45a91e194 Merge branch 'develop' of https://gitlab.steamware.net/etis/lux into develop 2026-04-01 08:25:35 +02:00
Samuele E. Locatelli (W11-AI) fccc1372ea Update commenti servizi 2026-04-01 08:25:32 +02:00
Samuele Locatelli 24e3b63980 update parziale report controller 2026-03-31 18:47:34 +02:00
Samuele Locatelli bd51f368b1 Fix json output con serializzazione globale + update return x Report controller API 2026-03-31 18:33:33 +02:00
Samuele Locatelli e405942d03 Fix log x controllers File e Report 2026-03-31 18:22:10 +02:00
Samuele Locatelli 7ac353e8c6 Aggiunta sorgente dati JSON x Offerta + righe 2026-03-31 17:09:39 +02:00
Samuele Locatelli 2bd50a4bc6 Update test insomnia x report JSON via API 2026-03-31 17:03:21 +02:00
Samuele Locatelli 19b4b8ccf0 Aggiunta metodi x REST call API con risposta JSON delle offerte 2026-03-31 16:58:03 +02:00
Samuele Locatelli 266ee95b1b Spostamento proj Test report x DevExpress 2026-03-31 16:57:47 +02:00
Annamaria Sassi f76c88d65d Aggiunto progetto per reporting con DevExpress 2026-03-31 15:58:48 +02:00
Samuele Locatelli 25c6ba7fd2 Fix selezione template da elenco 2026-03-30 17:22:00 +02:00
Samuele Locatelli 0c6c2ac78e Fix gestione insert da template 2026-03-30 16:25:03 +02:00
Samuele Locatelli b0e6f410f6 Refresh 2026-03-30 16:01:59 +02:00
Samuele Locatelli dec92ec530 Update nuget compoennte window + test parametri da template, test ok su jwd esistenti anceh con cambio material/wood che invalida i JED da DB 2026-03-30 12:42:08 +02:00
Samuele Locatelli 7909d68b29 Aggiunta preliminare gestione update JWD da template secondo parametri preselezionati 2026-03-30 12:24:25 +02:00
Samuele Locatelli 3eafecd756 Update parziale componente x gestione modifiche parametri 2026-03-30 11:21:59 +02:00
Samuele Locatelli c7128e19a8 Update ciclo aggiornamento dictParamReq 2026-03-27 18:55:08 +01:00
Samuele Locatelli d9d0ee9e28 Update componente WebWindow e test parziale 2026-03-27 18:10:59 +01:00
Samuele Locatelli 3ba155eb99 Aggiunta update display offerte x modifiche pending 2026-03-27 17:30:01 +01:00
Samuele Locatelli efc0f0ebb1 Aggiunta migration con nuova colonna dati x pendingReq configurazione righe ordine 2026-03-27 17:14:18 +01:00
Samuele Locatelli db29fc6274 Update x gestione parametri... 2026-03-27 12:23:13 +01:00
Samuele Locatelli fc66013385 fix correzioni region 2026-03-25 17:25:58 +01:00
Samuele E. Locatelli (W11-AI) 33de4d3616 Completo prima revisione repository x commenti 2026-03-25 17:25:00 +01:00
Samuele E. Locatelli (W11-AI) f3143573be Continuo fix manuale interfacce e commenti 2026-03-25 17:23:42 +01:00
Samuele E. Locatelli (W11-AI) c762b4e74b Continuo con fix manuali su correzioni 2026-03-25 17:21:26 +01:00
Samuele Locatelli e0d2323f5d Ancora fix warnings compilazione 2026-03-25 16:16:55 +01:00
Samuele Locatelli d039202670 Merge branch 'develop' of https://gitlab.steamware.net/etis/lux into develop 2026-03-25 16:13:42 +01:00
Samuele Locatelli 4d58189581 Async/Await fix vari 2026-03-25 16:13:40 +01:00
Samuele E. Locatelli (W11-AI) e455bb217e Continuo fix interfaces 2026-03-25 16:12:13 +01:00
Samuele Locatelli 10dde714e2 Merge branch 'develop' of https://gitlab.steamware.net/etis/lux into develop 2026-03-25 16:01:43 +01:00
Samuele E. Locatelli (W11-AI) c031fe76ba Continuo fix Repository fino Job 2026-03-25 16:01:21 +01:00
Samuele Locatelli 82fc76b11f Fix catalog dependency 2026-03-25 15:59:20 +01:00
Samuele E. Locatelli (W11-AI) 42b30e1941 Continuo con Config e Cost 2026-03-25 15:54:30 +01:00
Samuele E. Locatelli (W11-AI) ed163d7af2 Fix area repository: comincio da catalog 2026-03-25 15:52:07 +01:00
Samuele E. Locatelli (W11-AI) e16135fbc8 Continuo fix XML 2026-03-25 15:28:03 +01:00
Samuele E. Locatelli (W11-AI) 110b473f60 Continuo fix interfaces XML comments 2026-03-25 15:26:16 +01:00
Samuele E. Locatelli (W11-AI) d6c32c34fd Continuo fix interfacce 2026-03-25 15:02:26 +01:00
Samuele E. Locatelli (W11-AI) a17a586ddb COmpleto review doc interfacce 2026-03-25 14:02:28 +01:00
Samuele E. Locatelli (W11-AI) d144d94a25 Inizio fix production serices 2026-03-25 13:51:16 +01:00
Samuele E. Locatelli (W11-AI) fb9874bbf2 Continuo fix commenti 2026-03-25 11:15:00 +01:00
Samuele E. Locatelli (W11-AI) 3c923ecf97 Continuo fix commenti 2026-03-25 11:05:52 +01:00
Samuele E. Locatelli (W11-AI) a577ef73aa Continuo fix commenti 2026-03-25 10:18:34 +01:00
Samuele E. Locatelli (W11-AI) 1a91e26889 Spostamento commenti verso interfaces (da implementazioni) x DAL 2026-03-25 10:03:13 +01:00
Samuele Locatelli 45c2f9bb45 Fix Using x progetto UI 2026-03-25 09:05:06 +01:00
Samuele Locatelli 678c01a668 Ancora fix API 2026-03-25 08:33:53 +01:00
Samuele Locatelli 009dca4f75 Fix global Using in API proj 2026-03-25 08:32:52 +01:00
Samuele Locatelli ac397783be Completo refactor using in classi Lux.Data 2026-03-25 08:24:25 +01:00
Samuele Locatelli 8530434732 Fix namespace in repository 2026-03-25 07:27:51 +01:00
Samuele Locatelli a692e1edb4 Continuo implementazione DAL (mancano repo e services) 2026-03-25 07:24:21 +01:00
Samuele Locatelli ab197081d3 Riorganizzazione pesante namespace con global using & co (inizio) 2026-03-25 07:19:45 +01:00
Samuele Locatelli 29b9fcb3a9 Refresh vers 2026-03-24 19:08:31 +01:00
Samuele Locatelli 1f2a89e6f0 Aggiunta metodi RedisService x ProdService 2026-03-24 18:58:04 +01:00
Samuele Locatelli 9fe3f55843 Fix display download solo ove coerente in OfferRow 2026-03-24 18:28:27 +01:00
Samuele Locatelli 1f792414ff Fix imagecaches ervice: usa metodiposti da RedisService x flush 2026-03-24 18:26:50 +01:00
Samuele Locatelli f1a1abd01c Fix dispose x MessagePipe e RedisSubscriptionManager 2026-03-24 18:16:12 +01:00
Samuele Locatelli 0be708298d Fix file controller x download jwd 2026-03-24 17:29:44 +01:00
Samuele Locatelli 30168c4b2f Cleanup obj/metodi inutilizzati 2026-03-24 16:54:00 +01:00
Samuele Locatelli 93fb00f578 Merge tag 'MoveCompoGroup' into develop
Spostamento componenti in subfolder specifiche
2026-03-24 16:43:24 +01:00
943 changed files with 286877 additions and 4463 deletions
+76 -15
View File
@@ -11,8 +11,6 @@ variables:
NUGET_PATH: 'C:\Tools\nuget.exe'
DEST: 'install'
# nota: cer creazione rules: https://docs.gitlab.com/ee/ci/jobs/job_control.html#common-if-clauses-for-rules
# helper x fix pacchetti nuget da repo locale nexus.steamware.net
.nuget-fix: &nuget-fix
- |
@@ -47,19 +45,6 @@ variables:
dotnet nuget list source
## helper x fix appsettings config nei casi installer / office
#.appsettings-fix: &appsettings-fix
# - |
# echo "esecuzione FIX appsettings.json"
# $srcFile="$env:APP_NAME/appsettings.Production-install.json"
# $dstFile="$env:APP_NAME/appsettings.Production.json"
# if (($env:DEST -ne 'install')) {
# $srcFile="$env:APP_NAME/appsettings.Production-office.json"
# }
# echo "Copy-Item -Path $srcFile -Destination $dstFile -force"
# Copy-Item -Path $srcFile -Destination $dstFile -force
# echo "Completata copia file appsettings.json corretto"
# helper creazione hash files x IIS
.hashBuild: &hashBuild
- |
@@ -185,6 +170,44 @@ Lux.API:build:
- echo $CI_COMMIT_BRANCH
- dotnet build $env:APP_NAME/$env:APP_NAME.csproj
Lux.RepMan:build:
stage: build
tags:
- win
variables:
APP_NAME: Lux.Report.Manager
SOL_NAME: Lux.Report
rules:
- if: $CI_COMMIT_BRANCH == 'develop'
- if: $CI_COMMIT_BRANCH == 'main'
- if: $CI_COMMIT_BRANCH =~ /^feature\/Lux.API.+/
when: always
before_script:
- *nuget-fix
- dotnet restore "$env:SOL_NAME.sln"
script:
- echo $CI_COMMIT_BRANCH
- dotnet build $env:APP_NAME/$env:APP_NAME.csproj
Lux.RepSrv:build:
stage: build
tags:
- win
variables:
APP_NAME: Lux.Report.Server
SOL_NAME: Lux.Report
rules:
- if: $CI_COMMIT_BRANCH == 'develop'
- if: $CI_COMMIT_BRANCH == 'main'
- if: $CI_COMMIT_BRANCH =~ /^feature\/Lux.API.+/
when: always
before_script:
- *nuget-fix
- dotnet restore "$env:SOL_NAME.sln"
script:
- echo $CI_COMMIT_BRANCH
- dotnet build $env:APP_NAME/$env:APP_NAME.csproj
# --------------------------------
# DEPLOY develop (IIS01 + beta nuget)
# --------------------------------
@@ -226,6 +249,44 @@ Lux.API:IIS01:deploy:
- dotnet build $env:APP_NAME/$env:APP_NAME.csproj
- dotnet publish -p:PublishProfile=IIS01.pubxml -p:RunCodeAnalysis=false -p:Configuration=Release -p:username=jenkins -p:Password=$IIS_PWD -p:AllowUntrustedCertificate=true -p:verbosity=quiet $env:APP_NAME/$env:APP_NAME.csproj
Lux.RepMan:IIS01:deploy:
stage: deploy
tags:
- win
variables:
APP_NAME: Lux.Report.Manager
SOL_NAME: Lux.Report
before_script:
- *nuget-fix
- dotnet restore "$env:SOL_NAME.sln"
rules:
- if: $CI_COMMIT_BRANCH == 'develop'
- if: $CI_COMMIT_BRANCH =~ /^feature\/Lux.API.+/
when: always
needs: ["Lux.RepMan:build"]
script:
- dotnet build $env:APP_NAME/$env:APP_NAME.csproj
- dotnet publish -p:PublishProfile=IIS01.pubxml -p:RunCodeAnalysis=false -p:Configuration=Release -p:username=jenkins -p:Password=$IIS_PWD -p:AllowUntrustedCertificate=true -p:verbosity=quiet $env:APP_NAME/$env:APP_NAME.csproj
Lux.RepSrv:IIS01:deploy:
stage: deploy
tags:
- win
variables:
APP_NAME: Lux.Report.Server
SOL_NAME: Lux.Report
before_script:
- *nuget-fix
- dotnet restore "$env:SOL_NAME.sln"
rules:
- if: $CI_COMMIT_BRANCH == 'develop'
- if: $CI_COMMIT_BRANCH =~ /^feature\/Lux.API.+/
when: always
needs: ["Lux.RepSrv:build"]
script:
- dotnet build $env:APP_NAME/$env:APP_NAME.csproj
- dotnet publish -p:PublishProfile=IIS01.pubxml -p:RunCodeAnalysis=false -p:Configuration=Release -p:username=jenkins -p:Password=$IIS_PWD -p:AllowUntrustedCertificate=true -p:verbosity=quiet $env:APP_NAME/$env:APP_NAME.csproj
EgwCoreLib.Lux.Core:SDK:deploy:
stage: deploy
tags:
+18 -12
View File
@@ -8,11 +8,17 @@
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageVersion>
<PackageVersion Include="Egw.Lux.WebWindow.Base" Version="3.1.3.2010" />
<PackageVersion Include="Egw.Lux.WebWindowComplex" Version="3.1.3.2010" />
<PackageVersion Include="DevExpress.AspNetCore.Reporting" Version="25.2.5" />
<PackageVersion Include="DevExpress.Blazor" Version="25.2.5" />
<PackageVersion Include="DevExpress.Blazor.Reporting.JSBasedControls" Version="25.2.5" />
<PackageVersion Include="DevExpress.Blazor.Reporting.Viewer" Version="25.2.5" />
<PackageVersion Include="Microsoft.CodeAnalysis" Version="5.3.0" />
<PackageVersion Include="Microsoft.Data.Sqlite" Version="10.0.5" />
<PackageVersion Include="Egw.Lux.WebWindow.Base" Version="3.1.4.3017" />
<PackageVersion Include="Egw.Lux.WebWindowComplex" Version="3.1.4.3017" />
<PackageVersion Include="Egw.Window.Data" Version="2.8.1.2611" />
<PackageVersion Include="EgwCoreLib.Razor" Version="1.5.2511.312" />
<PackageVersion Include="EgwCoreLib.Utils" Version="1.5.2511.312" />
<PackageVersion Include="EgwCoreLib.Razor" Version="1.5.2605.511" />
<PackageVersion Include="EgwCoreLib.Utils" Version="1.5.2605.511" />
<PackageVersion Include="EgwMultiEngineManager.Data" Version="3.1.1.2" />
<PackageVersion Include="Microsoft.AspNetCore.Components.WebAssembly" Version="8.0.23" />
<PackageVersion Include="Microsoft.AspNetCore.Components.WebAssembly.Authentication" Version="8.0.23" />
@@ -29,16 +35,16 @@
<PackageVersion Include="Microsoft.Extensions.Configuration.Binder" Version="9.0.12" />
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="9.0.12" />
<PackageVersion Include="Newtonsoft.Json" Version="13.0.4" />
<PackageVersion Include="NLog" Version="6.0.7" />
<PackageVersion Include="NLog.Targets.OpenTelemetryProtocol" Version="1.2.6" />
<PackageVersion Include="NLog.Web.AspNetCore" Version="6.1.0" />
<PackageVersion Include="NLog" Version="6.1.2" />
<PackageVersion Include="NLog.Targets.OpenTelemetryProtocol" Version="1.2.7" />
<PackageVersion Include="NLog.Web.AspNetCore" Version="6.1.2" />
<PackageVersion Include="OpenTelemetry.Api" Version="1.15.0" />
<PackageVersion Include="OpenTelemetry.Exporter.Console" Version="1.15.0" />
<PackageVersion Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.15.0" />
<PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="1.15.0" />
<PackageVersion Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.15.0" />
<PackageVersion Include="OpenTelemetry.Exporter.Console" Version="1.15.3" />
<PackageVersion Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.15.3" />
<PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="1.15.3" />
<PackageVersion Include="OpenTelemetry.Instrumentation.AspNetCore" Version="1.15.2" />
<PackageVersion Include="OpenTelemetry.Instrumentation.EntityFrameworkCore" Version="1.15.0-beta.1" />
<PackageVersion Include="OpenTelemetry.Instrumentation.Http" Version="1.15.0" />
<PackageVersion Include="OpenTelemetry.Instrumentation.Http" Version="1.15.1" />
<PackageVersion Include="OpenTelemetry.Instrumentation.StackExchangeRedis" Version="1.15.0-beta.1" />
<PackageVersion Include="Pomelo.EntityFrameworkCore.MySql" Version="8.0.3" />
<PackageVersion Include="Radzen.Blazor" Version="8.6.5" />
+1 -5
View File
@@ -1,8 +1,4 @@
using Newtonsoft.Json;
namespace EgwCoreLib.Lux.Core
namespace EgwCoreLib.Lux.Core
{
public static class CloneExtensions
{
@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//// <Auto-Generated>
//// <Auto-Generated>
//// This is here so CodeMaid doesn't reorganize this document
//// </Auto-Generated>
namespace EgwCoreLib.Lux.Core
@@ -12,7 +6,7 @@ namespace EgwCoreLib.Lux.Core
/// <summary>
/// Configurazione costanti applicative
/// </summary>
public class Constants
public class Const
{
// dati conf REDIS Cache
@@ -1,12 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCoreLib.Lux.Core
namespace EgwCoreLib.Lux.Core
{
public class DtUtils
public class DateTimeUtils
{
/// <summary>
/// Formattazione dataora fissa come HH:mm:ss
+27
View File
@@ -0,0 +1,27 @@
namespace EgwCoreLib.Lux.Core.Dto
{
public class ParamConfigDto
{
/// <summary>
/// Nome parametro
/// </summary>
public string Name { get; set; } = "fix";
/// <summary>
/// Tipo parametro:
/// - fix (fisso)
/// - url (prende da URL QueryString)
/// </summary>
public string Type { get; set; } = "fix";
/// <summary>
/// Per recuperare da ingresso (es URL)
/// </summary>
public string vIN { get; set; } = "";
/// <summary>
/// Valore out (da passare come apram x report)
/// </summary>
public string vOUT { get; set; } = "";
}
}
+36
View File
@@ -162,6 +162,9 @@
Lost
}
/// <summary>
/// Status ordini cliente
/// </summary>
public enum OrderStates
{
/// <summary>
@@ -210,6 +213,39 @@
Closed
}
public enum BuyOrderStates
{
/// <summary>
/// Ordine acquisto creato da BOM di 1/+ ordini
/// </summary>
Created,
/// <summary>
/// Richiesta quotazione fornitori
/// </summary>
Requested,
/// <summary>
/// Assegnato a supplier (e inviato)
/// </summary>
Assigned,
/// <summary>
/// Parzialmente ricevuto
/// </summary>
Partial,
/// <summary>
/// Completato poiché ho ricevuto Merce (e DDT)
/// </summary>
Completed,
/// <summary>
/// Ordine chiuso (con fatturazione)
/// </summary>
Closed
}
/// <summary>
/// Enum risultati verifica lavorabilità part (e tempo)
/// </summary>
+1 -8
View File
@@ -1,11 +1,4 @@
using NLog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCoreLib.Lux.Core
namespace EgwCoreLib.Lux.Core
{
public class FileUtils
{
+2 -8
View File
@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCoreLib.Lux.Core.Generic
namespace EgwCoreLib.Lux.Core.Generic
{
public class EventDto
{
@@ -43,7 +37,7 @@ namespace EgwCoreLib.Lux.Core.Generic
Conf = this.Conf,
IsCompany = this.IsCompany,
#endif
Abbrev = this.Abbrev,
Abbrev = this.Abbrev,
Titolo = this.Titolo,
Descrizione = this.Descrizione,
Tooltip = this.Tooltip,
@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCoreLib.Lux.Core.Generic
namespace EgwCoreLib.Lux.Core.Generic
{
public class GroupDetailDTO
{
+1 -7
View File
@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCoreLib.Lux.Core.Generic
namespace EgwCoreLib.Lux.Core.Generic
{
/// <summary>
/// Definizione di item raw x calcolo lavorazioni
@@ -1,9 +1,4 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ComponentModel.DataAnnotations.Schema;
namespace EgwCoreLib.Lux.Core.Generic
{
+1 -7
View File
@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCoreLib.Lux.Core.Generic
namespace EgwCoreLib.Lux.Core.Generic
{
public class TaskHistDTO
{
+2
View File
@@ -0,0 +1,2 @@
global using Newtonsoft.Json;
global using NLog;
+2 -7
View File
@@ -1,9 +1,4 @@
using EgwCoreLib.Lux.Core.RestPayload;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCoreLib.Lux.Core.MachineCalc
{
@@ -75,7 +70,7 @@ namespace EgwCoreLib.Lux.Core.MachineCalc
}
return results;
}
}
/// <summary>
/// Calcolo intersezioni anche dell'insieme nullo (= UNWORKABLE)
@@ -287,7 +282,7 @@ namespace EgwCoreLib.Lux.Core.MachineCalc
return machines
.Select(m => m.PartList.Where(predicate).Select(p => p.Tag).ToHashSet())
.Aggregate((set1, set2) => { set1.IntersectWith(set2); return set1; });
}
}
#endregion Public Methods
+6 -3
View File
@@ -1,6 +1,4 @@
using Newtonsoft.Json;
namespace EgwCoreLib.Lux.Core
namespace EgwCoreLib.Lux.Core
{
/// <summary>
/// Generico dizionario parametri con funzione ricerca valore (SE presente)
@@ -77,6 +75,11 @@ namespace EgwCoreLib.Lux.Core
#endregion Public Methods
public Dictionary<string, string> DictReadOnly
{
get => DictVals;
}
#region Private Properties
/// <summary>
+60
View File
@@ -0,0 +1,60 @@
public class ParamDictFlex<TValue>
{
private Dictionary<string, TValue> DictVals { get; set; } = new Dictionary<string, TValue>();
// Costruttore da stringa JSON (TValue è un tipo concreto serializzabile)
public ParamDictFlex(string rawVal)
{
if (string.IsNullOrWhiteSpace(rawVal))
{
DictVals = new Dictionary<string, TValue>();
return;
}
DictVals = JsonConvert.DeserializeObject<Dictionary<string, TValue>>(rawVal)
?? new Dictionary<string, TValue>();
}
// Costruttore da dizionario
public ParamDictFlex(Dictionary<string, TValue> newDict)
{
DictVals = newDict ?? new Dictionary<string, TValue>();
}
// Versione serializzata del dizionario
public string Serialized
{
get => JsonConvert.SerializeObject(DictVals);
}
// Recupera valore; ritorna default(TValue) se la chiave non esiste
public TValue GetVal(string reqKey)
{
if (reqKey is null) throw new ArgumentNullException(nameof(reqKey));
return DictVals.TryGetValue(reqKey, out var val) ? val : default!;
}
// Imposta valore (aggiunge o aggiorna)
public void SetVal(string key, TValue val)
{
if (key is null) throw new ArgumentNullException(nameof(key));
DictVals[key] = val;
}
// Rimuove chiave
public bool Remove(string key)
{
if (key is null) throw new ArgumentNullException(nameof(key));
return DictVals.Remove(key);
}
// Controlla esistenza chiave
public bool ContainsKey(string key)
{
if (key is null) throw new ArgumentNullException(nameof(key));
return DictVals.ContainsKey(key);
}
// Espone una copia di sola lettura del dizionario
public IReadOnlyDictionary<string, TValue> AsReadOnly() => new Dictionary<string, TValue>(DictVals);
}
+1 -7
View File
@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCoreLib.Lux.Core
namespace EgwCoreLib.Lux.Core
{
public class PubSubEventArgs : EventArgs
{
+1 -7
View File
@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCoreLib.Lux.Core.RestPayload
namespace EgwCoreLib.Lux.Core.RestPayload
{
public class BomDTO
{
@@ -1,9 +1,4 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ComponentModel.DataAnnotations.Schema;
namespace EgwCoreLib.Lux.Core.RestPayload
{
@@ -31,7 +26,7 @@ namespace EgwCoreLib.Lux.Core.RestPayload
/// Numero Item
/// </summary>
public int ItemQty { get; set; } = 0;
/// <summary>
/// Volume relativo (m3)
/// </summary>
@@ -1,12 +1,4 @@
using Newtonsoft.Json.Converters;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.Json.Serialization;
using System.Threading.Tasks;
namespace EgwCoreLib.Lux.Core.RestPayload
namespace EgwCoreLib.Lux.Core.RestPayload
{
public class CalcRequestDTO
{
@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCoreLib.Lux.Core.RestPayload
namespace EgwCoreLib.Lux.Core.RestPayload
{
/// <summary>
/// Classe DTO x richieste di stima lavorazioni
+2 -8
View File
@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// <Auto-Generated>
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace EgwCoreLib.Lux.Core.RestPayload
@@ -18,7 +12,7 @@ namespace EgwCoreLib.Lux.Core.RestPayload
public double Width { get; set; } = 800;
public double Height { get; set; } = 800;
/// <summary>
/// FAKE: nome del file svg da leggere direttamente...
/// </summary>
@@ -1,11 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection.PortableExecutable;
using System.Text;
using System.Threading.Tasks;
namespace EgwCoreLib.Lux.Core.RestPayload
namespace EgwCoreLib.Lux.Core.RestPayload
{
/// <summary>
/// Classe per deserializzazione risposta stima lavorabilità e tempi x macchina
@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCoreLib.Lux.Core.RestPayload
namespace EgwCoreLib.Lux.Core.RestPayload
{
public class NestingReqPayloadDTO
{
@@ -1,9 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static EgwCoreLib.Lux.Core.Enums;
using static EgwCoreLib.Lux.Core.Enums;
namespace EgwCoreLib.Lux.Core.RestPayload
{
@@ -1,7 +1,7 @@
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace EgwCoreLib.Lux.Data.DbModel.Cost
namespace EgwCoreLib.Lux.Core.RestPayload
{
/// <summary>
/// Dati di dettaglio per Tempi / Costi di uno step (
@@ -1,12 +1,4 @@
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection.PortableExecutable;
using System.Text;
using System.Threading.Tasks;
namespace EgwCoreLib.Lux.Core.RestPayload
namespace EgwCoreLib.Lux.Core.RestPayload
{
/// <summary>
/// Classe per definizione WorkLoad in dettaglio x un dato task (POR tipicamente)
+3 -9
View File
@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCoreLib.Lux.Core.Stats
namespace EgwCoreLib.Lux.Core.Stats
{
/// <summary>
/// Classe per trasferimento dati RT da redis
@@ -15,7 +9,7 @@ namespace EgwCoreLib.Lux.Core.Stats
/// Tag Classificazione del dato
/// </summary>
public string TagClass { get; set; } = "";
/// <summary>
/// DataOra riferimento
/// </summary>
@@ -25,7 +19,7 @@ namespace EgwCoreLib.Lux.Core.Stats
/// num eventi registrati
/// </summary>
public int EventCount { get; set; }
/// <summary>
/// Durata totale registrata
/// </summary>
+1 -7
View File
@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCoreLib.Lux.Core.Stats
namespace EgwCoreLib.Lux.Core.Stats
{
public class StatsRangeDto
{
@@ -1,10 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCoreLib.Lux.Core.Stats
namespace EgwCoreLib.Lux.Core.Stats
{
public class StatsRealtimeDto
{
+2 -11
View File
@@ -1,13 +1,4 @@
using EgwCoreLib.Lux.Data.Data.DbModel.Admin;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCoreLib.Lux.Data
namespace EgwCoreLib.Lux.Data
{
public partial class AdminContext : DbContext
{
@@ -30,7 +21,7 @@ namespace EgwCoreLib.Lux.Data
public AdminContext(DbContextOptions<AdminContext> options) : base(options)
{
}
}
#endregion Public Constructors
@@ -1,10 +1,4 @@
using EgwCoreLib.Lux.Core.Generic;
using EgwMultiEngineManager.Data;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCoreLib.Lux.Data.Controllers
{
+16 -16
View File
@@ -1,18 +1,4 @@
using EgwCoreLib.Lux.Data.DbModel.Catalog;
using EgwCoreLib.Lux.Data.DbModel.Config;
using EgwCoreLib.Lux.Data.DbModel.Cost;
using EgwCoreLib.Lux.Data.DbModel.Items;
using EgwCoreLib.Lux.Data.DbModel.Production;
using EgwCoreLib.Lux.Data.DbModel.Sales;
using EgwCoreLib.Lux.Data.DbModel.Stats;
using EgwCoreLib.Lux.Data.DbModel.Stock;
using EgwCoreLib.Lux.Data.DbModel.Job;
using EgwCoreLib.Lux.Data.DbModel.Utils;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using NLog;
namespace EgwCoreLib.Lux.Data
namespace EgwCoreLib.Lux.Data
{
public partial class DataLayerContext : DbContext
{
@@ -57,7 +43,14 @@ namespace EgwCoreLib.Lux.Data
public virtual DbSet<TagsModel> DbSetTags { get; set; }
public virtual DbSet<CustomerModel> DbSetCustomer { get; set; }
public virtual DbSet<DealerModel> DbSetDealer { get; set; }
public virtual DbSet<SupplierModel> DbSetSupplier { get; set; }
public virtual DbSet<SupplierQualifyModel> DbSetSupplierQualify { get; set; }
public virtual DbSet<BuyOrderModel> DbSetBuyOrder { get; set; }
public virtual DbSet<BuyOrderRowModel> DbSetBuyOrderRow { get; set; }
public virtual DbSet<MatReqModel> DbSetMaterialReq { get; set; }
public virtual DbSet<BuyOrderRow2MatReqModel> DbSetBuyOrdRow2MatReq { get; set; }
public virtual DbSet<OfferModel> DbSetOffer { get; set; }
public virtual DbSet<OfferRowModel> DbSetOfferRow { get; set; }
public virtual DbSet<OrderModel> DbSetOrder { get; set; }
@@ -137,8 +130,15 @@ namespace EgwCoreLib.Lux.Data
modelBuilder.Entity<JobStepTagModel>()
.HasKey(jst => new { jst.JobStepID, jst.CodTag });
// area Buy
modelBuilder.Entity<SupplierQualifyModel>()
.HasKey(sq => new { sq.SupplierID, sq.CodGroup });
modelBuilder.Entity<BuyOrderRow2MatReqModel>()
.HasKey(bm => new { bm.BuyOrderRowID, bm.MatReqID });
modelBuilder.Entity<ProductionItem2ODLModel>()
.HasKey(x => new { x.ProdItemID, x.ProdODLID });
.HasKey(x => new { x.ProdItemID, x.ProdODLID });
modelBuilder.Entity<ProductionItem2ODLModel>()
.HasOne(x => x.ProductionItemNav)
@@ -1,11 +1,6 @@
using EgwCoreLib.Lux.Data.Repository.Config;
using EgwCoreLib.Lux.Data.Repository.Cost;
using EgwCoreLib.Lux.Data.Repository.Items;
using EgwCoreLib.Lux.Data.Repository.Job;
using EgwCoreLib.Lux.Data.Repository.Production;
using EgwCoreLib.Lux.Data.Repository.Sales;
using EgwCoreLib.Lux.Data.Repository.Stats;
using EgwCoreLib.Lux.Data.Repository.Utils;
using EgwCoreLib.Lux.Data.Repository.Report;
using EgwCoreLib.Lux.Data.Repository.Supplier;
using EgwCoreLib.Lux.Data.Services.Catalog;
using EgwCoreLib.Lux.Data.Services.Config;
using EgwCoreLib.Lux.Data.Services.Cost;
using EgwCoreLib.Lux.Data.Services.General;
@@ -13,10 +8,11 @@ using EgwCoreLib.Lux.Data.Services.Internal;
using EgwCoreLib.Lux.Data.Services.Items;
using EgwCoreLib.Lux.Data.Services.Job;
using EgwCoreLib.Lux.Data.Services.Production;
using EgwCoreLib.Lux.Data.Services.Report;
using EgwCoreLib.Lux.Data.Services.Sales;
using EgwCoreLib.Lux.Data.Services.Stats;
using EgwCoreLib.Lux.Data.Services.Supplier;
using EgwCoreLib.Lux.Data.Services.Utils;
using Microsoft.Extensions.DependencyInjection;
using EgwCoreLib.Lux.Data.Services.Warehouse;
using Microsoft.Extensions.DependencyInjection.Extensions;
namespace EgwCoreLib.Lux.Data
@@ -32,9 +28,10 @@ namespace EgwCoreLib.Lux.Data
// servizi preliminari
//services.TryAddSingleton<IConnectionMultiplexer>(redisConn);
services.TryAddSingleton<IRedisService, RedisService>();
services.TryAddSingleton<RedisSubscriptionManager>();
services.TryAddSingleton<IRedisSubscriptionManager, RedisSubscriptionManager>();
// Repository Scoped
services.TryAddScoped<IBuyOrderRepository, BuyOrderRepository>();
services.TryAddScoped<IConfGlassRepository, ConfGlassRepository>();
services.TryAddScoped<IConfProfileRepository, ConfProfileRepository>();
services.TryAddScoped<IConfWoodRepository, ConfWoodRepository>();
@@ -48,6 +45,7 @@ namespace EgwCoreLib.Lux.Data
services.TryAddScoped<IItemRepository, ItemRepository>();
services.TryAddScoped<IJobStepRepository, JobStepRepository>();
services.TryAddScoped<IJobTaskRepository, JobTaskRepository>();
services.TryAddScoped<IMatReqRepository, MatReqRepository>();
services.TryAddScoped<IOfferRepository, OfferRepository>();
services.TryAddScoped<IOfferRowRepository, OfferRowRepository>();
services.TryAddScoped<IOrderRepository, OrderRepository>();
@@ -59,6 +57,7 @@ namespace EgwCoreLib.Lux.Data
services.TryAddScoped<IProductionOdlRepository, ProductionOdlRepository>();
services.TryAddScoped<IProductionPlantRepository, ProductionPlantRepository>();
services.TryAddScoped<IResourceRepository, ResourceRepository>();
services.TryAddScoped<IReportRepository, ReportRepository>();
services.TryAddScoped<ISellingItemRepository, SellingItemRepository>();
services.TryAddScoped<IStatsAggrRepository, StatsAggrRepository>();
services.TryAddScoped<IStatsDetailRepository, StatsDetailRepository>();
@@ -67,6 +66,7 @@ namespace EgwCoreLib.Lux.Data
services.TryAddScoped<ITemplateRowRepository, TemplateRowRepository>();
// Servizi Scoped
services.TryAddScoped<IBuyOrderService, BuyOrderService>();
services.TryAddScoped<IConfGlassService, ConfGlassService>();
services.TryAddScoped<IConfProfileService, ConfProfileService>();
services.TryAddScoped<IConfWoodService, ConfWoodService>();
@@ -80,6 +80,7 @@ namespace EgwCoreLib.Lux.Data
services.TryAddScoped<IItemGroupService, ItemGroupService>();
services.TryAddScoped<IJobStepService, JobStepService>();
services.TryAddScoped<IJobTaskService, JobTaskService>();
services.TryAddScoped<IMatReqService, MatReqService>();
services.TryAddScoped<IOfferService, OfferService>();
services.TryAddScoped<IOfferRowService, OfferRowService>();
services.TryAddScoped<IOrderService, OrderService>();
@@ -91,6 +92,7 @@ namespace EgwCoreLib.Lux.Data
services.TryAddScoped<IProductionOdlService, ProductionOdlService>();
services.TryAddScoped<IProductionPlantService, ProductionPlantService>();
services.TryAddScoped<IResourceService, ResourceService>();
services.TryAddScoped<IReportService, ReportService>();
services.TryAddScoped<ISellingItemService, SellingItemService>();
services.TryAddScoped<IStatsAggrService, StatsAggrService>();
services.TryAddScoped<IStatsDetailService, StatsDetailService>();
+2 -10
View File
@@ -1,12 +1,4 @@
using Microsoft.EntityFrameworkCore;
using NLog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCoreLib.Lux.Data
namespace EgwCoreLib.Lux.Data
{
public class DbAdmin : IDisposable
{
@@ -81,7 +73,7 @@ namespace EgwCoreLib.Lux.Data
return answ;
}
public void Dispose()
{
+1 -9
View File
@@ -1,12 +1,4 @@
using Microsoft.EntityFrameworkCore;
using NLog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCoreLib.Lux.Data
namespace EgwCoreLib.Lux.Data
{
public class DbConfig
{
@@ -1,11 +1,4 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCoreLib.Lux.Data.Data.DbModel.Admin
namespace EgwCoreLib.Lux.Data.Data.DbModel.Admin
{
/// <summary>
/// Tabella dei USER di MySql
@@ -1,8 +1,4 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using static EgwCoreLib.Lux.Core.Enums;
namespace EgwCoreLib.Lux.Data.DbModel.Catalog
namespace EgwCoreLib.Lux.Data.DbModel.Catalog
{
/// <summary>
/// Classe dei template di oggetti gestiti
@@ -1,9 +1,4 @@
using EgwCoreLib.Lux.Data.DbModel.Items;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using static EgwCoreLib.Lux.Core.Enums;
// <Auto-Generated>
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace EgwCoreLib.Lux.Data.DbModel.Catalog
@@ -49,15 +44,14 @@ namespace EgwCoreLib.Lux.Data.DbModel.Catalog
[NotMapped]
public string TemplateRowDtx
{
get => $"TLR.{TemplateRowID:X12}";
//get => $"TLR.{Inserted:yy}.{TemplateRowID:X8}";
get => CodeUid(TemplateRowID);
}
/// <summary>
/// Restituisce UID da impiegare x immagine
/// Restituisce URL da impiegare x immagine
/// </summary>
[NotMapped]
public string ImgUID
public string ImgUrl
{
get
{
@@ -65,7 +59,7 @@ namespace EgwCoreLib.Lux.Data.DbModel.Catalog
switch (ImgType)
{
case ImageType.Calculated:
answ = ImgUrl(TemplateRowID);
answ = CodeUid(TemplateRowID);
break;
case ImageType.Fixed:
answ = FileName;
@@ -78,14 +72,25 @@ namespace EgwCoreLib.Lux.Data.DbModel.Catalog
}
else
{
answ = ImgUrl(TemplateRowID);
answ = CodeUid(TemplateRowID);
}
answ = $"static/{answ}";
break;
}
return answ;
}
}
/// <summary>
/// URL Immagine calcolato
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public static string CodeUid(int id)
{
return $"TLR.{id:X12}";
}
/// <summary>
/// Tipo immagine da visualizzare
/// </summary>
@@ -199,6 +204,24 @@ namespace EgwCoreLib.Lux.Data.DbModel.Catalog
/// </summary>
public long FileSize { get; set; } = 0;
/// <summary>
/// Definisce se sia calcolabile, dato il tipo SellingItem
/// </summary>
[NotMapped]
public bool CalcEnabled
{
get => ImgType == ImageType.Calculated;
}
/// <summary>
/// Definisce presenza file
/// </summary>
[NotMapped]
public bool HasFile
{
get => !string.IsNullOrEmpty(FileName) && FileSize > 0 || (CalcEnabled && Envir != Constants.EXECENVIRONMENTS.WINDOW);
}
/// <summary>
/// BOM serializzata per la produzione dell'item
/// </summary>
@@ -281,14 +304,6 @@ namespace EgwCoreLib.Lux.Data.DbModel.Catalog
[ForeignKey("SellingItemID")]
public virtual SellingItemModel? SellingItemNav { get; set; }
/// <summary>
/// URL Immagine calcolato
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public static string ImgUrl(int id)
{
return $"TLR.{id:X12}";
}
}
}
@@ -1,14 +1,11 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
// <Auto-Generated>
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace EgwCoreLib.Lux.Data.DbModel.Config
{
{
/// <summary>
/// Risorsa tipo di Glass x EF
/// </summary>
/// Risorsa tipo di Glass x EF
/// </summary>
[Table("conf_envir")]
public class EnvirParamModel
{
@@ -1,12 +1,4 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// <Auto-Generated>
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace EgwCoreLib.Lux.Data.DbModel.Config
@@ -1,12 +1,4 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// <Auto-Generated>
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace EgwCoreLib.Lux.Data.DbModel.Config
@@ -1,12 +1,4 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// <Auto-Generated>
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace EgwCoreLib.Lux.Data.DbModel.Config
@@ -1,12 +1,4 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// <Auto-Generated>
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace EgwCoreLib.Lux.Data.DbModel.Config
@@ -1,12 +1,4 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// <Auto-Generated>
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace EgwCoreLib.Lux.Data.DbModel.Cost
@@ -1,14 +1,4 @@
using EgwCoreLib.Lux.Data.DbModel.Sales;
using EgwCoreLib.Lux.Data.DbModel.Job;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// <Auto-Generated>
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace EgwCoreLib.Lux.Data.DbModel.Cost
@@ -1,12 +1,4 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCoreLib.Lux.Data.DbModel.Items
namespace EgwCoreLib.Lux.Data.DbModel.Items
{ // <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
@@ -1,8 +1,4 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using static EgwCoreLib.Lux.Core.Enums;
namespace EgwCoreLib.Lux.Data.DbModel.Items
namespace EgwCoreLib.Lux.Data.DbModel.Items
{
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
@@ -1,9 +1,4 @@
using EgwCoreLib.Lux.Data.DbModel.Job;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using static EgwCoreLib.Lux.Core.Enums;
namespace EgwCoreLib.Lux.Data.DbModel.Items
namespace EgwCoreLib.Lux.Data.DbModel.Items
{
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
@@ -90,12 +85,54 @@ namespace EgwCoreLib.Lux.Data.DbModel.Items
public ImageType ImgType { get; set; } = ImageType.ND;
/// <summary>
/// Restituisce UID da impiegare x immagine
/// URL Immagine calcolato
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public static string CodeUid(int id)
{
return $"SP.{id:X12}";
}
/// <summary>
/// Restituisce Url da impiegare x immagine
/// </summary>
[NotMapped]
public string ImgUID
{
get => ImgType == ImageType.Fixed ? FileName : ImgUrl(SellingItemID);
get => ImgType == ImageType.Fixed ? FileName : CodeUid(SellingItemID);
}
/// <summary>
/// Definisce se sia calcolabile, dato il tipo SellingItem
/// </summary>
[NotMapped]
public bool CalcEnabled
{
get => ImgType == ImageType.Calculated;
}
/// <summary>
/// Restituisce Url immagine già calcolato (da sistemare!!!)
/// </summary>
[NotMapped]
public string ImgUrl
{
get
{
string answ = "empty.svg";
string fType = Envir == Constants.EXECENVIRONMENTS.WINDOW ? "svg" : "png";
if (CalcEnabled)
{
string rndImg = $"{DateTime.Now:HHmmssfff}";
answ = $"cache/{ImgUID}-{rndImg}.{fType}?env={Envir}";
}
else
{
answ = $"static/{ImgUID}";
}
return answ;
}
}
#if false
@@ -138,14 +175,6 @@ namespace EgwCoreLib.Lux.Data.DbModel.Items
[ForeignKey("JobID")]
public virtual JobTaskModel JobNav { get; set; } = null!;
/// <summary>
/// URL Immagine calcolato
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public static string ImgUrl(int id)
{
return $"SP.{id:X12}";
}
}
}
@@ -1,13 +1,4 @@
using EgwCoreLib.Lux.Data.DbModel.Cost;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// <Auto-Generated>
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace EgwCoreLib.Lux.Data.DbModel.Job
@@ -1,13 +1,4 @@
using EgwCoreLib.Lux.Data.DbModel.Cost;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCoreLib.Lux.Data.DbModel.Job
namespace EgwCoreLib.Lux.Data.DbModel.Job
{
/// <summary>
/// Definizione driver di calcolo dall'Engine x la stima del CostDriver equivalente tempi/costi
@@ -1,8 +1,4 @@
using EgwCoreLib.Lux.Data.DbModel.Items;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
// <Auto-Generated>
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace EgwCoreLib.Lux.Data.DbModel.Job
@@ -1,10 +1,4 @@
using EgwCoreLib.Lux.Data.DbModel.Cost;
using EgwCoreLib.Lux.Data.DbModel.Job;
using EgwCoreLib.Lux.Data.DbModel.Utils;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
// <Auto-Generated>
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace EgwCoreLib.Lux.Data.DbModel.Job
@@ -1,12 +1,4 @@
using EgwCoreLib.Lux.Data.DbModel.Utils;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCoreLib.Lux.Data.DbModel.Job
namespace EgwCoreLib.Lux.Data.DbModel.Job
{
[Table("task_job_step_tag")]
public class JobStepTagModel
@@ -1,8 +1,4 @@
using EgwCoreLib.Lux.Data.DbModel.Utils;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
// <Auto-Generated>
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace EgwCoreLib.Lux.Data.DbModel.Job
@@ -1,12 +1,4 @@
using EgwCoreLib.Lux.Data.DbModel.Utils;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCoreLib.Lux.Data.DbModel.Job
namespace EgwCoreLib.Lux.Data.DbModel.Job
{
[Table("task_job_task_tag")]
public class JobTaskTagModel
@@ -1,12 +1,4 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// <Auto-Generated>
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace EgwCoreLib.Lux.Data.DbModel.Job
@@ -1,7 +1,4 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
// <Auto-Generated>
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace EgwCoreLib.Lux.Data.DbModel.Production
@@ -1,9 +1,4 @@
using EgwCoreLib.Lux.Core.Generic;
using EgwCoreLib.Lux.Data.DbModel.Sales;
using Newtonsoft.Json;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using static EgwCoreLib.Lux.Core.Enums;
namespace EgwCoreLib.Lux.Data.DbModel.Production
{
@@ -1,11 +1,4 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// <Auto-Generated>
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace EgwCoreLib.Lux.Data.DbModel.Production
@@ -1,10 +1,6 @@
using EgwCoreLib.Lux.Data.DbModel.Sales;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace EgwCoreLib.Lux.Data.DbModel.Production
{
/// <summary>
@@ -95,6 +91,6 @@ namespace EgwCoreLib.Lux.Data.DbModel.Production
/// <summary>
/// Navigazione verso tabella Item2Odl
/// </summary>
public ICollection<ProductionItem2ODLModel> Item2OdlNav { get; set; } = new List<ProductionItem2ODLModel>();
public ICollection<ProductionItem2ODLModel> Item2OdlNav { get; set; } = new List<ProductionItem2ODLModel>();
}
}
@@ -1,15 +1,5 @@
using EgwCoreLib.Lux.Core.Generic;
using EgwCoreLib.Lux.Core.RestPayload;
using EgwCoreLib.Lux.Data.DbModel.Cost;
using EgwCoreLib.Lux.Data.DbModel.Job;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
@@ -1,14 +1,4 @@
using EgwCoreLib.Lux.Data.DbModel.Cost;
using EgwCoreLib.Lux.Data.DbModel.Sales;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// <Auto-Generated>
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace EgwCoreLib.Lux.Data.DbModel.Production
@@ -0,0 +1,70 @@
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace EgwCoreLib.Lux.Data.DbModel.Report
{
/// <summary>
/// Classe dei report gestiti
/// </summary>
[Table("report_list")]
public class ReportModel
{
/// <summary>
/// ID del record
/// </summary>
[Key]
public int ReportID { get; set; }
/// <summary>
/// Denominazione
/// </summary>
public string Name { get; set; } = "";
/// <summary>
/// Descrizione
/// </summary>
public string Description { get; set; } = "";
/// <summary>
/// Valore completo Json per recupero dati, con segnaposto con [[param_01]]
/// </summary>
public string JsonDSN { get; set; } = "";
/// <summary>
/// Nome del report Active tra quelli nella folder
/// </summary>
public string ActRepFileName { get; set; } = "";
/// <summary>
/// Conf dei parametri per il report
/// </summary>
public string ParamConfigRaw { get; set; } = "";
/// <summary>
/// Conf relative ai file report
/// </summary>
public string FileConfDataRaw { get; set; } = "";
/// <summary>
/// Elenco dei parametri da gestire x il ReportTemplate
/// </summary>
[NotMapped]
public List<ParamConfigDto> ParamConfig
{
get
{
List<ParamConfigDto> answ = new();
if (!string.IsNullOrEmpty(ParamConfigRaw) && ParamConfigRaw.Length > 2)
{
answ = JsonConvert.DeserializeObject<List<ParamConfigDto>>(ParamConfigRaw) ?? new();
}
return answ;
}
set
{
string rawVal = JsonConvert.SerializeObject(value);
ParamConfigRaw = rawVal;
}
}
}
}
@@ -1,12 +1,4 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCoreLib.Lux.Data.DbModel.Sales
namespace EgwCoreLib.Lux.Data.DbModel.Sales
{
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
@@ -1,12 +1,4 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCoreLib.Lux.Data.DbModel.Sales
namespace EgwCoreLib.Lux.Data.DbModel.Sales
{
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
@@ -1,8 +1,4 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using static EgwCoreLib.Lux.Core.Enums;
// <Auto-Generated>
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace EgwCoreLib.Lux.Data.DbModel.Sales
@@ -69,6 +65,27 @@ namespace EgwCoreLib.Lux.Data.DbModel.Sales
/// </summary>
public string DictPresel { get; set; } = "";
/// <summary>
/// Dizionario valorizzato dei parametri attivi
/// </summary>
[NotMapped]
public Dictionary<string, string> DictParameter
{
get
{
Dictionary<string, string> answ = new();
if (!string.IsNullOrEmpty(DictPresel))
{
answ = JsonConvert.DeserializeObject<Dictionary<string, string>>(DictPresel) ?? new Dictionary<string, string>();
}
return answ;
}
//set
//{
// DictPresel = JsonConvert.SerializeObject(value);
//}
}
/// <summary>
/// Validità Offerta
/// </summary>
@@ -1,10 +1,4 @@
using EgwCoreLib.Lux.Data.DbModel.Catalog;
using EgwCoreLib.Lux.Data.DbModel.Items;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using static EgwCoreLib.Lux.Core.Enums;
// <Auto-Generated>
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace EgwCoreLib.Lux.Data.DbModel.Sales
@@ -52,6 +46,7 @@ namespace EgwCoreLib.Lux.Data.DbModel.Sales
/// ID dell'articolo di vendita offerto
/// </summary>
public int? SellingItemID { get; set; }
/// <summary>
/// Definisce se sia calcolabile, dato il tipo SellingItem
/// </summary>
@@ -72,6 +67,15 @@ namespace EgwCoreLib.Lux.Data.DbModel.Sales
get => ImgType == ImageType.Calculated;
}
/// <summary>
/// Definisce presenza file
/// </summary>
[NotMapped]
public bool HasFile
{
get => !string.IsNullOrEmpty(FileName) && FileSize > 0 || (CalcEnabled && Envir != Constants.EXECENVIRONMENTS.WINDOW);
}
/// <summary>
/// Tipo immagine da visualizzare
/// </summary>
@@ -99,13 +103,36 @@ namespace EgwCoreLib.Lux.Data.DbModel.Sales
}
else if (SellingItemID > 0)
{
answ = SellingItemModel.ImgUrl(SellingItemID ?? 0);
answ = SellingItemModel.CodeUid(SellingItemID ?? 0);
}
}
return answ;
}
}
/// <summary>
/// Restituisce Url immagine già calcolato (da sistemare!!!)
/// </summary>
[NotMapped]
public string ImgUrl
{
get
{
string answ = "empty.svg";
string fType = Envir == Constants.EXECENVIRONMENTS.WINDOW ? "svg" : "png";
string rndImg = $"{DateTime.Now:HHmmssfff}";
if (CalcEnabled)
{
answ = $"cache/{ImgUID}-{rndImg}.{fType}?env={Envir}";
}
else
{
answ = $"static/{ImgUID}";
}
return answ;
}
}
/// <summary>
/// Quantità della risorsa
/// </summary>
@@ -292,6 +319,35 @@ namespace EgwCoreLib.Lux.Data.DbModel.Sales
/// </summary>
public bool AwaitPrice { get; set; } = false;
/// <summary>
/// Dizionario serializzato delle preselezioni (pending, da applicare)
/// </summary>
public string DictPendPresRaw { get; set; } = "";
[NotMapped]
public bool HasPendReq
{
get => !string.IsNullOrEmpty(DictPendPresRaw) && DictPendingPresel.Count > 0;
}
[NotMapped]
public Dictionary<string, string> DictPendingPresel
{
get
{
Dictionary<string, string> answ = new();
if (!string.IsNullOrEmpty(DictPendPresRaw))
{
answ = JsonConvert.DeserializeObject<Dictionary<string, string>>(DictPendPresRaw) ?? new Dictionary<string, string>();
}
return answ;
}
//set
//{
// DictPendPresRaw = JsonConvert.SerializeObject(value);
//}
}
/// <summary>
/// Navigazione Offer
/// </summary>
@@ -1,11 +1,4 @@
using EgwCoreLib.Lux.Core.Generic;
using EgwCoreLib.Lux.Data.DbModel.Production;
using Newtonsoft.Json;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using static EgwCoreLib.Lux.Core.Enums;
// <Auto-Generated>
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace EgwCoreLib.Lux.Data.DbModel.Sales
@@ -91,7 +84,6 @@ namespace EgwCoreLib.Lux.Data.DbModel.Sales
/// </summary>
public DateTime Modified { get; set; } = DateTime.Now;
/// <summary>
/// DataOra richiesta per il completamento dell'ordine
/// </summary>
@@ -107,6 +99,11 @@ namespace EgwCoreLib.Lux.Data.DbModel.Sales
/// </summary>
public string ConsNote { get; set; } = "";
/// <summary>
/// Valore serializzato info sui RawItem (es: lungh barra / qty barre)
/// </summary>
public string RawItemData { get; set; } = "";
/// <summary>
/// Enum stato Ordine
/// </summary>
@@ -199,6 +196,15 @@ namespace EgwCoreLib.Lux.Data.DbModel.Sales
get => (TotalCost > 0 && TotalPrice > TotalCost) ? (TotalPrice - TotalCost) / TotalPrice : 0;
}
/// <summary>
/// Verifica se ci siano TUTTE le righe coperte da Fabbisogni (con o senza ordine...)
/// </summary>
[NotMapped]
public bool AllRowsWithReq
{
get => OrderRowNav != null && !OrderRowNav.Any(x => x.MatReqNav.Count == 0);
}
/// <summary>
/// Navigazione Customer
/// </summary>
@@ -1,11 +1,4 @@
using EgwCoreLib.Lux.Data.DbModel.Catalog;
using EgwCoreLib.Lux.Data.DbModel.Items;
using EgwCoreLib.Lux.Data.DbModel.Production;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using static EgwCoreLib.Lux.Core.Enums;
// <Auto-Generated>
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace EgwCoreLib.Lux.Data.DbModel.Sales
@@ -61,7 +54,7 @@ namespace EgwCoreLib.Lux.Data.DbModel.Sales
public int? SellingItemID { get; set; }
/// <summary>
/// Riferimento (opzionale9 al template da cui è derivato
/// Riferimento (opzionale) al template da cui è derivato
/// </summary>
public int? TemplateRowID { get; set; } = null;
@@ -153,16 +146,15 @@ namespace EgwCoreLib.Lux.Data.DbModel.Sales
public bool CalcEnabled
{
get => ImgType == ImageType.Calculated;
#if false
}
/// <summary>
/// Definisce presenza file
/// </summary>
[NotMapped]
public bool HasFile
{
bool answ = false;
if (SellingItemNav != null)
{
answ = SellingItemNav.SourceType == ItemSourceType.Jwd || SellingItemNav.SourceType == ItemSourceType.FileBTL;
}
return answ;
}
#endif
get => !string.IsNullOrEmpty(FileName) && FileSize > 0 || (CalcEnabled && Envir != Constants.EXECENVIRONMENTS.WINDOW);
}
/// <summary>
@@ -190,19 +182,42 @@ namespace EgwCoreLib.Lux.Data.DbModel.Sales
if (TemplateRowID != null && TemplateRowID > 0)
{
//answ= $"TR.{TemplateRowID:X16}";
answ = TemplateRowModel.ImgUrl(TemplateRowID ?? 0);
answ = TemplateRowModel.CodeUid(TemplateRowID ?? 0);
}
// altrimenti da selling item...
else if (SellingItemID > 0)
{
//answ = $"SP.{SellingItemID:X12}";
answ = SellingItemModel.ImgUrl(SellingItemID ?? 0);
answ = SellingItemModel.CodeUid(SellingItemID ?? 0);
}
}
return answ;
}
}
/// <summary>
/// Restituisce Url immagine già calcolato (da sistemare!!!)
/// </summary>
[NotMapped]
public string ImgUrl
{
get
{
string answ = "empty.svg";
string fType = Envir == Constants.EXECENVIRONMENTS.WINDOW ? "svg" : "png";
string rndImg = $"{DateTime.Now:HHmmssfff}";
if (CalcEnabled)
{
answ = $"cache/{ImgUID}-{rndImg}.{fType}?env={Envir}";
}
else
{
answ = $"static/{ImgUID}";
}
return answ;
}
}
/// <summary>
/// Valore serializzato della composizione articolo (in formato JWD x finestra)
/// </summary>
@@ -229,6 +244,30 @@ namespace EgwCoreLib.Lux.Data.DbModel.Sales
/// </summary>
public string ItemBOM { get; set; } = "";
/// <summary>
/// Lista BOM deserializzata
/// </summary>
[NotMapped]
public List<BomItemDTO> ListBOM
{
get
{
List<BomItemDTO> answ = new();
if (!string.IsNullOrEmpty(ItemBOM) && ItemBOM.Length > 2)
{
answ = JsonConvert.DeserializeObject<List<BomItemDTO>>(ItemBOM) ?? new();
}
return answ;
}
}
[NotMapped]
public bool HasMatReqRow
{
get => MatReqNav != null && MatReqNav.Count > 0;
}
/// <summary>
/// Lista dei Job Cost Drivers calcolati dall'engine (necessari x calcolo Steps)
/// </summary>
@@ -274,6 +313,11 @@ namespace EgwCoreLib.Lux.Data.DbModel.Sales
/// </summary>
public string ProdEstimate { get; set; } = "";
/// <summary>
/// Valore serializzato info sui RawItem (es: lungh barra / qty barre)
/// </summary>
public string RawItemData { get; set; } = "";
/// <summary>
/// Validazione dati BOM (Inteso come gruppi tutti trovati/esistenti)
/// </summary>
@@ -318,6 +362,35 @@ namespace EgwCoreLib.Lux.Data.DbModel.Sales
/// </summary>
public bool AwaitPrice { get; set; } = false;
/// <summary>
/// Dizionario serializzato delle preselezioni (pending, da applicare)
/// </summary>
public string DictPendPresRaw { get; set; } = "";
[NotMapped]
public bool HasPendReq
{
get => !string.IsNullOrEmpty(DictPendPresRaw) && DictPendingPresel.Count > 0;
}
[NotMapped]
public Dictionary<string, string> DictPendingPresel
{
get
{
Dictionary<string, string> answ = new();
if (!string.IsNullOrEmpty(DictPendPresRaw))
{
answ = JsonConvert.DeserializeObject<Dictionary<string, string>>(DictPendPresRaw) ?? new Dictionary<string, string>();
}
return answ;
}
//set
//{
// DictPendPresRaw = JsonConvert.SerializeObject(value);
//}
}
/// <summary>
/// Navigazione Order
/// </summary>
@@ -340,5 +413,10 @@ namespace EgwCoreLib.Lux.Data.DbModel.Sales
/// Navigazione alle righe ProdItem
/// </summary>
public virtual ICollection<ProductionItemModel> ProdItemNav { get; set; } = new List<ProductionItemModel>();
/// <summary>
/// Many-to-many verso associazione con MatReqNav
/// </summary>
public virtual ICollection<MatReqModel> MatReqNav { get; set; } = new List<MatReqModel>();
}
}
@@ -1,12 +1,4 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// <Auto-Generated>
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace EgwCoreLib.Lux.Data.DbModel.Stats
@@ -1,12 +1,4 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// <Auto-Generated>
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace EgwCoreLib.Lux.Data.DbModel.Stats
@@ -1,13 +1,4 @@
using EgwCoreLib.Lux.Data.DbModel.Utils;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCoreLib.Lux.Data.DbModel.Stock
namespace EgwCoreLib.Lux.Data.DbModel.Stock
{
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
@@ -1,13 +1,4 @@
using EgwCoreLib.Lux.Data.DbModel.Items;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCoreLib.Lux.Data.DbModel.Stock
namespace EgwCoreLib.Lux.Data.DbModel.Stock
{
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
@@ -0,0 +1,92 @@
namespace EgwCoreLib.Lux.Data.DbModel.Supplier
{
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
[Table("buy_order")]
public class BuyOrderModel
{
/// <summary>
/// ID del record
/// </summary>
[Key]
public int BuyOrderID { get; set; }
/// <summary>
/// Anno rif Ordine Fornitore
/// </summary>
public int RefYear { get; set; } = DateTime.Today.Year;
/// <summary>
/// Numero prog Ordine nell'anno (da calcolare)
/// </summary>
public int RefNum { get; set; } = 0;
/// <summary>
/// Indice revisione
/// </summary>
public int RefRev { get; set; } = 1;
/// <summary>
/// Codice calcolato Ordine ANNO.NUMERO.REV
/// </summary>
[NotMapped]
public string BuyOrderCode
{
get => $"BO.{RefYear:00}.{RefNum:00000}.{RefRev:00}";
}
/// <summary>
/// Descrizione generale
/// </summary>
public string Description { get; set; } = "";
/// <summary>
/// Fornitore (quandoa ssegnato, altrimenti è quotazione)
/// </summary>
public int? SupplierID { get; set; } = null;
/// <summary>
/// Ordine assegnato se ho un supplier definito
/// </summary>
[NotMapped]
public bool Assigned => SupplierID != null;
/// <summary>
/// DataOra inserimento
/// </summary>
public DateTime Inserted { get; set; } = DateTime.Now;
/// <summary>
/// DataOra ultima modifica
/// </summary>
public DateTime Modified { get; set; } = DateTime.Now;
/// <summary>
/// DataOra richiesta per il completamento dell'ordine di fornitura
/// </summary>
public DateTime DueDateReq { get; set; } = DateTime.Today.AddDays(30);
/// <summary>
/// note di consegna (opzionali)
/// </summary>
public string ConsNote { get; set; } = "";
/// <summary>
/// Enum stato Ordine Acquisto
/// </summary>
public BuyOrderStates OrderState { get; set; } = BuyOrderStates.Created;
/// <summary>
/// Navigazione Supplier
/// </summary>
[ForeignKey("SupplierID")]
public virtual SupplierModel? SupplierNav { get; set; } = null;
/// <summary>
/// Navigazione alle righe Ordine Acquisto
/// </summary>
public virtual ICollection<BuyOrderRowModel> BuyOrderRowNav { get; set; } = new List<BuyOrderRowModel>();
}
}
@@ -0,0 +1,23 @@
using EgwCoreLib.Lux.Data.DbModel.Warehouse;
namespace EgwCoreLib.Lux.Data.DbModel.Supplier
{
[Table("buy_order_row_2_mat_req")]
public class BuyOrderRow2MatReqModel
{
public int BuyOrderRowID { get; set; }
public int MatReqID { get; set; }
/// <summary>
/// Quantità richiesta
/// </summary>
public double Qty { get; set; } = 0;
[ForeignKey("BuyOrderRowID")]
public virtual BuyOrderRowModel BuyOrderRowNav { get; set; } = null!;
[ForeignKey("MatReqID")]
public virtual MatReqModel MatReqNav { get; set; } = null!;
}
}
@@ -0,0 +1,107 @@
namespace EgwCoreLib.Lux.Data.DbModel.Supplier
{
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
[Table("buy_order_row")]
public class BuyOrderRowModel
{
/// <summary>
/// ID del record
/// </summary>
[Key]
public int BuyOrderRowID { get; set; }
/// <summary>
/// ID Ordine di acquisto di riferimento
/// </summary>
public int BuyOrderID { get; set; }
/// <summary>
/// Riga Ordine (per ordinamento)
/// </summary>
public int RowNum { get; set; } = 0;
/// <summary>
/// ID dell'item richiesto (se disponibile)
/// </summary>
public int? ItemID { get; set; } = null;
/// <summary>
/// Classificazione Item
/// </summary>
public string ClassCode { get; set; } = "";
/// <summary>
/// Descrizione Item
/// </summary>
public string DescriptionCode { get; set; } = "";
/// <summary>
/// Codice Item
/// </summary>
public string ItemCode { get; set; } = "";
/// <summary>
/// Quantità articolo TOTALE
/// </summary>
public double TotQty
{
get => MatReqNav.Sum(x => x.Qty);
}
#if false
/// <summary>
/// Quantità articolo TOTALE
/// </summary>
public double TotQty
{
get => DictOrderRowDetail.Sum(x => x.Value);
}
/// <summary>
/// Dizionario serializzato di RigheOrdine + Qty
/// </summary>
public string OrderRowData { get; set; } = "";
/// <summary>
/// Dizionario escplicito degli OrderRow esplosi rispetto a ItemId delle BOM
/// </summary>
[NotMapped]
public Dictionary<int, double> DictOrderRowDetail
{
get
{
Dictionary<int, double> answ = new();
if (!string.IsNullOrEmpty(OrderRowData) && OrderRowData.Count() > 2)
{
answ = JsonConvert.DeserializeObject<Dictionary<int, double>>(OrderRowData) ?? new();
}
return answ;
}
set
{
OrderRowData = JsonConvert.SerializeObject(value);
}
}
#endif
/// <summary>
/// Navigazione Ordine Acquisto
/// </summary>
[ForeignKey("BuyOrderID")]
public virtual BuyOrderModel? BuyOrderNav { get; set; } = null;
/// <summary>
/// Navigazione Item
/// </summary>
[ForeignKey("ItemID")]
public virtual ItemModel? ItemNav { get; set; } = null;
/// <summary>
/// Many-to-many verso associazione con MatReq
/// </summary>
public virtual ICollection<BuyOrderRow2MatReqModel> MatReqNav { get; set; } = new List<BuyOrderRow2MatReqModel>();
}
}
@@ -1,18 +1,10 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCoreLib.Lux.Data.DbModel.Items
namespace EgwCoreLib.Lux.Data.DbModel.Supplier
{
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
[Table("item_supplier")]
[Table("buy_supplier")]
public class SupplierModel
{
/// <summary>
@@ -21,13 +13,6 @@ namespace EgwCoreLib.Lux.Data.DbModel.Items
[Key]
public int SupplierID { get; set; }
#if false
/// <summary>
/// Ruolo assocaito da anagrafica esterna
/// </summary>
public int RoleID { get; set; }
#endif
/// <summary>
/// Denominazione se persona giuridica
/// </summary>
@@ -48,12 +33,9 @@ namespace EgwCoreLib.Lux.Data.DbModel.Items
/// </summary>
public string VAT { get; set; } = "";
#if false
/// <summary>
/// Navigazione al ruolo
/// Many-to-many with Qualifica Fornitori
/// </summary>
[ForeignKey("RoleID")]
public virtual RoleModel RoleNav { get; set; } = null!;
#endif
public virtual ICollection<SupplierQualifyModel> QualifNav { get; set; } = new List<SupplierQualifyModel>();
}
}
@@ -0,0 +1,15 @@
namespace EgwCoreLib.Lux.Data.DbModel.Supplier
{
[Table("buy_supplier_qualify")]
public class SupplierQualifyModel
{
public int SupplierID { get; set; }
public string CodGroup { get; set; } = "";
[ForeignKey("SupplierID")]
public virtual SupplierModel SupplierNav { get; set; } = null!;
[ForeignKey("CodGroup")]
public virtual ItemGroupModel GroupNav { get; set; } = null!;
}
}
@@ -1,12 +1,4 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCoreLib.Lux.Data.DbModel.Utils
namespace EgwCoreLib.Lux.Data.DbModel.Utils
{
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
@@ -24,7 +16,7 @@ namespace EgwCoreLib.Lux.Data.DbModel.Utils
/// Chiave del counter annuale
/// </summary>
public string CountName { get; set; } = "";
/// <summary>
/// Valore dell'ultimo contatore staccato
/// </summary>
@@ -1,7 +1,4 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
// <Auto-Generated>
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace EgwCoreLib.Lux.Data.DbModel.Utils
@@ -20,7 +17,7 @@ namespace EgwCoreLib.Lux.Data.DbModel.Utils
/// Descrizione
/// </summary>
public string Description { get; set; } = "";
/// <summary>
/// Numero Item compresi
/// </summary>
@@ -1,7 +1,4 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
// <Auto-Generated>
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace EgwCoreLib.Lux.Data.DbModel.Utils
@@ -1,12 +1,4 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCoreLib.Lux.Data.DbModel.Utils
namespace EgwCoreLib.Lux.Data.DbModel.Utils
{ // <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
@@ -1,8 +1,4 @@
using EgwCoreLib.Lux.Data.DbModel.Job;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace EgwCoreLib.Lux.Data.DbModel.Utils
namespace EgwCoreLib.Lux.Data.DbModel.Utils
{
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
@@ -0,0 +1,90 @@
namespace EgwCoreLib.Lux.Data.DbModel.Warehouse
{
[Table("warehouse_material_req")]
public class MatReqModel
{
/// <summary>
/// ID del record
/// </summary>
[Key]
public int MatReqID { get; set; } = 0;
/// <summary>
/// Order cui è riferito
/// </summary>
public int? OrderID { get; set; } = null;
/// <summary>
/// OrderRow cui è riferito (vince su OrderID)
/// </summary>
public int? OrderRowID { get; set; } = null;
/// <summary>
/// DataOra inserimento
/// </summary>
public DateTime Inserted { get; set; } = DateTime.Now;
/// <summary>
/// ID dell'item richiesto
/// </summary>
public int? ItemID { get; set; } = null;
/// <summary>
/// Quantità richiesta per Item (complessiva)
/// </summary>
public double TotQty { get; set; } = 0;
/// <summary>
/// Valore serializzato info sui RawItem (es: lungh barra / qty barre)
/// </summary>
public string RawItemData { get; set; } = "";
/// <summary>
/// Cod gruppo articolo (per selezione omogenea alternative)
/// </summary>
public string CodGroup { get; set; } = "";
/// <summary>
/// CodArticolo (opzionale)
/// </summary>
public string ItemCode { get; set; } = "";
/// <summary>
/// Desdcrizione item ordinato
/// </summary>
public string Description { get; set; } = "";
/// <summary>
/// Quantità Item finali relativi al fabbisogno
/// </summary>
public int NumItems { get; set; } = 1;
/// <summary>
/// Indica che è stato processato: generato un ordine di acquisto
/// </summary>
public bool Processed { get; set; } = false;
/// <summary>
/// Navigazione Item Order
/// </summary>
[ForeignKey("OrderID")]
public virtual OrderModel? OrderNav { get; set; } = null;
/// <summary>
/// Navigazione Item OrderRow
/// </summary>
[ForeignKey("OrderRowID")]
public virtual OrderRowModel? OrderRowNav { get; set; } = null;
/// <summary>
/// Navigazione Item
/// </summary>
[ForeignKey("ItemID")]
public virtual ItemModel? ItemNav { get; set; } = null;
/// <summary>
/// Many-to-many verso associazione con BuyOrderRow
/// </summary>
public virtual ICollection<BuyOrderRow2MatReqModel> BuyOrderRowNav { get; set; } = new List<BuyOrderRow2MatReqModel>();
}
}
+3
View File
@@ -0,0 +1,3 @@
global using System.ComponentModel.DataAnnotations;
global using System.ComponentModel.DataAnnotations.Schema;
global using static EgwCoreLib.Lux.Core.Enums;
+1 -5
View File
@@ -1,8 +1,4 @@
using EgwCoreLib.Lux.Core.RestPayload;
using EgwCoreLib.Lux.Data.DbModel.Items;
using Newtonsoft.Json;
namespace EgwCoreLib.Lux.Data.Domains
namespace EgwCoreLib.Lux.Data.Domains
{
public static class BomCalculator
{
@@ -54,7 +54,6 @@
<ItemGroup>
<Folder Include="DbModel\Engine\" />
<Folder Include="Migrations\" />
<Folder Include="Services\Internal\" />
</ItemGroup>
<ItemGroup>
+20
View File
@@ -0,0 +1,20 @@
global using EgwCoreLib.Lux.Core.Dto;
global using EgwCoreLib.Lux.Core.RestPayload;
global using EgwCoreLib.Lux.Data.Data.DbModel.Admin;
global using EgwCoreLib.Lux.Data.DbModel.Catalog;
global using EgwCoreLib.Lux.Data.DbModel.Config;
global using EgwCoreLib.Lux.Data.DbModel.Cost;
global using EgwCoreLib.Lux.Data.DbModel.Items;
global using EgwCoreLib.Lux.Data.DbModel.Job;
global using EgwCoreLib.Lux.Data.DbModel.Production;
global using EgwCoreLib.Lux.Data.DbModel.Report;
global using EgwCoreLib.Lux.Data.DbModel.Sales;
global using EgwCoreLib.Lux.Data.DbModel.Stats;
global using EgwCoreLib.Lux.Data.DbModel.Stock;
global using EgwCoreLib.Lux.Data.DbModel.Supplier;
global using EgwCoreLib.Lux.Data.DbModel.Utils;
global using EgwCoreLib.Lux.Data.DbModel.Warehouse;
global using Microsoft.EntityFrameworkCore;
global using Microsoft.Extensions.Configuration;
global using Newtonsoft.Json;
global using NLog;
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,237 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace EgwCoreLib.Lux.Data.Migrations
{
/// <inheritdoc />
public partial class OffRow_AddPendingSel : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "DictPendPresRaw",
table: "sales_order_row",
type: "longtext",
nullable: false)
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.AddColumn<string>(
name: "DictPendPresRaw",
table: "sales_offer_row",
type: "longtext",
nullable: false)
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 1,
columns: new[] { "DueDateProm", "DueDateReq", "ValidUntil" },
values: new object[] { new DateTime(2026, 5, 26, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 26, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 27, 17, 9, 50, 585, DateTimeKind.Local).AddTicks(4789) });
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 2,
columns: new[] { "DueDateProm", "DueDateReq", "ValidUntil" },
values: new object[] { new DateTime(2026, 5, 26, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 26, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 27, 17, 9, 50, 585, DateTimeKind.Local).AddTicks(4807) });
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 3,
columns: new[] { "DueDateProm", "DueDateReq", "ValidUntil" },
values: new object[] { new DateTime(2026, 5, 26, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 26, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 27, 17, 9, 50, 585, DateTimeKind.Local).AddTicks(4813) });
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 4,
columns: new[] { "DueDateProm", "DueDateReq", "ValidUntil" },
values: new object[] { new DateTime(2026, 5, 26, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 26, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 27, 17, 9, 50, 585, DateTimeKind.Local).AddTicks(4820) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 1,
columns: new[] { "DictPendPresRaw", "Inserted", "Modified" },
values: new object[] { "", new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 2,
columns: new[] { "DictPendPresRaw", "Inserted", "Modified" },
values: new object[] { "", new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 3,
columns: new[] { "DictPendPresRaw", "Inserted", "Modified" },
values: new object[] { "", new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 4,
columns: new[] { "DictPendPresRaw", "Inserted", "Modified" },
values: new object[] { "", new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 5,
columns: new[] { "DictPendPresRaw", "Inserted", "Modified" },
values: new object[] { "", new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 6,
columns: new[] { "DictPendPresRaw", "Inserted", "Modified" },
values: new object[] { "", new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 7,
columns: new[] { "DictPendPresRaw", "Inserted", "Modified" },
values: new object[] { "", new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 8,
columns: new[] { "DictPendPresRaw", "Inserted", "Modified" },
values: new object[] { "", new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 9,
columns: new[] { "DictPendPresRaw", "Inserted", "Modified" },
values: new object[] { "", new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 10,
columns: new[] { "DictPendPresRaw", "Inserted", "Modified" },
values: new object[] { "", new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local) });
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "DictPendPresRaw",
table: "sales_order_row");
migrationBuilder.DropColumn(
name: "DictPendPresRaw",
table: "sales_offer_row");
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 1,
columns: new[] { "DueDateProm", "DueDateReq", "ValidUntil" },
values: new object[] { new DateTime(2026, 5, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 18, 7, 36, 8, 630, DateTimeKind.Local).AddTicks(2026) });
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 2,
columns: new[] { "DueDateProm", "DueDateReq", "ValidUntil" },
values: new object[] { new DateTime(2026, 5, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 18, 7, 36, 8, 630, DateTimeKind.Local).AddTicks(2044) });
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 3,
columns: new[] { "DueDateProm", "DueDateReq", "ValidUntil" },
values: new object[] { new DateTime(2026, 5, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 18, 7, 36, 8, 630, DateTimeKind.Local).AddTicks(2051) });
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 4,
columns: new[] { "DueDateProm", "DueDateReq", "ValidUntil" },
values: new object[] { new DateTime(2026, 5, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 18, 7, 36, 8, 630, DateTimeKind.Local).AddTicks(2057) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 1,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 3, 18, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 3, 18, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 2,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 3, 18, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 3, 18, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 3,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 3, 18, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 3, 18, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 4,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 3, 18, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 3, 18, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 5,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 3, 18, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 3, 18, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 6,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 3, 18, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 3, 18, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 7,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 3, 18, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 3, 18, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 8,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 3, 18, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 3, 18, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 9,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 3, 18, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 3, 18, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 10,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 3, 18, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 3, 18, 0, 0, 0, 0, DateTimeKind.Local) });
}
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,385 @@
using System;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
#pragma warning disable CA1814 // Prefer jagged arrays over multidimensional
namespace EgwCoreLib.Lux.Data.Migrations
{
/// <inheritdoc />
public partial class AddBuyOrder : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "item_supplier");
migrationBuilder.CreateTable(
name: "buy_supplier",
columns: table => new
{
SupplierID = table.Column<int>(type: "int", nullable: false)
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
CompanyName = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
FirstName = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
LastName = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
VAT = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4")
},
constraints: table =>
{
table.PrimaryKey("PK_buy_supplier", x => x.SupplierID);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "buy_order",
columns: table => new
{
BuyOrderID = table.Column<int>(type: "int", nullable: false)
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
RefYear = table.Column<int>(type: "int", nullable: false),
RefNum = table.Column<int>(type: "int", nullable: false),
RefRev = table.Column<int>(type: "int", nullable: false),
Description = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
SupplierID = table.Column<int>(type: "int", nullable: true),
Inserted = table.Column<DateTime>(type: "datetime(6)", nullable: false),
Modified = table.Column<DateTime>(type: "datetime(6)", nullable: false),
DueDateReq = table.Column<DateTime>(type: "datetime(6)", nullable: false),
ConsNote = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
OrderState = table.Column<int>(type: "int", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_buy_order", x => x.BuyOrderID);
table.ForeignKey(
name: "FK_buy_order_buy_supplier_SupplierID",
column: x => x.SupplierID,
principalTable: "buy_supplier",
principalColumn: "SupplierID",
onDelete: ReferentialAction.Restrict);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "buy_order_row",
columns: table => new
{
BuyOrderRowID = table.Column<int>(type: "int", nullable: false)
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
BuyOrderID = table.Column<int>(type: "int", nullable: false),
OrderID = table.Column<int>(type: "int", nullable: false),
ItemID = table.Column<int>(type: "int", nullable: false),
ClassCode = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
DescriptionCode = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
ItemCode = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
OrderRowData = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4")
},
constraints: table =>
{
table.PrimaryKey("PK_buy_order_row", x => x.BuyOrderRowID);
table.ForeignKey(
name: "FK_buy_order_row_buy_order_BuyOrderID",
column: x => x.BuyOrderID,
principalTable: "buy_order",
principalColumn: "BuyOrderID",
onDelete: ReferentialAction.Restrict);
table.ForeignKey(
name: "FK_buy_order_row_item_item_ItemID",
column: x => x.ItemID,
principalTable: "item_item",
principalColumn: "ItemID",
onDelete: ReferentialAction.Restrict);
table.ForeignKey(
name: "FK_buy_order_row_sales_order_OrderID",
column: x => x.OrderID,
principalTable: "sales_order",
principalColumn: "OrderID",
onDelete: ReferentialAction.Restrict);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.InsertData(
table: "buy_supplier",
columns: new[] { "SupplierID", "CompanyName", "FirstName", "LastName", "VAT" },
values: new object[,]
{
{ 1, "Company One", "Supplier A", "Egalware", "7294857103879254" },
{ 2, "Company Two", "Supplier B", "User", "7294857103879254" },
{ 3, "Company Two", "Supplier C", "User Test", "7294857103879254" }
});
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 1,
columns: new[] { "DueDateProm", "DueDateReq", "ValidUntil" },
values: new object[] { new DateTime(2026, 6, 13, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 14, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 14, 11, 22, 33, 792, DateTimeKind.Local).AddTicks(5680) });
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 2,
columns: new[] { "DueDateProm", "DueDateReq", "ValidUntil" },
values: new object[] { new DateTime(2026, 6, 13, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 14, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 14, 11, 22, 33, 792, DateTimeKind.Local).AddTicks(5692) });
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 3,
columns: new[] { "DueDateProm", "DueDateReq", "ValidUntil" },
values: new object[] { new DateTime(2026, 6, 13, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 14, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 14, 11, 22, 33, 792, DateTimeKind.Local).AddTicks(5699) });
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 4,
columns: new[] { "DueDateProm", "DueDateReq", "ValidUntil" },
values: new object[] { new DateTime(2026, 6, 13, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 14, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 14, 11, 22, 33, 792, DateTimeKind.Local).AddTicks(5705) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 1,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 2,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 3,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 4,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 5,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 6,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 7,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 8,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 9,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 10,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.CreateIndex(
name: "IX_buy_order_SupplierID",
table: "buy_order",
column: "SupplierID");
migrationBuilder.CreateIndex(
name: "IX_buy_order_row_BuyOrderID",
table: "buy_order_row",
column: "BuyOrderID");
migrationBuilder.CreateIndex(
name: "IX_buy_order_row_ItemID",
table: "buy_order_row",
column: "ItemID");
migrationBuilder.CreateIndex(
name: "IX_buy_order_row_OrderID",
table: "buy_order_row",
column: "OrderID");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "buy_order_row");
migrationBuilder.DropTable(
name: "buy_order");
migrationBuilder.DropTable(
name: "buy_supplier");
migrationBuilder.CreateTable(
name: "item_supplier",
columns: table => new
{
SupplierID = table.Column<int>(type: "int", nullable: false)
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
CompanyName = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
FirstName = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
LastName = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
VAT = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4")
},
constraints: table =>
{
table.PrimaryKey("PK_item_supplier", x => x.SupplierID);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.InsertData(
table: "item_supplier",
columns: new[] { "SupplierID", "CompanyName", "FirstName", "LastName", "VAT" },
values: new object[,]
{
{ 1, "Company One", "Supplier A", "Egalware", "7294857103879254" },
{ 2, "Company Two", "Supplier B", "User", "7294857103879254" },
{ 3, "Company Two", "Supplier C", "User Test", "7294857103879254" }
});
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 1,
columns: new[] { "DueDateProm", "DueDateReq", "ValidUntil" },
values: new object[] { new DateTime(2026, 5, 26, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 26, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 27, 17, 9, 50, 585, DateTimeKind.Local).AddTicks(4789) });
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 2,
columns: new[] { "DueDateProm", "DueDateReq", "ValidUntil" },
values: new object[] { new DateTime(2026, 5, 26, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 26, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 27, 17, 9, 50, 585, DateTimeKind.Local).AddTicks(4807) });
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 3,
columns: new[] { "DueDateProm", "DueDateReq", "ValidUntil" },
values: new object[] { new DateTime(2026, 5, 26, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 26, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 27, 17, 9, 50, 585, DateTimeKind.Local).AddTicks(4813) });
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 4,
columns: new[] { "DueDateProm", "DueDateReq", "ValidUntil" },
values: new object[] { new DateTime(2026, 5, 26, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 26, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 27, 17, 9, 50, 585, DateTimeKind.Local).AddTicks(4820) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 1,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 2,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 3,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 4,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 5,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 6,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 7,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 8,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 9,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 10,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 3, 27, 0, 0, 0, 0, DateTimeKind.Local) });
}
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,140 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace EgwCoreLib.Lux.Data.Migrations
{
/// <inheritdoc />
public partial class UpdateBuyOrderData : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_buy_order_row_sales_order_OrderID",
table: "buy_order_row");
migrationBuilder.DropIndex(
name: "IX_buy_order_row_OrderID",
table: "buy_order_row");
migrationBuilder.RenameColumn(
name: "OrderID",
table: "buy_order_row",
newName: "RowNum");
migrationBuilder.CreateTable(
name: "buy_supplier_qualify",
columns: table => new
{
SupplierID = table.Column<int>(type: "int", nullable: false),
CodGroup = table.Column<string>(type: "varchar(255)", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4")
},
constraints: table =>
{
table.PrimaryKey("PK_buy_supplier_qualify", x => new { x.SupplierID, x.CodGroup });
table.ForeignKey(
name: "FK_buy_supplier_qualify_buy_supplier_SupplierID",
column: x => x.SupplierID,
principalTable: "buy_supplier",
principalColumn: "SupplierID",
onDelete: ReferentialAction.Restrict);
table.ForeignKey(
name: "FK_buy_supplier_qualify_item_group_CodGroup",
column: x => x.CodGroup,
principalTable: "item_group",
principalColumn: "CodGroup",
onDelete: ReferentialAction.Restrict);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 1,
column: "ValidUntil",
value: new DateTime(2026, 5, 14, 12, 24, 22, 268, DateTimeKind.Local).AddTicks(7042));
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 2,
column: "ValidUntil",
value: new DateTime(2026, 5, 14, 12, 24, 22, 268, DateTimeKind.Local).AddTicks(7058));
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 3,
column: "ValidUntil",
value: new DateTime(2026, 5, 14, 12, 24, 22, 268, DateTimeKind.Local).AddTicks(7064));
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 4,
column: "ValidUntil",
value: new DateTime(2026, 5, 14, 12, 24, 22, 268, DateTimeKind.Local).AddTicks(7071));
migrationBuilder.CreateIndex(
name: "IX_buy_supplier_qualify_CodGroup",
table: "buy_supplier_qualify",
column: "CodGroup");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "buy_supplier_qualify");
migrationBuilder.RenameColumn(
name: "RowNum",
table: "buy_order_row",
newName: "OrderID");
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 1,
column: "ValidUntil",
value: new DateTime(2026, 5, 14, 11, 22, 33, 792, DateTimeKind.Local).AddTicks(5680));
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 2,
column: "ValidUntil",
value: new DateTime(2026, 5, 14, 11, 22, 33, 792, DateTimeKind.Local).AddTicks(5692));
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 3,
column: "ValidUntil",
value: new DateTime(2026, 5, 14, 11, 22, 33, 792, DateTimeKind.Local).AddTicks(5699));
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 4,
column: "ValidUntil",
value: new DateTime(2026, 5, 14, 11, 22, 33, 792, DateTimeKind.Local).AddTicks(5705));
migrationBuilder.CreateIndex(
name: "IX_buy_order_row_OrderID",
table: "buy_order_row",
column: "OrderID");
migrationBuilder.AddForeignKey(
name: "FK_buy_order_row_sales_order_OrderID",
table: "buy_order_row",
column: "OrderID",
principalTable: "sales_order",
principalColumn: "OrderID",
onDelete: ReferentialAction.Restrict);
}
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,359 @@
using System;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace EgwCoreLib.Lux.Data.Migrations
{
/// <inheritdoc />
public partial class AddMatReq_01 : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "OrderRowData",
table: "buy_order_row");
migrationBuilder.AddColumn<string>(
name: "RawItemData",
table: "sales_order_row",
type: "longtext",
nullable: false)
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.AddColumn<string>(
name: "RawItemData",
table: "sales_order",
type: "longtext",
nullable: false)
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "warehouse_material_req",
columns: table => new
{
MatReqID = table.Column<int>(type: "int", nullable: false)
.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn),
OrderID = table.Column<int>(type: "int", nullable: true),
OrderRowID = table.Column<int>(type: "int", nullable: true),
Inserted = table.Column<DateTime>(type: "datetime(6)", nullable: false),
ItemID = table.Column<int>(type: "int", nullable: true),
TotQty = table.Column<double>(type: "double", nullable: false),
RawItemData = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
CodGroup = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
ItemCode = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
Description = table.Column<string>(type: "longtext", nullable: false)
.Annotation("MySql:CharSet", "utf8mb4"),
NumItems = table.Column<int>(type: "int", nullable: false),
Processed = table.Column<bool>(type: "tinyint(1)", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_warehouse_material_req", x => x.MatReqID);
table.ForeignKey(
name: "FK_warehouse_material_req_item_item_ItemID",
column: x => x.ItemID,
principalTable: "item_item",
principalColumn: "ItemID",
onDelete: ReferentialAction.Restrict);
table.ForeignKey(
name: "FK_warehouse_material_req_sales_order_OrderID",
column: x => x.OrderID,
principalTable: "sales_order",
principalColumn: "OrderID",
onDelete: ReferentialAction.Restrict);
table.ForeignKey(
name: "FK_warehouse_material_req_sales_order_row_OrderRowID",
column: x => x.OrderRowID,
principalTable: "sales_order_row",
principalColumn: "OrderRowID",
onDelete: ReferentialAction.Restrict);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.CreateTable(
name: "buy_order_row_2_mat_req",
columns: table => new
{
BuyOrderRowID = table.Column<int>(type: "int", nullable: false),
MatReqID = table.Column<int>(type: "int", nullable: false),
Qty = table.Column<double>(type: "double", nullable: false),
OrderRowModelOrderRowID = table.Column<int>(type: "int", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_buy_order_row_2_mat_req", x => new { x.BuyOrderRowID, x.MatReqID });
table.ForeignKey(
name: "FK_buy_order_row_2_mat_req_buy_order_row_BuyOrderRowID",
column: x => x.BuyOrderRowID,
principalTable: "buy_order_row",
principalColumn: "BuyOrderRowID",
onDelete: ReferentialAction.Restrict);
table.ForeignKey(
name: "FK_buy_order_row_2_mat_req_sales_order_row_OrderRowModelOrderRo~",
column: x => x.OrderRowModelOrderRowID,
principalTable: "sales_order_row",
principalColumn: "OrderRowID",
onDelete: ReferentialAction.Restrict);
table.ForeignKey(
name: "FK_buy_order_row_2_mat_req_warehouse_material_req_MatReqID",
column: x => x.MatReqID,
principalTable: "warehouse_material_req",
principalColumn: "MatReqID",
onDelete: ReferentialAction.Restrict);
})
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 1,
columns: new[] { "DueDateProm", "DueDateReq", "ValidUntil" },
values: new object[] { new DateTime(2026, 6, 16, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 17, 17, 40, 3, 817, DateTimeKind.Local).AddTicks(9928) });
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 2,
columns: new[] { "DueDateProm", "DueDateReq", "ValidUntil" },
values: new object[] { new DateTime(2026, 6, 16, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 17, 17, 40, 3, 817, DateTimeKind.Local).AddTicks(9941) });
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 3,
columns: new[] { "DueDateProm", "DueDateReq", "ValidUntil" },
values: new object[] { new DateTime(2026, 6, 16, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 17, 17, 40, 3, 817, DateTimeKind.Local).AddTicks(9956) });
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 4,
columns: new[] { "DueDateProm", "DueDateReq", "ValidUntil" },
values: new object[] { new DateTime(2026, 6, 16, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 17, 17, 40, 3, 817, DateTimeKind.Local).AddTicks(9963) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 1,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 2,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 3,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 4,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 5,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 6,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 7,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 8,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 9,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 10,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.CreateIndex(
name: "IX_buy_order_row_2_mat_req_MatReqID",
table: "buy_order_row_2_mat_req",
column: "MatReqID");
migrationBuilder.CreateIndex(
name: "IX_buy_order_row_2_mat_req_OrderRowModelOrderRowID",
table: "buy_order_row_2_mat_req",
column: "OrderRowModelOrderRowID");
migrationBuilder.CreateIndex(
name: "IX_warehouse_material_req_ItemID",
table: "warehouse_material_req",
column: "ItemID");
migrationBuilder.CreateIndex(
name: "IX_warehouse_material_req_OrderID",
table: "warehouse_material_req",
column: "OrderID");
migrationBuilder.CreateIndex(
name: "IX_warehouse_material_req_OrderRowID",
table: "warehouse_material_req",
column: "OrderRowID");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "buy_order_row_2_mat_req");
migrationBuilder.DropTable(
name: "warehouse_material_req");
migrationBuilder.DropColumn(
name: "RawItemData",
table: "sales_order_row");
migrationBuilder.DropColumn(
name: "RawItemData",
table: "sales_order");
migrationBuilder.AddColumn<string>(
name: "OrderRowData",
table: "buy_order_row",
type: "longtext",
nullable: false)
.Annotation("MySql:CharSet", "utf8mb4");
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 1,
columns: new[] { "DueDateProm", "DueDateReq", "ValidUntil" },
values: new object[] { new DateTime(2026, 6, 13, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 14, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 14, 12, 24, 22, 268, DateTimeKind.Local).AddTicks(7042) });
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 2,
columns: new[] { "DueDateProm", "DueDateReq", "ValidUntil" },
values: new object[] { new DateTime(2026, 6, 13, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 14, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 14, 12, 24, 22, 268, DateTimeKind.Local).AddTicks(7058) });
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 3,
columns: new[] { "DueDateProm", "DueDateReq", "ValidUntil" },
values: new object[] { new DateTime(2026, 6, 13, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 14, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 14, 12, 24, 22, 268, DateTimeKind.Local).AddTicks(7064) });
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 4,
columns: new[] { "DueDateProm", "DueDateReq", "ValidUntil" },
values: new object[] { new DateTime(2026, 6, 13, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 14, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 14, 12, 24, 22, 268, DateTimeKind.Local).AddTicks(7071) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 1,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 2,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 3,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 4,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 5,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 6,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 7,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 8,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 9,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 10,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 14, 0, 0, 0, 0, DateTimeKind.Local) });
}
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,264 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace EgwCoreLib.Lux.Data.Migrations
{
/// <inheritdoc />
public partial class FixMatReqNav_01 : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_buy_order_row_2_mat_req_sales_order_row_OrderRowModelOrderRo~",
table: "buy_order_row_2_mat_req");
migrationBuilder.DropIndex(
name: "IX_buy_order_row_2_mat_req_OrderRowModelOrderRowID",
table: "buy_order_row_2_mat_req");
migrationBuilder.DropColumn(
name: "OrderRowModelOrderRowID",
table: "buy_order_row_2_mat_req");
migrationBuilder.AlterColumn<int>(
name: "ItemID",
table: "buy_order_row",
type: "int",
nullable: true,
oldClrType: typeof(int),
oldType: "int");
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 1,
columns: new[] { "DueDateProm", "DueDateReq", "ValidUntil" },
values: new object[] { new DateTime(2026, 6, 20, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 21, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 21, 18, 10, 31, 404, DateTimeKind.Local).AddTicks(6292) });
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 2,
columns: new[] { "DueDateProm", "DueDateReq", "ValidUntil" },
values: new object[] { new DateTime(2026, 6, 20, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 21, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 21, 18, 10, 31, 404, DateTimeKind.Local).AddTicks(6309) });
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 3,
columns: new[] { "DueDateProm", "DueDateReq", "ValidUntil" },
values: new object[] { new DateTime(2026, 6, 20, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 21, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 21, 18, 10, 31, 404, DateTimeKind.Local).AddTicks(6316) });
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 4,
columns: new[] { "DueDateProm", "DueDateReq", "ValidUntil" },
values: new object[] { new DateTime(2026, 6, 20, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 21, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 21, 18, 10, 31, 404, DateTimeKind.Local).AddTicks(6328) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 1,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 21, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 21, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 2,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 21, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 21, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 3,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 21, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 21, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 4,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 21, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 21, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 5,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 21, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 21, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 6,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 21, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 21, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 7,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 21, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 21, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 8,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 21, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 21, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 9,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 21, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 21, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 10,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 21, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 21, 0, 0, 0, 0, DateTimeKind.Local) });
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<int>(
name: "OrderRowModelOrderRowID",
table: "buy_order_row_2_mat_req",
type: "int",
nullable: true);
migrationBuilder.AlterColumn<int>(
name: "ItemID",
table: "buy_order_row",
type: "int",
nullable: false,
defaultValue: 0,
oldClrType: typeof(int),
oldType: "int",
oldNullable: true);
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 1,
columns: new[] { "DueDateProm", "DueDateReq", "ValidUntil" },
values: new object[] { new DateTime(2026, 6, 16, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 17, 17, 40, 3, 817, DateTimeKind.Local).AddTicks(9928) });
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 2,
columns: new[] { "DueDateProm", "DueDateReq", "ValidUntil" },
values: new object[] { new DateTime(2026, 6, 16, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 17, 17, 40, 3, 817, DateTimeKind.Local).AddTicks(9941) });
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 3,
columns: new[] { "DueDateProm", "DueDateReq", "ValidUntil" },
values: new object[] { new DateTime(2026, 6, 16, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 17, 17, 40, 3, 817, DateTimeKind.Local).AddTicks(9956) });
migrationBuilder.UpdateData(
table: "sales_offer",
keyColumn: "OfferID",
keyValue: 4,
columns: new[] { "DueDateProm", "DueDateReq", "ValidUntil" },
values: new object[] { new DateTime(2026, 6, 16, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 5, 17, 17, 40, 3, 817, DateTimeKind.Local).AddTicks(9963) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 1,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 2,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 3,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 4,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 5,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 6,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 7,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 8,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 9,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.UpdateData(
table: "sales_offer_row",
keyColumn: "OfferRowID",
keyValue: 10,
columns: new[] { "Inserted", "Modified" },
values: new object[] { new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local), new DateTime(2026, 4, 17, 0, 0, 0, 0, DateTimeKind.Local) });
migrationBuilder.CreateIndex(
name: "IX_buy_order_row_2_mat_req_OrderRowModelOrderRowID",
table: "buy_order_row_2_mat_req",
column: "OrderRowModelOrderRowID");
migrationBuilder.AddForeignKey(
name: "FK_buy_order_row_2_mat_req_sales_order_row_OrderRowModelOrderRo~",
table: "buy_order_row_2_mat_req",
column: "OrderRowModelOrderRowID",
principalTable: "sales_order_row",
principalColumn: "OrderRowID",
onDelete: ReferentialAction.Restrict);
}
}
}

Some files were not shown because too many files have changed in this diff Show More