931 Commits

Author SHA1 Message Date
paoloar77
faa808ca11 agg 2025-04-16 18:03:56 +02:00
paoloar77
98086453f5 aa 2025-04-16 16:57:28 +02:00
paoloar77
64e59c7441 aa 2025-04-16 16:55:52 +02:00
paoloar77
880d05506b aa 2025-04-16 16:52:37 +02:00
paoloar77
5e64d8f136 aa 2025-04-16 16:51:38 +02:00
paoloar77
266afbaf19 aa 2025-04-16 16:48:36 +02:00
paoloar77
dfb8d3c92d aa 2025-04-16 15:55:40 +02:00
paoloar77
9d64036519 aggiunto :
->where(function ($query) {
                $query->where('DescrizioneStatoProdotto', 'In commercio')
                    ->orWhere('DescrizioneStatoProdotto', '2023 in commercio')
                    ->orWhere('DescrizioneStatoProdotto', 'Vendita sito')
                    ->orWhere('DescrizioneStatoProdotto', 'In prevendita')
                    ->orWhere('DescrizioneStatoProdotto', 'Prossima uscita');
            })
2025-04-16 15:48:50 +02:00
paoloar77
89f44f02d9 aa 2025-04-15 13:08:07 +02:00
paoloar77
4aa0c42128 aa 2025-04-15 13:06:01 +02:00
paoloar77
9ae2cb9489 aa 2025-04-15 13:05:28 +02:00
paoloar77
9454c7bcd2 aa 2025-04-15 13:04:58 +02:00
paoloar77
593430b2b7 aa 2025-04-15 13:01:12 +02:00
paoloar77
ff0ef1b43a aa 2025-04-15 12:58:01 +02:00
paoloar77
01064314f7 aa 2025-04-15 12:57:23 +02:00
paoloar77
69345cd0bd aa 2025-04-15 12:56:47 +02:00
paoloar77
32883ec09d aa 2025-04-15 12:56:06 +02:00
paoloar77
1a99d5b09e aa 2025-04-15 12:55:08 +02:00
paoloar77
15dd790d29 aa 2025-04-15 12:53:04 +02:00
paoloar77
f255001de3 prova 2025-04-15 11:12:14 +02:00
paoloar77
7cfc77bfe6 AA 2025-04-14 19:28:17 +02:00
paoloar77
31d21b361b view-articles 2025-04-14 10:11:35 +02:00
paoloar77
d11b0b3583 Aggiornamenti 2025-04-11 18:40:53 +02:00
paoloar77
918bd0e3a7 Aggiornamento per ISBN 2025-03-25 00:04:56 +01:00
paoloar77
ba53925244 fixed $checkqtanegativa 2025-03-21 12:48:53 +01:00
paoloar77
73cea8e169 aggio 2025-03-21 12:43:16 +01:00
paoloar77
f8f92ef191 aa 2025-03-21 12:23:20 +01:00
paoloar77
796c9826fe agg 2025-03-21 12:16:03 +01:00
paoloar77
9e96f7e8d0 aaa 2025-03-21 12:10:33 +01:00
paoloar77
6f8b598bb3 risolto errore 2025-03-21 12:04:56 +01:00
paoloar77
538e703465 aa 2025-03-21 11:38:06 +01:00
paoloar77
eec81993e0 aa 2025-03-21 11:37:21 +01:00
paoloar77
13037a8598 aa 2025-03-21 11:34:36 +01:00
paoloar77
509116c614 aa 2025-03-21 11:34:05 +01:00
paoloar77
275bb9e382 aa 2025-03-21 11:33:30 +01:00
paoloar77
df3937764f aa 2025-03-21 11:32:56 +01:00
paoloar77
dfbf0c7884 aa 2025-03-21 11:31:40 +01:00
paoloar77
cc7246b0cc aa 2025-03-21 11:11:25 +01:00
paoloar77
90953f314b aggio 2025-03-21 11:03:52 +01:00
paoloar77
37180b87c2 aa 2025-02-20 12:38:37 +01:00
paoloar77
f6aed85d9e aa 2025-02-20 12:34:19 +01:00
paoloar77
e9f2d1a47a aa 2025-02-20 10:34:08 +01:00
paoloar77
24ba24c2ff aa 2025-02-20 10:31:21 +01:00
paoloar77
c1aedbfd29 aa 2025-02-20 10:29:13 +01:00
paoloar77
1cdcab5544 aa 2025-02-20 10:27:12 +01:00
paoloar77
a393e5c15e aa 2025-02-20 10:25:09 +01:00
paoloar77
43b234c43b aa 2025-02-20 10:21:28 +01:00
paoloar77
8be5aa975c aa 2025-02-20 10:19:22 +01:00
paoloar77
d4d98c9a4e aa 2025-02-20 10:11:42 +01:00
paoloar77
8f661a471c aa 2025-02-17 11:35:09 +01:00
paoloar77
4dd6388953 aa 2025-02-17 11:33:17 +01:00
paoloar77
3d0cf6547b aaamodif 2025-02-14 20:31:02 +01:00
paoloar77
a8c5ad7018 aaa 2025-02-14 20:28:04 +01:00
paoloar77
e1a09fc316 aaa 2025-02-14 20:22:32 +01:00
paoloar77
bc1df11e04 aggio 2025-02-14 18:35:01 +01:00
paoloar77
45f0874d8d aa 2025-02-12 10:29:15 +01:00
paoloar77
a23ba35f5c aa 2025-02-12 10:05:07 +01:00
paoloar77
e1124cd00f aa 2025-02-12 10:04:00 +01:00
paoloar77
4c4fd88a8d aa 2025-02-12 10:02:27 +01:00
paoloar77
36b7852194 aggio Argomento 2025-02-12 09:33:53 +01:00
paoloar77
397f3bcfd9 collana 2025-02-03 11:08:32 +01:00
paoloar77
918bedbb96 aa 2025-01-28 18:20:12 +01:00
paoloar77
e1d40e4f25 aa 2025-01-28 18:08:10 +01:00
paoloar77
9024d69782 aa 2025-01-28 18:06:59 +01:00
paoloar77
b847537416 aa 2025-01-28 18:05:50 +01:00
paoloar77
71fa796487 aa 2025-01-28 18:04:39 +01:00
paoloar77
1c4e577e64 aa 2025-01-28 18:03:39 +01:00
paoloar77
14f5b113e2 aaa 2025-01-28 18:01:33 +01:00
paoloar77
ca02150723 aa 2025-01-16 09:38:03 +01:00
paoloar77
114cdf8ea5 aa 2025-01-16 09:37:27 +01:00
paoloar77
0130ad9c92 aa 2025-01-16 09:30:28 +01:00
paoloar77
64ecadce59 aa 2025-01-16 09:28:55 +01:00
paoloar77
0b4ec86cba aa 2025-01-16 09:26:46 +01:00
paoloar77
d58bd30263 aa 2025-01-16 09:25:31 +01:00
paoloar77
01d5c039cf aa 2025-01-16 09:20:28 +01:00
paoloar77
e922b25403 aa 2025-01-16 08:57:09 +01:00
paoloar77
ad4e1c7578 aa 2025-01-16 08:48:38 +01:00
paoloar77
8253850c38 aa 2025-01-16 08:42:26 +01:00
paoloar77
e97eaeb0cd aa 2025-01-16 08:39:54 +01:00
paoloar77
21f8eacaf5 aa 2025-01-15 21:01:32 +01:00
paoloar77
7b0d6212ac agg 2025-01-15 20:56:43 +01:00
paoloar77
e507d32452 preordini 2025-01-15 20:50:45 +01:00
paoloar77
694e027640 aa 2024-12-22 19:31:16 +01:00
paoloar77
e128715bd9 aa 2024-12-20 17:52:30 +01:00
paoloar77
d7df0f23d1 aa 2024-12-20 17:43:52 +01:00
paoloar77
83202a4c24 aa 2024-12-20 17:43:10 +01:00
paoloar77
7d3b2a6b5a aa 2024-12-20 17:25:19 +01:00
paoloar77
71a6ea7a10 aa 2024-12-20 12:47:48 +01:00
paoloar77
dd8687271b aa 2024-12-20 12:39:17 +01:00
paoloar77
b64936289d aa 2024-12-20 12:38:21 +01:00
paoloar77
9a85e72e79 aa 2024-12-20 12:34:27 +01:00
paoloar77
e7de0e4bea view tables 2024-12-20 11:31:03 +01:00
paoloar77
d707cd28e8 aaaaa 2024-12-20 11:15:52 +01:00
paoloar77
cadd052cb0 aa 2024-12-19 15:15:06 +01:00
paoloar77
1554f7845c aa 2024-12-19 14:30:38 +01:00
paoloar77
dcf91b8814 aa 2024-12-19 14:29:24 +01:00
paoloar77
bf6ddbff92 coll 2024-12-19 14:25:16 +01:00
paoloar77
0d7993b546 aa 2024-12-19 11:27:57 +01:00
paoloar77
97175176a5 aa 2024-12-19 11:26:11 +01:00
paoloar77
952db1caf1 aa 2024-12-19 11:25:55 +01:00
paoloar77
b6c667876a aa 2024-12-19 11:14:00 +01:00
paoloar77
17d9a2d090 aa 2024-12-19 11:07:03 +01:00
paoloar77
4553d438ae venduti e fatturati nello stesso file 2024-12-19 10:59:33 +01:00
paoloar77
96a323b75d aa 2024-12-19 10:29:42 +01:00
paoloar77
23731a78d1 aa 2024-12-19 10:22:03 +01:00
paoloar77
d4629e0c74 aa 2024-12-19 10:21:31 +01:00
paoloar77
7a5568dac6 aa 2024-12-19 10:18:57 +01:00
paoloar77
c4517b50a4 aa 2024-12-19 10:17:31 +01:00
paoloar77
3f53be52ab aa 2024-12-19 10:14:29 +01:00
paoloar77
fcbafe3730 aa 2024-12-19 10:13:07 +01:00
paoloar77
865e941139 aa 2024-12-19 10:09:38 +01:00
paoloar77
f2b3c8d006 aa 2024-12-19 09:58:05 +01:00
paoloar77
0f8359f61e aa 2024-12-19 09:55:13 +01:00
paoloar77
3d86b1b450 aa 2024-12-18 11:55:54 +01:00
paoloar77
406961ba43 aa 2024-12-18 11:55:13 +01:00
paoloar77
0d3f76855f aa 2024-12-18 09:39:02 +01:00
paoloar77
d86f7088b9 aa 2024-12-18 09:36:09 +01:00
paoloar77
ede83da4aa aa 2024-12-18 09:30:12 +01:00
paoloar77
ba80a79557 aaa 2024-12-18 09:28:40 +01:00
paoloar77
7a64b527b3 Fatturati 2024-12-18 09:14:02 +01:00
paoloar77
852e9838e2 aa 2024-12-18 08:58:11 +01:00
paoloar77
c74580af4b fatturati 2024-12-18 08:56:53 +01:00
paoloar77
ceacf59278 ArticoliFatturati 2024-12-18 08:20:00 +01:00
paoloar77
755abea3be aa 2024-12-17 21:23:13 +01:00
paoloar77
35bcab2621 aa 2024-12-13 21:29:46 +01:00
paoloar77
1234385d9c aa 2024-12-13 21:28:11 +01:00
paoloar77
7c9f731b39 aggiornatocampi 2024-12-13 21:15:18 +01:00
paoloar77
4496847ab8 Aggiunto 'Rivista' 2024-12-12 20:03:24 +01:00
paoloar77
f08c28b464 aa 2024-12-09 08:42:04 +01:00
paoloar77
6dba1e665b aa 2024-12-08 16:59:10 +01:00
paoloar77
d428266f37 aa 2024-12-08 16:43:17 +01:00
paoloar77
3bd805b383 aa 2024-12-08 16:42:48 +01:00
paoloar77
36647c97e1 aa 2024-12-08 16:34:48 +01:00
paoloar77
5206d6e731 aa 2024-12-08 16:31:46 +01:00
paoloar77
9026104cb8 aa 2024-12-08 16:28:34 +01:00
paoloar77
b47c3c3bf2 aa 2024-12-08 16:26:52 +01:00
paoloar77
da3f82b650 aa 2024-12-08 16:25:39 +01:00
paoloar77
2311655fab aa 2024-12-08 16:17:34 +01:00
paoloar77
f9378a2a45 aa 2024-12-08 16:14:33 +01:00
paoloar77
a2e01a998a aa 2024-12-08 15:56:49 +01:00
paoloar77
bfbbf0e42d aa 2024-12-08 15:56:14 +01:00
paoloar77
2a1f6e827f AA 2024-12-08 15:52:28 +01:00
paoloar77
be2fadd822 aa 2024-12-08 15:51:03 +01:00
paoloar77
fedc25df3d aa 2024-12-08 15:50:50 +01:00
paoloar77
a17aa01295 aa 2024-12-08 15:46:54 +01:00
paoloar77
42340d6d13 aa 2024-12-08 15:42:19 +01:00
paoloar77
8b4adb8170 aa 2024-12-08 15:41:54 +01:00
paoloar77
eab57b77be aa 2024-12-08 15:40:47 +01:00
paoloar77
b51cececcc aa 2024-12-08 15:38:47 +01:00
paoloar77
fe79c80c45 aa 2024-12-08 15:38:20 +01:00
paoloar77
087a61ef96 aa 2024-12-08 15:35:17 +01:00
paoloar77
88959f70c3 aa 2024-12-08 15:33:34 +01:00
paoloar77
14ee7bab4a aa 2024-12-08 15:32:17 +01:00
paoloar77
cb0c6bf8ad aa 2024-12-08 15:29:48 +01:00
paoloar77
a3aec3028b aa 2024-12-08 15:25:44 +01:00
paoloar77
1491c89004 aa 2024-12-08 14:53:51 +01:00
paoloar77
91b8b98dc0 aa 2024-12-08 14:39:33 +01:00
paoloar77
02263181bd aa 2024-12-08 14:37:37 +01:00
paoloar77
2a8b9fe4ce aa 2024-12-08 14:36:38 +01:00
paoloar77
26475c1a26 aa 2024-12-08 14:35:03 +01:00
paoloar77
53a6d6663f aa 2024-12-08 14:33:21 +01:00
paoloar77
4836dd8487 aa 2024-12-08 12:55:44 +01:00
paoloar77
3f361e4e0b aa 2024-12-08 12:48:30 +01:00
paoloar77
efdedba34b aa 2024-12-08 12:44:30 +01:00
paoloar77
c011885d7a aa 2024-12-08 12:41:49 +01:00
paoloar77
666703d6c8 aa 2024-12-08 12:20:27 +01:00
paoloar77
2bb4cd359f aa 2024-12-08 12:17:07 +01:00
paoloar77
3814902df7 aa 2024-12-08 12:16:37 +01:00
paoloar77
3d6dbac2ff aa 2024-12-08 12:15:42 +01:00
paoloar77
f7c48b0d73 aa 2024-12-08 12:11:17 +01:00
paoloar77
166ba2476f aa 2024-12-08 12:09:42 +01:00
paoloar77
062fb9ee52 aa 2024-12-08 12:08:02 +01:00
paoloar77
f444ee8c6c aa 2024-12-08 12:07:12 +01:00
paoloar77
a9d418624f aa 2024-12-08 12:06:19 +01:00
paoloar77
ecb7be99f2 aa 2024-12-08 12:05:24 +01:00
paoloar77
565487bfe4 aa 2024-12-08 12:04:54 +01:00
paoloar77
5abc4f6b85 aa 2024-12-08 12:03:02 +01:00
paoloar77
7bda99800c aa 2024-12-08 12:01:41 +01:00
paoloar77
05f5229dba per data 2024-12-08 12:00:30 +01:00
paoloar77
ba437b5f30 lista ordini https://vps-88271abb.vps.ovh.net/apimacro/public/view-ordini-test/100 2024-12-08 11:41:57 +01:00
paoloar77
6482e29b46 aa 2024-12-08 11:36:29 +01:00
paoloar77
b34b4f039c aa 2024-12-08 11:36:07 +01:00
paoloar77
12950c6976 aa 2024-12-08 11:34:21 +01:00
paoloar77
5e6eb6487b aa 2024-12-08 11:32:09 +01:00
paoloar77
eff14375c3 aa 2024-12-08 11:30:21 +01:00
paoloar77
aedeff7ad2 aa 2024-12-08 11:29:44 +01:00
paoloar77
991d455abb aa 2024-12-08 11:27:15 +01:00
paoloar77
13cd9373dc aa 2024-12-08 11:26:45 +01:00
paoloar77
297bdf1e0d aa 2024-12-08 11:26:12 +01:00
paoloar77
f4e411b0ab aa 2024-12-08 11:25:02 +01:00
paoloar77
f326ef3bb3 aa 2024-12-08 11:24:43 +01:00
paoloar77
1631b32fc3 aa 2024-12-08 11:22:45 +01:00
paoloar77
9e45e7695e aa 2024-12-07 23:49:48 +01:00
paoloar77
2a67777f94 aa 2024-12-07 23:49:00 +01:00
paoloar77
30f7267780 aa 2024-12-07 23:47:37 +01:00
paoloar77
280a62b8d6 aa 2024-12-07 23:46:51 +01:00
paoloar77
ea8b724e19 aa 2024-12-07 23:45:53 +01:00
paoloar77
456fa7fe72 aa 2024-12-07 23:45:05 +01:00
paoloar77
d2e7f13500 aa 2024-12-07 23:40:10 +01:00
paoloar77
d3bee37a5b aa 2024-12-07 23:37:31 +01:00
paoloar77
053bacad3e aa 2024-12-07 23:36:40 +01:00
paoloar77
a1db5e1189 aa 2024-12-07 23:32:54 +01:00
paoloar77
1f69c63248 aa 2024-12-07 23:31:23 +01:00
paoloar77
6c6917ece0 aa 2024-12-07 23:29:57 +01:00
paoloar77
264a05bbb8 aa 2024-12-07 23:28:27 +01:00
paoloar77
ec9d3d83e5 ordini e test 2024-12-07 23:24:49 +01:00
paoloar77
79f2ff2e00 aa 2024-12-07 23:12:59 +01:00
paoloar77
596a0d6fef aa 2024-12-07 23:10:34 +01:00
paoloar77
adf56d7a29 aa 2024-12-07 22:59:14 +01:00
paoloar77
37febf0c41 aa 2024-12-07 22:56:39 +01:00
paoloar77
fcbcd4f338 aa 2024-12-07 21:00:49 +01:00
paoloar77
0dc1d1f50c aa 2024-12-07 21:00:10 +01:00
paoloar77
6704ad25fe aa 2024-12-07 20:59:15 +01:00
paoloar77
9266bb4a22 aa 2024-12-07 20:58:25 +01:00
paoloar77
7162958252 aa 2024-12-07 20:57:15 +01:00
paoloar77
2e6d4b7251 aa 2024-12-07 20:36:01 +01:00
paoloar77
14ed85e60e aa 2024-12-07 20:35:20 +01:00
paoloar77
8b9a4fdddf aa 2024-12-07 20:33:53 +01:00
paoloar77
3575a275de a 2024-12-07 20:31:22 +01:00
paoloar77
59539b2fab aa 2024-12-07 20:30:37 +01:00
paoloar77
b641999fcd aa 2024-12-07 19:43:32 +01:00
paoloar77
62e76d3613 aa 2024-12-07 19:42:33 +01:00
paoloar77
68811f31b2 aa 2024-12-07 19:40:48 +01:00
paoloar77
32eb5ac9b6 aa 2024-12-07 19:39:32 +01:00
paoloar77
16a42d1ba8 aa 2024-12-07 19:38:45 +01:00
paoloar77
42744fa7de aa 2024-12-07 19:35:55 +01:00
paoloar77
6a6d95c9c0 aa 2024-12-07 19:35:10 +01:00
paoloar77
d8d11377fc aa 2024-12-07 19:34:14 +01:00
paoloar77
3ed63696c4 aa 2024-12-07 19:33:54 +01:00
paoloar77
20e59f1156 aa 2024-12-07 19:33:13 +01:00
paoloar77
947e3a1288 aa 2024-12-07 19:24:57 +01:00
paoloar77
2c3aca157d aa 2024-12-07 19:24:37 +01:00
paoloar77
a8cdad1825 aa 2024-12-07 19:23:51 +01:00
paoloar77
d2d1273e3d aa 2024-12-07 19:22:50 +01:00
paoloar77
8333a820e3 aa 2024-12-07 19:21:56 +01:00
paoloar77
928de35282 aa 2024-12-07 19:21:35 +01:00
paoloar77
ac5e6238aa aa 2024-12-07 19:21:01 +01:00
paoloar77
08573ba1c0 aa 2024-12-07 19:18:15 +01:00
paoloar77
e018cc8425 aa 2024-12-07 19:17:01 +01:00
paoloar77
007388936a aa 2024-12-07 19:16:26 +01:00
paoloar77
9b5875f022 aaa 2024-12-07 19:13:40 +01:00
paoloar77
076ded30f9 aa 2024-12-07 19:11:46 +01:00
paoloar77
919b510f48 aa 2024-12-07 19:08:06 +01:00
paoloar77
36e3eb3ede aa 2024-12-07 19:04:55 +01:00
paoloar77
d00ac3f247 aa 2024-12-07 19:02:39 +01:00
paoloar77
bf7d4e7196 aa 2024-12-07 19:01:37 +01:00
paoloar77
6b1f4648ef aa 2024-12-07 18:57:33 +01:00
paoloar77
81149f570a aa 2024-12-07 18:55:29 +01:00
paoloar77
907dedfece aa 2024-12-07 18:52:08 +01:00
paoloar77
6963e8bd6b aa 2024-12-07 18:48:35 +01:00
paoloar77
7ab7eac4cd aa 2024-12-07 18:46:27 +01:00
paoloar77
dca956239f aa 2024-12-07 18:44:42 +01:00
paoloar77
7d7f7b8e37 a 2024-12-07 18:42:50 +01:00
paoloar77
70f32d19f2 aa 2024-12-07 18:38:32 +01:00
paoloar77
fa5486e0e9 aa 2024-12-07 18:37:01 +01:00
paoloar77
b58d168e85 a 2024-12-07 18:35:24 +01:00
paoloar77
378d200453 aa 2024-12-07 18:34:45 +01:00
paoloar77
b9bb7749c7 aa 2024-12-07 18:31:57 +01:00
paoloar77
027cc49c75 aa 2024-12-07 18:29:20 +01:00
paoloar77
16d97e20eb aa 2024-12-07 18:25:47 +01:00
paoloar77
0dd5032b8f aa 2024-12-07 17:45:18 +01:00
paoloar77
82c49051cb aa 2024-12-07 17:16:06 +01:00
paoloar77
56e6f3d4c5 aa 2024-12-07 17:06:17 +01:00
paoloar77
edca31cbbc a 2024-12-07 15:35:59 +01:00
paoloar77
377714954b aa 2024-12-07 15:33:19 +01:00
paoloar77
c05cf28ca9 modif 2024-12-07 15:28:56 +01:00
paoloar77
e19e0252fb aaa 2024-12-02 11:23:33 +01:00
paoloar77
db3f46dfba aa 2024-11-29 13:28:23 +01:00
paoloar77
255597a3f1 aa 2024-11-29 11:18:00 +01:00
paoloar77
bafa5dbb2c aa 2024-11-29 10:37:26 +01:00
paoloar77
6a7f99e967 aa 2024-11-29 09:04:14 +01:00
paoloar77
a976a4a914 aa 2024-11-29 09:02:38 +01:00
paoloar77
f0fca214e4 aa 2024-11-29 09:01:08 +01:00
paoloar77
71729e2aed aa 2024-11-29 09:00:19 +01:00
paoloar77
5601d9fad9 aa 2024-11-28 21:08:52 +01:00
paoloar77
1de6f7127a aa 2024-11-28 20:57:06 +01:00
paoloar77
acd626267a aa 2024-11-28 20:56:47 +01:00
paoloar77
1b0d6a191c aa 2024-11-28 20:54:57 +01:00
paoloar77
7cb131efb5 aa 2024-11-28 20:54:35 +01:00
paoloar77
7e760e906b aa 2024-11-28 20:53:10 +01:00
paoloar77
d9b67f5f7d aa 2024-11-28 20:52:52 +01:00
paoloar77
07a0067daa aa 2024-11-28 20:52:14 +01:00
paoloar77
235979f0ff ww 2024-11-28 20:51:42 +01:00
paoloar77
f1a9640c46 aa 2024-11-28 20:50:25 +01:00
paoloar77
8042151ee8 aa 2024-11-28 20:50:02 +01:00
paoloar77
14ad79f5d2 aa 2024-11-28 20:46:21 +01:00
paoloar77
ef7bb1eaa3 aa 2024-11-28 20:43:19 +01:00
paoloar77
0803825806 aa 2024-11-28 17:36:03 +01:00
paoloar77
68abd64bd9 aa 2024-11-28 17:35:47 +01:00
paoloar77
4aa31ed09a aa 2024-11-28 17:35:14 +01:00
paoloar77
5a8eb2ed55 aa 2024-11-28 17:31:49 +01:00
paoloar77
b0d7e1e133 aa 2024-11-28 17:30:34 +01:00
paoloar77
93d1bce2e4 aa 2024-11-28 17:30:10 +01:00
paoloar77
8cd310792d aa 2024-11-28 17:29:09 +01:00
paoloar77
c317f07b5f aa 2024-11-28 17:26:49 +01:00
paoloar77
ec0892def9 aa 2024-11-28 17:25:40 +01:00
paoloar77
4e285d2ebc aa 2024-11-28 17:24:17 +01:00
paoloar77
82ae3bf2fc aa 2024-11-28 17:22:07 +01:00
paoloar77
a323a2ffa7 aa 2024-11-28 17:20:53 +01:00
paoloar77
a9c8c4e74a aaa 2024-11-28 17:18:44 +01:00
paoloar77
ce709a9836 aa 2024-11-28 17:14:50 +01:00
paoloar77
da4f48b83c aa 2024-11-28 17:04:28 +01:00
paoloar77
07da21eaa4 aa 2024-11-28 17:00:02 +01:00
paoloar77
214514091e AA 2024-11-27 19:30:13 +01:00
paoloar77
2f8546c7ca aa 2024-11-27 19:00:28 +01:00
paoloar77
77540f1768 aa 2024-11-27 17:38:50 +01:00
paoloar77
35aac62976 aa 2024-11-27 17:38:03 +01:00
paoloar77
36846c02b2 aa 2024-11-27 17:37:17 +01:00
paoloar77
135690c2a0 aa 2024-11-27 17:35:32 +01:00
paoloar77
d0fcb0baa3 aa 2024-11-27 17:28:59 +01:00
paoloar77
79b9052d83 aa 2024-11-27 17:27:23 +01:00
paoloar77
293fc39a2a DataPubblicazione 2024-11-27 17:24:13 +01:00
paoloar77
2fb25eab78 aa 2024-11-27 17:19:54 +01:00
paoloar77
6a41cd641c aa 2024-11-27 17:19:09 +01:00
paoloar77
fcfcfe78e3 aa 2024-11-27 17:18:45 +01:00
paoloar77
75b28cd967 aa 2024-11-27 17:17:08 +01:00
paoloar77
8b935f117e JSON 2024-11-27 17:07:02 +01:00
paoloar77
ee514d8e4b a 2024-11-27 15:58:32 +01:00
paoloar77
b22d303680 a 2024-11-27 15:56:45 +01:00
paoloar77
0c73a1181d aa 2024-11-27 15:54:52 +01:00
paoloar77
01028f60f3 aa 2024-11-27 15:43:48 +01:00
paoloar77
24cf266a03 aa 2024-11-27 15:39:48 +01:00
paoloar77
201c70ca15 aa 2024-11-27 15:38:18 +01:00
paoloar77
8c8f4fe8cc aa 2024-11-27 15:32:21 +01:00
paoloar77
b7d131ed96 aa 2024-11-27 15:27:00 +01:00
paoloar77
fa450fafe6 aa 2024-11-27 15:24:37 +01:00
paoloar77
b40bb375aa aa 2024-11-27 15:23:58 +01:00
paoloar77
64ce42de62 aa 2024-11-27 15:23:34 +01:00
paoloar77
880a84ab69 aa 2024-11-27 15:23:03 +01:00
paoloar77
88e638b146 aa 2024-11-27 15:20:49 +01:00
paoloar77
5be4d71498 aa 2024-11-27 15:19:45 +01:00
paoloar77
c5e76275e8 aa 2024-11-27 15:16:03 +01:00
paoloar77
1dc4f2e7ba aa 2024-11-27 15:13:17 +01:00
paoloar77
73de034024 aa 2024-11-27 15:11:23 +01:00
paoloar77
be766fc888 aa 2024-11-27 15:10:05 +01:00
paoloar77
0371df938a aa 2024-11-27 15:02:50 +01:00
paoloar77
408c747372 aa 2024-11-27 15:02:06 +01:00
paoloar77
cc8be8921a aa 2024-11-27 15:01:20 +01:00
paoloar77
934fae779f aa 2024-11-27 15:00:24 +01:00
paoloar77
b8ee13a297 aa 2024-11-27 14:56:15 +01:00
paoloar77
f09c4550e7 aa 2024-11-27 14:50:35 +01:00
paoloar77
f9ca2f927f aa 2024-11-27 14:50:05 +01:00
paoloar77
83c88be38a aa 2024-11-27 14:49:39 +01:00
paoloar77
54abae77d1 aa 2024-11-27 14:48:14 +01:00
paoloar77
08622480e3 aa 2024-11-27 14:44:37 +01:00
paoloar77
b95135f12b aa 2024-11-27 14:41:18 +01:00
paoloar77
b30cf7d2e7 aa 2024-11-27 14:37:05 +01:00
paoloar77
80c327e935 aa 2024-11-27 14:34:59 +01:00
paoloar77
372e8ac3bf aa 2024-11-27 14:32:32 +01:00
paoloar77
2e675bd295 aa 2024-11-27 14:29:02 +01:00
paoloar77
5b939b32fe query totalevenduti 2024-11-27 14:27:16 +01:00
paoloar77
30cdeb75d5 aa 2024-11-27 12:40:48 +01:00
paoloar77
79adc61efc aa 2024-11-27 12:39:34 +01:00
paoloar77
39886b8131 permalink 2024-11-27 12:38:26 +01:00
paoloar77
371f10b8bb Cambiato idInternet con 'FDV_' aggiunto all'inizio, OK 2024-10-03 12:07:53 +02:00
paoloar77
c3c41bd1e7 Cambiato idInternet con 'FDV_' aggiunto all'inizio. 2024-10-03 11:53:26 +02:00
paoloar77
cdf3ed84f2 riabilitato 2024-09-27 18:29:51 +02:00
paoloar77
e159ecc527 stop order:gmupdate 2024-09-27 18:16:37 +02:00
paoloar77
eea736eaf2 rimesso come prima 2024-09-27 02:54:55 +02:00
paoloar77
ae2bb55f7c modifica ID 'FDV' + codice 2024-09-27 02:44:47 +02:00
paoloar77
5f023c1e4e aa 2024-09-05 23:44:33 +02:00
paoloar77
2d125c269a aa 2024-09-05 17:50:54 +02:00
paoloar77
c563c06f89 aa 2024-09-05 17:45:46 +02:00
paoloar77
88bd28ab3d aa 2024-09-05 17:44:53 +02:00
paoloar77
b37b403e35 aa 2024-09-05 17:43:21 +02:00
paoloar77
754842e004 aa 2024-09-05 17:40:41 +02:00
paoloar77
6ebca7102d aa 2024-09-05 17:25:29 +02:00
paoloar77
84b252b436 aa 2024-09-05 17:21:07 +02:00
paoloar77
422a454ffd aa 2024-09-05 17:20:32 +02:00
paoloar77
6afdec9747 aa 2024-09-05 17:17:48 +02:00
paoloar77
d08403479d cartolibri 2024-09-05 17:16:56 +02:00
paoloar77
fea9b335c9 aa 2024-09-03 12:20:48 +02:00
paoloar77
69729a07cf aaa 2024-09-03 12:17:42 +02:00
paoloar77
6a7ab3ec86 aa 2024-09-03 12:05:34 +02:00
paoloar77
5aa5f1254d aggio 2024-09-03 12:04:36 +02:00
paoloar77
671173ecd4 upd 2024-08-23 15:24:40 +02:00
paoloar77
e877e7096e order 2024-08-23 15:11:20 +02:00
paoloar77
46fafb5c78 agg 2024-08-23 14:53:40 +02:00
paoloar77
946764f753 aatest 2024-08-23 14:47:40 +02:00
paoloar77
03eea7a609 agg 2024-08-23 00:33:17 +02:00
paoloar77
42c0a51b7f agg 2024-08-23 00:22:56 +02:00
paoloar77
cb10e07142 order 2024-08-22 23:32:51 +02:00
paoloar77
1661d07a1d aggio 2024-08-22 22:29:16 +02:00
paoloar77
239475afde ord 2024-08-22 22:16:07 +02:00
paoloar77
886b42a681 aa 2024-08-15 13:07:52 +02:00
Paolo A
9b84559466 Comm3 2024-08-15 11:02:33 +00:00
paoloar77
b5e817d815 aa 2024-08-15 12:50:33 +02:00
paoloar77
4729568474 aa 2024-08-15 10:54:39 +02:00
paoloar77
0d57fd1b6f aggio_orig_composer 2024-08-15 10:43:42 +02:00
paoloar77
0636e17e11 aa 2024-08-14 23:06:48 +02:00
paoloar77
4f8aa1917f aaa 2024-08-14 22:50:03 +02:00
paoloar77
c49cc5b2c3 aaa 2024-08-14 22:48:05 +02:00
paoloar77
9cad2e0f06 aa 2024-08-14 22:43:56 +02:00
paoloar77
8db229021b aa 2024-08-14 22:42:34 +02:00
paoloar77
869ce2b322 aa 2024-08-14 22:40:53 +02:00
paoloar77
e19b2d748c aa 2024-08-14 22:40:19 +02:00
paoloar77
9750e8d00d aa 2024-08-14 22:35:57 +02:00
Paolo A
5202ad59a8 Comm3 2024-08-14 16:01:52 +00:00
Paolo A
a6d456a064 Comm3 2024-08-14 15:59:50 +00:00
paoloar77
20317dbf82 aggio laravel 10... 2024-08-14 17:58:58 +02:00
paoloar77
2f533fed74 aa 2024-08-14 17:49:25 +02:00
paoloar77
7eb0b68f13 aa 2024-08-14 17:48:59 +02:00
paoloar77
02df669d37 aa 2024-08-14 17:48:10 +02:00
paoloar77
b9568c9517 aa 2024-08-14 17:46:51 +02:00
paoloar77
c6380165fc aa 2024-08-14 17:45:15 +02:00
Paolo A
19ff4dda48 Comm3 2024-08-14 15:43:49 +00:00
Paolo A
bff846a77d Comm3 2024-08-14 15:43:28 +00:00
paoloar77
04747b8b69 aa1 2024-08-14 17:34:05 +02:00
Paolo A
4f889d9330 Comm2 2024-08-14 15:33:35 +00:00
paoloar77
c1678f9755 aa 2024-08-14 17:28:23 +02:00
paoloar77
4828052224 aa 2024-08-14 17:07:03 +02:00
paoloar77
ed314a2d93 aa 2024-08-14 17:05:49 +02:00
Paolo A
9a0b9d69d1 Comm 2024-08-14 15:05:03 +00:00
paoloar77
f023b77c84 aa 2024-08-14 16:58:27 +02:00
paoloar77
88f3efd668 aa 2024-08-14 16:58:04 +02:00
paoloar77
30b975faab aa 2024-08-14 16:57:28 +02:00
paoloar77
81b06cd2ad aa 2024-08-14 16:36:09 +02:00
paoloar77
6912ff7ea3 aa 2024-08-14 16:31:58 +02:00
paoloar77
88d417bf7a aa 2024-08-14 15:38:04 +02:00
paoloar77
e92186c803 aa 2024-08-14 15:36:37 +02:00
paoloar77
7cfeeb12b2 aa 2024-08-14 15:35:38 +02:00
paoloar77
4d10166799 aa 2024-08-14 15:35:04 +02:00
paoloar77
c943a355ef test 2024-08-14 15:30:25 +02:00
paoloar77
4c72444b17 aa 2024-08-14 14:00:26 +02:00
paoloar77
a715862c68 aa 2024-08-14 11:31:54 +02:00
paoloar77
c22fd7d3ed aa 2024-08-14 11:31:22 +02:00
paoloar77
38e1d422dd aa 2024-08-14 11:29:57 +02:00
paoloar77
12186e3ff7 opzioni 2024-08-14 11:11:01 +02:00
paoloar77
2e4d958f6c laravel update 2024-08-14 10:08:17 +02:00
paoloar77
e95a3a6a67 aa 2024-08-13 22:40:56 +02:00
paoloar77
70360006d7 aa 2024-08-13 22:38:34 +02:00
paoloar77
64e1cb8f37 aa 2024-08-13 22:38:03 +02:00
paoloar77
b3a858866d aa 2024-08-13 22:36:57 +02:00
paoloar77
5d7679f1fa opzioni 2024-08-13 22:33:21 +02:00
paoloar77
25456127be opzioni sqlsrv 2024-08-13 22:32:05 +02:00
paoloar77
ee1917ef61 aa 2024-08-13 15:53:02 +02:00
Paolo A
8bb50657b5 Commaaab 2024-08-13 13:50:19 +00:00
Paolo A
e796d76612 Commaaa2 2024-08-13 13:44:16 +00:00
paoloar77
deb8472fd3 aa 2024-08-13 15:22:21 +02:00
paoloar77
3e480c5b7e update2 2024-08-13 11:02:00 +02:00
paoloar77
a1ad996bf8 aggio 2024-08-13 10:56:34 +02:00
paoloar77
07840476c1 aa 2024-08-13 09:44:49 +02:00
paoloar77
fe7fc8efbc aa 2024-08-13 09:36:20 +02:00
paoloar77
43547d1e20 aa 2024-08-13 09:35:01 +02:00
paoloar77
1bbb23088d aa 2024-08-13 09:31:34 +02:00
paoloar77
9926562f03 aa 2024-08-13 09:29:03 +02:00
paoloar77
92ead17e22 aa 2024-08-13 09:27:46 +02:00
paoloar77
ff4ca1a7ae aa 2024-08-13 09:26:19 +02:00
paoloar77
99bbc4ed13 aa 2024-08-12 11:26:04 +02:00
paoloar77
58c759753d aa 2024-08-12 11:19:13 +02:00
paoloar77
19bac3aebb aa 2024-08-12 11:14:26 +02:00
paoloar77
59f114f167 aa 2024-08-12 11:12:44 +02:00
paoloar77
4a433121b9 aa 2024-08-12 11:12:21 +02:00
paoloar77
982308e102 aaa 2024-08-12 11:11:08 +02:00
paoloar77
d35c52a862 ripristinaord 2024-08-12 11:08:30 +02:00
paoloar77
2c38001843 se già esiste l'ordine, non crearne uno nuovo 2024-08-12 10:44:54 +02:00
paoloar77
91e3cb9867 aa 2024-07-26 18:09:39 +02:00
paoloar77
d148b92d1c aa 2024-07-26 18:08:50 +02:00
paoloar77
487c19b6b2 CodClienteInternet 2024-07-26 17:48:05 +02:00
paoloar77
3ac8f25ab9 aa 2024-07-26 17:33:35 +02:00
paoloar77
c571be5104 aa 2024-07-26 17:32:50 +02:00
paoloar77
38933e0e2b aa 2024-07-26 17:31:11 +02:00
paoloar77
3690054e94 aa 2024-07-26 17:29:13 +02:00
paoloar77
1d728ff5fd aa 2024-07-26 17:28:24 +02:00
paoloar77
b127621b0b aa 2024-07-26 17:27:58 +02:00
paoloar77
f856f4b1a4 aa 2024-07-26 17:27:27 +02:00
paoloar77
63f28094bb aa 2024-07-26 17:26:42 +02:00
paoloar77
8b9ae58e29 aa 2024-07-26 17:25:02 +02:00
paoloar77
f4e8e34e88 aa 2024-07-26 17:23:34 +02:00
paoloar77
f53172bdf8 testcli 2024-07-26 16:58:50 +02:00
paoloar77
79695e9046 primaryKey = 'CodClienteInternet' 2024-07-26 16:52:04 +02:00
paoloar77
355f86980b aa 2024-07-26 16:46:09 +02:00
paoloar77
840226f0b8 aa 2024-07-26 16:40:38 +02:00
paoloar77
9ba51299de aa 2024-07-26 16:18:28 +02:00
paoloar77
5db23f1f7a aa 2024-07-26 16:15:39 +02:00
paoloar77
a9749c92fe cliente nuovo, passagli l'ID 2024-07-26 15:55:19 +02:00
paoloar77
8eb2044cfd aa 2024-07-22 12:29:29 +02:00
paoloar77
e4ddd4eae5 aa 2024-07-22 12:25:09 +02:00
paoloar77
ea4e9afd04 IdSito = 7 (FDV) 2024-07-22 12:23:45 +02:00
paoloar77
165fabf13c aa 2024-07-22 12:21:09 +02:00
paoloar77
bbe01cf1ab aa 2024-07-22 12:18:19 +02:00
paoloar77
0c8bd8fb30 aa 2024-07-22 12:07:32 +02:00
paoloar77
991760ef94 aaa 2024-07-22 12:05:26 +02:00
paoloar77
540ba0fb0b aaaa 2024-07-22 12:00:06 +02:00
paoloar77
6552703945 aa 2024-07-22 11:55:22 +02:00
paoloar77
451b6fdeed aa 2024-07-22 11:49:50 +02:00
paoloar77
04ad951bc8 aa 2024-07-22 11:48:15 +02:00
paoloar77
550712acb6 aa 2024-07-22 11:37:56 +02:00
paoloar77
9df0e3a51b aa 2024-07-22 11:35:49 +02:00
paoloar77
207886d042 aa 2024-07-22 11:18:53 +02:00
paoloar77
77404771d9 aa 2024-07-18 17:10:55 +02:00
paoloar77
ea5fb1c002 aa 2024-07-18 15:57:41 +02:00
paoloar77
7126a806d0 aa 2024-07-18 15:56:04 +02:00
paoloar77
576098d289 aa 2024-07-18 15:53:13 +02:00
paoloar77
3e6cfb2d95 aa 2024-07-18 15:51:45 +02:00
paoloar77
32cb2e4044 aa 2024-07-18 15:50:30 +02:00
paoloar77
693e1ac6be aa 2024-07-18 15:45:18 +02:00
paoloar77
fbd12b5f2c aa 2024-07-18 15:44:40 +02:00
paoloar77
ea0e2dde26 AA 2024-07-18 15:43:50 +02:00
paoloar77
b8e20f0ca6 aa 2024-07-18 15:43:26 +02:00
paoloar77
ca912d34d7 aa 2024-07-18 15:42:36 +02:00
paoloar77
91aadaa658 aa 2024-07-18 15:42:06 +02:00
paoloar77
e769bff44a aa 2024-07-18 15:41:39 +02:00
paoloar77
013e970ba0 aa 2024-07-18 15:40:02 +02:00
paoloar77
392900e3d5 aaa 2024-07-18 15:35:08 +02:00
paoloar77
2c327ec959 aa 2024-07-18 15:33:04 +02:00
paoloar77
cb7dbe484c aa 2024-07-18 15:25:13 +02:00
paoloar77
7c4aa34315 aa 2024-07-18 15:22:58 +02:00
paoloar77
a55616318d aa 2024-07-18 15:21:57 +02:00
paoloar77
d3480ee6be aa 2024-07-18 15:20:24 +02:00
paoloar77
8aa4b7c4da aaa 2024-07-18 15:18:03 +02:00
paoloar77
892c43d0f1 aa 2024-07-18 15:09:34 +02:00
paoloar77
d2837b79cf aa 2024-07-18 15:08:27 +02:00
paoloar77
664330cd13 aaa 2024-07-18 15:07:56 +02:00
paoloar77
bb7cabe962 aa 2024-07-18 15:05:52 +02:00
paoloar77
ca8c01ed4c aa 2024-07-18 15:04:18 +02:00
paoloar77
e4700e5eed aa 2024-07-16 19:32:12 +02:00
paoloar77
b3fa2abd0f aa 2024-07-16 19:31:05 +02:00
paoloar77
8240a2d659 aa 2024-07-16 19:29:17 +02:00
paoloar77
56be10f567 aa 2024-07-16 19:27:23 +02:00
paoloar77
56642083ee aa 2024-07-16 19:25:25 +02:00
paoloar77
8db1126bb1 aa 2024-07-16 11:00:18 +02:00
paoloar77
9d3ae826ae aa 2024-07-16 10:57:31 +02:00
paoloar77
cb3a567e56 aa 2024-07-16 10:57:04 +02:00
paoloar77
c11bebeed0 aa 2024-07-16 10:55:39 +02:00
paoloar77
a672084641 aa 2024-07-16 10:53:03 +02:00
paoloar77
81668e7e29 aa 2024-07-16 10:52:33 +02:00
paoloar77
cbcba94734 aa 2024-07-16 10:48:28 +02:00
paoloar77
ef63b91ea9 aa 2024-07-16 10:32:57 +02:00
paoloar77
b2ea354975 aa 2024-07-16 10:27:40 +02:00
paoloar77
f718b842cd aa 2024-07-16 10:26:39 +02:00
paoloar77
0575425266 aggio 2024-07-11 17:19:24 +02:00
paoloar77
9163515df5 aa 2024-07-11 16:55:38 +02:00
paoloar77
4a399caaf6 aa 2024-07-11 16:48:05 +02:00
paoloar77
8c1b4460c4 aa 2024-07-11 16:40:14 +02:00
paoloar77
f12c13dd5f aa 2024-07-11 16:26:01 +02:00
paoloar77
911c3e0853 aa 2024-07-11 16:24:21 +02:00
paoloar77
44de8a64d2 aa 2024-07-11 16:14:46 +02:00
paoloar77
0f7ab9da34 aa 2024-07-11 16:07:57 +02:00
paoloar77
60631d77fe aa 2024-07-11 16:02:55 +02:00
paoloar77
109efb65e2 aa 2024-07-11 15:58:32 +02:00
paoloar77
feccee7b9c aa 2024-07-11 15:53:35 +02:00
paoloar77
a4857bc80e aa 2024-07-11 15:44:20 +02:00
paoloar77
17b9ad0001 aa 2024-07-11 15:34:34 +02:00
paoloar77
829f7f6153 aa 2024-07-11 15:31:48 +02:00
paoloar77
fd0ebfe54e aa 2024-07-11 15:29:48 +02:00
paoloar77
5c2db90c21 aa 2024-07-11 15:18:28 +02:00
paoloar77
e10a882d59 aa 2024-07-11 15:14:59 +02:00
paoloar77
40233f805e aa 2024-07-11 15:10:52 +02:00
paoloar77
ca95344bcb aa 2024-07-11 15:10:13 +02:00
paoloar77
b49048aba8 aa 2024-07-11 14:43:20 +02:00
paoloar77
0323801388 aa 2024-07-11 14:40:33 +02:00
paoloar77
cab2b51119 aa 2024-07-11 14:29:50 +02:00
paoloar77
d92fbeb9fb a 2024-07-11 14:25:12 +02:00
paoloar77
d2991e5cfe aa 2024-07-11 14:24:16 +02:00
paoloar77
14549d351d aa 2024-07-11 14:22:09 +02:00
paoloar77
1d56bedd75 aa 2024-07-11 14:12:59 +02:00
paoloar77
9d8159837e aa 2024-07-11 14:07:34 +02:00
paoloar77
163c8abd5c aa 2024-07-11 14:00:53 +02:00
paoloar77
bd65cad63f aa 2024-07-11 13:57:03 +02:00
paoloar77
49a6e44363 aa 2024-07-11 12:48:04 +02:00
paoloar77
a925a90605 newcli 2024-07-11 12:35:32 +02:00
paoloar77
6029c50d89 aa 2024-07-11 12:14:31 +02:00
paoloar77
33299e6206 aa 2024-07-11 12:05:17 +02:00
paoloar77
760b0da5fa aa 2024-07-11 12:03:08 +02:00
paoloar77
8a8e444e30 aa 2024-07-11 11:58:40 +02:00
paoloar77
ba91b1dfad aaa 2024-07-11 11:56:05 +02:00
paoloar77
3d6be4f700 add 2024-07-11 11:46:57 +02:00
paoloar77
9624eee376 agg 2024-07-11 11:22:58 +02:00
paoloar77
e0f6e0340e aggio 2024-07-11 11:04:00 +02:00
paoloar77
d342ccc9a5 aa 2024-07-08 19:58:17 +02:00
paoloar77
1f1e0afdeb fix orders 2024-07-08 19:02:00 +02:00
paoloar77
9c6a94d76b aa 2024-07-08 17:18:25 +02:00
paoloar77
4fc12d3e96 add check orders log 2024-07-08 14:41:21 +02:00
paoloar77
0b6e5f1af3 modifica per preorder da disattivare (in Vendita) 2024-07-08 12:12:24 +02:00
paoloar77
965c997d30 corretto problema sul customer, che se era a zero non andava avanti. 2024-07-02 13:50:38 +02:00
paoloar77
4a306f0c15 aa 2024-06-27 09:15:40 +02:00
paoloar77
3fd13a7afb fix errori se non esistono dei campi... 2024-06-24 19:28:51 +02:00
paoloar77
f3dffa2d11 aa 2024-06-24 14:04:30 +02:00
paoloar77
c8a66e3274 agg 2024-06-21 15:27:18 +02:00
paoloar77
cafa37c955 agg 2024-06-21 13:23:23 +02:00
paoloar77
e31decc10b data pubblicazione 2024-06-21 13:19:35 +02:00
paoloar77
da8c6f1853 fix error 2024-06-20 15:26:21 +02:00
paoloar77
04f98608c3 channel neworders 2024-06-20 14:51:50 +02:00
paoloar77
ef2d1573e5 aa1 2024-06-20 14:49:00 +02:00
paoloar77
728848c202 fix err 2024-06-20 14:18:45 +02:00
paoloar77
571a8a923d Aggiunto Log e Invio Email agli Ordini 2024-06-20 14:06:23 +02:00
paoloar77
ac3f552dfe logga il dettagli dell'ordine 2024-06-20 14:00:57 +02:00
paoloar77
7d56319173 agg 2024-06-20 09:22:18 +02:00
paoloar77
1d076d87fb aa 2024-06-19 19:10:37 +02:00
paoloar77
de23e4b4b1 aa 2024-06-19 19:09:40 +02:00
paoloar77
ae8327800f aa 2024-06-19 19:02:51 +02:00
paoloar77
ab1144c659 aa 2024-06-19 18:54:22 +02:00
paoloar77
710a7ec101 aa 2024-06-19 18:41:10 +02:00
paoloar77
d570b477a7 aggiornamento log 2024-06-19 18:40:07 +02:00
paoloar77
80c6c7518a aa 2024-06-19 18:27:34 +02:00
paoloar77
ae63616f36 aa 2024-06-19 18:19:17 +02:00
paoloar77
93d6aefc30 aa 2024-06-19 18:14:52 +02:00
paoloar77
be52a2945b aa 2024-06-19 18:08:01 +02:00
paoloar77
aef1e7665d aa 2024-06-19 18:05:37 +02:00
paoloar77
861f64d047 aa 2024-06-19 18:02:23 +02:00
paoloar77
741bd08392 aa 2024-06-19 17:59:31 +02:00
paoloar77
d7ae2aa8cc aa 2024-06-19 17:57:01 +02:00
paoloar77
cfedb20cf5 aa 2024-06-19 17:51:30 +02:00
paoloar77
5eb6c08975 aa 2024-06-19 17:49:44 +02:00
paoloar77
f6c6cf6448 aa 2024-06-19 16:40:36 +02:00
paoloar77
4b3e1f0233 aa 2024-06-19 10:43:09 +02:00
paoloar77
44f3bd3f5f aa 2024-06-19 10:10:19 +02:00
paoloar77
e8410b0cf8 sched 2024-06-19 10:06:01 +02:00
paoloar77
73bf0d22f3 schedule 2024-06-18 18:00:06 +02:00
paoloar77
2d87f80878 aa 2024-06-18 11:31:52 +02:00
paoloar77
886366c587 aa 2024-06-18 10:15:33 +02:00
paoloar77
61f99bf3e4 aa 2024-06-18 10:13:49 +02:00
paoloar77
94e8da2f89 aa 2024-06-18 10:04:24 +02:00
paoloar77
7f43ac18b5 aa 2024-06-18 10:03:19 +02:00
paoloar77
ff5d57075c aa 2024-06-18 09:59:13 +02:00
paoloar77
561fe8e3e5 aa 2024-06-18 09:58:01 +02:00
paoloar77
1185df5769 aa 2024-06-18 09:49:25 +02:00
paoloar77
bab1bd79ba aa 2024-06-18 09:46:45 +02:00
paoloar77
00b7f61cab aa 2024-06-18 09:34:51 +02:00
paoloar77
fa40de1340 aa 2024-06-18 09:33:44 +02:00
paoloar77
bffa4ce00d aa 2024-06-18 09:31:18 +02:00
paoloar77
d492b76d8f a 2024-06-18 09:27:55 +02:00
paoloar77
758afe83a0 aa 2024-06-18 09:16:53 +02:00
paoloar77
b7ff7aed82 aa 2024-06-18 09:13:55 +02:00
paoloar77
71a52093bd link "non disponibile" 2024-06-18 09:13:43 +02:00
paoloar77
01e158edac aa 2024-06-17 16:03:27 +02:00
paoloar77
e43df1496c aa 2024-06-17 16:01:10 +02:00
paoloar77
097715de71 aa 2024-06-17 16:00:43 +02:00
paoloar77
97ebf5331e aa 2024-06-17 15:58:00 +02:00
paoloar77
60ec6d512e agg 2024-06-17 15:38:36 +02:00
paoloar77
5514de2f82 aa 2024-06-17 15:33:19 +02:00
paoloar77
24ec5dc21b aa 2024-06-17 15:30:06 +02:00
paoloar77
d45ad25e06 aa 2024-06-17 15:27:42 +02:00
paoloar77
c94330cadd aa 2024-06-17 15:26:21 +02:00
paoloar77
846e569f32 aa 2024-06-17 15:25:32 +02:00
paoloar77
e201146b7d aa 2024-06-17 15:24:48 +02:00
paoloar77
865c0b8b9e aa 2024-06-17 15:21:54 +02:00
paoloar77
41c108d1d2 aa 2024-06-17 15:10:43 +02:00
paoloar77
0dd72f04a0 aa 2024-06-17 15:09:49 +02:00
paoloar77
752599bde5 aa 2024-06-17 14:52:04 +02:00
paoloar77
44e72306ba aa 2024-06-17 14:51:17 +02:00
paoloar77
4d2495ec23 AGG 2024-06-17 14:49:54 +02:00
paoloar77
499f359c6e aa 2024-06-17 14:43:25 +02:00
paoloar77
25c1b0ebb9 aggiunto bottone "Aggiorna Articolo da GM". 2024-06-17 14:41:58 +02:00
paoloar77
f14ca4a031 aggiornamento qta 2024-06-15 21:29:12 +02:00
paoloar77
34aa2b26ef corretto, era il DB che avevo cancellato l'utente dove era salvata la chiave... 2024-06-15 18:29:22 +02:00
paoloar77
1824f30a94 aa 2024-06-15 17:32:36 +02:00
paoloar77
0382fd15ab aa 2024-06-15 17:32:00 +02:00
paoloar77
89e0bdb153 aa 2024-06-15 17:28:29 +02:00
paoloar77
fe6fc93da6 aa 2024-06-15 17:17:46 +02:00
paoloar77
8d8fa1d024 aa 2024-06-15 17:16:16 +02:00
paoloar77
65ffbb7076 aa 2024-06-15 17:15:42 +02:00
paoloar77
2e27f28607 aa 2024-06-15 17:05:38 +02:00
paoloar77
1751a0e718 aa 2024-06-15 17:05:04 +02:00
paoloar77
861d7b473e aa 2024-06-15 17:02:14 +02:00
paoloar77
0b7d2d4dca aa 2024-06-15 17:01:13 +02:00
paoloar77
0a8dfa73ee aa 2024-06-15 17:00:17 +02:00
paoloar77
c90b12aef6 AA 2024-06-15 16:29:05 +02:00
paoloar77
8feca4652b aa 2024-06-15 15:53:38 +02:00
paoloar77
05e6e7113a aa 2024-06-15 15:50:48 +02:00
paoloar77
bcd72f544e aa 2024-06-15 15:49:57 +02:00
paoloar77
f903d2c7ad aa 2024-06-15 15:49:11 +02:00
paoloar77
c5d22f24ac aa 2024-06-13 15:04:02 +02:00
paoloar77
0fd3e067e4 aa 2024-06-13 15:03:16 +02:00
paoloar77
cb3eb3e5ca aa 2024-06-13 14:59:09 +02:00
paoloar77
7282d22b5a link 2024-06-13 14:57:46 +02:00
paoloar77
9641943abd aa 2024-06-13 14:54:40 +02:00
paoloar77
5ba85587e9 aa 2024-06-13 14:53:03 +02:00
paoloar77
041e1c1287 aa 2024-06-13 14:51:42 +02:00
paoloar77
d102d6badd aa 2024-06-13 14:49:48 +02:00
paoloar77
066953c7c3 aaa 2024-06-13 14:48:57 +02:00
paoloar77
7600fbf2dc aa 2024-06-13 14:46:49 +02:00
paoloar77
3b078253db st 2024-06-13 14:41:27 +02:00
paoloar77
691df7f931 aa 2024-06-13 14:38:48 +02:00
paoloar77
cdd053a624 aa 2024-06-13 14:36:21 +02:00
paoloar77
6a5b237bf6 aa 2024-06-13 14:34:31 +02:00
paoloar77
c6a7bf9102 aa 2024-06-13 14:21:47 +02:00
paoloar77
6c3f2fb9ae aa 2024-06-13 14:16:18 +02:00
paoloar77
c33d1d3573 aa 2024-06-13 14:15:54 +02:00
paoloar77
5ddd43411e aa 2024-06-13 14:15:30 +02:00
paoloar77
38e5e554a3 aa 2024-06-13 14:14:53 +02:00
paoloar77
2216d5435a aa 2024-06-13 14:13:09 +02:00
paoloar77
bdfb700c9d aa 2024-06-13 14:11:38 +02:00
paoloar77
e9635e22a7 agg 2024-06-13 13:58:47 +02:00
paoloar77
e64ab21835 dd 2024-06-13 13:48:31 +02:00
paoloar77
fe56a63d0a data 2024-06-13 13:46:08 +02:00
paoloar77
838a3252dc brossura tolto 2024-06-13 13:42:59 +02:00
paoloar77
8396110d2e date 2024-06-13 13:38:58 +02:00
paoloar77
e6caa57281 color 2024-06-13 13:37:52 +02:00
paoloar77
b51fa906ca data 2024-06-13 13:33:02 +02:00
paoloar77
186877b9ba DescrizioneTipologia: Libri
tolto il filtro... cosi mostra anche i 4D
2024-06-13 13:30:51 +02:00
paoloar77
4b47528ee5 aa 2024-06-13 12:47:31 +02:00
paoloar77
d1f8d3fbe0 aaa 2024-06-13 12:46:33 +02:00
paoloar77
c53543f8d7 aa 2024-06-13 10:30:17 +02:00
paoloar77
967408c39b aa 2024-06-13 10:08:53 +02:00
paoloar77
6f2ee60f4b aa 2024-06-13 10:08:26 +02:00
paoloar77
829c8c64cd aa 2024-06-13 10:06:11 +02:00
paoloar77
41ac862eb6 aa 2024-06-13 10:05:23 +02:00
paoloar77
24b77a2b99 aa 2024-06-13 10:03:33 +02:00
paoloar77
d8b017f188 aa 2024-06-13 10:02:29 +02:00
paoloar77
d85ba67350 aaa 2024-06-13 10:02:11 +02:00
paoloar77
62d4d75201 aa 2024-06-13 09:59:24 +02:00
paoloar77
03f072d03b aa 2024-06-13 09:54:16 +02:00
paoloar77
cfe41c93c5 aa 2024-06-13 09:47:24 +02:00
paoloar77
1a11c06c7d aa 2024-06-13 09:31:34 +02:00
paoloar77
249445766e aa 2024-06-13 09:29:35 +02:00
paoloar77
24004e282e aa 2024-06-13 09:28:52 +02:00
paoloar77
c36c900077 aa 2024-06-13 09:28:10 +02:00
paoloar77
3d11f604a9 aa 2024-06-13 09:26:58 +02:00
paoloar77
af9f5a2af2 aa 2024-06-13 09:26:18 +02:00
paoloar77
7d6578e210 aa 2024-06-13 09:25:54 +02:00
paoloar77
12202b8241 aa 2024-06-13 09:22:17 +02:00
paoloar77
48130917c2 aaa 2024-06-13 09:20:47 +02:00
paoloar77
f2f39b6ace aaa 2024-06-13 09:18:45 +02:00
paoloar77
78d957cea5 aa 2024-06-13 09:16:07 +02:00
paoloar77
46267efe74 aa 2024-06-13 09:15:49 +02:00
paoloar77
dfa1e73135 aa 2024-06-13 09:15:12 +02:00
paoloar77
758ff1fd1c aa 2024-06-13 09:13:40 +02:00
paoloar77
04b485d19c aa 2024-06-13 09:13:17 +02:00
paoloar77
79ae9c1573 aa 2024-06-13 09:11:24 +02:00
paoloar77
94b65b3737 aa 2024-06-13 09:10:48 +02:00
paoloar77
a569040149 aa 2024-06-13 09:10:36 +02:00
paoloar77
6f38988eb9 aa 2024-06-13 09:09:40 +02:00
paoloar77
8ee685e4a5 aa 2024-06-13 09:08:18 +02:00
paoloar77
0ee373b2ce aa 2024-06-13 09:06:26 +02:00
paoloar77
552bd169ee aa 2024-06-13 09:04:07 +02:00
paoloar77
8bbe34fd0d aa 2024-06-13 09:00:40 +02:00
paoloar77
86045b39dc aa 2024-06-13 08:59:39 +02:00
paoloar77
367baa2673 aa 2024-06-13 08:58:34 +02:00
paoloar77
ce8a68a727 aa 2024-06-13 08:57:58 +02:00
paoloar77
72bdca9cf2 aa 2024-06-13 08:55:42 +02:00
paoloar77
fd4daa0785 ordini 2024-05-22 14:29:58 +02:00
paoloar77
309892c7fb ordini view 2024-05-22 14:27:32 +02:00
paoloar77
01f90df918 aa 2024-05-21 01:24:02 +02:00
paoloar77
3153c155f8 aa 2024-05-21 01:22:23 +02:00
paoloar77
e44cec7aa3 aa 2024-05-21 01:19:56 +02:00
paoloar77
b08ba09c78 aa 2024-05-21 01:18:26 +02:00
paoloar77
210806f35c aa 2024-05-21 01:13:48 +02:00
paoloar77
39a5c120b8 aa 2024-05-21 01:13:05 +02:00
paoloar77
be3c830afe aa 2024-05-21 01:11:16 +02:00
paoloar77
3d72295adb aa 2024-05-21 01:08:30 +02:00
paoloar77
65aac0a2c5 aa 2024-05-21 01:06:25 +02:00
paoloar77
387ebe6e8b aa 2024-05-21 01:03:36 +02:00
paoloar77
f88292dd34 aa 2024-05-21 00:55:34 +02:00
paoloar77
c0129fde10 aa 2024-05-21 00:48:38 +02:00
paoloar77
8f8cc98620 aa 2024-05-21 00:44:43 +02:00
paoloar77
f1fd2e51fe aa 2024-05-21 00:42:31 +02:00
paoloar77
4e3184c0f1 aa 2024-05-21 00:33:50 +02:00
paoloar77
98c23ed2c6 aa 2024-05-21 00:24:22 +02:00
paoloar77
5476198a1b aa 2024-05-21 00:23:34 +02:00
paoloar77
fb687d0c4c aa 2024-05-21 00:21:57 +02:00
paoloar77
f0e7a862b3 aa 2024-05-21 00:21:20 +02:00
paoloar77
d878174cae aa 2024-05-20 23:52:36 +02:00
paoloar77
efd137697f aa 2024-05-20 23:51:58 +02:00
paoloar77
401b0d1e14 aa 2024-05-20 23:46:45 +02:00
paoloar77
a72b9a9fe0 aa 2024-05-20 23:46:21 +02:00
paoloar77
43e28a148a aa 2024-05-20 23:43:17 +02:00
paoloar77
58e7c61a76 aa 2024-05-20 23:41:44 +02:00
paoloar77
f9d362bad9 aa 2024-05-20 23:41:03 +02:00
paoloar77
0b9f448fee aa 2024-05-20 23:40:28 +02:00
paoloar77
0247b93466 aa 2024-05-20 23:38:06 +02:00
paoloar77
764f906d2b aa 2024-05-20 23:35:38 +02:00
paoloar77
9af652d62c aa 2024-05-20 23:34:53 +02:00
paoloar77
95e0ace09f aa 2024-05-20 23:33:00 +02:00
paoloar77
7faad73d8d aa 2024-05-20 23:31:16 +02:00
paoloar77
3e6c059356 aa 2024-05-20 23:30:10 +02:00
paoloar77
bca703a4f5 aa 2024-05-20 23:28:26 +02:00
paoloar77
41320b5b36 aa 2024-05-20 23:26:30 +02:00
paoloar77
4e95f7fef1 aa 2024-05-20 23:22:38 +02:00
paoloar77
0b788c21b5 aa 2024-05-20 23:20:37 +02:00
paoloar77
8afbfff154 a 2024-05-20 23:15:09 +02:00
paoloar77
43bddcaada links menu 2024-05-20 22:57:08 +02:00
paoloar77
abca889fc0 aa 2024-05-20 08:38:48 +02:00
paoloar77
7ea01d7b35 log 2024-05-20 01:30:53 +02:00
paoloar77
024144a942 aggiorna quantita in base se è in prevendita 2024-05-20 01:23:47 +02:00
paoloar77
a983293991 aa 2024-05-20 00:43:32 +02:00
paoloar77
da69735eda aa 2024-05-20 00:39:47 +02:00
paoloar77
b3ceb38b85 aa 2024-05-20 00:39:08 +02:00
paoloar77
6436fc04c8 aa 2024-05-20 00:38:32 +02:00
paoloar77
e68d461b1b aa 2024-05-20 00:37:52 +02:00
paoloar77
82c40bc5e0 aa 2024-05-20 00:36:57 +02:00
paoloar77
829d274db2 aa 2024-05-20 00:35:42 +02:00
paoloar77
03fa01a1bb aa 2024-05-20 00:31:52 +02:00
paoloar77
ae36a4a2c1 a 2024-05-20 00:29:00 +02:00
paoloar77
dd707f446f aa 2024-05-20 00:26:10 +02:00
paoloar77
954b5f46ab aa 2024-05-19 22:51:28 +02:00
paoloar77
5707ad0fe2 tt 2024-05-19 17:45:20 +02:00
paoloar77
9959248cc9 tt 2024-05-19 17:44:08 +02:00
paoloar77
d8d1b4e8a8 tt 2024-05-19 17:43:25 +02:00
paoloar77
e3c3d3889f tt 2024-05-19 17:41:22 +02:00
paoloar77
5b3fbc27b8 tt 2024-05-19 17:40:46 +02:00
paoloar77
b665cd4ba6 tt 2024-05-19 17:39:17 +02:00
paoloar77
4504d81a61 tt 2024-05-19 17:37:17 +02:00
paoloar77
1583700dec a 2024-05-19 17:34:07 +02:00
paoloar77
3ff6351bbd tt 2024-05-19 17:33:40 +02:00
paoloar77
8af594ff7b t 2024-05-19 17:32:41 +02:00
paoloar77
fb0d20449c tt 2024-05-19 16:58:44 +02:00
paoloar77
8cebb0e978 tt 2024-05-19 16:56:37 +02:00
paoloar77
b41e42ed0a te 2024-05-19 16:48:16 +02:00
paoloar77
9569e9273a test 2024-05-19 16:42:52 +02:00
paoloar77
3a38c0fb16 t 2024-05-19 16:39:53 +02:00
paoloar77
e69f9d4b84 test 2024-05-19 16:38:34 +02:00
paoloar77
97699d9f54 test 2024-05-19 16:34:34 +02:00
paoloar77
5488460e3d tt 2024-05-19 16:31:05 +02:00
paoloar77
ad49e1382b tt 2024-05-19 16:28:22 +02:00
paoloar77
3fe5064991 test 2024-05-19 16:27:15 +02:00
paoloar77
b95667d8b0 t 2024-05-19 16:25:46 +02:00
paoloar77
35b6980b44 test 2024-05-19 16:24:23 +02:00
paoloar77
b7e1a5458c test 2024-05-19 16:21:30 +02:00
paoloar77
479ec7ed34 test 2024-05-19 13:29:01 +02:00
paoloar77
5dd1113f52 test 2024-05-19 13:28:08 +02:00
paoloar77
00d3ae6d55 tt 2024-05-19 13:27:51 +02:00
paoloar77
9a3fc450f0 aa 2024-05-19 13:27:18 +02:00
paoloar77
09b661e4fe preorder 2024-05-19 13:24:00 +02:00
paoloar77
f5c88ec54d tesst 2024-05-19 13:14:42 +02:00
paoloar77
d7de52814d test 2024-05-19 13:13:42 +02:00
paoloar77
e83b7d213e test 2024-05-19 13:11:57 +02:00
paoloar77
23c08749a0 test 2024-05-19 13:09:19 +02:00
paoloar77
86d8402954 test 2024-05-19 13:08:41 +02:00
paoloar77
2f69a4f182 test 2024-05-19 13:07:48 +02:00
paoloar77
efdd9a098c test 2024-05-19 13:06:17 +02:00
paoloar77
62153977b4 t 2024-05-19 12:54:37 +02:00
paoloar77
bfde61db35 t 2024-05-19 12:53:34 +02:00
paoloar77
85359d314b t 2024-05-19 12:51:38 +02:00
paoloar77
19bb990f5b preorder 2024-05-19 12:49:27 +02:00
paoloar77
f6cac2e839 test 2024-05-19 12:19:07 +02:00
paoloar77
f804828edc t 2024-05-18 20:19:16 +02:00
paoloar77
18d956fc87 aa 2024-05-18 20:16:16 +02:00
paoloar77
f4bf1f5911 te 2024-05-18 20:09:58 +02:00
paoloar77
303a1269a7 test 2024-05-18 20:08:48 +02:00
paoloar77
06b0a02168 test 2024-05-18 20:06:56 +02:00
paoloar77
e3b0517f93 te 2024-05-18 20:05:57 +02:00
paoloar77
c00feb1ef9 preorder 2024-05-18 19:57:39 +02:00
paoloar77
8775422afc test 2024-05-18 19:53:17 +02:00
paoloar77
31326323c9 test 2024-05-18 19:51:00 +02:00
paoloar77
d9d66c705e test 2024-05-18 19:47:19 +02:00
paoloar77
9e8755a627 test 2024-05-18 19:45:22 +02:00
paoloar77
c02dd863a1 test 2024-05-18 19:42:16 +02:00
paoloar77
fc4d0d3924 test 2024-05-18 19:36:09 +02:00
paoloar77
242114a120 t 2024-05-18 19:32:32 +02:00
paoloar77
574c94e9e8 tt 2024-05-18 19:31:53 +02:00
paoloar77
d8cee832c2 test 2024-05-18 19:30:42 +02:00
paoloar77
b773805b60 test 2024-05-18 19:22:27 +02:00
paoloar77
7d38d99ac1 preorder 2024-05-18 19:21:06 +02:00
paoloar77
1d0aa56569 test 2024-05-18 19:10:50 +02:00
paoloar77
9efa712761 test 2024-05-18 19:08:53 +02:00
paoloar77
63f0febaff test 2024-05-18 19:07:51 +02:00
paoloar77
a62b8ff112 tet 2024-05-18 19:06:46 +02:00
paoloar77
627b50038e test 2024-05-18 19:05:13 +02:00
paoloar77
319153f125 test 2024-05-18 19:01:12 +02:00
paoloar77
501809f74a test 2024-05-18 18:58:38 +02:00
paoloar77
8c88310cad tt 2024-05-18 17:56:17 +02:00
paoloar77
45dfb6af0e t 2024-05-18 17:55:10 +02:00
paoloar77
5952b5530b tt 2024-05-18 17:54:04 +02:00
paoloar77
4fd4a46a09 t 2024-05-18 17:51:25 +02:00
paoloar77
9545c9ee43 t 2024-05-18 17:50:31 +02:00
paoloar77
38b41b6fe4 t 2024-05-18 17:49:31 +02:00
paoloar77
1b07b62e85 t 2024-05-18 17:37:12 +02:00
paoloar77
8eb99ef9f1 t 2024-05-18 17:33:25 +02:00
paoloar77
59d1812c36 t 2024-05-18 17:32:38 +02:00
paoloar77
761fa1ec49 test 2024-05-18 17:31:45 +02:00
paoloar77
e93e1f06ab t 2024-05-18 17:29:56 +02:00
paoloar77
ff3e978209 tt 2024-05-18 17:29:03 +02:00
paoloar77
2c30a953b7 tt 2024-05-18 17:27:19 +02:00
paoloar77
13d8f34c5f t 2024-05-18 17:25:37 +02:00
paoloar77
550e4f085c variations 2024-05-18 17:24:49 +02:00
paoloar77
679fd174f0 db 2024-05-18 15:29:52 +02:00
paoloar77
81a90fdda7 PostMeta 2024-05-18 15:27:12 +02:00
paoloar77
6746cfec48 test 2024-05-18 13:45:55 +02:00
paoloar77
73e6e6f612 test 2024-05-18 13:36:53 +02:00
paoloar77
2bf5d24cf5 test 2024-05-18 13:35:05 +02:00
paoloar77
ec1c587556 test 2024-05-18 13:32:43 +02:00
paoloar77
fd4495cd63 update 2024-05-18 13:31:44 +02:00
paoloar77
575afc090a test 2024-05-18 13:16:38 +02:00
paoloar77
60ab435ac1 tt 2024-05-17 19:17:10 +02:00
paoloar77
60735c9658 tt 2024-05-17 19:16:11 +02:00
paoloar77
abe84bcd01 tt 2024-05-17 19:15:34 +02:00
paoloar77
d4acaa6ddb postmeta 2024-05-17 19:14:44 +02:00
paoloar77
5943ef969e tt 2024-05-17 19:13:30 +02:00
paoloar77
7cb43e1a20 tt 2024-05-17 19:13:00 +02:00
paoloar77
18de78ce93 tt 2024-05-17 19:10:21 +02:00
paoloar77
23f5fcd25c tt 2024-05-17 19:04:42 +02:00
paoloar77
4efadb137f test 2024-05-17 19:03:52 +02:00
paoloar77
17f3d02c64 aggiornapreorder test 2024-05-17 19:01:40 +02:00
Paolo A
f48954f32d Aggiunta modif 2024-05-17 12:37:37 +00:00
paoloar77
046487062c startday 2024-05-17 14:37:13 +02:00
Paolo A
a64db56f6b Aggiunta modif 2024-05-17 12:35:44 +00:00
paoloar77
1b77e57224 startday 2024-05-17 14:34:41 +02:00
paoloar77
21e590a301 git 2024-05-17 14:28:58 +02:00
Paolo A
6f83b4b68c Aggiunta tutte le modifiche 2024-05-17 12:26:02 +00:00
Paolo A
ec201d75b2 Aggiornato Composer 2024-05-17 12:24:19 +00:00
paoloar77
7c5e892ead test 2024-05-17 14:16:13 +02:00
paoloar77
0fbf20deb9 test 2024-05-17 14:04:45 +02:00
paoloar77
4ac62108b5 test 2024-05-17 14:01:27 +02:00
paoloar77
197509e8f1 test 2024-05-17 13:56:29 +02:00
paoloar77
6086868f22 test 2024-05-17 13:46:34 +02:00
paoloar77
b8d8ff0f51 test 2024-05-17 13:43:34 +02:00
paoloar77
37cc797f2f sched 2024-05-17 13:29:49 +02:00
paoloar77
a68547ec00 sched 2024-05-17 13:26:14 +02:00
paoloar77
64f2935058 sched 2024-05-17 13:08:55 +02:00
paoloar77
fd62bb9f86 test 2024-05-17 12:35:07 +02:00
paoloar77
5a0423e73c tesst 2024-05-17 12:30:09 +02:00
paoloar77
c4c9ee6f95 t 2024-05-17 12:28:02 +02:00
paoloar77
529128dc1a t 2024-05-17 12:27:32 +02:00
paoloar77
53abcd9d34 t 2024-05-17 12:26:56 +02:00
paoloar77
54ad5e8863 test 2024-05-17 12:26:08 +02:00
paoloar77
ada35fd5b3 test 2024-05-17 12:24:50 +02:00
paoloar77
788a25a74c test 2024-05-17 12:24:14 +02:00
paoloar77
1a008371ef test 2024-05-17 12:22:52 +02:00
paoloar77
30f5312e66 test 2024-05-17 12:21:35 +02:00
paoloar77
97edb40bee test 2024-05-17 11:04:11 +02:00
paoloar77
64e4de6a6a test 2024-05-17 10:39:36 +02:00
paoloar77
b0f9d83dca schedule 2024-05-17 10:36:21 +02:00
paoloar77
a00255d769 agg 2024-05-16 22:35:49 +02:00
paoloar77
caec2d70f5 8.0 2024-05-16 22:32:15 +02:00
paoloar77
5ab0793d98 versione 8.0 usata di default 2024-05-16 20:02:20 +02:00
paoloar77
1f04085006 testpao controller 2024-05-16 19:27:26 +02:00
paoloar77
0ce4a72e9d log... 2024-05-14 23:45:21 +02:00
paoloar77
2ac051eedb log 2024-05-14 19:22:21 +02:00
paoloar77
0a97b7fe3b log 2024-05-14 18:10:44 +02:00
paoloar77
dcf29f114b log 2024-05-14 17:54:41 +02:00
paoloar77
0ce8a96097 log 2024-05-13 19:30:49 +02:00
paoloar77
6796bcfcc4 log 2024-05-13 19:14:56 +02:00
paoloar77
6454d1b8ca log 2024-05-13 19:09:22 +02:00
paoloar77
ced0015046 cambiata email 2024-05-13 18:44:29 +02:00
paoloar77
8e5e9008e4 invio alla nostra email 2024-05-11 02:24:33 +02:00
paoloar77
e36f1bd0c4 email da inviare quando esegue l'operazione 2024-05-11 01:59:05 +02:00
Paolo A
b7139981ba pippo 2024-05-10 23:25:09 +00:00
Paolo A
6dff459d4a Env 2024-05-10 22:42:55 +00:00
Paolo A
6fbfc69558 Primo 2 2024-05-10 22:31:47 +00:00
5273 changed files with 72832 additions and 105234 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

View File

@@ -2,10 +2,10 @@ root = true
[*]
charset = utf-8
indent_size = 4
indent_style = space
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 4
trim_trailing_whitespace = true
[*.md]

90
.env Normal file
View File

@@ -0,0 +1,90 @@
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:In/xUaJmPeC1fPpefXi5jV14aHoyjaxVUgqGpJIobf4=
APP_DEBUG=true
APP_URL=http://apimacro.test
LOG_CHANNEL=daily
LOG_LEVEL=debug
DB_CONNECTION=sqlsrv
DB_HOST=31.3.180.50
DB_PORT=14338
DB_DATABASE=ANAG_MACRO
DB_USERNAME=woo
DB_PASSWORD=4n4traPe@
DB_ENCRYPT=no
DB_TRUST_SERVER_CERTIFICATE=no
#DB_CONNECTION=sqlsrv
DB_HOST_SQLSRVTEST=31.3.180.50
DB_PORT_SQLSRVTEST=14338
DB_DATABASE_SQLSRVTEST=ANAG_MACRO
DB_USERNAME_SQLSRVTEST=woo
DB_PASSWORD_SQLSRVTEST=4n4traPe@
DB_DATABASE_MYSQL=nimaia
DB_USERNAME_MYSQL=vps_macro
DB_PASSWORD_MYSQL=234ffGT-
DB_DATABASE_MYSQL1=test_order
DB_USERNAME_MYSQL1=vps_macro
DB_PASSWORD_MYSQL1=234ffGT-
DB_DATABASE_MYSQL2=appoggio
BROADCAST_DRIVER=log
CACHE_DRIVER=file
FILESYSTEM_DRIVER=local
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
MEMCACHED_HOST=127.0.0.1
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
#MAIL_MAILER=sendmail
MAIL_MAILER=smtp
MAIL_HOST=smtps.aruba.it
MAIL_PORT=465
MAIL_USERNAME=log@fioredellavita.it
MAIL_PASSWORD=Server@22
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=log@fioredellavita.it
MAIL_FROM_NAME="Fiore della Vita"
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
AWS_USE_PATH_STYLE_ENDPOINT=false
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
WORDPRESS_HOST="fioredellavitait.mydb-aruba.it"
WORDPRESS_port="3306"
WORDPRESS_DBNAME="Swp1583057-prod"
WORDPRESS_USER="Swp1583057"
WORDPRESS_PWD="7826702z21"
WOOCOMMERCE_STORE_URL=https://www.fioredellavita.it/
#WOOCOMMERCE_STORE_URL=https://staging.fioredellavita.it/
#OLD_WOOCOMMERCE_CONSUMER_KEY=ck_311bcafeda40fbfc2f6d4201c04274bd4584efdc
#OLD_WOOCOMMERCE_CONSUMER_SECRET=cs_58d4c50f13eab05978ae6ca519b6ae434acf98e1
WOOCOMMERCE_CONSUMER_KEY=ck_6ea08b2d1cd16883e8ec19f7ce31fc465e7cdec3
WOOCOMMERCE_CONSUMER_SECRET=cs_c21f786163f49a3853e1c4e95d46e1d0f15761cd
WOOCOMMERCE_WP_HEADER_TOTAL=x-wp-total
WOOCOMMERCE_WP_HEADER_TOTAL_PAGES=x-wp-totalpages
WOOCOMMERCE_TIMEOUT=0
API_KEY_MSSQL="m68yADSr123MIVIDA@154$DSAGVOK"

46
.env.example Normal file
View File

@@ -0,0 +1,46 @@
APP_NAME=Laravel
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

80
.env_prod Normal file
View File

@@ -0,0 +1,80 @@
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:In/xUaJmPeC1fPpefXi5jV14aHoyjaxVUgqGpJIobf4=
APP_DEBUG=true
APP_URL=http://apimacro.test
LOG_CHANNEL=daily
LOG_LEVEL=debug
DB_CONNECTION=sqlsrv
DB_HOST=31.3.180.50
DB_PORT=14338
DB_DATABASE=ANAG_MACRO
DB_USERNAME=woo
DB_PASSWORD=4n4traPe@
DB_OPTIONS='{"Encrypt": true, "TrustServerCertificate": true}'
#DB_CONNECTION=sqlsrv
DB_HOST_SQLSRVTEST=31.3.180.50
DB_PORT_SQLSRVTEST=14338
DB_DATABASE_SQLSRVTEST=ANAG_MACRO
DB_USERNAME_SQLSRVTEST=woo
DB_PASSWORD_SQLSRVTEST=4n4traPe@
DB_DATABASE_MYSQL=nimaia
DB_USERNAME_MYSQL=vps_macro
DB_PASSWORD_MYSQL=234ffGT-
DB_DATABASE_MYSQL1=test_order
DB_USERNAME_MYSQL1=vps_macro
DB_PASSWORD_MYSQL1=234ffGT-
DB_DATABASE_MYSQL2=appoggio
BROADCAST_DRIVER=log
CACHE_DRIVER=file
FILESYSTEM_DRIVER=local
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
MEMCACHED_HOST=127.0.0.1
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
#MAIL_MAILER=sendmail
MAIL_MAILER=smtp
MAIL_HOST=smtps.aruba.it
MAIL_PORT=465
MAIL_USERNAME=log@fioredellavita.it
MAIL_PASSWORD=Server@22
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=log@fioredellavita.it
MAIL_FROM_NAME="Fiore della Vita"
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
AWS_USE_PATH_STYLE_ENDPOINT=false
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
WOOCOMMERCE_STORE_URL=https://www.fioredellavita.it/
#WOOCOMMERCE_STORE_URL=https://staging.fioredellavita.it/
WOOCOMMERCE_CONSUMER_KEY=ck_6ea08b2d1cd16883e8ec19f7ce31fc465e7cdec3
WOOCOMMERCE_CONSUMER_SECRET=cs_c21f786163f49a3853e1c4e95d46e1d0f15761cd
WOOCOMMERCE_WP_HEADER_TOTAL=x-wp-total
WOOCOMMERCE_WP_HEADER_TOTAL_PAGES=x-wp-totalpages
WOOCOMMERCE_TIMEOUT=0

5
.gitattributes vendored Normal file
View File

@@ -0,0 +1,5 @@
* text=auto
*.css linguist-vendored
*.scss linguist-vendored
*.js linguist-vendored
CHANGELOG.md export-ignore

22
.gitignore vendored Normal file
View File

@@ -0,0 +1,22 @@
/node_modules
/public/hot
/public/storage
/storage/*.key
/storage/logs/*
/vendor
.env.backup
.phpunit.result.cache
Homestead.json
Homestead.yaml
npm-debug.log
yarn-error.log
*.zip
tests/.DS_Store
resources/.DS_Store
storage/.DS_Store
database/.DS_Store
app/.DS_Store
.DS_Store
.DS_Store
DEADJOE
composer.lock

2
.htaccess Normal file
View File

@@ -0,0 +1,2 @@
AddHandler application/x-httpd-php82 .php

13
.styleci.yml Normal file
View File

@@ -0,0 +1,13 @@
php:
preset: laravel
disabled:
- unused_use
finder:
not-name:
- index.php
- server.php
js:
finder:
not-name:
- webpack.mix.js
css: true

42
DEADJOE Executable file
View File

@@ -0,0 +1,42 @@
*** These modified files were found in JOE when it aborted on Fri May 10 17:33:06 2024
*** JOE was aborted because the terminal closed
*** File '(Unnamed)'
q
*** File '(Unnamed)'
/var/www/html/apimacro/.git/COMMIT_EDITMSG
*** File '/var/www/html/apimacro/.git/COMMIT_EDITMSG'
# Please enterq!:Qq theqqqq commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# Committer: root <root@vps-88271abb.vps.ovh.net>
#
# On branch produzione
# Your branch is up to date with 'origin/produzione'.
#
# Changes to be committed:
# modified: app/Console/Commands/ProductUpdateGm.php
# modified: app/Console/Commands/ProductUpdateUsedGm.php
# modified: routes/web.php
# modified: server.php
#
# Untracked files:
# .editorconfig
# .env.example
# .gitattributes
# .gitignore
# .styleci.yml
# README.md
# storage/
#
:q!
*** File '* Startup Log *'
Processing '/etc/joe/editorrc'...
Processing '/etc/joe/ftyperc'...
Finished processing /etc/joe/ftyperc
Finished processing /etc/joe/editorrc

61
README.md Executable file
View File

@@ -0,0 +1,61 @@
<p align="center"><a href="https://laravel.com" target="_blank"><img src="https://raw.githubusercontent.com/laravel/art/master/logo-lockup/5%20SVG/2%20CMYK/1%20Full%20Color/laravel-logolockup-cmyk-red.svg" width="400"></a></p>
<p align="center">
<a href="https://travis-ci.org/laravel/framework"><img src="https://travis-ci.org/laravel/framework.svg" alt="Build Status"></a>
<a href="https://packagist.org/packages/laravel/framework"><img src="https://poser.pugx.org/laravel/framework/d/total.svg" alt="Total Downloads"></a>
<a href="https://packagist.org/packages/laravel/framework"><img src="https://poser.pugx.org/laravel/framework/v/stable.svg" alt="Latest Stable Version"></a>
<a href="https://packagist.org/packages/laravel/framework"><img src="https://poser.pugx.org/laravel/framework/license.svg" alt="License"></a>
</p>
## About Laravel
Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel takes the pain out of development by easing common tasks used in many web projects, such as:
- [Simple, fast routing engine](https://laravel.com/docs/routing).
- [Powerful dependency injection container](https://laravel.com/docs/container).
- Multiple back-ends for [session](https://laravel.com/docs/session) and [cache](https://laravel.com/docs/cache) storage.
- Expressive, intuitive [database ORM](https://laravel.com/docs/eloquent).
- Database agnostic [schema migrations](https://laravel.com/docs/migrations).
- [Robust background job processing](https://laravel.com/docs/queues).
- [Real-time event broadcasting](https://laravel.com/docs/broadcasting).
Laravel is accessible, powerful, and provides tools required for large, robust applications.
## Learning Laravel
Laravel has the most extensive and thorough [documentation](https://laravel.com/docs) and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework.
If you don't feel like reading, [Laracasts](https://laracasts.com) can help. Laracasts contains over 1500 video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into our comprehensive video library.
## Laravel Sponsors
We would like to extend our thanks to the following sponsors for funding Laravel development. If you are interested in becoming a sponsor, please visit the Laravel [Patreon page](https://patreon.com/taylorotwell).
### Premium Partners
- **[Vehikl](https://vehikl.com/)**
- **[Tighten Co.](https://tighten.co)**
- **[Kirschbaum Development Group](https://kirschbaumdevelopment.com)**
- **[64 Robots](https://64robots.com)**
- **[Cubet Techno Labs](https://cubettech.com)**
- **[Cyber-Duck](https://cyber-duck.co.uk)**
- **[Many](https://www.many.co.uk)**
- **[Webdock, Fast VPS Hosting](https://www.webdock.io/en)**
- **[DevSquad](https://devsquad.com)**
- **[OP.GG](https://op.gg)**
## Contributing
Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](https://laravel.com/docs/contributions).
## Code of Conduct
In order to ensure that the Laravel community is welcoming to all, please review and abide by the [Code of Conduct](https://laravel.com/docs/contributions#code-of-conduct).
## Security Vulnerabilities
If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via [taylor@laravel.com](mailto:taylor@laravel.com). All security vulnerabilities will be promptly addressed.
## License
The Laravel framework is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).

10
aggiorna.sh Executable file
View File

@@ -0,0 +1,10 @@
#!/bin/bash
cd /var/www/html/apimacro
{
echo "Output di git fetch:"
sudo git fetch
echo "Output di git pull:"
sudo git pull
} 2>&1 # Cattura anche gli errori

113
app/Article.php Normal file → Executable file
View File

@@ -8,74 +8,65 @@ class Article extends Model
{
protected $table = 'T_WEB_Articoli';
/*
public function authors()
{
return $this->hasMany(Author::class);
}
*/
public function getAuthorsAttribute()
{
$authorId = $this->getRawOriginal('ListaAutori');
$ids = explode(",",$authorId);
$autori = [];
foreach ($ids as $id)
public function getAuthorsAttribute()
{
$authorId = $this->getRawOriginal('ListaAutori');
$ids = explode(",", $authorId);
$autori = [];
foreach ($ids as $id) {
$autore = Author::where('IdAutore',$id)->orderBy('DataOra', 'desc')->first();
if($autore){
//$autori[] = ($autore->Nome != '' ? trim($autore->Nome) . " " : '') . trim($autore->Cognome);
$autori[] = trim($autore->Nome) . "," . trim($autore->Cognome);
$autore = Author::where('IdAutore', $id)->orderBy('DataOra', 'desc')->first();
if ($autore) {
//$autori[] = ($autore->Nome != '' ? trim($autore->Nome) . " " : '') . trim($autore->Cognome);
$autori[] = trim($autore->Nome) . "," . trim($autore->Cognome);
}
}
return $autori;
}
public function getStockAttribute()
{
$qtas = Stock::where('Codice', $this->IdArticolo)->orderBy('DataOra', 'desc');
if ($qtas->count() > 0) {
$qta = $qtas->first();
$disponibilita = $qta->QtaDisponibile;
} else {
$disponibilita = 0;
}
return $disponibilita;
}
public function getStatoprodottoAttribute()
{
$status = Statusproduct::where('IdStatoProdotto', $this->IdStatoProdotto)->orderBy('DataOra', 'desc')->first();
return $status->Descrizione;
}
public function getEditoreAttribute()
{
if ($this->IdMarchioEditoriale > 0) {
$editore = Publisher::where('IdMarchioEditoriale', $this->IdMarchioEditoriale)->orderBy('DataOra', 'desc')->first();
return $editore->Descrizione;
} else {
return null;
}
}
return $autori;
}
public function getStockAttribute()
{
$qtas = Stock::where('Codice', $this->IdArticolo)->orderBy('DataOra', 'desc');
if($qtas->count() > 0 ){
$qta = $qtas->first();
$disponibilita = $qta->QtaDisponibile;
} else {
$disponibilita = 0;
public function getArgomentoAttribute()
{
$argomenti = Category::where('IdArgomento', $this->ListaArgomenti)->orderBy('DataOra', 'desc');
if ($argomenti->count() > 0) {
$argomento = $argomenti->first();
$descrizione = $argomento->Descrizione;
} else {
$descrizione = "Nessuna categoria";
}
return $descrizione;
}
return $disponibilita;
}
public function getStatoprodottoAttribute()
{
$status = Statusproduct::where('IdStatoProdotto', $this->IdStatoProdotto)->orderBy('DataOra', 'desc')->first();
return $status->Descrizione;
}
public function getEditoreAttribute()
{
if($this->IdMarchioEditoriale > 0){
$editore = Publisher::where('IdMarchioEditoriale', $this->IdMarchioEditoriale)->orderBy('DataOra', 'desc')->first();
return $editore->Descrizione;
}
else{
return null;
public function nimaia()
{
return $this->hasOne('App\Artnim', 'id_gm', 'IdArticolo');
}
}
public function getArgomentoAttribute()
{
$argomenti = Category::where('IdArgomento', $this->ListaArgomenti)->orderBy('DataOra', 'desc');
if($argomenti->count() > 0){
$argomento = $argomenti->first();
$descrizione = $argomento->Descrizione;
} else {
$descrizione = "Nessuna categoria";
}
return $descrizione;
}
public function nimaia()
{
return $this->hasOne('App\Artnim', 'id_gm', 'IdArticolo' );
}
}

16
app/ArticoliFatturati.php Executable file
View File

@@ -0,0 +1,16 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class ArticoliFatturati extends Model
{
protected $connection = 'sqlsrv_test';
protected $table = 'T_WEB_ArticoliFatturati';
public $timestamps = false;
}

0
app/Artnim.php Normal file → Executable file
View File

0
app/Author.php Normal file → Executable file
View File

0
app/Authornimaia.php Normal file → Executable file
View File

0
app/Category.php Normal file → Executable file
View File

0
app/Clientegmdest.php Normal file → Executable file
View File

View File

@@ -0,0 +1,39 @@
<?php
namespace App\Console\Commands;
use Codexshaper\WooCommerce\Facades\WooCommerce;
use Codexshaper\WooCommerce\Models\Product;
use Illuminate\Console\Command;
class CheckProductBySku extends Command
{
protected $signature = 'woocommerce:check-product {sku}'; // Accetta un argomento SKU
protected $description = 'Check a product by SKU from WooCommerce and display its ID';
public function __construct()
{
parent::__construct();
}
public function handle()
{
// Ottieni lo SKU del prodotto dal parametro della riga di comando
$sku = $this->argument('sku');
try {
// Recupera i prodotti per lo SKU specificato
$products = Product::where('sku', $sku)->get();
if ($products->isNotEmpty()) {
// Mostra l'ID del primo prodotto se viene trovato
$this->info('Connection successful! Product ID: ' . $products[0]->id);
} else {
$this->error('No products found with SKU: ' . $sku);
}
} catch (\Exception $e) {
// Gestisce eventuali errori di connessione
$this->error('Error: ' . $e->getMessage());
}
}
}

View File

@@ -0,0 +1,47 @@
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
class FixStoragePermissions extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'fix:storage-permissions';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Fix permissions for the storage/logs directory';
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
try {
// Esegui i comandi di shell
exec('sudo chown -R debian:www-data /var/www/html/apimacro/storage/logs', $output, $returnVar);
exec('sudo chmod -R 775 /var/www/html/apimacro/storage/logs', $output, $returnVar);
// Controlla se ci sono stati errori
if ($returnVar !== 0) {
$this->error('Errore nel fix dei permessi.');
return 1; // Codice di errore
}
$this->info('Permessi del storage/logs aggiornati con successo.');
return 0; // Codice di successo
} catch (\Exception $e) {
$this->error('Errore durante l\'aggiornamento dei permessi: ' . $e->getMessage());
}
}
}

View File

@@ -0,0 +1,40 @@
<?php
namespace App\Console\Commands;
use Codexshaper\WooCommerce\Facades\Order;
use Codexshaper\WooCommerce\Facades\WooCommerce;
use Illuminate\Console\Command;
class GetFirstOrder extends Command
{
protected $signature = 'woocommerce:get-first-order';
protected $description = 'Get the first order from WooCommerce and display its details';
public function __construct()
{
parent::__construct();
}
public function handle()
{
try {
// Recupera la lista di ordini, limitando a 1 per ottenere solo il primo
// $orders = WooCommerce::get('orders', ['per_page' => 1]);
$orders = Order::all(['per_page' => 1]);
if (!empty($orders) && isset($orders[0]->id)) {
// Mostra i dettagli del primo ordine
$this->info('First Order ID: ' . $orders[0]->id);
$this->info('Order Status: ' . $orders[0]->status);
$this->info('Total: ' . $orders[0]->total);
// Aggiungi altri dettagli se necessario
} else {
$this->error('No orders found.');
}
} catch (\Exception $e) {
// Gestisci eventuali errori di connessione
$this->error('Error GetFirstOrder: ' . $e->getMessage());
}
}
}

106
app/Console/Commands/OrderUpdateGm.php Normal file → Executable file
View File

@@ -2,10 +2,13 @@
namespace App\Console\Commands;
use App\Mylog;
use App\Order as AppOrder;
use App\Services\ProductLogger;
use Codexshaper\WooCommerce\Facades\Order;
use Illuminate\Console\Command;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Mail;
class OrderUpdateGm extends Command
{
@@ -34,42 +37,95 @@ class OrderUpdateGm extends Command
}
/**
* Execute the console command.
* Handles the order update process from GM.
*
* This command fetches orders from WooCommerce with a pending, processing, or on-hold status, and checks if they exist in the GM system. If an order is found in GM, it checks the status and updates the WooCommerce order accordingly. If an order is updated, an email is sent to the admin with the details.
*
* @return int
*/
public function handle()
{
$all_orderswoo = new Collection();
echo "OrderUpdateGM... ";
$productLogger = new ProductLogger(null, 'checkorders', true);
$page = 1;
do{
$orderswoo = Order::all($options = ['per_page' => 100, 'page' => $page,'status'=> ["pending","processing","on-hold"]]);
$all_orderswoo = $all_orderswoo->merge($orderswoo);
$page++;
} while($orderswoo->count() > 0);
$orderupdated = 0;
try {
$all_orderswoo = new Collection(); // Assicurati che all_orderswoo sia inizializzato se non l'hai già fatto.
$page = 1; // Inizializza la pagina
foreach($all_orderswoo as $orderwoo ){
$ordergm = AppOrder::where('IdInternet', $orderwoo->id)->latest('DataOra')->first();
if($ordergm){
if($orderwoo->status == 'processing'){
if($ordergm->EnabledWoo == 1){
$data = [
'status' => 'completed',
];
$orderwooupdate = Order::update($orderwoo->id,$data);
}
}
elseif ($orderwoo->status == 'on-hold'){
do {
$options = ['per_page' => 100, 'page' => $page, 'status' => ["pending", "processing", "on-hold"]];
$this->info('Fetching orders with options: ' . json_encode($options));
$orderswoo = Order::get($options); // Usa 'get' invece di 'all'
if($ordergm->FlagSospeso == 0) {
$data = [
'status' => 'processing',
];
$orderwooupdate = Order::update($orderwoo->id,$data);
// Controlla se il risultato è una collezione o un errore
if (empty($orderswoo) || $orderswoo->isEmpty()) {
$productLogger->addLog('Error', 'No orders returned.');
break; // Esci dal ciclo in caso di errore
}
}
// Merge le nuove ordinazioni nella collezione esistente
$all_orderswoo = $all_orderswoo->merge($orderswoo);
$page++;
} while ($orderswoo->count() > 0); // Continua finché ci sono ordini
} catch (\Exception $e) {
if (isset($productLogger)) {
$productLogger->addLog('Error', $e->getMessage());
$productLogger->setLogandSendEmail('Ordini');
}
}
foreach ($all_orderswoo as $orderwoo) {
$productLogger->addLog('', "Processing order #{$orderwoo->id}...");
$ordergm = AppOrder::where('IdInternet', $orderwoo->id)->latest('DataOra')->first();
if ($ordergm) {
$productLogger->addLog('', "Order #{$orderwoo->id} found in GM, checking status...");
if ($orderwoo->status == 'processing') {
$this->info("Order #{$orderwoo->id} is processing, checking if it needs to be completed...");
if ($ordergm->EnabledWoo == 1) {
$productLogger->addLog('', "Order #{$orderwoo->id} needs to be completed, updating WooCommerce...");
$data = [
'status' => 'completed',
];
$orderwooupdate = Order::update($orderwoo->id, $data);
// sum the number updated of order to the log
$orderupdated++;
}
} elseif ($orderwoo->status == 'on-hold') {
$productLogger->addLog('', "Order #{$orderwoo->id} is on-hold, checking if it needs to be processed...");
if ($ordergm->FlagSospeso == 0) {
$productLogger->addLog('', "Order #{$orderwoo->id} needs to be processed, updating WooCommerce...");
$data = [
'status' => 'processing',
];
$orderwooupdate = Order::update($orderwoo->id, $data);
// sum the number updated of order to the log
$orderupdated++;
}
}
} else {
$productLogger->addLog('', "Order #{$orderwoo->id} not found in GM, skipping...");
}
}
// get the directory actual name and put in the log file
$log = ' Ordini aggiornati' . "\n";
// check if there are orders to log
if ($orderupdated > 0) {
// Send the email to the admin with the details of the order log
Mail::raw($log, function ($message, $orderupdated) {
$message->to(Mylog::getEmail());
$message->subject(Mylog::getSubjectEmail("Ordini Aggiornati su GM:" . $orderupdated));
});
if ($productLogger) {
$productLogger->setLogandSendEmail('Aggiornamento Ordini');
}
}
}

View File

@@ -0,0 +1,170 @@
<?php
namespace App\Console\Commands;
use Carbon\Carbon;
use Codexshaper\WooCommerce\Facades\Product;
use Illuminate\Console\Command;
use App\Setting;
use App\Article;
use App\Mylog;
use App\Stock;
use Codexshaper\WooCommerce\Models\Product as ModelsProduct;
use Codexshaper\WooCommerce\Facades\Variation;
use Codexshaper\WooCommerce\Facades\Category;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\DB;
use App\Helpers\MyConfig;
MyConfig::init();
class ProductUpdateAllQta extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'product:updateallqta';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Aggiorna qta prodotti da GM di TUTTI';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
$aggiornato = false;
set_time_limit(0);
ini_set("memory_limit", "512M");
$ora_update = Carbon::now();
$settingora = Setting::where('key', 'update_products_qta')->first();
$fromtime = str_replace('-', '', $settingora->value);
$loginizio = 'Inizio da ' . $ora_update . "\n";
Log::channel('updateproductsqta')->notice($loginizio);
/* $stocks = Stock::join(DB::raw('(SELECT Codice, MAX(DataOra) as data1 from T_WEB_Disponibile GROUP BY Codice ) b'), function($join)
{
$join->on('T_WEB_Disponibile.Codice', '=', 'b.Codice')
->on('T_WEB_Disponibile.DataOra', '=', 'b.data1');
} )
->where('data1','>=',$fromtime)
->orderBy('DataOra')
->get();
*/
// Sottoquery per trovare l'ultima data/ora per ogni Codice a partire da $fromtime
$subQuery = Stock::select('Codice', DB::raw('MAX(DataOra) as max_data'))
->where('DataOra', '>=', $fromtime)
->groupBy('Codice');
// Aggiorna solo i record corrispondenti all'ultima data/ora per ogni Codice
$updatedRecords = Stock::joinSub($subQuery, 'latest', function ($join) {
$join->on('T_WEB_Disponibile.Codice', '=', 'latest.Codice')
->on('T_WEB_Disponibile.DataOra', '=', 'latest.max_data');
})
->where('T_WEB_Disponibile.DataOra', '>=', $fromtime)
->get(); // Recupera i record da aggiornare
$nrprodotti = $updatedRecords->count();
$log = "";
foreach ($updatedRecords as $stock) {
try {
$productsku = Product::where('sku', $stock->Codice)->first();
if ($productsku->count() > 0) {
$aggiorna = true;
$inprevendita = isArticleInPrevendita($stock->Codice, false);
$inprevendita_qtaneg = isArticleInPrevendita($stock->Codice, true);
$qtyinstock = intval($productsku['stock_quantity']);
if (isset($productsku['name'])) {
$titolo = $productsku['name'];
} else {
$titolo = '';
}
// Se il libro è ancora in Prevendita e la quantità è > MyConfig::$qtaMinima, allora non aggiornare la QTA
// deve rimanere a > MyConfig::$qtaMinima per poter vedere "In Preordine"
if ($inprevendita && $qtyinstock > MyConfig::$qtaInPrevendita) {
$aggiorna = false;
}
if ($aggiorna) {
$data1 = [
'stock_quantity' => $stock->QtaDisponibile,
];
$idprodotto = $productsku['parent_id'];
if ($idprodotto > 0) {
$variation = Variation::update($idprodotto, $productsku['id'], $data1);
} else {
Product::update($productsku['id'], $data1);
}
$log .= ' *** ' . $stock->Codice . ' ' . $titolo . ' QTA=' . $stock->QtaDisponibile . "\n";
if ($inprevendita_qtaneg && ($qtyinstock < MyConfig::$qtaMinima)) {
setPreOrder($stock->Codice, "1", false);
$log .= ' SETTATO IN PREVENDITA ! <br>';
}
$aggiornato = true;
}
}
if ($log) {
Log::channel('updateproductsqta')->notice($log);
$log = "";
}
} catch (\Exception $e) {
$log = "Errore: " . $e->getMessage() . "\n";
Log::channel('updateproductsqta')->error($log);
$log = "";
}
}
$ora_fine = Carbon::now();
$lognrprodotti = ' Prodotti qta aggiornati di TUTTI ' . $nrprodotti . "\n";
$logfine = 'Terminato il ' . $ora_fine . "\n";
$settingora->value = $ora_update;
$settingora->save();
if ($aggiornato) {
Log::channel('updateproductsqta')->notice($lognrprodotti . $logfine);
Mail::raw($loginizio . $lognrprodotti . $logfine, function ($message) {
$message->to(Mylog::getEmail());
$message->subject(Mylog::getSubjectEmail("Aggiornam. Qtà Prodotti:"));
});
}
}
}

View File

@@ -0,0 +1,102 @@
<?php
namespace App\Console\Commands;
use Carbon\Carbon;
use Codexshaper\WooCommerce\Facades\Product;
use Illuminate\Console\Command;
use App\Setting;
use App\Article;
use App\Mylog;
use Codexshaper\WooCommerce\Models\Product as ModelsProduct;
use Codexshaper\WooCommerce\Facades\Variation;
use Codexshaper\WooCommerce\Facades\Category;
use Illuminate\Support\Facades\DB;
use App\Services\ProductLogger;
class ProductUpdateDataPubb extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'product:datepubb';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Aggiorna la Data di Pubblicazione';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
try {
set_time_limit(0);
ini_set("memory_limit", "512M");
$productLogger = new ProductLogger(null, '', true);
$articles = Article::join(DB::raw('(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli GROUP BY IdArticolo) b'), function ($join) {
$join->on('T_WEB_Articoli.IdArticolo', '=', 'b.IdArticolo')
->on('T_WEB_Articoli.DataOra', '=', 'b.data');
})
->leftJoin(DB::raw('(SELECT e.IdStatoProdotto, e.Descrizione as DescrizioneStatoProdotto FROM T_WEB_StatiProdotto e JOIN (SELECT IdStatoProdotto, MAX(DataOra) as data1 from T_WEB_StatiProdotto GROUP BY IdStatoProdotto) c ON e.IdStatoProdotto = c.IdStatoProdotto AND e.DataOra = c.data1 ) f'), function ($join) {
$join->on('T_WEB_Articoli.IdStatoProdotto', '=', 'f.IdStatoProdotto');
})
->leftJoin(DB::raw('(SELECT g.IdTipologia, g.Descrizione as DescrizioneTipologia FROM T_WEB_Tipologie g JOIN (SELECT IdTipologia, MAX(DataOra) as data1 from T_WEB_Tipologie GROUP BY IdTipologia) h ON g.IdTipologia = h.IdTipologia AND g.DataOra = h.data1 ) i'), function ($join) {
$join->on('T_WEB_Articoli.IdTipologia', '=', 'i.IdTipologia');
})
->leftJoin(DB::raw('(SELECT l.IdTipoFormato, l.Descrizione as DescrizioneFormato FROM T_WEB_TipiFormato l JOIN (SELECT IdTipoFormato, MAX(DataOra) as data1 from T_WEB_TipiFormato GROUP BY IdTipoFormato) m ON l.IdTipoFormato = m.IdTipoFormato AND l.DataOra = m.data1 ) n'), function ($join) {
$join->on('T_WEB_Articoli.IdTipoFormato', '=', 'n.IdTipoFormato');
})
->where(function ($query) {
$query->where('DescrizioneStatoProdotto', 'In commercio')
->orWhere('DescrizioneStatoProdotto', '2023 in commercio')
->orWhere('DescrizioneStatoProdotto', 'Vendita sito')
->orWhere('DescrizioneStatoProdotto', 'In prevendita')
->orWhere('DescrizioneStatoProdotto', 'Prossima uscita');
})
->orderBy('Titolo')
->take(1)
->get();
foreach ($articles as $article) {
$aggiornato = setDataPubblicazione($article, false);
if ($aggiornato) {
$productLogger->setAggiornato(true);
}
}
$productLogger->setLogandSendEmail('Aggiornamento Data Pubblicazione');
echo "************** Finito **************";
} catch (\Exception $e) {
echo $e->getMessage();
if ($productLogger) {
$productLogger->addLog('Error', $e->getMessage());
$productLogger->setLogandSendEmail('Aggiornamento Prodotti');
}
}
}
}

1085
app/Console/Commands/ProductUpdateGm.php Normal file → Executable file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,116 @@
<?php
namespace App\Console\Commands;
use Carbon\Carbon;
use Codexshaper\WooCommerce\Facades\Product;
use Illuminate\Console\Command;
use App\Setting;
use App\Article;
use App\Mylog;
use Codexshaper\WooCommerce\Models\Product as ModelsProduct;
use Codexshaper\WooCommerce\Facades\Variation;
use Codexshaper\WooCommerce\Facades\Category;
use Illuminate\Support\Facades\DB;
use App\Services\ProductLogger;
class ProductUpdateISBN extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'product:isbn';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Aggiorna i codici ISBN da GM';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
set_time_limit(0);
ini_set("memory_limit", "512M");
$settingora = Setting::where('key', 'testpao')->first();
$productLogger = new ProductLogger($settingora, 'testpao', true);
$debug = true;
try {
$productLogger->addLog('updated', 'PRODOTTI AGGIORNATI AD ISBN' . "\n");
echo "SettingOra: " . $settingora;
$fromtime = str_replace('-', '', $settingora->value);
$articles = Article::join(DB::raw('(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli GROUP BY IdArticolo) b'), function ($join) {
$join->on('T_WEB_Articoli.IdArticolo', '=', 'b.IdArticolo')
->on('T_WEB_Articoli.DataOra', '=', 'b.data');
})
->leftJoin(DB::raw('(SELECT e.IdStatoProdotto, e.Descrizione as DescrizioneStatoProdotto FROM T_WEB_StatiProdotto e JOIN (SELECT IdStatoProdotto, MAX(DataOra) as data1 from T_WEB_StatiProdotto GROUP BY IdStatoProdotto) c ON e.IdStatoProdotto = c.IdStatoProdotto AND e.DataOra = c.data1 ) f'), function ($join) {
$join->on('T_WEB_Articoli.IdStatoProdotto', '=', 'f.IdStatoProdotto');
})
->leftJoin(DB::raw('(SELECT g.IdTipologia, g.Descrizione as DescrizioneTipologia FROM T_WEB_Tipologie g JOIN (SELECT IdTipologia, MAX(DataOra) as data1 from T_WEB_Tipologie GROUP BY IdTipologia) h ON g.IdTipologia = h.IdTipologia AND g.DataOra = h.data1 ) i'), function ($join) {
$join->on('T_WEB_Articoli.IdTipologia', '=', 'i.IdTipologia');
})
->leftJoin(DB::raw('(SELECT l.IdTipoFormato, l.Descrizione as DescrizioneFormato FROM T_WEB_TipiFormato l JOIN (SELECT IdTipoFormato, MAX(DataOra) as data1 from T_WEB_TipiFormato GROUP BY IdTipoFormato) m ON l.IdTipoFormato = m.IdTipoFormato AND l.DataOra = m.data1 ) n'), function ($join) {
$join->on('T_WEB_Articoli.IdTipoFormato', '=', 'n.IdTipoFormato');
})
/*
->leftJoin(DB::raw('(SELECT o.Codice, o.QtaDisponibile FROM T_WEB_Disponibile o JOIN (SELECT Codice, MAX(DataOra) as data1 from T_WEB_Disponibile GROUP BY Codice) p ON o.Codice = p.Codice AND o.DataOra = p.data1 ) q'), function($join) {
$join->on('T_WEB_Articoli.IdArticolo', '=', 'q.Codice');
})
*/
->where('data', '>=', $fromtime)
->where(function ($query) {
$query->where('DescrizioneStatoProdotto', 'In commercio')
->orWhere('DescrizioneStatoProdotto', '2023 in commercio')
->orWhere('DescrizioneStatoProdotto', 'Vendita sito')
->orWhere('DescrizioneStatoProdotto', 'In prevendita')
->orWhere('DescrizioneStatoProdotto', 'Prossima uscita');
})
->orderBy('Titolo')
->get();
foreach ($articles as $article) {
// setProductFromGM($article, false, $productLogger);
$sku = $article->IdProdotto;
$ris = setISBN_GTIN($sku, $article, $debug);
if ($ris) {
$productLogger->addLog('updated', 'prod: ' . $sku . ' ISBN: ' . $article->Titolo);
}
}
$productLogger->setLogandSendEmail('Aggiornamento ISBN');
echo "************** Finito **************";
} catch (\Exception $e) {
echo $e->getMessage();
if ($productLogger) {
$productLogger->addLog('Error', $e->getMessage());
$productLogger->setLogandSendEmail('Aggiornamento ISBN');
}
}
}
}

112
app/Console/Commands/ProductUpdateQta.php Normal file → Executable file
View File

@@ -7,6 +7,7 @@ use Codexshaper\WooCommerce\Facades\Product;
use Illuminate\Console\Command;
use App\Setting;
use App\Article;
use App\Mylog;
use App\Stock;
use Codexshaper\WooCommerce\Models\Product as ModelsProduct;
use Codexshaper\WooCommerce\Facades\Variation;
@@ -17,6 +18,10 @@ use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\DB;
use App\Helpers\MyConfig;
MyConfig::init();
class ProductUpdateQta extends Command
{
/**
@@ -50,17 +55,19 @@ class ProductUpdateQta extends Command
*/
public function handle()
{
$aggiornato = false;
set_time_limit(0);
ini_set("memory_limit", "512M");
$ora_update = Carbon::now();
$settingora = Setting::where('key','update_products_qta')->first();
$fromtime = str_replace('-','',$settingora->value);
$settingora = Setting::where('key', 'update_products_qta')->first();
$fromtime = str_replace('-', '', $settingora->value);
$loginizio = 'Inizio da '.$ora_update."\n";
$loginizio = 'Inizio da ' . $ora_update . "\n";
Log::channel('updateproductsqta')->notice($loginizio);
/* $stocks = Stock::join(DB::raw('(SELECT Codice, MAX(DataOra) as data1 from T_WEB_Disponibile GROUP BY Codice ) b'), function($join)
/* $stocks = Stock::join(DB::raw('(SELECT Codice, MAX(DataOra) as data1 from T_WEB_Disponibile GROUP BY Codice ) b'), function($join)
{
$join->on('T_WEB_Disponibile.Codice', '=', 'b.Codice')
->on('T_WEB_Disponibile.DataOra', '=', 'b.data1');
@@ -68,52 +75,87 @@ class ProductUpdateQta extends Command
->where('data1','>=',$fromtime)
->orderBy('DataOra')
->get();
*/
$stocks = Stock::select('Codice', 'QtaDisponibile', DB::raw('MAX(DataOra) as data_recente'))
->where('DataOra', '>=' , $fromtime)
->groupBy('Codice','QtaDisponibile')
->get();
$nrprodotti = $stocks->count();
*/
$stocks = Stock::select('Codice', 'QtaDisponibile', DB::raw('MAX(DataOra) as data_recente'))
->where('DataOra', '>=', $fromtime)
->groupBy('Codice', 'QtaDisponibile')
->get();
$nrprodotti = $stocks->count();
foreach($stocks as $stock){
$log = "";
try {
foreach ($stocks as $stock) {
$productsku = Product::where('sku' , $stock->Codice)->first();
try {
if($productsku->count() > 0)
{
$data1 = [
$productsku = Product::where('sku', $stock->Codice)->first();
if ($productsku->count() > 0) {
$aggiorna = true;
'stock_quantity' => $stock->QtaDisponibile,
$inprevendita = isArticleInPrevendita($stock->Codice, false);
$inprevendita_qtaneg = isArticleInPrevendita($stock->Codice, true);
$qtyinstock = intval($productsku['stock_quantity']);
if (isset($productsku['name'])) {
$titolo = $productsku['name'];
} else {
$titolo = '';
}
// Se il libro è ancora in Prevendita e la quantità è > MyConfig::$qtaMinima, allora non aggiornare la QTA
// deve rimanere a > MyConfig::$qtaMinima per poter vedere "In Preordine"
if ($inprevendita && $qtyinstock > MyConfig::$qtaInPrevendita) {
$aggiorna = false;
}
];
$idprodotto = $productsku['parent_id'];
if($idprodotto > 0){
$variation = Variation::update($idprodotto,$productsku['id'], $data1);
if ($aggiorna) {
$data1 = [
'stock_quantity' => $stock->QtaDisponibile,
} else {
Product::update($productsku['id'], $data1);
];
$idprodotto = $productsku['parent_id'];
if ($idprodotto > 0) {
$variation = Variation::update($idprodotto, $productsku['id'], $data1);
} else {
Product::update($productsku['id'], $data1);
}
}
}
$log .= ' *** ' . $stock->Codice . ' ' . $titolo . ' QTA=' . $stock->QtaDisponibile . "\n";
} catch (\Exception $e) {
//code error
if ($inprevendita_qtaneg && ($qtyinstock < MyConfig::$qtaMinima)) {
setPreOrder($stock->Codice, "1", false);
$log .= ' SETTATO IN PREVENDITA ! <br>';
}
$aggiornato = true;
}
}
if ($log) {
Log::channel('updateproductsqta')->notice($log);
$log = "";
}
} catch (\Exception $e) {
$log = "Errore: " . $e->getMessage() . "\n";
Log::channel('updateproductsqta')->error($log);
$log = "";
}
}
$ora_fine = Carbon::now();
$lognrprodotti = 'Prodotti qta aggiornati '.$nrprodotti."\n";
$logfine = 'Terminato il '.$ora_fine."\n";
$lognrprodotti = ' Prodotti qta aggiornati ' . $nrprodotti . "\n";
$logfine = 'Terminato il ' . $ora_fine . "\n";
$settingora->value = $ora_update;
$settingora->save();
Log::channel('updateproductsqta')->notice($loginizio . $lognrprodotti . $logfine);
}
if ($aggiornato) {
Log::channel('updateproductsqta')->notice($lognrprodotti . $logfine);
Mail::raw($loginizio . $lognrprodotti . $logfine, function ($message) {
$message->to(Mylog::getEmail());
$message->subject(Mylog::getSubjectEmail("Aggiornam. Qtà Prodotti:"));
});
}
}
}

411
app/Console/Commands/ProductUpdateUsedGm.php Normal file → Executable file
View File

@@ -7,6 +7,7 @@ use Codexshaper\WooCommerce\Facades\Product;
use Illuminate\Console\Command;
use App\Setting;
use App\Article;
use App\Mylog;
use Codexshaper\WooCommerce\Models\Product as ModelsProduct;
use Codexshaper\WooCommerce\Facades\Variation;
use Codexshaper\WooCommerce\Facades\Category;
@@ -16,6 +17,7 @@ use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\DB;
class ProductUpdateUsedGm extends Command
{
/**
@@ -49,247 +51,244 @@ class ProductUpdateUsedGm extends Command
*/
public function handle()
{
set_time_limit(0);
ini_set("memory_limit", "512M");
$ora_update = Carbon::now();
$settingora = Setting::where('key','update_products_used')->first();
$fromtime = str_replace('-','',$settingora->value);
try {
Log::channel('updateproductsused')->notice('Inizio... ' . "\n");
$aggiornato = false;
set_time_limit(0);
ini_set("memory_limit", "512M");
$ora_update = Carbon::now();
$settingora = Setting::where('key', 'update_products_used')->first();
$fromtime = str_replace('-', '', $settingora->value);
$articles = Article::join(DB::raw('(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli GROUP BY IdArticolo) b'), function($join)
{
$join->on('T_WEB_Articoli.IdArticolo', '=', 'b.IdArticolo')
->on('T_WEB_Articoli.DataOra', '=', 'b.data');
})
$articles = Article::join(DB::raw('(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli GROUP BY IdArticolo) b'), function ($join) {
$join->on('T_WEB_Articoli.IdArticolo', '=', 'b.IdArticolo')
->on('T_WEB_Articoli.DataOra', '=', 'b.data');
})
->leftJoin(DB::raw('(SELECT e.IdStatoProdotto, e.Descrizione as DescrizioneStatoProdotto FROM T_WEB_StatiProdotto e JOIN (SELECT IdStatoProdotto, MAX(DataOra) as data1 from T_WEB_StatiProdotto GROUP BY IdStatoProdotto) c ON e.IdStatoProdotto = c.IdStatoProdotto AND e.DataOra = c.data1 ) f'), function($join) {
$join->on('T_WEB_Articoli.IdStatoProdotto', '=', 'f.IdStatoProdotto');
})
->leftJoin(DB::raw('(SELECT g.IdTipologia, g.Descrizione as DescrizioneTipologia FROM T_WEB_Tipologie g JOIN (SELECT IdTipologia, MAX(DataOra) as data1 from T_WEB_Tipologie GROUP BY IdTipologia) h ON g.IdTipologia = h.IdTipologia AND g.DataOra = h.data1 ) i'), function($join) {
$join->on('T_WEB_Articoli.IdTipologia', '=', 'i.IdTipologia');
})
->leftJoin(DB::raw('(SELECT l.IdTipoFormato, l.Descrizione as DescrizioneFormato FROM T_WEB_TipiFormato l JOIN (SELECT IdTipoFormato, MAX(DataOra) as data1 from T_WEB_TipiFormato GROUP BY IdTipoFormato) m ON l.IdTipoFormato = m.IdTipoFormato AND l.DataOra = m.data1 ) n'), function($join) {
$join->on('T_WEB_Articoli.IdTipoFormato', '=', 'n.IdTipoFormato');
})
/*
->leftJoin(DB::raw('(SELECT e.IdStatoProdotto, e.Descrizione as DescrizioneStatoProdotto FROM T_WEB_StatiProdotto e JOIN (SELECT IdStatoProdotto, MAX(DataOra) as data1 from T_WEB_StatiProdotto GROUP BY IdStatoProdotto) c ON e.IdStatoProdotto = c.IdStatoProdotto AND e.DataOra = c.data1 ) f'), function ($join) {
$join->on('T_WEB_Articoli.IdStatoProdotto', '=', 'f.IdStatoProdotto');
})
->leftJoin(DB::raw('(SELECT g.IdTipologia, g.Descrizione as DescrizioneTipologia FROM T_WEB_Tipologie g JOIN (SELECT IdTipologia, MAX(DataOra) as data1 from T_WEB_Tipologie GROUP BY IdTipologia) h ON g.IdTipologia = h.IdTipologia AND g.DataOra = h.data1 ) i'), function ($join) {
$join->on('T_WEB_Articoli.IdTipologia', '=', 'i.IdTipologia');
})
->leftJoin(DB::raw('(SELECT l.IdTipoFormato, l.Descrizione as DescrizioneFormato FROM T_WEB_TipiFormato l JOIN (SELECT IdTipoFormato, MAX(DataOra) as data1 from T_WEB_TipiFormato GROUP BY IdTipoFormato) m ON l.IdTipoFormato = m.IdTipoFormato AND l.DataOra = m.data1 ) n'), function ($join) {
$join->on('T_WEB_Articoli.IdTipoFormato', '=', 'n.IdTipoFormato');
})
/*
->leftJoin(DB::raw('(SELECT o.Codice, o.QtaDisponibile FROM T_WEB_Disponibile o JOIN (SELECT Codice, MAX(DataOra) as data1 from T_WEB_Disponibile GROUP BY Codice) p ON o.Codice = p.Codice AND o.DataOra = p.data1 ) q'), function($join) {
$join->on('T_WEB_Articoli.IdArticolo', '=', 'q.Codice');
})
*/
//->groupBy('T_WEB_Articoli.IdArticolo')
->where('data','>=',$fromtime)
->where('EAN13','LIKE','usato%')
//->where(function($query){
// $query->where('DescrizioneStatoProdotto','Usato')
//->orWhere('DescrizioneStatoProdotto','In Commercio')
//->orWhere('DescrizioneStatoProdotto','Remainder');
//})
//->where(DB::raw('CONVERT(INT, QtaDisponibile)'),'>',0)
//->where('DescrizioneFormato','brossura')
->where('DescrizioneTipologia','Libri')
->orderBy('data')
//->groupBy('T_WEB_Articoli.IdArticolo')
->where('data', '>=', $fromtime)
->where('EAN13', 'LIKE', 'usato%')
//->where(function($query){
// $query->where('DescrizioneStatoProdotto','Usato')
//->orWhere('DescrizioneStatoProdotto','In Commercio')
//->orWhere('DescrizioneStatoProdotto','Remainder');
//})
//->where(DB::raw('CONVERT(INT, QtaDisponibile)'),'>',0)
//->where('DescrizioneFormato','brossura')
->where('DescrizioneTipologia', 'Libri')
->orderBy('data')
//->take(5)
//->orderBy('ListaAutori')
->get();
Log::channel('updateproductsused')->notice('Inizio da '.$settingora->value."\n");
$loginizio = 'Inizio da '.$settingora->value."\n";
$logfine = 'Fino a '.$ora_update."\n";
$log = 'PRODOTTI USATI INSERITI'."\n";
$log1 = 'EVENTUALI PRODOTTI USATI NON INSERITI'."\n";
$log2 = 'PRODOTTI USATI AGGIORNATI' . "\n";
$log3 = 'PRODOTTI USATI NON INSERITI PER PROBLEMI SERVER' . "\n";
//->take(5)
//->orderBy('ListaAutori')
->get();
Log::channel('updateproductsused')->notice('Inizio da ' . $settingora->value . "\n");
$loginizio = 'Inizio da ' . $settingora->value . "\n";
$logfine = 'Fino a ' . $ora_update . "\n";
$log = ' PRODOTTI USATI INSERITI' . "\n";
$log1 = 'EVENTUALI PRODOTTI USATI NON INSERITI' . "\n";
$log2 = 'PRODOTTI USATI AGGIORNATI' . "\n";
$log3 = 'PRODOTTI USATI NON INSERITI PER PROBLEMI SERVER' . "\n";
foreach($articles as $article)
{ try {
/*
foreach ($articles as $article) {
try {
/*
$settingdata = Setting::where('key','data_product_used')->first();
$settingdata->value = $article->data;
$settingdata->save();
*/
$productsku = Product::where('sku' , $article->IdArticolo)->first();
if($productsku->count() == 0)
{
$productsku = Product::where('sku', $article->IdArticolo)->first();
if ($productsku->count() == 0) {
$titolo = null;
$formato = null;
$titolo = $article->Titolo;
$titolo = rtrim($titolo);
$titolo = rtrim(str_ireplace('USATO','',$titolo));
$titolo = rtrim($titolo);
$titolo = null;
$formato = null;
$titolo = $article->Titolo;
$titolo = rtrim($titolo);
$titolo = rtrim(str_ireplace('USATO', '', $titolo));
$titolo = rtrim($titolo);
$page = 1;
$page = 1;
$all_products = new Collection();
do{
$products = Product::all($options = ['per_page' => 100, 'page' => $page,'search' => $titolo]);
$all_products = $all_products->merge($products);
$page++;
} while ($products->count() > 0);
$all_products = new Collection();
do {
$products = Product::all($options = ['per_page' => 100, 'page' => $page, 'search' => $titolo]);
$all_products = $all_products->merge($products);
$page++;
} while ($products->count() > 0);
foreach ($all_products as $product) {
$variations = Variation::all($product->id);
$target_usato = substr($article->Ean13, strlen('USATO'));
foreach ($all_products as $product) {
$variations = Variation::all($product->id);
$target_usato = substr($article->Ean13, strlen('USATO'));
foreach ($variations as $variation) {
foreach ($variation->meta_data as $meta_data) {
foreach ($variations as $variation) {
foreach ($variation->meta_data as $meta_data) {
if ($meta_data->key === 'ISBN') {
// Estrai gli ultimi caratteri dell'ISBN
if ($meta_data->key === 'ISBN') {
// Estrai gli ultimi caratteri dell'ISBN
$isbn_value = substr($meta_data->value, -strlen($target_usato));
//dd($isbn_value);
// Confronta gli ultimi caratteri con il valore desiderato
if ($isbn_value === $target_usato) {
$meta_data->value;
$data1 = [
$isbn_value = substr($meta_data->value, -strlen($target_usato));
//dd($isbn_value);
// Confronta gli ultimi caratteri con il valore desiderato
if ($isbn_value === $target_usato) {
$meta_data->value;
$data1 = [
'regular_price' => $article->PrezzoIvato,
'sku' => $article->IdArticolo,
'sale_price' => $article->PrezzoIvatoScontatoCampagna,
'date_on_sale_from' => $article->DataInizioCampagna,
'date_on_sale_to' => $article->DataFineCampagna,
'manage_stock' => true,
'stock_quantity' => $article->stock,
'purchasable' => false,
'regular_price' => $article->PrezzoIvato,
'sku' => $article->IdArticolo,
'sale_price' => $article->PrezzoIvatoScontatoCampagna,
'date_on_sale_from' => $article->DataInizioCampagna,
'date_on_sale_to' => $article->DataFineCampagna,
'manage_stock' => true,
'stock_quantity' => $article->stock,
'purchasable' => false,
'attributes' => [
[
//'id' => 1,
'id' => 6,
'option' => 'Usato'
]
'attributes' => [
[
//'id' => 1,
'id' => 6,
'option' => 'Usato'
]
],
'meta_data' => [
[
'key' => 'ISBN',
'value' => $article->Ean13
],
[
'key' => 'misure',
'value' => $article->Misure
],
[
'key' => 'formato',
'value' => $article->DescrizioneFormato
],
[
'key' => 'pagine',
'value' => $article->Pagine
],
[
'key' => 'edizione',
'value' => $article->Edizione
],
[
'key' => 'ristampa',
'value' => $article->Ristampa
],
],
'meta_data' => [
[
'key' => 'ISBN',
'value' => $article->Ean13
],
[
'key' => 'misure',
'value' => $article->Misure
],
[
'key' => 'formato',
'value' => $article->DescrizioneFormato
],
[
'key' => 'pagine',
'value' => $article->Pagine
],
[
'key' => 'edizione',
'value' => $article->Edizione
],
[
'key' => 'ristampa',
'value' => $article->Ristampa
],
[
'key' => 'DataPubblicazione',
'value' => $article->DataPubblicazione
],
]
];
]
];
$old_attributes = $product->attributes;
$attributes = [];
foreach ($old_attributes as $old_attribute) {
if ($old_attribute->id <> 6) {
$old_attributes = $product->attributes;
$attributes = [];
foreach($old_attributes as $old_attribute)
{
if($old_attribute->id <> 6)
{
$attributes[] = [
'id' => $old_attribute->id,
'variation' => $old_attribute->variation,
'visible' => $old_attribute->visible,
'options' => $old_attribute->options
];
}
}
$attributes[] = [
'id' => $old_attribute->id,
'variation' => $old_attribute->variation,
'visible' => $old_attribute->visible,
'options' => $old_attribute->options
];
}
}
$attributes[] = [
//'id' => 1,
'id' => 6,
'position' => 0,
'visible' => true,
'variation' => true,
'options' => [
'Nuovo',
'Usato',
'PDF',
'Epub',
'Mobi',
'DVD',
'Streaming',
'Download'
]
];
//dd($attributes);
$attributes[] = [
//'id' => 1,
'id' => 6,
'position' => 0,
'visible' => true,
'variation' => true,
'options' => [
'Nuovo',
'Usato',
'PDF',
'Epub',
'Mobi',
'DVD',
'Streaming',
'Download'
]
];
//dd($attributes);
$data = [
$data = [
'attributes' => $attributes
'attributes' => $attributes
];
Product::update($product->id, $data);
$variation = Variation::create($product->id, $data1);
];
Product::update($product->id, $data);
$variation = Variation::create($product->id, $data1);
$log .= $article->Titolo . ' - ' . $article->Ean13 . " - " . $variation['permalink']."\n";
$log .= $article->Titolo . ' - ' . $article->Ean13 . " - " . $variation['permalink'] . "\n";
break;
}
}
}
$aggiornato = true;
break;
}
}
}
}
}
} else {
$data1 = [
'regular_price' => $article->PrezzoIvato,
'sale_price' => $article->PrezzoIvatoScontatoCampagna,
'date_on_sale_from' => $article->DataInizioCampagna,
'date_on_sale_to' => $article->DataFineCampagna,
'stock_quantity' => $article->stock,
];
$idprodotto = $productsku['parent_id'];
//if($idprodotto > 0){
$variation = Variation::update($idprodotto, $productsku['id'], $data1);
//echo "Modificato " . $article->Titolo ."<br>";
$log2 .= $article->Titolo . ' - ' . $article->Ean13 . " - Articolo aggiornato - " . $variation['permalink'] . "\n";
$aggiornato = true;
}
}
} else {
$data1 = [
'regular_price' => $article->PrezzoIvato,
'sale_price' => $article->PrezzoIvatoScontatoCampagna,
'date_on_sale_from' => $article->DataInizioCampagna,
'date_on_sale_to' => $article->DataFineCampagna,
'stock_quantity' => $article->stock,
];
$idprodotto = $productsku['parent_id'];
//if($idprodotto > 0){
$variation = Variation::update($idprodotto,$productsku['id'], $data1);
//echo "Modificato " . $article->Titolo ."<br>";
$log2 .= $article->Titolo . ' - ' . $article->Ean13 . " - Articolo aggiornato - " . $variation['permalink']."\n";
//}
}
} catch (\Exception $e) {
//$log3 .= $article->IdArticolo . ' - '. $article->Titolo ."\n" ;
}
}
$settingora->value = $ora_update;
$settingora->save();
}
} catch (\Exception $e) {
//$log3 .= $article->IdArticolo . ' - '. $article->Titolo ."\n" ;
}
}
$settingora->value = $ora_update;
$settingora->save();
if ($aggiornato) {
Log::channel('updateproductsused')->notice($log . $log2 . $log1 . $log3);
Log::channel('updateproductsused')->notice('Fino a '.$ora_update."\n");
Mail::raw($loginizio. $log . $log2 . $log1 . $log3 . $logfine, function ($message) {
$message->to("fioredellavitamacro@gmail.com");
//$message->bcc('luca@pecos.it');
$message->subject("Inserimento nuovi prodotti usati");
// prova
});
Log::channel('updateproductsused')->notice('Fino a ' . $ora_update . "\n");
Mail::raw($loginizio . $log . $log2 . $log1 . $log3 . $logfine, function ($message) {
$message->to(Mylog::getEmail());
$message->subject(Mylog::getSubjectEmail("Inserim. nuovi prodotti Usati"));
});
}
} catch (\Exception $e) {
Log::channel('updateproductsused')->notice($log . $log2 . $log1 . $log3);
Log::channel('updateproductsused')->error('Errore ' . $e->getMessage());
}
}
}

View File

@@ -0,0 +1,76 @@
<?php
namespace App\Console\Commands;
use Carbon\Carbon;
use Codexshaper\WooCommerce\Facades\Product;
use Illuminate\Console\Command;
use App\Setting;
use App\Article;
use App\Mylog;
use App\Stock;
use Codexshaper\WooCommerce\Models\Product as ModelsProduct;
use Codexshaper\WooCommerce\Facades\Variation;
use Codexshaper\WooCommerce\Facades\Category;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\DB;
class StartDay extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'product:startday';
/**
* The console command description.
*
* @var string
*/
protected $description = 'STARTDAY:';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
try {
$log = "*** STARTDAY: ";
// Select all the fields of the Stock table
} catch (\Exception $e) {
$log .= $e->getMessage();
echo "Error: " . $e->getMessage();
}
echo $log;
Log::channel('testpao')->notice($log);
if (true) {
// Send the email
Mail::raw($log, function ($message) {
$message->to(Mylog::getEmail());
$message->subject(Mylog::getSubjectEmail("STARTDAY"));
});
}
}
}

0
app/Console/Commands/Test.php Normal file → Executable file
View File

280
app/Console/Commands/TestPao.php Executable file
View File

@@ -0,0 +1,280 @@
<?php
namespace App\Console\Commands;
use Carbon\Carbon;
use Codexshaper\WooCommerce\Facades\Product;
use Illuminate\Console\Command;
use App\Setting;
use App\Article;
use App\Mylog;
use App\Services\ProductLogger;
use App\Stock;
use Codexshaper\WooCommerce\Models\Product as ModelsProduct;
use Codexshaper\WooCommerce\Facades\Variation;
use Codexshaper\WooCommerce\Facades\Category;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\DB;
class TestPao extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'product:testpao';
/**
* The console command description.
*
* @var string
*/
protected $description = 'TESTPAO: Aggiorna qta prodotti da GM';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
try {
$mostra_solo_qta_negative = true;
$log = "";
echo "\n*** INIZIO ***";
$aggiornato = false;
set_time_limit(0);
ini_set("memory_limit", "512M");
$settingora = Setting::where('key', 'update_products_qta')->first();
$productLogger = new ProductLogger($settingora, 'testpao');
$fromtime = str_replace('-', '', $settingora->value);
$productLogger->addLog('info', "Articoli: \n");
echo "\nArticoli: \n";
$articles = Article::join(DB::raw('(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli GROUP BY IdArticolo) b'), function ($join) {
$join->on('T_WEB_Articoli.IdArticolo', '=', 'b.IdArticolo')
->on('T_WEB_Articoli.DataOra', '=', 'b.data');
})
->leftJoin(DB::raw('(SELECT e.IdStatoProdotto, e.Descrizione as DescrizioneStatoProdotto FROM T_WEB_StatiProdotto e JOIN (SELECT IdStatoProdotto, MAX(DataOra) as data1 from T_WEB_StatiProdotto GROUP BY IdStatoProdotto) c ON e.IdStatoProdotto = c.IdStatoProdotto AND e.DataOra = c.data1 ) f'), function ($join) {
$join->on('T_WEB_Articoli.IdStatoProdotto', '=', 'f.IdStatoProdotto');
})
->leftJoin(DB::raw('(SELECT g.IdTipologia, g.Descrizione as DescrizioneTipologia FROM T_WEB_Tipologie g JOIN (SELECT IdTipologia, MAX(DataOra) as data1 from T_WEB_Tipologie GROUP BY IdTipologia) h ON g.IdTipologia = h.IdTipologia AND g.DataOra = h.data1 ) i'), function ($join) {
$join->on('T_WEB_Articoli.IdTipologia', '=', 'i.IdTipologia');
})
->leftJoin(DB::raw('(SELECT l.IdTipoFormato, l.Descrizione as DescrizioneFormato FROM T_WEB_TipiFormato l JOIN (SELECT IdTipoFormato, MAX(DataOra) as data1 from T_WEB_TipiFormato GROUP BY IdTipoFormato) m ON l.IdTipoFormato = m.IdTipoFormato AND l.DataOra = m.data1 ) n'), function ($join) {
$join->on('T_WEB_Articoli.IdTipoFormato', '=', 'n.IdTipoFormato');
})
->where('data', '>=', $fromtime)
->where(function ($query) {
$query->where('DescrizioneStatoProdotto', 'In commercio')
->orWhere('DescrizioneStatoProdotto', '2023 in commercio')
->orWhere('DescrizioneStatoProdotto', 'Vendita sito')
->orWhere('DescrizioneStatoProdotto', 'In prevendita')
->orWhere('DescrizioneStatoProdotto', 'Prossima uscita');
})
//->where('DescrizioneTipologia','Video Streaming')
->orderBy('Titolo')
->take(2)
->get();
if ($articles) {
// log the count of the articles
echo "Num Articoli: " . $articles->count();
$productLogger->addLog('info', "Quanti Articoli: " . $articles->count());
$ind = 0;
foreach ($articles as $article) {
try {
$ind++;
echo "\nArticolo " . $ind . " " . $article->Titolo . " qta = " . $article->stock;
$mostra = false;
if ($mostra_solo_qta_negative) {
if ($article->stock < 0) {
$mostra = true;
}
} else {
$mostra = true;
}
if ($mostra) {
if (is_object($article)) {
$strarticolo = json_encode($article, JSON_PRETTY_PRINT);
if ($strarticolo !== false) {
echo $strarticolo;
$productLogger->addLog('info', $strarticolo);
}
}
if ($article->stock)
echo "\r\n QTA = " . $article->stock . "\r\n";
}
$productsku = Product::where('sku', $article->IdArticolo)->first();
//if(Gm_product::where('id_gm',$article->IdArticolo)->doesntExist())
if ($productsku->count() == 0) {
$titolo = null;
$formato = null;
$prodotti = null;
$prodotti = new ModelsProduct();
$titolo = $article->Titolo;
switch ($article->DescrizioneTipologia) {
case 'Libri':
$prodotti = $prodotti->where('name', $titolo)->get();
$id = 0;
if (!is_null($prodotti) && $prodotti->count() > 0) {
foreach ($prodotti as $prodotto) {
if (strtolower($prodotto->name) === strtolower($titolo)) {
$found_key = array_search('Autore libro', array_column($prodotto->attributes, 'name'));
if (array_diff($prodotto->attributes[$found_key]->options, $article->authors) === array_diff($article->authors, $prodotto->attributes[$found_key]->options)) {
$id = $prodotto->id;
$variations = Variation::all($prodotto->id);
foreach ($variations as $variation) {
$found_key_version = array_search('Versione', array_column($variation->attributes, 'name'));
if ($variation->attributes[$found_key_version]->option == 'Nuovo') {
$id = 0;
}
}
}
}
}
}
$data1 = [
'regular_price' => $article->PrezzoIvato,
'sku' => $article->IdArticolo,
'sale_price' => $article->PrezzoIvatoScontatoCampagna,
'date_on_sale_from' => $article->DataInizioCampagna,
'date_on_sale_to' => $article->DataFineCampagna,
'manage_stock' => true,
'stock_quantity' => $article->stock,
'purchasable' => false,
'attributes' => [
[
//'id' => 1,
'id' => 6,
'option' => 'Nuovo'
]
],
'meta_data' => [
[
'key' => 'ISBN',
'value' => $article->Ean13
],
[
'key' => 'misure',
'value' => $article->Misure
],
[
'key' => 'formato',
'value' => $article->DescrizioneFormato
],
[
'key' => 'pagine',
'value' => $article->Pagine
],
[
'key' => 'edizione',
'value' => $article->Edizione
],
[
'key' => 'ristampa',
'value' => $article->Ristampa
],
[
'key' => 'DataPubblicazione',
'value' => $article->DataPubblicazione
],
]
];
if ($id == 0) {
$versione = 'Nuova versione';
$category = Category::where('name', $article->argomento);
if ($category->count() > 0) {
$categoria = $category->first();
$categoriaid = $categoria['id'];
} else {
$categoriaid = 0;
}
}
break;
}
}
} catch (\Exception $e) {
echo "Error: " . $e->getMessage();
$productLogger->addLog('info', $e->getMessage());
}
}
}
// get the last record of Stock
echo "\nLast record Stock ...";
$lastrecordStock = Stock::latest('DataOra')->take(1)->get();
$productLogger->addLog('info', '\n');
foreach ($lastrecordStock as $stock) {
$productLogger->addLog('info', "Codice: " . $stock->Codice);
$productLogger->addLog('info', " QtaDisp: " . $stock->QtaDisponibile);
$productLogger->addLog('info', " DataOra: " . $stock->DataOra);
// Get the productsku record by $stock->Codice
$productsku = Product::where('sku', $stock->Codice)->first();
if ($productsku->count() > 0) {
// log the productsku record
$productskustr = json_encode($productsku, JSON_PRETTY_PRINT);
echo $productskustr;
$productLogger->addLog('info', "\n" . $productskustr);
}
$productLogger->addLog('info', "\n");
}
echo "************** FINE *********** ";
// Select all the fields of the Stock table
} catch (\Exception $e) {
$productLogger->addLog('info', $e->getMessage());
echo "Error: " . $e->getMessage();
}
$productLogger->setLogandSendEmail('Test Paolo');
if (true) {
// Send the email
Mail::raw($log, function ($message) {
$message->to(Mylog::getEmail());
$message->subject(Mylog::getSubjectEmail("TESTPAO"));
});
}
}
}

46
app/Console/Kernel.php Normal file → Executable file
View File

@@ -4,6 +4,7 @@ namespace App\Console;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
use Illuminate\Support\Facades\Log;
class Kernel extends ConsoleKernel
{
@@ -13,7 +14,8 @@ class Kernel extends ConsoleKernel
* @var array
*/
protected $commands = [
//
Commands\CheckProductBySku::class,
Commands\GetFirstOrder::class,
];
/**
@@ -24,14 +26,40 @@ class Kernel extends ConsoleKernel
*/
protected function schedule(Schedule $schedule)
{
// Log::info('Controllo schedule...');
// $schedule->command('inspire')->hourly();
$schedule->command('backup:clean')->daily()->at('02:00');
$schedule->command('backup:run')->daily()->at('07:00');
$schedule->command('order:gmupdate')->everyTenMinutes();
$schedule->command('product:gmupdate')->daily()->at('02:00');
$schedule->command('product:used:gmupdate')->daily()->at('04:30');
//$schedule->command('product:updateqta')->hourly()->between('8:00', '00:00')->withoutOverlapping();
$schedule->command('product:updateqta')->everyFiveMinutes()->between('8:00', '00:00')->withoutOverlapping();
$schedule->command('backup:clean')->daily()->at('02:00')->before(function () {
Log::info('Running backup:clean command');
});
$schedule->command('backup:run')->daily()->at('07:00')->before(function () {
Log::info('Running backup:run command');
});
$schedule->command('order:gmupdate')->everyTwoHours()->before(function () {
Log::info('Running order:gmupdate command');
});
$schedule->command('product:gmupdate')->daily()->at('02:00')->before(function () {
Log::info('Running product:gmupdate command');
});
$schedule->command('product:used:gmupdate')->daily()->at('04:30')->before(function () {
Log::info('Running product:used:gmupdate command');
});
$schedule->command('product:updateqta')->everyFiveMinutes()->between('8:00', '00:00')->withoutOverlapping()->before(function () {
Log::info('Running product:updateqta command');
});
/*$schedule->command('product:startday')
->daily()->at('08:00')
->before(function () {
Log::info('Running product:startday command');
});
// Pianifica l'esecuzione del comando ogni giorno a mezzanotte
$schedule->command('fix:storage-permissions')->everyFiveMinutes()->before(function () {
Log::info('Running fix:storage-permissions');
});
*/
}
/**
@@ -41,7 +69,7 @@ class Kernel extends ConsoleKernel
*/
protected function commands()
{
$this->load(__DIR__.'/Commands');
$this->load(__DIR__ . '/Commands');
require base_path('routes/console.php');
}

2661
app/CustomFuncPao.php Normal file

File diff suppressed because it is too large Load Diff

0
app/Exceptions/Handler.php Normal file → Executable file
View File

0
app/Gm_product.php Normal file → Executable file
View File

18
app/Helpers/MyConfig.php Normal file
View File

@@ -0,0 +1,18 @@
<?php
namespace App\Helpers;
class MyConfig
{
static public $qtaInPrevendita;
static public $qtaMinima;
static public $campoPreordine;
// Metodo statico per inizializzare i valori
public static function init()
{
self::$qtaInPrevendita = config('preordini.QTA_IN_PREVENDITA');
self::$qtaMinima = config('preordini.QTA_MINIMA_PER_PREVENDITA');
self::$campoPreordine = config('preordini.CAMPO_PREORDINE');
}
}

View File

@@ -0,0 +1,728 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\View;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
use App\Article;
use DateTime;
class ArticleController extends Controller
{
private function convDate($data_italiana)
{
return DateTime::createFromFormat('Y-m-d', $data_italiana)->format('Y-d-m');
}
private function articoliByDataStart($data_start)
{
$data_start = $this->convDate($data_start);
$data_start = $data_start . ' 00:00:00';
ini_set("memory_limit", "512M");
try {
$articoli = Article::join(DB::raw('(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli GROUP BY IdArticolo) b'), function ($join) {
$join->on('T_WEB_Articoli.IdArticolo', '=', 'b.IdArticolo')
->on('T_WEB_Articoli.DataOra', '=', 'b.data');
})
->leftJoin(DB::raw('(SELECT CodArticoloGM, SUM(Qta) as totVen, MAX(DataOra) as ultimaDataOra FROM T_WEB_Ordini WHERE DataOra > \'' . $data_start . '\' GROUP BY CodArticoloGM) O'), 'T_WEB_Articoli.IdArticolo', '=', 'O.CodArticoloGM')
// ->leftJoin(DB::raw('(SELECT CodArticolo, SUM(Qta) as totVen, MAX(DataOra) as ultimaDataOra FROM T_WEB_ArticoliFatturati WHERE DataOra > \'' . $data_start . '\' GROUP BY CodArticolo) O'), 'T_WEB_Articoli.IdArticolo', '=', 'O.CodArticolo')
->leftJoin(DB::raw('(SELECT g.IdTipologia, g.Descrizione as DescrizioneTipologia FROM T_WEB_Tipologie g JOIN (SELECT IdTipologia, MAX(DataOra) as data1 from T_WEB_Tipologie GROUP BY IdTipologia) h ON g.IdTipologia = h.IdTipologia AND g.DataOra = h.data1 ) i'), function ($join) {
$join->on('T_WEB_Articoli.IdTipologia', '=', 'i.IdTipologia');
})
->select('T_WEB_Articoli.*', 'ultimaDataOra', DB::raw('COALESCE(O.totVen, 0) as totVen'))
->where('totVen', '>', 0)
->where('DescrizioneTipologia', 'Libri')
->orderBy('totVen', 'desc')
->get();
// var_dump($articoli->toArray());
if ($articoli->isEmpty()) {
return ['error' => 'Nessun articolo'];
}
} catch (\Exception $e) {
// Registrazione dell'errore
return ['error' => 'Si è verificato un errore durante il recupero dei dati: ' . $e->getMessage()];
}
return $articoli;
}
private function queryOrdini($numrec)
{
ini_set("memory_limit", "512M");
try {
$ordini = DB::table('T_WEB_Ordini as O')
->leftJoin(DB::raw('(
SELECT
IdArticolo,
MAX(DataOra) as data
FROM T_WEB_Articoli
GROUP BY IdArticolo
) b'), 'O.CodArticoloGM', '=', 'b.IdArticolo')
->join('T_WEB_Articoli as A', function ($join) {
$join->on('O.CodArticoloGM', '=', 'A.IdArticolo')
->on('b.data', '=', 'A.DataOra');
})
->select(
DB::raw('ROW_NUMBER() OVER (ORDER BY O.DataOra DESC) AS progressivo'),
'O.DataOra',
'O.Qta',
'A.Titolo',
'O.CodArticoloGM',
'A.Ean13'
)
->orderBy('O.DataOra', 'desc')
->take($numrec)
->get();
} catch (\Exception $e) {
// Registrazione dell'errore
return response()->json(['error' => 'Si è verificato un errore durante il recupero dei dati: ' . $e->getMessage()], 500);
}
return $ordini;
}
private function queryOrdiniByIdArticolo($idArticolo)
{
ini_set("memory_limit", "512M");
try {
$ordini = DB::table('T_WEB_Ordini as O')
->leftJoin(DB::raw('(
SELECT
IdArticolo,
MAX(DataOra) as data
FROM T_WEB_Articoli
GROUP BY IdArticolo
) b'), 'O.CodArticoloGM', '=', 'b.IdArticolo')
->join('T_WEB_Articoli as A', function ($join) {
$join->on('O.CodArticoloGM', '=', 'A.IdArticolo')
->on('b.data', '=', 'A.DataOra');
})
->select(
DB::raw('ROW_NUMBER() OVER (ORDER BY O.DataOra DESC) AS progressivo'),
'O.DataOra',
'O.Qta',
'A.Titolo',
'O.CodArticoloGM',
'A.Ean13'
)
->orderBy('O.DataOra', 'desc')
->where('O.CodArticoloGM', '=', $idArticolo)
->get();
} catch (\Exception $e) {
// Registrazione dell'errore
return response()->json(['error' => 'Si è verificato un errore durante il recupero dei dati: ' . $e->getMessage()], 500);
}
return $ordini;
}
private function queryFatturatiByIdArticolo($idArticolo)
{
ini_set("memory_limit", "512M");
try {
$ordini = DB::table('T_WEB_ArticoliFatturati as O')
->leftJoin(DB::raw('(
SELECT
IdArticolo,
MAX(DataOra) as data
FROM T_WEB_Articoli
GROUP BY IdArticolo
) b'), 'O.CodArticolo', '=', 'b.IdArticolo')
->join('T_WEB_Articoli as A', function ($join) {
$join->on('O.CodArticolo', '=', 'A.IdArticolo')
->on('b.data', '=', 'A.DataOra');
})
->select(
DB::raw('ROW_NUMBER() OVER (ORDER BY O.DataOra DESC) AS progressivo'),
'O.DataOra',
'O.Qta',
'A.Titolo',
'O.CodArticolo',
'A.Ean13'
)
->orderBy('O.DataOra', 'desc')
->where('O.CodArticolo', '=', $idArticolo)
->get();
} catch (\Exception $e) {
// Registrazione dell'errore
return response()->json(['error' => 'Si è verificato un errore durante il recupero dei dati: ' . $e->getMessage()], 500);
}
return $ordini;
}
private function queryshowInfoArticolo($idArticolo)
{
try {
ini_set("memory_limit", "512M");
$articoli = Article::where('IdArticolo', $idArticolo)
->get(); // Usa
if ($articoli->isEmpty()) {
return ['error' => 'Nessun articolo'];
}
} catch (\Exception $e) {
// Registrazione dell'errore
return ['error' => 'Si è verificato un errore durante il recupero dei dati: ' . $e->getMessage()];
}
return $articoli;
}
private function queryArticlesSales()
{
try {
ini_set("memory_limit", "512M");
$articoliVenduti = Article::join(DB::raw('(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli GROUP BY IdArticolo) b'), function ($join) {
$join->on('T_WEB_Articoli.IdArticolo', '=', 'b.IdArticolo')
->on('T_WEB_Articoli.DataOra', '=', 'b.data');
})
->leftJoin(DB::raw('(SELECT e.IdStatoProdotto, e.Descrizione as DescrizioneStatoProdotto FROM T_WEB_StatiProdotto e JOIN (SELECT IdStatoProdotto, MAX(DataOra) as data1 from T_WEB_StatiProdotto GROUP BY IdStatoProdotto) c ON e.IdStatoProdotto = c.IdStatoProdotto AND e.DataOra = c.data1 ) f'), function ($join) {
$join->on('T_WEB_Articoli.IdStatoProdotto', '=', 'f.IdStatoProdotto');
})
->leftJoin(DB::raw('(SELECT g.IdTipologia, g.Descrizione as DescrizioneTipologia FROM T_WEB_Tipologie g JOIN (SELECT IdTipologia, MAX(DataOra) as data1 from T_WEB_Tipologie GROUP BY IdTipologia) h ON g.IdTipologia = h.IdTipologia AND g.DataOra = h.data1 ) i'), function ($join) {
$join->on('T_WEB_Articoli.IdTipologia', '=', 'i.IdTipologia');
})
->leftJoin(DB::raw('(SELECT l.IdTipoFormato, l.Descrizione as DescrizioneFormato FROM T_WEB_TipiFormato l JOIN (SELECT IdTipoFormato, MAX(DataOra) as data1 from T_WEB_TipiFormato GROUP BY IdTipoFormato) m ON l.IdTipoFormato = m.IdTipoFormato AND l.DataOra = m.data1 ) n'), function ($join) {
$join->on('T_WEB_Articoli.IdTipoFormato', '=', 'n.IdTipoFormato');
})
->leftJoin(DB::raw('(SELECT CodArticoloGM, SUM(Qta) as totVen FROM T_WEB_Ordini GROUP BY CodArticoloGM) o'), function ($join) {
$join->on('T_WEB_Articoli.IdArticolo', '=', 'o.CodArticoloGM');
})
->leftJoin(DB::raw('(SELECT CodArticoloGM, SUM(Qta) as venduti3mesi, RANK() OVER (ORDER BY SUM(Qta) DESC) as rank3M
FROM T_WEB_Ordini
WHERE DataOra >= DATEADD(MONTH, -3, GETDATE())
GROUP BY CodArticoloGM) p'), function ($join) {
$join->on('T_WEB_Articoli.IdArticolo', '=', 'p.CodArticoloGM');
})
->leftJoin(DB::raw('(SELECT CodArticoloGM, SUM(Qta) as venduti6mesi, RANK() OVER (ORDER BY SUM(Qta) DESC) as rank6M
FROM T_WEB_Ordini
WHERE DataOra >= DATEADD(MONTH, -6, GETDATE())
GROUP BY CodArticoloGM) q'), function ($join) {
$join->on('T_WEB_Articoli.IdArticolo', '=', 'q.CodArticoloGM');
})
->leftJoin(DB::raw('(SELECT CodArticoloGM, SUM(Qta) as venduti1anno, RANK() OVER (ORDER BY SUM(Qta) DESC) as rank1Y
FROM T_WEB_Ordini
WHERE DataOra >= DATEADD(MONTH, -12, GETDATE())
GROUP BY CodArticoloGM) r'), function ($join) {
$join->on('T_WEB_Articoli.IdArticolo', '=', 'r.CodArticoloGM');
})
->leftJoin(DB::raw('(SELECT CodArticoloGM, MAX(DataOra) as ultimoOrdine
FROM T_WEB_Ordini
GROUP BY CodArticoloGM) s'), function ($join) {
$join->on('T_WEB_Articoli.IdArticolo', '=', 's.CodArticoloGM');
})
->leftJoin(DB::raw('(SELECT CodArticolo, SUM(TRY_CAST(Qta AS INT)) as fat3mesi, RANK() OVER (ORDER BY SUM(TRY_CAST(Qta AS INT)) DESC) as fatrank3M
FROM T_WEB_ArticoliFatturati
WHERE DataOra >= DATEADD(MONTH, -3, GETDATE())
GROUP BY CodArticolo) t'), function ($join) {
$join->on('T_WEB_Articoli.IdArticolo', '=', 't.CodArticolo');
})
->leftJoin(DB::raw('(SELECT CodArticolo, SUM(TRY_CAST(Qta AS INT)) as fat6mesi, RANK() OVER (ORDER BY SUM(TRY_CAST(Qta AS INT)) DESC) as fatrank6M
FROM T_WEB_ArticoliFatturati
WHERE DataOra >= DATEADD(MONTH, -6, GETDATE())
GROUP BY CodArticolo) t2'), function ($join) {
$join->on('T_WEB_Articoli.IdArticolo', '=', 't2.CodArticolo');
})
->leftJoin(DB::raw('(SELECT CodArticolo, SUM(TRY_CAST(Qta AS BIGINT)) as totFat
FROM T_WEB_ArticoliFatturati
WHERE TRY_CAST(Qta AS BIGINT) IS NOT NULL
GROUP BY CodArticolo) u'), function ($join) {
$join->on('T_WEB_Articoli.IdArticolo', '=', 'u.CodArticolo');
})
->leftJoin(DB::raw('(
SELECT v.IdCollana, v.Descrizione as DescrizioneCollana
FROM T_WEB_Collane v
INNER JOIN (
SELECT IdCollana, MAX(ID) as MaxID
FROM T_WEB_Collane
GROUP BY IdCollana
) x ON v.IdCollana = x.IdCollana AND v.ID = x.MaxID
) y'), function ($join) {
$join->on('T_WEB_Articoli.IdCollana', '=', 'y.IdCollana');
})
->leftJoin(DB::raw('(
SELECT g2.IdArgomento, g2.Descrizione as DescrArgomento
FROM T_WEB_Argomenti g2
JOIN (SELECT IdArgomento, MAX(DataOra) as data12 from T_WEB_Argomenti
GROUP BY IdArgomento) h2
ON g2.IdArgomento = h2.IdArgomento AND g2.DataOra = h2.data12 ) i2'
), function ($join) {
$join->on('T_WEB_Articoli.ListaArgomenti', '=', 'i2.IdArgomento');
})
->select(
'T_WEB_Articoli.*'
,
'f.DescrizioneStatoProdotto',
'i.DescrizioneTipologia',
'n.DescrizioneFormato',
'y.DescrizioneCollana',
'i2.DescrArgomento',
DB::raw('COALESCE(o.totVen, 0) as totVen'),
DB::raw('COALESCE(u.totFat, 0) as totFat'),
DB::raw('COALESCE(p.venduti3mesi, 0) as venduti3mesi'),
DB::raw('COALESCE(t.fat3mesi, 0) as fat3mesi'),
DB::raw('COALESCE(t2.fat6mesi, 0) as fat6mesi'),
DB::raw('COALESCE(p.rank3M, 0) as rank3M'),
DB::raw('COALESCE(t.fatrank3M, 0) as fatrank3M'),
DB::raw('COALESCE(t2.fatrank6M, 0) as fatrank6M'),
DB::raw('COALESCE(q.venduti6mesi, 0) as venduti6mesi'),
DB::raw('COALESCE(q.rank6M, 0) as rank6M'),
DB::raw('COALESCE(r.venduti1anno, 0) as venduti1anno'),
DB::raw('COALESCE(r.rank1Y, 0) as rank1Y'),
DB::raw('s.ultimoOrdine')
)
->where(function ($query) {
$query->where('DescrizioneStatoProdotto', 'In commercio')
->orWhere('DescrizioneStatoProdotto', '2023 in commercio')
->orWhere('DescrizioneStatoProdotto', 'Vendita sito')
->orWhere('DescrizioneStatoProdotto', 'In prevendita')
->orWhere('DescrizioneStatoProdotto', 'Prossima uscita');
})
->where('DescrizioneTipologia', 'Libri')
->orderBy('totVen', 'desc')
->get();
if ($articoliVenduti->isEmpty()) {
return response()->json(['message' => 'Nessun articolo trovato.'], 404);
}
} catch (\Exception $e) {
// Registrazione dell'errore
return response()->json(['error' => 'Si è verificato un errore durante il recupero dei dati: ' . $e->getMessage()], 500);
}
// Restituisci una risposta JSON con i dati
return $articoliVenduti;
}
private function queryArticlesFatturati()
{
try {
ini_set("memory_limit", "512M");
$articoliVenduti = Article::join(DB::raw('(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli GROUP BY IdArticolo) b'), function ($join) {
$join->on('T_WEB_Articoli.IdArticolo', '=', 'b.IdArticolo')
->on('T_WEB_Articoli.DataOra', '=', 'b.data');
})
->leftJoin(DB::raw('(SELECT e.IdStatoProdotto, e.Descrizione as DescrizioneStatoProdotto FROM T_WEB_StatiProdotto e
JOIN (SELECT IdStatoProdotto, MAX(DataOra) as data1
FROM T_WEB_StatiProdotto GROUP BY IdStatoProdotto) c
ON e.IdStatoProdotto = c.IdStatoProdotto AND e.DataOra = c.data1) f'), function ($join) {
$join->on('T_WEB_Articoli.IdStatoProdotto', '=', 'f.IdStatoProdotto');
})
->leftJoin(DB::raw('(SELECT g.IdTipologia, g.Descrizione as DescrizioneTipologia FROM T_WEB_Tipologie g
JOIN (SELECT IdTipologia, MAX(DataOra) as data1
FROM T_WEB_Tipologie GROUP BY IdTipologia) h
ON g.IdTipologia = h.IdTipologia AND g.DataOra = h.data1) i'), function ($join) {
$join->on('T_WEB_Articoli.IdTipologia', '=', 'i.IdTipologia');
})
->leftJoin(DB::raw('(SELECT l.IdTipoFormato, l.Descrizione as DescrizioneFormato FROM T_WEB_TipiFormato l
JOIN (SELECT IdTipoFormato, MAX(DataOra) as data1
FROM T_WEB_TipiFormato GROUP BY IdTipoFormato) m
ON l.IdTipoFormato = m.IdTipoFormato AND l.DataOra = m.data1) n'), function ($join) {
$join->on('T_WEB_Articoli.IdTipoFormato', '=', 'n.IdTipoFormato');
})
->leftJoin(DB::raw('(SELECT CodArticolo, SUM(TRY_CAST(Qta AS INT)) AS totFat FROM T_WEB_ArticoliFatturati
GROUP BY CodArticolo) o'), function ($join) {
$join->on('T_WEB_Articoli.IdArticolo', '=', 'o.CodArticolo');
})
->leftJoin(DB::raw('(SELECT CodArticolo, SUM(TRY_CAST(Qta AS INT)) as venduti3mesi,
RANK() OVER (ORDER BY SUM(TRY_CAST(Qta AS INT)) DESC) as rank3M
FROM T_WEB_ArticoliFatturati
WHERE DataOra >= DATEADD(MONTH, -3, GETDATE())
GROUP BY CodArticolo) p'), function ($join) {
$join->on('T_WEB_Articoli.IdArticolo', '=', 'p.CodArticolo');
})
->leftJoin(DB::raw('(SELECT CodArticolo, SUM(TRY_CAST(Qta AS INT)) as venduti6mesi,
RANK() OVER (ORDER BY SUM(TRY_CAST(Qta AS INT)) DESC) as rank6M
FROM T_WEB_ArticoliFatturati
WHERE DataOra >= DATEADD(MONTH, -6, GETDATE())
GROUP BY CodArticolo) q'), function ($join) {
$join->on('T_WEB_Articoli.IdArticolo', '=', 'q.CodArticolo');
})
->leftJoin(DB::raw('(SELECT CodArticolo, SUM(TRY_CAST(Qta AS INT)) as venduti1anno,
RANK() OVER (ORDER BY SUM(TRY_CAST(Qta AS INT)) DESC) as rank1Y
FROM T_WEB_ArticoliFatturati
WHERE DataOra >= DATEADD(MONTH, -12, GETDATE())
GROUP BY CodArticolo) r'), function ($join) {
$join->on('T_WEB_Articoli.IdArticolo', '=', 'r.CodArticolo');
})
->addSelect(DB::raw('(
SELECT MAX(DataOra)
FROM T_WEB_ArticoliFatturati
WHERE ISNUMERIC(Qta) = 1
AND CodArticolo = T_WEB_Articoli.IdArticolo
) as ultimoOrdine'))
->leftJoin(DB::raw('(SELECT v.IdCollana, v.Descrizione as DescrizioneCollana
FROM T_WEB_Collane v
INNER JOIN (SELECT IdCollana, MAX(ID) as MaxID
FROM T_WEB_Collane GROUP BY IdCollana) x
ON v.IdCollana = x.IdCollana AND v.ID = x.MaxID) y'), function ($join) {
$join->on('T_WEB_Articoli.IdCollana', '=', 'y.IdCollana');
})
->leftJoin(DB::raw('(SELECT g2.IdArgomento, g2.Descrizione as DescrArgomento
FROM T_WEB_Argomenti g2
JOIN (SELECT IdArgomento, MAX(DataOra) as data12
FROM T_WEB_Argomenti
GROUP BY IdArgomento) h
ON g2.IdArgomento = h.IdArgomento AND g2.DataOra = h.data12) i2'), function ($join) {
$join->on('T_WEB_Articoli.ListaArgomenti', '=', 'i2.IdArgomento');
})
->select(
'T_WEB_Articoli.*',
'f.DescrizioneStatoProdotto',
'i.DescrizioneTipologia',
'n.DescrizioneFormato',
'y.DescrizioneCollana',
'i2.DescrArgomento',
DB::raw('COALESCE(o.totFat, 0) as totFat'),
DB::raw('COALESCE(p.venduti3mesi, 0) as venduti3mesi'),
DB::raw('COALESCE(p.rank3M, 0) as rank3M'),
DB::raw('COALESCE(q.venduti6mesi, 0) as venduti6mesi'),
DB::raw('COALESCE(q.rank6M, 0) as rank6M'),
DB::raw('COALESCE(r.venduti1anno, 0) as venduti1anno'),
DB::raw('COALESCE(r.rank1Y, 0) as rank1Y'),
DB::raw('s.ultimoOrdine')
)
->where(function ($query) {
$query->where('DescrizioneStatoProdotto', 'In commercio')
->orWhere('DescrizioneStatoProdotto', '2023 in commercio')
->orWhere('DescrizioneStatoProdotto', 'Vendita sito')
->orWhere('DescrizioneStatoProdotto', 'In prevendita')
->orWhere('DescrizioneStatoProdotto', 'Prossima uscita');
})
->where('DescrizioneTipologia', 'Libri')
//->orderBy('rank1Y', 'asc')
->orderBy('totFat', 'desc')
->get();
if ($articoliVenduti->isEmpty()) {
return response()->json(['message' => 'Nessun articolo fatturato trovato.'], 404);
}
} catch (\Exception $e) {
// Registrazione dell'errore
return response()->json(['error' => 'Si è verificato un errore durante il recupero dei dati: ' . $e->getMessage()], 500);
}
return $articoliVenduti;
}
public function showArticlesSales(Request $request)
{
try {
$articoliVenduti = $this->queryArticlesSales();
return view('export_articles_sales', ['articoliVenduti' => $articoliVenduti]);
} catch (\Exception $e) {
// Potresti considerare di registrare l'errore per debugging
return new Response('Error exporting showArticlesSales: ' . $e->getMessage(), 500);
}
}
public function showArticlesFatturati(Request $request)
{
try {
$articoliVenduti = $this->queryArticlesFatturati();
return view('export_articles_fatturati', ['articoliVenduti' => $articoliVenduti]);
} catch (\Exception $e) {
// Potresti considerare di registrare l'errore per debugging
return new Response('Error exporting showArticlesFatturati: ' . $e->getMessage() .
'Articoli Fatturati ' . json_encode($articoliVenduti), 500);
}
}
public function showArticoliByDataStart($data_start)
{
try {
$this->validateDate($data_start);
$articoliVenduti = $this->articoliByDataStart($data_start);
if ($articoliVenduti && isset($articoliVenduti['error'])) {
return view('error', ['message' => $articoliVenduti['error']]);
}
return view('view-lista-ordini-totale', ['articoli' => $articoliVenduti]);
} catch (\Exception $e) {
// Potresti considerare di registrare l'errore per debugging
return new Response('Error exporting showArticoliByDataStart: ' . $e->getMessage(), 500);
}
}
protected function validateDate($date)
{
$validator = \Validator::make(['data_start' => $date], [
'data_start' => 'required|date_format:Y-m-d'
]);
if ($validator->fails()) {
throw new ValidationException($validator);
}
}
public function showOrdini($numrec)
{
try {
$ordini = $this->queryOrdini($numrec);
return view('ordini_test', ['ordini' => $ordini]);
} catch (\Exception $e) {
// Potresti considerare di registrare l'errore per debugging
return new Response('Error exporting showOrdini: ' . $e->getMessage(), 500);
}
}
public function showOrdiniByIdArticolo($idArticolo)
{
try {
$ordini = $this->queryOrdiniByIdArticolo($idArticolo);
return view('ordini_test', ['ordini' => $ordini]);
} catch (\Exception $e) {
// Potresti considerare di registrare l'errore per debugging
return new Response('Error exporting showOrdiniByIdArticolo: ' . $e->getMessage(), 500);
}
}
public function showFatturatiByIdArticolo($idArticolo)
{
try {
$ordini = $this->queryFatturatiByIdArticolo($idArticolo);
return view('fatturati', ['ordini' => $ordini]);
} catch (\Exception $e) {
// Potresti considerare di registrare l'errore per debugging
return new Response('Error exporting showFatturatiByIdArticolo: ' . $e->getMessage(), 500);
}
}
public function showInfoArticolo($idArticolo)
{
try {
$articoli = $this->queryshowInfoArticolo($idArticolo);
if ($articoli && isset($articoli['error'])) {
return view('error', ['message' => $articoli['error']]);
}
return view('info-articolo', ['articoli' => $articoli]);
} catch (\Exception $e) {
// Potresti considerare di registrare l'errore per debugging
return new Response('Error exporting showInfoArticolo: ' . $e->getMessage(), 500);
}
}
public function exportArticlesSales(Request $request): Response
{
try {
$articoliVenduti = $this->queryArticlesSales();
$filename = 'articoli_venduti_' . date('Y-m-d') . '.csv';
$response = new Response();
$response->headers->set('Content-Type', 'text/csv');
$response->headers->set('Content-Disposition', 'attachment; filename="' . $filename . '"');
$csvContent = "IdArticolo,Titolo,DataPubblicazione,Ean13,rank3M,rank6M,rank1Y,totVen,totVenUltimoMese,totVenUltimi6Mesi,totVenUltimoAnno,totVenUltimi2Anni,UltimoOrdine,misure\n";
foreach ($articoliVenduti as $articoloVenduto) {
$csvContent .= "{$articoloVenduto->idArticolo},{$articoloVenduto->Titolo},{$articoloVenduto->DataPubblicazione},{$articoloVenduto->rank3M},{$articoloVenduto->rank6M},{$articoloVenduto->rank1Y},{$articoloVenduto->totVen},{$articoloVenduto->venduti3mesi},{$articoloVenduto->venduti6mesi},{$articoloVenduto->venduti1anno},{$articoloVenduto->ultimoOrdine},{$articoloVenduto->misure}\n";
}
$response->setContent($csvContent);
return $response;
} catch (\Exception $e) {
// Potresti considerare di registrare l'errore per debugging
return new Response('Error exporting exportArticlesSales: ' . $e->getMessage(), 500);
}
}
public function exportArticlesSalesByJSON_Base($cosa, Request $request): Response
{
try {
if ($cosa === 'fatturati') {
$articoliVenduti = $this->queryArticlesFatturati();
} else {
$articoliVenduti = $this->queryArticlesSales();
}
if ($articoliVenduti->isEmpty()) {
return response()->json(['message' => 'Nessun articolo trovato.'], 404);
} else {
// return response()->json($articoliVenduti);
$result = $articoliVenduti->map(function ($articoloVenduto) {
return [
'IdArticolo' => $articoloVenduto->IdArticolo,
'title' => $articoloVenduto->Titolo,
'DataPubblicazione' => $articoloVenduto->DataPubblicazione,
'isbn' => $articoloVenduto->Ean13,
'IdCollana' => $articoloVenduto->IdCollana,
'DescrizioneCollana' => $articoloVenduto->DescrizioneCollana,
'DescrArgomento' => $articoloVenduto->DescrArgomento,
'ListaArgomenti' => $articoloVenduto->ListaArgomenti,
'Pagine' => $articoloVenduto->Pagine,
'IdTipoFormato' => $articoloVenduto->IdTipoFormato,
'Misure' => $articoloVenduto->Misure,
'totVen' => $articoloVenduto->totVen,
'totFat' => $articoloVenduto->totFat,
'rank3M' => $articoloVenduto->rank3M,
'fatrank3M' => $articoloVenduto->fatrank3M,
'fatrank6M' => $articoloVenduto->fatrank6M,
'rank6M' => $articoloVenduto->rank6M,
'rank1Y' => $articoloVenduto->rank1Y,
'fatLast3M' => $articoloVenduto->fat3mesi,
'fatLast6M' => $articoloVenduto->fat6mesi,
'vLast3M' => $articoloVenduto->venduti3mesi,
'vLast6M' => $articoloVenduto->venduti6mesi,
'vLastY' => $articoloVenduto->venduti1anno,
'dataUltimoOrdine' => $articoloVenduto->ultimoOrdine,
];
});
// Imposta il contenuto della risposta come JSON
$response = new Response($result->toJson(), 200);
$response->headers->set('Content-Type', 'application/json');
$response->headers->set('Content-Disposition', 'attachment; filename="ranking_' . $cosa . '_' . date('Y-m-d') . '.json"');
return $response;
}
} catch (\Exception $e) {
return new Response('Error exporting exportArticlesSalesByJSON_Base: ' . $e->getMessage() . '<br>Articoli: ' . json_decode($articoliVenduti), 500);
}
}
public function exportArticlesSalesByJSON(Request $request): Response
{
return $this->exportArticlesSalesByJSON_Base('', $request);
}
public function exportArticlesFatturatiByJSON(Request $request): Response
{
return $this->exportArticlesSalesByJSON_Base('fatturati', $request);
}
public function test(Request $request)
{
try {
$articoli = $this->queryTest2();
dd($articoli);
} catch (\Exception $e) {
// Potresti considerare di registrare l'errore per debugging
return new Response('Erroe test: ' . $e->getMessage(), 500);
}
}
public function queryTest2()
{
try {
$duplicati = DB::table('T_WEB_Articoli')
->select('idArticolo', 'Titolo', 'DataPubblicazione', 'Ean13', DB::raw('count(*) as total'))
->groupBy('idArticolo', 'Titolo', 'DataPubblicazione', 'Ean13')
->having('total', '>', 0) // Filtra duplicati
->get();
return $duplicati;
} catch (\Exception $e) {
return new Response('Errore: ' . $e->getMessage(), 500);
}
}
function showTableContent($tableName, $recordCount)
{
// Verifica se la tabella esiste
if (!Schema::hasTable($tableName)) {
return "La tabella '$tableName' non esiste.";
}
// Ottieni tutti i campi della tabella
$columns = Schema::getColumnListing($tableName);
// Recupera i record dalla tabella
$records = DB::table($tableName)->take($recordCount)->get();
// Se non ci sono record, restituisci un messaggio
if ($records->isEmpty()) {
return "Nessun record trovato nella tabella '$tableName'.";
}
// Prepara l'output in formato tabellare
$output = "<table border='1'><thead><tr>";
// Intestazioni della tabella
foreach ($columns as $column) {
$output .= "<th>$column</th>";
}
$output .= "</tr></thead><tbody>";
// Righe dei dati
foreach ($records as $record) {
$output .= "<tr>";
foreach ($columns as $column) {
$output .= "<td>" . ($record->$column ?? 'NULL') . "</td>";
}
$output .= "</tr>";
}
$output .= "</tbody></table>";
return $output;
}
public function showTableByName($tableName, $numrec)
{
// Usa la funzione showTableContent per ottenere i dati in formato tabellare
$tableContent = $this->showTableContent($tableName, $numrec);
// Passa i dati alla vista
return view('article.info', [
'tableName' => $tableName,
'tableContent' => $tableContent
]);
}
}

0
app/Http/Controllers/Controller.php Normal file → Executable file
View File

View File

@@ -0,0 +1,41 @@
<?php
namespace App\Http\Controllers;
use Codexshaper\WooCommerce\Facades\Product;
use Illuminate\Support\Facades\Artisan;
class TestPaoController extends Controller
{
public function runTestPao()
{
try {
echo "run";
Artisan::call('product:testpao', []);
} catch (\Exception $e) {
// Log or handle the exception here
}
}
public function provapao()
{
$this->runTestPao();
echo "Test OK!";
}
public function getProductBySku($sku)
{
echo "getProductBySku:" . $sku;
$product = Product::where('sku', $sku)->first();
// Estrai il prodotto utilizzando il codice SKU
if ($product) {
// Ritorna il prodotto trovato come JSON
return response()->json($product);
} else {
// Ritorna un errore se il prodotto non è trovato
return response()->json(['error' => 'Product not found'], 404);
}
}
}

View File

@@ -0,0 +1,31 @@
<?php
namespace App\Http\Controllers;
use Codexshaper\WooCommerce\Facades\WooCommerce;
use Illuminate\Http\Request;
use Codexshaper\WooCommerce\Models\Product;
class WooCommerceController extends Controller
{
public function index()
{
try {
// Esegui una richiesta per ottenere i primi prodotti
// $products = WooCommerce::get('products', ['per_page' => 1]);
$products = Product::where('sku','16670')->get();
if (!empty($products)) {
// Stampa l'ID del primo prodotto
echo 'Connection successful! First product ID: ' . $products[0]->id;
} else {
echo 'No products found.';
}
} catch (\Exception $e) {
// Gestisce eventuali errori di connessione
echo 'Error: ' . $e->getMessage();
}
}
}

0
app/Http/Kernel.php Normal file → Executable file
View File

0
app/Http/Middleware/Authenticate.php Normal file → Executable file
View File

0
app/Http/Middleware/CheckForMaintenanceMode.php Normal file → Executable file
View File

0
app/Http/Middleware/EncryptCookies.php Normal file → Executable file
View File

0
app/Http/Middleware/RedirectIfAuthenticated.php Normal file → Executable file
View File

0
app/Http/Middleware/TrimStrings.php Normal file → Executable file
View File

0
app/Http/Middleware/TrustHosts.php Normal file → Executable file
View File

0
app/Http/Middleware/TrustProxies.php Normal file → Executable file
View File

0
app/Http/Middleware/VerifyCsrfToken.php Normal file → Executable file
View File

11
app/Models/Post.php Executable file
View File

@@ -0,0 +1,11 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
protected $table = 'wp_posts'; // Nome della tabella di WordPress
protected $connection = 'wordpress'; // Connessione al database di WordPress
}

11
app/Models/PostMeta.php Executable file
View File

@@ -0,0 +1,11 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class PostMeta extends Model
{
protected $table = 'wp_postmeta';
protected $connection = 'wordpress';
}

21
app/Mylog.php Executable file
View File

@@ -0,0 +1,21 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Mylog extends Model
{
public static $subject = '';
public static $email = 'log@fioredellavita.it';
public static function getSubjectEmail(string $subject) {
return self::$subject . " " . $subject;
}
public static function getEmail() {
return self::$email;
}
}

0
app/Newproduct.php Normal file → Executable file
View File

0
app/Order.php Normal file → Executable file
View File

15
app/OrderWeb.php Executable file
View File

@@ -0,0 +1,15 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class OrderWeb extends Model
{
//protected $connection = 'mysql_test';
protected $connection = 'sqlsrv_test';
protected $table = 'T_WEB_TestateOrdini';
public $timestamps = false;
}

1
app/Orderdetail.php Normal file → Executable file
View File

@@ -12,5 +12,6 @@ class Orderdetail extends Model
public $timestamps = false;
}

17
app/OrderdetailWeb.php Executable file
View File

@@ -0,0 +1,17 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class OrderdetailWeb extends Model
{
//protected $connection = 'mysql_test';
protected $connection = 'sqlsrv_test';
protected $table = 'T_WEB_Ordini';
public $timestamps = false;
}

0
app/Providers/AppServiceProvider.php Normal file → Executable file
View File

0
app/Providers/AuthServiceProvider.php Normal file → Executable file
View File

0
app/Providers/BroadcastServiceProvider.php Normal file → Executable file
View File

0
app/Providers/EventServiceProvider.php Normal file → Executable file
View File

0
app/Providers/RouteServiceProvider.php Normal file → Executable file
View File

0
app/Publisher.php Normal file → Executable file
View File

101
app/Services/ProductLogger.php Executable file
View File

@@ -0,0 +1,101 @@
<?php
namespace App\Services;
use Carbon\Carbon;
use App\Setting;
use App\Article;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Mail;
use App\Mylog;
class ProductLogger
{
public $logs = [];
protected $settingOra = null;
protected $channel = "";
protected $aggiornato = false;
protected $scrivisoloseaggiornato = false;
public function __construct($settingOra, $channel, $scrivisoloseaggiornato = false)
{
$this->settingOra = $settingOra;
$this->channel = $channel;
$this->scrivisoloseaggiornato = $scrivisoloseaggiornato;
$this->init();
}
public function init()
{
$oraUpdate = Carbon::now();
if ($this->settingOra) {
$this->logs['start'] = 'Inizio da ' . $this->settingOra->value . "\n<br>";
$this->logs['end'] = 'Fino a ' . $oraUpdate->toDateTimeString() . "\n<br>";
} else {
$this->logs['start'] = 'Iniziato: ' . $oraUpdate->toDateTimeString() . "\n<br>";
}
$this->logs['custom'] = ""; // for custom log messages
}
public function updateSettingOra($newOra)
{
$this->settingOra = $newOra;
}
public function setLogandSendEmail($descr)
{
if (is_object($this->settingOra) && method_exists($this->settingOra, 'save')) {
$ora_update = Carbon::now();
$this->settingOra->value = $ora_update->toDateTimeString();
$this->settingOra->save();
} else {
// Gestisci il caso in cui $this->settingOra non è un oggetto o non ha il metodo save
// Log::warning('Impossibile eseguire il metodo save() su $this->settingOra, non è un oggetto o il metodo non esiste.');
}
if (($this->scrivisoloseaggiornato && $this->aggiornato) || !$this->scrivisoloseaggiornato) {
Log::channel($this->channel)->notice($this->concatenateLogs());
Mail::raw($this->concatenateLogs(), function ($message) use ($descr) {
$message->to(Mylog::getEmail());
$message->subject(Mylog::getSubjectEmail($descr));
});
}
}
public function addLog($type, $message)
{
if ($type === '') {
$type = 'LOG';
}
if (!isset($this->logs[$type])) {
$this->logs[$type] = "";
}
if (isset($this->logs[$type])) {
$this->logs[$type] .= $message . "\n<br>";
}
}
public function getLogs()
{
return $this->logs;
}
public function concatenateLogs()
{
return implode("", $this->logs);
}
public function setAggiornato($aggiornato)
{
$this->aggiornato = $aggiornato;
}
public function getAggiornato()
{
return $this->aggiornato;
}
}

0
app/Setting.php Normal file → Executable file
View File

0
app/Statusproduct.php Normal file → Executable file
View File

0
app/Stock.php Normal file → Executable file
View File

0
app/User.php Normal file → Executable file
View File

0
artisan Normal file → Executable file
View File

0
bootstrap/app.php Normal file → Executable file
View File

View File

@@ -8,13 +8,13 @@
],
"license": "MIT",
"require": {
"php": "^7.2.5|^8.0",
"codexshaper/laravel-woocommerce": "^3.0",
"php": "^7.3|^8.0",
"codexshaper/laravel-woocommerce": "^3.0.4",
"fideloper/proxy": "^4.4",
"fruitcake/laravel-cors": "^2.0",
"fruitcake/laravel-cors": "^2.2",
"guzzlehttp/guzzle": "^6.3.1|^7.0.1",
"laravel/framework": "^7.29",
"laravel/tinker": "^2.5",
"laravel/framework": "^8.0",
"laravel/tinker": "^2.9.0",
"spatie/laravel-backup": "^6"
},
"require-dev": {
@@ -41,6 +41,9 @@
"classmap": [
"database/seeds",
"database/factories"
],
"files": [
"app/Helpers/MyConfig.php"
]
},
"autoload-dev": {

2692
composer.lock generated

File diff suppressed because it is too large Load Diff

2
composer_update.sh Executable file
View File

@@ -0,0 +1,2 @@
/usr/bin/php8.2 /usr/local/bin/composer update

0
config/app.php Normal file → Executable file
View File

0
config/auth.php Normal file → Executable file
View File

0
config/backup.php Normal file → Executable file
View File

0
config/broadcasting.php Normal file → Executable file
View File

0
config/cache.php Normal file → Executable file
View File

0
config/cors.php Normal file → Executable file
View File

27
config/database.php Normal file → Executable file
View File

@@ -82,8 +82,8 @@ return [
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],
'mysql_appoggio' => [
'mysql_appoggio' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL_MYSQL2'),
'host' => env('DB_HOST_MYSQL1', '127.0.0.1'),
@@ -102,8 +102,8 @@ return [
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],
'pgsql' => [
'driver' => 'pgsql',
'url' => env('DATABASE_URL'),
@@ -130,9 +130,11 @@ return [
'charset' => 'utf8',
'prefix' => '',
'prefix_indexes' => true,
'encrypt' => env('DB_ENCRYPT', 'yes'),
'trust_server_certificate' => env('DB_TRUST_SERVER_CERTIFICATE', 'true'),
],
'sqlsrv_test' => [
'sqlsrv_test' => [
'driver' => 'sqlsrv',
'url' => env('DATABASE_URL_SQLSRVTEST'),
'host' => env('DB_HOST_SQLSRVTEST', 'localhost'),
@@ -145,6 +147,19 @@ return [
'prefix_indexes' => true,
],
/*
'wordpress' => [
'driver' => 'mysql',
'host' => env('WORDPRESS_HOST'),
'port' => env('WORDPRESS_port'),
'database' => env('WORDPRESS_DBNAME'),
'username' => env('WORDPRESS_USER'),
'password' => env('WORDPRESS_PWD'),
'charset' => 'utf8',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '', // Prefix della tabella di WordPress
]*/
],
/*
@@ -177,7 +192,7 @@ return [
'options' => [
'cluster' => env('REDIS_CLUSTER', 'redis'),
'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'),
'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_') . '_database_'),
],
'default' => [

4
config/filesystems.php Normal file → Executable file
View File

@@ -64,13 +64,13 @@ return [
'url' => env('AWS_URL'),
'endpoint' => env('AWS_ENDPOINT'),
],
'ftp' => [
'driver' => 'ftp',
'host' => 'ftp.pecos.it',
'username' => '15710515@aruba.it',
'password' => 'Km:cOuy#F8',
// Optional FTP Settings...
// 'port' => 21,
'root' => '/www.pecos.it/.backup',

0
config/hashing.php Normal file → Executable file
View File

18
config/logging.php Normal file → Executable file
View File

@@ -106,6 +106,18 @@ return [
'level' => 'info',
'days' => 30,
],
'neworders' => [
'driver' => 'daily',
'path' => storage_path('logs/neworders/orders.log'),
'level' => 'info',
'days' => 30,
],
'checkorders' => [
'driver' => 'daily',
'path' => storage_path('logs/checkorders.log'),
'level' => 'info',
'days' => 30,
],
'updateproductsused' => [
'driver' => 'daily',
'path' => storage_path('logs/updateproductsused/update.log'),
@@ -117,6 +129,12 @@ return [
'path' => storage_path('logs/updateproductsqta/updateqta.log'),
'level' => 'info',
'days' => 30,
],
'testpao' => [
'driver' => 'daily',
'path' => storage_path('logs/testpao.log'),
'level' => 'info',
'days' => 30,
],
],

0
config/mail.php Normal file → Executable file
View File

7
config/preordini.php Normal file
View File

@@ -0,0 +1,7 @@
<?php
return [
'QTA_IN_PREVENDITA' => 10000,
'QTA_MINIMA_PER_PREVENDITA' => 9000,
'CAMPO_PREORDINE' => '_ywpo_preorder',
];

0
config/queue.php Normal file → Executable file
View File

0
config/services.php Normal file → Executable file
View File

0
config/session.php Normal file → Executable file
View File

0
config/view.php Normal file → Executable file
View File

View File

@@ -53,7 +53,7 @@ return [
* Default WP timeout
*================================================================================.
*/
'timeout' => env('WOOCOMMERCE_WP_TIMEOUT', 15),
'timeout' => env('WOOCOMMERCE_WP_TIMEOUT', 30),
/**
*================================================================================

0
database/.gitignore vendored Normal file → Executable file
View File

0
database/factories/UserFactory.php Normal file → Executable file
View File

View File

View File

View File

0
database/seeds/DatabaseSeeder.php Normal file → Executable file
View File

0
git Normal file
View File

14
launch.json Executable file
View File

@@ -0,0 +1,14 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "LARAVEL Listen for Xdebug (PROD)",
"type": "php",
"request": "launch",
"port": 9003,
"pathMappings": {
"/var/www/html": "${workspaceFolder}"
}
}
]
}

0
package.json Normal file → Executable file
View File

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