Compare commits
No commits in common. "dev" and "7126-improvedWaste" have entirely different histories.
dev
...
7126-impro
|
@ -36,7 +36,3 @@ rules:
|
|||
jasmine/no-focused-tests: 0
|
||||
jasmine/prefer-toHaveBeenCalledWith: 0
|
||||
arrow-spacing: ["error", { "before": true, "after": true }]
|
||||
no-restricted-syntax:
|
||||
- "error"
|
||||
- selector: "NewExpression[callee.name='Date']"
|
||||
message: "Use Date.vnNew() instead of new Date()."
|
||||
|
|
545
CHANGELOG.md
545
CHANGELOG.md
|
@ -1,548 +1,3 @@
|
|||
# Version 25.04 - 2025-01-28
|
||||
|
||||
### Added 🆕
|
||||
|
||||
- feat: refs #7202 added new field by:Jon
|
||||
- feat: refs #7343 delete sending to user by:ivanm
|
||||
- feat: refs #7569 refs#7569 sendEmailNotification by:sergiodt
|
||||
- feat: refs #7569 refs#7569 sendMail by:sergiodt
|
||||
- feat: refs #7584 changes request by:robert
|
||||
- feat: refs #7584 workerTimeControl_afterDelete by:robert
|
||||
- feat: refs #7832 implement refund ticket restrictions and add unit tests for ticket service updates by:jgallego
|
||||
- feat: refs #7882 Added coords to create a address by:guillermo
|
||||
- feat: refs #8073 change names and primary key by:ivanm
|
||||
- feat: refs #8073 new comment message by:ivanm
|
||||
- feat: refs #8073 #refs 8073 create vn.productionCountryVolume by:ivanm
|
||||
- feat: refs #8117 add worker first and last name to item type query by:jtubau
|
||||
- feat: refs #8247 added new acl for VnUser model by:Jon
|
||||
- feat: refs #8258 added uppercase validation on supplier create (origin/8258-uppercaseInputs) by:provira
|
||||
- feat: refs #8298 add priceOptimum and packagesDiscountFactor to zone and client tables by:jgallego
|
||||
- feat: refs #8298 add priceOptimum column to zoneEvent and update zone fixture data by:jgallego
|
||||
- feat: refs #8298 update price calculation logic and add packagesDiscountFactor column to client table by:jgallego
|
||||
- feat: refs #8357 Agregados triggers para manejar exclusiones de trabajadores en la tabla workerMana by:guillermo
|
||||
- feat: refs #8361 add hasToDownloadRate field to currency model and update exchange rate logic by:jgallego
|
||||
- feat: refs #8381 add initial and final temperature fields to entry model and queries by:jgallego
|
||||
|
||||
### Changed 📦
|
||||
|
||||
- refactor: order by id by:alexm
|
||||
- refactor: refs #7202 modified new invoice procedure and incoterms sql by:Jon
|
||||
- refactor: refs #7202 modified procedure to include customsAgent field when creating an invoice by:Jon
|
||||
- refactor: refs #8378 deprecate bi.f_tvc by:ivanm
|
||||
|
||||
### Fixed 🛠️
|
||||
|
||||
- feat: refs #8298 add priceOptimum column to zoneEvent and update zone fixture data by:jgallego
|
||||
- fix: prevent slow update (HEAD -> 8452-testToMaster, origin/test, origin/8452-testToMaster, test) by:alexm
|
||||
- fix: refs #7202 fixed back test by:Jon
|
||||
- fix: refs #7202 fixed sql by:Jon
|
||||
- fix: refs #7569 refs·6861 ticketOrderReserve by:sergiodt
|
||||
- fix: refs #7569 refs·6861 ticketOrderReserve (origin/7569-sendEmailOrderTicket) by:sergiodt
|
||||
- fix: refs #7569 refs#8188 add IfNotExists by:sergiodt
|
||||
- fix: refs #7832 update ticketService model test suite to correct describe block by:jgallego
|
||||
- fix: refs #8298 remove duplicate entry in English locale file by:jgallego
|
||||
- fix: refs #8361 streamline transaction handling in exchangeRateUpdate by:jgallego
|
||||
- test: refs #8448 fix e2e by:alexm
|
||||
|
||||
# Version 25.00 - 2025-01-14
|
||||
|
||||
### Added 🆕
|
||||
|
||||
- feat: refs #7235 add serialType parameter to getInvoiceDate and implement corresponding tests by:jgallego
|
||||
- feat: refs #7301 update lastEntriesFilter to include landedDate and enhance test cases (origin/7301-removeRedundantInventories) by:pablone
|
||||
- feat: refs #7880 error code and translations by:ivanm
|
||||
- feat: refs #7924 add isCustomInspectionRequired field to item and update related logic by:jgallego
|
||||
- feat: refs #8167 update canBeInvoiced method to include active status check and improve test cases by:jgallego
|
||||
- feat: refs #8167 update locale and improve invoicing logic with error handling by:jgallego
|
||||
- feat: refs #8246 added relation for the front's new field by:Jon
|
||||
- feat: refs #8266 added itemFk and needed fixtures by:jtubau
|
||||
- feat: refs #8324 country unique by:Carlos Andrés
|
||||
|
||||
### Changed 📦
|
||||
|
||||
|
||||
### Fixed 🛠️
|
||||
|
||||
- feat: refs #8266 added itemFk and needed fixtures by:jtubau
|
||||
- fix: add isCustomInspectionRequired column to item table for customs inspection indication by:jgallego
|
||||
- fix: canBeInvoiced only in makeInvoice by:alexm
|
||||
- fix: hotFix getMondayWeekYear by:alexm
|
||||
- fix: refs #6598 update ACL property assignment by:jorgep
|
||||
- fix: refs #6861 refs#6861 addPrevOK by:sergiodt
|
||||
- fix: refs #7301 remove debug console log and update test cases in lastEntriesFilter by:pablone
|
||||
- fix: refs #7301 update SQL fixtures and improve lastEntriesFilter logic by:pablone
|
||||
|
||||
# Version 24.52 - 2024-01-07
|
||||
|
||||
### Added 🆕
|
||||
|
||||
- chore: pullinfo by:alexm
|
||||
- chore: refs #8002 drop comments by:jorgep
|
||||
- chore: refs #8002 drop useless code by:jorgep
|
||||
- feat: added translations and show error in item-type by:Jon
|
||||
- feat: modified data to be equal as the updated back by:Jon
|
||||
- feat: refs #4460 invoiceIn refund by:Carlos Andrés
|
||||
- feat: refs #4466 invoiceIn refund by:Carlos Andrés
|
||||
- feat: refs #6583 add new opt in where builder by:jorgep
|
||||
- feat: refs #6583 add tests by:jorgep
|
||||
- feat: refs #6583 retrieve cloned sale by:jorgep
|
||||
- feat: refs #6583 rollback by:jorgep
|
||||
- feat: refs #7301 add inventory-config and acl by:pablone
|
||||
- feat: refs #7301 update SQL fixtures and enhance lastEntriesFilter logic by:pablone
|
||||
- feat: refs #7882 Added locationiq service by:guillermo
|
||||
- feat: refs #7882 Added osrm service by:guillermo
|
||||
- feat: refs #7882 Added tests by:guillermo
|
||||
- feat: refs #7882 Fixed problems osrm service by:guillermo
|
||||
- feat: refs #7882 Osrm service by:guillermo
|
||||
- feat: refs #7882 Reequested changes by:guillermo
|
||||
- feat: refs #7882 Requested changes by:guillermo
|
||||
- feat: refs #7936 add back test for updateInvoiceIn by:jorgep
|
||||
- feat: refs #7936 add company filter by:jorgep
|
||||
- feat: refs #7936 add currency check to updateInvoiceIn by:jorgep
|
||||
- feat: refs #7936 add currency handling in invoiceIn trigger by:jorgep
|
||||
- feat: refs #7936 add locale by:jorgep
|
||||
- feat: refs #7936 add minimum due date by:jorgep
|
||||
- feat: refs #7936 add reference rates for currency in fixtures by:jorgep
|
||||
- feat: refs #7936 add save validation by:jorgep
|
||||
- feat: refs #7936 add SiiTypeInvoiceIn model and update invoice correction logic by:jorgep
|
||||
- feat: refs #7936 add tests for invoiceIn by:jorgep
|
||||
- feat: refs #7936 add tests for invoiceIn filter by:jorgep
|
||||
- feat: refs #7936 add validation to InvoiceIn & InvoiceInTax by:jorgep
|
||||
- feat: refs #7936 return country code & is vies fields by:jorgep
|
||||
- feat: refs #8002 adjust to lilium by:jorgep
|
||||
- feat: refs #8002 drop support btn by:jorgep
|
||||
- feat: refs #8174 Changed datatype incompatibility access by:guillermo
|
||||
- feat: refs #8174 Created table sim by:guillermo
|
||||
- feat: refs #8174 create table simsupplier by:Jbreso
|
||||
- feat: refs #8174 fix by:Jbreso
|
||||
- feat: refs#8174 simSupplier by:Jbreso
|
||||
- feat: refs #8190 entry_getCommission by:robert
|
||||
- feat: refs #8190 entry_getCommission change request by:robert
|
||||
- feat: refs #8218 Added time and code in mistakeType by:guillermo
|
||||
- feat: refs #8293 include zone data by:Jtubau
|
||||
- refactor: refs #6583 entry report table style by:jorgep
|
||||
|
||||
### Changed 📦
|
||||
|
||||
- refactor: refs #6583 entry report table style by:jorgep
|
||||
- refactor: refs #6583 use warehouseId var by:jorgep
|
||||
- refactor: refs #7301 update entry and item filter tests to validate results against specific criteria by:pablone
|
||||
- refactor: refs #7882 Added ACL's by:guillermo
|
||||
- refactor: refs #7882 Deleted quadminds files by:guillermo
|
||||
- refactor: refs #7936 add transaction & tests by:jorgep
|
||||
- refactor: refs #7936 remove old trigger and add isRaid column to travel table by:jorgep
|
||||
- refactor: refs #7936 remove schema by:jorgep
|
||||
- refactor: refs #8002 use loop wip by:jorgep
|
||||
- refactor: refs #8004 simplify SQL query by removing redundant aliases by:pablone
|
||||
- refactor: refs #8262 Deprecated inventoryFailure by:guillermo
|
||||
- refactor: refs #8266 changed expedition item name by:Jtubau
|
||||
- refactor: refs #8272 delete bi.rotacion by:ivanm
|
||||
|
||||
### Fixed 🛠️
|
||||
|
||||
- feat: refs #7301 update SQL fixtures and enhance lastEntriesFilter logic by:pablone
|
||||
- feat: refs #7936 add reference rates for currency in fixtures by:jorgep
|
||||
- feat: refs #8174 fix by:Jbreso
|
||||
- fix: 8174 pasar PIN a CHAR by:Jbreso
|
||||
- fix: monitorPayMethodFilter by:carlossa
|
||||
- fix: refs #6389 back by:carlossa
|
||||
- fix: refs #6389 filter by:carlossa
|
||||
- fix: refs #6389 packing by:carlossa
|
||||
- fix: refs #6389 saleMonitor filter by:carlossa
|
||||
- fix: refs #6389 salesFilter by:carlossa
|
||||
- fix: refs #6583 drop focus by:jorgep
|
||||
- fix: refs #6583 update onlyWithDestination logic to handle null values correctly by:jorgep
|
||||
- fix: refs #7028 fix confirm deny by:carlossa
|
||||
- fix: refs #7028 fix pr by:carlossa
|
||||
- fix: refs #7028 fix tback findById by:carlossa
|
||||
- fix: refs #7028 fix userError by:carlossa
|
||||
- fix: refs #7028 remove ifs by:carlossa
|
||||
- fix: refs #7028 requesterId fix by:carlossa
|
||||
- fix: refs #7028 requesterId fix salesPerson by:carlossa
|
||||
- fix: refs #7031 fix vnPrice by:carlossa
|
||||
- fix: refs #7031 remove check by:carlossa
|
||||
- fix: refs #7301 update ACL insertion to use INSERT IGNORE and refine property value by:pablone
|
||||
- fix: refs #7936 add IF NOT EXISTS to isRaid column in travel table by:jorgep
|
||||
- fix: refs #7936 change type by:jorgep
|
||||
- fix: refs #7936 check if insert in hook & change test description by:jorgep
|
||||
- fix: refs #7936 conflicts by:jorgep
|
||||
- fix: refs #7936 locale by:jorgep
|
||||
- fix: refs #7936 update Spanish locale for SII terms by:jorgep
|
||||
- fix: refs #8174 fix by:Jbreso
|
||||
- fix: refs#8174 fix by:Jbreso
|
||||
- fix: refs8174 pasar a char el PIN by:Jbreso
|
||||
- fix: refs #8174 Version by:guillermo
|
||||
- fix: refs #8251 add eng template by:carlossa
|
||||
- fix: refs #8315 fixture claimDevelopment by:alexm
|
||||
|
||||
# Version 24.48 - 2024-11-25
|
||||
|
||||
### Added 🆕
|
||||
|
||||
- feat: refs #4948 Added ticket_selfConsumptionPackaging by:guillermo
|
||||
- feat: refs #6818 add config table by:jorgep
|
||||
- feat: refs #6818 add records by:jorgep
|
||||
- feat: refs #6818 saysimple integration by:jorgep
|
||||
- feat: refs #6845 userInterface by:sergiodt
|
||||
- feat: refs #6869 add back by:jorgep
|
||||
- feat: refs #6869 define model by:jorgep
|
||||
- feat: refs #6869 refs#6869 itemShelving_get (origin/6869-createGetDetails) by:sergiodt
|
||||
- feat: refs #7006 itemTypeLog by:guillermo
|
||||
- feat: refs #7006 itemTypeLog created by:guillermo
|
||||
- feat: refs #7006 Requested changes by:guillermo
|
||||
- feat: refs #7193 added scope in parking model by:Jon
|
||||
- feat: refs #7244 Requested changes by:guillermo
|
||||
- feat: refs #7266 Added details and improvements in item label reports by:guillermo
|
||||
- feat: refs #7266 buyFkForPrint by:sergiodt
|
||||
- feat: refs #7266 First commit by:guillermo
|
||||
- feat: refs #7266 Item label barcode by:guillermo
|
||||
- feat: refs #7266 Item label QR by:guillermo
|
||||
- feat: refs #7266 Item label QR finished by:guillermo
|
||||
- feat: refs #7266 Minor change by:guillermo
|
||||
- feat: refs #7266 Print corrections by:guillermo
|
||||
- feat: refs #7266 Requested changes and improvements by:guillermo
|
||||
- feat: refs #7266 Requested changes and query optimization by:guillermo
|
||||
- feat: refs #7266 Version by:guillermo
|
||||
- feat: refs #7289 #7289 apply option 1 by:Javier Segarra
|
||||
- feat: refs #7289 #7289 remove bad translation by:Javier Segarra
|
||||
- feat: refs #7524 restrict fields by:jorgep
|
||||
- feat: refs #7641 fine tunning by:jorgep
|
||||
- feat: refs #7641 improve style by:jorgep
|
||||
- feat: refs #7743 add simple spec for sendMail by:pablone
|
||||
- feat: refs #7743 add try catch stmt to the test by:pablone
|
||||
- feat: refs #7874 add default type by:jorgep
|
||||
- feat: refs #7874 use name by:jorgep
|
||||
- feat: refs #7920 Added ItemShelving in shelvingLog by:guillermo
|
||||
- feat: refs #7921 refs#7921 sendLostExpedition by:sergiodt
|
||||
- feat: refs #7922 refs #792 scanOrder by:sergiodt
|
||||
- feat: refs #7943 quitar lectura en metodos comunes by:jgallego
|
||||
- feat: refs #7943 return just the required content by:jorgep
|
||||
- feat: refs #7943 usa back con permisos by:jgallego
|
||||
- feat: refs #8020 machineWorkerDeprecated by:sergiodt
|
||||
- feat: refs #8057 Added data updates by:guillermo
|
||||
- feat: refs #8057 Added data updates (origin/8057-geoFk) by:guillermo
|
||||
- feat: refs #8057 Added geoFk columns by:guillermo
|
||||
- feat: refs #8057 Fix version by:guillermo
|
||||
- feat: refs #8057 More precision in getGeo by:guillermo
|
||||
- feat: refs #8057 Requested changes by:guillermo
|
||||
- feat: refs #8071 quitar esquema by:robert
|
||||
- feat: refs #8071 travel_weeklyClone by:robert
|
||||
- feat: refs #8080 Added column comment by:guillermo
|
||||
- feat: refs #8083 add prop by:jorgep
|
||||
- feat: refs #8087 Traspasar redadas a travels by:Carlos Andrés
|
||||
- feat: refs #8099 refs#8099 addComplmentSalary by:sergiodt
|
||||
- feat: refs #8124 Enrutadores nuevos requerimientos by:Carlos Andrés
|
||||
- feat: refs #8124 Enrutadores nuevos requerimientos (origin/8124-enrutadoresNuevosRequerimientos) by:Carlos Andrés
|
||||
- feat: refs #8127 entry_getCommission by:robert
|
||||
- feat: refs #8127 quitar esquemas by:robert
|
||||
- feat: refs #8135 refs#8135 updateTicketACL (origin/8135-ticketACL) by:sergiodt
|
||||
- feat: refs #8143 deprecate recoverPass and sync from account.user by:ivanm
|
||||
- feat: refs #8150 movExpeditions by:sergiodt
|
||||
- feat: refs #8151 Added test by:guillermo
|
||||
- feat: refs #8151 moveExpeditions by:guillermo
|
||||
- feat: refs #8151 Requested changes by:guillermo
|
||||
- feat(Supplier): refs #6828 add companySize by:alexm
|
||||
- refactor: refs #7641 entry report style by:jorgep
|
||||
|
||||
### Changed 📦
|
||||
|
||||
- refactor: refs #6920 add correct role by:alexm
|
||||
- refactor: refs #7242 Deleted select column by:guillermo
|
||||
- refactor: refs #7457 Added from param if not exists by:guillermo
|
||||
- refactor: refs #7641 entry report style by:jorgep
|
||||
- refactor: refs #7715 Deleted hasNewLabelMrwMethod column by:guillermo
|
||||
- refactor: refs #7920 Fix tests by:guillermo
|
||||
- refactor: refs #7920 Fix version by:guillermo
|
||||
- refactor: refs #7920 itemShelvingLog by:guillermo
|
||||
- refactor: refs #7920 Main change by:guillermo
|
||||
- refactor: refs #7920 Major changes by:guillermo
|
||||
- refactor: refs #7920 No changes in itemShelvingLog table by:guillermo
|
||||
- refactor: refs #7920 Requested changes by:guillermo
|
||||
- refactor: refs #7950 Created cmr model (7950-cmrModelUnify) by:guillermo
|
||||
- refactor: refs #7950 Requested changes by:guillermo
|
||||
- refactor: refs #8153 Optimized order_getTax by:guillermo
|
||||
|
||||
### Fixed 🛠️
|
||||
|
||||
- fix: clean deletes also zoneEvent range records by:jgallego
|
||||
- fix: more data for fixture.before by:Pako
|
||||
- fix: refs #4948 Tests by:guillermo
|
||||
- fix: refs #6644 email and translations by:carlossa
|
||||
- fix: refs #6818 add config by:jorgep
|
||||
- fix: refs #6818 add defaultChannel by:jorgep
|
||||
- fix: refs #6818 use right col type by:jorgep
|
||||
- fix: refs #6869 use id as primaryKey by:jorgep
|
||||
- fix: refs #7244 Added collection ACL by:guillermo
|
||||
- fix: refs #7283 item filters by:carlossa
|
||||
- fix: refs #7283 remove by:carlossa
|
||||
- fix: refs #7283 remove tests by:carlossa
|
||||
- fix: refs #7283 tback by:carlossa
|
||||
- fix: refs #7323 add remaining fields (origin/7323-warfix-addRemainingFields) by:jorgep
|
||||
- fix: refs #7457 add with on select to reduce by:pablone
|
||||
- fix: refs #7457 empty commit for gitea by:pablone
|
||||
- fix: refs #7457 error on empty from param and add translate by:pablone
|
||||
- fix: refs #7457 remove group by calc time reduce bellow 1s by:pablone
|
||||
- fix: refs #7457 remove translate and use param definition for restriction by:pablone
|
||||
- fix: refs #7641 align columns by:jorgep
|
||||
- fix: refs #7641 drop boilerplate code by:jorgep
|
||||
- fix: refs #7920 refs#7920 itemShelvingLog by:sergiodt
|
||||
- fix: refs #8153 Version by:guillermo
|
||||
- revert cd7ed6987a88e00275b562d3248f368b6333620c by:Javier Segarra
|
||||
|
||||
# Version 24.38 - 2024-09-17
|
||||
|
||||
### Added 🆕
|
||||
|
||||
- chore: refs #7323 filter data by:jorgep
|
||||
- chore: refs #7323 fix test by:jorgep
|
||||
- chore: refs #7323 worker changes by:jorgep
|
||||
- chore: refs #7323 worker changes wip by:jorgep
|
||||
- chore: refs #7524 add select limit by:jorgep
|
||||
- feat(AccessToken&ACL): refs #7547 upgrade security by:alexm
|
||||
- feat: deleted code and redirect to Lilium by:Jon
|
||||
- feat: refs #4515 New throw buy_checkItem by:guillermo
|
||||
- feat: refs #6650 Added saleGroupLog by:guillermo
|
||||
- feat: refs #6650 new itemShelvingLog by:guillermo
|
||||
- feat: refs #6760 refs #actualiza campo nickname by:jgallego
|
||||
- feat: refs #7277 fdescribe by:jgallego
|
||||
- feat: refs #7277 fit by:jgallego
|
||||
- feat: refs #7277 refundInvoices by:jgallego
|
||||
- feat: refs #7277 test with warehouse by:jgallego
|
||||
- feat: refs #7277 traducciones by:jgallego
|
||||
- feat: refs #7277 transfer addressFk by:jgallego
|
||||
- feat: refs #7532 Requested changes by:guillermo
|
||||
- feat: refs #7564 Added proc by:guillermo
|
||||
- feat: refs #7564 Added ticket_setVolumeItemCost by:guillermo
|
||||
- feat: refs #7564 Added volume column by:guillermo
|
||||
- feat: refs #7564 Fix version by:guillermo
|
||||
- feat: refs #7564 Requested changes by:guillermo
|
||||
- feat: refs #7615 setDeleted by:robert
|
||||
- feat: refs #7650 Added no transfer lines to inventory entry and fixtures by:guillermo
|
||||
- feat: refs #7650 Fix tests by:guillermo
|
||||
- feat: refs #7747 Delete buyUltimate and buyUltimateFromInterval by:ivanm
|
||||
- feat: refs #7759 Changed defined only of vn objects by:guillermo
|
||||
- feat: refs #7759 Changed definer root to vn-admin by:guillermo
|
||||
- feat: refs #7759 Changed name by:guillermo
|
||||
- feat: refs #7759 Deleted version 11163-maroonEucalyptus by:guillermo
|
||||
- feat: refs #7759 Revoke routine grants vn by:guillermo
|
||||
- feat: refs #7811 Added comment by:guillermo
|
||||
- feat: refs #7811 Added new params in datasources.json by:guillermo
|
||||
- feat: refs #7898 Add column "floor" in vn.parking by:ivanm
|
||||
- feat: refs #7898 Modify default by:ivanm
|
||||
- feat: refs #7905 Added new method getBuysCsv by:guillermo
|
||||
- feat: refs #7905 Added param toCsv by:guillermo
|
||||
- feat: refs #7938 remove unnecessary insert in clientLog by:alexm
|
||||
- feat: refs #7953 pullinfo (7953-devToTest_2438) by:alexm
|
||||
- feat(salix): #7671 define isDestiny field in model by:Javier Segarra
|
||||
- feat(salix): refs #7896 update version and changelog (origin/7896_down_devToTest_2436) by:Javier Segarra
|
||||
- feat(salix): refs #7905 #7905 use getBuys toCSV flattened by:Javier Segarra
|
||||
- feat(ssalix): refs #7671 #7671 checkDates by:Javier Segarra
|
||||
- feat(ssalix): refs #7671 #7671 checkDates to present by:Javier Segarra
|
||||
- feat: ticket 215005 Changed acl show transferClient by:guillermo
|
||||
|
||||
### Changed 📦
|
||||
|
||||
- perf: refs #7671 improve showBadDates by:Javier Segarra
|
||||
- perf(salix): refs #7671 #7671 imrpove and revert where changes by:Javier Segarra
|
||||
- refactor: deleted e2e & added back descriptor and summary by:Jon
|
||||
|
||||
### Fixed 🛠️
|
||||
|
||||
- chore: refs #7323 fix test by:jorgep
|
||||
- feat: refs #7650 Added no transfer lines to inventory entry and fixtures by:guillermo
|
||||
- fix by:guillermo
|
||||
- fixes: refs #7760 collection problems by:Carlos Andrés
|
||||
- fix merge dev (7407-workerMedical) by:alexm
|
||||
- fix: refs #6727 No delete log tables data in clean procedures by:guillermo
|
||||
- fix: refs #6897 back and tests by:carlossa
|
||||
- fix: refs #6897 back by:carlossa
|
||||
- fix: refs #6897 fix filter by:carlossa
|
||||
- fix: refs #6897 fix json by:carlossa
|
||||
- fix: refs #6897 travel filter by:carlossa
|
||||
- fix: refs #6897 error test by:jgallego
|
||||
- fix: refs #7323 fetch from right source by:jorgep
|
||||
- fix: refs #7564 Deleted query by:guillermo
|
||||
- fix: refs #7759 Added user 'vn'@'localhost' & grants by:guillermo
|
||||
- fix: refs #7760 collection problems by:Carlos Andrés
|
||||
- fix: refs #7760 tmp.ticketIPT by:Carlos Andrés
|
||||
- fix: refs #7905 added comments to flatten.js by:guillermo
|
||||
- fix: refs ##7905 Handle error by:guillermo
|
||||
- fix(salix): refs #7905 #7905 use right fn to flatten data by:Javier Segarra
|
||||
- perf(salix): refs #7671 #7671 imrpove and revert where changes by:Javier Segarra
|
||||
- refs #6898 fix supplier remove by:carlossa
|
||||
- refs #7407 fix acls fixtures by:carlossa
|
||||
- test: fix connections e2e (7547-accessToken-security) by:alexm
|
||||
- test: refs #7277 fix test proposal by:Javier Segarra
|
||||
- test(salix): refs #7671 #7671 improve and revert where changes by:Javier Segarra
|
||||
|
||||
# Version 24.36 - 2024-09-03
|
||||
|
||||
### Added 🆕
|
||||
|
||||
- chore: refs #7524 WIP limit call by:jorgep
|
||||
- chore: refs #7524 modify ormConfig table col (origin/7524-warmfix-modifyColumn) by:jorgep
|
||||
- feat(update-user): refs #7848 add twoFactor by:alexm
|
||||
- feat: #3199 Requested changes by:guillermo
|
||||
- feat: refs #3199 Added more scopes ticket_recalcByScope by:guillermo
|
||||
- feat: refs #3199 Added one more scope ticket_recalcByScope by:guillermo
|
||||
- feat: refs #3199 Created ticket_recalcItemTaxCountryByScope by:guillermo
|
||||
- feat: refs #3199 Requested changes by:guillermo
|
||||
- feat: refs #7346 add multiple feature by:jgallego
|
||||
- feat: refs #7346 backTest checks new implementation by:jgallego
|
||||
- feat: refs #7346 mas intuitivo by:jgallego
|
||||
- feat: refs #7514 Changes to put srt log (origin/7514-srtLog) by:guillermo
|
||||
- feat: refs #7524 add default limit (origin/7524-limitSelect) by:jorgep
|
||||
- feat: refs #7524 add mock limit on find query by:jorgep
|
||||
- feat: refs #7524 wip remote hooks by:jorgep
|
||||
- feat: refs #7562 Requested changes by:guillermo
|
||||
- feat: refs #7567 Changed time to call event by:guillermo
|
||||
- feat: refs #7567 Requested changes by:guillermo
|
||||
- feat: refs #7710 pr revision by:jgallego
|
||||
- feat: refs #7710 test fixed (origin/7710-cloneWithTicketPackaging, 7710-cloneWithTicketPackaging) by:jgallego
|
||||
- feat: refs #7712 Fix by:guillermo
|
||||
- feat: refs #7712 Unify by:guillermo
|
||||
- feat: refs #7712 sizeLimit (origin/7712-sizeLimit) by:guillermo
|
||||
- feat: refs #7758 Add code mandateType and accountDetailType by:ivanm
|
||||
- feat: refs #7758 Modify code lowerCamelCase and UNIQUE by:ivanm
|
||||
- feat: refs #7758 accountDetailType fix deploy error by:ivanm
|
||||
- feat: refs #7784 Changes in entry-order-pdf by:guillermo
|
||||
- feat: refs #7784 Requested changes by:guillermo
|
||||
- feat: refs #7799 Added Fk in vn.item.itemPackingTypeFk by:guillermo
|
||||
- feat: refs #7800 Added company Fk by:guillermo
|
||||
- feat: refs #7842 Added editorFk in vn.host by:guillermo
|
||||
- feat: refs #7860 Update new packagings (origin/7860-newPackaging) by:guillermo
|
||||
- feat: refs #7862 roadmap new fields by:ivanm
|
||||
- feat: refs #7882 Added quadMindsConfig table by:guillermo
|
||||
|
||||
### Changed 📦
|
||||
|
||||
- refactor: refs #7567 Fix and improvement by:guillermo
|
||||
- refactor: refs #7567 Minor change by:guillermo
|
||||
- refactor: refs #7756 Fix tests by:guillermo
|
||||
- refactor: refs #7798 Drop bi.Greuges_comercial_detail by:guillermo
|
||||
- refactor: refs #7848 adapt to lilium by:alexm
|
||||
|
||||
### Fixed 🛠️
|
||||
|
||||
- feat: refs #7710 test fixed (origin/7710-cloneWithTicketPackaging, 7710-cloneWithTicketPackaging) by:jgallego
|
||||
- feat: refs #7758 accountDetailType fix deploy error by:ivanm
|
||||
- fix(salix): #7283 ItemFixedPrice duplicated (origin/7283_itemFixedPrice_duplicated) by:Javier Segarra
|
||||
- fix: refs #7346 minor error (origin/7346, 7346) by:jgallego
|
||||
- fix: refs #7355 remove and tests accounts (origin/7355-accountMigration2) by:carlossa
|
||||
- fix: refs #7355 remove and tests accounts by:carlossa
|
||||
- fix: refs #7524 default limit select by:jorgep
|
||||
- fix: refs #7756 Foreign keys invoiceOut (origin/7756-fixRefFk) by:guillermo
|
||||
- fix: refs #7756 id 0 by:guillermo
|
||||
- fix: refs #7800 tpvMerchantEnable PRIMARY KEY (origin/7800-tpvMerchantEnable) by:guillermo
|
||||
- fix: refs #7800 tpvMerchantEnable PRIMARY KEY by:guillermo
|
||||
- fix: refs #7916 itemShelving_transfer (origin/test, test) by:guillermo
|
||||
- fix: refs #pako Deleted duplicated version by:guillermo
|
||||
|
||||
# Version 24.34 - 2024-08-20
|
||||
|
||||
### Added 🆕
|
||||
|
||||
- #6900 feat: clear empty by:jorgep
|
||||
- #6900 feat: empty commit by:jorgep
|
||||
- chore: refs #6900 beautify code by:jorgep
|
||||
- chore: refs #6989 add config model by:jorgep
|
||||
- feat workerActivity refs #6078 by:sergiodt
|
||||
- feat: #6453 Refactor (origin/6453-orderConfirm) by:guillermo
|
||||
- feat: #6453 Rollback always split by itemPackingType by:guillermo
|
||||
- feat: deleted worker module code & redirect to Lilium by:Jon
|
||||
- feat: refs #6453 Added new ticket search by:guillermo
|
||||
- feat: refs #6453 Fixes by:guillermo
|
||||
- feat: refs #6453 Minor changes by:guillermo
|
||||
- feat: refs #6453 Requested changes by:guillermo
|
||||
- feat: refs #6900 drop section by:jorgep
|
||||
- feat: refs #7283 order by desc date by:jorgep
|
||||
- feat: refs #7323 add locale by:jorgep
|
||||
- feat: refs #7323 redirect to lilium by:jorgep
|
||||
- feat: refs #7646 delete scannableCodeType by:robert
|
||||
- feat: refs #7713 Created ACLLog by:guillermo
|
||||
- feat: refs #7774 (origin/7774-ticket_cloneWeekly) by:robert
|
||||
- feat: refs #7774 #7774 Changes ticket_cloneWeekly by:guillermo
|
||||
- feat: refs #7774 ticket_cloneWeekly by:robert
|
||||
|
||||
### Changed 📦
|
||||
|
||||
- refactor: refs #6453 Major changes by:guillermo
|
||||
- refactor: refs #6453 Minor changes by:guillermo
|
||||
- refactor: refs #6453 order_confirmWithUser by:guillermo
|
||||
- refactor: refs #7646 #7646 Deleted scannable* variables productionConfig by:guillermo
|
||||
- refactor: refs #7820 Deprecated silexACL by:guillermo
|
||||
|
||||
### Fixed 🛠️
|
||||
|
||||
- #6900 fix: #6900 rectificative filter by:jorgep
|
||||
- #6900 fix: empty commit by:jorgep
|
||||
- fix(orders_filter): add sourceApp accepts by:alexm
|
||||
- fix: refs #6130 commit lint by:pablone
|
||||
- fix: refs #6453 order_confirmWithUser by:guillermo
|
||||
- fix: refs #7283 sql by:jorgep
|
||||
- fix: refs #7713 ACL Log by:guillermo
|
||||
- test: fix claim descriptor redirect to lilium by:alexm
|
||||
- test: fix ticket redirect to lilium by:alexm
|
||||
- test: fix ticket sale e2e by:alexm
|
||||
|
||||
# Version 24.32 - 2024-08-06
|
||||
|
||||
### Added 🆕
|
||||
|
||||
- chore: refs #7197 add supplierActivityFk filter by:jorgep
|
||||
- feat checkExpeditionPrintOut refs #7751 by:sergiodt
|
||||
- feat(defaulter_filter): add department by:alexm
|
||||
- feat: redirect to lilium page not found by:alexm
|
||||
- feat: refactor buyUltimate refs #7736 by:Carlos Andrés
|
||||
- feat: refs #6403 add delete by:pablone
|
||||
- feat: refs #7126 Added manaClaim calc by:guillermo
|
||||
- feat: refs #7126 Refactor and added columns in bs.waste table & proc by:guillermo
|
||||
- feat: refs #7197 filter by correcting by:jorgep
|
||||
- feat: refs #7297 add new columns by:pablone
|
||||
- feat: refs #7356 new parameters in sql for Weekly tickets front by:Jon
|
||||
- feat: refs #7401 redirect lilium by:pablone
|
||||
- feat: refs #7511 Fix tests by:guillermo
|
||||
- feat: refs #7511 Rename to multiConfig tables by:guillermo
|
||||
- feat: refs #7589 Added display (item_valuateInventory) by:guillermo
|
||||
- feat: refs #7589 Added vItemTypeFk & vItemCategoryFk (item_valuateInventory) by:guillermo
|
||||
- feat: refs #7681 Changes by:guillermo
|
||||
- feat: refs #7681 Optimization and refactor by:guillermo
|
||||
- feat: refs #7683 drop temporary table by:robert
|
||||
- feat: refs #7683 productionControl by:robert
|
||||
- feat: refs #7728 Added throw due date by:guillermo
|
||||
- feat: refs #7740 Ticket before update added restriction by:guillermo
|
||||
- feat(salix): #7648 Add field for endpoint as buyLabel report by:Javier Segarra
|
||||
- feat(salix): #7648 remove white line by:Javier Segarra
|
||||
- feat: tabla config dias margen vctos. refs #7728 by:Carlos Andrés
|
||||
|
||||
### Changed 📦
|
||||
|
||||
- eat: refactor buyUltimate refs #7736 by:Carlos Andrés
|
||||
- feat: refactor buyUltimate refs #7736 by:Carlos Andrés
|
||||
- feat: refs #7681 Optimization and refactor by:guillermo
|
||||
- refactor: refs #7126 Requested changes by:guillermo
|
||||
- refactor: refs #7511 Minor change by:guillermo
|
||||
- refactor: refs #7640 Multipleinventory available by:guillermo
|
||||
- refactor: refs #7681 Changes by:guillermo
|
||||
- refactor: refs #7681 Requested changes by:guillermo
|
||||
|
||||
### Fixed 🛠️
|
||||
|
||||
- add prefix (hotFix_liliumRedirection) by:alexm
|
||||
- fix(client_filter): add recovery by:alexm
|
||||
- fix: defaulter filter correct sql (6943-fix_defaulter_filter) by:alexm
|
||||
- fix(deletExpeditions): merge test → dev by:guillermo
|
||||
- fix: refs #6403 fix mrw cancel shipment return type by:pablone
|
||||
- fix: refs #7126 Added addressWaste type by:guillermo
|
||||
- fix: refs #7126 Fix by:guillermo
|
||||
- fix: refs #7126 Minor change by:guillermo
|
||||
- fix: refs #7126 Primary key no unique data by:guillermo
|
||||
- fix: refs #7126 Slow update by:guillermo
|
||||
- fix: refs #7511 Minor change by:guillermo
|
||||
- fix: refs #7546 Deleted insert util.binlogQueue by:guillermo
|
||||
- fix: refs #7811 Variables pm2 by:guillermo
|
||||
- fix: without path by:alexm
|
||||
|
||||
# Version 24.28 - 2024-07-09
|
||||
|
||||
### Added 🆕
|
||||
|
|
|
@ -7,8 +7,7 @@ def RUN_BUILD
|
|||
|
||||
def BRANCH_ENV = [
|
||||
test: 'test',
|
||||
master: 'production',
|
||||
beta: 'production'
|
||||
master: 'production'
|
||||
]
|
||||
|
||||
node {
|
||||
|
@ -19,8 +18,7 @@ node {
|
|||
PROTECTED_BRANCH = [
|
||||
'dev',
|
||||
'test',
|
||||
'master',
|
||||
'beta'
|
||||
'master'
|
||||
].contains(env.BRANCH_NAME)
|
||||
|
||||
FROM_GIT = env.JOB_NAME.startsWith('gitea/')
|
||||
|
@ -64,18 +62,6 @@ pipeline {
|
|||
PROJECT_NAME = 'salix'
|
||||
}
|
||||
stages {
|
||||
stage('Version') {
|
||||
when {
|
||||
expression { RUN_BUILD }
|
||||
}
|
||||
steps {
|
||||
script {
|
||||
def packageJson = readJSON file: 'package.json'
|
||||
def version = "${packageJson.version}-build${env.BUILD_ID}"
|
||||
writeFile(file: 'VERSION.txt', text: version)
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Install') {
|
||||
environment {
|
||||
NODE_ENV = ''
|
||||
|
@ -132,10 +118,11 @@ pipeline {
|
|||
when {
|
||||
expression { RUN_BUILD }
|
||||
}
|
||||
environment {
|
||||
VERSION = readFile 'VERSION.txt'
|
||||
}
|
||||
steps {
|
||||
script {
|
||||
def packageJson = readJSON file: 'package.json'
|
||||
env.VERSION = "${packageJson.version}-build${env.BUILD_ID}"
|
||||
}
|
||||
sh 'docker-compose build back'
|
||||
}
|
||||
}
|
||||
|
@ -169,10 +156,11 @@ pipeline {
|
|||
when {
|
||||
expression { RUN_BUILD }
|
||||
}
|
||||
environment {
|
||||
VERSION = readFile 'VERSION.txt'
|
||||
}
|
||||
steps {
|
||||
script {
|
||||
def packageJson = readJSON file: 'package.json'
|
||||
env.VERSION = "${packageJson.version}-build${env.BUILD_ID}"
|
||||
}
|
||||
sh 'gulp build'
|
||||
sh 'docker-compose build front'
|
||||
}
|
||||
|
@ -187,9 +175,12 @@ pipeline {
|
|||
}
|
||||
environment {
|
||||
CREDENTIALS = credentials('docker-registry')
|
||||
VERSION = readFile 'VERSION.txt'
|
||||
}
|
||||
steps {
|
||||
script {
|
||||
def packageJson = readJSON file: 'package.json'
|
||||
env.VERSION = "${packageJson.version}-build${env.BUILD_ID}"
|
||||
}
|
||||
sh 'docker login --username $CREDENTIALS_USR --password $CREDENTIALS_PSW $REGISTRY'
|
||||
sh 'docker-compose push'
|
||||
}
|
||||
|
@ -216,10 +207,11 @@ pipeline {
|
|||
when {
|
||||
expression { FROM_GIT }
|
||||
}
|
||||
environment {
|
||||
VERSION = readFile 'VERSION.txt'
|
||||
}
|
||||
steps {
|
||||
script {
|
||||
def packageJson = readJSON file: 'package.json'
|
||||
env.VERSION = "${packageJson.version}-build${env.BUILD_ID}"
|
||||
}
|
||||
withKubeConfig([
|
||||
serverUrl: "$KUBERNETES_API",
|
||||
credentialsId: 'kubernetes',
|
||||
|
|
|
@ -32,7 +32,8 @@ RUN apt-get update \
|
|||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
samba-common-bin samba-dsdb-modules\
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& npm -g install pm2
|
||||
|
||||
# Salix
|
||||
|
||||
|
@ -54,4 +55,7 @@ COPY \
|
|||
README.md \
|
||||
./
|
||||
|
||||
CMD ["node", "--tls-min-v1.0", "--openssl-legacy-provider", "./loopback/server/server.js"]
|
||||
CMD ["pm2-runtime", "./back/process.yml"]
|
||||
|
||||
HEALTHCHECK --interval=15s --timeout=10s \
|
||||
CMD curl -f http://localhost:3000/api/Applications/status || exit 1
|
||||
|
|
|
@ -27,19 +27,17 @@ module.exports = Self => {
|
|||
});
|
||||
|
||||
Self.sendCheckingPresence = async(ctx, recipientId, message) => {
|
||||
const userId = ctx.req.accessToken.userId;
|
||||
try {
|
||||
if (!recipientId) return false;
|
||||
const models = Self.app.models;
|
||||
const sender = await models.VnUser.findById(userId, {fields: ['id']});
|
||||
const error = `Could not send message from user ${userId}`;
|
||||
|
||||
if (!recipientId) throw new Error(error);
|
||||
const userId = ctx.req.accessToken.userId;
|
||||
const sender = await models.VnUser.findById(userId, {fields: ['id']});
|
||||
const recipient = await models.VnUser.findById(recipientId, null);
|
||||
if (!recipient)
|
||||
throw new Error(error);
|
||||
|
||||
// Prevent sending messages to yourself
|
||||
if (recipientId == userId) return false;
|
||||
if (!recipient)
|
||||
throw new Error(`Could not send message "${message}" to worker id ${recipientId} from user ${userId}`);
|
||||
|
||||
if (!isProduction())
|
||||
message = `[Test:Environment to user ${userId}] ` + message;
|
||||
|
@ -62,11 +60,5 @@ module.exports = Self => {
|
|||
}
|
||||
|
||||
return true;
|
||||
} catch (e) {
|
||||
await Self.rawSql(`
|
||||
INSERT INTO util.debug (variable, value)
|
||||
VALUES ('sendCheckingPresence_error', ?)
|
||||
`, [`User: ${userId}, recipient: ${recipientId}, message: ${message}, error: ${e}`]);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
|
|
@ -20,14 +20,9 @@ module.exports = Self => {
|
|||
if (typeof options == 'object')
|
||||
Object.assign(myOptions, options);
|
||||
|
||||
const randStr = Math.random().toString(36).substring(3);
|
||||
const result = await Self.rawSql(`
|
||||
CALL vn.collection_assign(?, @vCollectionFk);
|
||||
SELECT @vCollectionFk ?
|
||||
`, [userId, randStr], myOptions);
|
||||
|
||||
// Por si entra en SELECT FOR UPDATE una o varias veces
|
||||
const collectionFk = result.find(item => item[0]?.[randStr] !== undefined)?.[0]?.[randStr];
|
||||
const [, , [{collectionFk}]] =
|
||||
await Self.rawSql('CALL vn.collection_assign(?, @vCollectionFk); SELECT @vCollectionFk collectionFk',
|
||||
[userId], myOptions);
|
||||
|
||||
if (!collectionFk) throw new UserError('There are not picking tickets');
|
||||
await Self.rawSql('CALL vn.collection_printSticker(?, NULL)', [collectionFk], myOptions);
|
||||
|
|
|
@ -19,15 +19,8 @@ module.exports = Self => {
|
|||
|
||||
if (typeof options == 'object')
|
||||
Object.assign(myOptions, options);
|
||||
|
||||
const randStr = Math.random().toString(36).substring(3);
|
||||
const result = await Self.rawSql(`
|
||||
CALL vn.collection_getAssigned(?, @vCollectionFk);
|
||||
SELECT @vCollectionFk ?
|
||||
`, [userId, randStr], myOptions);
|
||||
|
||||
const collectionFk = result.find(item => item[0]?.[randStr] !== undefined)?.[0]?.[randStr];
|
||||
|
||||
const [info, info2, [{'@vCollectionFk': collectionFk}]] = await Self.rawSql(
|
||||
'CALL vn.collection_getAssigned(?, @vCollectionFk);SELECT @vCollectionFk', [userId], myOptions);
|
||||
if (!collectionFk) throw new UserError('There are not picking tickets');
|
||||
await Self.rawSql('CALL vn.collection_printSticker(?, NULL)', [collectionFk], myOptions);
|
||||
|
||||
|
|
|
@ -29,8 +29,10 @@ module.exports = Self => {
|
|||
});
|
||||
|
||||
Self.getSales = async(ctx, collectionOrTicketFk, print, source, options) => {
|
||||
const models = Self.app.models;
|
||||
const userId = ctx.req.accessToken.userId;
|
||||
const myOptions = {userId};
|
||||
const $t = ctx.req.__;
|
||||
|
||||
if (typeof options == 'object')
|
||||
Object.assign(myOptions, options);
|
||||
|
@ -57,6 +59,22 @@ module.exports = Self => {
|
|||
|
||||
if (print) await Self.rawSql('CALL vn.collection_printSticker(?,NULL)', [id], myOptions);
|
||||
|
||||
for (let ticket of tickets) {
|
||||
if (ticket.observaciones) {
|
||||
let observations = ticket.observaciones.split(' ');
|
||||
|
||||
for (let observation of observations) {
|
||||
const salesPerson = ticket.salesPersonFk;
|
||||
if (observation.startsWith('#') || observation.startsWith('@')) {
|
||||
await models.Chat.send(ctx,
|
||||
observation,
|
||||
$t('ticketCommercial', {ticket: ticket.ticketFk, salesPerson})
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return getCollection(id, tickets, sales, placements, myOptions);
|
||||
};
|
||||
|
||||
|
|
|
@ -40,7 +40,6 @@ module.exports = Self => {
|
|||
|
||||
const sales = await Self.rawSql(`
|
||||
SELECT s.ticketFk,
|
||||
NULL ticketOrder,
|
||||
sgd.saleGroupFk,
|
||||
s.id saleFk,
|
||||
s.itemFk,
|
||||
|
@ -58,15 +57,10 @@ module.exports = Self => {
|
|||
ROW_NUMBER () OVER (PARTITION BY s.id ORDER BY pickingOrder) currentItemShelving,
|
||||
COUNT(*) OVER (PARTITION BY s.id ORDER BY s.id) totalItemShelving,
|
||||
sh.code,
|
||||
p2.code parkingCodePrevia,
|
||||
p2.pickingOrder pickingOrderPrevia,
|
||||
p.code parkingCode,
|
||||
p.pickingOrder pickingOrder,
|
||||
IFNULL(p2.code, p.code) parkingCode,
|
||||
IFNULL(p2.pickingOrder, p.pickingOrder) pickingOrder,
|
||||
iss.id itemShelvingSaleFk,
|
||||
iss.isPicked,
|
||||
iss.itemShelvingFk,
|
||||
st.code stateCode,
|
||||
ac.username
|
||||
iss.isPicked
|
||||
FROM ticketCollection tc
|
||||
LEFT JOIN collection c ON c.id = tc.collectionFk
|
||||
JOIN sale s ON s.ticketFk = tc.ticketFk
|
||||
|
@ -76,17 +70,14 @@ module.exports = Self => {
|
|||
JOIN item i ON i.id = s.itemFk
|
||||
JOIN itemShelvingSale iss ON iss.saleFk = s.id
|
||||
LEFT JOIN itemShelving ish ON ish.id = iss.itemShelvingFk
|
||||
LEFT JOIN shelving sh ON sh.id = ish.shelvingFk
|
||||
LEFT JOIN shelving sh ON sh.code = ish.shelvingFk
|
||||
LEFT JOIN parking p ON p.id = sh.parkingFk
|
||||
LEFT JOIN itemColor ic ON ic.itemFk = s.itemFk
|
||||
LEFT JOIN origin o ON o.id = i.originFk
|
||||
LEFT JOIN state st ON st.id = sg.stateFk
|
||||
LEFT JOIN account.user ac ON ac.id = iss.userFk
|
||||
WHERE tc.collectionFk = ?
|
||||
GROUP BY s.id, ish.id, p.code, p2.code
|
||||
UNION ALL
|
||||
SELECT s.ticketFk,
|
||||
DENSE_RANK() OVER (ORDER BY ss.id),
|
||||
sgd.saleGroupFk,
|
||||
s.id saleFk,
|
||||
s.itemFk,
|
||||
|
@ -104,15 +95,10 @@ module.exports = Self => {
|
|||
ROW_NUMBER () OVER (PARTITION BY s.id ORDER BY p.pickingOrder),
|
||||
COUNT(*) OVER (PARTITION BY s.id ORDER BY s.id) ,
|
||||
sh.code,
|
||||
p2.code,
|
||||
p2.pickingOrder,
|
||||
p.code,
|
||||
p.pickingOrder,
|
||||
IFNULL(p2.code, p.code),
|
||||
IFNULL(p2.pickingOrder, p.pickingOrder),
|
||||
iss.id itemShelvingSaleFk,
|
||||
iss.isPicked,
|
||||
iss.itemShelvingFk,
|
||||
st.code stateCode,
|
||||
ac.username
|
||||
iss.isPicked
|
||||
FROM sectorCollection sc
|
||||
JOIN sectorCollectionSaleGroup ss ON ss.sectorCollectionFk = sc.id
|
||||
JOIN saleGroup sg ON sg.id = ss.saleGroupFk
|
||||
|
@ -122,12 +108,10 @@ module.exports = Self => {
|
|||
JOIN item i ON i.id = s.itemFk
|
||||
JOIN itemShelvingSale iss ON iss.saleFk = s.id
|
||||
LEFT JOIN itemShelving ish ON ish.id = iss.itemShelvingFk
|
||||
LEFT JOIN shelving sh ON sh.id = ish.shelvingFk
|
||||
LEFT JOIN shelving sh ON sh.code = ish.shelvingFk
|
||||
LEFT JOIN parking p ON p.id = sh.parkingFk
|
||||
LEFT JOIN itemColor ic ON ic.itemFk = s.itemFk
|
||||
LEFT JOIN origin o ON o.id = i.originFk
|
||||
LEFT JOIN state st ON st.id = sg.stateFk
|
||||
LEFT JOIN account.user ac ON ac.id = sg.userFk
|
||||
WHERE sc.id = ?
|
||||
AND sgd.saleGroupFk
|
||||
GROUP BY s.id, ish.id, p.code, p2.code`, [id, id], myOptions);
|
||||
|
|
|
@ -28,10 +28,9 @@ describe('ticket assign()', () => {
|
|||
await tx.rollback();
|
||||
});
|
||||
|
||||
it('should throw an error when there are no picking tickets', async() => {
|
||||
it('should throw an error when there is not picking tickets', async() => {
|
||||
try {
|
||||
await models.Collection.assign(ctx, options);
|
||||
fail('Expected an error to be thrown, but none was thrown.');
|
||||
} catch (e) {
|
||||
expect(e.message).toEqual('There are not picking tickets');
|
||||
}
|
||||
|
|
|
@ -15,7 +15,9 @@ describe('ticket assignCollection()', () => {
|
|||
args: {}
|
||||
};
|
||||
|
||||
spyOn(LoopBackContext, 'getCurrentContext').and.returnValue({active: ctx.req});
|
||||
spyOn(LoopBackContext, 'getCurrentContext').and.returnValue({
|
||||
active: ctx.req
|
||||
});
|
||||
|
||||
options = {transaction: tx};
|
||||
tx = await models.Sale.beginTransaction({});
|
||||
|
@ -23,7 +25,7 @@ describe('ticket assignCollection()', () => {
|
|||
});
|
||||
|
||||
afterEach(async() => {
|
||||
if (tx) await tx.rollback();
|
||||
await tx.rollback();
|
||||
});
|
||||
|
||||
it('should throw an error when there is not picking tickets', async() => {
|
||||
|
|
|
@ -38,7 +38,7 @@ module.exports = Self => {
|
|||
{
|
||||
arg: 'hasFile',
|
||||
type: 'Boolean',
|
||||
description: 'True if has the original in paper'
|
||||
description: 'True if has an attached file'
|
||||
},
|
||||
{
|
||||
arg: 'hasFileAttached',
|
||||
|
|
|
@ -4,45 +4,21 @@ module.exports = Self => {
|
|||
/**
|
||||
* Returns basic headers
|
||||
*
|
||||
* @param {string} cookie - The docuware cookie
|
||||
* @return {object} - The headers
|
||||
*/
|
||||
Self.getOptions = async() => {
|
||||
const docuwareConfig = await Self.app.models.DocuwareConfig.findOne();
|
||||
const now = Date.vnNow();
|
||||
let {url, username, password, token, expired} = docuwareConfig;
|
||||
|
||||
if (process.env.NODE_ENV && (!expired || expired < now + 60)) {
|
||||
const {data: {IdentityServiceUrl}} = await axios.get(`${url}/Home/IdentityServiceInfo`);
|
||||
const {data: {token_endpoint}} = await axios.get(`${IdentityServiceUrl}/.well-known/openid-configuration`);
|
||||
const {data} = await axios.post(token_endpoint, {
|
||||
grant_type: 'password',
|
||||
scope: 'docuware.platform',
|
||||
client_id: 'docuware.platform.net.client',
|
||||
username,
|
||||
password
|
||||
}, {headers: {
|
||||
'Accept': 'application/json',
|
||||
'Content-Type': 'application/x-www-form-urlencoded'
|
||||
}});
|
||||
|
||||
const newToken = data.access_token;
|
||||
token = data.token_type + ' ' + newToken;
|
||||
await docuwareConfig.updateAttributes({
|
||||
token,
|
||||
expired: now + data.expires_in
|
||||
});
|
||||
}
|
||||
|
||||
const headers = {
|
||||
headers: {
|
||||
'Accept': 'application/json',
|
||||
'Content-Type': 'application/json',
|
||||
'Authorization': token
|
||||
'Cookie': docuwareConfig.cookie
|
||||
}
|
||||
};
|
||||
|
||||
return {
|
||||
url,
|
||||
url: docuwareConfig.url,
|
||||
headers
|
||||
};
|
||||
};
|
||||
|
|
|
@ -2,21 +2,26 @@ const axios = require('axios');
|
|||
const models = require('vn-loopback/server/server').models;
|
||||
|
||||
describe('Docuware core', () => {
|
||||
const fileCabinetCode = 'deliveryNote';
|
||||
beforeAll(async() => {
|
||||
beforeAll(() => {
|
||||
process.env.NODE_ENV = 'testing';
|
||||
|
||||
const docuwareInfo = await models.Docuware.findOne({
|
||||
where: {
|
||||
code: fileCabinetCode
|
||||
}
|
||||
});
|
||||
|
||||
spyOn(axios, 'get').and.callFake(url => {
|
||||
if (url.includes('IdentityServiceInfo')) return {data: {IdentityServiceUrl: 'IdentityServiceUrl'}};
|
||||
if (url.includes('IdentityServiceUrl')) return {data: {token_endpoint: 'token_endpoint'}};
|
||||
if (url.includes('dialogs')) {
|
||||
return {
|
||||
afterAll(() => {
|
||||
delete process.env.NODE_ENV;
|
||||
});
|
||||
|
||||
describe('getOptions()', () => {
|
||||
it('should return url and headers', async() => {
|
||||
const result = await models.Docuware.getOptions();
|
||||
|
||||
expect(result.url).toBeDefined();
|
||||
expect(result.headers).toBeDefined();
|
||||
});
|
||||
});
|
||||
|
||||
describe('getDialog()', () => {
|
||||
it('should return dialogId', async() => {
|
||||
const dialogs = {
|
||||
data: {
|
||||
Dialog: [
|
||||
{
|
||||
|
@ -26,30 +31,58 @@ describe('Docuware core', () => {
|
|||
]
|
||||
}
|
||||
};
|
||||
}
|
||||
spyOn(axios, 'get').and.returnValue(new Promise(resolve => resolve(dialogs)));
|
||||
const result = await models.Docuware.getDialog('deliveryNote', 'find', 'randomFileCabinetId');
|
||||
|
||||
if (url.includes('FileCabinets')) {
|
||||
return {data: {
|
||||
expect(result).toEqual('getDialogTest');
|
||||
});
|
||||
});
|
||||
|
||||
describe('getFileCabinet()', () => {
|
||||
it('should return fileCabinetId', async() => {
|
||||
const code = 'deliveryNote';
|
||||
const docuwareInfo = await models.Docuware.findOne({
|
||||
where: {
|
||||
code
|
||||
}
|
||||
});
|
||||
const dialogs = {
|
||||
data: {
|
||||
FileCabinet: [
|
||||
{
|
||||
Name: docuwareInfo.fileCabinetName,
|
||||
Id: 'getFileCabinetTest'
|
||||
}
|
||||
]
|
||||
}};
|
||||
}
|
||||
};
|
||||
spyOn(axios, 'get').and.returnValue(new Promise(resolve => resolve(dialogs)));
|
||||
const result = await models.Docuware.getFileCabinet(code);
|
||||
|
||||
expect(result).toEqual('getFileCabinetTest');
|
||||
});
|
||||
});
|
||||
|
||||
spyOn(axios, 'post').and.callFake(url => {
|
||||
if (url.includes('token_endpoint')) {
|
||||
return {data: {
|
||||
access_token: 'access_token',
|
||||
token_type: 'bearer',
|
||||
expires_in: 10000
|
||||
}};
|
||||
describe('get()', () => {
|
||||
it('should return data without parse', async() => {
|
||||
spyOn(models.Docuware, 'getFileCabinet').and.returnValue((new Promise(resolve => resolve(Math.random()))));
|
||||
spyOn(models.Docuware, 'getDialog').and.returnValue((new Promise(resolve => resolve(Math.random()))));
|
||||
const data = {
|
||||
data: {
|
||||
id: 1
|
||||
}
|
||||
if (url.includes('DialogExpression')) {
|
||||
return {data: {
|
||||
};
|
||||
spyOn(axios, 'post').and.returnValue(new Promise(resolve => resolve(data)));
|
||||
const result = await models.Docuware.get('deliveryNote');
|
||||
|
||||
expect(result.id).toEqual(1);
|
||||
});
|
||||
|
||||
it('should return data with parse', async() => {
|
||||
spyOn(models.Docuware, 'getFileCabinet').and.returnValue((new Promise(resolve => resolve(Math.random()))));
|
||||
spyOn(models.Docuware, 'getDialog').and.returnValue((new Promise(resolve => resolve(Math.random()))));
|
||||
const data = {
|
||||
data: {
|
||||
Items: [{
|
||||
Fields: [
|
||||
{
|
||||
|
@ -71,51 +104,11 @@ describe('Docuware core', () => {
|
|||
}]
|
||||
}
|
||||
};
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
afterAll(() => {
|
||||
delete process.env.NODE_ENV;
|
||||
});
|
||||
|
||||
describe('getOptions()', () => {
|
||||
it('should return url and headers', async() => {
|
||||
const result = await models.Docuware.getOptions();
|
||||
|
||||
expect(result.url).toBeDefined();
|
||||
expect(result.headers).toBeDefined();
|
||||
});
|
||||
});
|
||||
|
||||
describe('Dialog()', () => {
|
||||
it('should return dialogId', async() => {
|
||||
const result = await models.Docuware.getDialog('deliveryNote', 'find', 'randomFileCabinetId');
|
||||
|
||||
expect(result).toEqual('getDialogTest');
|
||||
});
|
||||
});
|
||||
|
||||
describe('getFileCabinet()', () => {
|
||||
it('should return fileCabinetId', async() => {
|
||||
const result = await models.Docuware.getFileCabinet(fileCabinetCode);
|
||||
|
||||
expect(result).toEqual('getFileCabinetTest');
|
||||
});
|
||||
});
|
||||
|
||||
describe('get()', () => {
|
||||
it('should return data without parse', async() => {
|
||||
const [result] = await models.Docuware.get('deliveryNote');
|
||||
|
||||
expect(result.firstRequiredField).toEqual(1);
|
||||
});
|
||||
|
||||
it('should return data with parse', async() => {
|
||||
const parse = {
|
||||
'firstRequiredField': 'id',
|
||||
'secondRequiredField': 'name',
|
||||
};
|
||||
spyOn(axios, 'post').and.returnValue(new Promise(resolve => resolve(data)));
|
||||
const [result] = await models.Docuware.get('deliveryNote', null, parse);
|
||||
|
||||
expect(result.id).toEqual(1);
|
||||
|
@ -126,14 +119,17 @@ describe('Docuware core', () => {
|
|||
|
||||
describe('getById()', () => {
|
||||
it('should return data', async() => {
|
||||
spyOn(models.Docuware, 'get');
|
||||
await models.Docuware.getById('deliveryNote', 1);
|
||||
spyOn(models.Docuware, 'getFileCabinet').and.returnValue((new Promise(resolve => resolve(Math.random()))));
|
||||
spyOn(models.Docuware, 'getDialog').and.returnValue((new Promise(resolve => resolve(Math.random()))));
|
||||
const data = {
|
||||
data: {
|
||||
id: 1
|
||||
}
|
||||
};
|
||||
spyOn(axios, 'post').and.returnValue(new Promise(resolve => resolve(data)));
|
||||
const result = await models.Docuware.getById('deliveryNote', 1);
|
||||
|
||||
expect(models.Docuware.get).toHaveBeenCalledWith(
|
||||
'deliveryNote',
|
||||
{condition: [Object({DBName: 'N__ALBAR_N', Value: [1]})]},
|
||||
undefined
|
||||
);
|
||||
expect(result.id).toEqual(1);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -143,7 +143,7 @@ module.exports = Self => {
|
|||
headers: {
|
||||
'Content-Type': 'multipart/form-data',
|
||||
'X-File-ModifiedDate': Date.vnNew(),
|
||||
'Authorization': docuwareOptions.headers.headers.Authorization,
|
||||
'Cookie': docuwareOptions.headers.headers.Cookie,
|
||||
...data.getHeaders()
|
||||
},
|
||||
};
|
||||
|
|
|
@ -0,0 +1,132 @@
|
|||
const {models} = require('vn-loopback/server/server');
|
||||
|
||||
describe('machineWorker updateInTime()', () => {
|
||||
const itBoss = 104;
|
||||
const davidCharles = 1106;
|
||||
|
||||
beforeAll(async() => {
|
||||
ctx = {
|
||||
req: {
|
||||
accessToken: {},
|
||||
headers: {origin: 'http://localhost'},
|
||||
__: value => value
|
||||
}
|
||||
};
|
||||
});
|
||||
|
||||
it('should throw an error if the plate does not exist', async() => {
|
||||
const tx = await models.MachineWorker.beginTransaction({});
|
||||
const options = {transaction: tx};
|
||||
const plate = 'RE-123';
|
||||
ctx.req.accessToken.userId = 1106;
|
||||
try {
|
||||
await models.MachineWorker.updateInTime(ctx, plate, options);
|
||||
await tx.rollback();
|
||||
} catch (e) {
|
||||
const error = e;
|
||||
|
||||
expect(error.message).toContain('the plate does not exist');
|
||||
await tx.rollback();
|
||||
}
|
||||
});
|
||||
|
||||
it('should grab a machine where is not in use', async() => {
|
||||
const tx = await models.MachineWorker.beginTransaction({});
|
||||
const options = {transaction: tx};
|
||||
const plate = 'RE-003';
|
||||
ctx.req.accessToken.userId = 1107;
|
||||
try {
|
||||
const totalBefore = await models.MachineWorker.find(null, options);
|
||||
await models.MachineWorker.updateInTime(ctx, plate, options);
|
||||
const totalAfter = await models.MachineWorker.find(null, options);
|
||||
|
||||
expect(totalAfter.length).toEqual(totalBefore.length + 1);
|
||||
await tx.rollback();
|
||||
} catch (e) {
|
||||
await tx.rollback();
|
||||
}
|
||||
});
|
||||
|
||||
describe('less than 12h', () => {
|
||||
const plate = 'RE-001';
|
||||
it('should trow an error if it is not himself', async() => {
|
||||
const tx = await models.MachineWorker.beginTransaction({});
|
||||
const options = {transaction: tx};
|
||||
ctx.req.accessToken.userId = davidCharles;
|
||||
|
||||
try {
|
||||
await models.MachineWorker.updateInTime(ctx, plate, options);
|
||||
await tx.rollback();
|
||||
} catch (e) {
|
||||
const error = e;
|
||||
|
||||
expect(error.message).toContain('This machine is already in use');
|
||||
await tx.rollback();
|
||||
}
|
||||
});
|
||||
|
||||
it('should throw an error if it is himself with a different machine', async() => {
|
||||
const tx = await models.MachineWorker.beginTransaction({});
|
||||
const options = {transaction: tx};
|
||||
ctx.req.accessToken.userId = itBoss;
|
||||
const plate = 'RE-003';
|
||||
try {
|
||||
await models.MachineWorker.updateInTime(ctx, plate, options);
|
||||
await tx.rollback();
|
||||
} catch (e) {
|
||||
const error = e;
|
||||
|
||||
expect(error.message).toEqual('You are already using a machine');
|
||||
await tx.rollback();
|
||||
}
|
||||
});
|
||||
|
||||
it('should set the out time if it is himself', async() => {
|
||||
const tx = await models.MachineWorker.beginTransaction({});
|
||||
const options = {transaction: tx};
|
||||
ctx.req.accessToken.userId = itBoss;
|
||||
|
||||
try {
|
||||
const isNotParked = await models.MachineWorker.findOne({
|
||||
where: {workerFk: itBoss}
|
||||
}, options);
|
||||
await models.MachineWorker.updateInTime(ctx, plate, options);
|
||||
const isParked = await models.MachineWorker.findOne({
|
||||
where: {workerFk: itBoss}
|
||||
}, options);
|
||||
|
||||
expect(isNotParked.outTime).toBeNull();
|
||||
expect(isParked.outTime).toBeDefined();
|
||||
await tx.rollback();
|
||||
} catch (e) {
|
||||
await tx.rollback();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
describe('equal or more than 12h', () => {
|
||||
const plate = 'RE-002';
|
||||
it('should set the out time and grab the machine', async() => {
|
||||
const tx = await models.MachineWorker.beginTransaction({});
|
||||
const options = {transaction: tx};
|
||||
ctx.req.accessToken.userId = davidCharles;
|
||||
const filter = {
|
||||
where: {workerFk: davidCharles, machineFk: 2}
|
||||
};
|
||||
try {
|
||||
const isNotParked = await models.MachineWorker.findOne(filter, options);
|
||||
const totalBefore = await models.MachineWorker.find(null, options);
|
||||
await models.MachineWorker.updateInTime(ctx, plate, options);
|
||||
const isParked = await models.MachineWorker.findOne(filter, options);
|
||||
const totalAfter = await models.MachineWorker.find(null, options);
|
||||
|
||||
expect(isNotParked.outTime).toBeNull();
|
||||
expect(isParked.outTime).toBeDefined();
|
||||
expect(totalAfter.length).toEqual(totalBefore.length + 1);
|
||||
await tx.rollback();
|
||||
} catch (e) {
|
||||
await tx.rollback();
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
|
@ -0,0 +1,77 @@
|
|||
const UserError = require('vn-loopback/util/user-error');
|
||||
module.exports = Self => {
|
||||
Self.remoteMethodCtx('updateInTime', {
|
||||
description: 'Updates the corresponding registry if the worker has been registered in the last few hours',
|
||||
accessType: 'WRITE',
|
||||
accepts: [
|
||||
{
|
||||
arg: 'plate',
|
||||
type: 'string',
|
||||
}
|
||||
],
|
||||
http: {
|
||||
path: `/updateInTime`,
|
||||
verb: 'POST'
|
||||
}
|
||||
});
|
||||
|
||||
Self.updateInTime = async(ctx, plate, options) => {
|
||||
const models = Self.app.models;
|
||||
const userId = ctx.req.accessToken.userId;
|
||||
const $t = ctx.req.__;
|
||||
|
||||
let tx;
|
||||
const myOptions = {};
|
||||
|
||||
if (typeof options == 'object')
|
||||
Object.assign(myOptions, options);
|
||||
|
||||
if (!myOptions.transaction) {
|
||||
tx = await Self.beginTransaction({});
|
||||
myOptions.transaction = tx;
|
||||
}
|
||||
|
||||
try {
|
||||
const machine = await models.Machine.findOne({
|
||||
fields: ['id', 'plate'],
|
||||
where: {plate}
|
||||
}, myOptions);
|
||||
|
||||
if (!machine)
|
||||
throw new UserError($t('the plate does not exist', {plate}));
|
||||
|
||||
const machineWorker = await Self.findOne({
|
||||
where: {
|
||||
or: [{machineFk: machine.id}, {workerFk: userId}],
|
||||
outTime: null,
|
||||
}
|
||||
}, myOptions);
|
||||
|
||||
const {maxHours} = await models.MachineWorkerConfig.findOne({fields: ['maxHours']}, myOptions);
|
||||
const hoursDifference = (Date.vnNow() - machineWorker?.inTime?.getTime() ?? 0) / (60 * 60 * 1000);
|
||||
|
||||
if (machineWorker) {
|
||||
const isHimself = userId == machineWorker.workerFk;
|
||||
const isSameMachine = machine.id == machineWorker.machineFk;
|
||||
|
||||
if (hoursDifference < maxHours && !isHimself)
|
||||
throw new UserError($t('This machine is already in use.'));
|
||||
|
||||
if (hoursDifference < maxHours && isHimself && !isSameMachine)
|
||||
throw new UserError($t('You are already using a machine'));
|
||||
|
||||
await machineWorker.updateAttributes({
|
||||
outTime: Date.vnNew()
|
||||
}, myOptions);
|
||||
}
|
||||
|
||||
if (!machineWorker || hoursDifference >= maxHours)
|
||||
await models.MachineWorker.create({machineFk: machine.id, workerFk: userId}, myOptions);
|
||||
|
||||
if (tx) await tx.commit();
|
||||
} catch (e) {
|
||||
if (tx) await tx.rollback();
|
||||
throw e;
|
||||
}
|
||||
};
|
||||
};
|
|
@ -24,13 +24,12 @@ module.exports = Self => {
|
|||
|
||||
Self.cancelShipment = async expeditionFk => {
|
||||
const models = Self.app.models;
|
||||
|
||||
const mrw = await models.MrwConfig.findOne();
|
||||
const {externalId} = await models.Expedition.findById(expeditionFk);
|
||||
const clientType = await models.MrwConfig.getClientType(expeditionFk);
|
||||
const template = fs.readFileSync(__dirname + '/cancelShipment.ejs', 'utf-8');
|
||||
const renderedXml = ejs.render(template, {mrw, externalId, clientType});
|
||||
|
||||
await Self.rawSql('CALL util.debugAdd(?,?);', ['cancelShipment', renderedXml]);
|
||||
const response = await axios.post(mrw.url, renderedXml, {
|
||||
headers: {
|
||||
'Content-Type': 'application/soap+xml; charset=utf-8'
|
||||
|
@ -38,11 +37,9 @@ module.exports = Self => {
|
|||
});
|
||||
|
||||
const xmlString = response.data;
|
||||
await Self.rawSql('CALL util.debugAdd(?,?);', ['cancelShipmentResponse', xmlString]);
|
||||
const parser = new DOMParser();
|
||||
const xmlDoc = parser.parseFromString(xmlString, 'text/xml');
|
||||
|
||||
const result = xmlDoc.getElementsByTagName('Mensaje')[0].textContent;
|
||||
return ['no se ha encontrado', 'se ha cancelado correctamente'].some(res => result.toLowerCase().includes(res));
|
||||
return result.toLowerCase().includes('se ha cancelado correctamente');
|
||||
};
|
||||
};
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
</mrw:Direccion>
|
||||
<mrw:Nif><%= expeditionData.fi %></mrw:Nif>
|
||||
<mrw:Nombre><%= expeditionData.clientName %></mrw:Nombre>
|
||||
<mrw:Telefono><%= expeditionData.mobile %></mrw:Telefono>
|
||||
<mrw:Telefono><%= expeditionData.phone %></mrw:Telefono>
|
||||
<mrw:Observaciones><%= expeditionData.deliveryObservation %></mrw:Observaciones>
|
||||
</mrw:DatosEntrega>
|
||||
<mrw:DatosServicio>
|
||||
|
|
|
@ -47,13 +47,13 @@ module.exports = Self => {
|
|||
co.code countryCode,
|
||||
c.fi,
|
||||
c.name clientName,
|
||||
IFNULL(a.mobile, c.mobile) mobile,
|
||||
c.phone,
|
||||
DATE_FORMAT(t.shipped, '%d/%m/%Y') created,
|
||||
t.shipped,
|
||||
CONCAT( e.ticketFk, LPAD(e.counter, mc.counterWidth, '0')) reference,
|
||||
LPAD(IF(mw.serviceType IS NULL, ms.serviceType, mw.serviceType), mc.serviceTypeWidth, '0') serviceType,
|
||||
IF(mw.weekdays, 'S', 'N') weekDays,
|
||||
ta.description deliveryObservation
|
||||
oa.description deliveryObservation
|
||||
FROM expedition e
|
||||
JOIN ticket t ON e.ticketFk = t.id
|
||||
JOIN agencyMode am ON am.id = t.agencyModeFk
|
||||
|
@ -62,8 +62,8 @@ module.exports = Self => {
|
|||
AND mw.weekDays & (1 << WEEKDAY(t.landed))
|
||||
JOIN client c ON t.clientFk = c.id
|
||||
JOIN address a ON t.addressFk = a.id
|
||||
LEFT JOIN ticketObservation ta ON ta.ticketFk = t.id
|
||||
AND ta.observationTypeFk IN (SELECT id FROM observationType ot WHERE ot.code = 'agency')
|
||||
LEFT JOIN addressObservation oa ON oa.addressFk = a.id
|
||||
AND oa.observationTypeFk IN (SELECT id FROM observationType ot WHERE ot.code = 'delivery')
|
||||
JOIN province p ON a.provinceFk = p.id
|
||||
JOIN country co ON co.id = p.countryFk
|
||||
JOIN mrwConfig mc
|
||||
|
|
|
@ -12,8 +12,9 @@ const ticket1 = {
|
|||
'addressFk': 1,
|
||||
'agencyModeFk': 999
|
||||
};
|
||||
let expedition;
|
||||
|
||||
const expedition1 = {
|
||||
'id': 17,
|
||||
'agencyModeFk': 999,
|
||||
'ticketFk': 44,
|
||||
'freightItemFk': 71,
|
||||
|
@ -46,7 +47,7 @@ describe('MRWConfig createShipment()', () => {
|
|||
await createMrwConfig();
|
||||
|
||||
await models.Ticket.create(ticket1);
|
||||
expedition = await models.Expedition.create(expedition1);
|
||||
await models.Expedition.create(expedition1);
|
||||
});
|
||||
|
||||
afterAll(async() => {
|
||||
|
@ -92,7 +93,7 @@ describe('MRWConfig createShipment()', () => {
|
|||
}
|
||||
|
||||
it('should create a shipment and return a base64Binary label', async() => {
|
||||
const {file} = await models.MrwConfig.createShipment(expedition.id);
|
||||
const {file} = await models.MrwConfig.createShipment(expedition1.id);
|
||||
|
||||
expect(file).toEqual(mockBase64Binary);
|
||||
});
|
||||
|
@ -100,7 +101,7 @@ describe('MRWConfig createShipment()', () => {
|
|||
it('should fail if mrwConfig has no data', async() => {
|
||||
let error;
|
||||
await models.MrwConfig.destroyAll();
|
||||
await models.MrwConfig.createShipment(expedition.id).catch(e => {
|
||||
await models.MrwConfig.createShipment(expedition1.id).catch(e => {
|
||||
error = e;
|
||||
}).finally(async() => {
|
||||
expect(error.message).toEqual(`MRW service is not configured`);
|
||||
|
@ -125,7 +126,7 @@ describe('MRWConfig createShipment()', () => {
|
|||
yesterday.setDate(yesterday.getDate() - 1);
|
||||
|
||||
await models.Ticket.updateAll({id: ticket1.id}, {shipped: yesterday});
|
||||
await models.MrwConfig.createShipment(expedition.id).catch(e => {
|
||||
await models.MrwConfig.createShipment(expedition1.id).catch(e => {
|
||||
error = e;
|
||||
}).finally(async() => {
|
||||
expect(error.message).toEqual(`This ticket has a shipped date earlier than today`);
|
||||
|
@ -135,7 +136,7 @@ describe('MRWConfig createShipment()', () => {
|
|||
|
||||
it('should send mail if you are past the dead line and is not notified today', async() => {
|
||||
await models.MrwConfig.updateAll({id: 1}, {expeditionDeadLine: '10:00:00', notified: null});
|
||||
await models.MrwConfig.createShipment(expedition.id);
|
||||
await models.MrwConfig.createShipment(expedition1.id);
|
||||
const notification = await getLastNotification();
|
||||
|
||||
expect(notification.notificationFk).toEqual(filter.notificationFk);
|
||||
|
@ -143,7 +144,7 @@ describe('MRWConfig createShipment()', () => {
|
|||
|
||||
it('should send mail if you are past the dead line and it is notified from another day', async() => {
|
||||
await models.MrwConfig.updateAll({id: 1}, {expeditionDeadLine: '10:00:00', notified: new Date()});
|
||||
await models.MrwConfig.createShipment(expedition.id);
|
||||
await models.MrwConfig.createShipment(expedition1.id);
|
||||
const notification = await getLastNotification();
|
||||
|
||||
expect(notification.notificationFk).toEqual(filter.notificationFk);
|
||||
|
@ -151,7 +152,7 @@ describe('MRWConfig createShipment()', () => {
|
|||
|
||||
it('should not send mail if you are past the dead line and it is notified', async() => {
|
||||
await models.MrwConfig.updateAll({id: 1}, {expeditionDeadLine: '10:00:00', notified: Date.vnNew()});
|
||||
await models.MrwConfig.createShipment(expedition.id);
|
||||
await models.MrwConfig.createShipment(expedition1.id);
|
||||
const notification = await getLastNotification();
|
||||
|
||||
expect(notification).toEqual(null);
|
||||
|
|
|
@ -1,112 +0,0 @@
|
|||
const UserError = require('vn-loopback/util/user-error');
|
||||
const axios = require('axios');
|
||||
|
||||
module.exports = Self => {
|
||||
Self.remoteMethod('optimize', {
|
||||
description: 'Return optimized coords',
|
||||
accessType: 'READ',
|
||||
accepts: [{
|
||||
arg: 'addressIds',
|
||||
type: 'array',
|
||||
required: true
|
||||
}, {
|
||||
arg: 'firstAddressId',
|
||||
type: 'number',
|
||||
required: false
|
||||
}, {
|
||||
arg: 'lastAddressId',
|
||||
type: 'number',
|
||||
required: false
|
||||
}],
|
||||
returns: {
|
||||
type: 'object',
|
||||
root: true
|
||||
},
|
||||
http: {
|
||||
path: `/optimize`,
|
||||
verb: 'GET'
|
||||
}
|
||||
});
|
||||
|
||||
Self.optimize = async(addressIds, firstAddressId, lastAddressId) => {
|
||||
const models = Self.app.models;
|
||||
try {
|
||||
const osrmConfig = await models.OsrmConfig.findOne();
|
||||
if (!osrmConfig) throw new UserError(`OSRM service is not configured`);
|
||||
|
||||
let coords = [];
|
||||
if (firstAddressId) {
|
||||
const address = await models.Address.findById(firstAddressId);
|
||||
if (address.latitude && address.longitude) {
|
||||
coords.push({
|
||||
addressId: address.id,
|
||||
latitude: address.latitude.toFixed(6),
|
||||
longitude: address.longitude.toFixed(6)
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
for (const addressId of addressIds) {
|
||||
const address = await models.Address.findById(addressId);
|
||||
if (address.latitude && address.longitude) {
|
||||
coords.push({
|
||||
addressId,
|
||||
latitude: address.latitude.toFixed(6),
|
||||
longitude: address.longitude.toFixed(6)
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if (lastAddressId) {
|
||||
const firstAddress = await models.Address.findById(lastAddressId);
|
||||
if (firstAddress.latitude && firstAddress.longitude) {
|
||||
coords.push({
|
||||
addressId: firstAddress.id,
|
||||
latitude: firstAddress.latitude.toFixed(6),
|
||||
longitude: firstAddress.longitude.toFixed(6)
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if (!coords.length) throw new UserError('No address has coordinates');
|
||||
|
||||
const concatCoords = coords
|
||||
.map(coord => `${coord.longitude},${coord.latitude}`)
|
||||
.join(';');
|
||||
const response = await axios.post(`
|
||||
${osrmConfig.url}/trip/v1/driving/${concatCoords}?source=first&destination=last&roundtrip=true
|
||||
`);
|
||||
const tolerance = osrmConfig.tolerance;
|
||||
for (const waypoint of response.data.waypoints) {
|
||||
const longitude = waypoint.location[0];
|
||||
const latitude = waypoint.location[1];
|
||||
|
||||
const matchedAddress = coords.find(coord =>
|
||||
coord.position === undefined &&
|
||||
Math.abs(coord.latitude - latitude) <= tolerance &&
|
||||
Math.abs(coord.longitude - longitude) <= tolerance
|
||||
);
|
||||
if (matchedAddress)
|
||||
matchedAddress.position = waypoint.waypoint_index;
|
||||
}
|
||||
coords.sort((a, b) => {
|
||||
const posA = a.position !== undefined ? a.position : Infinity;
|
||||
const posB = b.position !== undefined ? b.position : Infinity;
|
||||
return posA - posB;
|
||||
});
|
||||
|
||||
return coords;
|
||||
} catch (err) {
|
||||
switch (err.response?.data?.code) {
|
||||
case 'NoTrips':
|
||||
throw new UserError('No trips found because input coordinates are not connected');
|
||||
case 'NotImplemented':
|
||||
throw new UserError('This request is not supported');
|
||||
case 'InvalidOptions':
|
||||
throw new UserError('Invalid options or too many coordinates');
|
||||
default:
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
|
@ -1,33 +0,0 @@
|
|||
const models = require('vn-loopback/server/server').models;
|
||||
|
||||
describe('osrmConfig optimize()', function() {
|
||||
it('should send coords, receive OSRM response, and return a correctly ordered result', async function() {
|
||||
const result = await models.OsrmConfig.optimize([4, 3], 1, 2);
|
||||
|
||||
// Verifications
|
||||
expect(Array.isArray(result)).toBe(true);
|
||||
expect(result.length).toBe(4);
|
||||
|
||||
// Check the order
|
||||
expect(result[0].addressId).toBe(1);
|
||||
expect(result[1].addressId).toBe(4);
|
||||
expect(result[2].addressId).toBe(3);
|
||||
expect(result[3].addressId).toBe(2);
|
||||
|
||||
// Check the coordinates format
|
||||
expect(result[0].latitude).toBe('10.111111');
|
||||
expect(result[0].longitude).toBe('-74.111111');
|
||||
});
|
||||
|
||||
it('should throw an error if no addresses are provided', async function() {
|
||||
let error;
|
||||
try {
|
||||
await models.OsrmConfig.optimize([], null);
|
||||
} catch (e) {
|
||||
error = e;
|
||||
}
|
||||
|
||||
expect(error).toBeDefined();
|
||||
expect(error.message).toBe('No address has coordinates');
|
||||
});
|
||||
});
|
|
@ -29,34 +29,35 @@ module.exports = Self => {
|
|||
});
|
||||
|
||||
Self.sendToSupport = async(ctx, reason, additionalData) => {
|
||||
const userId = ctx.req.accessToken.userId;
|
||||
const emailUser =
|
||||
await Self.app.models.EmailUser.findById(userId, {fields: ['email']});
|
||||
await Self.app.models.EmailUser.findById(ctx.req.accessToken.userId, {fields: ['email']});
|
||||
|
||||
let html = `<h2>Motivo: ${reason}</h2>`;
|
||||
html += `<h3>Usuario: ${userId} ${emailUser.email}</h3>`;
|
||||
html += `<h3>Additional Data:</h3>`;
|
||||
html += '<ul>';
|
||||
for (const [key, val] of Object.entries(additionalData)) {
|
||||
if (key !== 'config') html += `<li>${key}: ${parse(val)}</li>`;
|
||||
else {
|
||||
html += `<li>${key}:</li><ul style="list-style-type: square;">`;
|
||||
for (const [confKey, confVal] of Object.entries(val))
|
||||
html += `<li>${confKey}: ${parse(confVal)}</li>`;
|
||||
html += '</ul>';
|
||||
}
|
||||
}
|
||||
html += '</ul>';
|
||||
let html = `<strong>Motivo</strong>:<br/>${reason}<br/>`;
|
||||
html += `<strong>Usuario</strong>:<br/>${ctx.req.accessToken.userId} ${emailUser.email}<br/>`;
|
||||
|
||||
const {message, path, name} = additionalData;
|
||||
delete additionalData.backError.config.headers.Authorization;
|
||||
const httpRequest = JSON.parse(additionalData?.httpRequest);
|
||||
|
||||
if (httpRequest)
|
||||
delete httpRequest.config.headers.Authorization;
|
||||
additionalData.httpRequest = httpRequest;
|
||||
|
||||
for (const data in additionalData)
|
||||
html += `<strong>${data}</strong>:<br/>${tryParse(additionalData[data])}<br/>`;
|
||||
|
||||
const subjectReason = httpRequest?.data?.error;
|
||||
await smtp.send({
|
||||
to: `${config.app.reportEmail}, ${emailUser.email}`,
|
||||
subject: `[Support-Salix] ${path} ${name}: ${message}`,
|
||||
subject:
|
||||
'[Support-Salix] ' +
|
||||
additionalData?.frontPath + ' ' +
|
||||
subjectReason?.name + ':' +
|
||||
subjectReason?.message,
|
||||
html
|
||||
});
|
||||
};
|
||||
|
||||
function parse(value) {
|
||||
function tryParse(value) {
|
||||
try {
|
||||
try {
|
||||
value = JSON.parse(value);
|
||||
|
|
|
@ -11,6 +11,13 @@ module.exports = Self => {
|
|||
arg: 'filter',
|
||||
type: 'object',
|
||||
description: 'Filter defining where, order, offset, and limit - must be a JSON-encoded string',
|
||||
http: {source: 'query'}
|
||||
},
|
||||
{
|
||||
arg: 'search',
|
||||
type: 'string',
|
||||
description: 'Value to filter',
|
||||
http: {source: 'query'}
|
||||
},
|
||||
],
|
||||
returns: {
|
||||
|
@ -22,11 +29,13 @@ module.exports = Self => {
|
|||
verb: 'GET',
|
||||
},
|
||||
});
|
||||
Self.filter = async(filter = {}, options) => {
|
||||
Self.filter = async(ctx, filter, options) => {
|
||||
const myOptions = {};
|
||||
if (typeof options == 'object')
|
||||
Object.assign(myOptions, options);
|
||||
|
||||
filter = ctx?.filter ?? {};
|
||||
|
||||
const conn = Self.dataSource.connector;
|
||||
const where = buildFilter(filter?.where, (param, value) => {
|
||||
switch (param) {
|
||||
|
@ -41,7 +50,7 @@ module.exports = Self => {
|
|||
};
|
||||
}
|
||||
}) ?? {};
|
||||
delete filter.where;
|
||||
delete ctx.filter.where;
|
||||
|
||||
const stmts = [];
|
||||
let stmt;
|
||||
|
@ -61,13 +70,11 @@ module.exports = Self => {
|
|||
JOIN country c on c.id = p.countryFk
|
||||
`);
|
||||
|
||||
stmt.merge(conn.makeSuffix({where}));
|
||||
stmt.merge(conn.makeLimit(filter));
|
||||
stmt.merge(conn.makeSuffix({where, ...ctx}));
|
||||
const itemsIndex = stmts.push(stmt) - 1;
|
||||
|
||||
const sql = ParameterizedSQL.join(stmts, ';');
|
||||
const result = await conn.executeStmt(sql, myOptions);
|
||||
|
||||
return itemsIndex === 0 ? result : result[itemsIndex];
|
||||
};
|
||||
};
|
||||
|
|
|
@ -6,9 +6,12 @@ describe('Postcode filter()', () => {
|
|||
const options = {transaction: tx};
|
||||
|
||||
try {
|
||||
const results = await models.Postcode.filter({
|
||||
const ctx = {
|
||||
filter: {
|
||||
},
|
||||
limit: 1
|
||||
}, options);
|
||||
};
|
||||
const results = await models.Postcode.filter(ctx, options);
|
||||
|
||||
expect(results.length).toEqual(1);
|
||||
await tx.rollback();
|
||||
|
@ -23,13 +26,16 @@ describe('Postcode filter()', () => {
|
|||
const options = {transaction: tx};
|
||||
|
||||
try {
|
||||
const results = await models.Postcode.filter({
|
||||
const ctx = {
|
||||
filter: {
|
||||
where: {
|
||||
search: 46,
|
||||
}
|
||||
}, options);
|
||||
},
|
||||
};
|
||||
const results = await models.Postcode.filter(ctx, options);
|
||||
|
||||
expect(results.length).toEqual(5);
|
||||
expect(results.length).toEqual(4);
|
||||
await tx.rollback();
|
||||
} catch (e) {
|
||||
await tx.rollback();
|
||||
|
@ -42,9 +48,14 @@ describe('Postcode filter()', () => {
|
|||
const options = {transaction: tx};
|
||||
|
||||
try {
|
||||
const results = await models.Postcode.filter({where: {
|
||||
const ctx = {
|
||||
filter: {
|
||||
where: {
|
||||
search: 'Alz',
|
||||
}}, options);
|
||||
}
|
||||
},
|
||||
};
|
||||
const results = await models.Postcode.filter(ctx, options);
|
||||
|
||||
expect(results.length).toEqual(1);
|
||||
await tx.rollback();
|
||||
|
@ -59,11 +70,16 @@ describe('Postcode filter()', () => {
|
|||
const options = {transaction: tx};
|
||||
|
||||
try {
|
||||
const results = await models.Postcode.filter({where: {
|
||||
const ctx = {
|
||||
filter: {
|
||||
where: {
|
||||
search: 'one',
|
||||
}}, options);
|
||||
}
|
||||
},
|
||||
};
|
||||
const results = await models.Postcode.filter(ctx, options);
|
||||
|
||||
expect(results.length).toEqual(5);
|
||||
expect(results.length).toEqual(4);
|
||||
await tx.rollback();
|
||||
} catch (e) {
|
||||
await tx.rollback();
|
||||
|
@ -76,11 +92,14 @@ describe('Postcode filter()', () => {
|
|||
const options = {transaction: tx};
|
||||
|
||||
try {
|
||||
const results = await models.Postcode.filter({
|
||||
const ctx = {
|
||||
filter: {
|
||||
where: {
|
||||
search: 'Ec',
|
||||
}
|
||||
}, options);
|
||||
},
|
||||
};
|
||||
const results = await models.Postcode.filter(ctx, options);
|
||||
|
||||
expect(results.length).toEqual(1);
|
||||
await tx.rollback();
|
||||
|
|
|
@ -22,7 +22,7 @@ module.exports = Self => {
|
|||
const url = await Self.app.models.Url.findOne({
|
||||
where: {
|
||||
appName,
|
||||
environment: process.env.NODE_ENV || 'development'
|
||||
environment: process.env.NODE_ENV || 'dev'
|
||||
}
|
||||
});
|
||||
return url?.url;
|
||||
|
|
|
@ -1,29 +0,0 @@
|
|||
module.exports = Self => {
|
||||
Self.remoteMethodCtx('killSession', {
|
||||
description: 'Kill session',
|
||||
accepts: [{
|
||||
arg: 'userId',
|
||||
type: 'integer',
|
||||
description: 'The user id',
|
||||
required: true,
|
||||
}, {
|
||||
arg: 'created',
|
||||
type: 'date',
|
||||
description: 'The created time',
|
||||
required: true,
|
||||
}],
|
||||
accessType: 'WRITE',
|
||||
http: {
|
||||
path: `/killSession`,
|
||||
verb: 'POST'
|
||||
}
|
||||
});
|
||||
|
||||
Self.killSession = async function(ctx, userId, created) {
|
||||
await Self.app.models.VnUser.userSecurity(ctx, ctx.req.accessToken.userId);
|
||||
const tokens = await Self.app.models.AccessToken.find({where: {userId, created}});
|
||||
if (!tokens?.length) return;
|
||||
for (const token of tokens)
|
||||
await Self.app.models.AccessToken.deleteById(token.id);
|
||||
};
|
||||
};
|
|
@ -19,7 +19,7 @@ module.exports = Self => {
|
|||
if (acl.principalType == 'ROLE' && acl.permission == 'ALLOW') {
|
||||
const staticAcl = {
|
||||
model: model.name,
|
||||
property: acl.property,
|
||||
property: '*',
|
||||
accessType: acl.accessType,
|
||||
permission: acl.permission,
|
||||
principalType: acl.principalType,
|
||||
|
|
|
@ -30,10 +30,16 @@ module.exports = Self => {
|
|||
|
||||
// Schedule to remove current token
|
||||
setTimeout(async() => {
|
||||
let exists;
|
||||
try {
|
||||
await Self.logout(token.id);
|
||||
exists = await models.AccessToken.findById(token.id);
|
||||
exists && await Self.logout(token.id);
|
||||
} catch (error) {
|
||||
// FIXME: Crash if do throw new Error(error)
|
||||
// eslint-disable-next-line no-console
|
||||
console.error(error);
|
||||
const body = {error: error.message, now: Date.now(), userId: token?.userId ?? null, exists};
|
||||
await handleError(body);
|
||||
throw new Error(error);
|
||||
}
|
||||
}, courtesyTime * 1000);
|
||||
|
||||
|
@ -47,20 +53,14 @@ module.exports = Self => {
|
|||
|
||||
return {id: accessToken.id, ttl: accessToken.ttl};
|
||||
} catch (error) {
|
||||
const body = {
|
||||
error: error.message,
|
||||
userId: token?.userId ?? null,
|
||||
token: token?.id,
|
||||
scopes: token?.scopes,
|
||||
createTokenOptions,
|
||||
isNotExceeded
|
||||
};
|
||||
await handleError(JSON.stringify(body));
|
||||
const body = {error: error.message, now: Date.now(), userId: token?.userId ?? null, createTokenOptions, isNotExceeded};
|
||||
await handleError(body);
|
||||
throw new Error(error);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
async function handleError(body) {
|
||||
await models.Application.rawSql('CALL util.debugAdd(?,?);', ['renewToken', body]);
|
||||
async function handleError(body, tag = 'renewToken') {
|
||||
body = JSON.stringify(body);
|
||||
await models.Application.rawSql('CALL util.debugAdd(?,?);', [tag, body]);
|
||||
}
|
||||
|
|
|
@ -67,9 +67,7 @@ module.exports = Self => {
|
|||
if (vnUser.twoFactor === 'email') {
|
||||
const $ = Self.app.models;
|
||||
|
||||
const min = 100000;
|
||||
const max = 999999;
|
||||
const code = String(Math.floor(Math.random() * (max - min + 1)) + min);
|
||||
const code = String(Math.floor(Math.random() * 999999));
|
||||
const maxTTL = ((60 * 1000) * 5); // 5 min
|
||||
await $.AuthCode.upsertWithWhere({userFk: vnUser.id}, {
|
||||
userFk: vnUser.id,
|
||||
|
|
|
@ -72,9 +72,9 @@ describe('Renew Token', () => {
|
|||
}
|
||||
|
||||
expect(error).toBeDefined();
|
||||
const query = 'SELECT * FROM util.debug';
|
||||
|
||||
const query = 'SELECT * FROM util.debug WHERE variable = "renewToken"';
|
||||
const debugLog = await models.Application.rawSql(query);
|
||||
const debugLog = await models.Application.rawSql(query, null);
|
||||
|
||||
expect(debugLog.length).toEqual(1);
|
||||
});
|
||||
|
|
|
@ -22,12 +22,8 @@ module.exports = Self => {
|
|||
description: 'The user email'
|
||||
}, {
|
||||
arg: 'lang',
|
||||
type: 'any',
|
||||
type: 'string',
|
||||
description: 'The user lang'
|
||||
}, {
|
||||
arg: 'twoFactor',
|
||||
type: 'any',
|
||||
description: 'The user twoFactor'
|
||||
}
|
||||
],
|
||||
http: {
|
||||
|
@ -36,8 +32,8 @@ module.exports = Self => {
|
|||
}
|
||||
});
|
||||
|
||||
Self.updateUser = async(ctx, id, name, nickname, email, lang, twoFactor) => {
|
||||
Self.updateUser = async(ctx, id, name, nickname, email, lang) => {
|
||||
await Self.userSecurity(ctx, id);
|
||||
await Self.upsertWithWhere({id}, {name, nickname, email, lang, twoFactor});
|
||||
await Self.upsertWithWhere({id}, {name, nickname, email, lang});
|
||||
};
|
||||
};
|
||||
|
|
|
@ -58,7 +58,7 @@ module.exports = Self => {
|
|||
fields: ['name', 'twoFactor']
|
||||
}, myOptions);
|
||||
|
||||
if (user.name.toLowerCase() !== username.toLowerCase())
|
||||
if (user.name !== username)
|
||||
throw new UserError('Authentication failed');
|
||||
|
||||
await authCode.destroy(myOptions);
|
||||
|
|
|
@ -1,50 +0,0 @@
|
|||
module.exports = Self => {
|
||||
Self.remoteMethodCtx('add', {
|
||||
description: 'Add activity if the activity is different or is the same but have exceed time for break',
|
||||
accessType: 'WRITE',
|
||||
accepts: [
|
||||
{
|
||||
arg: 'code',
|
||||
type: 'string',
|
||||
description: 'Code for activity'
|
||||
},
|
||||
{
|
||||
arg: 'model',
|
||||
type: 'string',
|
||||
description: 'Origin model from insert'
|
||||
},
|
||||
|
||||
],
|
||||
http: {
|
||||
path: `/add`,
|
||||
verb: 'POST'
|
||||
}
|
||||
});
|
||||
|
||||
Self.add = async(ctx, code, model, options) => {
|
||||
const userId = ctx.req.accessToken.userId;
|
||||
const myOptions = {};
|
||||
|
||||
if (typeof options == 'object')
|
||||
Object.assign(myOptions, options);
|
||||
|
||||
return await Self.rawSql(`
|
||||
INSERT INTO workerActivity (workerFk, workerActivityTypeFk, model)
|
||||
SELECT ?, ?, ?
|
||||
FROM workerTimeControlConfig wtcc
|
||||
LEFT JOIN (
|
||||
SELECT wa.workerFk,
|
||||
wa.created,
|
||||
wat.code
|
||||
FROM workerActivity wa
|
||||
LEFT JOIN workerActivityType wat ON wat.code = wa.workerActivityTypeFk
|
||||
WHERE wa.workerFk = ?
|
||||
ORDER BY wa.created DESC
|
||||
LIMIT 1
|
||||
) sub ON TRUE
|
||||
WHERE sub.workerFk IS NULL
|
||||
OR sub.code <> ?
|
||||
OR TIMESTAMPDIFF(SECOND, sub.created, util.VN_NOW()) > wtcc.dayBreak;`
|
||||
, [userId, code, model, userId, code], myOptions);
|
||||
};
|
||||
};
|
|
@ -1,30 +0,0 @@
|
|||
const {models} = require('vn-loopback');
|
||||
|
||||
describe('workerActivity insert()', () => {
|
||||
const ctx = beforeAll.getCtx(1106);
|
||||
|
||||
it('should insert in workerActivity', async() => {
|
||||
const tx = await models.WorkerActivity.beginTransaction({});
|
||||
let count = 0;
|
||||
const options = {transaction: tx};
|
||||
|
||||
try {
|
||||
await models.WorkerActivityType.create(
|
||||
{'code': 'TEST', 'description': 'TEST'}, options
|
||||
);
|
||||
|
||||
await models.WorkerActivity.add(ctx, 'TEST', 'APP', options);
|
||||
|
||||
count = await models.WorkerActivity.count(
|
||||
{'workerFK': 1106}, options
|
||||
);
|
||||
|
||||
await tx.rollback();
|
||||
} catch (e) {
|
||||
await tx.rollback();
|
||||
throw e;
|
||||
}
|
||||
|
||||
expect(count).toEqual(1);
|
||||
});
|
||||
});
|
|
@ -28,9 +28,6 @@
|
|||
"Company": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"Config": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"Continent": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
|
@ -79,19 +76,19 @@
|
|||
"ImageCollectionSize": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"ImageConfig": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"ImageContainer": {
|
||||
"dataSource": "imageStorage"
|
||||
},
|
||||
"Language": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"OsrmConfig": {
|
||||
"Machine": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"Machine": {
|
||||
"MachineWorker": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"MachineWorkerConfig": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"MobileAppVersionControl": {
|
||||
|
@ -118,9 +115,6 @@
|
|||
"NotificationSubscription": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"OrmConfig": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"Province": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
|
@ -130,15 +124,9 @@
|
|||
"Payment": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"PbxConfig": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"Postcode": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"Prefix": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"ReferenceRate": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
|
@ -148,12 +136,6 @@
|
|||
"StarredModule": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"SaySimpleCountry": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"SaySimpleConfig": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"TempContainer": {
|
||||
"dataSource": "tempStorage"
|
||||
},
|
||||
|
@ -184,15 +166,9 @@
|
|||
"PrintConfig": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"QueueMember": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"ViaexpressConfig": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"VnToken": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"VnUser": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
|
|
|
@ -16,10 +16,6 @@
|
|||
"name": {
|
||||
"type": "string",
|
||||
"required": true
|
||||
},
|
||||
"hasDailyInvoice": {
|
||||
"type": "boolean",
|
||||
"description": "Indicates if the autonomy has daily invoice enabled"
|
||||
}
|
||||
},
|
||||
"relations": {
|
||||
|
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
"name": "Config",
|
||||
"base": "VnModel",
|
||||
"options": {
|
||||
"mysql": {
|
||||
"table": "config"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"inventoried": {
|
||||
"type": "date"
|
||||
}
|
||||
},
|
||||
"acls": [
|
||||
{
|
||||
"accessType": "READ",
|
||||
"principalType": "ROLE",
|
||||
"principalId": "$authenticated",
|
||||
"permission": "ALLOW"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -28,10 +28,6 @@
|
|||
},
|
||||
"continentFk": {
|
||||
"type": "number"
|
||||
},
|
||||
"hasDailyInvoice": {
|
||||
"type": "boolean",
|
||||
"description": "Indicates if the autonomy has daily invoice enabled"
|
||||
}
|
||||
},
|
||||
"relations": {
|
||||
|
@ -44,11 +40,6 @@
|
|||
"type": "belongsTo",
|
||||
"model": "Continent",
|
||||
"foreignKey": "continentFk"
|
||||
},
|
||||
"saySimpleCountry": {
|
||||
"type": "hasOne",
|
||||
"model": "SaySimpleCountry",
|
||||
"foreignKey": "countryFk"
|
||||
}
|
||||
},
|
||||
"acls": [
|
||||
|
|
|
@ -16,17 +16,17 @@
|
|||
"url": {
|
||||
"type": "string"
|
||||
},
|
||||
"token": {
|
||||
"cookie": {
|
||||
"type": "string"
|
||||
},
|
||||
"username": {
|
||||
"type": "string"
|
||||
},
|
||||
"password": {
|
||||
"type": "string"
|
||||
},
|
||||
"expired":{
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"acls": [
|
||||
{
|
||||
"property": "*",
|
||||
"accessType": "*",
|
||||
"principalType": "ROLE",
|
||||
"principalId": "$everyone",
|
||||
"permission": "ALLOW"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
"name": "ImageConfig",
|
||||
"base": "VnModel",
|
||||
"options": {
|
||||
"mysql": {
|
||||
"table": "hedera.imageConfig"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"url": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"acls": [
|
||||
{
|
||||
"accessType": "READ",
|
||||
"principalType": "ROLE",
|
||||
"principalId": "$authenticated",
|
||||
"permission": "ALLOW"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"name": "MachineWorkerConfig",
|
||||
"base": "VnModel",
|
||||
"options": {
|
||||
"mysql": {
|
||||
"table": "vn.machineWorkerConfig"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "number",
|
||||
"id": true
|
||||
},
|
||||
"maxHours": {
|
||||
"type": "number"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
module.exports = Self => {
|
||||
require('../methods/machine-worker/updateInTime')(Self);
|
||||
};
|
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
"name": "MachineWorker",
|
||||
"base": "VnModel",
|
||||
"options": {
|
||||
"mysql": {
|
||||
"table": "vn.machineWorker"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "number",
|
||||
"id": true
|
||||
},
|
||||
"workerFk": {
|
||||
"type": "number"
|
||||
},
|
||||
"machineFk": {
|
||||
"type": "number"
|
||||
},
|
||||
"inTime": {
|
||||
"type": "date",
|
||||
"mysql": {
|
||||
"columnName": "inTimed"
|
||||
}
|
||||
},
|
||||
"outTime": {
|
||||
"type": "date",
|
||||
"mysql": {
|
||||
"columnName": "outTimed"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,26 +0,0 @@
|
|||
{
|
||||
"name": "OrmConfig",
|
||||
"base": "VnModel",
|
||||
"options": {
|
||||
"mysql": {
|
||||
"table": "ormConfig"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "number",
|
||||
"id": true
|
||||
},
|
||||
"selectLimit": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"acls": [
|
||||
{
|
||||
"accessType": "*",
|
||||
"principalType": "ROLE",
|
||||
"principalId": "$authenticated",
|
||||
"permission": "ALLOW"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
module.exports = Self => {
|
||||
require('../methods/osrm-config/optimize')(Self);
|
||||
};
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
{
|
||||
"name": "OsrmConfig",
|
||||
"base": "VnModel",
|
||||
"options": {
|
||||
"mysql": {
|
||||
"table": "osrmConfig"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "number",
|
||||
"id": true,
|
||||
"required": true
|
||||
},
|
||||
"url": {
|
||||
"type": "string",
|
||||
"required": true
|
||||
},
|
||||
"tolerance": {
|
||||
"type": "number",
|
||||
"required": false
|
||||
}
|
||||
}
|
||||
}
|
|
@ -52,7 +52,7 @@
|
|||
},
|
||||
"payMethod": {
|
||||
"type": "belongsTo",
|
||||
"model": "PayMethod",
|
||||
"model": "PayMethodFk",
|
||||
"foreignKey": "payMethodFk"
|
||||
},
|
||||
"company": {
|
||||
|
|
|
@ -1,27 +0,0 @@
|
|||
{
|
||||
"name": "PbxConfig",
|
||||
"base": "VnModel",
|
||||
"options": {
|
||||
"mysql": {
|
||||
"table": "pbx.config"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "number",
|
||||
"id": true
|
||||
},
|
||||
"defaultPrefix": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"acls": [
|
||||
{
|
||||
"property": "*",
|
||||
"accessType": "READ",
|
||||
"principalType": "ROLE",
|
||||
"principalId": "employee",
|
||||
"permission": "ALLOW"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -9,8 +9,7 @@
|
|||
"properties": {
|
||||
"code": {
|
||||
"id": true,
|
||||
"type": "string",
|
||||
"required": true
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"relations": {
|
||||
|
|
|
@ -1,27 +0,0 @@
|
|||
{
|
||||
"name": "Prefix",
|
||||
"base": "VnModel",
|
||||
"options": {
|
||||
"mysql": {
|
||||
"table": "pbx.prefix"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"country": {
|
||||
"type": "string",
|
||||
"id": true
|
||||
},
|
||||
"prefix": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"acls": [
|
||||
{
|
||||
"property": "*",
|
||||
"accessType": "READ",
|
||||
"principalType": "ROLE",
|
||||
"principalId": "employee",
|
||||
"permission": "ALLOW"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -20,9 +20,6 @@
|
|||
},
|
||||
"backupPrinterNotificationDelay": {
|
||||
"type": "string"
|
||||
},
|
||||
"itemOrderReviewHours": {
|
||||
"type": "number"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -16,9 +16,6 @@
|
|||
"name": {
|
||||
"type": "string",
|
||||
"required": true
|
||||
},
|
||||
"autonomyFk": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"relations": {
|
||||
|
|
|
@ -1,38 +0,0 @@
|
|||
{
|
||||
"name": "QueueMember",
|
||||
"base": "VnModel",
|
||||
"options": {
|
||||
"mysql": {
|
||||
"table": "pbx.queueMember"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "number",
|
||||
"id": true
|
||||
},
|
||||
"queue": {
|
||||
"type": "string"
|
||||
},
|
||||
"extension": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"relations": {
|
||||
"queueRelation": {
|
||||
"type": "belongsTo",
|
||||
"model": "Queue",
|
||||
"foreignKey": "queue",
|
||||
"primaryKey": "name"
|
||||
}
|
||||
},
|
||||
"acls": [
|
||||
{
|
||||
"property": "*",
|
||||
"accessType": "READ",
|
||||
"principalType": "ROLE",
|
||||
"principalId": "employee",
|
||||
"permission": "ALLOW"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
{
|
||||
"name": "SaySimpleConfig",
|
||||
"base": "VnModel",
|
||||
"options": {
|
||||
"mysql": {
|
||||
"table": "saySimpleConfig"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "number",
|
||||
"id": true
|
||||
},
|
||||
"url": {
|
||||
"type": "string"
|
||||
},
|
||||
"defaultChannel": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"acls": [
|
||||
{
|
||||
"accessType": "READ",
|
||||
"principalType": "ROLE",
|
||||
"principalId": "$authenticated",
|
||||
"permission": "ALLOW"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,26 +0,0 @@
|
|||
{
|
||||
"name": "SaySimpleCountry",
|
||||
"base": "VnModel",
|
||||
"options": {
|
||||
"mysql": {
|
||||
"table": "saySimpleCountry"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"countryFk": {
|
||||
"type": "number",
|
||||
"id": true
|
||||
},
|
||||
"channel": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"acls": [
|
||||
{
|
||||
"accessType": "READ",
|
||||
"principalType": "ROLE",
|
||||
"principalId": "$authenticated",
|
||||
"permission": "ALLOW"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -12,8 +12,7 @@
|
|||
"type": "number"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"required": true
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"relations": {
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
const vnModel = require('vn-loopback/common/models/vn-model');
|
||||
module.exports = function(Self) {
|
||||
vnModel(Self);
|
||||
require('../methods/vn-token/killSession')(Self);
|
||||
};
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
"name": "VnToken",
|
||||
"base": "AccessToken",
|
||||
"options": {
|
||||
"mysql": {
|
||||
"table": "salix.AccessToken"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"created": {
|
||||
"type": "date"
|
||||
}
|
||||
},
|
||||
"relations": {
|
||||
"user": {
|
||||
"type": "belongsTo",
|
||||
"model": "VnUser",
|
||||
"foreignKey": "userId"
|
||||
}
|
||||
},
|
||||
"hidden": ["id"]
|
||||
}
|
|
@ -101,10 +101,9 @@ module.exports = function(Self) {
|
|||
const headers = httpRequest.headers;
|
||||
const origin = headers.origin;
|
||||
|
||||
const defaultHash = '!/reset-password?access_token=$token$';
|
||||
const defaultHash = '/reset-password?access_token=$token$';
|
||||
const recoverHashes = {
|
||||
hedera: '!verificationToken=$token$',
|
||||
lilium: '/resetPassword?access_token=$token$'
|
||||
hedera: 'verificationToken=$token$'
|
||||
};
|
||||
|
||||
const app = info.options?.app;
|
||||
|
@ -116,7 +115,7 @@ module.exports = function(Self) {
|
|||
const params = {
|
||||
recipient: info.email,
|
||||
lang: user.lang,
|
||||
url: origin + '/#' + recoverHash
|
||||
url: origin + '/#!' + recoverHash
|
||||
};
|
||||
|
||||
const options = Object.assign({}, info.options);
|
||||
|
|
|
@ -165,8 +165,7 @@
|
|||
"hasGrant",
|
||||
"realm",
|
||||
"email",
|
||||
"emailVerified",
|
||||
"twoFactor"
|
||||
"emailVerified"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,9 +25,6 @@
|
|||
"isManaged": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"isDestiny": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"countryFk": {
|
||||
"type": "number"
|
||||
}
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
module.exports = Self => {
|
||||
require('../methods/workerActivity/add')(Self);
|
||||
};
|
|
@ -22,7 +22,6 @@
|
|||
},
|
||||
"description": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"relations": {
|
||||
"workerFk": {
|
||||
|
@ -37,3 +36,4 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
apps:
|
||||
- script: ./loopback/server/server.js
|
||||
name: salix-back
|
||||
instances: 1
|
||||
max_restarts: 3
|
||||
restart_delay: 15000
|
||||
node_args: --tls-min-v1.0 --openssl-legacy-provider
|
|
@ -9,7 +9,7 @@
|
|||
},
|
||||
"vn": {
|
||||
"view": {
|
||||
"expeditionPallet_Print": "04fc5f2967ce53bfbb85f7f48b9a3dca4a4f7111ac41e1775f4cc7d6538774b2"
|
||||
"expeditionPallet_Print": "ced2b84a114fcb99fce05f0c34f4fc03f3fa387bef92621be1bc306608a84345"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,5 +1,4 @@
|
|||
USE `mysql`;
|
||||
/*M!999999\- enable the sandbox mode */
|
||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
|
@ -49,7 +48,6 @@ INSERT IGNORE INTO `db` VALUES ('','geo','developerBoss','Y','Y','Y','Y','N','N'
|
|||
INSERT IGNORE INTO `db` VALUES ('','floranet','developer','Y','Y','Y','Y','N','N','N','N','N','N','N','N','N','N','N','N','Y','N','N','N');
|
||||
INSERT IGNORE INTO `db` VALUES ('','tmp','guest','Y','Y','Y','Y','N','Y','N','N','N','N','Y','N','N','N','N','N','N','N','N','N');
|
||||
INSERT IGNORE INTO `db` VALUES ('','util','salix','Y','Y','Y','Y','N','N','N','N','N','N','Y','N','N','N','N','N','Y','N','N','N');
|
||||
INSERT IGNORE INTO `db` VALUES ('','srt','maintenanceBoss','Y','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N');
|
||||
INSERT IGNORE INTO `db` VALUES ('','dipole','developerBoss','Y','Y','Y','Y','N','N','Y','N','N','N','N','N','N','N','N','N','Y','N','N','N');
|
||||
INSERT IGNORE INTO `db` VALUES ('','bi','developerBoss','Y','Y','Y','Y','N','N','Y','N','N','N','N','N','N','N','N','N','Y','N','N','N');
|
||||
INSERT IGNORE INTO `db` VALUES ('','sage','developerBoss','Y','Y','Y','Y','N','N','Y','N','N','N','N','N','N','N','N','N','Y','N','N','N');
|
||||
|
@ -466,7 +464,6 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','productionAssi','Reservas'
|
|||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','deliveryAssistant','cmr','guillermo@db-proxy1.static.verdnatura.es','0000-00-00 00:00:00','Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','employee','Rutas','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','hr','address','alexm@%','0000-00-00 00:00:00','Insert','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','pbx','grafana','queue','root@localhost','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','address','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','hr','accountingType','guillermo@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','itemShelvingStock_byWarehouse','guillermo@db-proxy1.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
|
@ -503,7 +500,7 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','vn','hr','receipt','alexm@%','0000-
|
|||
INSERT IGNORE INTO `tables_priv` VALUES ('','hedera','grafana','visitUser','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','referenceRate','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','salesPerson','report','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','buyerAssistant','producer','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','cache','productionBoss','available','guillermo@10.5.1.2','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','time','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','coolerAssist','role','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','config__','alexm@%','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
|
@ -602,10 +599,11 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','projectState'
|
|||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','entrySplit__','alexm@%','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','entryType','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','projectNotes','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','project','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','project','juan@10.5.1.1','0000-00-00 00:00:00','Select,Update','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','productionConfig','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','manager','productionConfig','alexm@%','0000-00-00 00:00:00','Update','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','creditInsurance','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','cache','productionBoss','visible','guillermo@10.5.1.2','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','errorProduction__','alexm@%','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','hr','invoiceOut','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','coolerAssist','Tickets','alexm@%','0000-00-00 00:00:00','Update','');
|
||||
|
@ -740,7 +738,7 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','vn','productionAssi','mrw','guiller
|
|||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','mrwService','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','ppePlan','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','hrBoss','accountingConfig','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','buyer','buy','carlosap@10.5.1.8','0000-00-00 00:00:00','Select,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','buyer','buy','alexm@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','logistic','buy','alexm@%','0000-00-00 00:00:00','Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','saleGoal','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','packager','packingSiteLog','alexm@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Insert','');
|
||||
|
@ -779,7 +777,6 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','vn','productionAssi','vehicleState'
|
|||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','productionAssi','vehicleEvent','alexm@%','0000-00-00 00:00:00','Select,Insert','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','cooler','Tintas','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','itemBotanical','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','productionConfigLog','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','account','developer','signInLog','juan@db-proxy1.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','ticketTracking','alexm@db-proxy1.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','productionAssi','deviceProductionState','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
|
@ -790,8 +787,8 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','printServerQueue__'
|
|||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','artificialBoss','buy','alexm@%','0000-00-00 00:00:00','Update','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','hr','Movimientos','alexm@%','0000-00-00 00:00:00','Update','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','coolerAssist','buy','alexm@%','0000-00-00 00:00:00','Update','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','buyer','itemMinimumQuantity','jenkins@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','adminOfficer','receipt','guillermo@db-proxy1.static.verdnatura.es','0000-00-00 00:00:00','Insert','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','buyerBoss','producer','alexm@%','0000-00-00 00:00:00','Update','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','administrative','link','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','hr','link','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','delivery','vehicle','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
|
@ -805,7 +802,7 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','edi','grafana','supplyResponse','ju
|
|||
INSERT IGNORE INTO `tables_priv` VALUES ('','cache','customer','last_buy','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','salesAssistant','client','carlosap@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Update','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','invoiceInTax','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','salesAssistant','workerTeam','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','salesAssistant','workerTeam','juan@10.5.1.2','0000-00-00 00:00:00','Select,Insert,Update','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','postgresql','hr','profile_type','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','postgresql','hr','profile_media','alexm@%','0000-00-00 00:00:00','Select,Insert','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','financial','recovery','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
|
@ -835,6 +832,7 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','bi','salesPerson','tarifa_component
|
|||
INSERT IGNORE INTO `tables_priv` VALUES ('','srt','employee','expeditionLog','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','bs','salesPerson','clientNewBorn','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','saleItemShelving__','alexm@%','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','salesBoss','workerTeam','juan@10.5.1.2','0000-00-00 00:00:00','Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','srt','employee','expedition','alexm@%','0000-00-00 00:00:00','Update','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','itemShelvingStock','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','saleParking__','alexm@%','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
|
@ -884,8 +882,9 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','ticketCollection','
|
|||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','ticketDocumentation','alexm@%','0000-00-00 00:00:00','Select,Insert','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','ticketDms','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','salesPerson','ektEntryAssign','alexm@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select,Insert','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','intrastat','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','intrastat','alexm@%','0000-00-00 00:00:00','Insert','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','productionAssi','supplierAgencyTerm','alexm@%','0000-00-00 00:00:00','Update','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','coolerAssist','entryConfig','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','packager','franceExpressConfig','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','manager','ticketLog','juan@10.5.1.2','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','productionAssi','ticketCollection','alexm@%','0000-00-00 00:00:00','Delete','');
|
||||
|
@ -927,23 +926,26 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','tillConfig','
|
|||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','till','juan@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','productionAssi','till','alexm@%','0000-00-00 00:00:00','Select,Insert,Update','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','financial','vehicleState','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','production','sectorCollectionSaleGroup','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','adminOfficer','vehicleInvoiceIn','alexm@%','0000-00-00 00:00:00','Insert,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','financial','vehicleEvent','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','financial','vehicleDms','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','logistic','vehicle','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','vehicle','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','buyer','Agencias','alexm@%','0000-00-00 00:00:00','Insert,Update','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','production','expeditionStateType','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','adminOfficer','vehicleDms','alexm@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','ticketState','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','vehicleInvoiceIn','alexm@%','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','financialBoss','vehicleNotes','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','adminOfficer','vehicleState','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','volumeConfig','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','coolerBoss','ticketTrackingState','alexm@%','0000-00-00 00:00:00','Select,Insert,Update','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','warehouse','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','role','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','hr','workCenter','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','clientCredit','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','worker','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','coolerAssist','workerAppTester','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','financial','propertyGroup','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','financial','propertyGroup','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','hr','worker','alexm@%','0000-00-00 00:00:00','Update','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','hr','workerBusinessType','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','buyer','workerDepartment','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
|
@ -962,11 +964,12 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','vn','buyer','workerMana','alexm@%',
|
|||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','salesPerson','workerMana','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','claimManager','ticketPackaging','alexm@%','0000-00-00 00:00:00','Insert','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','claimManager','ticketPackagingStartingStock','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','claimManager','entryConfig','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','officeBoss','ticketPackagingStartingStock','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','hr','workerRelatives','guillermo@db-proxy1.static.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','productionAssi','ticketPackagingStartingStock','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','supplierPackaging','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','supplierContact','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','hr','workerDocument','alexm@%','0000-00-00 00:00:00','Select,Insert','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','invoiceCorrection','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','ink','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','zone','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
|
@ -979,7 +982,7 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','bi','officeBoss','Greuge_Evolution'
|
|||
INSERT IGNORE INTO `tables_priv` VALUES ('','bi','claimManager','rotacion','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','bs','grafana','sale','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','zonePromo__','alexm@%','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','accountingConfig','carlosap@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Update','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','accountingConfig','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','accountingType','alexm@%','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','logistic','agencyMode','alexm@%','0000-00-00 00:00:00','Insert,Update','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','cache','employee','visible','juan@10.5.1.2','0000-00-00 00:00:00','Select','');
|
||||
|
@ -1000,7 +1003,7 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','calendar','juan@db-p
|
|||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','campaign','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','ticketService','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','report','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','buyer','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','buyer','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','bs','grafana','defaulter','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','componentType','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','clientManaCache','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
|
@ -1243,7 +1246,7 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','bs','deliveryAssistant','m3','alexm
|
|||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','deliveryAssistant','ticketDms','alexm@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','deliveryAssistant','time','alexm@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','deliveryAssistant','v_Articles_botanical','alexm@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','inventoryConfig','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','deliveryAssistant','workCenter','alexm@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','deliveryAssistant','workerDepartment','alexm@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','deliveryAssistant','zoneEvent','alexm@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','bi','deliveryAssistant','rotacion','alexm@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
|
@ -1271,7 +1274,7 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','bs','grafana','workerProductivityCo
|
|||
INSERT IGNORE INTO `tables_priv` VALUES ('','srt','grafana','antenna','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','cmr','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','accounting','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','creditClassification','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','creditClassification','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','ticketLog','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','srt','grafana','moving','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','claimDevelopment','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
|
@ -1286,8 +1289,6 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','srt','grafana','buffer','juan@db-pr
|
|||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','greuge','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','buyer','item','jenkins@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','','Select,Update');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','coolerBoss','itemShelving','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Update','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','buyer','agencyIncoming','alexm@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','addressObservation','carlosap@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','negativeOrigin','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','deliveryBoss','Vehiculos_consumo','carlosap@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','buyer','entryOrder','jenkins@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Delete','');
|
||||
|
@ -1353,8 +1354,6 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','accounting','
|
|||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','hr','accounting','jenkins@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','workerActivity','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','ticketRequest','guillermo@10.5.1.3','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','deliveryAssistant','Vehiculos_consumo','carlosap@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','budgetState','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','deliveryBoss','vehicleState','jgallego@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','srt','grafana','expeditionState','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','buyer','specialPrice','jgallego@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
|
@ -1377,7 +1376,6 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','professionalCategory
|
|||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','production','ticketObservation','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Insert','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','deliveryNoteState','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','deliveryNote','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','inventoryConfig','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','comparative','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','invoiceOutExpense','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','delivery','carlosap@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
|
@ -1385,15 +1383,15 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','entry','jenki
|
|||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','buyer','Cubos_Retorno','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','claimDestination','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','entryConfig','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','farmingDeliveryNote','carlosap@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','farmingDeliveryNote','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','sage','grafana','TiposIva','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','bs','buyer','waste','alexm@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','clientObservation','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','hedera','grafana','visit','root@localhost','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','workerActivity','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','financial','bankPolicy','jgallego@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','financial','bankPolicyDetail','jgallego@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','financial','bankPolicyReview','jgallego@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','financial','bankPolicy','alexm@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','financial','bankPolicyDetail','alexm@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','financial','bankPolicyReview','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','roadmapStop','guillermo@10.5.1.3','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','production','roadmapStop','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','agencyWorkCenter','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
|
@ -1403,7 +1401,6 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','vn','teamBoss','business','guillerm
|
|||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','ticketServiceType','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','business','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','','Select');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','supplierAgencyTerm','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','itemMinimumQuantity','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','clientRate','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','entryEditor','Entradas','guillermo@10.5.1.3','0000-00-00 00:00:00','Insert','Update');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','clientInforma','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
|
@ -1412,99 +1409,28 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','clientUnpaid'
|
|||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','administrative','pay_dem','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','adminOfficer','invoiceOut','guillermo@10.5.1.3','0000-00-00 00:00:00','Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','financialBoss','invoiceOut','guillermo@10.5.1.3','0000-00-00 00:00:00','Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','financialBoss','accountDetail','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','financialBoss','accountDetail','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Update','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','adminOfficer','accountDetail','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Update','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','maintenanceBoss','project','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','maintenanceBoss','machineDetail','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','workerActivityType','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','delivery','zoneConfig','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','buyerSalesAssistant','route','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','workCenter','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','buyerSalesAssistant','Rutas','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Update','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','marketingBoss','specialPrice','alexm@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','srt','maintenanceBoss','antenna','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','srt','maintenanceBoss','bufferPool','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','srt','maintenanceBoss','enteringLog','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','srt','maintenanceBoss','expeditionLoading','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','srt','maintenanceBoss','failureLog','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','srt','maintenanceBoss','movingLog','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','srt','maintenanceBoss','sorterLog','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','buyer','genericAllocation','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','hr','businessReasonEnd','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','buyer','buy_edi','alexm@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','buyer','buySource','alexm@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','bi','salesPerson','claims_ratio','alexm@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','hedera','employee','shelfMultiConfig','jenkins@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','clientConfig','carlosap@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','deliveryBoss','albaran','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','deliveryBoss','albaran_gestdoc','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','deliveryBoss','albaran_state','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','deliveryBoss','deliveryNote','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','deliveryBoss','deliveryNoteDms','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','deliveryBoss','deliveryNoteState','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','salesPerson','buy','alexm@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','entryType','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','productionBoss','claimDestination','juan@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','entryLog','alexm@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','dipole','grafana','expedition_PrintOut','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','ticketObservation','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','recovery','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','observationType','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','clientInforma','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','accountingType','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','bankPolicyDetail','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','bankPolicyReview','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','bankPolicy','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','edi','hedera-web','imapMultiConfig','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','hedera','salesAssistant','orderConfig','root@localhost','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','itemEntryOut','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','itemEntryIn','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','itemShelvingSale','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','logistic','packaging','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Insert,Update','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','buyerBoss','rate','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','deliveryBoss','vehicleDms','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','deliveryBoss','vehicleInvoiceIn','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','deliveryBoss','vehicleNotes','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','production','saleGroup','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','shelvingLog','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','financialBoss','supplierAccount','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','productionAssi','tillSerial','alexm@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','stockBuyed','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','alertLevel','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','workerActivityType','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','buyer','priceDelta','jenkins@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','parkingLog','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','travelLog','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','buyer','supplierContact','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','hr','workerDms','alexm@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','itemLog','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','account','developer','user','juan@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','claimManager','claimReason','alexm@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','claimManager','claimResponsible','alexm@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','claimManager','claimResult','alexm@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','claimManager','claimRedelivery','alexm@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','logisticAssist','producer','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','logisticAssist','itemStateTag','alexm@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','logisticAssist','material','alexm@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','logisticAssist','saleUnit','alexm@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','logisticAssist','origin','alexm@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','deliveryAssistant','delivery','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','logisticAssist','itemFarmingTag','jenkins@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','logisticAssist','itemWrappingTag','jenkins@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','logisticAssist','itemLanguageTag','jenkins@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','logisticAssist','itemStemTag','jenkins@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','logisticAssist','itemBaseTag','jenkins@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','logisticAssist','itemBreederTag','jenkins@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','itemShelvingLog','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','logisticAssist','itemTextureTag','jenkins@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','travelThermograph','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','thermograph','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','buyerSalesAssistant','Tickets','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Update','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','hr','sim','jenkins@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','zoneGeo','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','buyer','itemCampaign','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','itemCampaign','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','buyer','campaign','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','awb','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','awbComponent','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','awbComponentType','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','logisticAssist','itemSoldOutTag','jenkins@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','logisticAssist','itemDurationTag','jenkins@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','logisticAssist','itemGrowingTag','jenkins@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
|
||||
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','adminBoss','receipt','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Update,Delete','');
|
||||
/*!40000 ALTER TABLE `tables_priv` ENABLE KEYS */;
|
||||
|
||||
/*!40000 ALTER TABLE `columns_priv` DISABLE KEYS */;
|
||||
|
@ -1884,13 +1810,14 @@ INSERT IGNORE INTO `procs_priv` VALUES ('','vn','claimManager','buy_getVolumeByE
|
|||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','buyer','buy_getVolumeByEntry','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','employee','entry_moveNotPrinted','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','employee','buy_getVolume','FUNCTION','alexm@%','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','buyer','stockBuyedByWorker','PROCEDURE','guillermo@db-proxy2.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','buyer','stockbuyedbyworker','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','employee','buy_getsplit','PROCEDURE','juan@db-proxy2.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','salesAssistant','subordinategetlist','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','buyer','buy_afterUpsert','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','util','grafana','dayend','FUNCTION','juan@db-proxy2.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','srt','production','buffer_settypebyname','PROCEDURE','alexm@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','grafana','clientGetMana','FUNCTION','guillermo@db-proxy2.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','buyer','buyUltimate','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','claimManager','buyUltimate','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','employee','barcodeToItem','FUNCTION','alexm@%','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','employee','ticket_splititempackingtype','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','employee','entry_getCommission','FUNCTION','alexm@%','Execute','0000-00-00 00:00:00');
|
||||
|
@ -1927,17 +1854,19 @@ INSERT IGNORE INTO `procs_priv` VALUES ('','util','android','debugadd','PROCEDUR
|
|||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','administrative','copyComponentsFromSaleList','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','administrative','duaEntryValueUpdate','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','administrative','duaInvoiceInBooking','PROCEDURE','carlosap@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','itemshelvinglog_get','PROCEDURE','alexm@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','expedition_getstate','PROCEDURE','alexm@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','srt','production','expedition_scan','PROCEDURE','alexm@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','productionBoss','saleSplit','PROCEDURE','guillermo@db-proxy2.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','grafana','client_getDebt','FUNCTION','guillermo@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','employee','client_getDebt','PROCEDURE','guillermo@db-proxy2.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','util','guest','tx_commit','PROCEDURE','jenkins@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','cooler','buyultimate','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','util','grafana','firstdayofyear','FUNCTION','juan@db-proxy2.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','util','claimManager','dayend','FUNCTION','alexm@%','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','util','employee','log_add','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','srt','employee','moving_between','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','bi','financial','defaultersfromdate','PROCEDURE','guillermo@db-proxy2.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','bi','financial','defaultersfromdate','PROCEDURE','juan@db-proxy2.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','employee','getuser','FUNCTION','alexm@%','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','administrative','hasanynegativebase','FUNCTION','alexm@%','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','marketingBoss','hasanynegativebase','FUNCTION','alexm@%','Execute','0000-00-00 00:00:00');
|
||||
|
@ -1973,7 +1902,6 @@ INSERT IGNORE INTO `procs_priv` VALUES ('','vn','salesAssistant','invoiceoutbook
|
|||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','administrative','ticket_gettax','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','util','productionAssi','midnight','FUNCTION','alexm@%','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','dipole','employee','expedition_add','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','itemshelving_transfer','PROCEDURE','alexm@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','coolerBoss','itempacking','FUNCTION','alexm@%','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','salesPerson','ticket_clone','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','cache','employee','available_refresh','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00');
|
||||
|
@ -2032,7 +1960,7 @@ INSERT IGNORE INTO `procs_priv` VALUES ('','vn','hr','logshow','PROCEDURE','alex
|
|||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','buyerBoss','supplierpackaging_reportsource','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','financialBoss','supplierexpenses','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','grafana','firstdayofweek','FUNCTION','juan@db-proxy2.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','buyer','stockBuyed_add','PROCEDURE','guillermo@db-proxy2.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','buyer','stockbuyed_add','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','administrative','mail_insert','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','administrative','duaParcialMake','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','palletizerBoss','packingsite_startcollection','PROCEDURE','alexm@db-proxy2.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
|
@ -2103,15 +2031,15 @@ INSERT IGNORE INTO `procs_priv` VALUES ('','account','developer','user_hasroutin
|
|||
INSERT IGNORE INTO `procs_priv` VALUES ('','account','grafana','user_hasRole','FUNCTION','jgallego@db-proxy2.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','util','guest','time_generate','PROCEDURE','jenkins@db-proxy2.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','itemshelving_addbyclaim','PROCEDURE','alexm@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','itemShelvingSale_addByCollection','PROCEDURE','carlosap@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','itemshelving_addlist','PROCEDURE','alexm@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','itemshelving_selfconsumption','PROCEDURE','alexm@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','cooler','item_getSimilar','PROCEDURE','guillermo@db-proxy2.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','item_getsimilar','PROCEDURE','alexm@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','itemshelvingsale_add','PROCEDURE','alexm@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','collection_printsticker','PROCEDURE','alexm@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','deviceproductionuser_getworker','PROCEDURE','alexm@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','ticket_printlabelprevious','PROCEDURE','alexm@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','ticket_isoutclosurezone','FUNCTION','alexm@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','workermachinery_isregistered','FUNCTION','alexm@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','ticketstatetoday_setstate','PROCEDURE','alexm@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','device_checklogin','PROCEDURE','alexm@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','worker_getfromhasmistake','PROCEDURE','alexm@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
|
@ -2119,7 +2047,7 @@ INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','sectorcollection_n
|
|||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','sectorcollection_get','PROCEDURE','alexm@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','setparking','PROCEDURE','alexm@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','shelvingparking_get','PROCEDURE','alexm@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','employee','report_print','PROCEDURE','guillermo@db-proxy2.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','machine_getworkerplate','PROCEDURE','alexm@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','saletracking_addprevok','PROCEDURE','alexm@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','sectorcollectionsalegroup_add','PROCEDURE','alexm@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','saletracking_updateischecked','PROCEDURE','alexm@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
|
@ -2128,7 +2056,7 @@ INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','travel_updatepacki
|
|||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','freelance_getinfo','PROCEDURE','alexm@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','company_getfiscaldata','PROCEDURE','alexm@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','expedition_getfromroute','PROCEDURE','alexm@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','buy_getUltimate','FUNCTION','guillermo@db-proxy2.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','machineworker_gethistorical','PROCEDURE','alexm@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','itemplacementsupplyaiming','PROCEDURE','alexm@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','expeditionstate_addbypallet','PROCEDURE','alexm@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','srt','production','expeditionloading_add','PROCEDURE','alexm@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
|
@ -2149,19 +2077,20 @@ INSERT IGNORE INTO `procs_priv` VALUES ('','srt','delivery','buffer_settypebynam
|
|||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','expedition_getstate','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','srt','delivery','expedition_scan','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','itemshelving_get','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','financial','remittance_calc','PROCEDURE','jgallego@db-proxy2.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','itemshelvinglog_get','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','itemshelving_add','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','itemshelving_getsaledate','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','itemshelving_filterbuyer','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','itemshelving_addbyclaim','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','itemshelving_addlist','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','itemshelving_selfconsumption','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','reviewer','item_getSimilar','PROCEDURE','guillermo@10.5.1.6','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','item_getsimilar','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','itemshelvingsale_add','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','collection_printsticker','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','deviceproductionuser_getworker','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','ticket_printlabelprevious','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','ticket_isoutclosurezone','FUNCTION','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','workermachinery_isregistered','FUNCTION','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','ticketstatetoday_setstate','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','device_checklogin','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','worker_getfromhasmistake','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
|
@ -2169,7 +2098,7 @@ INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','sectorcollection_new
|
|||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','sectorcollection_get','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','setparking','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','shelvingparking_get','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','employee','buy_getLastWithoutInventory','FUNCTION','guillermo@db-proxy2.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','machine_getworkerplate','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','saletracking_addprevok','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','sectorcollectionsalegroup_add','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','saletracking_updateischecked','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
|
@ -2178,7 +2107,7 @@ INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','travel_updatepacking
|
|||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','freelance_getinfo','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','company_getfiscaldata','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','expedition_getfromroute','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','salesAssistant','zone_getPostalCode','PROCEDURE','guillermo@db-proxy2.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','machineworker_gethistorical','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','itemplacementsupplyaiming','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','expeditionstate_addbypallet','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','srt','delivery','expeditionloading_add','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
|
@ -2205,13 +2134,16 @@ INSERT IGNORE INTO `procs_priv` VALUES ('','vn','buyer','buy_recalcPricesByAwb',
|
|||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','buyer','buy_recalcPricesByEntry','PROCEDURE','jenkins@db-proxy2.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','util','hr','accountNumberToIban','FUNCTION','jenkins@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','util','financial','accountNumberToIban','FUNCTION','jenkins@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','buyer','supplier_statementWithEntries','PROCEDURE','guillermo@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','administrative','supplier_statement','PROCEDURE','jenkins@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','buyer','supplier_statement','PROCEDURE','jenkins@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','hrBoss','supplier_statement','PROCEDURE','jenkins@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','adminBoss','XDiario_check','PROCEDURE','jenkins@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','buyer','travel_getDetailFromContinent','PROCEDURE','jenkins@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','claimManager','entry_getTransfer','PROCEDURE','jenkins@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','buyer','entry_getTransfer','PROCEDURE','jenkins@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','administrative','intrastat_estimateNet','FUNCTION','jenkins@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','artificialBoss','confection_controlSource','PROCEDURE','jenkins@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','financial','remittance_calc','PROCEDURE','alexm@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','util','developer','connection_kill','PROCEDURE','jenkins@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','financial','client_getRisk','PROCEDURE','jenkins@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','account','developer','user_hasRole','FUNCTION','root@localhost','Execute','0000-00-00 00:00:00');
|
||||
|
@ -2222,27 +2154,8 @@ INSERT IGNORE INTO `procs_priv` VALUES ('','vn','employee','buy_recalcPricesByEn
|
|||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','entryEditor','buy_recalcPricesByBuy','PROCEDURE','jenkins@db-proxy2.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','claimManager','buy_recalcPricesByBuy','PROCEDURE','jenkins@db-proxy2.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','employee','buy_recalcPricesByBuy','PROCEDURE','jenkins@db-proxy2.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','itemShelvingSale_addBySaleGroup','PROCEDURE','alexm@db-proxy2.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','hr','ledger_nextTx','PROCEDURE','guillermo@db-proxy2.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','hr','ledger_docompensation','PROCEDURE','guillermo@db-proxy2.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','itemShelvingSale_setQuantity','PROCEDURE','carlosap@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','itemShelvingSale_unpicked','PROCEDURE','carlosap@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','collection_getAssigned','PROCEDURE','carlosap@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','collection_addWithReservation','PROCEDURE','carlosap@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','itemShelvingSale_addBySectorCollection','PROCEDURE','carlosap@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','sectorCollection_hasSalesReserved','FUNCTION','carlosap@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','itemShelvingSale_reallocate','PROCEDURE','carlosap@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','itemShelvingSale_setPicked','PROCEDURE','carlosap@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','sectorCollection_getMyPartial','PROCEDURE','carlosap@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','grafana-write','item_ValuateInventory','PROCEDURE','guillermo@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','guest','ticketCalculatePurge','PROCEDURE','jenkins@db-proxy2.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','buyer','buy_getUltimate','PROCEDURE','guillermo@db-proxy2.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','cooler','buy_getUltimate','PROCEDURE','guillermo@db-proxy2.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','bs','buyerBoss','waste_addSales','PROCEDURE','jenkins@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','saletracking_sectorcollectionaddprevok','PROCEDURE','alexm@db-proxy2.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','salesAssistant','saleSplit','PROCEDURE','carlosap@db-proxy2.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','itemShelvingSale_deleteAdded','PROCEDURE','guillermo@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','buy_getUltimate','PROCEDURE','guillermo@db-proxy2.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
|
||||
/*!40000 ALTER TABLE `procs_priv` ENABLE KEYS */;
|
||||
|
||||
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
||||
|
@ -2250,7 +2163,6 @@ INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','buy_getUltimate','
|
|||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
USE `mysql`;
|
||||
/*M!999999\- enable the sandbox mode */
|
||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
||||
|
@ -2267,13 +2179,12 @@ INSERT IGNORE INTO `global_priv` VALUES ('','assetManager','{\"access\":0,\"vers
|
|||
INSERT IGNORE INTO `global_priv` VALUES ('','buyer','{\"access\": 0, \"version_id\": 101106, \"is_role\": true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','buyerAssistant','{\"access\":0,\"version_id\":101106,\"is_role\":true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','buyerBoss','{\"access\": 0, \"version_id\": 101106, \"is_role\": true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','buyerSalesAssistant','{\"access\":0,\"version_id\":101106,\"is_role\":true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','claimManager','{\"access\":0,\"version_id\":101106,\"is_role\":true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','cooler','{\"access\":0,\"version_id\":101106,\"is_role\":true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','coolerAssist','{\"access\":0,\"version_id\":101106,\"is_role\":true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','coolerAssist','{\"access\":0,\"version_id\":100707,\"is_role\":true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','coolerBoss','{\"access\":0,\"version_id\":101106,\"is_role\":true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','customer','{\"access\": 0, \"max_questions\": 0, \"max_updates\": 30000, \"max_connections\": 300000, \"max_user_connections\": 400, \"max_statement_time\": 0.000000, \"is_role\": true,\"version_id\":100707}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','delivery','{\"access\":0,\"version_id\":101106,\"is_role\":true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','delivery','{\"access\":0,\"version_id\":100707,\"is_role\":true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','deliveryAssistant','{\"access\":0,\"version_id\":101106,\"is_role\":true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','deliveryBoss','{\"access\":0,\"version_id\":101106,\"is_role\":true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','developer','{\"access\": 5909905728, \"is_role\": true, \"version_id\": 101106}');
|
||||
|
@ -2285,11 +2196,10 @@ INSERT IGNORE INTO `global_priv` VALUES ('','financial','{\"access\": 0, \"versi
|
|||
INSERT IGNORE INTO `global_priv` VALUES ('','financialBoss','{\"access\": 0, \"version_id\": 101106, \"is_role\": true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','floranet','{\"access\":0,\"version_id\":101106,\"is_role\":true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','grafana','{\"access\":0,\"version_id\":101106,\"is_role\":true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','grafana-write','{\"access\":0,\"version_id\":101106,\"is_role\":true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','greenhouseBoss','{\"access\":0,\"version_id\":101106,\"is_role\":true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','guest','{\"access\": 0, \"max_questions\": 40000, \"max_updates\": 1000, \"max_connections\": 150000, \"max_user_connections\": 200, \"max_statement_time\": 0.000000, \"is_role\": true, \"version_id\": 101106}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','handmadeBoss','{\"access\":0,\"version_id\":101106,\"is_role\":true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','hedera-web','{\"access\":0,\"version_id\":101106,\"is_role\":true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','hedera-web','{\"access\":0,\"version_id\":100707,\"is_role\":true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','hr','{\"access\": 0, \"is_role\": true, \"version_id\": 101106}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','hrBoss','{\"access\":0,\"version_id\":101106,\"is_role\":true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','invoicing','{\"access\":0,\"version_id\":100707,\"is_role\":true}');
|
||||
|
@ -2314,12 +2224,10 @@ INSERT IGNORE INTO `global_priv` VALUES ('','production','{\"access\":0,\"versio
|
|||
INSERT IGNORE INTO `global_priv` VALUES ('','productionAssi','{\"access\": 0, \"version_id\": 101106, \"is_role\": true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','productionBoss','{\"access\":0,\"version_id\":101106,\"is_role\":true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','productionPlus','{\"access\":0,\"version_id\":100707,\"is_role\":true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','reviewer','{\"access\":0,\"version_id\":101106,\"is_role\":true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','root','{\"access\": 549755781119, \"version_id\": 100705, \"is_role\": true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','salesAssistant','{\"access\":0,\"version_id\":101106,\"is_role\":true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','salesBoss','{\"access\":0,\"version_id\":101106,\"is_role\":true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','salesPerson','{\"access\": 0, \"is_role\": true,\"version_id\":101106}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','salesPersonClaim','{\"access\":0,\"version_id\":101106,\"is_role\":true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','salesTeamBoss','{\"access\":0,\"version_id\":100707,\"is_role\":true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','salix','{\"access\":33555456,\"version_id\":100707,\"is_role\":true}');
|
||||
INSERT IGNORE INTO `global_priv` VALUES ('','sysadmin','{\"access\": 201326592, \"is_role\": true, \"version_id\": 100707}');
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,14 +1 @@
|
|||
-- Executed before dump
|
||||
|
||||
CREATE USER 'vn'@'localhost';
|
||||
|
||||
GRANT SELECT,
|
||||
INSERT,
|
||||
UPDATE,
|
||||
DELETE,
|
||||
DROP,
|
||||
CREATE TEMPORARY TABLES,
|
||||
EXECUTE,
|
||||
EVENT,
|
||||
TRIGGER
|
||||
ON *.* TO 'vn'@'localhost';
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -7,7 +7,8 @@ AS SELECT `u`.`id` AS `id`,
|
|||
`u`.`email` AS `email`,
|
||||
`u`.`nickname` AS `nickname`,
|
||||
`u`.`lang` AS `lang`,
|
||||
`u`.`role` AS `role`
|
||||
`u`.`role` AS `role`,
|
||||
`u`.`recoverPass` AS `recoverPass`
|
||||
FROM `account`.`user` `u`
|
||||
WHERE `u`.`name` = `myUser_getName`()
|
||||
WITH CASCADED CHECK OPTION
|
||||
|
|
|
@ -19,14 +19,14 @@ BEGIN
|
|||
bultos)
|
||||
SELECT r.id,
|
||||
r.agencyModeFk,
|
||||
r.dated,
|
||||
r.created,
|
||||
SUM(sv.volume / ebv.m3)
|
||||
FROM vn.route r
|
||||
JOIN vn.ticket t ON t.routeFk = r.id
|
||||
LEFT JOIN vn.`zone` z ON z.id = t.zoneFk
|
||||
JOIN vn.saleVolume sv ON sv.ticketFk = t.id
|
||||
JOIN vn.expeditionBoxVol ebv ON ebv.code = 'transportBox'
|
||||
WHERE r.dated BETWEEN vDatedFrom AND vDatedTo
|
||||
WHERE r.created BETWEEN vDatedFrom AND vDatedTo
|
||||
AND z.isVolumetric
|
||||
GROUP BY r.id;
|
||||
|
||||
|
@ -38,12 +38,12 @@ BEGIN
|
|||
Bultos)
|
||||
SELECT r.id,
|
||||
r.agencyModeFk,
|
||||
r.dated,
|
||||
r.created,
|
||||
SUM(t.packages)
|
||||
FROM vn.route r
|
||||
JOIN vn.ticket t ON t.routeFk = r.id
|
||||
LEFT JOIN vn.`zone` z ON z.id = t.zoneFk
|
||||
WHERE r.dated BETWEEN vDatedFrom AND vDatedTo
|
||||
WHERE r.created BETWEEN vDatedFrom AND vDatedTo
|
||||
AND NOT z.isVolumetric
|
||||
GROUP BY r.id
|
||||
ON DUPLICATE KEY UPDATE Bultos = Bultos + VALUES(Bultos);
|
||||
|
@ -60,7 +60,7 @@ BEGIN
|
|||
JOIN vn.component c ON c.id = sc.componentFk
|
||||
JOIN vn.componentType ct ON ct.id = c.typeFk
|
||||
WHERE ct.code = 'freight'
|
||||
AND r.dated BETWEEN vDatedFrom AND vDatedTo
|
||||
AND r.created BETWEEN vDatedFrom AND vDatedTo
|
||||
GROUP BY r.id
|
||||
) sub ON sub.routeFk = r.Id_Ruta
|
||||
SET r.practico = IFNULL(sub.totalPractice / r.Bultos, 0);
|
||||
|
@ -77,7 +77,7 @@ BEGIN
|
|||
JOIN vn.address ad ON ad.id = t.addressFk
|
||||
JOIN vn.client c ON c.id = ad.clientFk
|
||||
LEFT JOIN vn.`zone` z ON z.id = t.zoneFk
|
||||
WHERE r.dated BETWEEN vDatedFrom AND vDatedTo
|
||||
WHERE r.created BETWEEN vDatedFrom AND vDatedTo
|
||||
AND NOT z.isVolumetric
|
||||
GROUP BY t.routeFk
|
||||
) sub ON r.Id_Ruta = sub.routeFk
|
||||
|
@ -93,7 +93,7 @@ BEGIN
|
|||
JOIN vn.saleVolume sf ON sf.ticketFk = t.id
|
||||
JOIN vn.client c ON c.id = t.clientFk
|
||||
JOIN vn.`zone` z ON z.id = t.zoneFk
|
||||
WHERE r.dated BETWEEN vDatedFrom AND vDatedTo
|
||||
WHERE r.created BETWEEN vDatedFrom AND vDatedTo
|
||||
AND z.isVolumetric
|
||||
GROUP BY t.routeFk
|
||||
) sub ON r.Id_Ruta = sub.routeFk
|
||||
|
@ -108,7 +108,7 @@ BEGIN
|
|||
JOIN vn.route r ON r.id = t.routeFk
|
||||
JOIN vn.greuge g ON g.ticketFk = t.id
|
||||
JOIN vn.greugeType gt ON gt.id = g.greugeTypeFk
|
||||
WHERE r.dated BETWEEN vDatedFrom AND vDatedTo
|
||||
WHERE r.created BETWEEN vDatedFrom AND vDatedTo
|
||||
AND gt.code = 'freightDifference'
|
||||
GROUP BY t.routeFk
|
||||
) sub ON r.Id_Ruta = sub.routeFk
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
CREATE OR REPLACE DEFINER=`root`@`localhost`
|
||||
SQL SECURITY DEFINER
|
||||
VIEW `bi`.`rotacion`
|
||||
AS SELECT `ic`.`itemFk` AS `Id_Article`,
|
||||
`ic`.`warehouseFk` AS `warehouse_id`,
|
||||
`ic`.`quantity` AS `total`,
|
||||
`ic`.`rotation` AS `rotacion`,
|
||||
`ic`.`cm3` AS `cm3`,
|
||||
`ic`.`storage` AS `almacenaje`,
|
||||
`ic`.`handling` AS `manipulacion`,
|
||||
`ic`.`extraCharge` AS `auxiliar`,
|
||||
`ic`.`wasted` AS `mermas`,
|
||||
`ic`.`cm3delivery` AS `cm3reparto`,
|
||||
`ic`.`grams` AS `grams`
|
||||
FROM `vn`.`itemCost` `ic`
|
|
@ -6,8 +6,8 @@ BLOCK1: BEGIN
|
|||
DECLARE vShipped DATE;
|
||||
DECLARE vPreviousShipped DATE;
|
||||
DECLARE vDone boolean;
|
||||
DECLARE cur cursor for
|
||||
|
||||
DECLARE cur CURSOR FOR
|
||||
SELECT clientFk, firstShipped
|
||||
FROM bs.clientNewBorn;
|
||||
|
||||
|
@ -17,16 +17,14 @@ BLOCK1: BEGIN
|
|||
DELETE FROM bs.clientNewBorn WHERE isModified = FALSE;
|
||||
|
||||
INSERT INTO clientNewBorn(clientFk, firstShipped, lastShipped)
|
||||
SELECT c.id, DATE(MAX(t.shipped)), DATE(MAX(t.shipped))
|
||||
SELECT c.id, MAX(t.shipped), MAX(t.shipped)
|
||||
FROM vn.client c
|
||||
JOIN vn.ticket t ON t.clientFk = c.id
|
||||
LEFT JOIN clientNewBorn cb ON cb.clientFk = c.id
|
||||
WHERE t.shipped BETWEEN util.VN_CURDATE() - INTERVAL 1 YEAR
|
||||
AND util.VN_CURDATE()
|
||||
AND cb.isModified IS NULL
|
||||
JOIN vn.ticket t on t.clientFk = c.id
|
||||
LEFT JOIN clientNewBorn cb on cb.clientFk = c.id
|
||||
WHERE t.shipped BETWEEN TIMESTAMPADD(YEAR, -1, util.VN_CURDATE()) AND util.VN_CURDATE() AND cb.isModified is null
|
||||
GROUP BY c.id;
|
||||
|
||||
OPEN cur;
|
||||
|
||||
LOOP1: LOOP
|
||||
SET vDone := FALSE;
|
||||
FETCH cur INTO vClientFk, vShipped;
|
||||
|
|
|
@ -32,7 +32,7 @@ BEGIN
|
|||
CREATE OR REPLACE TEMPORARY TABLE tVisible
|
||||
SELECT itemFk, SUM(visible) totalVisible
|
||||
FROM vn.itemShelving ish
|
||||
JOIN vn.shelving sh ON sh.id = ish.shelvingFk
|
||||
JOIN vn.shelving sh ON sh.code = ish.shelvingFk
|
||||
JOIN vn.parking p ON p.id = sh.parkingFk
|
||||
JOIN vn.sector sc ON sc.id = p.sectorFk
|
||||
WHERE sc.warehouseFk = vWarehouseFk
|
||||
|
|
|
@ -1,71 +1,36 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bs`.`waste_addSales`(
|
||||
vDateFrom DATE,
|
||||
vDateTo DATE
|
||||
)
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bs`.`waste_addSales`()
|
||||
BEGIN
|
||||
/**
|
||||
* Recalcula las mermas de un periodo.
|
||||
*
|
||||
* @param vDateFrom Fecha desde
|
||||
* @param vDateTo Fecha hasta
|
||||
*/
|
||||
DECLARE vDaysInYear INT;
|
||||
SET vDaysInYear = DATEDIFF(util.lastDayOfYear(CURDATE()), util.firstDayOfYear(CURDATE()));
|
||||
|
||||
SET vDateFrom = COALESCE(vDateFrom, util.VN_CURDATE());
|
||||
SET vDateTo = COALESCE(vDateTo, util.VN_CURDATE());
|
||||
|
||||
IF DATEDIFF(vDateTo, vDateFrom) > vDaysInYear THEN
|
||||
CALL util.throw('The period cannot be longer than one year');
|
||||
END IF;
|
||||
|
||||
-- Obtiene el primer día de la semana de esa fecha
|
||||
SET vDateFrom = DATE_SUB(vDateFrom, INTERVAL ((WEEKDAY(vDateFrom) + 1) % 7) DAY);
|
||||
|
||||
-- Obtiene el último día de la semana de esa fecha
|
||||
SET vDateTo = DATE_ADD(vDateTo, INTERVAL (6 - ((WEEKDAY(vDateTo) + 1) % 7)) DAY);
|
||||
DECLARE vDateFrom DATE DEFAULT util.VN_CURDATE() - INTERVAL WEEKDAY(CURDATE()) DAY;
|
||||
DECLARE vDateTo DATE DEFAULT vDateFrom + INTERVAL 6 DAY;
|
||||
|
||||
CALL cache.last_buy_refresh(FALSE);
|
||||
|
||||
REPLACE bs.waste
|
||||
SELECT YEARWEEK(t.shipped, 6) DIV 100,
|
||||
WEEK(t.shipped, 6),
|
||||
SELECT YEAR(t.shipped),
|
||||
WEEK(t.shipped, 4),
|
||||
it.workerFk,
|
||||
it.id,
|
||||
s.itemFk,
|
||||
SUM((b.buyingValue + b.freightValue + b.comissionValue + b.packageValue) * s.quantity),
|
||||
SUM(IF(aw.`type`, s.quantity, 0)),
|
||||
SUM(IF(
|
||||
SUM(s.quantity),
|
||||
SUM((b.buyingValue + b.freightValue + b.comissionValue + b.packageValue) * s.quantity) `value`,
|
||||
SUM (
|
||||
IF(
|
||||
aw.`type` = 'internal',
|
||||
(b.buyingValue + b.freightValue + b.comissionValue + b.packageValue) * s.quantity,
|
||||
0
|
||||
)
|
||||
) internalWaste,
|
||||
SUM (
|
||||
IF(
|
||||
aw.`type` = 'external',
|
||||
(b.buyingValue + b.freightValue + b.comissionValue + b.packageValue) * s.quantity,
|
||||
0
|
||||
)
|
||||
),
|
||||
SUM(IF(
|
||||
aw.`type` = 'fault',
|
||||
(b.buyingValue + b.freightValue + b.comissionValue + b.packageValue) * s.quantity,
|
||||
0
|
||||
)
|
||||
),
|
||||
SUM(IF(
|
||||
aw.`type` = 'container',
|
||||
(b.buyingValue + b.freightValue + b.comissionValue + b.packageValue) * s.quantity,
|
||||
0
|
||||
)
|
||||
),
|
||||
SUM(IF(
|
||||
aw.`type` = 'break',
|
||||
(b.buyingValue + b.freightValue + b.comissionValue + b.packageValue) * s.quantity,
|
||||
0
|
||||
)
|
||||
),
|
||||
SUM(IF(
|
||||
aw.`type` = 'other',
|
||||
(b.buyingValue + b.freightValue + b.comissionValue + b.packageValue) * s.quantity,
|
||||
IF(c.code = 'manaClaim',
|
||||
sc.value * s.quantity,
|
||||
0
|
||||
)
|
||||
)
|
||||
) externalWaste
|
||||
FROM vn.sale s
|
||||
JOIN vn.item i ON i.id = s.itemFk
|
||||
JOIN vn.itemType it ON it.id = i.typeFk
|
||||
|
@ -76,8 +41,10 @@ BEGIN
|
|||
JOIN cache.last_buy lb ON lb.item_id = i.id
|
||||
AND lb.warehouse_id = w.id
|
||||
JOIN vn.buy b ON b.id = lb.buy_id
|
||||
WHERE t.shipped BETWEEN vDateFrom AND util.dayEnd(vDateTo)
|
||||
LEFT JOIN vn.saleComponent sc ON sc.saleFk = s.id
|
||||
LEFT JOIN vn.component c ON c.id = sc.componentFk
|
||||
WHERE t.shipped BETWEEN vDateFrom AND vDateTo
|
||||
AND w.isManaged
|
||||
GROUP BY YEARWEEK(t.shipped, 6) DIV 100, WEEK(t.shipped, 6), i.id;
|
||||
GROUP BY it.id, i.id;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bs`.`waste_addSalesLauncher`()
|
||||
BEGIN
|
||||
CALL waste_addSales(NULL, NULL);
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -53,7 +53,7 @@ proc: BEGIN
|
|||
WHERE t.landed BETWEEN vInventoryDate AND vStartDate
|
||||
AND t.warehouseInFk = vWarehouse
|
||||
AND s.name != 'INVENTARIO'
|
||||
AND NOT t.isRaid
|
||||
AND NOT e.isRaid
|
||||
GROUP BY b.itemFk
|
||||
) c
|
||||
JOIN vn.item i ON i.id = c.itemFk
|
||||
|
|
|
@ -1,10 +1,5 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `cache`.`available_refresh`(
|
||||
OUT `vCalc` INT,
|
||||
`vRefresh` INT,
|
||||
`vWarehouse` INT,
|
||||
`vAvailabled` DATETIME
|
||||
)
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `cache`.`available_refresh`(OUT `vCalc` INT, IN `vRefresh` INT, IN `vWarehouse` INT, IN `vDated` DATE)
|
||||
proc: BEGIN
|
||||
DECLARE vStartDate DATE;
|
||||
DECLARE vReserveDate DATETIME;
|
||||
|
@ -12,7 +7,6 @@ proc: BEGIN
|
|||
DECLARE vInventoryDate DATE;
|
||||
DECLARE vLifeScope DATE;
|
||||
DECLARE vWarehouseFkInventory INT;
|
||||
DECLARE vDated DATE;
|
||||
|
||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
||||
BEGIN
|
||||
|
@ -20,17 +14,13 @@ proc: BEGIN
|
|||
RESIGNAL;
|
||||
END;
|
||||
|
||||
IF vAvailabled < util.VN_CURDATE() THEN
|
||||
IF vDated < util.VN_CURDATE() THEN
|
||||
LEAVE proc;
|
||||
END IF;
|
||||
|
||||
SET vDated = DATE(vAvailabled);
|
||||
|
||||
SET vAvailabled = vDated + INTERVAL HOUR(vAvailabled) HOUR;
|
||||
|
||||
CALL vn.item_getStock(vWarehouse, vDated, NULL);
|
||||
|
||||
SET vParams = CONCAT_WS('/', vWarehouse, vAvailabled);
|
||||
SET vParams = CONCAT_WS('/', vWarehouse, vDated);
|
||||
CALL cache_calc_start (vCalc, vRefresh, 'available', vParams);
|
||||
|
||||
IF !vRefresh THEN
|
||||
|
@ -92,10 +82,11 @@ proc: BEGIN
|
|||
SELECT i.itemFk, i.landed, i.quantity
|
||||
FROM vn.itemEntryIn i
|
||||
JOIN itemRange ir ON ir.itemFk = i.itemFk
|
||||
LEFT JOIN edi.warehouseFloramondo wf ON wf.entryFk = i.entryFk
|
||||
WHERE i.landed >= vStartDate
|
||||
AND IFNULL(i.availabled, i.landed) <= vAvailabled
|
||||
AND (ir.ended IS NULL OR i.landed <= ir.ended)
|
||||
AND i.warehouseInFk = vWarehouse
|
||||
AND ISNULL(wf.entryFk)
|
||||
UNION ALL
|
||||
SELECT i.itemFk, i.shipped, i.quantity
|
||||
FROM vn.itemEntryOut i
|
||||
|
|
|
@ -1,31 +0,0 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `cache`.`available_updateItem`(
|
||||
`vItem` INT,
|
||||
`vWarehouse` INT,
|
||||
`vDated` DATE,
|
||||
`vQuantity` INT
|
||||
)
|
||||
BEGIN
|
||||
/**
|
||||
* Immediately deduct/add an amount from the available cache (if exists).
|
||||
*
|
||||
* @param vItem The item id
|
||||
* @param vWarehouse The warehouse id
|
||||
* @param vDated Available cache date
|
||||
* @param vQuantity The amount to be deducted from the cache
|
||||
*/
|
||||
DECLARE vCalc INT;
|
||||
|
||||
SELECT id INTO vCalc
|
||||
FROM cache_calc
|
||||
WHERE cacheName = 'available'
|
||||
AND params = CONCAT_WS('/', vWarehouse, vDated);
|
||||
|
||||
IF vCalc IS NOT NULL THEN
|
||||
UPDATE available
|
||||
SET available = available - vQuantity
|
||||
WHERE calc_id = vCalc
|
||||
AND item_id = vItem;
|
||||
END IF;
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -4,7 +4,7 @@ proc: BEGIN
|
|||
/**
|
||||
* Crea o actualiza la cache con la última compra y fecha de cada
|
||||
* artículo hasta ayer. Para obtener la última compra hasta una fecha
|
||||
* determinada utilizar el procedimiento vn.buy_getUltimate().
|
||||
* determinada utilizar el procedimiento vn.buyUltimate().
|
||||
*
|
||||
* @param vRefresh %TRUE para forzar el recálculo de la cache
|
||||
*/
|
||||
|
@ -30,7 +30,7 @@ proc: BEGIN
|
|||
SELECT inventoried INTO started FROM vn.config LIMIT 1;
|
||||
SET ended = util.VN_CURDATE(); -- TIMESTAMPADD(DAY, -1, util.VN_CURDATE());
|
||||
|
||||
CALL vn.buy_getUltimateFromInterval(NULL, NULL, started, ended);
|
||||
CALL vn.buyUltimateFromInterval(NULL, started, ended);
|
||||
|
||||
DELETE FROM last_buy;
|
||||
|
||||
|
|
|
@ -20,12 +20,9 @@ proc:BEGIN
|
|||
CREATE OR REPLACE TEMPORARY TABLE tmp.itemVisible
|
||||
(PRIMARY KEY (item_id))
|
||||
ENGINE = MEMORY
|
||||
SELECT s.item_id, SUM(s.amount) stock, SUM(s.amount) visible
|
||||
FROM stock s
|
||||
JOIN vn.warehouse w ON w.id = s.warehouse_id
|
||||
WHERE (v_warehouse IS NULL OR s.warehouse_id = v_warehouse)
|
||||
AND w.isComparative
|
||||
GROUP BY s.item_id;
|
||||
SELECT item_id, amount stock, amount visible
|
||||
FROM cache.stock
|
||||
WHERE warehouse_id = v_warehouse;
|
||||
|
||||
-- Calculamos los movimientos confirmados de hoy
|
||||
CALL vn.item_calcVisible(NULL, v_warehouse);
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` EVENT `edi`.`floramondo`
|
||||
ON SCHEDULE EVERY 6 MINUTE
|
||||
STARTS '2022-01-28 09:52:45.000'
|
||||
ON COMPLETION NOT PRESERVE
|
||||
DISABLE
|
||||
DO CALL edi.floramondo_offerRefresh()$$
|
||||
DELIMITER ;
|
|
@ -0,0 +1,522 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `edi`.`floramondo_offerRefresh`()
|
||||
proc: BEGIN
|
||||
DECLARE vLanded DATETIME;
|
||||
DECLARE vDone INT DEFAULT FALSE;
|
||||
DECLARE vFreeId INT;
|
||||
DECLARE vSupplyResponseFk INT;
|
||||
DECLARE vLastInserted DATETIME;
|
||||
DECLARE vIsAuctionDay BOOLEAN;
|
||||
DECLARE vMaxNewItems INT DEFAULT 10000;
|
||||
DECLARE vStartingTime DATETIME;
|
||||
DECLARE vAalsmeerMarketPlaceID VARCHAR(13) DEFAULT '8713783439043';
|
||||
DECLARE vDayRange INT;
|
||||
|
||||
DECLARE cur1 CURSOR FOR
|
||||
SELECT id
|
||||
FROM edi.item_free;
|
||||
|
||||
DECLARE cur2 CURSOR FOR
|
||||
SELECT srId
|
||||
FROM itemToInsert;
|
||||
|
||||
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
|
||||
DECLARE EXIT HANDLER FOR SQLSTATE '45000'
|
||||
BEGIN
|
||||
ROLLBACK;
|
||||
RESIGNAL;
|
||||
END;
|
||||
|
||||
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
|
||||
BEGIN
|
||||
DO RELEASE_LOCK('edi.floramondo_offerRefresh');
|
||||
SET @isTriggerDisabled = FALSE;
|
||||
RESIGNAL;
|
||||
END;
|
||||
|
||||
IF 'test' = (SELECT environment FROM util.config) THEN
|
||||
LEAVE proc;
|
||||
END IF;
|
||||
|
||||
IF !GET_LOCK('edi.floramondo_offerRefresh', 0) THEN
|
||||
LEAVE proc;
|
||||
END IF;
|
||||
|
||||
SELECT dayRange INTO vDayRange
|
||||
FROM offerRefreshConfig;
|
||||
|
||||
IF vDayRange IS NULL THEN
|
||||
CALL util.throw("Variable vDayRange not declared");
|
||||
END IF;
|
||||
|
||||
SET vStartingTime = util.VN_NOW();
|
||||
|
||||
TRUNCATE edi.offerList;
|
||||
|
||||
INSERT INTO edi.offerList(supplier, total)
|
||||
SELECT v.name, COUNT(DISTINCT sr.ID) total
|
||||
FROM edi.supplyResponse sr
|
||||
JOIN edi.VMPSettings v ON v.VMPID = sr.vmpID
|
||||
WHERE sr.NumberOfUnits > 0
|
||||
AND sr.EmbalageCode != 999
|
||||
GROUP BY sr.vmpID;
|
||||
|
||||
UPDATE edi.offerList o
|
||||
JOIN (SELECT v.name, COUNT(*) total
|
||||
FROM edi.supplyOffer sr
|
||||
JOIN edi.VMPSettings v ON v.VMPID = sr.vmpID
|
||||
GROUP BY sr.vmpID) sub ON o.supplier = sub.name
|
||||
SET o.`filter` = sub.total;
|
||||
|
||||
-- Elimina de la lista de items libres aquellos que ya existen
|
||||
DELETE itf.*
|
||||
FROM edi.item_free itf
|
||||
JOIN vn.item i ON i.id = itf.id;
|
||||
|
||||
CREATE OR REPLACE TEMPORARY TABLE tmp
|
||||
(INDEX (`Item_ArticleCode`))
|
||||
ENGINE = MEMORY
|
||||
SELECT t.*
|
||||
FROM (
|
||||
SELECT *
|
||||
FROM edi.supplyOffer
|
||||
ORDER BY (MarketPlaceID = vAalsmeerMarketPlaceID) DESC,
|
||||
NumberOfUnits DESC LIMIT 10000000000000000000) t
|
||||
GROUP BY t.srId;
|
||||
|
||||
CREATE OR REPLACE TEMPORARY TABLE edi.offer (INDEX (`srID`), INDEX (`EmbalageCode`),
|
||||
INDEX (`ef1`), INDEX (`ef2`), INDEX (`ef3`), INDEX (`ef4`),INDEX (`ef5`), INDEX (`ef6`),
|
||||
INDEX (`s1Value`), INDEX (`s2Value`), INDEX (`s3Value`), INDEX (`s4Value`),INDEX (`s5Value`), INDEX (`s6Value`))
|
||||
ENGINE = MEMORY
|
||||
SELECT so.*,
|
||||
ev1.type_description s1Value,
|
||||
ev2.type_description s2Value,
|
||||
ev3.type_description s3Value,
|
||||
ev4.type_description s4Value,
|
||||
ev5.type_description s5Value,
|
||||
ev6.type_description s6Value,
|
||||
eif1.feature ef1,
|
||||
eif2.feature ef2,
|
||||
eif3.feature ef3,
|
||||
eif4.feature ef4,
|
||||
eif5.feature ef5,
|
||||
eif6.feature ef6
|
||||
FROM tmp so
|
||||
LEFT JOIN edi.item_feature eif1 ON eif1.item_id = so.Item_ArticleCode
|
||||
AND eif1.presentation_order = 1
|
||||
AND eif1.expiry_date IS NULL
|
||||
LEFT JOIN edi.item_feature eif2 ON eif2.item_id = so.Item_ArticleCode
|
||||
AND eif2.presentation_order = 2
|
||||
AND eif2.expiry_date IS NULL
|
||||
LEFT JOIN edi.item_feature eif3 ON eif3.item_id = so.Item_ArticleCode
|
||||
AND eif3.presentation_order = 3
|
||||
AND eif3.expiry_date IS NULL
|
||||
LEFT JOIN edi.item_feature eif4 ON eif4.item_id = so.Item_ArticleCode
|
||||
AND eif4.presentation_order = 4
|
||||
AND eif4.expiry_date IS NULL
|
||||
LEFT JOIN edi.item_feature eif5 ON eif5.item_id = so.Item_ArticleCode
|
||||
AND eif5.presentation_order = 5
|
||||
AND eif5.expiry_date IS NULL
|
||||
LEFT JOIN edi.item_feature eif6 ON eif6.item_id = so.Item_ArticleCode
|
||||
AND eif6.presentation_order = 6
|
||||
AND eif6.expiry_date IS NULL
|
||||
LEFT JOIN edi.`value` ev1 ON ev1.type_id = eif1.feature
|
||||
AND so.s1 = ev1.type_value
|
||||
LEFT JOIN edi.`value` ev2 ON ev2.type_id = eif2.feature
|
||||
AND so.s2 = ev2.type_value
|
||||
LEFT JOIN edi.`value` ev3 ON ev3.type_id = eif3.feature
|
||||
AND so.s3 = ev3.type_value
|
||||
LEFT JOIN edi.`value` ev4 ON ev4.type_id = eif4.feature
|
||||
AND so.s4 = ev4.type_value
|
||||
LEFT JOIN edi.`value` ev5 ON ev5.type_id = eif5.feature
|
||||
AND so.s5 = ev5.type_value
|
||||
LEFT JOIN edi.`value` ev6 ON ev6.type_id = eif6.feature
|
||||
AND so.s6 = ev6.type_value
|
||||
ORDER BY Price;
|
||||
|
||||
DROP TEMPORARY TABLE tmp;
|
||||
|
||||
DELETE o
|
||||
FROM edi.offer o
|
||||
LEFT JOIN vn.tag t1 ON t1.ediTypeFk = o.ef1 AND t1.overwrite = 'size'
|
||||
LEFT JOIN vn.tag t2 ON t2.ediTypeFk = o.ef2 AND t2.overwrite = 'size'
|
||||
LEFT JOIN vn.tag t3 ON t3.ediTypeFk = o.ef3 AND t3.overwrite = 'size'
|
||||
LEFT JOIN vn.tag t4 ON t4.ediTypeFk = o.ef4 AND t4.overwrite = 'size'
|
||||
LEFT JOIN vn.tag t5 ON t5.ediTypeFk = o.ef5 AND t5.overwrite = 'size'
|
||||
LEFT JOIN vn.tag t6 ON t6.ediTypeFk = o.ef6 AND t6.overwrite = 'size'
|
||||
JOIN vn.floramondoConfig fc ON TRUE
|
||||
WHERE (t1.id IS NOT NULL AND CONVERT(s1Value, UNSIGNED) > fc.itemMaxSize)
|
||||
OR (t2.id IS NOT NULL AND CONVERT(s2Value, UNSIGNED) > fc.itemMaxSize)
|
||||
OR (t3.id IS NOT NULL AND CONVERT(s3Value, UNSIGNED) > fc.itemMaxSize)
|
||||
OR (t4.id IS NOT NULL AND CONVERT(s4Value, UNSIGNED) > fc.itemMaxSize)
|
||||
OR (t5.id IS NOT NULL AND CONVERT(s5Value, UNSIGNED) > fc.itemMaxSize)
|
||||
OR (t6.id IS NOT NULL AND CONVERT(s6Value, UNSIGNED) > fc.itemMaxSize);
|
||||
|
||||
START TRANSACTION;
|
||||
|
||||
-- Actualizamos el campo supplyResponseFk para aquellos articulos que ya estan creados y reutilizamos
|
||||
UPDATE IGNORE edi.offer o
|
||||
JOIN vn.item i
|
||||
ON i.name = o.product_name
|
||||
AND i.subname <=> o.company_name
|
||||
AND i.value5 <=> o.s1Value
|
||||
AND i.value6 <=> o.s2Value
|
||||
AND i.value7 <=> o.s3Value
|
||||
AND i.value8 <=> o.s4Value
|
||||
AND i.value9 <=> o.s5Value
|
||||
AND i.value10 <=> o.s6Value
|
||||
AND i.NumberOfItemsPerCask <=> o.NumberOfItemsPerCask
|
||||
AND i.EmbalageCode <=> o.EmbalageCode
|
||||
AND i.quality <=> o.Quality
|
||||
JOIN vn.itemType it ON it.id = i.typeFk
|
||||
LEFT JOIN vn.sale s ON s.itemFk = i.id
|
||||
LEFT JOIN vn.ticket t ON t.id = s.ticketFk
|
||||
AND t.shipped > (util.VN_CURDATE() - INTERVAL 1 WEEK)
|
||||
LEFT JOIN edi.supplyResponse sr ON sr.ID = i.supplyResponseFk
|
||||
LEFT JOIN edi.deliveryInformation di ON di.supplyResponseID = sr.ID
|
||||
LEFT JOIN edi.putOrder po ON po.supplyResponseID = i.supplyResponseFk
|
||||
AND po.OrderTradeLineDateTime > (util.VN_CURDATE() - INTERVAL 1 WEEK)
|
||||
SET i.supplyResponseFk = o.srID
|
||||
WHERE (sr.ID IS NULL
|
||||
OR sr.NumberOfUnits = 0
|
||||
OR di.LatestOrderDateTime < util.VN_NOW()
|
||||
OR di.ID IS NULL)
|
||||
AND it.isInventory
|
||||
AND t.id IS NULL
|
||||
AND po.id IS NULL;
|
||||
|
||||
CREATE OR REPLACE TEMPORARY TABLE itemToInsert
|
||||
ENGINE = MEMORY
|
||||
SELECT o.*, CAST(NULL AS DECIMAL(6,0)) itemFk
|
||||
FROM edi.offer o
|
||||
LEFT JOIN vn.item i ON i.supplyResponseFk = o.srId
|
||||
WHERE i.id IS NULL
|
||||
LIMIT vMaxNewItems;
|
||||
|
||||
-- Reciclado de nº de item
|
||||
OPEN cur1;
|
||||
OPEN cur2;
|
||||
|
||||
read_loop: LOOP
|
||||
|
||||
FETCH cur2 INTO vSupplyResponseFk;
|
||||
FETCH cur1 INTO vFreeId;
|
||||
|
||||
IF vDone THEN
|
||||
LEAVE read_loop;
|
||||
END IF;
|
||||
|
||||
UPDATE itemToInsert
|
||||
SET itemFk = vFreeId
|
||||
WHERE srId = vSupplyResponseFk;
|
||||
|
||||
END LOOP;
|
||||
|
||||
CLOSE cur1;
|
||||
CLOSE cur2;
|
||||
|
||||
-- Insertamos todos los items en Articles de la oferta
|
||||
INSERT INTO vn.item(id,
|
||||
`name`,
|
||||
longName,
|
||||
subName,
|
||||
expenseFk,
|
||||
typeFk,
|
||||
intrastatFk,
|
||||
originFk,
|
||||
supplyResponseFk,
|
||||
numberOfItemsPerCask,
|
||||
embalageCode,
|
||||
quality,
|
||||
isFloramondo)
|
||||
SELECT iti.itemFk,
|
||||
iti.product_name,
|
||||
iti.product_name,
|
||||
iti.company_name,
|
||||
iti.expenseFk,
|
||||
iti.itemTypeFk,
|
||||
iti.intrastatFk,
|
||||
iti.originFk,
|
||||
iti.`srId`,
|
||||
iti.NumberOfItemsPerCask,
|
||||
iti.EmbalageCode,
|
||||
iti.Quality,
|
||||
TRUE
|
||||
FROM itemToInsert iti;
|
||||
|
||||
-- Inserta la foto de los articulos nuevos (prioridad alta)
|
||||
INSERT IGNORE INTO vn.itemImageQueue(itemFk, url)
|
||||
SELECT i.id, PictureReference
|
||||
FROM itemToInsert ii
|
||||
JOIN vn.item i ON i.supplyResponseFk = ii.srId
|
||||
WHERE PictureReference IS NOT NULL
|
||||
AND i.image IS NULL;
|
||||
|
||||
INSERT INTO edi.`log`(tableName, fieldName,fieldValue)
|
||||
SELECT 'itemImageQueue','NumImagenesPtes', COUNT(*)
|
||||
FROM vn.itemImageQueue
|
||||
WHERE attempts = 0;
|
||||
|
||||
-- Inserta si se añadiesen tags nuevos
|
||||
INSERT IGNORE INTO vn.tag (name, ediTypeFk)
|
||||
SELECT description, type_id FROM edi.type;
|
||||
|
||||
-- Desabilita el trigger para recalcular los tags al final
|
||||
SET @isTriggerDisabled = TRUE;
|
||||
|
||||
-- Inserta los tags sólo en los articulos nuevos
|
||||
INSERT INTO vn.itemTag(itemFk, tagFk, value, priority)
|
||||
SELECT i.id, t.id , ii.product_name, 1
|
||||
FROM itemToInsert ii
|
||||
JOIN vn.tag t ON t.`name` = 'Producto'
|
||||
JOIN vn.item i ON i.supplyResponseFk = ii.`srId`
|
||||
WHERE NOT ii.product_name IS NULL;
|
||||
|
||||
INSERT INTO vn.itemTag(itemFk, tagFk, value, priority)
|
||||
SELECT i.id, t.id , ii.Quality, 3
|
||||
FROM itemToInsert ii
|
||||
JOIN vn.tag t ON t.`name` = 'Calidad'
|
||||
JOIN vn.item i ON i.supplyResponseFk = ii.`srId`
|
||||
WHERE NOT ii.Quality IS NULL;
|
||||
|
||||
INSERT INTO vn.itemTag(itemFk, tagFk, value, priority)
|
||||
SELECT i.id, t.id , ii.company_name, 4
|
||||
FROM itemToInsert ii
|
||||
JOIN vn.tag t ON t.`name` = 'Productor'
|
||||
JOIN vn.item i ON i.supplyResponseFk = ii.`srId`
|
||||
WHERE NOT ii.company_name IS NULL;
|
||||
|
||||
INSERT INTO vn.itemTag(itemFk, tagFk, value, priority)
|
||||
SELECT i.id, t.id , s1Value, 5
|
||||
FROM itemToInsert ii
|
||||
JOIN vn.tag t ON t.ediTypeFk = ii.ef1
|
||||
JOIN vn.item i ON i.supplyResponseFk = ii.`srId`
|
||||
WHERE NOT s1Value IS NULL;
|
||||
|
||||
INSERT INTO vn.itemTag(itemFk, tagFk, value, priority)
|
||||
SELECT i.id, t.id , s2Value, 6
|
||||
FROM itemToInsert ii
|
||||
JOIN vn.tag t ON t.ediTypeFk = ii.ef2
|
||||
JOIN vn.item i ON i.supplyResponseFk = ii.`srId`
|
||||
WHERE NOT s2Value IS NULL;
|
||||
|
||||
INSERT INTO vn.itemTag(itemFk, tagFk, value, priority)
|
||||
SELECT i.id, t.id , s3Value, 7
|
||||
FROM itemToInsert ii
|
||||
JOIN vn.tag t ON t.ediTypeFk = ii.ef3
|
||||
JOIN vn.item i ON i.supplyResponseFk = ii.`srId`
|
||||
WHERE NOT s3Value IS NULL;
|
||||
|
||||
INSERT INTO vn.itemTag(itemFk, tagFk, value, priority)
|
||||
SELECT i.id, t.id , s4Value, 8
|
||||
FROM itemToInsert ii
|
||||
JOIN vn.tag t ON t.ediTypeFk = ii.ef4
|
||||
JOIN vn.item i ON i.supplyResponseFk = ii.`srId`
|
||||
WHERE NOT s4Value IS NULL;
|
||||
|
||||
INSERT INTO vn.itemTag(itemFk, tagFk, value, priority)
|
||||
SELECT i.id, t.id , s5Value, 9
|
||||
FROM itemToInsert ii
|
||||
JOIN vn.tag t ON t.ediTypeFk = ii.ef5
|
||||
JOIN vn.item i ON i.supplyResponseFk = ii.`srId`
|
||||
WHERE NOT s5Value IS NULL;
|
||||
|
||||
INSERT INTO vn.itemTag(itemFk, tagFk, value, priority)
|
||||
SELECT i.id, t.id , s6Value, 10
|
||||
FROM itemToInsert ii
|
||||
JOIN vn.tag t ON t.ediTypeFk = ii.ef6
|
||||
JOIN vn.item i ON i.supplyResponseFk = ii.`srId`
|
||||
WHERE NOT s6Value IS NULL;
|
||||
|
||||
INSERT IGNORE INTO vn.itemTag(itemFk, tagFk, value, priority)
|
||||
SELECT i.id, t.id, IFNULL(ink.name, ik.color), 11
|
||||
FROM itemToInsert ii
|
||||
JOIN vn.item i ON i.supplyResponseFk = ii.`srId`
|
||||
JOIN vn.tag t ON t.`name` = 'Color'
|
||||
LEFT JOIN edi.feature f ON f.item_id = ii.Item_ArticleCode
|
||||
LEFT JOIN edi.`type` tp ON tp.type_id = f.feature_type_id
|
||||
AND tp.`description` = 'Hoofdkleur 1'
|
||||
LEFT JOIN vn.ink ON ink.dutchCode = f.feature_value
|
||||
LEFT JOIN vn.itemInk ik ON ik.longName = i.longName
|
||||
WHERE ink.name IS NOT NULL
|
||||
OR ik.color IS NOT NULL;
|
||||
|
||||
CREATE OR REPLACE TABLE tmp.item
|
||||
(PRIMARY KEY (id))
|
||||
SELECT i.id FROM vn.item i
|
||||
JOIN itemToInsert ii ON i.supplyResponseFk = ii.`srId`;
|
||||
|
||||
CALL vn.item_refreshTags();
|
||||
|
||||
DROP TABLE tmp.item;
|
||||
|
||||
SELECT MIN(LatestDeliveryDateTime) INTO vLanded
|
||||
FROM edi.supplyResponse sr
|
||||
JOIN edi.deliveryInformation di ON di.supplyResponseID = sr.ID
|
||||
JOIN edi.marketPlace mp ON mp.id = sr.MarketPlaceID
|
||||
JOIN vn.floramondoConfig fc
|
||||
WHERE mp.isLatestOrderDateTimeRelevant
|
||||
AND di.LatestOrderDateTime > IF(
|
||||
fc.MaxLatestOrderHour > HOUR(util.VN_NOW()),
|
||||
util.VN_CURDATE(),
|
||||
util.VN_CURDATE() + INTERVAL 1 DAY);
|
||||
|
||||
UPDATE vn.floramondoConfig
|
||||
SET nextLanded = vLanded
|
||||
WHERE vLanded IS NOT NULL;
|
||||
|
||||
-- Elimina la oferta obsoleta
|
||||
UPDATE vn.buy b
|
||||
JOIN vn.entry e ON e.id = b.entryFk
|
||||
JOIN vn.travel tr ON tr.id = e.travelFk
|
||||
JOIN vn.agencyMode am ON am.id = tr.agencyModeFk
|
||||
JOIN vn.item i ON i.id = b.itemFk
|
||||
LEFT JOIN edi.supplyResponse sr ON i.supplyResponseFk = sr.ID
|
||||
LEFT JOIN edi.deliveryInformation di ON di.ID = b.deliveryFk
|
||||
SET b.quantity = 0
|
||||
WHERE (IFNULL(di.LatestOrderDateTime,util.VN_NOW()) <= util.VN_NOW()
|
||||
OR i.supplyResponseFk IS NULL
|
||||
OR sr.NumberOfUnits = 0)
|
||||
AND am.name = 'LOGIFLORA'
|
||||
AND e.isRaid;
|
||||
|
||||
-- Localiza las entradas de cada almacen
|
||||
UPDATE edi.warehouseFloramondo
|
||||
SET entryFk = vn.entry_getForLogiflora(vLanded + INTERVAL travellingDays DAY, warehouseFk);
|
||||
|
||||
IF vLanded IS NOT NULL THEN
|
||||
-- Actualiza la oferta existente
|
||||
UPDATE vn.buy b
|
||||
JOIN edi.warehouseFloramondo wf ON wf.entryFk = b.entryFk
|
||||
JOIN vn.item i ON i.id = b.itemFk
|
||||
JOIN edi.offer o ON i.supplyResponseFk = o.`srId`
|
||||
SET b.quantity = o.NumberOfUnits * o.NumberOfItemsPerCask,
|
||||
b.buyingValue = o.price
|
||||
WHERE (b.quantity <> o.NumberOfUnits * o.NumberOfItemsPerCask
|
||||
OR b.buyingValue <> o.price);
|
||||
|
||||
-- Inserta el resto
|
||||
SET vLastInserted := util.VN_NOW();
|
||||
|
||||
-- Inserta la oferta
|
||||
INSERT INTO vn.buy (
|
||||
entryFk,
|
||||
itemFk,
|
||||
quantity,
|
||||
buyingValue,
|
||||
stickers,
|
||||
packing,
|
||||
`grouping`,
|
||||
groupingMode,
|
||||
packagingFk,
|
||||
deliveryFk)
|
||||
SELECT wf.entryFk,
|
||||
i.id,
|
||||
o.NumberOfUnits * o.NumberOfItemsPerCask quantity,
|
||||
o.Price,
|
||||
o.NumberOfUnits etiquetas,
|
||||
o.NumberOfItemsPerCask packing,
|
||||
GREATEST(1, IFNULL(o.MinimumQuantity,0)) * o.NumberOfItemsPerCask `grouping`,
|
||||
'packing',
|
||||
o.embalageCode,
|
||||
o.diId
|
||||
FROM edi.offer o
|
||||
JOIN vn.item i ON i.supplyResponseFk = o.srId
|
||||
JOIN edi.warehouseFloramondo wf
|
||||
JOIN vn.packaging p ON p.id
|
||||
LIKE o.embalageCode
|
||||
LEFT JOIN vn.buy b ON b.itemFk = i.id
|
||||
AND b.entryFk = wf.entryFk
|
||||
WHERE b.id IS NULL; -- Quitar esta linea y mirar de crear los packages a tiempo REAL
|
||||
|
||||
INSERT INTO vn.itemCost(
|
||||
itemFk,
|
||||
warehouseFk,
|
||||
cm3,
|
||||
cm3delivery)
|
||||
SELECT b.itemFk,
|
||||
wf.warehouseFk,
|
||||
@cm3 := vn.buy_getUnitVolume(b.id),
|
||||
IFNULL((vc.standardFlowerBox * 1000) / i.packingOut, @cm3)
|
||||
FROM warehouseFloramondo wf
|
||||
JOIN vn.volumeConfig vc
|
||||
JOIN vn.buy b ON b.entryFk = wf.entryFk
|
||||
JOIN vn.item i ON i.id = b.itemFk
|
||||
LEFT JOIN vn.itemCost ic ON ic.itemFk = b.itemFk
|
||||
AND ic.warehouseFk = wf.warehouseFk
|
||||
WHERE (ic.cm3 IS NULL OR ic.cm3 = 0)
|
||||
ON DUPLICATE KEY UPDATE cm3 = @cm3, cm3delivery = IFNULL((vc.standardFlowerBox * 1000) / i.packingOut, @cm3);
|
||||
|
||||
CREATE OR REPLACE TEMPORARY TABLE tmp.buyRecalc
|
||||
SELECT b.id
|
||||
FROM vn.buy b
|
||||
JOIN warehouseFloramondo wf ON wf.entryFk = b.entryFk
|
||||
WHERE b.created >= vLastInserted;
|
||||
|
||||
CALL vn.buy_recalcPrices();
|
||||
|
||||
UPDATE edi.offerList o
|
||||
JOIN (SELECT v.name, COUNT(DISTINCT b.itemFk) total
|
||||
FROM vn.buy b
|
||||
JOIN vn.item i ON i.id = b.itemFk
|
||||
JOIN edi.supplyResponse sr ON sr.ID = i.supplyResponseFk
|
||||
JOIN edi.VMPSettings v ON v.VMPID = sr.vmpID
|
||||
JOIN edi.warehouseFloramondo wf ON wf.entryFk = b.entryFk
|
||||
JOIN vn.warehouse w ON w.id = wf.warehouseFk
|
||||
WHERE w.name = 'VNH'
|
||||
AND b.quantity > 0
|
||||
GROUP BY sr.vmpID) sub ON o.supplier = sub.name
|
||||
SET o.vnh = sub.total;
|
||||
|
||||
UPDATE edi.offerList o
|
||||
JOIN (SELECT v.name, COUNT(DISTINCT b.itemFk) total
|
||||
FROM vn.buy b
|
||||
JOIN vn.item i ON i.id = b.itemFk
|
||||
JOIN edi.supplyResponse sr ON sr.ID = i.supplyResponseFk
|
||||
JOIN edi.VMPSettings v ON v.VMPID = sr.vmpID
|
||||
JOIN edi.warehouseFloramondo wf ON wf.entryFk = b.entryFk
|
||||
JOIN vn.warehouse w ON w.id = wf.warehouseFk
|
||||
WHERE w.name = 'ALGEMESI'
|
||||
AND b.quantity > 0
|
||||
GROUP BY sr.vmpID) sub ON o.supplier = sub.name
|
||||
SET o.algemesi = sub.total;
|
||||
END IF;
|
||||
|
||||
DROP TEMPORARY TABLE
|
||||
edi.offer,
|
||||
itemToInsert;
|
||||
|
||||
SET @isTriggerDisabled = FALSE;
|
||||
|
||||
COMMIT;
|
||||
|
||||
-- Esto habria que pasarlo a procesos programados o trabajar con tags y dejar las familias
|
||||
UPDATE vn.item i
|
||||
SET typeFk = 121
|
||||
WHERE i.longName LIKE 'Rosa Garden %'
|
||||
AND typeFk = 17;
|
||||
|
||||
UPDATE vn.item i
|
||||
SET typeFk = 156
|
||||
WHERE i.longName LIKE 'Rosa ec %'
|
||||
AND typeFk = 17;
|
||||
|
||||
-- Refresca las fotos de los items existentes que mostramos (prioridad baja)
|
||||
INSERT IGNORE INTO vn.itemImageQueue(itemFk, url, priority)
|
||||
SELECT i.id, sr.PictureReference, 100
|
||||
FROM edi.supplyResponse sr
|
||||
JOIN vn.item i ON i.supplyResponseFk = sr.ID
|
||||
JOIN edi.supplyOffer so ON so.srId = sr.ID
|
||||
JOIN hedera.image i2 ON i2.name = i.image
|
||||
AND i2.collectionFk = 'catalog'
|
||||
WHERE i2.updated <= (UNIX_TIMESTAMP(util.VN_NOW()) - vDayRange)
|
||||
AND sr.NumberOfUnits;
|
||||
|
||||
INSERT INTO edi.`log`
|
||||
SET tableName = 'floramondo_offerRefresh',
|
||||
fieldName = 'Tiempo de proceso',
|
||||
fieldValue = TIMEDIFF(util.VN_NOW(), vStartingTime);
|
||||
|
||||
DO RELEASE_LOCK('edi.floramondo_offerRefresh');
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -14,7 +14,7 @@ BEGIN
|
|||
b.stickers = NEW.NumberOfUnits
|
||||
WHERE i.supplyResponseFk = NEW.ID
|
||||
AND am.name = 'LOGIFLORA'
|
||||
AND tr.isRaid
|
||||
AND e.isRaid
|
||||
AND tr.landed >= util.VN_CURDATE();
|
||||
|
||||
END$$
|
||||
|
|
|
@ -59,7 +59,7 @@ BEGIN
|
|||
JOIN vn.travel t ON t.id = e.travelFk
|
||||
WHERE t.landed BETWEEN vDateInv AND vDate
|
||||
AND t.warehouseInFk = vWarehouse
|
||||
AND NOT t.isRaid
|
||||
AND NOT e.isRaid
|
||||
UNION ALL
|
||||
SELECT b.itemFk, -b.quantity
|
||||
FROM vn.buy b
|
||||
|
@ -67,7 +67,7 @@ BEGIN
|
|||
JOIN vn.travel t ON t.id = e.travelFk
|
||||
WHERE t.shipped BETWEEN vDateInv AND util.VN_CURDATE()
|
||||
AND t.warehouseOutFk = vWarehouse
|
||||
AND NOT t.isRaid
|
||||
AND NOT e.isRaid
|
||||
AND t.isDelivered
|
||||
UNION ALL
|
||||
SELECT m.itemFk, -m.quantity
|
||||
|
|
|
@ -1,52 +0,0 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`vn`@`localhost`
|
||||
PROCEDURE `hedera`.`orderRow_updateOverstocking`(vOrderFk INT)
|
||||
BEGIN
|
||||
/**
|
||||
* Set amount = 0 to avoid overbooking sales
|
||||
*
|
||||
* @param vOrderFk hedera.order.id
|
||||
*/
|
||||
DECLARE vCalcFk INT;
|
||||
DECLARE vDone BOOL;
|
||||
DECLARE vWarehouseFk INT;
|
||||
|
||||
DECLARE cWarehouses CURSOR FOR
|
||||
SELECT DISTINCT warehouseFk
|
||||
FROM orderRow
|
||||
WHERE orderFk = vOrderFk
|
||||
AND shipment = util.VN_CURDATE();
|
||||
|
||||
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
|
||||
|
||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
||||
BEGIN
|
||||
ROLLBACK;
|
||||
RESIGNAL;
|
||||
END;
|
||||
|
||||
OPEN cWarehouses;
|
||||
checking: LOOP
|
||||
SET vDone = FALSE;
|
||||
|
||||
FETCH cWarehouses INTO vWarehouseFk;
|
||||
|
||||
IF vDone THEN
|
||||
LEAVE checking;
|
||||
END IF;
|
||||
|
||||
CALL cache.available_refresh(vCalcFk, FALSE, vWarehouseFk, util.VN_CURDATE());
|
||||
|
||||
UPDATE orderRow r
|
||||
JOIN `order` o ON o.id = r.orderFk
|
||||
JOIN orderConfig oc
|
||||
JOIN cache.available a ON a.calc_id = vCalcFk AND a.item_id = r.itemFk
|
||||
SET r.amount = 0
|
||||
WHERE ADDTIME(o.rowUpdated, oc.reserveTime) < util.VN_NOW()
|
||||
AND a.available <= 0
|
||||
AND r.warehouseFk = vWarehouseFk
|
||||
AND r.orderFk = vOrderFk;
|
||||
END LOOP;
|
||||
CLOSE cWarehouses;
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -47,15 +47,11 @@ BEGIN
|
|||
FROM tmp.zoneGetShipped
|
||||
WHERE warehouseFk = vWarehouse;
|
||||
|
||||
SELECT available INTO vAvailable
|
||||
SELECT IFNULL(available, 0) INTO vAvailable
|
||||
FROM tmp.ticketLot
|
||||
WHERE warehouseFk = vWarehouse
|
||||
AND itemFk = vItem;
|
||||
|
||||
IF vAvailable IS NULL THEN
|
||||
SET vAvailable = 0;
|
||||
END IF;
|
||||
|
||||
IF vAmount > vAvailable THEN
|
||||
CALL util.throw ('ORDER_ROW_UNAVAILABLE');
|
||||
END IF;
|
||||
|
@ -106,8 +102,6 @@ BEGIN
|
|||
amount = vAdd,
|
||||
price = vPrice;
|
||||
|
||||
CALL cache.available_updateItem(vItem, vWarehouse, vShipment, vAdd);
|
||||
|
||||
SET vRow = LAST_INSERT_ID();
|
||||
|
||||
INSERT INTO orderRowComponent (rowFk, componentFk, price)
|
||||
|
|
|
@ -1,61 +1,59 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`order_confirmWithUser`(
|
||||
vSelf INT,
|
||||
vUserFk INT
|
||||
)
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`order_confirmWithUser`(vSelf INT, vUserId INT)
|
||||
BEGIN
|
||||
/**
|
||||
* Confirms an order, creating each of its tickets
|
||||
* on the corresponding date, store and user.
|
||||
* Confirms an order, creating each of its tickets on the corresponding
|
||||
* date, store and user.
|
||||
*
|
||||
* @param vSelf The order identifier
|
||||
* @param vUser The user identifier
|
||||
*/
|
||||
DECLARE vHasRows BOOL;
|
||||
DECLARE vHas0Amount BOOL;
|
||||
DECLARE vDone BOOL;
|
||||
DECLARE vWarehouseFk INT;
|
||||
DECLARE vOk BOOL;
|
||||
DECLARE vDone BOOL DEFAULT FALSE;
|
||||
DECLARE vWarehouse INT;
|
||||
DECLARE vShipment DATE;
|
||||
DECLARE vShipmentDayEnd DATETIME;
|
||||
DECLARE vTicketFk INT;
|
||||
DECLARE vTicket INT;
|
||||
DECLARE vNotes VARCHAR(255);
|
||||
DECLARE vItemFk INT;
|
||||
DECLARE vItem INT;
|
||||
DECLARE vConcept VARCHAR(30);
|
||||
DECLARE vAmount INT;
|
||||
DECLARE vPrice DECIMAL(10,2);
|
||||
DECLARE vSaleFk INT;
|
||||
DECLARE vRowFk INT;
|
||||
DECLARE vSale INT;
|
||||
DECLARE vRate INT;
|
||||
DECLARE vRowId INT;
|
||||
DECLARE vPriceFixed DECIMAL(10,2);
|
||||
DECLARE vLanded DATE;
|
||||
DECLARE vAddressFk INT;
|
||||
DECLARE vClientFk INT;
|
||||
DECLARE vCompanyFk INT;
|
||||
DECLARE vAgencyModeFk INT;
|
||||
DECLARE vDelivery DATE;
|
||||
DECLARE vAddress INT;
|
||||
DECLARE vIsConfirmed BOOL;
|
||||
DECLARE vClientId INT;
|
||||
DECLARE vCompanyId INT;
|
||||
DECLARE vAgencyModeId INT;
|
||||
DECLARE TICKET_FREE INT DEFAULT 2;
|
||||
DECLARE vCalc INT;
|
||||
DECLARE vIsLogifloraItem BOOL;
|
||||
DECLARE vOldQuantity INT;
|
||||
DECLARE vNewQuantity INT;
|
||||
DECLARE vIsTaxDataChecked BOOL;
|
||||
|
||||
DECLARE vDates CURSOR FOR
|
||||
SELECT zgs.shipped, r.warehouseFk
|
||||
DECLARE cDates CURSOR FOR
|
||||
SELECT zgs.shipped, r.warehouse_id
|
||||
FROM `order` o
|
||||
JOIN orderRow r ON r.orderFk = o.id
|
||||
LEFT JOIN tmp.zoneGetShipped zgs ON zgs.warehouseFk = r.warehouseFk
|
||||
WHERE o.id = vSelf
|
||||
AND r.amount
|
||||
GROUP BY r.warehouseFk;
|
||||
JOIN order_row r ON r.order_id = o.id
|
||||
LEFT JOIN tmp.zoneGetShipped zgs ON zgs.warehouseFk = r.warehouse_id
|
||||
WHERE o.id = vSelf AND r.amount != 0
|
||||
GROUP BY r.warehouse_id;
|
||||
|
||||
DECLARE vRows CURSOR FOR
|
||||
SELECT r.id,
|
||||
r.itemFk,
|
||||
i.name,
|
||||
r.amount,
|
||||
r.price
|
||||
FROM orderRow r
|
||||
JOIN vn.item i ON i.id = r.itemFk
|
||||
WHERE r.amount
|
||||
AND r.warehouseFk = vWarehouseFk
|
||||
AND r.orderFk = vSelf
|
||||
DECLARE cRows CURSOR FOR
|
||||
SELECT r.id, r.item_id, i.name, r.amount, r.price, r.rate, i.isFloramondo
|
||||
FROM order_row r
|
||||
JOIN vn.item i ON i.id = r.item_id
|
||||
WHERE r.amount != 0
|
||||
AND r.warehouse_id = vWarehouse
|
||||
AND r.order_id = vSelf
|
||||
ORDER BY r.rate DESC;
|
||||
|
||||
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
|
||||
DECLARE CONTINUE HANDLER FOR NOT FOUND
|
||||
SET vDone = TRUE;
|
||||
|
||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
||||
BEGIN
|
||||
|
@ -64,21 +62,11 @@ BEGIN
|
|||
END;
|
||||
|
||||
-- Carga los datos del pedido
|
||||
SELECT o.date_send,
|
||||
o.address_id,
|
||||
o.note,
|
||||
a.clientFk,
|
||||
o.company_id,
|
||||
o.agency_id,
|
||||
c.isTaxDataChecked
|
||||
INTO vLanded,
|
||||
vAddressFk,
|
||||
vNotes,
|
||||
vClientFk,
|
||||
vCompanyFk,
|
||||
vAgencyModeFk,
|
||||
vIsTaxDataChecked
|
||||
FROM `order` o
|
||||
SELECT o.date_send, o.address_id, o.note, a.clientFk,
|
||||
o.company_id, o.agency_id, c.isTaxDataChecked
|
||||
INTO vDelivery, vAddress, vNotes, vClientId,
|
||||
vCompanyId, vAgencyModeId, vIsTaxDataChecked
|
||||
FROM hedera.`order` o
|
||||
JOIN vn.address a ON a.id = o.address_id
|
||||
JOIN vn.client c ON c.id = a.clientFk
|
||||
WHERE o.id = vSelf;
|
||||
|
@ -89,25 +77,11 @@ BEGIN
|
|||
END IF;
|
||||
|
||||
-- Carga las fechas de salida de cada almacen
|
||||
CALL vn.zone_getShipped(vLanded, vAddressFk, vAgencyModeFk, FALSE);
|
||||
CALL vn.zone_getShipped (vDelivery, vAddress, vAgencyModeId, FALSE);
|
||||
|
||||
-- Trabajador que realiza la accion
|
||||
IF vUserFk IS NULL THEN
|
||||
SELECT employeeFk INTO vUserFk FROM orderConfig;
|
||||
END IF;
|
||||
|
||||
CALL orderRow_updateOverstocking(vSelf);
|
||||
|
||||
-- Check if any product has a quantity of 0
|
||||
SELECT EXISTS (
|
||||
SELECT id
|
||||
FROM orderRow
|
||||
WHERE orderFk = vSelf
|
||||
AND amount = 0
|
||||
) INTO vHas0Amount;
|
||||
|
||||
IF vHas0Amount THEN
|
||||
CALL util.throw('orderLinesWithZero');
|
||||
IF vUserId IS NULL THEN
|
||||
SELECT employeeFk INTO vUserId FROM orderConfig;
|
||||
END IF;
|
||||
|
||||
START TRANSACTION;
|
||||
|
@ -115,188 +89,207 @@ BEGIN
|
|||
CALL order_checkEditable(vSelf);
|
||||
|
||||
-- Check order is not empty
|
||||
SELECT COUNT(*) > 0 INTO vHasRows
|
||||
FROM orderRow
|
||||
WHERE orderFk = vSelf
|
||||
AND amount > 0;
|
||||
|
||||
IF NOT vHasRows THEN
|
||||
SELECT COUNT(*) > 0 INTO vOk
|
||||
FROM order_row WHERE order_id = vSelf AND amount > 0;
|
||||
|
||||
IF NOT vOk THEN
|
||||
CALL util.throw ('ORDER_EMPTY');
|
||||
END IF;
|
||||
|
||||
-- Crea los tickets del pedido
|
||||
OPEN vDates;
|
||||
lDates: LOOP
|
||||
SET vTicketFk = NULL;
|
||||
|
||||
OPEN cDates;
|
||||
|
||||
lDates:
|
||||
LOOP
|
||||
SET vTicket = NULL;
|
||||
SET vDone = FALSE;
|
||||
FETCH vDates INTO vShipment, vWarehouseFk;
|
||||
FETCH cDates INTO vShipment, vWarehouse;
|
||||
|
||||
IF vDone THEN
|
||||
LEAVE lDates;
|
||||
END IF;
|
||||
|
||||
SET vShipmentDayEnd = util.dayEnd(vShipment);
|
||||
|
||||
-- Busca un ticket libre disponible
|
||||
WITH tPrevia AS (
|
||||
SELECT DISTINCT s.ticketFk
|
||||
-- Busca un ticket existente que coincida con los parametros
|
||||
WITH tPrevia AS
|
||||
(SELECT DISTINCT s.ticketFk
|
||||
FROM vn.sale s
|
||||
JOIN vn.saleGroupDetail sgd ON sgd.saleFk = s.id
|
||||
JOIN vn.ticket t ON t.id = s.ticketFk
|
||||
WHERE t.shipped BETWEEN vShipment AND vShipmentDayEnd
|
||||
WHERE t.shipped BETWEEN vShipment AND util.dayend(vShipment)
|
||||
)
|
||||
SELECT t.id INTO vTicketFk
|
||||
SELECT t.id INTO vTicket
|
||||
FROM vn.ticket t
|
||||
JOIN vn.alertLevel al ON al.code = 'FREE'
|
||||
LEFT JOIN tPrevia tp ON tp.ticketFk = t.id
|
||||
LEFT JOIN vn.ticketState tls ON tls.ticketFk = t.id
|
||||
JOIN hedera.`order` o ON o.address_id = t.addressFk
|
||||
AND t.shipped BETWEEN vShipment AND vShipmentDayEnd
|
||||
AND t.warehouseFk = vWarehouseFk
|
||||
LEFT JOIN vn.ticketState tls on tls.ticketFk = t.id
|
||||
JOIN hedera.`order` o
|
||||
ON o.address_id = t.addressFk
|
||||
AND vWarehouse = t.warehouseFk
|
||||
AND o.date_send = t.landed
|
||||
AND DATE(t.shipped) = vShipment
|
||||
WHERE o.id = vSelf
|
||||
AND t.refFk IS NULL
|
||||
AND tp.ticketFk IS NULL
|
||||
AND (tls.alertLevel IS NULL OR tls.alertLevel = al.id)
|
||||
LIMIT 1;
|
||||
|
||||
-- Comprobamos si hay un ticket de previa disponible
|
||||
IF vTicketFk IS NULL THEN
|
||||
WITH tItemPackingTypeOrder AS (
|
||||
SELECT GROUP_CONCAT(
|
||||
DISTINCT i.itemPackingTypeFk ORDER BY i.itemPackingTypeFk
|
||||
) distinctItemPackingTypes,
|
||||
o.address_id
|
||||
FROM vn.item i
|
||||
JOIN hedera.orderRow oro ON oro.itemFk = i.id
|
||||
JOIN hedera.`order` o ON o.id = oro.orderFk
|
||||
WHERE oro.orderFk = vSelf
|
||||
),
|
||||
tItemPackingTypeTicket AS (
|
||||
SELECT t.id,
|
||||
GROUP_CONCAT(
|
||||
DISTINCT i.itemPackingTypeFk ORDER BY i.itemPackingTypeFk
|
||||
) distinctItemPackingTypes
|
||||
FROM vn.ticket t
|
||||
JOIN vn.ticketState tls ON tls.ticketFk = t.id
|
||||
JOIN vn.alertLevel al ON al.id = tls.alertLevel
|
||||
JOIN vn.sale s ON s.ticketFk = t.id
|
||||
JOIN vn.item i ON i.id = s.itemFk
|
||||
JOIN tItemPackingTypeOrder ipto
|
||||
WHERE t.shipped BETWEEN vShipment AND vShipmentDayEnd
|
||||
AND t.refFk IS NULL
|
||||
AND t.warehouseFk = vWarehouseFk
|
||||
AND t.addressFk = ipto.address_id
|
||||
AND al.code = 'ON_PREVIOUS'
|
||||
GROUP BY t.id
|
||||
)
|
||||
SELECT iptt.id INTO vTicketFk
|
||||
FROM tItemPackingTypeTicket iptt
|
||||
JOIN tItemPackingTypeOrder ipto
|
||||
WHERE INSTR(iptt.distinctItemPackingTypes, ipto.distinctItemPackingTypes)
|
||||
LIMIT 1;
|
||||
END IF;
|
||||
|
||||
-- Crea el ticket en el caso de no existir uno adecuado
|
||||
IF vTicketFk IS NULL THEN
|
||||
IF vTicket IS NULL
|
||||
THEN
|
||||
|
||||
SET vShipment = IFNULL(vShipment, util.VN_CURDATE());
|
||||
|
||||
CALL vn.ticket_add(
|
||||
vClientFk,
|
||||
vClientId,
|
||||
vShipment,
|
||||
vWarehouseFk,
|
||||
vCompanyFk,
|
||||
vAddressFk,
|
||||
vAgencyModeFk,
|
||||
vWarehouse,
|
||||
vCompanyId,
|
||||
vAddress,
|
||||
vAgencyModeId,
|
||||
NULL,
|
||||
vLanded,
|
||||
vUserFk,
|
||||
vDelivery,
|
||||
vUserId,
|
||||
TRUE,
|
||||
vTicketFk
|
||||
vTicket
|
||||
);
|
||||
ELSE
|
||||
INSERT INTO vn.ticketTracking
|
||||
SET ticketFk = vTicketFk,
|
||||
userFk = vUserFk,
|
||||
stateFk = (SELECT id FROM vn.state WHERE code = 'FREE');
|
||||
SET ticketFk = vTicket,
|
||||
userFk = vUserId,
|
||||
stateFk = TICKET_FREE;
|
||||
END IF;
|
||||
|
||||
INSERT IGNORE INTO vn.orderTicket
|
||||
SET orderFk = vSelf,
|
||||
ticketFk = vTicketFk;
|
||||
ticketFk = vTicket;
|
||||
|
||||
-- Añade las notas
|
||||
IF vNotes IS NOT NULL AND vNotes <> '' THEN
|
||||
INSERT INTO vn.ticketObservation
|
||||
SET ticketFk = vTicketFk,
|
||||
observationTypeFk = (SELECT id FROM vn.observationType WHERE code = 'salesPerson'),
|
||||
|
||||
IF vNotes IS NOT NULL AND vNotes != ''
|
||||
THEN
|
||||
INSERT INTO vn.ticketObservation SET
|
||||
ticketFk = vTicket,
|
||||
observationTypeFk = 4 /* salesperson */ ,
|
||||
`description` = vNotes
|
||||
ON DUPLICATE KEY UPDATE
|
||||
`description` = CONCAT(VALUES(`description`),'. ', `description`);
|
||||
END IF;
|
||||
|
||||
-- Añade los movimientos y sus componentes
|
||||
OPEN vRows;
|
||||
|
||||
OPEN cRows;
|
||||
|
||||
lRows: LOOP
|
||||
SET vSaleFk = NULL;
|
||||
SET vDone = FALSE;
|
||||
FETCH vRows INTO vRowFk, vItemFk, vConcept, vAmount, vPrice;
|
||||
FETCH cRows INTO vRowId, vItem, vConcept, vAmount, vPrice, vRate, vIsLogifloraItem;
|
||||
|
||||
IF vDone THEN
|
||||
LEAVE lRows;
|
||||
END IF;
|
||||
|
||||
SELECT s.id INTO vSaleFk
|
||||
SET vSale = NULL;
|
||||
|
||||
SELECT s.id, s.quantity INTO vSale, vOldQuantity
|
||||
FROM vn.sale s
|
||||
WHERE ticketFk = vTicketFk
|
||||
WHERE ticketFk = vTicket
|
||||
AND price = vPrice
|
||||
AND itemFk = vItemFk
|
||||
AND itemFk = vItem
|
||||
AND discount = 0
|
||||
LIMIT 1;
|
||||
|
||||
IF vSaleFk THEN
|
||||
IF vSale THEN
|
||||
UPDATE vn.sale
|
||||
SET quantity = quantity + vAmount,
|
||||
originalQuantity = quantity
|
||||
WHERE id = vSaleFk;
|
||||
WHERE id = vSale;
|
||||
|
||||
SELECT s.quantity INTO vNewQuantity
|
||||
FROM vn.sale s
|
||||
WHERE id = vSale;
|
||||
ELSE
|
||||
-- Obtiene el coste
|
||||
SELECT SUM(rc.`price`) valueSum INTO vPriceFixed
|
||||
FROM orderRowComponent rc
|
||||
JOIN vn.component c ON c.id = rc.componentFk
|
||||
JOIN vn.componentType ct ON ct.id = c.typeFk
|
||||
AND ct.isBase
|
||||
WHERE rc.rowFk = vRowFk;
|
||||
JOIN vn.componentType ct ON ct.id = c.typeFk AND ct.isBase
|
||||
WHERE rc.rowFk = vRowId;
|
||||
|
||||
INSERT INTO vn.sale
|
||||
SET itemFk = vItemFk,
|
||||
ticketFk = vTicketFk,
|
||||
SET itemFk = vItem,
|
||||
ticketFk = vTicket,
|
||||
concept = vConcept,
|
||||
quantity = vAmount,
|
||||
price = vPrice,
|
||||
priceFixed = vPriceFixed,
|
||||
isPriceFixed = TRUE;
|
||||
|
||||
SET vSaleFk = LAST_INSERT_ID();
|
||||
SET vSale = LAST_INSERT_ID();
|
||||
|
||||
INSERT INTO vn.saleComponent (saleFk, componentFk, `value`)
|
||||
SELECT vSaleFk, rc.componentFk, rc.price
|
||||
INSERT INTO vn.saleComponent
|
||||
(saleFk, componentFk, `value`)
|
||||
SELECT vSale, rc.componentFk, rc.price
|
||||
FROM orderRowComponent rc
|
||||
JOIN vn.component c ON c.id = rc.componentFk
|
||||
WHERE rc.rowFk = vRowFk
|
||||
GROUP BY vSaleFk, rc.componentFk;
|
||||
WHERE rc.rowFk = vRowId
|
||||
GROUP BY vSale, rc.componentFk;
|
||||
END IF;
|
||||
|
||||
UPDATE orderRow
|
||||
SET saleFk = vSaleFk
|
||||
WHERE id = vRowFk;
|
||||
END LOOP;
|
||||
CLOSE vRows;
|
||||
END LOOP;
|
||||
CLOSE vDates;
|
||||
UPDATE order_row SET Id_Movimiento = vSale
|
||||
WHERE id = vRowId;
|
||||
|
||||
UPDATE `order`
|
||||
SET confirmed = TRUE,
|
||||
confirm_date = util.VN_NOW()
|
||||
-- Inserta en putOrder si la compra es de Floramondo
|
||||
IF vIsLogifloraItem THEN
|
||||
CALL cache.availableNoRaids_refresh(vCalc,FALSE,vWarehouse,vShipment);
|
||||
|
||||
SET @available := 0;
|
||||
|
||||
SELECT GREATEST(0,available) INTO @available
|
||||
FROM cache.availableNoRaids
|
||||
WHERE calc_id = vCalc
|
||||
AND item_id = vItem;
|
||||
|
||||
UPDATE cache.availableNoRaids
|
||||
SET available = GREATEST(0,available - vAmount)
|
||||
WHERE item_id = vItem
|
||||
AND calc_id = vCalc;
|
||||
|
||||
INSERT INTO edi.putOrder (
|
||||
deliveryInformationID,
|
||||
supplyResponseId,
|
||||
quantity ,
|
||||
EndUserPartyId,
|
||||
EndUserPartyGLN,
|
||||
FHAdminNumber,
|
||||
saleFk
|
||||
)
|
||||
SELECT di.ID,
|
||||
i.supplyResponseFk,
|
||||
CEIL((vAmount - @available)/ sr.NumberOfItemsPerCask),
|
||||
o.address_id ,
|
||||
vClientId,
|
||||
IFNULL(ca.fhAdminNumber, fhc.defaultAdminNumber),
|
||||
vSale
|
||||
FROM edi.deliveryInformation di
|
||||
JOIN vn.item i ON i.supplyResponseFk = di.supplyResponseID
|
||||
JOIN edi.supplyResponse sr ON sr.ID = i.supplyResponseFk
|
||||
LEFT JOIN edi.clientFHAdminNumber ca ON ca.clientFk = vClientId
|
||||
JOIN edi.floraHollandConfig fhc
|
||||
JOIN hedera.`order` o ON o.id = vSelf
|
||||
WHERE i.id = vItem
|
||||
AND di.LatestOrderDateTime > util.VN_NOW()
|
||||
AND vAmount > @available
|
||||
LIMIT 1;
|
||||
END IF;
|
||||
END LOOP;
|
||||
|
||||
CLOSE cRows;
|
||||
END LOOP;
|
||||
|
||||
CLOSE cDates;
|
||||
|
||||
UPDATE `order` SET confirmed = TRUE, confirm_date = util.VN_NOW()
|
||||
WHERE id = vSelf;
|
||||
|
||||
COMMIT;
|
||||
|
|
|
@ -9,54 +9,45 @@ BEGIN
|
|||
* @param vOrder El identificador del pedido
|
||||
* @return tmp.orderTax Bases imponibles, IVA y recargo de equivalencia
|
||||
*/
|
||||
-- No poner create or replace, ya que da problemas
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp.addressCompany;
|
||||
CREATE TEMPORARY TABLE tmp.addressCompany
|
||||
(INDEX (addressFk, companyFk))
|
||||
ENGINE = MEMORY
|
||||
SELECT DISTINCT o.address_id addressFk, o.company_id companyFk
|
||||
FROM tmp.`order` tmpOrder
|
||||
JOIN `order` o ON o.id = tmpOrder.orderFk;
|
||||
JOIN hedera.`order` o ON o.id = tmpOrder.orderFk;
|
||||
|
||||
CALL vn.addressTaxArea();
|
||||
CALL vn.addressTaxArea;
|
||||
|
||||
-- Calcula el IVA y el recargo desglosado.
|
||||
CREATE OR REPLACE TEMPORARY TABLE tmp.orderTax
|
||||
(PRIMARY KEY (orderFk, code, rate))
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp.orderTax;
|
||||
CREATE TEMPORARY TABLE tmp.orderTax
|
||||
(INDEX (orderFk))
|
||||
ENGINE = MEMORY
|
||||
WITH orders AS (
|
||||
SELECT tor.orderFk,
|
||||
oro.amount * oro.price total,
|
||||
s.countryFk,
|
||||
ata.areaFk,
|
||||
itc.taxClassFk
|
||||
FROM hedera.orderRow oro
|
||||
JOIN tmp.order tor ON tor.orderFk = oro.orderFk
|
||||
JOIN hedera.`order` o ON o.id = tor.orderFk
|
||||
JOIN vn.item i ON i.id = oro.itemFk
|
||||
SELECT o.id orderFk,
|
||||
tc.code,
|
||||
SUM(m.amount * m.price) taxableBase,
|
||||
pgc.rate
|
||||
FROM tmp.`order` tmpOrder
|
||||
JOIN `order` o ON o.id = tmpOrder.orderFk
|
||||
JOIN orderRow m ON m.orderFk = o.id
|
||||
JOIN vn.item i ON i.id = m.itemFk
|
||||
JOIN vn.`client` c ON c.id = o.customer_id
|
||||
JOIN vn.supplier s ON s.id = o.company_id
|
||||
JOIN tmp.addressTaxArea ata ON ata.addressFk = o.address_id
|
||||
AND ata.companyFk = o.company_id
|
||||
JOIN vn.itemTaxCountry itc ON itc.itemFk = i.id
|
||||
AND itc.countryFk = s.countryFk
|
||||
HAVING total
|
||||
)
|
||||
SELECT o.orderFk,
|
||||
tc.code,
|
||||
SUM(o.total) taxableBase,
|
||||
pgc.rate
|
||||
FROM orders o
|
||||
JOIN vn.bookingPlanner bp ON bp.countryFk = o.countryFk
|
||||
AND bp.taxAreaFk = o.areaFk
|
||||
AND bp.taxClassFk = o.taxClassFk
|
||||
JOIN vn.pgc ON pgc.code = bp.pgcFk
|
||||
JOIN tmp.addressTaxArea ata
|
||||
ON ata.addressFk = o.address_id AND ata.companyFk = o.company_id
|
||||
JOIN vn.itemTaxCountry itc
|
||||
ON itc.itemFk = i.id AND itc.countryFk = s.countryFk
|
||||
JOIN vn.bookingPlanner bp
|
||||
ON bp.countryFk = s.countryFk
|
||||
AND bp.taxAreaFk = ata.areaFk
|
||||
AND bp.taxClassFk = itc.taxClassFk
|
||||
JOIN vn.pgc ON pgc.`code` = bp.pgcFk
|
||||
JOIN vn.taxClass tc ON tc.id = bp.taxClassFk
|
||||
GROUP BY o.orderFk, pgc.code, pgc.rate
|
||||
HAVING taxableBase
|
||||
ORDER BY bp.priority;
|
||||
GROUP BY tmpOrder.orderFk, pgc.`code`, pgc.rate
|
||||
HAVING taxableBase != 0;
|
||||
|
||||
-- No poner create or replace, ya que da problemas
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp.orderAmount;
|
||||
CREATE TEMPORARY TABLE tmp.orderAmount
|
||||
(INDEX (orderFk))
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `hedera`.`orderRow_afterInsert`
|
||||
AFTER INSERT ON `orderRow`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
UPDATE `order`
|
||||
SET rowUpdated = util.VN_NOW()
|
||||
WHERE id = NEW.orderFk;
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -23,7 +23,6 @@ BEGIN
|
|||
DECLARE vInvoiceTypeInformativeCode VARCHAR(1);
|
||||
DECLARE vCountryCanariasCode, vCountryCeutaMelillaCode VARCHAR(2);
|
||||
DECLARE vCompanyCode INT;
|
||||
DECLARE vHasErrorTax BOOL DEFAULT FALSE;
|
||||
|
||||
SELECT SiglaNacion INTO vCountryCanariasCode
|
||||
FROM Naciones
|
||||
|
@ -67,24 +66,6 @@ BEGIN
|
|||
WHERE enlazadoSage = FALSE
|
||||
AND Asiento <> 1 ;
|
||||
|
||||
SELECT EXISTS (
|
||||
SELECT TRUE
|
||||
FROM vn.XDiario x
|
||||
JOIN vn.invoiceIn ii ON ii.id = x.CLAVE
|
||||
JOIN vn.invoiceInTax it ON it.invoiceInFk = ii.id
|
||||
LEFT JOIN TiposIva ti ON ti.CodigoIva = it.taxTypeSageFk
|
||||
LEFT JOIN taxType tt ON tt.id = it.taxTypeSageFk
|
||||
WHERE x.FECHA BETWEEN vDatedFrom AND vDatedTo
|
||||
AND NOT x.enlazadoSage
|
||||
AND x.empresa_id = vCompanyFk
|
||||
AND it.taxTypeSageFk
|
||||
AND (ti.CodigoIva IS NULL OR tt.id IS NULL)
|
||||
) INTO vHasErrorTax;
|
||||
|
||||
IF vHasErrorTax tHEN
|
||||
CALL util.throw ('Error in tables for received invoices tax');
|
||||
END IF;
|
||||
|
||||
CALL invoiceOut_manager(vYear, vCompanyFk);
|
||||
CALL invoiceIn_manager(vYear, vCompanyFk);
|
||||
|
||||
|
|
|
@ -4,8 +4,8 @@ BEGIN
|
|||
/**
|
||||
* Traslada la info de contabilidad relacionada con las facturas recibidas
|
||||
*
|
||||
* @param vInvoiceInFk Factura recibida
|
||||
* @param vXDiarioFk Id tabla XDiario
|
||||
* @vInvoiceInFk Factura recibida
|
||||
* @vXDiarioFk Id tabla XDiario
|
||||
*/
|
||||
DECLARE vInvoiceInOriginalFk INT;
|
||||
DECLARE vDone BOOL DEFAULT FALSE;
|
||||
|
@ -25,8 +25,8 @@ BEGIN
|
|||
DECLARE vIsInformativeExportation BOOL DEFAULT FALSE;
|
||||
|
||||
DECLARE vCursor CURSOR FOR
|
||||
SELECT SUM(it.taxableBase),
|
||||
CAST(SUM((( it.taxableBase / 100) * t.PorcentajeIva)) AS DECIMAL (10,2)),
|
||||
SELECT it.taxableBase,
|
||||
CAST((( it.taxableBase / 100) * t.PorcentajeIva) AS DECIMAL (10,2)),
|
||||
t.PorcentajeIva,
|
||||
it.transactionTypeSageFk,
|
||||
it.taxTypeSageFk,
|
||||
|
@ -39,8 +39,7 @@ BEGIN
|
|||
JOIN TiposTransacciones tt ON tt.CodigoTransaccion = it.transactionTypeSageFk
|
||||
LEFT JOIN vn.dua d ON d.id = vInvoiceInFk
|
||||
WHERE i.id = vInvoiceInFk
|
||||
AND d.id IS NULL
|
||||
GROUP BY it.taxTypeSageFk;
|
||||
AND d.id IS NULL;
|
||||
|
||||
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
|
||||
|
||||
|
@ -205,9 +204,9 @@ BEGIN
|
|||
WHERE correctingFk = vInvoiceInFk;
|
||||
|
||||
IF vInvoiceInOriginalFk THEN
|
||||
|
||||
UPDATE movContaIVA mci
|
||||
JOIN vn.invoiceInCorrection iic ON iic.correctingFk = vInvoiceInFk
|
||||
JOIN vn.siiTypeInvoiceIn st ON st.id = iic.siiTypeInvoiceInFk
|
||||
JOIN vn.invoiceInRefund iir ON iir.invoiceInRefundFk = vInvoiceInFk
|
||||
JOIN (SELECT issued,
|
||||
SUM(sub.taxableBase) taxableBase,
|
||||
SUM(ROUND((sub.taxableBase * sub.PorcentajeIva) / 100 , 2)) vat
|
||||
|
@ -216,7 +215,7 @@ BEGIN
|
|||
ti.PorcentajeIva
|
||||
FROM vn.invoiceIn i
|
||||
JOIN vn.invoiceInTax iit ON iit.invoiceInFk = i.id
|
||||
JOIN TiposIva ti ON ti.CodigoIva = iit.taxTypeSageFk
|
||||
JOIN sage.TiposIva ti ON ti.CodigoIva = iit.taxTypeSageFk
|
||||
WHERE i.id = vInvoiceInOriginalFk
|
||||
GROUP BY ti.CodigoIva)sub
|
||||
)invoiceInOriginal
|
||||
|
@ -229,6 +228,7 @@ BEGIN
|
|||
mci.CuotaIvaOriginal = invoiceInOriginal.vat,
|
||||
mci.ClaveOperacionFactura = co.ClaveOperacionFactura_
|
||||
WHERE mci.id = vXDiarioFk;
|
||||
|
||||
END IF;
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -169,7 +169,6 @@ BEGIN
|
|||
UPDATE movContaIVA mci
|
||||
JOIN vn.invoiceOut i ON i.id = vInvoiceOutCorrectedFk
|
||||
JOIN vn.invoiceCorrection ic ON ic.correctedFk = vInvoiceOutCorrectedFk
|
||||
JOIN vn.siiTypeInvoiceOut st ON st.id = ic.siiTypeInvoiceOutFk
|
||||
JOIN (SELECT SUM(IF(IFNULL(e.vatFk, TRUE), iot.taxableBase, 0)) taxableBase,
|
||||
SUM(IF(IFNULL(e.vatFk, TRUE), iot.vat, 0)) vat,
|
||||
SUM(IF(IFNULL(e.vatFk, TRUE), 0, iot.vat)) equ
|
||||
|
@ -178,8 +177,8 @@ BEGIN
|
|||
WHERE iot.invoiceOutFk = vInvoiceOutCorrectedFk
|
||||
) tax
|
||||
JOIN ClavesOperacion co ON co.Descripcion = 'Factura rectificativa'
|
||||
SET mci.TipoRectificativa = ic.cplusRectificationTypeFk,
|
||||
mci.ClaseAbonoRectificativas = REGEXP_REPLACE(st.`code`, '[^0-9]', ''),
|
||||
SET mci.TipoRectificativa = 2,
|
||||
mci.ClaseAbonoRectificativas = 1,
|
||||
mci.FechaFacturaOriginal = i.issued,
|
||||
mci.FechaOperacion = i.issued,
|
||||
mci.BaseImponibleOriginal = tax.taxableBase,
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `salix`.`ACL_afterDelete`
|
||||
AFTER DELETE ON `ACL`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
INSERT INTO ACLLog
|
||||
SET `action` = 'delete',
|
||||
`changedModel` = 'Acl',
|
||||
`changedModelId` = OLD.id,
|
||||
`userFk` = account.myUser_getId();
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -1,11 +0,0 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `salix`.`ACL_beforeInsert`
|
||||
BEFORE INSERT ON `ACL`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SET NEW.editorFk = account.myUser_getId();
|
||||
IF NEW.`property` = '*' THEN
|
||||
CALL util.throw('The property field cannot be *');
|
||||
END IF;
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -1,8 +0,0 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `salix`.`ACL_beforeUpdate`
|
||||
BEFORE UPDATE ON `ACL`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SET NEW.editorFk = account.myUser_getId();
|
||||
END$$
|
||||
DELIMITER ;
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue